Desired Rendering Features
- PBR/Materials
- [x] Ambient Occlusion (done by 9bd6bc1)
- [x] Normal mapping (done by #63)
- [x] #135
- [ ] Anisotropy
- [ ] Subsurface Scattering
- [ ] Specular Glossiness (KHR_materails_pbrSpecularGlossiness
- [x] Clear coat (KHR_materials_clearcoat)
- [ ] Transmission (KHR_materials_transmission)
- [ ] Sheen (KHR_materials_sheen)
- [ ] IOR (KHR_materials_ior)
- Lighting
- [ ] Point Lights
- [ ] Clustered Light Culling
- [ ] Point light shadows
- [ ] IBL
- [ ] Prebaked light probes
- [ ] Live-reloaded
- [ ] Static shadow/probe caching
- [ ] Point Lights
- Post-processing
- [ ] SSAO
- [ ] Bloom
- [ ] Motion blur
- [ ] Auto-exposure
- [ ] TAA
- [ ] SSR
- [ ] SSGI (maybe)
- Statistics
- [x] CPU timing stats
- [x] GPU timing stats (requires https://github.com/gfx-rs/wgpu/issues/721)
Various references:
- https://frostbite-wp-prd.s3.amazonaws.com/wp-content/uploads/2016/03/29204330/GDC_2016_Compute.pdf
- https://www.advances.realtimerendering.com/s2015/aaltonenhaar_siggraph2015_combined_final_footer_220dpi.pdf
I published the first version of wgrepp (I didn't have a better idea for the name), currently it only has a simple SSAO effect. To integrate it, rend3 would need to create a normal buffer. Alternatively, wgrepp could also reconstruct normals from the depth buffer, but that might not be a good idea, because other effects need normals too.
Great! I'll take a look at integrating this after this current milestone is over.
Looking around in the rend3 code for a good place to add the post process abstraction layer to start coding the bloom from there. You got any thoughts on where to do that and what filestructure would be prefered? @cwfitzgerald