From 9ecec749060a05705d7c7eb200949e17a84702a1 Mon Sep 17 00:00:00 2001 From: Dan Goodliffe Date: Sat, 28 Feb 2026 13:49:27 +0000 Subject: Add BillboardProgram to SceneShader The implementation is overly simple/incomplete, I'm not even convince what is there is right, but it's a decent start. --- gfx/gl/shaders/billboard.vert | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) create mode 100644 gfx/gl/shaders/billboard.vert (limited to 'gfx/gl/shaders/billboard.vert') diff --git a/gfx/gl/shaders/billboard.vert b/gfx/gl/shaders/billboard.vert new file mode 100644 index 0000000..2d73084 --- /dev/null +++ b/gfx/gl/shaders/billboard.vert @@ -0,0 +1,23 @@ +#version 460 core + +uniform mat4 viewProjection; +uniform ivec4 viewPort; +uniform ivec3 viewPoint; +uniform vec3 centre; +uniform float size; +layout(location = 0) in ivec3 modelPos; +layout(location = 1) in float yaw; + +flat out ivec3 ModelPos; +flat out float Yaw; +flat out float Depth; + +void +main() +{ + ModelPos = modelPos; + Yaw = yaw; + gl_Position = viewProjection * vec4(modelPos - viewPoint + centre, 1); + Depth = gl_Position.w; + gl_PointSize = (viewPort.w * size * 2) / gl_Position.w; +} -- cgit v1.3