نود Principled BSDF در بلندر چیست؟
نود Principled BSDF قلب رندر فیزیکی در بلندر است؛ این مقاله میگوید Base Color، Metallic، Roughness و IOR چه میکنند و چرا تنظیم اشتباه Metallic، متریال را پلاستیکی نشان میدهد.

نود Principled BSDF در بلندر چیست و چرا تنها نودی است که واقعاً لازم دارید؟
اگر مقالهی قبلی ما دربارهی ماهیت رندر را خوانده باشید، میدانید که رندرر بلندر در نهایت کارش محاسبهی این است که نور از هر نقطهی یک سطح، به چه شکلی به دوربین برمیگردد. نود Principled BSDF همان جایی است که این محاسبه واقعاً اتفاق میافتد. با این حال بسیاری از کاربران بلندر، این نود را فقط بهعنوان چند اسلایدر رنگ و براقیت میشناسند و بدون فهمیدن منطق پشتش، با آزمون و خطا تنظیمش میکنند. همین آزمون و خطا، دلیل اصلی متریالهای پلاستیکی یا فلزات کدر و غیرواقعی در کار خیلی از تازهکارهاست.
در این مقاله دقیقاً همان چیزی را بررسی میکنیم که پشت این نود میگذرد؛ نه فقط اینکه هر اسلایدر را کجا ببرید.
- مفهوم PBR (Physically Based Rendering) چیست و چرا اصلاً به آن نیاز داشتیم
- معماری واقعی نود Principled BSDF؛ این نود در واقع ترکیبی از چند BSDF سادهتر است
- کارکرد دقیق مهمترین پارامترها: Base Color، Metallic، Roughness، IOR/Specular و Normal
- چرا Metallic و Roughness بیشترین سهم را در باورپذیر بودن یک متریال دارند
- رایجترین اشتباهاتی که متریال شما را غیرواقعی نشان میدهند
- تفاوتهای نسخهی جدید Principled BSDF (بلندر ۴ به بعد) با نسخهی قدیمی
.webp)
مفهوم PBR چیست و چرا شیدرهای قدیمی کنار گذاشته شدند
پیش از آنکه اصطلاح PBR باب شود، اکثر نرمافزارهای سهبعدی از مدلهای شیدینگ سادهتری مثل Phong یا Blinn-Phong استفاده میکردند. این مدلها بهجای شبیهسازی واقعی رفتار نور، فقط یک فرمول ریاضی ساده برای ایجاد یک هایلایت نوری روی سطح داشتند. مشکل این روش این بود که پارامترهایش (مثل Specular Power) هیچ ارتباط فیزیکی مشخصی با دنیای واقعی نداشتند. یک هنرمند برای رسیدن به ظاهر «فلز صیقلی» یا «چوب مات» باید عدد را حدس میزد و نتیجه هم زیر نورهای مختلف، رفتار غیرقابل پیشبینی داشت.
ورود PBR این مشکل را از ریشه حل کرد. بهجای فرمولهای دلخواه، پارامترهای متریال طوری طراحی شدند که واقعاً معادل خاصیتهای فیزیکی سطح باشند؛ زبری واقعی سطح، جنس رسانا یا نارسانا بودن ماده، و ضریب شکست نور. نتیجه این است که یک متریال PBR، زیر هر نوری (چه استودیویی، چه HDRI بیرونی) بهطور قابل پیشبینی رفتار میکند، چون بر پایهی معادلات نوری واقعی ساخته شده، نه یک ترفند بصری.
نود Principled BSDF در بلندر، پیادهسازی این ایده است. اسمش هم از همین جا میآید؛ این نود بر اساس مدل Principled BRDF ساخته شده که اولین بار توسط استودیوی دیزنی برای انیمیشنهایشان معرفی شد. هدف اصلی آن مدل هم دقیقاً همین بود؛ چند پارامتر ساده و قابلفهم برای هنرمند، که زیرشان از فیزیک نور واقعی پیروی میکنند.
معماری واقعی Principled BSDF؛ یک نود، چند لایهی نوری
نکتهای که خیلی از کاربران نمیدانند این است که Principled BSDF در واقع یک شیدر واحد نیست، بلکه ترکیبی از چند BSDF سادهتر است که بلندر آنها را زیر یک رابط واحد پنهان کرده. وقتی رندرر میخواهد نور برخوردی به یک سطح را محاسبه کند، این محاسبه بین چند لایه تقسیم میشود:
یک لایهی Diffuse مسئول نوری است که به داخل سطح نفوذ کرده و در جهتهای تصادفی پخش میشود؛ همان چیزی که رنگ اصلی یک سطح مات را میسازد. کنار آن یک لایهی Specular بر پایهی توزیع GGX قرار دارد که مسئول بازتاب آینهای نور است؛ همان هایلایتهای براق روی سطح. این دو لایه با هم ترکیب میشوند تا رفتار عمومی سطوح نارسانا (Dielectric) مثل پلاستیک، چوب یا پوست را بسازند.
برای فلزات، ماجرا فرق میکند. فلزات نور را جذب و بازتاب میکنند، نه اینکه از خودشان عبور دهند؛ به همین دلیل لایهی Diffuse برایشان بیمعنی است. پارامتر Metallic دقیقاً همین سوییچ است؛ وقتی به سمت ۱ میرود، بلندر لایهی Diffuse را کنار میگذارد و رنگ Base Color را مستقیماً وارد معادلهی بازتاب Specular میکند، چون رنگ فلزات (مثل رنگ طلایی طلا) در واقع از رنگی بودن خود بازتابش میآید، نه از یک رنگدانهی زیرین.

