Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Compatibility renderer has lower-quality (ir)radiance map generation than Forward+ and Mobile #95091

Closed
Tracked by #66458
Chaosus opened this issue Aug 3, 2024 · 3 comments · Fixed by #97676
Closed
Tracked by #66458

Comments

@Chaosus
Copy link
Member

Chaosus commented Aug 3, 2024

Tested versions

4.3 rc2

System information

Windows 11

Issue description

On forward renderer the simple MeshInstance with a SphereMesh looks like this (which is correct):

изображение

On compatibility renderer it has blurpy artifacts:

изображение

IDK if this is already reported, feel free to close if then.

Steps to reproduce

Create a MeshInstance3D and assign a SphereMesh to it, and run that scene on Compatibility Renderer.

Minimal reproduction project (MRP)

TestSphere.zip

@Calinou
Copy link
Member

Calinou commented Aug 5, 2024

This is probably just the radiance map generation being lower quality, particularly for higher roughness mipmaps. I'm not sure if much can be done about this.

Forward+ and Mobile can achieve higher quality as they use texture arrays for reflections (if enabled in the project settings), while Compatibility can't. Try disabling Texture Array Reflections in the Project Settings, restart the editor and look at how the ambient light looks when using Forward+.

@Calinou Calinou added discussion and removed bug labels Aug 5, 2024
@Calinou Calinou changed the title Compatibility renderer has rendering artifacts on mesh Compatibility renderer has lower-quality (ir)radiance map generation than Forward+ and Mobile Aug 5, 2024
@F3der1co
Copy link

F3der1co commented Sep 28, 2024

Try disabling Texture Array Reflections in the Project Settings, restart the editor and look at how the ambient light looks when using Forward+.

Forward+ with Texture Array Reflections turned off:
image
While worse still looks worlds better than on Compatibility.
To me it looks like it uses a much lower resolution mip-map than compatibility, which hides the blobbiness. Just a guess.

@clayjohn
Copy link
Member

clayjohn commented Sep 29, 2024

edit PR incoming tomorrow

To confirm, this comes from calculating Radiance directly within the mipmaps of a single cubemap texture. In the other RD rendering methods we using a Texture array so the quality can be significantly higher.

I suspect that we can get the same quality just by taking more samples at the lower mip levels. Effectively the reason it looks so much better is we take more samples when using texture arrays (its the same number of samples per pixel, but we have more pixels, therefore more samples).

I'll run a quick test and see

edit: It's not just sample count, there is a bug in how the texture is sampled
image

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging a pull request may close this issue.

5 participants