[Bf-blender-cvs] [b08fc83d1da] blender2.8: Eevee: Fix Lamp Roughness.
Clément Foucault
noreply at git.blender.org
Wed May 3 12:09:08 CEST 2017
Commit: b08fc83d1da8cf51bacaec10a82dbc6cdef9db43
Author: Clément Foucault
Date: Tue May 2 20:33:59 2017 +0200
Branches: blender2.8
https://developer.blender.org/rBb08fc83d1da8cf51bacaec10a82dbc6cdef9db43
Eevee: Fix Lamp Roughness.
===================================================================
M source/blender/draw/engines/eevee/shaders/lit_surface_frag.glsl
===================================================================
diff --git a/source/blender/draw/engines/eevee/shaders/lit_surface_frag.glsl b/source/blender/draw/engines/eevee/shaders/lit_surface_frag.glsl
index 0d96b7768dc..b0a99d8e72b 100644
--- a/source/blender/draw/engines/eevee/shaders/lit_surface_frag.glsl
+++ b/source/blender/draw/engines/eevee/shaders/lit_surface_frag.glsl
@@ -233,6 +233,8 @@ float light_common(inout LightData ld, inout ShadingData sd)
vec3 eevee_surface_lit(vec3 world_normal, vec3 albedo, vec3 f0, float roughness, float ao)
{
+ float roughnessSquared = roughness * roughness;
+
ShadingData sd;
sd.N = normalize(world_normal);
sd.V = (ProjectionMatrix[3][3] == 0.0) /* if perspective */
@@ -240,7 +242,7 @@ vec3 eevee_surface_lit(vec3 world_normal, vec3 albedo, vec3 f0, float roughness,
: normalize(eye);
sd.W = worldPosition;
sd.R = reflect(-sd.V, sd.N);
- sd.spec_dominant_dir = get_specular_dominant_dir(sd.N, sd.R, roughness);
+ sd.spec_dominant_dir = get_specular_dominant_dir(sd.N, sd.R, roughnessSquared);
vec3 radiance = vec3(0.0);
vec3 indirect_radiance = vec3(0.0);
@@ -255,7 +257,7 @@ vec3 eevee_surface_lit(vec3 world_normal, vec3 albedo, vec3 f0, float roughness,
light_common(ld, sd);
float vis = light_visibility(ld, sd);
- vec3 spec = light_specular(ld, sd, roughness, f0);
+ vec3 spec = light_specular(ld, sd, roughnessSquared, f0);
vec3 diff = light_diffuse(ld, sd, albedo);
radiance += vis * (diff + spec) * ld.l_color;
More information about the Bf-blender-cvs
mailing list