از بلندر ۴.۰ به بعد، معماری این نود بهصورت لایهای بازطراحی شد و لایههای اضافهتری مثل Coat (یک پوشش شفاف روی سطح، مثل روکش خودرو یا لاک ناخن)، Sheen (بازتاب نرم لبهای، برای پارچه) و Transmission (عبور نور از مواد شفاف مثل شیشه) هم به همین ساختار اضافه شدند. نکتهی مهم اینجاست که این تغییر، فقط اضافهشدن چند اسلایدر جدید نبود؛ نحوهی ترکیبشدن نوری این لایهها هم دقیقتر شد و پیشفرض GGX هم به Multiscatter GGX تغییر کرد، که باعث میشود سطوح بسیار زبر، انرژی نوری خود را بهتر حفظ کنند و بهجای تیره شدن غیرواقعی، رفتار درستتری داشته باشند. اگر فایلهای قدیمیتر را در نسخهی جدید باز کنید، ممکن است متریالهای فلزی زبر کمی روشنتر از قبل به نظر برسند؛ این یک باگ نیست، دقیقتر شدن مدل نوری است.برای دیدن اینکه این تفاوتهای نوری بین دو موتور رندر بلندر دقیقاً چطور خودشان را در تصویر نهایی نشان میدهند، مقالهی تفاوت EEVEE و Cycles را هم بخوانید.
پارامتر Base Color؛ رنگ زیرین، نه رنگ نهایی
پارامتر Base Color اولین چیزی است که همه با آن آشنا هستند، اما تفسیر درستش بسته به مقدار Metallic فرق میکند. برای یک سطح نارسانا (Metallic روی صفر)، Base Color همان رنگ ذاتی ماده زیر نور سفید خنثی است؛ رنگی که ماده جذب نمیکند و بازمیتاباند. برای یک سطح فلزی، همانطور که گفته شد، Base Color مستقیماً رنگ بازتاب آینهای فلز را تعیین میکند، مثل رنگ زرد مس یا طلایی برنز.

