Skip to content

Commit b28d5a3

Browse files
committed
Merge pull request #106241 from lander-vr/fix-reflection-probe-box-projection-stretching
Fix reflection probe box projection stretching
2 parents e3ad812 + be01c7f commit b28d5a3

File tree

2 files changed

+4
-2
lines changed

2 files changed

+4
-2
lines changed

servers/rendering/renderer_rd/shaders/forward_clustered/scene_forward_clustered.glsl

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1916,7 +1916,8 @@ void fragment_shader(in SceneData scene_data) {
19161916
vec3 bent_normal = normal;
19171917
#endif
19181918
vec3 ref_vec = normalize(reflect(-view, bent_normal));
1919-
ref_vec = mix(ref_vec, bent_normal, roughness * roughness);
1919+
// Interpolate between mirror and rough reflection by using linear_roughness * linear_roughness.
1920+
ref_vec = mix(ref_vec, bent_normal, roughness * roughness * roughness * roughness);
19201921

19211922
for (uint i = item_from; i < item_to; i++) {
19221923
uint mask = cluster_buffer.data[cluster_reflection_offset + i];

servers/rendering/renderer_rd/shaders/forward_mobile/scene_forward_mobile.glsl

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1401,7 +1401,8 @@ void main() {
14011401
vec3 bent_normal = normal;
14021402
#endif
14031403
vec3 ref_vec = normalize(reflect(-view, bent_normal));
1404-
ref_vec = mix(ref_vec, bent_normal, roughness * roughness);
1404+
// Interpolate between mirror and rough reflection by using linear_roughness * linear_roughness.
1405+
ref_vec = mix(ref_vec, bent_normal, roughness * roughness * roughness * roughness);
14051406

14061407
uvec2 reflection_indices = instances.data[draw_call.instance_index].reflection_probes;
14071408
for (uint i = 0; i < sc_reflection_probes(); i++) {

0 commit comments

Comments
 (0)