آموزش نوشتن Unity Compute Shaders

Learn to Write Unity Compute Shaders

نکته: آخرین آپدیت رو دریافت میکنید حتی اگر این محتوا بروز نباشد.
نمونه ویدیوها:
توضیحات دوره: استفاده از قدرت GPU نحوه نوشتن Unity Compute Shader نحوه استفاده از ComputeShader در فیلترهای تصویر پس از پردازش نحوه استفاده از ComputeShader برای جلوه های ذرات و گله کردن نحوه استفاده از StructuredBuffers برای به اشتراک گذاری داده ها بین ComputeShader و Surface Shader نمونه با استفاده از ComputeShader برای مدیریت شبیه سازی سیال استفاده از ComputeShaders برای ساخت موتور فیزیک پیش نیازها: شما باید با اصول Unity آشنا باشید باید دانش اولیه C# را داشته باشید.

با یادگیری ایجاد Compute Shaders، خود را در لبه پیشرفت توسعه Unity قرار خواهید داد. برخلاف شیدرهای سنتی، می‌توانید از Compute Shader برای رسیدگی به هرگونه مشکل دستکاری داده‌ها استفاده کنید، که در آن ده‌ها (یا حتی صدها) Thread در حال اجرا به طور همزمان باعث ایجاد گلوگاه در بازی شما می‌شود که چندین برابر سریع‌تر اجرا شود. در این دوره شما از گام های کوچک شروع می کنید و اصول شیدرهای محاسباتی را یاد می گیرید. ابتدا، ما به انتقال داده ها از CPU به GPU با استفاده از بافرها نگاه می کنیم. سپس به استفاده از این بافرها در محاسبات خود نگاه خواهیم کرد. هنگامی که این پایه اولیه را دارید، یاد می گیرید که چگونه از این تکنیک ها برای ایجاد فیلترهای پس از پردازش سریع و سریع استفاده کنید. می‌توانید از Compute Shaders برای مدیریت جلوه‌های ذرات و محاسبات گله استفاده کنید. در این دوره، شما گله ای متشکل از هزاران پرنده ایجاد خواهید کرد که در آن هر پرنده با سرعت خود در هوا بال می زند. تقسیم و تسخیر راه است با Compute Shaders. با استفاده از صدها رشته که به طور همزمان در حال اجرا هستند، ما یک موتور GPU Physics ایجاد می کنیم که می تواند هزاران مهره شطرنج در حال چرخش را مدیریت کند. شیدرهای محاسباتی برای کنترل جهت تیغه های چمن در حالی که یک آواتار در چمن حرکت می کند ایده آل هستند. موضوع چالش برانگیز سیالات (دو بعدی و سه بعدی) در این دوره پوشش داده شده است و خواهید دید که این زمینه محاسباتی فشرده تا چه اندازه از Compute Shaders سود می برد.

منابع دوره به صورت یک نسخه همراه با کد و یک نسخه کامل ارائه شده و شامل بیش از 30 مثال مختلف است. Unity Compute Shaders بستر ایده آلی را برای یادگیری نحوه رسیدگی به مشکلات پیچیده در بازی های خود فراهم می کند. محاسبات دسته جمعی با استفاده از 3 قانون کلیدی جداسازی، پیوستگی و تراز به تفصیل پوشش داده شده است. محاسبات فیزیک برای تشخیص سریع برخورد و نیروهای درگیر در آن گنجانده شده است (هم از لحاظ نظری و هم از لحاظ عملی). هیدرودینامیک ذرات صاف تکنیکی برای محاسبه شبیه سازی سیالات است. ما شما را از سطح پایه راهنمایی خواهیم کرد.

اگر با Unity کار می‌کنید، باید نحوه استفاده از Compute Shaders را بدانید تا مطمئن شوید بازی شما بهترین عملکرد را دارد. به هر حال، چرا اجازه دهید GPU بیکار بماند در حالی که CPU اضافه کار می کند؟ اگر برخی از کارها را به GPU تغییر دهید و آنها را با سایه زن محاسباتی انجام دهید، بهبودهای عملکردی عظیمی را مشاهده خواهید کرد.

این دوره از Unity 2019.4 استفاده می کند و با ویندوز و مک سازگار است.

بازخورد دانش‌آموز

