diff options
author | Rémi Verschelde <rverschelde@gmail.com> | 2022-12-03 12:46:25 +0100 |
---|---|---|
committer | Rémi Verschelde <rverschelde@gmail.com> | 2022-12-03 12:46:25 +0100 |
commit | 29ddbfa19a7104ee4a7350c78b28378ca96f29c5 (patch) | |
tree | 5b1d59ad394411442867704728ff6c129b356c33 /servers/rendering/renderer_rd/effects/copy_effects.cpp | |
parent | e0f9bc662954e9a5b96619ef203c7cf69a199291 (diff) | |
parent | b2b89d7294ebb0824ce85b8bad59357caf5ec14f (diff) |
Merge pull request #69514 from clayjohn/IBL-roughness
Properly remap roughness when reading from radiance map
Diffstat (limited to 'servers/rendering/renderer_rd/effects/copy_effects.cpp')
-rw-r--r-- | servers/rendering/renderer_rd/effects/copy_effects.cpp | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/servers/rendering/renderer_rd/effects/copy_effects.cpp b/servers/rendering/renderer_rd/effects/copy_effects.cpp index a05db8c563..f94abd66d7 100644 --- a/servers/rendering/renderer_rd/effects/copy_effects.cpp +++ b/servers/rendering/renderer_rd/effects/copy_effects.cpp @@ -1153,7 +1153,8 @@ void CopyEffects::cubemap_roughness(RID p_source_rd_texture, RID p_dest_texture, memset(&roughness.push_constant, 0, sizeof(CubemapRoughnessPushConstant)); roughness.push_constant.face_id = p_face_id > 9 ? 0 : p_face_id; - roughness.push_constant.roughness = p_roughness * p_roughness; // Shader expects roughness, not perceptual roughness, so multiply before passing in. + // Remap to perceptual-roughness^2 to create more detail in lower mips and match the mapping of cubemap_filter. + roughness.push_constant.roughness = p_roughness * p_roughness; roughness.push_constant.sample_count = p_sample_count; roughness.push_constant.use_direct_write = p_roughness == 0.0; roughness.push_constant.face_size = p_size; |