یک اشتباه رایج این است که تکسچرهای رنگی (مثل عکس گرفتهشده از یک سطح واقعی) مستقیم و بدون تنظیم Color Space وارد Base Color میشوند. تکسچرهای رنگی باید در فضای رنگ sRGB خوانده شوند، در حالی که تکسچرهای دادهای مثل Roughness یا Metallic باید Non-Color باشند. اگر این تنظیم اشتباه شود، رنگها دوبار گاما اعمال میشوند و نتیجه بیش از حد روشن یا کدر به نظر میرسد؛ همان بحثی که در مقالهی مدیریت رنگ بلندر با جزئیات بیشتری توضیح دادیم.
پارامتر Metallic؛ سوییچ دو حالته، نه یک اسلایدر پیوسته
از نظر فیزیکی، یک ماده یا رسانا (فلز) است یا نارسانا (Dielectric)؛ حد وسطی وجود ندارد. به همین دلیل، در عمل، مقدار Metallic باید تقریباً همیشه یا ۰ باشد یا ۱، نه یک عدد میانی مثل ۰.۵. تنها استثنای منطقی برای مقدار میانی، جایی است که یک تکسچر Metallic Mask دارید که مرز بین بخشهای فلزی و غیرفلزی یک آبجکت واحد را مشخص میکند، مثل یک ماشین که بدنهاش رنگشده (نارسانا) ولی لبههای خطوخشخوردهاش فلز خام (رسانا) نشان میدهد. در آن حالت، مقادیر میانی فقط در مرز انتقال بین دو ناحیه ظاهر میشوند تا لبهها بهجای پرش ناگهانی، بهآرامی تغییر کنند.

استفاده از عدد ۰.۵ برای «یککمی فلزی نشان دادن» یک سطح، رایجترین دلیلی است که متریالهای تازهکارها را کدر و پلاستیکی نشان میدهد؛ چون رندرر عملاً یک ترکیب فیزیکی بیمعنی از دو رفتار نوری متفاوت را محاسبه میکند که در طبیعت وجود ندارد.
پارامتر Roughness؛ آنچه واقعاً کنترل میکند
پارامتر Roughness زبری میکروسکوپی سطح را کنترل میکند؛ نه شدت نور، نه رنگ. نود Principled BSDF فرض میکند هر سطح، در مقیاس بسیار ریز، از میلیونها سطح کوچکتر (Microfacet) تشکیل شده که هرکدام جهت کمی متفاوتی دارند. وقتی Roughness پایین است (نزدیک صفر)، این سطوح ریز تقریباً همه همجهتاند، پس نور در یک جهت مشخص و متمرکز بازتاب میشود؛ همان چیزی که یک بازتاب شفاف و آینهای میبینیم. وقتی Roughness بالا میرود، جهت این سطوح ریز پراکندهتر میشود و نور بهجای یک جهت مشخص، در محدودهی وسیعتری پخش میشود؛ همان چیزی که هایلایت را بزرگ و کدر نشان میدهد.

نتیجهی عملی این مکانیزم: Roughness باعث تیره یا روشنتر شدن کلی سطح نمیشود، فقط اندازه و شدت هایلایت را تغییر میدهد. اگر یک متریال بیش از حد تیره بهنظر میرسد، مشکل معمولاً از Roughness نیست؛ از نورپردازی صحنه یا مقدار Base Color است.
پارامترهای IOR و Specular؛ همان چیزی که «حس جنس» میسازد
عدد IOR یا Index of Refraction، ضریب شکست نور در ماده است و مستقیماً تعیین میکند یک سطح نارسانا، در زاویهی روبهرو (Head-on) چقدر از نور را بازتاب میکند. آب IOR حدود ۱.۳۳ دارد، شیشهی معمولی حدود ۱.۵ و الماس نزدیک ۲.۴۲. هرچه این عدد بالاتر برود، سطح در نگاه مستقیم هم بازتاب بیشتری نشان میدهد؛ همان چیزی که الماس را حتی از روبهرو براق نشان میدهد، برخلاف آب.

