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-06-15 01:09:49 +0300
committerClément Foucault <foucault.clem@gmail.com>2017-06-15 01:57:16 +0300
commit810464e5f721a14bc3b6e3071f63a93f2ff68043 (patch)
treec8c1e0cc336200368b207a60cfa13e94f049669c /source/blender/draw/engines/eevee/shaders/lit_surface_frag.glsl
parent246ee82a2f3c7e076c711659d876909dc4b410ea (diff)
Eevee: Group octahedron map functions into one file.
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.glsl41
1 files changed, 2 insertions, 39 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 ebba5f3c742..7a1d2dae479 100644
--- a/source/blender/draw/engines/eevee/shaders/lit_surface_frag.glsl
+++ b/source/blender/draw/engines/eevee/shaders/lit_surface_frag.glsl
@@ -56,43 +56,6 @@ in vec3 viewNormal;
#define HEMI 3.0
#define AREA 4.0
-vec2 mapping_octahedron(vec3 cubevec, vec2 texel_size)
-{
- /* projection onto octahedron */
- cubevec /= dot( vec3(1), abs(cubevec) );
-
- /* out-folding of the downward faces */
- if ( cubevec.z < 0.0 ) {
- cubevec.xy = (1.0 - abs(cubevec.yx)) * sign(cubevec.xy);
- }
-
- /* mapping to [0;1]ˆ2 texture space */
- vec2 uvs = cubevec.xy * (0.5) + 0.5;
-
- /* edge filtering fix */
- uvs *= 1.0 - 2.0 * texel_size;
- uvs += texel_size;
-
- return uvs;
-}
-
-vec4 textureLod_octahedron(sampler2DArray tex, vec4 cubevec, float lod)
-{
- vec2 texelSize = 1.0 / vec2(textureSize(tex, int(lodMax)));
-
- vec2 uvs = mapping_octahedron(cubevec.xyz, texelSize);
-
- return textureLod(tex, vec3(uvs, cubevec.w), lod);
-}
-
-vec4 texture_octahedron(sampler2DArray tex, vec4 cubevec)
-{
- vec2 texelSize = 1.0 / vec2(textureSize(tex, 0));
-
- vec2 uvs = mapping_octahedron(cubevec.xyz, texelSize);
-
- return texture(tex, vec3(uvs, cubevec.w));
-}
#ifdef HAIR_SHADER
vec3 light_diffuse(LightData ld, ShadingData sd, vec3 albedo)
{
@@ -373,7 +336,7 @@ vec3 eevee_surface_lit(vec3 world_normal, vec3 albedo, vec3 f0, float roughness,
float roughness_copy = roughness;
vec3 sample_vec = probe_parallax_correction(sd.W, spec_dir, pd, roughness_copy);
- vec4 sample = textureLod_octahedron(probeCubes, vec4(sample_vec, i), roughness_copy * lodMax).rgba;
+ vec4 sample = textureLod_octahedron(probeCubes, vec4(sample_vec, i), roughness_copy * lodMax, lodMax).rgba;
float influ_spec = min(dist_attenuation, (1.0 - spec_accum.a));
@@ -453,7 +416,7 @@ vec3 eevee_surface_lit(vec3 world_normal, vec3 albedo, vec3 f0, float roughness,
if (spec_accum.a < 1.0) {
ProbeData pd = probes_data[0];
- vec3 spec = textureLod_octahedron(probeCubes, vec4(spec_dir, 0), roughness * lodMax).rgb;
+ vec3 spec = textureLod_octahedron(probeCubes, vec4(spec_dir, 0), roughness * lodMax, lodMax).rgb;
spec_accum.rgb += spec * (1.0 - spec_accum.a);
}