You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Not critical for 4.0's release, but we should try to figure out if we can bring the roughness appearance closer to each other between the High Quality and Real Time sky filtering modes. (I am not referring to the presence of fireflies in the reflection here, which is an unrelated problem.)
Most importantly, materials with intermediate roughness values (0.3-0.8) tend to appear less rough on average when using the Real Time sky filtering mode. This caveat is shared both by the medium quality and high quality modes available in for the Real Time filtereing mode the project settings.
I think we should first try to determine which one is the most correct, perhaps by comparing the result with a reference raytracing renderer (Cycles, Mitsuba, …). Then we can try to better fit the sky filtering mode that's the furthest away from the reference renderer closer to the other mode (or perhaps find a middle ground if that happens to be the case).
It is unlikely that we will be able to find a perfect match for both modes, but it should be possible to bring them slightly closer to each other to make switching between both modes more convenient for users.
To see the difference in roughness rendering, focus on the top row where the difference between roughness generation is the most noticeable:
High Quality
X axis is roughness (left: 0.0, right: 1.0), Y axis is metallic (top: 1.0, bottom: 0.0).
The scene does not feature a visible DirectionalLight node, so only environment lighting is used here.
Real Time (medium quality, default)
Real Time (high quality)
Steps to reproduce
Add a WorldEnvironment with a highly detailed PanoramaSkyMaterial texture (https://polyhaven.com/hdris is a good source).
Add a MeshInstance with a SphereMesh and StandardMaterial3D that has Roughness = 0 and Metallic = 1.
Create 10 more MeshInstances. Do the same with various roughness values, in increments of 0.1 up to 1.0.
Activision uses a glossiness model which they convert to roughness for the purposes of calculating the coefficients. It is possible that their conversion of glossiness->roughness results in a slightly mapping of roughness. Our "high quality" filtering uses roughness based on a GGX model where roughness is squared in order to make it more perceptually linear. If Activision's Glossiness model doesn't do something similar, then that may explain the difference.
_edit: I have taken a closer look and indeed, simply mapping roughness to sqrt(roughness) when using real time mode makes realtime and high_quality match. This will be difficult to fix. The Realtime mode uses precomputed tables that days of precomputation time to create. _
Godot version
4.0.dev (8485d0c)
System information
Fedora 34, GeForce GTX 1080 (NVIDIA 470.74)
Issue description
Not critical for 4.0's release, but we should try to figure out if we can bring the roughness appearance closer to each other between the High Quality and Real Time sky filtering modes. (I am not referring to the presence of fireflies in the reflection here, which is an unrelated problem.)
Most importantly, materials with intermediate roughness values (0.3-0.8) tend to appear less rough on average when using the Real Time sky filtering mode. This caveat is shared both by the medium quality and high quality modes available in for the Real Time filtereing mode the project settings.
I think we should first try to determine which one is the most correct, perhaps by comparing the result with a reference raytracing renderer (Cycles, Mitsuba, …). Then we can try to better fit the sky filtering mode that's the furthest away from the reference renderer closer to the other mode (or perhaps find a middle ground if that happens to be the case).
It is unlikely that we will be able to find a perfect match for both modes, but it should be possible to bring them slightly closer to each other to make switching between both modes more convenient for users.
To see the difference in roughness rendering, focus on the top row where the difference between roughness generation is the most noticeable:
High Quality
X axis is roughness (left: 0.0, right: 1.0), Y axis is metallic (top: 1.0, bottom: 0.0).
The scene does not feature a visible DirectionalLight node, so only environment lighting is used here.
Real Time (medium quality, default)
Real Time (high quality)
Steps to reproduce
Minimal reproduction project
tests/3d/test_pbr_radiance_high_quality.tscn
andtests/3d/test_pbr_radiance_real_time.tscn
in https://github.com/Calinou/godot-rendering-testsThe text was updated successfully, but these errors were encountered: