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')
-rw-r--r--source/blender/draw/engines/eevee/shaders/lit_surface_vert.glsl34
-rw-r--r--source/blender/draw/engines/eevee/shaders/prepass_vert.glsl29
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));