Overview
Syllabus
- Rendering lots of grass in OpenGL
- Diving into the code
- Instantiating objects in C++ vs C#/Java
- Shader class
- Variable naming conventions
- Initializing variables
- Some notes on strings
- Pass larger types by const reference
- Using correct types
- Strings in C++ and std::string_view
- .obj format
- Grass mesh
- Rendering meshes
- General notes and C++ code style
- Grass rendering and shaders
- Handling a time variable for shaders
- Storage buffers in OpenGL
- Reduce complexity in hot code paths
- How grass is actually rendered
- Grass vertex shader
- Use mat3 instead of mat4
- Reduce vertex shader complexity
- Don't reallocate GPU buffers
- Inspecting rendering using Nvidia Nsight
- Set buffer data instead of reallocating
- Grass fragment shader + improvements
- Adding variance to grass blade color
Taught by
The Cherno