Differential D6296 Diff 20013 source/blender/gpu/shaders/gpu_shader_3D_line_dashed_uniform_color_vert.glsl
Changeset View
Changeset View
Standalone View
Standalone View
source/blender/gpu/shaders/gpu_shader_3D_line_dashed_uniform_color_vert.glsl
| /* | /* | ||||
| * Vertex Shader for dashed lines with 3D coordinates, | * Vertex Shader for dashed lines with 3D coordinates, | ||||
| * with uniform multi-colors or uniform single-color, and unary thickness. | * with uniform multi-colors or uniform single-color, and unary thickness. | ||||
| * | * | ||||
| * Dashed is performed in screen space. | * Dashed is performed in screen space. | ||||
| */ | */ | ||||
| uniform mat4 ModelViewProjectionMatrix; | uniform mat4 ModelViewProjectionMatrix; | ||||
| #ifdef USE_WORLD_CLIP_PLANES | #ifdef USE_WORLD_CLIP_PLANES | ||||
| uniform mat4 ModelMatrix; | uniform mat4 ModelMatrix; | ||||
| #endif | #endif | ||||
| uniform vec4 color; | uniform vec4 color; | ||||
| uniform vec2 viewport_size; | |||||
| in vec3 pos; | in vec3 pos; | ||||
| out vec4 color_vert; | flat out vec4 color_vert; | ||||
| /* We leverage hardware interpolation to compute distance along the line. */ | |||||
| noperspective out vec2 stipple_pos; /* In screen space */ | |||||
| flat out vec2 stipple_start; /* In screen space */ | |||||
| void main() | void main() | ||||
| { | { | ||||
| vec4 pos_4d = vec4(pos, 1.0); | vec4 pos_4d = vec4(pos, 1.0); | ||||
| gl_Position = ModelViewProjectionMatrix * pos_4d; | gl_Position = ModelViewProjectionMatrix * pos_4d; | ||||
| stipple_start = stipple_pos = viewport_size * 0.5 * (gl_Position.xy / gl_Position.w); | |||||
| color_vert = color; | color_vert = color; | ||||
| #ifdef USE_WORLD_CLIP_PLANES | #ifdef USE_WORLD_CLIP_PLANES | ||||
| world_clip_planes_calc_clip_distance((ModelMatrix * pos_4d).xyz); | world_clip_planes_calc_clip_distance((ModelMatrix * pos_4d).xyz); | ||||
| #endif | #endif | ||||
| } | } | ||||