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-10-04 22:31:25 +0300
committerClément Foucault <foucault.clem@gmail.com>2017-10-04 22:31:47 +0300
commit31820d010923f6e0c24074b07061617966bd1d85 (patch)
treeef3ec0e41d9d22115f107759afdf93b3e2340e02
parent63c472b4f9f7eae787bf4ce36160a28a1777bc76 (diff)
Eevee : Fix T52991
-rw-r--r--source/blender/draw/engines/eevee/shaders/ambient_occlusion_lib.glsl28
1 files changed, 21 insertions, 7 deletions
diff --git a/source/blender/draw/engines/eevee/shaders/ambient_occlusion_lib.glsl b/source/blender/draw/engines/eevee/shaders/ambient_occlusion_lib.glsl
index 476de25fb54..b490f24eeae 100644
--- a/source/blender/draw/engines/eevee/shaders/ambient_occlusion_lib.glsl
+++ b/source/blender/draw/engines/eevee/shaders/ambient_occlusion_lib.glsl
@@ -3,6 +3,26 @@
* http://blog.selfshadow.com/publications/s2016-shading-course/activision/s2016_pbs_activision_occlusion.pdf
* http://blog.selfshadow.com/publications/s2016-shading-course/activision/s2016_pbs_activision_occlusion.pptx */
+#if defined(MESH_SHADER)
+# if !defined(USE_ALPHA_HASH)
+# if !defined(USE_ALPHA_CLIP)
+# if !defined(SHADOW_SHADER)
+# if !defined(USE_MULTIPLY)
+# if !defined(USE_ALPHA_BLEND)
+# define ENABLE_DEFERED_AO
+# endif
+# endif
+# endif
+# endif
+# endif
+#endif
+
+#ifndef ENABLE_DEFERED_AO
+# if defined(STEP_RESOLVE)
+# define ENABLE_DEFERED_AO
+# endif
+#endif
+
#define MAX_PHI_STEP 32
#define MAX_SEARCH_ITER 32
#define MAX_LOD 6.0
@@ -327,13 +347,7 @@ float occlusion_compute(vec3 N, vec3 vpos, float user_occlusion, vec2 randuv, ou
float visibility;
vec3 vnor = mat3(ViewMatrix) * N;
-#if (defined(MESH_SHADER) && \
- !defined(USE_ALPHA_HASH) && \
- !defined(USE_ALPHA_CLIP) && \
- !defined(SHADOW_SHADER) && \
- !defined(USE_MULTIPLY) && \
- !defined(USE_ALPHA_BLEND)) \
- || defined(STEP_RESOLVE)
+#ifdef ENABLE_DEFERED_AO
gtao_deferred(vnor, vpos, gl_FragCoord.z, visibility, bent_normal);
#else
gtao(vnor, vpos, randuv, visibility, bent_normal);