" این دوره به سادگی شگفت انگیز است. من همیشه می خواستم آن موضوعات را یاد بگیرم و در نهایت منابع باورنکردنی به دست آوردم. بسیار ممنون. ناامید شدن. موضوعات پوشش داده شده بسیار دشوار است، اما شما آن را به گونه ای انجام دادید که ما واقعاً می توانیم گام به گام و در عین حال چیزهای باورنکردنی را روی صفحه نمایش ببینیم!"
"این دوره آموزشی فشرده، به خوبی توضیح داده شده است . در مورد نحوه کار شیدرهای محاسباتی، نتایج و توضیحات چشمگیر "
" دوره شگفت انگیز - دوره آموزشی Penny De Byls CG Shader را با این یکی دنبال کرد و آنها به طرز عالی با هم ترکیب شدند. نیکلاس با چند پروژه جالب و مفاهیم عالی کار بسیار خوبی انجام می دهد - بخش را دوست داشت در مورد شبیه سازی سیال."
"من به تازگی دوره Compute Shaders را از Holistic 3D شروع کرده ام. این دوره را دوست دارم، و درک آن بسیار آسان است! برای چندین دوره به دنبال یک آموزش مناسب بودم، و این قطعاً برای من است. من به دنبال آن بودم!"
" آموزش عالی، دانش فشرده و آسان به دست می آید. من همیشه می خواستم سایه بان های برنامه نویسی و محاسبات GPU را یاد بگیرم، بنابراین این دوره چیزی است که کاملاً با نیازهای من مطابقت دارد."
"این دوره در پر کردن جاهای خالی دانش و درک خودم از شیدرهای محاسباتی عالی است. توضیحات مختصر و در عین حال کامل هستند و در عین حال به اتصال اصول اولیه برای تشکیل یک پایه محکم کمک می کنند!"

"دوره آموزشی بسیار آموزنده با سرعت بسیار عالی (در سمت سریع) و چالش های فراوان در طول مسیر است. چالش ها به این دلیل است که من رتبه 5 ستاره را می دهم. اینها معمولاً نیاز به تفکر دارند، اما با استفاده از موارد قابل حل هستند. ما یاد گرفته‌ایم، و برای سلیقه‌ی من، فقط سطح سختی مناسب را یاد گرفته‌ایم."


آنچه دیگران در مورد دوره های نیک می گویند:

  • محتوای بسیار غنی و آموزشی چشمگیر. بسیار خوب است که از کسی یاد بگیرید که به این موضوع تسلط دارد و می داند چگونه تدریس کند.

  • سبک تدریس نیک باعث شد همه چیز را کاملاً شهودی درک کنم و اکنون با شیدرها خیلی راحت هستم.

  • من دوره های نیک را دوست دارم، از نحوه توضیح او می فهمم. محتوای عالی.


سرفصل ها و درس ها

معرفی Introduction

  • تماس با H3D Contacting H3D

  • تماس با H3D Contacting H3D

  • سوالات متداول FAQs

  • سوالات متداول FAQs

  • به دوره خوش آمدید Welcome to the course

  • به دوره خوش آمدید Welcome to the course

  • اولین شیدر محاسباتی شما Your first compute shader

  • بررسی اولین شیدر محاسباتی شما Reviewing your first compute shader

  • هسته های متعدد Multiple Kernels

  • هسته های متعدد Multiple Kernels

  • چالش: از یک شیدر محاسباتی برای رسم یک مربع در وسط یک Quad استفاده کنید Challenge: Use a compute shader to draw a single square in the middle of a Quad

  • چه یاد گرفته ای؟ What have you learned?

معرفی Introduction

  • اولین شیدر محاسباتی شما Your first compute shader

  • بررسی اولین شیدر محاسباتی شما Reviewing your first compute shader

  • چالش: از یک شیدر محاسباتی برای رسم یک مربع در وسط یک Quad استفاده کنید Challenge: Use a compute shader to draw a single square in the middle of a Quad

  • چه یاد گرفته ای؟ What have you learned?

مراحل اول First Steps

  • انتقال داده به سایه زن Passing data to the shader

  • انتقال داده به سایه زن Passing data to the shader

  • لذت بافرها The joy of buffers

  • لذت بافرها The joy of buffers

  • ستارگان در حال گردش Orbiting stars

  • استفاده از نویز در سایه زن Using noise in the shader

  • تغییر شکل مش Mesh deformation

  • چالش: یک چند ضلعی پر از نویز رسم کنید. Challenge: Draw a polygon filled with noise.

  • چالش: یک چند ضلعی پر از نویز رسم کنید. Challenge: Draw a polygon filled with noise.

  • چه یاد گرفته ای؟ What have you learned?

مراحل اول First Steps

  • ستارگان در حال گردش Orbiting stars

  • استفاده از نویز در سایه زن Using noise in the shader

  • تغییر شکل مش Mesh deformation

  • چه یاد گرفته ای؟ What have you learned?

پردازش پست Post Processing

  • راه اندازی خط لوله رندرینگ Setting up the rendering pipeline

  • یک افکت تاری ساده A simple blur effect

  • یک افکت تاری ساده A simple blur effect

  • لنزهای دید در شب Night vision lenses

  • پوشش HUD - قسمت 1 A HUD overlay - part 1

  • پوشش HUD - قسمت 1 A HUD overlay - part 1

  • پوشش HUD - قسمت 2 A HUD overlay - part 2

  • پوشش HUD - قسمت 2 A HUD overlay - part 2

  • جلوه درخشش ستاره: سایه زن های راس-قطعه - قسمت 1 A star glow effect: vertex-fragment shaders - part 1

  • یک افکت درخشش ستاره: سایه زن های رأس-قطعه - قسمت 2 A star glow effect: vertex-fragment shaders - part 2

  • یک افکت درخشش ستاره: سایه زن های رأس-قطعه - قسمت 2 A star glow effect: vertex-fragment shaders - part 2

  • چالش: برای خروجی رندر افکت سپیا ایجاد کنید Challenge: Create a sepia effect to the renderer output

  • چالش: برای خروجی رندر افکت سپیا ایجاد کنید Challenge: Create a sepia effect to the renderer output

  • چه یاد گرفته ای؟ What have you learned?

پردازش پست Post Processing

  • راه اندازی خط لوله رندرینگ Setting up the rendering pipeline

  • لنزهای دید در شب Night vision lenses

  • جلوه درخشش ستاره: سایه زن های راس-قطعه - قسمت 1 A star glow effect: vertex-fragment shaders - part 1

  • چه یاد گرفته ای؟ What have you learned?

اثرات ذرات و گله Particle Effects and Flocking

  • تنظیم اثر ذرات مبتنی بر بافر Setting up a buffer-based particle effect

  • اضافه کردن یک مش به هر ذره Adding a mesh to each particle

  • یک مثال ساده گله A simple flocking example

  • استفاده از مش های نمونه در گله Using instanced meshes in the flock

  • استفاده از مش های نمونه در گله Using instanced meshes in the flock

  • استفاده از مش پوست در گله Using a skinned mesh in the flock

  • استفاده از مش پوست در گله Using a skinned mesh in the flock

  • چالش: آن دم را بچرخانید Challenge: Swish that tail

  • چه یاد گرفته ای؟ What have you learned?

اثرات ذرات و گله Particle Effects and Flocking

  • تنظیم اثر ذرات مبتنی بر بافر Setting up a buffer-based particle effect

  • اضافه کردن یک مش به هر ذره Adding a mesh to each particle

  • یک مثال ساده گله A simple flocking example

  • چالش: آن دم را بچرخانید Challenge: Swish that tail

فیزیک روی پردازنده گرافیکی Physics on the GPU

  • شروع کردن توپ های ساده و پرتاب Starting simple, bouncing balls

  • شروع کردن توپ های ساده و پرتاب Starting simple, bouncing balls

  • کمی تئوری A bit of theory

  • مقدار دهی اولیه داده ها Initializing the data

  • GPU Physics Compute Shader - قسمت 1 GPU Physics Compute Shader - part 1

  • GPU Physics Compute Shader - قسمت 2 GPU Physics Compute Shader - part 2

  • وکسل کردن یک مش Voxelization of a mesh

  • چالش: چرخاندن مهره های شطرنج Challenge: tumbling chess pieces

  • چالش: چرخاندن مهره های شطرنج Challenge: tumbling chess pieces

  • چه یاد گرفته ای؟ What have you learned?

