This repository showcases various modern rendering techniques implemented using Metal 4 API, focused on GPU driven rendering, raytracing and neural graphics.
This project works on any M3+ GPU. Anything below is not supported due to lack of support for indirect mesh ICB and Metal 4 raytracing.
To build, just open the project in Xcode and run the Pocketcat scheme.
The project provides 3 baked meshes by default: cube, cube+sphere, and Crytek Sponza. To add more meshes, you can add any GLTF model in SourceAssets and run the AssetBaker program to bake everything. The engine does not support runtime creation of scenes, you have to declare them programmatically in Pocketcat/Core/Scene.swift.
- Raytraced sun shadows (denoiser wip)
- Raytraced ambient occlusion (denoiser wip)
- Raytraced global illumination (denoiser wip)
- Mesh shaders
- GPU driven debug renderer
- GPU driven TLAS build
- Visibility buffer
- MetalFX spatial/temporal upscaling
- Stochastic reference pathtracer
- Nanite
- Inference engine
- NNAO
- Point lights in raster and PT
- Clustered light culling


