Graphics
roadmap
math (for reference):
learning graphics:
- scratchapixel
- graphics from scratch
- raytracing in one weekend
- real-time rendering
- tinyrenderer
- rasterization in one weekend
- A trip through the Graphics Pipeline
- physically based rendering
learning api:
- vulkan-tutorial
- introduction to 3D Game Programming with DirectX 12
- vkguide
game engine:
other resources
projects
- Make a sphere mesh using spherical coordinates, and render it.
- Implement shader for simple diffuse and specular shading.
- Directional Lights, point lights, and spot lights
- Heightmap Rendering
- Write a simple parser for a simple mesh format such as Wavefront .obj, import it into your program and render it. In particular, try and import and render meshes with textures.
-
Implement a simple minecraft renderer. It is surprisingly simple to render minecraft-like worlds, and it is also very learningful.
-
Render reflections using cubemaps
- Shadow rendering using shadow maps.
-
Implement view frustum culling. This is a simple, yet very practical optimization technique.
-
Implement rendering of particle systems
- Learn how to implement Gamma Correction.
- Implement normal mapping
- Learn how to render lots of meshes efficiently with instanced rendering
- Animate meshes with mesh skinning.
advanced
- Various post-processing effects. Like Bloom(using Gaussian blur), ambient occlusion with SSAO, anti-aliasing with FXAA.
- Implement deferred shading, a technique useful for rendering many light sources.