Graphics settings
closes #741 and #14, discussion ongoing about #740
this makes bloom, haze (fog), and AO configurable in the Graphics app. like shadows, they can all be set independently in the "custom" configuration mode, although like shadows, bloom and AO only work for the deferred renderer. this also adds a checkbox for enabling procedural materials on models at the bottom of the Graphics settings, and changes it to default on.
- [ ] determine if we want to add tonemapping options too
Funding
This project is funded through NGI0 Entrust, a fund established by NLnet with financial support from the European Commission's Next Generation Internet program. Learn more at the NLnet project page.
I tested it and current version works very well.
One issue I noticed is that mirrors look kinda blurry even with no AA, and they always have jitter even with TAA disabled:
hm I'll take a look, maybe I messed up the AA controls for mirrors
I believe I've fixed it!
I've made a few fixes based on feedback from Alezia, but one issue that she found (which is really a problem with mirrors in general, not these changes) remains:
when viewed at an angle, haze on skyboxes in mirrors isn't correct. the reason for this is complicated: the technique I used for computing the mirror projection matrices distorts the depth buffer in the mirror (which is explained a bit in the paper: https://terathon.com/lengyel/Lengyel-Oblique.pdf). in forward rendering, haze is computed when rendering the objects, so it works fine. but in deferred rendering, haze is computed as a fullscreen pass later, and fragment positions are re-computed from the depth buffer. this appears to be fine for most objects closer to the mirror, but it means that we are failing to properly detect which fragments are part of the skybox. theoretically there are other ways we could detect the skybox, so I will have to investigate some more
Alezia tested the latest version and confirmed everything is working as expected! this just needs a CR then it’ll be ready to merge
