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



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

جلسه ۱۷ : مقیاس گذاری در WebGL

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

      مقدمه

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

      مقیاس گذاری در WebGL

      Scaling یا مقیاس بندی چیزی جز افزایش یا کاهش اندازه یک شی نیست. به عنوان مثال، اگر مثلث دارای رأس اندازه [a، b، c] باشد، مثلث با رأس ها [۲a، ۲b، ۲c] دو برابر اندازه آن خواهد بود. بنابراین، برای مقیاس، شما باید هر رأس را با عامل مقیاس بزرگ کنید. شما همچنین می توانید یک رأس خاص را مقیاس بندی کنید.
      برای مقیاس یک مثلث، در شیدر ورتکس برنامه، ما یک ماتریس ایجاد می کنیم و مقادیر مختصات را با این ماتریس ضرب می کنیم. بعدها، ما یک ماتریس مورب ۴ × ۴ را که دارای فاکتور مقیاس گذاری مختصات x، y، z است در موقعیت های مورب (آخرین موقعیت مورب ۱) منتقل می کنیم.

      مراحل مقیاس گذاری در WebGL

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

      مثال : 

      مرحله ۳ – برنامه های شیدر را ایجاد و کامپایل کنید
      در این مرحله، شما نیاز به نوشتن برنامه های شیدر  رأس و fragment shader، کامپایل کردن آن ها، و ایجاد یک برنامه ترکیبی با لینک دادن این دو برنامه هستید.
      Vertex Shader – در Vertex Shader، ویژگی بردار را برای ذخیره مختصات (coordinates) سه بعدی تعریف می کنیم. در کنار آن ما یک ماتریس uniform برای ذخیره کردن فاکتورهای مقیاس تعریف می کنیم و در نهایت این دو مقدار را چند برابر می کنیم و آن ها را به gl_position اختصاص می دهیم که موقعیت نهایی رأس ها را نگه می دارد.

      مثال : 

      Fragment Shader – در شیدر Fragment ، ما به سادگی fragment رنگ را به متغیر gl_FragColor اختصاص دادیم.

      مثال : 

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

      مثال : 

      مثال – مقیاس یک مثلث

      مثال زیر نشان می دهد که چگونه می توان یک مثلث را مقیاس گذاری کرد .

      مثال : 

      کلام پایانی

      در این قسمت نمونه ای برای نشان دادن نحوه تغییر مقیاس یک مثلث با استفاده از WebGL و مراحل مقیاس گذاری در WebGL رو بیان نمودیم .

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