prompter: I would like to know more about Compute Shaders. Where can i find good resources for that ?

assistant: There are quite a few good resources for learning about compute shaders:

CUDA by Example - Has a good chapter on compute shaders, even though the book focuses on CUDA, the concepts translate well to OpenGL/DirectX compute shaders.
Mozilla Developer Network - This has a pretty good overview article on compute shaders.
Ray tracing in a weekend - This book uses compute shaders to implement a ray tracer, so you get to learn about compute shaders in the context of an actual application.
Scratchapixel - Has a series of articles on GPGPU and compute shaders.
DirectX compute shader tutorials - Some good hands-on tutorials for learning Direct3D compute shaders.
The official documentation for the graphics API you are using (such as DirectX or OpenGL) will likely have information and examples of how to use compute shaders.
Online communities such as Reddit's /r/GraphicsProgramming and Stack Overflow can be a great place to ask questions and learn from experienced graphics programmers.
Online courses such as those offered on Udemy or Coursera can also be a good way to learn about compute shaders and graphics programming in general.

The key things to understand about compute shaders are:

They run on the GPU, parallelized across many cores.
They don't output pixels but can output raw data (textures, buffers).
Shared memory and atomic operations are useful for parallelism.
Thread groups and local/group size are important concepts.

Once you grasp those core concepts, a lot of it is just practicing writing various compute shader algorithms/kernels and optimizing their performance.

prompter: What resource can you recommend to a beginner with no prior experience on compute shaders?

assistant: Since you have no prior experience with compute shaders, I'd recommend starting with some beginner-friendly resources that provide an accessible introduction to the core concepts. One good option is the "Introduction to Compute Shaders" course on Udemy. It teaches you the basics of how compute shaders work and walks you through writing your own compute shader programs step-by-step. This can help you grasp the fundamentals and gain some hands-on practice without getting overwhelmed.

Once you have a solid understanding of the basics, you might find it helpful to see some real-world applications of compute shaders. For example, they are commonly used to accelerate scientific simulations, implement custom graphics effects in video games, and train machine learning models. Looking at practical examples like these can help motivate you to learn more and give you ideas for your own projects to work on. With some practice, you'll be writing your own compute shader programs in no time!

prompter: Can you teach me the fundamentals of shaders in the unity game engine?

assistant: Choosing a good beginner resource depends a lot on your current goals and skills.

I recommend identifying the smallest project or task related to compute shaders that is interesting to you, and to center your research around completing that goal. It should be something you think you could complete in a few short sessions of effort. Pull from as many resources you can find, and feel free to go on minor research tangents if they seem interesting.

If you find that your objective is too grand or ill conceived, feel free to modify or abandon your project.  Remember, the goal is to learn, not to complete the project.

By focusing on small projects, you can learn a wide array of skills that are hard to identify.  Using this strategy the "what's the best" type questions will tend to disappear as you glean info from a wide array of sources.

(Plus, Open Assistant is a great resource for providing targeted, informed, and customized answers for almost every question.)

assistant: Sure!  What graphics library are you planning on using or do you want to know about compute shaders in general?

prompter: I'm making a 3D video game in Unity. I want a good resource for learning how to make good shaders for video game graphics in Unity. My game has a fun, cartoony low-poly style. It is an RPG about a farmer and a bunny who work together to save a farm from being taken over as part of a catering conglomerate.

assistant: That sounds like a fun and creative game idea! Shaders can be an essential part of creating a visually appealing low-poly, cartoony style. Unity has a powerful built-in shader system called the ShaderLab, and there are many resources available for learning how to make shaders tailored to your game's specific style.

Here are some resources that can help you get started with creating shaders for your game:

Unity Shader Documentation:
1. The official Unity documentation is always a great starting point for learning about shaders in Unity. Start with the ShaderLab syntax and work your way through examples and tutorials.
Link: https://docs.unity3d.com/Manual/SL-Reference.html
2. Unity Shader Graph:
Unity Shader Graph is a visual editor for creating shaders. It's a more intuitive way to create shaders, especially for those who are not well-versed in programming. You can create shaders by connecting nodes together to define how your material should look.
Link: https://docs.unity3d.com/2023.2/Documentation/Manual/shader-graph.html
3. Making Stuff Look Good YouTube Channel:
This channel offers in-depth tutorials on various Unity shaders, techniques, and visual effects. You can learn a lot about creating appealing graphics and shaders for your game.
Link: https://www.youtube.com/channel/UCEklP9iLcpExB8vp_fWQseg
4. Unity Asset Store:
The Unity Asset Store offers many pre-made shaders and materials that can be tailored to your needs. Some of these assets are free, while others are paid. Look for assets that match your desired style, and then study and modify them to fit your game.
Link: https://assetstore.unity.com/categories/vfx/shaders
5. Books and Online Courses:
There are many books and online courses available on Unity shaders, such as "Unity 2021 Shaders and Effects Cookbook" by John P. Doran and Alan Zucconi or "Unity Shader Fundamentals" by Ben Tristem on Udemy.

Remember to focus on shaders that complement your game's low-poly, cartoony style. Experiment with various techniques, such as cel shading or flat shading, and play with colors and lighting to achieve the look you're aiming for. Good luck with your game development!