Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorClément Foucault <foucault.clem@gmail.com>2017-05-02 21:33:59 +0300
committerClément Foucault <foucault.clem@gmail.com>2017-05-03 13:08:56 +0300
commitb08fc83d1da8cf51bacaec10a82dbc6cdef9db43 (patch)
tree87100bbc2b008f4e7a92ad7be99fadac576a33e4
parente0fded5d3a57b3a3f2cb6b71be7290370099bfb9 (diff)
Eevee: Fix Lamp Roughness.
-rw-r--r--source/blender/draw/engines/eevee/shaders/lit_surface_frag.glsl6
1 files changed, 4 insertions, 2 deletions
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;