Contacts
صفحه اصلی پورتال | صفحه اصلی تالار | ثبت نام | اعضاء | گروه ها | جستجو | پرسش و پاسخ | فروشگاه الکترونیکی | خرید پستی بازی های کامپیوتری





صفحه اول انجمنها -> گفتگوی آزاد پیرامون مسایل متفرقه -> Unity3D LOD System's Problem
 

ارسال يك موضوع جديد   پاسخ به يك موضوع ديدن موضوع قبلي :: ديدن موضوع بعدي

Unity3D LOD System's Problem
نويسنده
پيغام
Unity 3D
در حال رشد
در حال رشد


تاريخ عضويت: 2 شنبه 11 مرداد 1389
تعداد ارسالها: 29


5 شنبه 30 شهريور 1391 - 19:52
پاسخ بصورت نقل قول
با عرض سلام، ادب و احترام خدمت تمامی مدیران و کاربران محترم سایت.

بنده یک مشکل اساسی را در سیستم LOD یونیتی پیدا کردم و طی یک ایمیل، آن را به گروه پشتیبانی شرکت یونیتی اعلام کردم.

آن ها با ارسال پاسخ، این مشکل را تایید کردند، اما گفتند بر اساس سلسله مراتب رسمی، این مشکل باید در سایت Feedback به رای کاربران گذاشته شود تا پس از دریافت تعداد رای مشخصی، به آن رسیدگی گردد.

از مدیران و کاربران محترم، کسی این تعداد رای مشخص که منجر به تایید یک نظر/مشکل می شود، را نمی دانند؟

بنده این مشکل را 19/9/2012 بر روی سایت Feedback ارسال کردم و حال از شما عزیزان درخواست دارم تا با مراجعه و خواندن این مشکل، اگر تایید کردید، یک یا چند رای به آن اختصاص دهید.

LOD System's Problem

چون این موضوع به هیچ یک از بخش های تالار یونیتی مربوط نمی شد، بنده آن را اینجا ارسال کردم.
اگر مکان این تاپیک اشکال دارد، لطفا مدیران محترم انتقال بدهند.

با تشکر قبلی.

JHS
ارسال  بازگشت به بالا
ديدن مشخصات كاربر ارسال پيغام خصوصي
 

نويسنده
پيغام
شهروز
مدیر انجمن
مدیر انجمن


تاريخ عضويت: جمعه 16 مرداد 1383
تعداد ارسالها: 3279
محل سكونت: Germany


5 شنبه 30 شهريور 1391 - 21:45
پاسخ بصورت نقل قول
سلام.
من تاحالا بهش برخورد نکردم ولی در هر صورت 10 رأی براتون ارسال کردم Arrow

_________________




استدیوی نرم افزاری بلوبالک
www.Bluebulk.info
ارسال  بازگشت به بالا
ديدن مشخصات كاربر ارسال پيغام خصوصي ديدن وب سايت كاربر
 

نويسنده
پيغام
Unity 3D
در حال رشد
در حال رشد


تاريخ عضويت: 2 شنبه 11 مرداد 1389
تعداد ارسالها: 29


5 شنبه 30 شهريور 1391 - 23:40
پاسخ بصورت نقل قول
با عرض سلام، ادب و احترام خدمت تمامی مدیران و کاربران محترم سایت.

تشکر بسیار مدیریت محترم "شهروز" گرامی

متاسفانه مشکل قدیمی "نبود دکمه تشکر" همچنان گریبان گیر این سایت است.

متاسفانه وعده های مدیران مبنی بر تغییر نرم افزار انجمن ساز این سایت و افزودن چند قابلیت جدید همچون دکمه تشکر، هم به علت مشغله های بسیار ایشان به سر منزل مقصود هنوز نرسیده است.
به امید آن روز.

بعضی از دوستان ارسال اینگونه پست ها را "افزایش تعداد پست های ارسالی و افزایش رتبه کاربر" می دانند اما بنده به شخصه این چنین پست ها را "احترام گذاشتن به مدیر/کاربر مقابل" می دانم.