نکتهی مهم این است که تغییر همین یک عدد، بدون دستزدن به هیچ پارامتر دیگری، میتواند حس یک سطح را از «پلاستیک ارزان» به «شیشهی ضخیم» تغییر دهد؛ چون مغز انسان همین رفتار زاویهای بازتاب (Fresnel Effect نام دارد) را ناخودآگاه برای تشخیص جنس مواد به کار میبرد. بیشتر کاربران این پارامتر را دستنخورده رها میکنند و مقدار پیشفرض ۱.۵ (که تقریباً برای اکثر پلاستیکها و شیشههای معمولی مناسب است) را نگه میدارند، در حالی که تنظیم دقیقتر آن یکی از سریعترین راهها برای واقعیتر کردن یک متریال است.
ورودی Normal؛ جزئیاتی که هندسه واقعی نیست
ورودی Normal روی خود شکل هندسی آبجکت هیچ تأثیری نمیگذارد؛ فقط به موتور رندر میگوید هنگام محاسبهی نور، جهت سطح را در هر پیکسل کمی متفاوت از جهت واقعی هندسه در نظر بگیرد. این یعنی میشود جزئیات ریزی مثل ترکهای سنگ یا بافت پارچه را بدون افزودن یک پلیگان اضافه به مدل، روی سطح شبیهسازی کرد. البته این یک شبیهسازی است، نه واقعیت؛ اگر از زاویهی بسیار تیز به لبهی یک سطح با Normal Map نگاه کنید، هندسهی واقعی زیرش (که صاف است) خودش را نشان میدهد. برای جزئیاتی که باید واقعاً روی خط سیلوئت (Silhouette) شیء هم دیده شوند، باید سراغ Displacement رفت، نه Normal.

پارامتر Transmission؛ عبور واقعی نور از حجم ماده
پارامتر Transmission برای موادی طراحی شده که نور از داخلشان عبور میکند، نه فقط از سطحشان بازتاب میشود؛ شیشه، آب، پلاستیک شفاف. وقتی این پارامتر روی صفر است، Base Color فقط رنگ سطح را نشان میدهد و نور اجازهی نفوذ به داخل ماده را ندارد. وقتی روی یک میرود، نور میتواند وارد حجم شیء شود، در مسیرش بر اساس IOR منحرف (Refract) شود و از سمت دیگر خارج شود؛ همان چیزی که یک لیوان آب، پشت خودش را کج و بزرگنماییشده نشان میدهد.

اشتباه رایج اینجاست که خیلی از کاربران برای شبیهسازی شیشه، بهجای Transmission، فقط Alpha را کم میکنند. این کار سطح را نیمهمحو نشان میدهد، اما هیچ انحراف نوری واقعی ایجاد نمیکند؛ نتیجه بیشتر شبیه یک پلاستیک کدر با شفافیت مصنوعی است تا شیشهی واقعی. برای شیشهی واقعی، Transmission باید روشن باشد و IOR هم روی عددی نزدیک به جنس واقعی (حدود ۱.۴۵ تا ۱.۵ برای شیشهی معمولی) تنظیم شود.
نکتهی دیگر اینکه رندرگیری صحنههای پر از شیشه در Cycles، بهخاطر مسیرهای پیچیدهی نوری که هر اشعه باید طی کند، معمولاً کندتر از سطوح مات است و به تعداد Bounce بیشتری برای Refraction نیاز دارد؛ این تنظیم را در پنل Light Paths پیدا میکنید.همین مسیرهای نوری اضافه، یکی از دلایل اصلی نویزیتر شدن رندر صحنههای شیشهای هم هست؛ اگر میخواهید بدانید این نویز از کجا میآید و دنویزر چطور آن را جبران میکند، مقالهی نویز و دنویزینگ در رندر بلندر را ببینید.
گزینهی Thin Walle که در نسخههای جدید بلندر کنار Transmission اضافه شده، دقیقاً برای مشکلی طراحی شده که خیلیها با آن دستوپنجه نرم میکنند؛ شبیهسازی سطوحی مثل لیوان پلاستیکی نازک، حباب صابون، عینک یا یک کیسهی پلاستیکی، که با اینکه شفافاند اما هیچ ضخامت واقعی داخلی ندارند. بدون فعالکردن این گزینه، بلندر فرض میکند شیء یک حجم توپر و ضخیم از جنس شفاف است، پس نور را هنگام ورود و هنگام خروج، دو بار منحرف (Refract) میکند؛ همان چیزی که برای یک لیوان آب واقعی درست است، اما یک ورقهی نازک پلاستیک را بهجای شفاف، کدر و پرت (Distorted) نشان میدهد. با فعالکردن Thin Walle، بلندر دیگر انحراف نوری داخل حجم را حساب نمیکند و سطح را بهعنوان یک لایهی صفر-ضخامت (بدون پشت و رو) در نظر میگیرد؛ نتیجه، شفافیتی تمیز و بدون آن اعوجاج غیرواقعی است. قانون ساده برای انتخاب بین این دو حالت: اگر شیء شما در دنیای واقعی ضخامت محسوسی دارد (مثل یک لیوان آب یا یک تکه یخ)، Thin Walle را خاموش نگه دارید؛ اگر شیء یک پوسته یا ورقهی نازک است (مثل حباب، فیلم پلاستیکی یا شیشهی خیلی نازک)، آن را روشن کنید.

