Browse Source

Merge pull request #96426 from clayjohn/RD-reflection-probe-roughness

Use non-linear mapping for ReflectionProbe mip levels to match sky
Rémi Verschelde 11 months ago
parent
commit
63a8548693

+ 1 - 1
servers/rendering/renderer_rd/shaders/scene_forward_lights_inc.glsl

@@ -940,7 +940,7 @@ void reflection_process(uint ref_index, vec3 vertex, vec3 ref_vec, vec3 normal,
 
 
 		vec4 reflection;
 		vec4 reflection;
 
 
-		reflection.rgb = textureLod(samplerCubeArray(reflection_atlas, DEFAULT_SAMPLER_LINEAR_WITH_MIPMAPS_CLAMP), vec4(local_ref_vec, reflections.data[ref_index].index), roughness * MAX_ROUGHNESS_LOD).rgb * sc_luminance_multiplier;
+		reflection.rgb = textureLod(samplerCubeArray(reflection_atlas, DEFAULT_SAMPLER_LINEAR_WITH_MIPMAPS_CLAMP), vec4(local_ref_vec, reflections.data[ref_index].index), sqrt(roughness) * MAX_ROUGHNESS_LOD).rgb * sc_luminance_multiplier;
 		reflection.rgb *= reflections.data[ref_index].exposure_normalization;
 		reflection.rgb *= reflections.data[ref_index].exposure_normalization;
 		if (reflections.data[ref_index].exterior) {
 		if (reflections.data[ref_index].exterior) {
 			reflection.rgb = mix(specular_light, reflection.rgb, blend);
 			reflection.rgb = mix(specular_light, reflection.rgb, blend);