38 lines
925 B
V Shell
38 lines
925 B
V Shell
|
|
#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;
|
||
|
|
}
|
||
|
|
}
|