pex-renderer
pex-renderer copied to clipboard
PostProcessing cleanup
To get rid of legacy use cases i propose we simplify postpro settings a bit:
- [x] remove encoding from camera (we no longer do post processing outside of render pipeline so linear output is not needed ATM)
- [ ] move fStop to DOF (fstop impacts dof only)
- [ ] move exposure to color correction (default to 1, camera exposure was used to compensate bright hdri that have exposure on their own now)
- [ ] move tonemapping to color correction (default to ACES, this impact colors too much so should be done together with other color settings)
- [ ] rename toneMap to toneMapping
- [ ] fog should happen in the material or at least before DOF (and boom as it is already)
Needs thinking and check
- [ ] render to screen settings should be in camera not in renderer
- [x] consider adding AgX tonemapper https://iolite-engine.com/blog_posts/minimal_agx_implementation
Nice to have
- [ ] move on to .cube lut postprocessing format instead of .png (check is it applied to linear or gamma colors?)
Some notes on tonemapping. Currently tonemapping can happen in postprocessing final (and not in blit), in blit (if not postprocessing) and in material shader (if output encoding is gamma and you draw to texture aka not blit to screen).
AgX testing images as EXR https://github.com/sobotka/Testing_Imagery and ThreeJS thread https://github.com/mrdoob/three.js/pull/27366