آشنایی با روش Image Based Lighting

معمار ایرانی

عضو جدید
[h=2] آشنایی با روش Image Based Lighting [/h]
یکی از مشکلات همیشگی کاربران دنیای رندرینگ، نورپردازی صحیح و واقع گرایانه صحنه می باشد. این مسئله بشدت در خروجی نهایی موثر بوده و باعث می شود که اثر خلق شده مورد نقد و انتقادات فراوان واقع شود. خوشبختانه روشهای نورپردازی و امکاناتی که امروزه در اختیار کاربران وجود دارد آنقدر گسترده و متنوع است که با کمی مطالعه و تمرین میتوانند تصاویری بسیار زیبا و Photorealistic خلق نمایند. در این مقاله به یکی از روشهای بسیار کاربردی، زیبا و تا حد ممکن نزدیک به واقعیت در نورپردازی خواهیم پرداخت که به آن IBL یا Image Based Lighting گویند.

IBL در حقیقت روش و تکنیکی برای نورپردازی و روشنایی صحنه می باشد که از یک تصویر HDR به منظور انتشار Photon ها و پرتوهای نور استفاده میکند. در تمامی موتورهای رندرینگ، میتوانید روش IBL را به راحتی استفاده کرده و از تصویر خروجی لذت ببرید. به عقیده کارشناسان و تمامی کاربران فضای رندرینگ، IBL یکی از طبیعی ترین، راحت ترین و زیبا ترین روش های روشنایی و نورپردازی محسوب می شود. اما به منظور بهره گیری از این تکنیک رعایت چند نکته ساده و پایه الزامی می باشد تا بتوانید حداکثر کیفیت را از در تصویر رندر شده بدست آورید. در همین جا باید عرض کنم که تمامی موتورهای رندرینگ مطرح دنیا از IBL پشتیبانی کرده و هر کدام به گونه ای این موضوع را کنترل و مدیریت میکنند. در این مقاله سعی میکنم که روش بکارگیری Image Based Lighting را در موتورهای VRay و RenderMan و Arnold Render و ... مورد بررسی قرار دهم. نکته ای که در همین ابتدا باید متذکر شوم این است که شما باید چهار چوب استفاده از از IBL را بدانید تا بتوانید در هر موتور رندرینگ و یا هر نرم افزار دیگری با دانش خود از آن استفاده نمایید.


خوب اجازه بدهید که به سراغ IBL برویم. همانطور که عرض کردم IBL روش روشن نمودن صحنه و موضوعات درون آن توسط پرتوهای نوری است که از یک تصویر واقعی ( موجود در طبیعت ) گرفته شده است. در این حالت به منظور استفاده از روش IBL می بایست از یک تصویر پانوراما (panoramic) به منظور روشنایی موضوعات و انعکاس پرتوهای نور استفاده میکنیم. همانطور که قبلا مطلب HDR Light Studio به آن اشاره کردم، این تصاویر گسترده با روش خاصی بدست می آیند. این روش بسیار ساده بوده و میتوانید شخصا از تمامی مناظر و صحنه های دلخواه تان تصاویر پانورامیک تهیه فرمایید فقط کافی است با یک جستجوی ساده روش تهیه تصاویر panoramic را بدست آورید.


