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



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

جلسه ۱۶ : انتقال در WebGL

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

      مقدمه

      سلام درود خدمت همراهان همیشگی سایت پی وی لرن . با آموزش WebGL همراهتون هستیم. تا کنون، درباره چگونگی رسم اشکال و رنگ های مختلف با استفاده از WebGL بحث کردیم. در این جا، در این قسمت، انتقال در WebGL و نمونه ای برای نشان دادن حرکت یک مثلث در WebGL رو خواهیم داشت.

      انتقال در WebGL

      انتقال در WebGL یکی از تحولات وابسته ارائه شده توسط WebGL است. با استفاده از انتقال می توانیم یک مثلث را(هر شیء) در فضای xyz حرکت دهیم. فرض کنید ما یک مثلث [a، b، c] داریم

      و می خواهیم مثلث را به موقعیتی که ۵ واحد به طرف محور مثبت X و ۳ واحد به طرف مثبت Y محور است حرکت دهیم. سپس رئوس جدید [A + 5، B + C + 3 0] خواهد بود .

      این بدان معناست که حرکت مثلث، نیاز به اضافه کردن فواصل حرکت داریم که، TX، TY، TZ در هر راس  می گویند.
      از آن جا که این، یک عملیات در هر vertex یا راس آن است، ما می توانیم آن را در برنامه شیدر vertex ادامه دهیم.
      در شیدر vertex همراه با ویژگی که حاوی موقعیت های رأس است، یک متغیر یکنواخت که فاصله های انتقال (x، y، z) را نگه می دارد تعریف می کنیم.

      بعدها، ما این متغیر را به مختصات متغیر اضافه می کنیم و نتیجه را به متغیر gl_Position اختصاص می دهیم.
      توجه داشته باشید – از آنجا که شیدر ورتکس در هر رأس اجرا می شود، تمام رأس های مثلث انتقال داده می شود.

      مراحل انتقال یک مثلث در webgl

      مراحل زیر برای ایجاد یک برنامه WebGL برای ساخت یک مثلث لازم است و سپس آن را به یک موقعیت جدید منتقل کنید.
      مرحله ۱ – بوم  یا Canvas را آماده کرده و WebGL Rendering Context را دریافت کنید
      در این مرحله، WebGL Rendering context object را با استفاده از getContext ()، به دست می آید.
      مرحله ۲ – تعریف هندسه یا Geometry و ذخیره آن در Buffer Objects
      از آنجایی که ما در حال ایجاد یک مثلث هستیم، باید سه رأس مثلث را منتقل کنیم و آن ها را در بافر ها ذخیره کنیم.

      مثال : 

      مرحله ۳ – برنامه های شیدر را ایجاد و کامپایل کنید
      در این مرحله، شما نیاز به نوشتن برنامه های شیدر رأس و fragment shader، کامپایل کردن آن ها، و ایجاد یک برنامه ترکیبی با لینک دادن این دو برنامه هستید.
      Vertex Shader – در سایه ورتکس شیدر برنامه، ویژگی بردار- vector attribute را تعریف می کنیم. در کنار آن یک متغیر را برای ذخیره فاصله های انتقال تعریف می کنیم و در نهایت،

      این دو مقدار را اضافه می کنیم و آن را به موقعیتی که موقعیت نهایی رأس ها را نگه می دارد، اختصاص می دهیم.

      مثال : 

      مرحله ۴ – برنامه های شیدر را به اشیاء بافر وصل کنید
      در این مرحله، اشیای بافر را با برنامه شیدر مرتبط می کنیم.
      مرحله ۵ – طراحی شیء مورد نیاز-Required Object
      از آن جا که ما مثلث را با استفاده از شاخص ها-indices می کشیم، از روش ()drawArrays  استفاده خواهیم کرد. در این روش، تعداد رأس ها / عناصر را باید انتقال دهیم که باید در نظر گرفته شود.

      از آن جایی که ما در حال ایجاد یک مثلث هستیم، ما ۳ را به عنوان یک پارامتر انتقال خواهیم داد.

      مثال : 

      مثال – حرکت یک مثلث در WebGL

      مثال زیر نشان می دهد که چگونه یک مثلث را روی فضای xyz منتقل کنید. پس کدهای مربوط به حرکت یک مثلث در WebGL رو می بینیم.

      مثال : 

      کلام پایانی

      حرکت یک مثلث در WebGL رو در این قسمت از آموزش webgl مشاهده نمودیم. در قسمت آینده مقیاس گذاری رو در webgl خواهیم داشت.

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