diff --git a/shaders/Material_Roughness_Fragment.glsl b/shaders/Material_Roughness_Fragment.glsl index 9f4075c9..b0b3ee40 100644 --- a/shaders/Material_Roughness_Fragment.glsl +++ b/shaders/Material_Roughness_Fragment.glsl @@ -439,7 +439,7 @@ vec3 CalculateRadiance( out vec3 objectNormal, out vec3 objectColor, out float o { mask *= 1.1; rayDirection = reflect(rayDirection, nl); // reflect ray from metal surface - rayDirection = randomDirectionInSpecularLobe(rayDirection, hitRoughness == 0.1 ? 0.2 : hitRoughness * 0.8); + rayDirection = randomDirectionInSpecularLobe(rayDirection, hitRoughness == 0.1 ? 0.25 : hitRoughness * 0.8); rayOrigin = x + nl * uEPS_intersect; continue; } @@ -489,7 +489,7 @@ vec3 CalculateRadiance( out vec3 objectNormal, out vec3 objectColor, out float o { reflectionMask = mask * Re; reflectionRayDirection = reflect(rayDirection, nl); // reflect ray from surface - reflectionRayDirection = randomDirectionInSpecularLobe(reflectionRayDirection, hitRoughness * 0.9); + reflectionRayDirection = randomDirectionInSpecularLobe(reflectionRayDirection, hitRoughness * 0.8); reflectionRayOrigin = x + nl * uEPS_intersect; willNeedReflectionRay = TRUE; } @@ -505,7 +505,7 @@ vec3 CalculateRadiance( out vec3 objectNormal, out vec3 objectColor, out float o mask *= Tr; rayDirection = refract(rayDirection, nl, ratioIoR); - rayDirection = randomDirectionInSpecularLobe(rayDirection, hitRoughness * 0.5); + rayDirection = randomDirectionInSpecularLobe(rayDirection, hitRoughness * 0.4); rayOrigin = x - nl * uEPS_intersect; if (diffuseCount == 1 && isReflectionTime == FALSE) @@ -526,7 +526,7 @@ vec3 CalculateRadiance( out vec3 objectNormal, out vec3 objectColor, out float o { reflectionMask = mask * Re; reflectionRayDirection = reflect(rayDirection, nl); // reflect ray from surface - reflectionRayDirection = randomDirectionInSpecularLobe(reflectionRayDirection, hitRoughness * 0.9); + reflectionRayDirection = randomDirectionInSpecularLobe(reflectionRayDirection, hitRoughness * 0.8); reflectionRayOrigin = x + nl * uEPS_intersect; willNeedReflectionRay = TRUE; } @@ -582,7 +582,7 @@ vec3 CalculateRadiance( out vec3 objectNormal, out vec3 objectColor, out float o mask *= hitColor; rayDirection = reflect(rayDirection, nl); // reflect ray from metal surface - rayDirection = randomDirectionInSpecularLobe(rayDirection, hitRoughness * 0.9); + rayDirection = randomDirectionInSpecularLobe(rayDirection, hitRoughness == 0.1 ? 0.25 : hitRoughness * 0.8); rayOrigin = x + nl * uEPS_intersect; continue;