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:
Diffstat (limited to 'source/blender/draw/engines/eevee/shaders/prepass_vert.glsl')
-rw-r--r--source/blender/draw/engines/eevee/shaders/prepass_vert.glsl16
1 files changed, 16 insertions, 0 deletions
diff --git a/source/blender/draw/engines/eevee/shaders/prepass_vert.glsl b/source/blender/draw/engines/eevee/shaders/prepass_vert.glsl
index c756e061d70..974c5724842 100644
--- a/source/blender/draw/engines/eevee/shaders/prepass_vert.glsl
+++ b/source/blender/draw/engines/eevee/shaders/prepass_vert.glsl
@@ -1,17 +1,33 @@
uniform mat4 ModelViewProjectionMatrix;
uniform mat4 ModelMatrix;
+uniform mat4 ModelViewMatrix;
/* keep in sync with DRWManager.view_data */
layout(std140) uniform clip_block {
vec4 ClipPlanes[1];
};
+#ifndef HAIR_SHADER_FIBERS
in vec3 pos;
+#else
+in int fiber_index;
+in float curve_param;
+#endif
void main()
{
+#ifndef HAIR_SHADER_FIBERS
+ gl_Position = ModelViewProjectionMatrix * vec4(pos, 1.0);
+#else
+ vec3 pos;
+ vec3 nor;
+ vec2 view_offset;
+ hair_fiber_get_vertex(fiber_index, curve_param, ModelViewMatrix, pos, nor, view_offset);
gl_Position = ModelViewProjectionMatrix * vec4(pos, 1.0);
+ gl_Position.xy += view_offset * gl_Position.w;
+#endif
+
#ifdef CLIP_PLANES
vec4 worldPosition = (ModelMatrix * vec4(pos, 1.0));
gl_ClipDistance[0] = dot(vec4(worldPosition.xyz, 1.0), ClipPlanes[0]);