shader-vs-material-feature-image

تفاوت Shader و Material؟

Shader چیست؟ Material چیست؟ این دو چه تفاوتی با هم دارند؟ در بحث پردازش تصاویر سه بعدی رایانه‌ای این دو کلمه در کنار یکدیگر به وفور استفاده می‌شوند. Shader در لغت به معنای سایه‌زن است و البته کاری هم که انجام می‌دهد واقعا سایه‌زنی است! در دنیای واقعی انسانها برای شناخت پیرامون خویش از چشم کمک زیادی می‌گیرند. مغز به کمک چشم، با دریافت بازتاب نور اشیاء پی به وجود و ماهیت آنها می‌برد. هنگامی که نور بر جسمی تابیده شود، بسته به شکل هندسی و جنس ماده تشکیل دهنده آن، بعضی از قسمتهای آن جسم روشن‌تر و برخی نقاط به خاطر وجود سایه، تیره‌تر می‌شوند. همچنین بسته به صیقلی یا زبر بودن، شفاف یا کدر بودن و عوامل دیگر میزان انعکاس و شکست نور تغییر می‌کند. بنابراین مغز انسان صرفا با تحلیل نقاط روشن و تیره ناشی از نورپردازی، قادر به درک آن جسم است.
به طور خلاصه سایه‌ها نقشی اساسی در فهم انسان از فضای سه بعدی (Perspective) ایفا می‌کنند. کاری که شیدر یا سایه‌زن انجام می‌دهد دقیقا همین است: شبیه سازی سایه‌های روشن و تاریک روی سطح اجسام. در خط مجرای (Pipeline) پردازش تصاویر سه بعدی، پردازش شیدرها یا سایه‌زنها معمولا در آخرین فاز انجام می‌شود. از دید فنی، سایه‌زنها مجموعه‌ای از دستورالعملها هستند که پردازشگر گرافیکی (GPU) قادر به پردازش آن است. بدون سایه‌زنها تصویر سه بعدی قابل رویت نخواهد بود و بسیاری از جلوه‌های ویژه شامل خاک، آب، آتش، دود و مه و غیره تنها با استفاده از سایه‌زنها قابل رویت هستند. در شکل زیر، چهار شیء با شکل هندسی متفاوت، سایه‌زنی شده‌اند.

shader-4-object

پایه‌ای‌ترین سایه‌زن Diffuse نام دارد که از یک تکسچر (تصویر بافت) و یک رنگ به هنگام سایه‌زنی استفاده می‌کند. هر سایه‌زنی هنگام پردازش می‌تواند از داده‌های مختلفی استفاده کند مثل تکسچر Diffuse، رنگ، میزان Tile شدن در محور افقی و عمودی، میزان Offset در محور افقی و عمودی و غیره. از Material برای نگه‌داری و تنظیم این داده‌ها استفاده می‌شود. در موتور بازی یونیتی، متریالها می‌توانند داده‌ها مختلفی را برحسب نیاز سایه‌زن در خود نگه دارند ولی از میان آن داده‌ها یکی اجباری است و حتما باید تعریف شود: نام سایه‌زن. زمانی که در یونیتی یک متریال ساخته می‌شود ابتدا باید نام سایه‌زن آن مشخص شود و سپس بنا برنیازهای آن سایه، یونیتی داده‌های دیگر را در دسترس قرار می‌دهد.
مثلا می‌توان یک متریال ساخت که از سایه‌زن Diffuse و یک تکسچر کاشی برای رندر کردن کمک می‌گیرد. به عکس زیر نگاه کنید.

shader-material

سایه‌زنها به طور معمول روی اشیاء اعمال می‌شوند ولی نوع دیگری از سایه‌زنها وجود دارد که بر روی صفحه و پس از پردازش نهایی تصویر انجام می‌شود. از این روی به آنها Fullscreen Shader یا Image Effect و یا Postprocessing Effect نیز گفته می‌شود. فیلتر Anti-aliasing یا فیلتر Anisotropic مثالی از این سایه‌زن است.
به طور کلی سایه‌زنی جز جدایی ناپذیر پردازش تصاویر سه بعدی است که به دلیل تعدد اشیاء در یک صحنه می‌تواند، پردازش آنها سنگین می‌شود و به همین خاطر این پردازشها مستقیما در پردازنده گرافیکی (GPU) انجام می‌شود تا سرعت محاسبات افزایش یابد و راندمان کار بالاتر برود.

Facebooktwittergoogle_plustelegramredditpinterestlinkedinmail

1دیدگاه برای“تفاوت Shader و Material؟

  1. عالی بود ، استفاده کریم

ارسال دیدگاه

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *