Learn to Write Unity Compute Shaders
What you'll learn
- How to write Unity Compute Shaders
- How to use ComputeShaders in post processing image filters
- How to use ComputeShaders for particle effects and flocking
- How use StructuredBuffers to share data between a ComputeShader and an instancing Surface Shader
- Using ComputeShaders to handle fluid simulations
- Using ComputeShaders to create a Physics engine
Requirements
- You must be familiar with the basics of Unity
- You need to have a basic knowledge of C#
Description
By learning to create Compute Shaders, you will put yourself at the cutting edge of Unity development. Unlike a traditional shader, you can use a Compute Shader to handle any data manipulation problem, where having dozens (or even hundreds) of threads running simultaneously causing a bottleneck in your game to run many, many times faster. In this course you will start from small steps, learning the basics of compute shaders. First, we look at passing data from the CPU to the GPU using buffers. Then we’ll look at using these buffers in our calculations. Once you have this initial grounding, you learn how to use these techniques to create blisteringly-fast post-processing filters. You can use Compute Shaders to handle particle effects and flocking calculations. In the course, you'll create a flock of thousands of birds where each bird flaps its wings in sync with its speed through the air. Divide and conquer is the way, with Compute Shaders. By using hundreds of threads running simultaneously, we develop a GPU Physics engine that can handle thousands of tumbling chess pieces. Compute Shaders are ideal for handling the orientation of grass blades as an avatar moves through grass. The challenging subject of fluids (both 2D and 3D) are covered in the course and you'll see how much this computationally-intensive field benefits from Compute Shaders.
The resources for the course are presented as a code-along version and a complete version and include over 30 different examples. Unity Compute Shaders provides the ideal platform to learn how to handle complex problems in your games. Flocking calculations using the 3 key rules of Separation, Cohesion, and Alignment are covered in detail. The physics calculations to handle fast collision detection and the forces involved are included (both theoretically and practically). Smoothed Particle Hydrodynamics is a technique for calculating fluid simulations. We'll take you through it from the foundation level.
If you're working with Unity, you need to understand how to use Compute Shaders to ensure your game has the best performance. After all, why let the GPU sit idle while the CPU is working overtime? You'll see massive performance improvements if you switch some tasks to the GPU and handle them with a Compute Shader.
This course uses Unity 2019.4 and is Windows and Mac compatible.
Student feedback
"This course is simply amazing. I always wanted to learn those topics and finally got some incredible resources. Thank you a lot. Btw I loved the didactic. The default scenes and challenges are really helping me to stick with the course without getting frustrated. The topics covered are very difficult but you made it in a way where we can really get step by step and at the same time seeing incredible things on screen!"
"This course is an intensive, well explained, understanding on how compute shaders work, impressive results and explanations"
"Amazing course - followed up Penny De Byls CG Shader course with this one and they dovetail excellently. Nicholas does a great job with some interesting projects and great concepts - loved the section on fluid simulation."
"I have just started the Compute Shaders course from Holistic 3D. Loving the course, and I am finding it super easy to understand! Been looking for a decent tutorial for ages, and this is definitely the one I have been looking for!"
"Great tutorial, knowledge is condensed and easy to acquire. I always wanted to learn programming shaders and GPU computing, so this course is something that fits my needs perfectly!"
"This course excels at filling in the blanks from my self-taught knowledge and understanding of compute shaders. The explanations are concise yet full, all the while aiding the connection of the basics to form a solid foundation!"
"Course is super informative with great pacing (on the fast side) and plenty of challenges along the way. The challenges are why I am giving the 5-star rating. These tend to require some thought, but are solvable using what we have learned, and for my taste, just the right level of difficulty."
"This course is absolutely a must for any 3D graphics developer. It is the best resource I have seen online without a doubt. Nicholas is an amazing instructor and he is able to explain really complicated concepts such as Navier-Stokes equations is very simple terms. I would give 10 stars it if was possible. Way beyond my expectations and I will watch it again several times as references. Thank you Mr. Lever for your outstanding work in teaching incredible content with very accessible language. Please more physics simulation :)"
"This is absolutely worth your time and money if you want to learn about compute shaders. Nik Lever takes the time to explain the relevant code line by line and is clearly knowledgeable about the subject. His jovial British spirit will encourage even the most jaded souls to hone their knowledge as he presents coding challenges that grow incrementally in complexity as the course progresses. Will be checking out whatever course he creates next."
What others are saying about Nik's courses:
Very rich content and impressive didactics. Very good to learn from someone who has mastered the subject and knows how to teach.
Nik's style of teaching made me understand everything very intuitively and I'm so comfortable with shaders now.
I like Nik's courses, I understand in the way he explains. Great content.
Who this course is for:
- Developers wanting to add compute shaders to their skill set
- Developers who wish to use the GPU to avoid processing bottle necks on games
- Developers curious to know modern techniques for flocking, gpu physics, grass, ray tracing and fluids
Instructors
Hi, I'm Dr Penny de Byl. I'm a full stack developer of most things computer sciency and academic with a true passion for teaching. I've been teaching others about games development, programming, computer graphics, animation and web design for over 25 years in universities in Australia and Europe at the full professor level. I've also consulted for Unity, SAE, the Australian Institute of Entertainment and Wikitude. My best selling textbooks including Holistic Game Development with Unity are used in over 100 institutions world-wide. My graduates work at companies like Apple, Ubisoft, LinkedIn and Deloitte Digital.
I have an honours degree in computer graphics and a Ph.D. in artificial intelligence for games characters. Over the course of my career I've won numerous awards for teaching excellence at the state, national and international levels including the Australian Learning and Teaching Council's Excellence in Teaching Award and the Unity Mobile Game Curriculum Competition. My approach to teaching computer science and related fields is project-based giving you hands-on workshops you can immediately get your teeth into.
I want you to leave my virtual classroom fully armed with a toolkit of skills for life-long learning. I'm excited to now be focussing my efforts full-time on Udemy to bring my years of knowledge and experience to those eager to learn about technology.
After getting a degree in Graphic Design, I started work in 1980 as a cartoon animator. Buying a Sinclair ZX81 back in 1982 was the start of a migration to a full time programmer. The ZX81 was quickly swapped for the Sinclair Spectrum, a Z80 processor and a massive 48K of ram made this a much better computer to develop games. I developed a few games using Sinclair Basic and then Assembler. The Spectrum was swapped for a Commodore Amiga and I developed more games in the shareware market, moving to using C. At this stage it was essentially a hobby. Paid work was still animated commercials.
I finally bought a PC in the early nineties and completed an Open University degree in Maths and Computing. I created a sprite library ActiveX control and authored my first book, aimed at getting designers into programming. In the mid nineties along came Flash and the company I was now running, Catalyst Pictures, became known for creating games.
Since then the majority of my working life has been creating games, first in Flash and Director, as Director published the first widely available 3D library that would run in a browser using a plugin.
In recent years game development has involved using HTML5 and Canvas. Using both custom code and various libraries. A particular preference is to use the latest version of Adobe Flash, now called Animate that exports to the Javascript library Createjs.
I've worked for the BBC. Johnson and Johnson. Deloitte, Mars Corporation and many other blue chip clients. The company I've run for over 30 years has won a number of awards and been nominated for a BAFTA twice, the UK equivalent to the Oscar.
Over the last 20 years I have been struck by just how difficult it has been to get good developers and have decided to do something about this rather than just complain. I run a CodeClub for kids 9-13 years old and I'm developing a number of courses for Udemy hoping to inspire and educate new developers. Most of my courses involve real-time 3d either using the popular Open Source library Three.JS or Unity. I'm currently having a lot of fun developing WebXR games and playing with my Oculus Quest.
Hi, I'm Dr Penny de Byl. I'm a full stack developer of most things computer sciency and academic with a true passion for teaching. I've been teaching others about games development, programming, computer graphics, animation and web design for over 25 years in universities in Australia and Europe at the full professor level. I've also consulted for Unity and SAE. My best selling textbooks including Holistic Game Development with Unity are used in over 100 institutions world-wide. My graduates work at companies like Apple, Ubisoft, LinkedIn and Deloitte Digital.
I have an honours degree in computer graphics and a Ph.D. in artificial intelligence for games characters. Over the course of my career I've won numerous awards for teaching excellence at the state, national and international levels including the Australian Learning and Teaching Council's Excellence in Teaching Award and the Unity Mobile Game Curriculum Competition. My approach to teaching computer science and related fields is project-based giving you hands-on workshops you can immediately get your teeth into.
I want you to leave my virtual classroom fully armed with a toolkit of skills for life-long learning. I'm excited to now be focussing my efforts full-time on Udemy to bring my years of knowledge and experience to those eager to learn about technology.