overte icon indicating copy to clipboard operation
overte copied to clipboard

Graphics settings

Open HifiExperiments opened this issue 1 year ago • 4 comments

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.

NLnet foundation logo NGI Zero Logo

HifiExperiments avatar Jun 29 '24 00:06 HifiExperiments

I tested it and current version works very well.

ksuprynowicz avatar Jul 29 '24 22:07 ksuprynowicz

One issue I noticed is that mirrors look kinda blurry even with no AA, and they always have jitter even with TAA disabled: image

ksuprynowicz avatar Jul 29 '24 22:07 ksuprynowicz

hm I'll take a look, maybe I messed up the AA controls for mirrors

HifiExperiments avatar Jul 30 '24 00:07 HifiExperiments

I believe I've fixed it!

HifiExperiments avatar Jul 30 '24 23:07 HifiExperiments

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:

image

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

HifiExperiments avatar Aug 14 '24 22:08 HifiExperiments

Alezia tested the latest version and confirmed everything is working as expected! this just needs a CR then it’ll be ready to merge

HifiExperiments avatar Aug 16 '24 02:08 HifiExperiments