لایههای Coat و Sheen؛ اضافههای نسخهی جدید
پارامتر Coat یک لایهی نازک و شفاف روی سطح اصلی متریال شبیهسازی میکند؛ دقیقاً مثل روکش شفاف روی بدنهی رنگشدهی خودرو یا لاک روی چوب. نکتهی مهم این است که Coat یک لایهی Specular کاملاً مستقل از لایهی اصلی است، با IOR و Roughness مخصوص به خودش؛ یعنی میتوانید یک سطح چوبی زبر (Roughness بالا در لایهی اصلی) داشته باشید که رویش یک پوشش صیقلی و براق (Roughness پایین در Coat) کشیده شده، دقیقاً مثل یک میز چوبی جلادار واقعی.

پارامتر Sheen برای موادی مثل پارچه و مخمل طراحی شده که یک بازتاب نرم و پخششده در لبههای سطح (زاویههای تند نسبت به دوربین) دارند؛ همان درخشش ملایمی که روی لبهی یک پارچهی مخملی زیر نور میبینید و با مدل معمولی Specular قابل شبیهسازی نیست، چون آن مدل برای سطوح سخت طراحی شده، نه الیاف نرم.
پارامترهای Emission و Alpha؛ ساده اما پرکاربرد
پارامتر Emission به سطح اجازه میدهد خودش منبع نور باشد، بدون نیاز به یک المان نوری جداگانه در صحنه؛ برای صفحهنمایشها، نئون، یا هر سطح درخشان مفید است. مقدار Emission Strength تعیین میکند این نور چقدر روی سطوح اطراف تأثیر میگذارد؛ عددهای بالا (مثلاً بالای ۱۰ تا ۲۰) برای منابع نوری واقعی مثل لامپ لازم است، چون مقیاس نوری بلندر با مقیاس رنگ ۰ تا ۱ که برای Base Color استفاده میشود، یکی نیست.


