توی این دوره قراره چه چیزایی یاد بگیریم؟ آموزش و یادگیری توی این دوره قراره چه چیزایی یاد بگیریم؟ به صورت رایگان
توی این دوره قراره از پایه، با گرافیک کامپیوتری (Computer Graphics) آشنا بشیم؛
تاحالا شده به این فکر کنید یه محیط سه بعدی تو بازی چطوری شبیه سازی میشه؟
چطوری یه محیط سه بعدی رو توی کامپیوتر خلق میکنیم؟
یا اینکه کارت گرافیک چجوری کار میکنه و برنامه نویس ها چجوری GPU رو برنامه نویسی میکنن؟
توی این دوره میخوایم قدمبهقدم بفهمیم وقتی یک تصویر CGI (Computer Generated Imagery) روی صفحه ظاهر میشه، پشت صحنه داره چه اتفاقاتی میوفته. تا این موضوع دیگه براتون مثل یه جادوی سیاه نباشه! چه بسا خودتون جادوگر بشین!
سعی دارم توی این دوره روی مفاهیم و درک ساختاری برنامه نویسی گرافیکی کار کنم که هم درک علوم کامپیوتری خوبی از این موضوع دریافت کنید، که برای جادوگر شدن یکی از الزاماته…
هم در اخر بلد باشیم دقیقا پیاده سازی کنیم چیزایی که یاد گرفتیم رو که بتونیم یه Renderer بنویسیم!
پس به صورت خلاصه، هر تِرِد رو با یه سوال جذاب شروع میکنیم و روش حل مسئله رو درک میکنیم!
دوره سه بخش اصلی رو طی میکنه:
کارت گرافیک -> تئوری -> پیاده سازی
درباره بخش ۱: GPU و برنامه نویسی گرافیکی
قبل از اینکه وارد خود گرافیک بشیم، یه آشنایی کوتاه با GPU و نحوهی ارتباط برنامهها با اون پیدا میکنیم.
میبینیم GPU چه تفاوتی با CPU داره، چرا برای Graphics از GPU استفاده میکنیم، حافظهی GPU چه نقشی داره و برنامهها اصلاً چطور با GPU ارتباط برقرار میکنن.
در آخر هم با مفهوم Graphics API آشنا میشیم و جایگاه چیزهایی مثل OpenGL، Vulkan، DirectX و Metal رو مشخص میکنیم.
این بخش قرار نیست تبدیل به درس معماری GPU بشه؛ فقط میخوایم یک تصویر ذهنی درست از بستری که Graphics روی اون اجرا میشه داشته باشیم.
درباره بخش ۲: تئوری گرافیک کامپیوتری
اینجا میرسیم به بخش اصلی دوره.
سعی میکنیم از یک سؤال ساده شروع کنیم:
چطور یک کامپیوتر یک دنیای سهبعدی رو به تصویری دوبعدی روی صفحه تبدیل میکنه؟
برای جواب دادن به این سؤال، قدمبهقدم سراغ مفاهیمی مثل:
- Vectors & Coordinates
- Transformations & Matrices
- Camera
- Projection
- Rasterization
- Interpolation
- Depth & Visibility
- Lighting & Shading
- Materials
میریم.
مهمتر از خود این مفاهیم، ارتباط بین اونهاست. قرار نیست هر کدوم رو جدا و بهصورت یک مبحث حفظ کنیم؛ هر مفهوم قراره از یک مسئلهی قبلی به وجود بیاد و ما رو به مسئلهی بعدی برسونه.
در پایان این بخش، هدف اینه که وقتی به یک تصویر نگاه میکنیم، بتونیم مسیر شکلگیری اون رو در ذهنمون دنبال کنیم.
درباره بخش ۳: برنامه نویسی و پیاده سازی
حالا که تئوری رو فهمیدیم، وقتشه ببینیم چطور میشه این مفاهیم رو واقعاً اجرا کرد.
در این بخش از OpenGL استفاده میکنیم و مفاهیمی که در بخش قبل یاد گرفتیم رو یکییکی به کد تبدیل میکنیم.
یعنی OpenGL رو جدا از تئوری یاد نمیگیریم؛ هر چیزی که پیاده میکنیم، ادامهی همون چیزیه که قبلاً فهمیدیم.
در نهایت باید بتونیم ارتباط بین چیزی که روی صفحه میبینیم، تئوری پشت اون و کدی که برای اجرای اون نوشتیم رو درک کنیم.
خب حالا بزن بریم!