اما ما در IBL به چیزی بیشتر از یک تصویر با زاویه دید بالا احتیاج داریم. ما نیازمند تصویری هستیم که بتوانیم از آن میزان روشنایی بخش های مختلف آن تصویر را بدست آوریم. IBL در این حالت با دریافت روشنایی هر بخش از تصویر، میران انتشار Photon های نور و همچنین خصوصیات آنها را در صحنه را کنترل میکند. در نتیجه ما به تصویری احتیاج داریم که علاوه بر مشخصات Pixel های رنگی در آن، مشخصات میزان روشنایی هر Pixel یا محدوده را نیز در خود ذخیره کند. HDRI یا High Dynamic Range Image ساختاری از تصاویر است که این کار را برای ما انجام می دهد. در حقیقت HDRI ترکیبی از یک تصویر Panoramic ( با دید گسترده ) و خصوصیات روشنایی هر بخش از تصویر می باشد. در صورتی که دوربین در اختیار ندارید و یا نمیتوانید به هر دلیل از صحنه های مورد نظر خود تصاویر HDR را بدست آورید، میتوانید از دهها نرم افزار و محصول آماده برای اینکار استفاده نمایید. یکی از ساده ترین و کاربردی ترین نرم افزارهای تولید HDRI را قبلا در موضوع HDR Light Studio معرفی کرده ام. در غیر اینصورت میتوانید از صدها Package آماده ای که در بازار وجود دارد استفاده کرده و یا از سایت هایی که این تصاویر را در اختیار شما می گذارند استفاده نمایید. شما میتوانید به راحتی از میان تصاویر HDR آماده و یا ایجاد ان توسط نرم افزارهایی مانند HDR Light Studio ، نزدیک ترین تصویر HDR را به محیط مورد نظرتان تهیه فرمایید. لازم به ذکر است که برای شبیه سازی یک رندر واقعی، نیازمند بدست آوردن یک HDR با کیفیت و بسیار شبیه به صحنه مورد نظر دارید. مطمئن باشید که در موارد حرفه ای، تمام تصاویر HDR توسط کاربران تولید شده تا نتیجه رندر نهایی بدون اشکال باشد.

خوب حال ما یک تصویر HDR در اختیار داریم که علاوه بر تصویر محیط، خصوصیات روشنایی آن محیط را نیز در خود ذخیره کرده است. از این پس موتور رندرینگ ما با استفاده از این HDRI و تنظیمات شما، روش Image Based Lighting را پیاده سازی میکند. بعد از تهیه تصویر HDR، مهمترین نکته کیفیت آن تصویر است. هر چه کیفیت تصویر شما بالاتر باشد، کیفیت نورپردازی و رندرینگ و جزییات بدست آمده به طرز چشم گیری افزایش می یابد. در نتیجه هر چه کیفیت تصویر شما بالاتر باشد، محاسبه روشنایی عمومی (Global Illumination) دقیقتر خواهد بود. خوب نکته دومی که باید به آن اشاره کنیم، معیاری برای روشنایی است و اینکه روشنایی آن محیط به چه میزانی است؟ توجه کنید، ما یک تصویر از یک صحنه طبیعی در دنیای واقعی تهیه کرده ایم. حال نیازمند آن هستیم که میزان روشنایی هر نقطه از آن تصویر را برای موتور رندر مشخص کنیم. به طور مثال در تصویری که تهیه کرده ایم خورشید قرار دارد و یا اینکه تصویر ما یک صحنه داخلی است که دارای چند لامپ روشن می باشد. آیا میزان روشنایی خورشید و لامپ های یکسان هستند؟ و اینکه چه میزان تفاوتی بین آن ها وجود دارد؟ ما کاربران ،که به تصویر نگاه میکنیم میتوانیم به سادگی این موضوع را درک کنیم. اما این موضوع باید برای موتور رندر هم مشخص شود. هر Render Engine باید با استفاده از اطلاعات بدست آمده از تصویر HDR به این موضوع شناخت پیدا کند تا بتوانید میزان روشنایی هر قسمت از صحنه را به درستی انجام دهد.

در اینجا ما نیازمند روشی برای شناسایی و سنجش روشنایی دنیای واقعی هستیم که در تصویر خود به ثبت رسانده ایم. در به LPI نیاز خواهیم داشت. Light Probe Image ، تصاویری هستند که از دنیای واقعی بدست می آیند. این تصاویر میزان روشنایی هر بخش از تصویر را در خود ذخیره میکنند. شما میتوانید به راحتی Light Probe Image های متنوعی را دانلود کنید و یا خودتان اقدام به تولید آنها نمایید. نرم افزار معرفی شده HDR Light Studio شما را در این کار یاری میدهد. برای هر Light Probe Image دو نکته مهم باید در نظر گرفته شود. اول اینکه هر تصویر LPI همه سویه می باشد ( یعنی یک تصویری است که میتوانید به تمام جهات پرتوهای خود را ارسال نماید که در اینصورت متوجه می شویم که می بایست مانند منابع نوری همه سویه به صورت کروی باشد ) و دوم اینکه هر Pixel از این تصویر دارای خصوصیات ذکر شده برای میزان روشنایی آن نقطه از تصویر می باشد. برای بدست آوردن Light Probe Image روشهای متنوعی وجود دارد که در عمومی ترین آنها استفاده از یک کره آینه ای و یا فلزی از جنس کروم و ... به همراه یک دوربین و سه پایه مورد استفاده قرار میگیرد که با یک جستجوی ساده میتوانید از آن استفاده کنید. اما اگر به این موارد دسترسی ندارید باز هم به اینترنت و بسته های موجود رجوع کرده و تصاویر مورد نظرتان را دانلود نمایید. حال با در اختیار داشتن Light Probe Image و تصاویر Panoramic یک تصویر HDR بدست می آید که در ابتدای مطلب به آن اشاره کردیم. حال متوجه خواهید شد که HDR در حقیقت چیست و چگونه ایجاد می شود.


