diff options
| author | Dan Goodliffe <dan@randomdan.homeip.net> | 2026-02-28 13:49:27 +0000 |
|---|---|---|
| committer | Dan Goodliffe <dan@randomdan.homeip.net> | 2026-02-28 13:54:13 +0000 |
| commit | 9ecec749060a05705d7c7eb200949e17a84702a1 (patch) | |
| tree | db36f49685662d6c423eb196fc5e64c5f89f5daa /gfx/gl/shaders/billboard.vert | |
| parent | Use RelativeDistance in Camera near/fear and expose member variables (diff) | |
| download | ilt-9ecec749060a05705d7c7eb200949e17a84702a1.tar.bz2 ilt-9ecec749060a05705d7c7eb200949e17a84702a1.tar.xz ilt-9ecec749060a05705d7c7eb200949e17a84702a1.zip | |
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.
Diffstat (limited to 'gfx/gl/shaders/billboard.vert')
| -rw-r--r-- | gfx/gl/shaders/billboard.vert | 23 |
1 files changed, 23 insertions, 0 deletions
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; +} |
