diff options
Diffstat (limited to 'source/blender/draw/engines/eevee/shaders')
-rw-r--r-- | source/blender/draw/engines/eevee/shaders/lit_surface_vert.glsl | 34 | ||||
-rw-r--r-- | source/blender/draw/engines/eevee/shaders/prepass_vert.glsl | 29 |
2 files changed, 7 insertions, 56 deletions
diff --git a/source/blender/draw/engines/eevee/shaders/lit_surface_vert.glsl b/source/blender/draw/engines/eevee/shaders/lit_surface_vert.glsl index fbcdfd66572..58bcea7d605 100644 --- a/source/blender/draw/engines/eevee/shaders/lit_surface_vert.glsl +++ b/source/blender/draw/engines/eevee/shaders/lit_surface_vert.glsl @@ -2,20 +2,15 @@ uniform mat4 ModelViewProjectionMatrix; uniform mat4 ModelMatrix; uniform mat4 ModelViewMatrix; -uniform mat4 ModelViewMatrixInverse; uniform mat3 WorldNormalMatrix; #ifndef ATTRIB uniform mat3 NormalMatrix; +uniform mat4 ModelMatrixInverse; #endif #ifndef HAIR_SHADER in vec3 pos; in vec3 nor; -#else -#ifdef HAIR_SHADER_FIBERS -in int fiber_index; -in float curve_param; -#endif #endif out vec3 worldPosition; @@ -46,28 +41,11 @@ flat out int hairStrandID; void main() { #ifdef HAIR_SHADER - bool is_persp = (ProjectionMatrix[3][3] == 0.0); - -# ifdef HAIR_SHADER_FIBERS - vec3 pos, tang, binor; - hair_fiber_get_vertex( - fiber_index, curve_param, - is_persp, ModelViewMatrixInverse[3].xyz, ModelViewMatrixInverse[2].xyz, - pos, tang, binor, - hairTime, hairThickness, hairThickTime); - vec3 nor = cross(binor, tang); - - gl_Position = ModelViewProjectionMatrix * vec4(pos, 1.0); - viewPosition = (ModelViewMatrix * vec4(pos, 1.0)).xyz; - worldPosition = (ModelMatrix * vec4(pos, 1.0)).xyz; - hairTangent = (ModelMatrix * vec4(tang, 0.0)).xyz; - worldNormal = (ModelMatrix * vec4(nor, 0.0)).xyz; - viewNormal = normalize(mat3(ViewMatrix) * worldNormal); -# else hairStrandID = hair_get_strand_id(); vec3 pos, binor; hair_get_pos_tan_binor_time( - is_persp, ViewMatrixInverse[3].xyz, ViewMatrixInverse[2].xyz, + (ProjectionMatrix[3][3] == 0.0), + ViewMatrixInverse[3].xyz, ViewMatrixInverse[2].xyz, pos, hairTangent, binor, hairTime, hairThickness, hairThickTime); gl_Position = ViewProjectionMatrix * vec4(pos, 1.0); @@ -76,15 +54,13 @@ void main() hairTangent = normalize(hairTangent); worldNormal = cross(binor, hairTangent); viewNormal = normalize(mat3(ViewMatrix) * worldNormal); -# endif - -#else /* HAIR_SHADER */ +#else gl_Position = ModelViewProjectionMatrix * vec4(pos, 1.0); viewPosition = (ModelViewMatrix * vec4(pos, 1.0)).xyz; worldPosition = (ModelMatrix * vec4(pos, 1.0)).xyz; worldNormal = normalize(WorldNormalMatrix * nor); viewNormal = normalize(NormalMatrix * nor); -#endif /* HAIR_SHADER */ +#endif /* Used for planar reflections */ gl_ClipDistance[0] = dot(vec4(worldPosition, 1.0), ClipPlanes[0]); diff --git a/source/blender/draw/engines/eevee/shaders/prepass_vert.glsl b/source/blender/draw/engines/eevee/shaders/prepass_vert.glsl index b1dfa851fa1..f2e9e7001e8 100644 --- a/source/blender/draw/engines/eevee/shaders/prepass_vert.glsl +++ b/source/blender/draw/engines/eevee/shaders/prepass_vert.glsl @@ -1,53 +1,28 @@ uniform mat4 ModelViewProjectionMatrix; uniform mat4 ModelMatrix; -uniform mat4 ModelViewMatrix; -uniform mat4 ModelViewMatrixInverse; /* keep in sync with DRWManager.view_data */ layout(std140) uniform clip_block { vec4 ClipPlanes[1]; }; -#ifdef HAIR_SHADER - -#ifdef HAIR_SHADER_FIBERS -in int fiber_index; -in float curve_param; -#endif - -#else +#ifndef HAIR_SHADER in vec3 pos; #endif void main() { #ifdef HAIR_SHADER - bool is_persp = (ProjectionMatrix[3][3] == 0.0); - -#ifdef HAIR_SHADER_FIBERS - float time, thick_time, thickness; - vec3 pos, tang, binor; - hair_fiber_get_vertex( - fiber_index, curve_param, - is_persp, ModelViewMatrixInverse[3].xyz, ModelViewMatrixInverse[2].xyz, - pos, tang, binor, - time, thickness, thick_time); - - gl_Position = ModelViewProjectionMatrix * vec4(pos, 1.0); - vec4 worldPosition = ModelMatrix * vec4(pos, 1.0); -#else float time, thick_time, thickness; vec3 pos, tan, binor; hair_get_pos_tan_binor_time( - is_persp, + (ProjectionMatrix[3][3] == 0.0), ViewMatrixInverse[3].xyz, ViewMatrixInverse[2].xyz, pos, tan, binor, time, thickness, thick_time); gl_Position = ViewProjectionMatrix * vec4(pos, 1.0); vec4 worldPosition = vec4(pos, 1.0); -#endif - #else gl_Position = ModelViewProjectionMatrix * vec4(pos, 1.0); vec4 worldPosition = (ModelMatrix * vec4(pos, 1.0)); |