diff options
author | Dan Goodliffe <dan@randomdan.homeip.net> | 2024-01-30 22:48:33 +0000 |
---|---|---|
committer | Dan Goodliffe <dan@randomdan.homeip.net> | 2024-01-30 22:48:33 +0000 |
commit | 3c239338f5d1e97e3c0ddd05976e14b20758e07d (patch) | |
tree | 7eb3c254b681d2cafbc9ce8f13b285a9313474c4 /gfx/gl/shaders/commonShadowPoint.gs | |
parent | 3D relative scaling in asset factory (diff) | |
parent | Adjust light view projection matrix upfront (diff) | |
download | ilt-3c239338f5d1e97e3c0ddd05976e14b20758e07d.tar.bz2 ilt-3c239338f5d1e97e3c0ddd05976e14b20758e07d.tar.xz ilt-3c239338f5d1e97e3c0ddd05976e14b20758e07d.zip |
Merge branch 'geo-shadows'
Diffstat (limited to 'gfx/gl/shaders/commonShadowPoint.gs')
-rw-r--r-- | gfx/gl/shaders/commonShadowPoint.gs | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/gfx/gl/shaders/commonShadowPoint.gs b/gfx/gl/shaders/commonShadowPoint.gs new file mode 100644 index 0000000..b008f29 --- /dev/null +++ b/gfx/gl/shaders/commonShadowPoint.gs @@ -0,0 +1,22 @@ +#version 330 core +#extension GL_ARB_viewport_array : enable + +uniform mat4 viewProjection[4]; +uniform int viewProjections; +in vec4 vworldPos[]; +layout(triangles) in; +layout(triangle_strip, max_vertices = 12) out; + +void +main() +{ + for (int vp = 0; vp < viewProjections; ++vp) { + for (int v = 0; v < vworldPos.length(); ++v) { + gl_Position = viewProjection[vp] * vworldPos[v]; + gl_Position.z = max(gl_Position.z, -1); + gl_Layer = vp; + EmitVertex(); + } + EndPrimitive(); + } +} |