به منظور شناخت صحیح و درک کامل از فضای Render Pass ها می بایست ابتدا معانی هر کدام از لایههای رندرینگ را به دقت بررسی کرده تا بدانیم در هر مرحلهای از کدام لایه و به چه دلیل باید استفاده نماییم. در نهایت نیز مفهوم Beauty Render را مورد کنکاش قرار خواهیم داد.
Beauty Render
کاری که میخواهیم انجام دهیم اصلاح تصویر رندر شده و بهبود کیفیت آن است. برای درک بهتر موضوع به تصویر زیر نگاه کنید. انچه میبینید اصلاح تصویر توسط المان های پردازشی صحنه می باشد. این المانها که به نام Render Pass شناخته می شوند لایه های مختلف رندرینگ را تشکیل میدهند. هر Render Pass یک ویژگی خاص از تصویر رندر شده را در خود ذخیره میکند. به عنوان مثال Shadow Pass محل قرارگیری و شدت سایه ها را در تصویر در خو.د ذخیره میکند.
متأسفانه تا زمانی که مفهوم دقیق لایه ها را درک نکرده باشیم، تنها میتوانیم از تقلید آموزشهای اینترنتی و مثالهای دیگران استفاده کرده و هیچگاه درک درستی از Composite لایه ها نداشته باشیم.
اجازه دهید بدون مقدمه برخی از مفاهیم اصلی لایههای رندرینگ را مورد بررسی قرار دهم و شما را با آنها آشنا کنم. این مبحث به موتور خاصی اشاره ندارد اما با توجه به اینکه موتور Vray بشدت در ایران پرطرفدار میباشد سعی میکنم که لایههای ذکر شده در موتور رندرینگ Vray را مورد بررسی قرار دهم. برای شروع هر کدام از لایههای رندرینگ را مرور خواهیم کرد. از وب سایت Vray این تصویر را پیدا کردم که لایه های مختلف رندرینگ آن را مشخص کرده بود. در ادامه مطلب المان های تصویری رندرینگ را برای این موضوع خواهیم دید.
Color Pass – این لایه رنگ اصلی شکل یا همان پارامتر Diffuse در بخش Material می باشد. به این لایه surface color نیز میگویند.
Diffuse Color Pass – این لایه از روشنایی مستقیم (Direct ) بروی سطح جسم بدست میآید. این لایه همان رنگ اصلی شکل را نمایش میدهد. در برخی از موتورهای رندرینگ این لایه همان رنگ Diffuse در Material می باشد. اما در برخی از موتورهای رندرینگ مانند Mental Ray و … این لایه از ضرب رنگ سطح جسم در روشنایی مستقیم وارد شده به جسم محاسبه می شود.
Diffuse Raw – این لایه از روشنایی مستقیم بروی سطح جسم بدست می آید. تفاوت Diffuse Color با Diffuse Raw در این است که Raw بدون ضرب در رنگ سطح جسم بدست میآید. در نتیجه Diffuse Raw Pass رنگ ترکیب شده نیست.
Ambient Pass– لایه نور محیطی که شده در Surface Color ضرب شده است. نور محیطی همان Environment Lighting در موتورهای رندرینگ است.
Ambient Raw Pass – لایه نور میحطی بدون ترکیب با surface color.
Specular pass– لایه بازتابهای Specular. در مورد Specular لایه Raw وجود ندارد در نتیجه این لایه خالص و بدون ترکیب با دیگر رنگهاست.
Shadow Pass – لایه سایه میباشد که در Surface Color ضرب شده است.
Shadow Raw Pass – لایه سایه به تنهایی و بدون ترکیب با surface color .
Indirect Pass – لایه روشنایی غیر مستقیم (indirect) و همانطور که متوجه شدهاید این لایه نیز در رنگ Surface Color ضرب شده است.
Indirect Raw Pass – لایه روشنایی غیر مستقیم به صورت خالص و بدون ترکیب با دیگر لایه ها.
Incandescence Pass – این لایه بسته به نوع موتور رندرینگ شما میتواند معانی مختلفی داشته باشد. اما در کل همان لایه self-illumination یا Incandescence می باشد. این لایه خالص بوده و با دیگر لایه ها ترکیب نشده است.
Ambient Occlusion Pass – لایه AO یکی از پرکاربردترین لایه هاست. یک مطلب کامل در این باره نوشتهام که میتوانید از این لینک آن را ملاحظه فرمایید. اصولاً از این لایه به صورت مستقیم در composite استفاده نمیشود زیرا بسیاری از لایه ها مانند Indirect pass و ambient دارای اطلاعات دقیقی از موانع نوری را ارائه میدهند اما نمیتوانید از آنها به عنوان لایه AO استفاده نمایید. توجه کنید که در اکثر موتورهای رندرینگ این گزینه به صورت پیشفرض غیرفعال است و درنتیجه باید قبل از رندر گزینه Ambient occlusion فعال نمایید، در غیر اینصورت از این لایه نمیتوانید استفاده نمایید.
Translucency Pass – این لایه جهت نمایش خصوصیات متریال های نیمه شفاف به کار برده می شود. در صورتی که متریال شما دارای خاصیت نیمه شفافی یا translucency باشد میتوانید از این لایه برای بدست آمدن رنگ و شدت آن استفاده نمایید. توجه داشته باشید که در بسیاری از موتورهای رندرینگ این لایه در surface color ضرب می شود. برای کسب اطلاعات بیشتر به راهنمای موتور رندرینگ خود مراجعه نمایید.
Subsurface Pass – این موضوع بسیار وابسته به موتور رندرینگ شماست. در بسیاری از موتورهای رندرینگ SSS را تقسیمبندی میکند و لایههای جداگانه ای برای هر یک در نظر میگیرند. اما در برخی از موتورهای رندرینگ فقط لایه رنگ و شدت را جداسازی میکنند. Subsurface color معرف رنگ و subsurface intensity معرف شدن و یا درجه نفوذ نور به زیر سطح ماده می باشد. اما در صورتی که از موتورهای رندرینگ تفکیک پذیر استفاده میکنید میتوانید از لایههای مجزای subsurface front -top و لایه subsurface-mid و لایه subsurface-botton-back استفاده نمایید. به منظور آشنایی با SSS میتوانید مطلبی را که قبلاً در سایت قرار دادهام را از این لینک ملاحظه فرمایید.
Refraction/Reflection
Reflection Pass – خوب کاملاً مشخص است که این لایه اطلاعات انعکاس و بازتاب نور را در خود قرار خواهد داد. اما یک نکته بسیار مهم در این لایه ذخیره میشود که باید به آن توجه نمود. در صورتی که از این لایه برای خواص انعکاس و … استفاده میکنید به خاطر داشته باشید که اطلاعات reflect به همراه اطلاعات fresnel reflection و surface color reflection نیز در این لایه ذخیره می شود. لازم به ذکر است که این لایه در لایه reflection filter ضرب شده است. پس این لایه انعکاس خالص نیست و همراه با خصوصیات انعکاسی fresnel refl. و reflection filter می باشد.
Reflection Filter Pass – این لایه هم که کاملاً مشخص است. در این لایه اطلاعات انعکاسی سطح و fresnel reflection با یکدیگر ترکیب شده و با مقدار درصد انعکاس ارائه می شود.
Raw Reflection Pass – این لایه انعکاس خالص را نمایش میدهد. در این لایه فقط خصوصیات انعکاس متریال و سطح بدون خواص fresnel reflection و reflection filter ذخیره می شود. پس در صورتی که یک لایه انعکاسی تفکیک شده نیاز دارید میتوانید از این لایه استفاده نمایید.
Refraction Pass – در این لایه نیز اطلاعات و جزییات عبور نور از سطح جسم را مشاهده خواهیم کرد. این لایه نیز شامل اطلاعات transparency و fresnel effects می باشد.
Refraction filter pass – در این لایه ترکیبی از اطلاعات شفافیت سطح و افکت fresnel با ضریبی از شدت شفافیت سطح ذخیره می شود.
Raw Refraction pass – همانند دیگر لایههای Raw این لایه نیز خالص و بدون ترکیب است و فقط اطلاعات refraction متریال در آن ذخیره می شود.
Self-illumination Pass – این لایه همانند لایه Incandescence بوده که در برخی از موتورهای به نام self-illumination شناخته می شود. اصولاً اطلاعات این دو لایه یکسان است.
MaterialID pass – این یک لایه ویژه در رندرینگ است و بسیار کاربردی و فنی. در این لایه به ازای هر متریال در صحنه به صورت تصادفی یک رنگ تولید شده و در تصویر رندر شده هر متریال با یک رنگ شناخته می شود. به عنوان مثال اگر یک متریال شفاف درست کرده باشید با یک رنگ خاص مثلاً آبی شناخته می شود. در نتیجه در تمام تصویر شما هرجا آن متریال وجود داشته باشد به رنگ آبی در میآید. این لایه برای مواردی که نیاز به تغییر یک متریال دارید کاربرد دارد. به عنوان مثال برخی موارد کارفرما از یک متریال خوشش نمی اید. من با استفاده از این لایه به راحتی آن متریال را بعد از رندرینگ تغییر میدهم.
Object ID Pass – این لایه همانند لایه Material ID است اما به جای اینکه به هر متریال یک رنگ تصادفی نسبت دهد به هر object درون صحنه یک رنگ تصادفی نسبت میدهد. از این لایه هم برای انتخاب Object ها در زمان Post production و composite استفاده میشود. میتوانید به راحتی یک موضوع را بعد از رندر انتخاب نمایید و فیلترها و افکت های خاصی بروی یک موضوع قرار دهید. بیشتر کاربرد این لایه در ماسکه کردن موضوعات درون صحنه می باشد.
Matte Pass
Matte Pass– این لایه میزان Alpha در متریال را نمایش میدهد. این لایه ترکیبی از موضوعات و متریالها را به نمایش میگذارد که در زمینه ماسکه کردن بر اساس نوع ماده و آبجکت ها کاربرد دارد.
UV Pass – این لایه هم که کاملاً مشخص است. ارزش UV را بروی سطح نمایش میدهد. در زمینه جابجایی متریال ها بعد از رندرینگ از این لایه میتوانید کمک بگیرید.
Opacity – این لایه مشخصاً میزان شفافیت و کدر بودن سطح را مشخص میکند.
Motion Vector – این لایه بردار حرکتی موضوعات را به صورت دو بعدی ذخیره میکند. از این لایه برای ایجاد افکت های حرکتی مانند Motion blur در زمان Composite استفاده میکنند. با استفاده از این لایه میتوانید ضریب ماتی حرکتی و دیگر پارامترها را تعیین نمایید.
Velocity Vector – این لایه مشابه Motion Vector می باشد.
GI PASS
Global illumination Pass – این لایه رنگ سطوح در برخورد نورهای غیر مستقیم که توسط محاسبات روشنایی عمومی(GI) بوجود میآید را نمایش می دهد. توجه کنید که محتوای این لایه بدون رنگی است که از نورهای مستقیم (direct light) و انعکاس (reflection) بدست می آید. همانطور که در بالا ذکر شد لایههای direct light و reflection جداگانه محاسبه می شوند. این لایه به صورت خالص محتوای GI را نمایش نمیدهد بلکه از ضرب لایه Raw Global illumination و لایه diffuse بدست میآید.
Raw Global Illumination Pass – این لایه اثر نورهای غیر مستقیم (indirect Lighting) را بروی سطوح در خود ذخیره میکند. همانطور که متوجه شدید در لایه global illumination از کلمه رنگ استفاده کردم اما در اینجا فقط از کلمه اثر نورهای غیر مستقیم. زیرا در این لایه فقط محاسبات GI نمایش داده میشود و کاری به لایه diffuse ندارد.
Z-Depth Pass – این لایه عمق میدان را از محل دوربین به سمت داخل صحنه محاسبه میکند و در خود ذخیره میکند. از این لایه برای افکت های بسیاری مانند Depth of field و … استفاده میکنند.
لایههای معرفی شده از جمله بیشترین کاربردها می باشند. لایههای بسیار زیادی دیگر وجود دارد که کاربرد تخصصی تری داشته و به دانش بیشتری برای کار با آنها نیاز خواهیم داشت. خوب در مرحله اول ما مفاهیم و معنای لایههای را شناختیم. حال باید از آنها به طرز صحیحی در composite استفاده نماییم.
خوب در این خصوص آموزشهای بسیار زیادی در اینترنت وجود دارد. بسیاری از این آموزشها هم به زبان فارسی هستند و میتوانید از آنها استفاده نمایید. من قصد ندارم که آموزش قدم به قدم این کار را اینجا قرار دهم. شما میتوانید با یک جستجوی ساده در اینترنت منابع بسیار زیادی را پیدا نمایید.
نکتهای که میخواهیم در ادامه به آن بپردازیم واژهای به نام Beauty Render است. رندر زیبا اصطلاحی رایج در بین رندرمن های دنیاست. اینکه چه رندری زیبا گفته میشود را در ادامه با هم مرور خواهیم کرد.
Beauty Render به چیدمان Render Passها گفته میشود به گونهای که با انتخاب چند لایه رندرینگ و ترکیب آنها، تصویر به فرم زیبایی تبدیل شود. این تکنیک بسیار رایج بوده و بسیاری از کاربران برای تحویل پروژه های خود بدون یادگیری فنون composite میتوانند از فرمولهای Beauty Render استفاده نمایند.
فرمول رندر زیبا به شما یاد خواهد داد که با انتخاب چند لایه مناسب و ترکیب آنها با یکدیگر میتوانید تصویری بسیار زیبا از رندر خود داشته باشید. این فرمول ثابت نیست و هر کس میتواند چیدمان مخصوص به خود را پیدا و از آن استفاده نماید.
در Beauty Render سعی میشود که از پیچیدگی کار جلوگیری شود از این رو رسم است که فقط از حالت Add در ترکیب لایه ها استفاده میکنند. در نتیجه از حالات multiply و screen و … در رندر زیبا استفاده نخواهد شد و فقط لایه ها با یکدیگر جمع می شوند. این کار را در Photoshop , after effects ، Nuke و fusion و یا هر نرمافزار compositor دیگری میتوانید پیادهسازی کنید. یک راهنمای کوچک از این کار را قبلاً در سایت مطرح کردهام که میتوانید از این لینک آن را مشاهده نمایید.
راه کارهای رندر زیبا بسیار زیاد است و در اینجا سعی میکنم برای هر یک از موتورها یک مثال بیاورم. خوب ابتدا به سراغ کاربران موتور Vray می رویم.
در موتور رندر V-Ray میتوانیم از فرمول زیر برای بدست آمدن یک رندر زیبا استفاده کنیم.
Beauty Render = Global Illumination + lighting + Specular +Reflection +refraction +self-illumination
در صورتی که در کار خود از SSS نیز استفاده کردهاید میتوانید به آخر فرمول لایه SSS را نیز اضافه کنید.
به عنوان مثال دیگر روش ساده و سریع زیر را نیز تجربه کنید
Beauty Render = Global illumination + Lighting + reflection +refraction+self-illumination +specular
در Mental Ray میتوانید از راهکار زیر استفاده نمایید
Beauty Render = Diffuse +indirect+specular+reflection+refraction+incandescent+Scatter
فرمول بالا در منتال ری بسیار معروف است. میتوانید از فرمول زیر نیز استفاده نمایید
Beauty Render = Diffuse +Ambient+SSS+indirect Lighting+incandescent+Specular+reflection+refraction
در موتور Arnold Renderer میتوان از فرمول زیر استفاده نمود .
Beauty Render = direct lighting+indirect Lighting+specular+refraction+scatter
در این موتور میتوان به صورت دقیقتر به روش زیر نیز عمل نمود.
Beauty Render = direct lighting+indirect Lighting+indirect specular+refraction+deep scatter+mid scatter + shallow scatter +primary specular +secondary specular
رندر زیبا در موتور رندرینگ های دیگر نیز بسیار مشابه خواهد بود. با یک جستجوی ساده میتوانید آنها را در اینترنت پیدا کنید.
اما این Beauty Render به چه دردی میخورد؟ تا زمانی که شما نمیتوانید روش درست composite و استفاده از render pass ها را اجرا کنید میتوانید از فرمولهای بالا و فقط با استفاده از Add کردن لایه ها بروی یکدیگر یک رندر بسیار زیبا داشته باشید. بعد از کمی تمرین خواهید توانست که از render passها استفاده های بهتری ببرید. همچنین میتوانید شناخت بهتری بروی خواص ترکیبی لایه ها داشته باشید و از ترکیب های screen, add , subtract, multiply, darken, lighten و … نیز استفاده نمایید.