دوره های آموزشی آکادمی پی وی لرن (پروژه محور و ویژه بازار کار)



  • ۲۵
  • اردیبهشت

جلسه ۱۵ : رنگ ها در WebGL

  • دسته‌بندی‌ها :
جلسه ۱۵ : رنگ ها در WebGL
    • جزئیات
    • نوع محتواآموزشی

      مقدمه

      سلام درود خدمت همراهان همیشگی سایت پی وی لرن . با آموزش WebGL همراهتون هستیم. دز قسمت های قبل رسم مثلث و چهار ضلعی را به کمک مثلث بیان نمودیم .در این بخش قصد داریم رنگ ها در WebGL و  مراحل اعمال رنگ در webgl رو توضیح دهیم.

      رنگ ها در WebGL

      در تمام نمونه های قبلی ما مقدار رنگ متغیر را به متغیر gl_FragColor اعمال کردیم. علاوه بر این، ما می توانیم رنگ ها را برای هر رأس تعریف کنیم.

      درست مثل مختصات رأس و شاخص های. این فصل نمونه ای برای نشان دادن چگونگی اعمال رنگ به چهار ضلعی با استفاده از WebGL می باشد.

      اعمال رنگ

      برای اعمال رنگ ها، شما باید رنگ ها را برای هر رأس با استفاده از مقادیر RGB تعریف کنید.

      شما می توانید همان مقادیر را به تمام رأس ها اختصاص دهید تا یک رنگ منحصر به فرد به شی داشته باشید.

      پس از تعریف رنگ،

      شما باید یک بافر ایجاد کنید و این مقادیر را در آن ذخیره کنید و آن را با ویژگی های شیدر رأس مرتبط کنید.
      در شیدر رأس، همراه با مختصات attribute (که موقعیت رأس ها را نگه می دارد)، attribute و var را تعریف می کنیم. 
      خصوصیت color مقدار رنگ را در هر vertex نگه می دارد و varying متغیری است که به عنوان ورودی به شیدر fragment منتقل می شود.

      بنابراین، ما باید مقدار رنگ را به متغیر اختصاص دهیم.
      در قسمت شیدر fragment که varying مقدار رنگ اختصاصی به gl_FragColor را نگه می دارد، که رنگ نهایی شیء را نگه می دارد.

       مراحل اعمال رنگ در webgl

      مراحل زیر مورد نیاز برای ایجاد یک برنامه WebGL برای طراحی چهار ضلعی و اعمال رنگ به آن است.
      مرحله ۱

      بوم را آماده کنید و WebGL Rendering Context را بگیرید
      در این مرحله ، محتوای رندر WebGL را با استفاده از ()getContext به دست می آوریم.
      مرحله ۲

      تعریف Geometry و ذخیره آن در Buffer Objects
      مربع را می توان با استفاده از دو مثلث کشید. بنابراین ،

      در این مثالی که ما ارائه می دهیم رئوس را برای دو مثلث (با یک لبه مشترک) و indices را بیان نموده ایم.

      از آنجا که ما می خواهیم رنگ را به آن اپلای کنیم،

      متغیر نگه داشتن مقادیر رنگ نیز تعریف شده و مقادیر رنگ برای هر یک (قرمز ، آبی ، سبز ، و صورتی) به آن اختصاص داده شده است.

      مثال : 

      گام ۳ − ایجاد و کامپایل برنامه های شیدر در این مرحله,

      شما نیاز به نوشتن برنامه شیدر راس و شیدر shader , کامپایل آن ها, و ایجاد یک برنامه ترکیبی با اتصال این دو برنامه دارید.

      Vertex Shader

      در Vertex Shader برنامه ،ما تعریف ویژگی های بردار-vector attributes برای ذخیره مختصات ۳D (موقعیت) ، و رنگ هر رأس را داریم. متغیر varing اعلام شده است

      برای انتقال شیدر راس به شیدر قطعه یا fragment . و در نهایت ، مقدار ذخیره شده در color attribute به varyingاختصاص داده شده است.

      مثال : 

      Fragment Shader-در Fragment Shader ، ما varying را به متغیر gl_FragColor اختصاص داده ایم.

      مثال : 

      گام ۴

      برنامه های شیدر را با اشیاء بافر مرتبط کنید
      در این مرحله ، ما Shader Programs و  Buffer Objects را با هم مرتبط می کنیم.
      مرحله ۵

      طراحی شئ مورد نیاز
      از آن جا که ما در حال طراحی دو مثلث برای چهار ضلعی هستیم، با استفاده از indices، ما از روش ()drawElements استفاده می کنیم.

      برای این روش ، ما باید تعدادی indices زا منتقل کنیم. مقدار indices.length نشان دهنده تعداد شاخص ها است.

      مثال : 

      مثال-استفاده از رنگ

      برنامه زیر نشان می دهد که چگونه یک چهار ضلعی با استفاده از نرم افزار WebGL رسم کنیم و اعمال رنگ به آن داشته باشیم.

      مثال : 

      کلام پایانی

      در این بخش رنگ ها در WebGL و  مراحل اعمال رنگ در webgl رو همراه مثال بیان نمودیم.

      در  ادامه به Translation در webgl می پردازیم.

      QR:  جلسه ۱۵ : رنگ ها در WebGL
      به اشتراک بگذارید