طعم شیرین شیدر نویسی -قسمت اول00 نظر

طعم شیرین شیدر نویسی -قسمت اول

ﻣﻘﺪﻣﻪ :

GLSL ﻣﺨﻔﻒ OpenGL Shading Language اﺳﺖ ﺷﯿﺪر ﻫﺎ  ﻣﺎﻧﻨﺪ اﺳﮑﺮﯾﭙﺖ ﻫﺎي ﮐﻮﭼﮏ ﻫﺴﺘﻨﺪ ﮐﻪ ﺑﻪ ﻣﺎ اﺟﺎزه ﻣﯽ دﻫﺪ ﺗﺎ ﺑﺎ ﭘﺮدازﻧﺪه ﮔﺮاﻓﯿﮑﯽ ﺑﯿﺸﺘﺮي ارﺗﺒﺎط ﺑﺮﻗﺮار ﮐﻨﯿﻢ آﻧﻬﺎ ﯾﮏ ﺟﻨﺒﻪ اﺳﺎﺳﯽ از ﺑﺮﻧﺎﻣﻪ ﻧﻮﯾﺴﯽ ﮔﺮاﻓﯿﮏ ﻣﯽ ﺑﺎﺷﻨﺪ و ﻣﯽ ﺗﻮاﻧﻨﺪ در ﺑﺎزي ﻫﺎي 2 ﺑﻌﺪي و 3 ﺑﻌﺪي  ﺷﻤﺎ ﺑﺮاي ﻋﻨﺎﺻﺮ ﻣﺨﺘﻠﻒ و ﺟﻠﻮه ﻫﺎي ﺗﺼﻮﯾﺮي ﻣﻮرد اﺳﺘﻔﺎده ﻗﺮار ﮔﯿﺮﻧﺪ در ﺣﺎل ﺣﺎﺿﺮ، دو ﻧﻮع ﺷﯿﺪر وﺟﻮد دارد ﮐﻪ ﺑﺎﯾﺪ ﺑﺎ ﺧﻮد اﻧﻬﺎ اﺷﻨﺎ ﺷﻮﯾﺪ 

 

Vertex Shaders

 

ﻫﻤﺎﻧﻄﻮر ﮐﻪ در ﻣﻘﺎﻟﻪ ﺑﺎﻓﺖ(texture) ﺑﺤﺚ ﺷﺪه اﺳﺖ، ﯾﮏ رأس ﻧﻘﻄﻪ اي (vertex point) در ﻓﻀﺎ ﺑﺎ ﺑﺮﺧﯽ وﯾﮋﮔﯽ ﻫﺎي ﻣﺘﺼﻞ ﺑﻪ آن اﺳﺖ، ﻣﺎﻧﻨﺪ ﻣﻮﻗﻌﯿﺖ(xyz) ، رﻧﮓ(rgba) ، ﻣﺨﺘﺼﺎت ﺑﺎﻓﺖ .(st) ﯾﮏ vertex shader  اﺟﺎزه ﻣﯽ دﻫﺪ ﺗﺎ اﯾﻦ اﻃﻼﻋﺎت ﻗﺒﻞ از ارﺳﺎل آن در ﻃﻮل ﺧﻂ ﻟﻮﻟﻪ ﮔﺮاﻓﯿﮑﯽ ﻣﻮرد اﺳﺘﻔﺎده ﻗﺮار ﮔﯿﺮد.

 

vertex shader ﻫﺎ  اﻏﻠﺐ در ﺑﺮﻧﺎﻣﻪ ﻧﻮﯾﺴﯽ ﮔﺮاﻓﯿﮏ 3 ﺑﻌﺪي ﮐﺎرﺑﺮد ﺑﯿﺸﺘﺮي دارﻧﺪ، ﺑﺮاي ﻣﺜﺎل اﻋﻤﺎل ﺟﺎﺑﺠﺎﯾﯽ ﺳﺮ و ﺻﺪا ﺑﻪ vertex ﻫﺎي  ﯾﮏ ﻣﺶ 3ﺑﻌﺪي  اﻣﺎ ﻫﻨﻮز ﻫﻢ ﺑﺮاي ﺑﺎزي ﻫﺎي دو ﺑﻌﺪي ﻻزم اﺳﺖ.

 

