|
- #version 450 core
-
- #pragma include ./tail_render_shared.glsl
- #pragma include ../misc/camera.glsl
-
- in VertexData vertexData[];
-
- layout (points) in;
- layout (line_strip, max_vertices = 6) out;
-
- out FragmentData fragmentData;
-
- void main() {
- mat4 m = uCamera.projection * uCamera.view;
-
- VertexData d = vertexData[0];
- fragmentData.color = vec4(d.color, 1.0);
-
- gl_Position = m * vec4(d.tail[0], 0.0, 1.0);
- fragmentData.color = vec4(1.0, 0.0, 0.0, 1.0);
- EmitVertex();
-
- gl_Position = m * vec4(d.tail[1], 0.0, 1.0);
- fragmentData.color = vec4(1.0, 1.0, 0.0, 1.0);
- EmitVertex();
-
- gl_Position = m * vec4(d.tail[2], 0.0, 1.0);
- fragmentData.color = vec4(0.0, 1.0, 0.0, 1.0);
- EmitVertex();
-
- gl_Position = m * vec4(d.tail[3], 0.0, 1.0);
- fragmentData.color = vec4(0.0, 1.0, 1.0, 1.0);
- EmitVertex();
-
- gl_Position = m * vec4(d.tail[4], 0.0, 1.0);
- fragmentData.color = vec4(0.0, 0.0, 1.0, 1.0);
- EmitVertex();
-
- EndPrimitive();
- }
|