«یا اللهُ یا رَبِّ یا حَیُّ یا قَیّوم یا ذَالجَلالِ وَ الاکرام اَسئَلُکَ بِاسمِکَ اَلعَظیم اَلاَعظَم اَن تَرزُقَنی رِزقاً حَلالاً طَیِّباً بِرَحمَتِکَ الواسِعَه یا اَرحَمَ الرّاحِمِین.»
شیدر چیست؟ what is shader in game development :: گیم اور _ بازیسازی با unity + مطالب متفرقه

گیم اور _ بازیسازی با unity + مطالب متفرقه

آموزش های علمی با اجازه ی خدا تقدیم به هرکس خدا بخواد

آموزش های علمی با اجازه ی خدا تقدیم به هرکس خدا بخواد

به نام خدا
--
گروه قدیم ما promakers.ir یا پرومیکرز بود که بالای هزار اموزش توش ساخته بودم به اسم sajjad3011 ولی حیف ادمین سایتش عوض کرد
حالا سوالی بود کاری بود این شمارمه

قدیمیا دلم براتون تنگ شده... فقط معرفی کنید توی پیامک یا تماس یاد بیارید.
اگه جواب ندادم شاید موقعیت نداشته باشم.
بگید توی پیام از بچه های پرومیکرز هستید.

---
سوالی بود بذارید
نظر خصوصی نذارید
پاسخش سخته
دوست داشتید شماره بذارید تو واتساپ یا ایتا یا .... گروه بزنیم.
09358077198

بایگانی
پیوندها

شیدر چیست؟ what is shader in game development

شنبه, ۱ آبان ۱۳۹۵، ۰۵:۳۰ ب.ظ

gameover.blog.ir

مترجم:sajjad3011


shader ، سایه گذار:

در صنعت گرافیک های کامپیوتری،شیدر یک برنامه ی کامپیوتری است که عمل  سایه زدن را یا shading انجام می دهد.


shading ، سایه زدن :

عملیات تولید سطوح مناسب از رنگ در یک تصویر، یا، در دوران مدرن، نیز برای تولید جلوه های ویژه و یا انجام ویدئویی post-processing .(نکته: پست پروسسینگ یعنیفرایندهایی که باعث بالابردن کیفیت رندر میشن)


شیدر نویسی یعنی نوشتن کدهایی که باعث ایجاد سایه روی قسمت هایی از سطح مدل ما می شن تا نور به بخش های برخورد کنه و از بخش هایی به طور خاصی منعکس بشه.


مثال: شیدر فونگ و شیدر فلت(صاف و تحت) رو در دو تصویر شکل زیر می بینید:

http://s8.picofile.com/file/8271814650/Phong_shading_sample.jpg

به عبارت دیگر شیدر،"برنامه ای است که برای جلب چیزی به یک روش خاص و منحصر به فرد به وسیله ی کامپیوتر بکار می رود."



شیدرها اثرات رندر روی سخت افزار های گرافیکی را با درجه بالایی از انعطاف پذیری محاسبه می کنند.

بیشتر شیدرها برای بکار گیری واحد پردازشگر گرافیکی یا GPU (یک cpu ی دیگه داخل کارت گرافیک هست که باعث میشه سی پی یوی اصلی دیگه درگیر پردازش های سنگین بازی نشه)،کدنویسی شده اند،هر چند نیاز شدیدی به این کار نباشد،اما اینکار باعث بهینه سازی و هنگ نکردن سیستم میشه.

شیدر نویسی زبان مخصوص خودش رو داره و در یک فایل جدا کدش رو با ساختار خاصی می نویسیم و برای برنامه دادن به قطعه ی سخت افزاری programmable GPU rendering pipeline یا خطوط لوله ای شکلی که روی سخت افزار GPU ی برنامه پذیر وجود داره ،بکار می ره و که عمدتا جایگزین خط لوله ای شکل تک وظیفه ای شده است که اجازه تنها تبدیلات هندسی مشترک و توابع سایه زنی پیکسلی را دارد.به ویله شیدرها می تونی افکت های سفارشی ایجاد کنیم.

با استفاده از شیدر و  الگوریتم های تعریف شده در شیدر  می توان،موقعیت، رنگ، اشباع، روشنایی و کنتراست همه پیکسل ها، رئوس، یا تکستچرها  را تعریف کرد و همچنین با استفاده از  متغیرهای خارجی  و یا تکستچر معرفی شده توسط برنامه فراخوانی شده به اسم شیدر می توان خصوصیات ذکر شده را  برای رندر یک تصویر نهایی بکار برده و یا تغییر دهیم.

از شیدرها برای ایجاد جلوه های سینمایی post processing و تصاویر تولید شده ی کامپیوتری و بازیها در سطح وسیعی استفاده می کنند.

از سوی دیگر از شیدرها برای روشنایی مدل های ساده، استفاده پیچیده تر شامل تغییر رنگ، اشباع، روشنایی و / یا کنتراست از یک تصویر، تولید تاری، شکوفه نور، نور حجمی، نقشه برداری عادی برای اثرات عمق، بوکه، سایه های قابل شارژ، پوستریزاسیون، دست انداز نقشه برداری، اعوجاج، کلید زنی رنگی (به اصطلاح "پرده سبز پرده آبی /")، تشخیص لبه و تشخیص حرکت، اثرات روانگردان، و طیف گسترده دیگری استفاده می شود.


برخی از انواع شیدرها:

دو بعدی یا 2D Shaders
پیکسلی یا Pixel shaders
 سه بعدی یا 3D Shaders
رئوسی یا Vertex shaders
هندسی یا Geometry shaders
موزاییک کاری یا Tessellation shader
محاسباتی یا Compute shaders
...


* نکته:(برای درک پایپ لاین می تونید چند لوله رو فرض کنید که مثلا شش دستور واردش میشه و ظرفیت نگه داری همین 6 دستور رو داره و اولین دستوری که از لوله خارج شد میره توی گام یا لوله ی بعدی و همینطور می یاد پایین و در هر لوله یک سری عملیات روی اونها انجام میشه و این مبحث رو باید توی درس معماری کامپیوتری بخونید تا بهتر درک کنید قضیه رو)

نکته: زبان شیدر نویسی GLSL or GLslang هست و معمولا توی یک فایل متنی با پسوند مورد نیاز در یونیتی یا سایر انجین ها می سازیمش و بعدش می تونیم به مدلهای دلخواه ربطش بدیم تا بر حسب ورودی یا تنظیمات لازم افکت های دلخواه رو روی مدل پیاده سازی کنیم.


نظرات (۱)

بسیار عالی 

پاسخ:
ممنون

ارسال نظر

ارسال نظر آزاد است، اما اگر قبلا در بیان ثبت نام کرده اید می توانید ابتدا وارد شوید.
شما میتوانید از این تگهای html استفاده کنید:
<b> یا <strong>، <em> یا <i>، <u>، <strike> یا <s>، <sup>، <sub>، <blockquote>، <code>، <pre>، <hr>، <br>، <p>، <a href="" title="">، <span style="">، <div align="">
تجدید کد امنیتی