خوب ما نیازمندیهای خود را بدست آوردیم. از این پس می بایست به موتور رندرینگ خود مراجعه کنیم تا ببینیم در هر موتور رندرینگ چگونه میتوانیم از Image Based Lighting استفاده کنیم. اجازه دهید قبل از این موضوع روش استفاده IBL در موتورهای رندرینگ را با یکدیگر مرور کنیم. برای شبیه سازی نورپردازی در واقعیت ، موتورهای رندرینگ به یک محیط برای انتشار پرتوها نیاز دارند. در حقیقت تصویر HDR تولید شده باید به گونه ای موضوعات و صحنه ساخته شده را محاط کند تا بتواند پرتوهای گرفته شده از تصویر HDR را بروی موضوعات درون صحنه منتشر کند. خوب پس یکی از راهکارهای استفاده از روش Image Based Lighting استفاده از Environment موجود در نرم افزارها و موتورهای رندرینگ است. در نتیجه ما یک تصویر HDR ساخته شده با موارد ذکر شده را به عنوان یک تصویر در Environment انتخاب کرده و آن را در محاسبه GI شریک میکنیم. این تمام کاری است که می بایست انجام دهیم. اما برای تکمیل و حرفه ای تر شدن کار، رعایت نکات زیادی لازم است. قبل از اینکه Image Based Lighting را از منظر موتورهای رندرینگ بررسی کنم، باید عرض کنم که مهمترین نکته ای که در شروع کار می بایست رعایت کنید، تعیین واحد اندازه گیری در نرم افزار سه بعدی است. فراموش نکنید که واحد اندازه گیری (Unit) نرم افزار خود را با واحد اندازه گیری نورهای یکسان نمایید. نکته دوم در اینجاست که کاربران حرفه ای از سه تصویر مجزا برای روش IBL استفاده میکنند. یک تصویر با اندازه بسیار بزرگ ( بزرگترین حالتی که میتوانید ) را برای نگاشت reflection و Specular استفاده میکنند و از از دو تصویر HDR دیگر با اندازه ها و ماتی (Blur) متفاوت برای Diffuse environment و Diffuse Lighting و ... که این موضوع جای بحث بسیار دارد و از حوصله این مطلب خارج است.


برای شروع کار از موتور رندرینگ VRay استفاده خواهیم کرد. در این موتور علاوه بر اینکه میتوانید از پارامترهای Environment استفاده کنید، میتوانید از منبع نوری که ویژه IBL طراحی شده است بهره ببرید. حتما منبع نور Dome Light را در VRay می شناسید. در سایت metrocubicodigital تصویری دیدیم که برای این مقاله بسیار مناسب بود. لطفا به تصویر زیر نگاه کنید تا تفاوت منابع نوری Sun Light & Sky light و Dome Light را مشاهده نمایید.