فیزیک روی پردازنده گرافیکی Physics on the GPU

  • کمی تئوری A bit of theory

  • مقدار دهی اولیه داده ها Initializing the data

  • GPU Physics Compute Shader - قسمت 1 GPU Physics Compute Shader - part 1

  • GPU Physics Compute Shader - قسمت 2 GPU Physics Compute Shader - part 2

  • وکسل کردن یک مش Voxelization of a mesh

  • چه یاد گرفته ای؟ What have you learned?

چمن Grass

  • استفاده از بلندر برای ایجاد یک توده علف Using Blender to create a single grass clump

  • استفاده از بلندر برای ایجاد یک توده علف Using Blender to create a single grass clump

  • استفاده از نمونه برای پوشاندن سطح با چمن Using instancing to cover a surface with grass

  • استفاده از نمونه برای پوشاندن سطح با چمن Using instancing to cover a surface with grass

  • خم شدن تیغه های چمن Bending blades of grass

  • چمن روی سطح ناهموار Grass on an uneven surface

  • زیر پا گذاشتن چمن Trampling the grass

  • زیر پا گذاشتن چمن Trampling the grass

  • چالش: از نویز برای خم کردن توده های چمن استفاده کنید Challenge: Use noise to bend grass clumps

  • چه یاد گرفته ای؟ What have you learned?

چمن Grass

  • خم شدن تیغه های چمن Bending blades of grass

  • چمن روی سطح ناهموار Grass on an uneven surface

  • چالش: از نویز برای خم کردن توده های چمن استفاده کنید Challenge: Use noise to bend grass clumps

  • چه یاد گرفته ای؟ What have you learned?

مایعات Fluids

  • Navier-Stokes: مبنای معروف برای شبیه سازی سیالات Navier-Stokes: the famous basis for fluids simulations

  • StableFluids StableFluids

  • StableFluids StableFluids

  • StableFluids - قسمت 2 StableFluids - part 2

  • StableFluids - قسمت 2 StableFluids - part 2

  • هیدرودینامیک ذرات صاف Smoothed Particle Hydrodynamics

  • هیدرودینامیک ذرات صاف Smoothed Particle Hydrodynamics

  • دینامیک مبتنی بر موقعیت Position Based Dynamics

  • چالش: با استفاده از StableFluids سیگار بکشید Challenge: Smoke using StableFluids

  • چالش: با استفاده از StableFluids سیگار بکشید Challenge: Smoke using StableFluids

  • چه یاد گرفته ای؟ What have you learned?

  • چه یاد گرفته ای؟ What have you learned?

مایعات Fluids

  • Navier-Stokes: مبنای معروف برای شبیه سازی سیالات Navier-Stokes: the famous basis for fluids simulations

  • دینامیک مبتنی بر موقعیت Position Based Dynamics

  • چه یاد گرفته ای؟ What have you learned?

نتیجه Conclusion

  • تابع چند ضلعی The polygon function

  • تابع چند ضلعی The polygon function

  • وام Credits

  • وام Credits

  • سخنرانی پاداش Bonus lecture

  • الان به کجا Where to now?

  • الان به کجا Where to now?

نتیجه Conclusion

  • سخنرانی پاداش Bonus lecture

نمایش نظرات

آموزش نوشتن Unity Compute Shaders
جزییات دوره
6 hours
50
Udemy (یودمی) Udemy (یودمی)
(آخرین آپدیت)
3,979
4.6 از 5
دارد
دارد
دارد
جهت دریافت آخرین اخبار و آپدیت ها در کانال تلگرام عضو شوید.

Google Chrome Browser

Internet Download Manager

Pot Player

Winrar

Penny de Byl Penny de Byl