پارامتر Alpha هم شفافیت سادهی سطح را کنترل میکند، بدون هیچ محاسبهی انحراف نوری؛ برای برگ درخت، تور سیمی، یا هر جایی که فقط باید بخشی از سطح دیده نشود، نه اینکه نور از داخل حجم عبور کند. به همین دلیل، Alpha و Transmission دو ابزار برای دو مسئلهی کاملاً متفاوتاند و نباید جای هم استفاده شوند.
ورکفلو Metallic در برابر ورکفلو Specular/Glossiness
اگر تا حالا از تکسچرهای دانلودی برای متریال استفاده کرده باشید، احتمالاً به این برخوردهاید که بعضی پکهای تکسچر بهجای فایل Metallic و Roughness، فایلهای Specular و Glossiness ارائه میدهند. این دو، دو ورکفلوی متفاوت برای رسیدن به همان نتیجهی فیزیکی هستند و ریشهشان به نرمافزارهای مختلفی برمیگردد که پیش از استانداردشدن ورکفلو Metallic رایج بودند.
در ورکفلوی Specular/Glossiness، بهجای یک سوییچ دوحالتهی Metallic، یک رنگ Specular مستقیم مشخص میکند سطح چقدر و با چه رنگی بازتاب آینهای دارد، و Glossiness هم دقیقاً برعکس Roughness عمل میکند؛ یعنی عدد بالا بهجای سطح زبر، سطح صافتر را نشان میدهد. نود Principled BSDF بلندر، بهطور بومی ورکفلوی Metallic را پیادهسازی کرده، پس اگر تکسچرهایی با ورکفلوی Specular/Glossiness دارید، باید یا از یک نود تبدیل (مثل معکوسکردن Glossiness با یک نود Invert Color برای رسیدن به Roughness) استفاده کنید، یا از ابتدا بهدنبال نسخهی Metallic/Roughness همان تکسچر بگردید که امروز اکثر سایتهای تکسچر (مثل Poly Haven) ارائه میدهند.
چرا Metallic و Roughness مهمترین پارامترها هستند؟
از بین همهی پارامترهای Principled BSDF، Metallic و Roughness بیشترین سهم را در باورپذیر بودن یک متریال دارند؛ به این دلیل ساده که تقریباً همهی چیزی که چشم انسان برای تشخیص «این چه جنسی است» استفاده میکند، ترکیب همین دو مشخصه است. یک سطح فلزی و صاف را بلافاصله از یک سطح فلزی و زبر (مثل فولاد براق در برابر فولاد ساییدهشده) تشخیص میدهیم، دقیقاً به کمک همین دو پارامتر، حتی وقتی رنگ پایه یکسان باشد. به همین دلیل، اگر بخواهید فقط با تنظیم دو پارامتر، بیشترین بهبود بصری را در یک متریال ایجاد کنید، وقت گذاشتن روی Metallic و Roughness (و ترجیحاً با یک Roughness Map بهجای مقدار ثابت) نسبت به وقتگذاشتن روی سایر پارامترها بازده بیشتری دارد.
اشتباهات رایجی که متریال را غیرواقعی نشان میدهند :
اگر متریال شما با وجود تنظیم بهنظر درست پارامترها، همچنان پلاستیکی یا غیرطبیعی بهنظر میرسد، احتمالاً یکی از این موارد اتفاق افتاده:
اگر فلزات شما بهجای فلز، شبیه پلاستیک رنگی بهنظر میرسند، احتمالاً Metallic را روی یک مقدار میانی مثل ۰.۵ گذاشتهاید، در حالی که باید ۱ باشد یا از یک تکسچر ماسک استفاده کنید.
اگر همهی سطح، بدون توجه به زاویهی دید، بهطور یکنواخت خیلی روشن یا خیلی تیره است، احتمالاً IOR را با یک مقدار غیرمنطقی (خیلی پایین یا خیلی بالا) برای جنس موردنظر تنظیم کردهاید.
اگر تکسچر Roughness یا Metallic روی سطح، رنگهای اشتباه یا لکهدار نشان میدهد، احتمالاً Color Space این تکسچرها روی sRGB مانده، در حالی که باید Non-Color باشد.
اگر یک سطح شیشهای یا مایع، کدر و مات بهنظر میرسد، احتمالاً پارامتر Transmission را روی صفر گذاشتهاید و بهجایش با Alpha یا شفافیت ساده کار میکنید؛ Transmission برای عبور واقعی نور از حجم ماده لازم است، نه فقط دیدنِ پشتِ سطح.
جمعبندی و نکته کلیدی
نود Principled BSDF یک جعبهی سیاه با چند اسلایدر تزئینی نیست؛ ترکیبی از چند مدل نوری فیزیکی است که هرکدام نقش مشخصی دارند. نکتهی طلایی این مقاله این است: قبل از اینکه یک پارامتر را دستکاری کنید، از خودتان بپرسید این ماده در دنیای واقعی رسانا است یا نارسانا، و سطحش در مقیاس میکروسکوپی صاف است یا زبر. جواب همین دو سوال، تقریباً مقدار درست Metallic و Roughness را برایتان مشخص میکند، بدون نیاز به حدسزدن.
گام بعدی
برای فهم عمیقتر اینکه چرا این محاسبات نوری روی GPU یا CPU چقدر طول میکشند و رندرر بلندر پشت صحنه دقیقاً چه میکند، پیشنهاد میکنیم مقالهی ما دربارهی ماهیت رندر در بلندر را هم بخوانید. اگر هم میخواهید همین مفاهیم را عملی و روی پروژههای واقعی تمرین کنید، بخش متریال و شیدینگ دورهی جامع بلندر بیتگرف دقیقاً همین مسیر را قدمبهقدم پوشش میدهد.




گفتگو و سوالات شما
۰در این قسمت میتوانید سوال یا نظر خود در مورد مقاله را مطرح کنید.
برای ثبت دیدگاه ابتدا وارد شوید
ورود به حسابهنوز دیدگاهی ثبت نشده. اولین نفر باشید!