JHS
ارسال  بازگشت به بالا
ديدن مشخصات كاربر ارسال پيغام خصوصي
 

نويسنده
پيغام
Unity3D
مدیر انجمن
مدیر انجمن


تاريخ عضويت: 2 شنبه 23 آذر 1388
تعداد ارسالها: 1034


جمعه 31 شهريور 1391 - 12:32
پاسخ بصورت نقل قول
سلام

Unity 3D,

حالا چرا اینقدر رسمی ... Very Happy
من تو اون لینکی که گذاشتی رفتم ولی اصلا سر در نیاوردم منظورت چی بود یعنی مشکل چی هست ... میشه به زبان شیرین پارسی هم اینجا مشکل رو مطرح کنی ؟
ارسال  بازگشت به بالا
ديدن مشخصات كاربر ارسال پيغام خصوصي ارسال ايميل
 

نويسنده
پيغام
Unity 3D
در حال رشد
در حال رشد


تاريخ عضويت: 2 شنبه 11 مرداد 1389
تعداد ارسالها: 29


جمعه 31 شهريور 1391 - 13:15
پاسخ بصورت نقل قول
با عرض سلام، ادب و احترام خدمت تمامی مدیران و کاربران محترم سایت.

بنده دیگر آن کاربر بی ادب قدیمی نیستم.

البته پیش از توضیح بهتر است این نکته را دوباره متذکر شوم که شرکت محترم یونیتی این مشکل را تایید کردند. از طرف دیگر گفتند این مشکل چندان حیاتی نیست. به بنده گفتند این مشکل را به رای کاربران بگذارم تا اگر کاربران زیادی آن را تایید کردند در نسخ بعدی اعمال گردد.

توضیح مشکل مورد بحث در لینک بالا: (ببخشید اگر خیلی ساده توضیح می دهم)

در سیستم فعلی LOD یونیتی، شما باید برای هر آبجکت و به اندازه تعداد لول های LOD آن آبجکت، مش به صورت فرزند به آبجکت مورد نظر بدهید.
این موضوع درست است که سیستم LOD یونیتی، تنها یک مش را بر اساس لول جاری LOD برای هر آبجکت نشان می دهد و بقیه مش ها را غیر فعال می کند، اما متاسفانه بقیه مش ها را فقط غیر فعال می کند (نمایش نمی دهد، تنها از GPU حذف می کند) و این مش ها در RAM باقی می مانند.

از منظر دیگر، به علت این که تمامی این مش ها در صحنه جاری موجودند:
(1) زمان لود بالا می رود، چون اندازه فایل اجرایی زیاد شده است. (به علت ذخیره این تعداد مش در فایل نهایی)
(2) زمان اجرای بازی افزایش می یابد چون تعداد آبجکت های موجود در صحنه زیاد می شود و مدیریت این تعداد اضافی از آبجکت ها هزینه بردار است.

مثال:
15 عدد آبجکت دارید که هر کدام 5 سطح LOD دارند و در 3 صحنه از این آبجکت ها استفاده کرده اید:
15 * 5 * 3 = 255 مش

پیشنهاد بنده:
در صحنه ها هیچ گونه مشی قرار نگیرد (البته تنها در آبجکت هایی که از سیستم LOD استفاده می کنند).
تمام مش ها در بخش Resource های نرم افزار ذخیره شوند.
سیستم LOD (در تمامی صحنه های بازی) برای هر آبجکت تنها مش متناسب با لول جاری را از Resource ها لود کند و مش لول قبلی را از RAM و GPU حذف کند.
این گونه تنها یک مش برای هر آبجکت در RAM و GPU لود می شود.

از طرفی به علت کم شدن تعداد مش ها و ذخیره مش ها در فایل جداگانه ای، زمان لود و اجرا برنامه افزایش می یابد.

مثال بالا بعد از اعمال این پیشنهاد:
15 * 1 * 3 = 45 مش

255 یا 45 ؟

به نظر شما کدام بهتر است ؟

با تشکر از شما به خاطر وقت گرانبهایتان
JHS
ارسال  بازگشت به بالا
ديدن مشخصات كاربر ارسال پيغام خصوصي
 

