From bc0958cc863083b4082161bf12456fdf28ab1c77 Mon Sep 17 00:00:00 2001 From: Dan Goodliffe Date: Sat, 31 Jan 2026 02:51:16 +0000 Subject: Rename shader source in keeping with glsl expectations Swaps name/type of generated files to match class names and source files. --- gfx/gl/shaders/pointLight.geom | 49 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 49 insertions(+) create mode 100644 gfx/gl/shaders/pointLight.geom (limited to 'gfx/gl/shaders/pointLight.geom') diff --git a/gfx/gl/shaders/pointLight.geom b/gfx/gl/shaders/pointLight.geom new file mode 100644 index 0000000..1ee7e06 --- /dev/null +++ b/gfx/gl/shaders/pointLight.geom @@ -0,0 +1,49 @@ +#version 460 core + +const vec3[] cube = vec3[]( // http://www.cs.umd.edu/gvil/papers/av_ts.pdf + vec3(-1, 1, 1), // Front-top-left + vec3(1, 1, 1), // Front-top-right + vec3(-1, -1, 1), // Front-bottom-left + vec3(1, -1, 1), // Front-bottom-right + vec3(1, -1, -1), // Back-bottom-right + vec3(1, 1, 1), // Front-top-right + vec3(1, 1, -1), // Back-top-right + vec3(-1, 1, 1), // Front-top-left + vec3(-1, 1, -1), // Back-top-left + vec3(-1, -1, 1), // Front-bottom-left + vec3(-1, -1, -1), // Back-bottom-left + vec3(1, -1, -1), // Back-bottom-right + vec3(-1, 1, -1), // Back-top-left + vec3(1, 1, -1) // Back-top-right +); +uniform mat4 viewProjection; +uniform ivec3 viewPoint; +flat in vec3 position[]; +flat in vec3 colour[]; +flat in float size[]; +flat in float kq[]; +layout(points) in; + +layout(triangle_strip, max_vertices = cube.length()) out; +flat out vec4 geo_centre; +flat out vec3 geo_colour; +flat out float geo_kq; + +void +doVertex(int idx) +{ + gl_Position = viewProjection * (gl_in[0].gl_Position + vec4(cube[idx] * size[0], 1)); + geo_centre = vec4(position[0], size[0]); + geo_colour = colour[0]; + geo_kq = kq[0]; + EmitVertex(); +} + +void +main() +{ + for (int i = 0; i < cube.length(); ++i) { + doVertex(i); + } + EndPrimitive(); +} -- cgit v1.2.3