Further reading
As we mentioned in a previous section, task and mesh shaders are only available on Nvidia GPUs. This blog post has more details about their inner workings: https://developer.nvidia.com/blog/introduction-turing-mesh-shaders/.
Our implementation has been heavily inspired by the algorithms and techniques described in these resources:
- https://www.gdcvault.com/play/1023463/contactUs
- http://advances.realtimerendering.com/s2015/aaltonenhaar_siggraph2015_combined_final_footer_220dpi.pdf
Our go-to reference implementation for a task and mesh shader has been this project: https://github.com/zeux/niagara, which is also accompanied by a series of videos showing its development: https://www.youtube.com/playlist?list=PL0JVLUVCkk-l7CWCn3-cdftR0oajugYvd.
These libraries can be used to generate meshlets:
A more recent development in occlusion culling...