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:
authorClément Foucault <foucault.clem@gmail.com>2022-04-21 11:28:30 +0300
committerClément Foucault <foucault.clem@gmail.com>2022-04-23 00:12:05 +0300
commita60215f058845e14084132c82ddce3c3b028c80f (patch)
tree589dc5898e5db74b628d45ee2aad89e987c47d08 /source/blender/draw/engines/eevee_next/shaders/eevee_geom_curves_vert.glsl
parent2882cbe685e7eca2a79438998354035c5d665205 (diff)
EEVEE: Rewrite: Implement nodetree support with every geometry typestmp-eevee-next-merge
Diffstat (limited to 'source/blender/draw/engines/eevee_next/shaders/eevee_geom_curves_vert.glsl')
-rw-r--r--source/blender/draw/engines/eevee_next/shaders/eevee_geom_curves_vert.glsl37
1 files changed, 37 insertions, 0 deletions
diff --git a/source/blender/draw/engines/eevee_next/shaders/eevee_geom_curves_vert.glsl b/source/blender/draw/engines/eevee_next/shaders/eevee_geom_curves_vert.glsl
new file mode 100644
index 00000000000..4c123031c83
--- /dev/null
+++ b/source/blender/draw/engines/eevee_next/shaders/eevee_geom_curves_vert.glsl
@@ -0,0 +1,37 @@
+
+#pragma BLENDER_REQUIRE(eevee_attributes_lib.glsl)
+#pragma BLENDER_REQUIRE(common_hair_lib.glsl) /* TODO rename to curve. */
+#pragma BLENDER_REQUIRE(common_math_lib.glsl)
+#pragma BLENDER_REQUIRE(common_view_lib.glsl)
+#pragma BLENDER_REQUIRE(eevee_nodetree_lib.glsl)
+#pragma BLENDER_REQUIRE(eevee_surf_lib.glsl)
+
+void main(void)
+{
+ init_interface();
+
+ vec3 T;
+
+ bool is_persp = (ProjectionMatrix[3][3] == 0.0);
+ hair_get_pos_tan_binor_time(is_persp,
+ ModelMatrixInverse,
+ ViewMatrixInverse[3].xyz,
+ ViewMatrixInverse[2].xyz,
+ interp.P,
+ T,
+ interp.curves_binormal,
+ interp.curves_time,
+ interp.curves_thickness,
+ interp.curves_time_width);
+
+ interp.N = cross(T, interp.curves_binormal);
+ interp.curves_strand_id = hair_get_strand_id();
+ interp.barycentric_coords = hair_get_barycentric();
+
+ init_globals();
+ attrib_load();
+
+ interp.P += nodetree_displacement();
+
+ gl_Position = point_world_to_ndc(interp.P);
+}