Fragment Shaders

 

اﻏﻠﺐ "ﺷﯿﺪرﻫﺎي ﭘﯿﮑﺴﻞ" ﻧﺎﻣﯿﺪه ﻣﯽ ﺷﻮد، اﯾﻦ ﺑﻪ ﻣﺎ اﺟﺎزه ﻣﯽ دﻫﺪ ﭘﯿﮑﺴﻞ ﻫﺎي ﻣﺨﺘﻠﻒ را ﻗﺒﻞ از ﻓﺮﺳﺘﺎدن آﻧﻬﺎ در ﻃﻮل ﺧﻂ ﻟﻮﻟﻪ ﮔﺮاﻓﯿﮑﯽ ﺗﻐﯿﯿﺮ دﻫﻨﺪ.

اﯾﻦ ﺷﯿﺪر ﻫﺎ ﺧﺮوﺟﯽ ﯾﮏ رﻧﮓ RGBA دارﻧﺪ  ﺑﻪ ﻋﻨﻮان ﻣﺜﺎل ﯾﮏ ﺑﯿﺎﻧﯿﻪ ي ﺑﺎزﮔﺸﺘﯽ را در ﻧﻈﺮ ﺑﮕﯿﺮﯾﺪ: اﮔﺮ ﻣﺎ ﯾﮏ  sprite رﻧﺪر ﺷﺪه ﺑﺎ ﯾﮏ Fragment Shaders  ﮐﻪ ﺗﻨﻬﺎ رﻧﮓ ﻗﺮﻣﺰ (R=1 B=0 G=0) را ﻧﻤﺎﯾﺶ دﻫﺪ - ﻧﺘﯿﺠﻪ ﯾﮏ ﺟﻌﺒﻪ ﻗﺮﻣﺰ ﺧﻮاﻫﺪ ﺑﻮد!

Basic Shaders

 

 

هر دو شیدر و Vertex و fragment هر دو به یک روش ()MAIN نیاز دارند . شیدرهای Vertex معمولا موقعیت رأس را به GL می دهند، مانند :

 

//the position of the vertex as specified by our renderer attribute vec3 Position; 
void main() { 
//pass along the position 
gl_Position = vec4(Position, 1.0); 
}

 

در حالیکه fragment shader معمولا رنگ شفاف (به عنوان مثال "رنگ پیکسل") را در کنار هم قرار می
دهند، مانند

 

void main() { 

//pass along the color red 
gl_FragColor = vec4(1.0, 0.0, 0.0, 1.0); 

}

 

 

موفق باشید.



نسخه PDF این مطلب را دانلود کنید





حق نشر مطالب اوکسو :

 

 

قابل توجه علاقه مندان و کپی کنندگان گرامی ، تمامی مطالب این وب سایت تحت مجوز خالق

(Creative Commons)  می باشد و اجازه کپی کردن ، استفاده تجاری مطالب بدون اجازه

صاحب اثر مجاز نمی باشد و طبق مجوز اثر پیگرد قانونی به همراه خواهد داشت.

مجوز کریتیو کامنز
این کار مجوز دارد تحت مجوز کریتیو کامنز نسبت‌دادن-غیرتجاری-بدون انشقاق ۴٫۰ بین‌المللی.

این مطلب پایان یافت و امیدواریم به نتیجه دلخواهتان رسیده باشید .

 

همچنین میتوانید ما را در شبکه های اجتماعی نیز دنبال کنید و از جدید ترین اخبار ما با خبر شوید :

 

 

3491498_823


نظرات

  • برای پاسخگویی باید در سایت عضو شوید

    پاسخ شما

نظر شما

مطالب مرتبط

ورکشاپ خلق یک صحنه حجمی

ورکشاپ خلق یک صحنه حجمی00 نظر

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

در ....


(لطفا به ادامه مطلب مراجعه فرمایید)
ادامه مطلب