Skip to content

Visual Polish Alpha#5385

Open
Geenz wants to merge 69 commits intodevelopfrom
project/visual_polish
Open

Visual Polish Alpha#5385
Geenz wants to merge 69 commits intodevelopfrom
project/visual_polish

Conversation

@Geenz
Copy link
Copy Markdown
Collaborator

@Geenz Geenz commented Feb 6, 2026

relnotes:

Visual Polish Alpha

Welcome to the visual polish alpha! In this viewer, we have various visual polish features we're working on that we're collecting community feedback on. Stay tuned for a complete list!

New Features

  • Completely rewritten screen space reflections that are much higher quality and more performant
  • Automatic reflection probes on water
  • Improved sky reflections on reflection probes
  • Reflection quality drop down with Low, Medium, and High settings
  • Improved shadow sampling that's far less blurry
  • Improved alpha blended shadows
  • Tonemapping can now be controlled via EEP
  • HDR can now be controlled via EEP
  • Added a new "Use Environment" setting for HDR
  • Added SMAA T2x temporal anti-aliasing
  • Added motion blur support
  • Improved texture streaming and discards
  • Add support for physically based brightness of the sun and moon
  • Support for PBR Specular glTF extension

Geenz added 25 commits June 5, 2025 21:56
…ce. Also some improvements to the binary search to better handle underflows.
Comment thread indra/newview/pipeline.cpp Outdated
@Geenz
Copy link
Copy Markdown
Collaborator Author

Geenz commented Mar 13, 2026

@vldevel @Crexon1 Should be fixed in the next build. Along with multiple mirror probes should work now*.

* Assuming you really want to crank up the appropriate debug setting and have reflections set to ultra

@vldevel
Copy link
Copy Markdown
Contributor

vldevel commented Mar 13, 2026

@vldevel @Crexon1 Should be fixed in the next build.

Not quite: commit a55949c does fix the non-rendering non-planar probes, but it is still broken in the sense that it renders a magnified reflection.

Here is what I'm seeing in my experimental build with the new commit; note that I implemented a configurable probe Z size limit to flag (non-water) probes as planar or not (*): when inferior or equal to this limit, the mirror probe is considered planar.
Non-planar mirror:
non-planar-mirror
Planar mirror:
planar-mirror


(*) < 0.02 was too small: almost all mirrors in SL could be made planar (since they are indeed flat mirrors) but since the mirror probe object must enclose the surface of the mirror object, almost everyone is using a probe larger than 0.0199 (even for a flat mirror usually being 0.01 thick), like 0.05 (such as the mirror I use for my testing and seen in the above snapshots). Making this limit configurable also allows to disable (non-water) planar mirrors entirely (by setting the limit to 0 or less), or to turn every single mirror into a planar one (by setting the limit to 64 or more).

@vldevel
Copy link
Copy Markdown
Contributor

vldevel commented Mar 13, 2026

We also need some VRAM usage optimization for planar hero probes: since they only use face 0 in a cube map, the 5 other cube map faces are allocated for no purpose whatsoever, and given how ludicrously large the hero probes need to be (2Kx2K) to avoid blurry mirror reflections (due to bad mips selection, see my comments above), that's about 200MB of VRAM going to waste...
The cube map should therefore be replaced with planar render targets for planar probes.

@Geenz
Copy link
Copy Markdown
Collaborator Author

Geenz commented Mar 14, 2026

@vldevel Part of the plan (when I have a moment) is to add another texture array just for mirrors. Though, this is going to depend on specific platform capabilities (read: Apple's limping along OpenGL implementation) if we can get the extra sampler in the shaders. There have been problems before about this - especially in PBR's development cycle where we would bust the sampler budget in the shaders.

If that doesn't work, then I'm likely to just repurpose the other faces of the cube map to better utilize what we're setting up here. It's a cost you always pay for, but at least it's a predictable cost here.

In theory you'd think 16 is more than enough for us, but well. Turns out we have quite a few uniforms and samplers in the main sun + atmospherics deferred pass.

@vldevel
Copy link
Copy Markdown
Contributor

vldevel commented Mar 14, 2026

read: Apple's limping along OpenGL implementation)

That's an euphemism, considering Apple stopped all OpenGL maintenance over 7 years ago... :-D

I'd advocate for excluding macOS from planar mirrors rendering, if it means Windows and Linux can enjoy "low" VRAM budget planar probes.

@Geenz
Copy link
Copy Markdown
Collaborator Author

Geenz commented Mar 14, 2026

No.

@Dan-Linden Dan-Linden added this to the 2026.4 milestone Mar 25, 2026
@Geenz Geenz force-pushed the project/visual_polish branch from 9ceacd3 to de769c3 Compare April 9, 2026 06:37
@Geenz Geenz changed the base branch from release/2026.03 to develop April 17, 2026 14:24
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants