Skip to content

Conversation

@Mugen87
Copy link
Collaborator

@Mugen87 Mugen87 commented Aug 14, 2025

Related issue: #31576, #28752

Description

The PR adds support for blurred SSR reflections by generating a mipmap chain of blurred versions of the reflection buffer. A mip is selected based on the fragment's roughness value. I'm currently using the same number of mips like the Unity SSR mentioned in #31576. Rough materials looks now considerably better when using SSR 🚀 .

Using blurred mipmaps is optional and adds additional overhead to the SSR. In a performance stress test with a 5K resolution the performance went down from 52 FPS to 43 FPS. That is not substantial but still worth having in mind when using this technique. When using blurred SSR reflections with very rough surfaces, it's possible to reduce the quality a bit (e.g. from 0.5 to 0.3) which compensates the performance lost.

@Mugen87 Mugen87 force-pushed the dev4 branch 2 times, most recently from fdab2ae to cc5baf7 Compare August 14, 2025 18:50
@Mugen87 Mugen87 added this to the r180 milestone Aug 15, 2025
@Mugen87 Mugen87 merged commit c0f77e8 into mrdoob:dev Aug 16, 2025
14 checks passed
@sunag sunag changed the title SSRNode: Add blurred mipmaps and honor roughness. TSL: Add blurred mipmaps and honor roughness for ssr(). Aug 16, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants