spoonedit/Shaders/Link.vsh

38 lines
925 B
V Shell
Raw Normal View History

2024-12-21 17:09:23 +01:00
#version 460
uniform vec3 position[2];
uniform vec2 width;
out float depth;
void main(){
vec2 direction = normalize(position[1].xy - position[0].xy);
vec2 leftdir = vec2(direction.y,-direction.x);
vec2 rightdir = vec2(-direction.y,direction.x);
switch(gl_VertexID){
case 0:
gl_Position = vec4(position[0].xy + leftdir * width, 0.0f, 1.0f);
depth = position[0].z;
break;
case 1:
case 3:
gl_Position = vec4(position[0].xy + rightdir * width, 0.0f, 1.0f);
depth = position[0].z;
break;
case 2:
case 5:
gl_Position = vec4(position[1].xy + leftdir * width, 0.0f, 1.0f);
depth = position[1].z;
break;
case 4:
gl_Position = vec4(position[1].xy + rightdir * width, 0.0f, 1.0f);
depth = position[1].z;
break;
}
}