Understanding Adaptive Lights
شرکت (chaos group) از برخی قابلیت های ویری ۳٫۵ (Vray-3.5) پرده برداشت. یکی از این قابلیت ها معرفی Adaptive Lights است که به نوعی پیشرفت شگرفی در زمینه محاسبات نور در موتورهای رندر RayTrace است. در ادامه این پست توضیح خواهم داد که این قابلیت چیست و چه تفاوتی با محاسبه نور در ویری ۳٫۴ دارد.
با اینکه الگوریتم RayTrace یکی از واقع گرایانه ترین و بهترین الگوریتم ها بر اساس کنش ها و واکنش های نور برای رندر است اما در عین حال با مشکلات و چالش های زیادی هم در این فرایند روبرو است یکی از مهمترین این چالش ها رندر صحنه هایی با تعداد منابع نوری زیاد است.
Understanding Adaptive Lights
در نسخه های قبل از ویری ۳ شاهد محاسبه نور پردازی به طور کامل بودیم و در ویری ۳ روشی برای بهبود سرعت در محاسبه منابع نوری زیاد با نام Probabilistic Lights ارائه شد. در سرویس پک ۵ ویری نیز شاهد معرفی روشی دیگر برای بهبود عملکرد این نوع محاسبات ارائه خواهد شد.
این روش در حال گذراندن مراحل تست و در حال بهبود است و ممکن است تا ارائه نهایی ویری ۳٫۵ تغییراتی در آن رخ دهد اما سازو کار و ایده اصلی این محاسبات به صورتی که در ادامه اشاره میکنم خواهد بود.
برای توضیح بهتر این روش محاسبه شاید اشاره ای به دو روش محاسبه ای که در گذشته در ویری استفاده می شده مفید باشد تا دوستانی که با این محاسبات اشنایی کمتری دارند بهتر بتوانند ادامه مطالب را دنبال کنند.
Full Lighting:
در این روش به ازاء هر Ray که با مختصاتی از صحنه برخورد میکند تمامی منابع نوری صحنه مورد ارزیابی و محاسبه قرار می گیرند. که برای صحنه هایی با تعداد کم منابع نوری مشکلی ایجاد نمی کند و محاسبات به راحتی انجام می شود اما با افزایش تعداد منابع نوری به شکل تصاعدی از سرعت رندر کاسته می شود. (در ادامه تصویری برای روشن شدن بهتر مطلب ارائه شده است)
Probabilistic Lights:
Understanding Adaptive Lights
در این روش بر خلاف روش قبل به ازاء هر Ray که با مختصاتی از صحنه برخورد میکند تعداد مشخصی از منابع نوری به صورت تصادفی توسط ویری انتخاب شده و مورد ارزیابی و محاسبه قرار میگیرند. که تعداد این منابع توسط کاربر در صفحه تنظیمات موتور رندر قابل تغییر است.
این روش با توجه به اینکه تعداد محاسبات انجام شده را به شدت کاهش می دهد موجب ارتقاء سرعت رندر در صحنه های با تعداد منابع نوری زیاد می شود. اما این روش موجب ایجاد نویز هایی در رندر می شود که به تعداد بیشتری سمپل برای رفع این نویز های احتیاج است که خود باعث کاهش سرعت رندر می شود.
و چون منابع نوری به صورت کاملا تصادفی انتخاب می شوند احتمال خطا هایی از قبیل محاسبه منبع نوری برای نقطه ای که آن نور هیچ تاثیری بر آن ندارد میشود. اما به هر حال الگوریتم مفید و قابل استفاده ای برای افزایش سرعت رندر در صحنه هایی با تعداد زیاد منابع نوری است.
Adaptive Lights:
این روش در واقع همان روش قبلی است که هوشمندتر شده و به صورت هدفمند به انتخاب منابع نوری و محاسبه آن ها می پردازد از این رو با سرعت بیشتری به نتیجه مطلوب نزدیک می شود.
در این روش برای انتخاب هوشمندانه منابع نوری از لایت کش استفاده می شود (پس ان دسته از دوستانی که از این موتور محاسبه جی ای استفاده نمی کنند نمی توانند از این قابلیت بهره ببرند).
با توجه به اطلاعاتی که از محاسبه لایت کش به دست می اید ویری منابع نوری را که احتمال بیشتری دارند در روشنایی هر نقطه از صحنه نقش داشته باشند را انتخاب میکند و محاسبات هر Ray را به این منابع نوری محدود می کند بنابراین با کاهش شدید محاسبات به صورت هدفمند به شکل فزاینده ای سرعت رندر افزایش می یابد.
نکته: این روش افزایش سرعت فقط در صحنه هایی با تعداد منابع نوری زیاد قابل استفاده است و انتظار افزایش سرعت چشمگیری در صحنه های معمولی با تعداد کم منابع نوری نداشته باشید.
Understanding Adaptive Lights
هر سه روش گفته شده در ویری قابل استفاده است و به فراخور صحنه می توانید الگوریتم مناسب تر را انتخاب کنید.
نتایج بنچمارک گرفته شده برای صحنه ای به علاوه گراف کمکی برای فهم بهتر روش های ذکر شده را در تصویر زیر مشاهده می کنید.