نويسنده
پيغام
Unity3D
مدیر انجمن
مدیر انجمن


تاريخ عضويت: 2 شنبه 23 آذر 1388
تعداد ارسالها: 1034


شنبه 1 مهر 1391 - 01:25
پاسخ بصورت نقل قول
دوست عزیز مطمئن هستی که اونها هم تایید کردن که این یه مشکل هست ؟!

نقل قول:
در سیستم فعلی LOD یونیتی، شما باید برای هر آبجکت و به اندازه تعداد لول های LOD آن آبجکت، مش به صورت فرزند به آبجکت مورد نظر بدهید.
این موضوع درست است که سیستم LOD یونیتی، تنها یک مش را بر اساس لول جاری LOD برای هر آبجکت نشان می دهد و بقیه مش ها را غیر فعال می کند، اما متاسفانه بقیه مش ها را فقط غیر فعال می کند (نمایش نمی دهد، تنها از GPU حذف می کند) و این مش ها در RAM باقی می مانند.


دوست من همینطور هم باید باشه ... یعنی تمامی LOD Level های یک Mesh باید تو حافظه بمونه و تو دسترس باشه چون اولا load/unload کردن مدام یک مش عمل خیلی کندی هست دوما وقتی تعداد زیادی از یک آبجکت رو تو فواصل مختلف دارید ( مثلا یک صخره ) بنابراین در هر لحظه دارید از همه Level ها استفاده میکنید پس همشون باید تو حافظه باشن و load/unload کردنشون بی معنی هست !

نقل قول:
(1) زمان لود بالا می رود، چون اندازه فایل اجرایی زیاد شده است. (به علت ذخیره این تعداد مش در فایل نهایی)
(2) زمان اجرای بازی افزایش می یابد چون تعداد آبجکت های موجود در صحنه زیاد می شود و مدیریت این تعداد اضافی از آبجکت ها هزینه بردار است.


مش ها فقط یک بار اون هم در زمان لودینگ مرحله بارگذاری میشن
پیشنهاد شما تا اونجایی که بنده اطلاع دارم عملی نیست حتی اگر هم باشه باعث کند شدن بازی میشه ...

نقل قول:
15 عدد آبجکت دارید که هر کدام 5 سطح LOD دارند و در 3 صحنه از این آبجکت ها استفاده کرده اید:
15 * 5 * 3 = 255 مش


محاسباتتون اشتباه هست متاسفانه ...
اولا شما معمولا همیشه توی یک صحنه هستید پس اون 3 رو باید حذف کنید
دوما اگر اون 15 تا آبجکت ، مدل های متفاوتی نیستند باز اون رو هم باید حذف کنید یعنی کلا 5 تا مش تو حافظه لود میشه و همه آبجکتها ازش استفاده میکنن ...

نقل قول:
255 یا 45 ؟
به نظر شما کدام بهتر است ؟


همون 5 تایی که خودم گفتم بهتره Very Happy
ارسال  بازگشت به بالا
ديدن مشخصات كاربر ارسال پيغام خصوصي ارسال ايميل
 

نمايش نامه هاي ارسال شده قبلي:   
ارسال يك موضوع جديد   پاسخ به يك موضوع    صفحه 1 از 1 تمام ساعات و تاريخها بر حسب 3.5+ ساعت گرينويچ مي باشد


 
پرش به:  


شما نمي توانيد در اين انجمن نامه ارسال كنيد.
شما نمي توانيد به موضوعات اين انجمن پاسخ دهيد
شما نمي توانيد نامه هاي ارسالي خود را در اين انجمن ويرايش كنيد
شما نمي توانيد نامه هاي ارسالي خود را در اين انجمن حذف كنيد
شما نمي توانيد در نظر سنجي هاي اين انجمن شركت كنيد


unity3d

بازگردانی به فارسی : علی کسایی @ توسعه مجازی کادوس 2004-2011
Powered by phpBB © 2001, 2011 phpBB Group
| Home | عضويت | ليست اعضا | گروه هاي كاربران | جستجو | راهنماي اين انجمن | Log In |