diff options
author | Clément Foucault <foucault.clem@gmail.com> | 2022-04-21 11:28:30 +0300 |
---|---|---|
committer | Clément Foucault <foucault.clem@gmail.com> | 2022-04-23 00:12:05 +0300 |
commit | a60215f058845e14084132c82ddce3c3b028c80f (patch) | |
tree | 589dc5898e5db74b628d45ee2aad89e987c47d08 /source/blender/draw/engines/eevee_next/shaders/eevee_geom_curves_vert.glsl | |
parent | 2882cbe685e7eca2a79438998354035c5d665205 (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.glsl | 37 |
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); +} |