[Bf-blender-cvs] [82f569d75e6] master: Fix T65631 Eevee: Translucent shader broken in Eevee when AO is enabled

Clément Foucault noreply at git.blender.org
Tue Jun 18 22:28:38 CEST 2019


Commit: 82f569d75e68a3e7e3f2435e17fa16e9a47376f4
Author: Clément Foucault
Date:   Tue Jun 18 18:28:35 2019 +0200
Branches: master
https://developer.blender.org/rB82f569d75e68a3e7e3f2435e17fa16e9a47376f4

Fix T65631 Eevee: Translucent shader broken in Eevee when AO is enabled

===================================================================

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 e96667c0488..6b3d9ee4517 100644
--- a/source/blender/draw/engines/eevee/shaders/lit_surface_frag.glsl
+++ b/source/blender/draw/engines/eevee/shaders/lit_surface_frag.glsl
@@ -441,8 +441,10 @@ void CLOSURE_NAME(vec3 N
   /*       Ambient Occlusion      */
   /* ---------------------------- */
 #if defined(CLOSURE_GLOSSY) || defined(CLOSURE_DIFFUSE)
+  /* HACK: Fix for translucent BSDF. (see T65631) */
+  bool same_side = dot((gl_FrontFacing) ? worldNormal : -worldNormal, N) > 0.0;
   vec3 bent_normal;
-  float final_ao = occlusion_compute(N, viewPosition, ao, rand, bent_normal);
+  float final_ao = occlusion_compute(same_side ? N : -N, viewPosition, ao, rand, bent_normal);
 #endif
 
   /* ---------------------------- */



More information about the Bf-blender-cvs mailing list