سایه زن - SHADER

درحوزه ی گرافیک کامپیوتری، سایه زن یا shader به یک سری دستورالعمل های نرم افزاری گفته می شود،که غالبا برای محاسبه ی تاثیرات رندرينگ (Rendering ) برسخت افزارهای گرافیکی با انعطاف بالا، به کار می رود. سایه زن توسط طراحان برنامه های سه بعدی به کار می رود وبا ان می توان جزئیات بیشتری مثل سایه ها، انعکاس نور، ایجاد مه و غیره را بسیار واقعی ترنمایش داد.هر چه بسامد بخش سایه زنی بالاتر باشد، امکان نمایش تصاویر طبیعی ترهم بالا می رود. بسامد سایه زن به بسامد هسته ی گرافیکی وابسته است، از این رو کارت هایی با فرکانس هسته ی بیشتر دارای سرعت سایه زنی بیشتری هستند. واحد های سایه زنی واحد های پایه هستند که درون پردازنده ی گرافیکی قرار دارند و عملیات پردازش گرافیکی داخل ان ها صورت می گیرد.هر چه تعداد واحد های سایه زنی بیشتر باشد، سرعت پردازش گرافیکی بیشتر می شود. سایه زن پیکسلی وظیفه ی محاسبه ی رنگ هر پیکسل را به صورت جداگانه بر عهده دارد وسایه زن برداری وظیفه ی تبدیل هر راس در فضای سه بعدی به معادل مختصات دو بعدی ان را دارد.


كتابخانه هاي گرافيكي Djrect 3D وopenGL از سه نوع سايه زن استفاده مي كنند:1-سايه زن برداری، كه برای هر راس كه به قسمت پردازشگر گرافيكي داده مي شود، يك باراجرا مي شود.هدف تبديل هر راس در فضای سه بعدی به معادل مختصات دوبعدی درصفحه ی نمايش است.سايه زن های برداری توانايي دست كاری كردن مشخصات نظير : موقعيت، رنگ و مختصات بافت را دارند، ولي نمي توانند راس های جديد ومجزا را ايجاد كنند. خروجي سايه زن های برداری كه مرحله ی بعدی پردازش مي رود كه يا يك سايه زن هندسي (Geometry shader) يا يك rasterizer (وسيله اي كه يك تصوير برداری را به فرم bitmap تبديل مي كند)حضور دارد.( bitmap : تصوير كامپيوتری شده كه درآن هر پيكسل يا نقطه به وسيله بيت ها يا گروهي از بيت ها نمايش داده شده است ).
2-سايه زن هندسي، كه توانايي اضافه كردن يا برداشتن راس ها از شبكه ها را دارند.همچنين مي توانند برای ايجاد هندسه ی رويه ای يا برای اضافه كردن جزئيات حجمي به شبكه های موجود استفاده شوند كه انجام اين پردازشات برای cpu مي تواند گران و وقت گير باشد.اگر سايه زن های هندسي به كار برده شوند، خروجي آن ها به rasterizer فرستاده مي شود.
3-سايه زن نقطه ای (pixel shader) كه به نام سايه زن ذره ای (fragment shader) نيز شناخته مي شود، محاسبه ي رنگ هر پيكسل را برعهده دارد. ورودی اين بخش از rasterizer مي آيد كه كاملا چند گوشه ای و فرستاده شده از مسير پردازش گرافيكي هستند. سايه زن های نقطه ای به عنوان مثال برای سايه روشن صحنه و جلوه های مربوط به آن به كار مي رود.( Direct3D ازاصطلاح pixel shader و openGL ازاصطلاح Fragment shader استفاده مي كند) سايه زن ها به منظوراجراي وراريخت يك مجموعه ی بزرگ عناصر در يك زمان طراحي و نوشته شده اند.(براي مثال تك تك پيكسل ها دريك منطقه ی صفحه ی نمايش يا برای تمام راس هاي يك مدل .) اين واقعا متناسب پردازش موازي است، و اكثرGPU های مدرن داراي گذرگاه های سايه زن متعدد و چند گانه هستند كه سهولت وبازده ی اين پردازشات را بيشتر كنند .

wikipedia.org