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-04-18 22:02:02 +0300
committerClément Foucault <foucault.clem@gmail.com>2017-04-18 22:33:09 +0300
commit80db7092500abef075d981408cdc75f615ce0a34 (patch)
treecd804b88f2defcb8f95634e99f0eec86fb40be7a /source/blender/draw/engines/eevee/shaders/lit_surface_frag.glsl
parent5bbc803ff0538c3363dcf785d53be0d1804bd37e (diff)
Eevee: Spherical Harmonic diffuse.
For now it's done each frame and it's rather slow (16ms) but result will be cached soon.
Diffstat (limited to 'source/blender/draw/engines/eevee/shaders/lit_surface_frag.glsl')
-rw-r--r--source/blender/draw/engines/eevee/shaders/lit_surface_frag.glsl5
1 files changed, 4 insertions, 1 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 598d34941eb..189cdcf10fb 100644
--- a/source/blender/draw/engines/eevee/shaders/lit_surface_frag.glsl
+++ b/source/blender/draw/engines/eevee/shaders/lit_surface_frag.glsl
@@ -6,6 +6,7 @@ uniform mat4 ProjectionMatrix;
uniform samplerCube probeFiltered;
uniform float lodMax;
+uniform vec3 shCoefs[9];
#ifndef USE_LTC
uniform sampler2D brdfLut;
@@ -198,7 +199,7 @@ void main()
sd.R = reflect(-sd.V, sd.N);
/* hardcoded test vars */
- vec3 albedo = vec3(0.0);
+ vec3 albedo = mix(vec3(0.0, 0.0, 0.0), vec3(0.8, 0.8, 0.8), saturate(worldPosition.y/2));
vec3 f0 = mix(vec3(0.83, 0.5, 0.1), vec3(0.03, 0.03, 0.03), saturate(worldPosition.y/2));
vec3 specular = mix(f0, vec3(1.0), pow(max(0.0, 1.0 - dot(sd.N, sd.V)), 5.0));
float roughness = saturate(worldPosition.x/lodMax);
@@ -229,5 +230,7 @@ void main()
vec3 Li = textureLod(probeFiltered, sd.spec_dominant_dir, roughness * lodMax).rgb;
radiance += Li * brdf_lut.y + f0 * Li * brdf_lut.x;
+ radiance += spherical_harmonics(sd.N, shCoefs) * albedo;
+
fragColor = vec4(radiance, 1.0);
} \ No newline at end of file