استاد برنده جایزه بین المللی و نویسنده پرفروش سلام ، من دکتر پنی دی بایل هستم. من کاملاً سازنده بسیاری از مسائل مربوط به کمبود رایانه و دانشگاهی هستم و علاقه واقعی به تدریس دارم. من بیش از 25 سال است که در دانشگاه ها در استرالیا و اروپا در سطح استاد کامل در مورد توسعه بازی ها ، برنامه نویسی ، گرافیک رایانه ای ، انیمیشن و طراحی وب به دیگران آموزش می دهم. من همچنین برای یونیتی ، SAE ، انستیتوی سرگرمی استرالیا و ویکی گودت مشورت کرده ام. بهترین کتابهای درسی من از جمله توسعه بازی جامع با وحدت در بیش از 100 موسسه در سراسر جهان استفاده می شود. فارغ التحصیلان من در شرکت هایی مانند اپل ، Ubisoft ، LinkedIn و Deloitte Digital کار می کنند. من دارای مدرک ممتاز گرافیک رایانه و دکترا هستم. در هوش مصنوعی برای شخصیت های بازی در طول زندگی حرفه ای من جوایز زیادی را برای تعالی تدریس در سطح ایالتی ، ملی و بین المللی از جمله جایزه تعالی تدریس و آموزش استرالیا و مسابقه برنامه درسی بازی موبایل یونیت برنده شده ام. رویکرد من در زمینه آموزش علوم کامپیوتر و زمینه های مرتبط مبتنی بر پروژه است که به شما کارگاه های عملی می دهم و می توانید بلافاصله دندان های خود را در آن قرار دهید.

Penny @Holistic3D.com Penny @Holistic3D.com

هیجان علمی ، نویسنده و توسعه بازی سلام ، من دکتر پنی د بیل هستم. من کاملاً سازنده بسیاری از مسائل مربوط به کمبود رایانه و دانشگاهی هستم و علاقه واقعی به تدریس دارم. من بیش از 25 سال است که در دانشگاه ها در استرالیا و اروپا در سطح استاد کامل در مورد توسعه بازی ها ، برنامه نویسی ، گرافیک رایانه ای ، انیمیشن و طراحی وب به دیگران آموزش می دهم. من همچنین برای یونیتی و SAE مشورت کرده ام. بهترین کتابهای درسی من از جمله توسعه بازی جامع با وحدت در بیش از 100 موسسه در سراسر جهان استفاده می شود. فارغ التحصیلان من در شرکت هایی مانند اپل ، Ubisoft ، LinkedIn و Deloitte Digital کار می کنند. من دارای مدرک ممتاز گرافیک رایانه و دکترا هستم. در هوش مصنوعی برای شخصیت های بازی در طول زندگی حرفه ای من جوایز زیادی را برای تعالی تدریس در سطح ایالتی ، ملی و بین المللی از جمله جایزه تعالی تدریس و آموزش استرالیا و مسابقه برنامه درسی بازی موبایل یونیت برنده شده ام. رویکرد من در زمینه آموزش علوم کامپیوتر و زمینه های مرتبط مبتنی بر پروژه است که به شما کارگاه های عملی می دهم و می توانید بلافاصله دندان های خود را در آن قرار دهید.

Nicholas Lever Nicholas Lever

توسعه دهنده بازی پس از اخذ مدرک طراحی گرافیک ، در سال 1980 به عنوان انیمیشن کارتن شروع به کار کردم. خرید Sinclair ZX81 در 1982 شروع مهاجرت به برنامه نویس تمام وقت بود. ZX81 به سرعت با Sinclair Spectrum جایگزین شد ، یک پردازنده Z80 و 48K قوچ عظیم این کامپیوتر را برای توسعه بازی ها بسیار بهتر کرد. من چند بازی با استفاده از Sinclair Basic و سپس Assembler توسعه دادم. Spectrum با یک Commodore Amiga عوض شد و من بازیهای بیشتری را در بازار ابزارهای اشتراک گذاری توسعه دادم و به استفاده از C. رفتم. در این مرحله اساساً یک سرگرمی بود. کارهای پولی همچنان تبلیغات تجاری متحرک بود. من سرانجام در اوایل دهه نود یک کامپیوتر خریدم و مدرک دانشگاه آزاد در ریاضیات و محاسبات را به پایان رساندم. من یک کتابخانه sprite ActiveX control ایجاد کردم و اولین کتاب خود را با هدف جذب طراحان در برنامه نویسی تألیف کردم. در اواسط دهه نود ، Flash ظاهر شد و شرکتی که من در حال مدیریت آن بودم ، Catalyst Pictures ، به خاطر ایجاد بازی ها مشهور شد. از آن زمان بیشتر زندگی کاری من ایجاد بازی است ، ابتدا در Flash و Director ، زیرا مدیر اولین کتابخانه سه بعدی گسترده ای را که در مرورگر با استفاده از افزونه اجرا می شود منتشر کرد.