Dome Light یک منبع نوری با قابلیت های ویژه برای روش IBL می باشد. کافی است که شما تصویر HDR خود را به Dome Light بدهید( البته باید از نوع VRay HDR نگاشت شود ) و کیفیت پردازش روشنایی عمومی را برای آن تنظیم نمایید. خوشبختانه VRay در 3ds Max , Maya ,Sketchup و Cinema 4D تفاوتی چندانی ندارد. بنابراین میتوانید به راحتی این افکت را در تمامی نرم افزارهای مذکور پیاده سازی کنید.توجه کنید که زمانی که از روش IBL استفاده میشود نباید نورهای پیش فرض فعال باشند. در این صورت بهتر است که Vray Defualt Lights بروی off قرار گیرد. در این صورت تمام محاسبات بر اساس تصویر HDR شما خواهد بود. اگر تصویر شما زیادی روشن است و یا زیادی تاریک، این مربوط به HDR شماست که میتوانید در قسمت تنظیمات VRay HDRI آن را تغییر دهید.

و اما در RenderMan نیز روش استفاده مشابه همین روش خواهد بود. در موتور رندرینگ Renderman شما میتوانید از پارامتر Environment Light استفاده نمایید. البته این تنها روش برای این کار نیست اما یکی از مرسوم ترین آنهاست. در این روش و در قسمت تنظیمات روشنایی عمومی (GI) میتوانید یک تصویر HDR را به منظور روشن نمودن صحنه انتخاب کنید.لازم به ذکر است که برای افزایش کیفیت و انعکاس تصاویر در متریالهای متنوع، می بایست پارامتر Ray-Tracing را فعال کنید (آیا تا بحال این گزینه را خاموش نگه داشته بودید؟؟؟!!! ) میزان شدت اثر نورها در محاسبات GI را میتوانید با پارامتر Intensity کنترل نمایید.

اما در موتور Arnold Render این موضوع به VRay شبیه تر خواهد بود. آرنولد رندر دو روش برای اینکار در اختیار شما قرار خواهد داد. یکی استفاده از Shader ها و دیگری استفاده از نورها. در روش استفاده از Shader های موجود میتوانید IBL را با Sky Shader به انجام رسانید. در این حالت شما همان کاری را انجام می دهد که در RenderMan انجام خواهید داد. یعنی استفاده از Environment Lighting . در روش دوم استفاده از Skydome Light است که چیزی شبیه Dome Light در VRay می باشد. در این روش نیز همانند روش ذکر شده در وی-ری کاربر می تواند با اختصاص HDR مورد نظر خود به عنوان Mapping در Skydome Light به راحتی اقدام به رندرینگ روشنایی توسط روش IBL بنماید. توجه کنید در این روش تعیین Resolution یکی از مهمترین تنظیمات در Arnold Render خواهد بود.


و اما در موتور قدرتمند Maxwell کار بسیار راحتتر می باشد. علاوه بر تنظیمات environment کاربران میتوانند برای شبیه سازی روش IBL از Environment Light استفاده کنند. در این روش یک گزینه به نام IBL وجود دارد که تمام نیازهای شما را برای استفاده از HDR و روشنایی تامین میکند.در Maxwell کانالهای متنوعی برای IBL وجود دارد که شامل همان چند روش مذکور می باشد. این کانالها عبارتند از background , Illumination , reflection و Refraction . البته استفاده از همه کانالها الزامی نیست اما کیفیت بالاتر و دقت بیشتری را در اختیار شما قرار خواهد داد.
موتور Mental Ray نیز همانند RenderMan از environment استفاده کرده و میتوانید در بخش GI آن را فعال نمایید.البته توجه داشته باشید که برای رسیدن به نتیجه مطلوب استفاده از Final Gathering به گونه ای الزامی می باشد. در موتورهای دیگری چون Arion render و Octane Render و Furryball نیز میتوانید از Image Based Lighting استفاده کرده و به راحتی و با سرعتی خیره کننده از تصاویر HDR در روشنایی عمومی و همچنین Background استفاده نمایید.
توجه داشته باشید که آموزش قدم به قدم این موضوعات مورد نظر ما نیست و نخواهد بود و خواننده فهیم خود با معرفی هر موضوع میتوانید به راحتی و با اندکی تلاش و تمرین بر آن مسلط شود. در نتیجه ما فقط سر نخ را به شما می دهیم و شما خود می توانید تا انتهای موضوع را کنکاش کنید. البته این موضوعات در دوره های آموزشی و کارگاه های یک روز مورد بررسی دقیق قرار خواهد گرفت.
امیر رضا دارابی جاه
 
بالا