diff options
author | Mikhail Matrosov <kdtfly> | 2021-05-19 13:09:29 +0300 |
---|---|---|
committer | Clément Foucault <foucault.clem@gmail.com> | 2021-05-19 13:14:07 +0300 |
commit | a294670bacb1db66ca0aad29df5752b10b8ba7fd (patch) | |
tree | 11d0745e7d5c569ece28c1ee3ae47653394a0b0f /source/blender/gpu | |
parent | 5239198f177ad26e25e5f3608cd7e092065e2d8f (diff) |
EEVEE: Geometry info -> tangent: Make consistent with Cycles for hair
Changes output for geometry info node in Eevee to be consistent with Cycles (w/o osl)
Before this patch Eevee outputs Z-tangent even for hair. This patch changes it to output hair tangent (growth direction). Hair tangent is impossible to derive otherwise from normal or view direction.
Reviewed By: fclem, brecht
Differential Revision: https://developer.blender.org/D10841
Diffstat (limited to 'source/blender/gpu')
-rw-r--r-- | source/blender/gpu/shaders/material/gpu_shader_material_geometry.glsl | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/source/blender/gpu/shaders/material/gpu_shader_material_geometry.glsl b/source/blender/gpu/shaders/material/gpu_shader_material_geometry.glsl index 4db27c3049d..a14ff5021bf 100644 --- a/source/blender/gpu/shaders/material/gpu_shader_material_geometry.glsl +++ b/source/blender/gpu/shaders/material/gpu_shader_material_geometry.glsl @@ -37,8 +37,13 @@ void node_geometry(vec3 I, normal = (toworld * vec4(N, 0.0)).xyz; true_normal = normal; # endif + +# ifdef HAIR_SHADER + tangent = -hairTangent; +# else tangent_orco_z(orco, orco); node_tangent(N, orco, objmat, tangent); +# endif parametric = vec3(barycentric, 0.0); backfacing = (gl_FrontFacing) ? 0.0 : 1.0; |