From e751ab465bbbf1365ec6e108c64dafd03ce42f1d Mon Sep 17 00:00:00 2001 From: Dan Goodliffe Date: Sun, 23 Apr 2023 21:46:21 +0100 Subject: Pop and complete instanced shadow support --- gfx/gl/shaders/shadowDynamicPointInst.vs | 13 +++++++++++++ 1 file changed, 13 insertions(+) create mode 100644 gfx/gl/shaders/shadowDynamicPointInst.vs (limited to 'gfx/gl/shaders') diff --git a/gfx/gl/shaders/shadowDynamicPointInst.vs b/gfx/gl/shaders/shadowDynamicPointInst.vs new file mode 100644 index 0000000..eb7313a --- /dev/null +++ b/gfx/gl/shaders/shadowDynamicPointInst.vs @@ -0,0 +1,13 @@ +#version 330 core + +include(`meshIn.glsl') +layout(location = 5) in mat4 model; + +uniform mat4 viewProjection; + +void +main() +{ + gl_Position = viewProjection * model * vec4(position, 1.0); + gl_Position.z = max(gl_Position.z, -1); +} -- cgit v1.2.3 From ac0e30371f3cbddde990179711997acac507a09c Mon Sep 17 00:00:00 2001 From: Dan Goodliffe Date: Mon, 24 Apr 2023 19:56:07 +0100 Subject: Point shaders can all share the same implementation now in a single place They all just get `model` from a different place --- gfx/gl/shaders/commonPoint.glsl | 13 +++++++++++++ gfx/gl/shaders/dynamicPoint.vs | 14 +------------- gfx/gl/shaders/dynamicPointInst.vs | 16 ++-------------- gfx/gl/shaders/fixedPoint.vs | 13 ++----------- 4 files changed, 18 insertions(+), 38 deletions(-) create mode 100644 gfx/gl/shaders/commonPoint.glsl (limited to 'gfx/gl/shaders') diff --git a/gfx/gl/shaders/commonPoint.glsl b/gfx/gl/shaders/commonPoint.glsl new file mode 100644 index 0000000..ecf5fc9 --- /dev/null +++ b/gfx/gl/shaders/commonPoint.glsl @@ -0,0 +1,13 @@ +void +main() +{ + vec4 worldPos = model * vec4(position, 1.0); + + FragPos = worldPos.xyz; + TexCoords = texCoord; + Normal = (model * vec4(normal, 0.0)).xyz; + Colour = colour; + Material = material; + + gl_Position = viewProjection * worldPos; +} diff --git a/gfx/gl/shaders/dynamicPoint.vs b/gfx/gl/shaders/dynamicPoint.vs index e1701ed..ffa8275 100644 --- a/gfx/gl/shaders/dynamicPoint.vs +++ b/gfx/gl/shaders/dynamicPoint.vs @@ -6,16 +6,4 @@ include(`materialInterface.glsl') uniform mat4 viewProjection; uniform mat4 model; -void -main() -{ - vec4 worldPos = model * vec4(position, 1.0); - - FragPos = worldPos.xyz; - TexCoords = texCoord; - Normal = (model * vec4(normal, 0.0)).xyz; - Colour = colour; - Material = material; - - gl_Position = viewProjection * worldPos; -} +include(`commonPoint.glsl') diff --git a/gfx/gl/shaders/dynamicPointInst.vs b/gfx/gl/shaders/dynamicPointInst.vs index 1c66979..e4c8526 100644 --- a/gfx/gl/shaders/dynamicPointInst.vs +++ b/gfx/gl/shaders/dynamicPointInst.vs @@ -1,21 +1,9 @@ #version 330 core include(`meshIn.glsl') -layout(location = 5) in mat4 model; include(`materialInterface.glsl') uniform mat4 viewProjection; +layout(location = 5) in mat4 model; -void -main() -{ - vec4 worldPos = model * vec4(position, 1.0); - - FragPos = worldPos.xyz; - TexCoords = texCoord; - Normal = (model * vec4(normal, 0.0)).xyz; - Colour = colour; - Material = material; - - gl_Position = viewProjection * worldPos; -} +include(`commonPoint.glsl') diff --git a/gfx/gl/shaders/fixedPoint.vs b/gfx/gl/shaders/fixedPoint.vs index 0cc8153..6f517ca 100644 --- a/gfx/gl/shaders/fixedPoint.vs +++ b/gfx/gl/shaders/fixedPoint.vs @@ -4,15 +4,6 @@ include(`meshIn.glsl') include(`materialInterface.glsl') uniform mat4 viewProjection; +const mat4 model = mat4(1); -void -main() -{ - FragPos = position; - TexCoords = texCoord; - Normal = normal; - Colour = colour; - Material = material; - - gl_Position = viewProjection * vec4(position, 1.0); -} +include(`commonPoint.glsl') -- cgit v1.2.3 From 553f738d55e1492f11ee7f150758963344ac79d4 Mon Sep 17 00:00:00 2001 From: Dan Goodliffe Date: Mon, 24 Apr 2023 19:56:07 +0100 Subject: Point shaders (shadows) can all share the same implementation now in a single place They all just get `model` from a different place --- gfx/gl/shaders/commonShadowPoint.glsl | 6 ++++++ gfx/gl/shaders/shadowDynamicPoint.vs | 7 +------ gfx/gl/shaders/shadowDynamicPointInst.vs | 9 ++------- gfx/gl/shaders/shadowFixedPoint.vs | 8 ++------ 4 files changed, 11 insertions(+), 19 deletions(-) create mode 100644 gfx/gl/shaders/commonShadowPoint.glsl (limited to 'gfx/gl/shaders') diff --git a/gfx/gl/shaders/commonShadowPoint.glsl b/gfx/gl/shaders/commonShadowPoint.glsl new file mode 100644 index 0000000..c7cbd3e --- /dev/null +++ b/gfx/gl/shaders/commonShadowPoint.glsl @@ -0,0 +1,6 @@ +void +main() +{ + gl_Position = viewProjection * model * vec4(position, 1.0); + gl_Position.z = max(gl_Position.z, -1); +} diff --git a/gfx/gl/shaders/shadowDynamicPoint.vs b/gfx/gl/shaders/shadowDynamicPoint.vs index 531d8de..f3ed533 100644 --- a/gfx/gl/shaders/shadowDynamicPoint.vs +++ b/gfx/gl/shaders/shadowDynamicPoint.vs @@ -5,9 +5,4 @@ include(`meshIn.glsl') uniform mat4 viewProjection; uniform mat4 model; -void -main() -{ - gl_Position = viewProjection * model * vec4(position, 1.0); - gl_Position.z = max(gl_Position.z, -1); -} +include(`commonShadowPoint.glsl') diff --git a/gfx/gl/shaders/shadowDynamicPointInst.vs b/gfx/gl/shaders/shadowDynamicPointInst.vs index eb7313a..1bf74ef 100644 --- a/gfx/gl/shaders/shadowDynamicPointInst.vs +++ b/gfx/gl/shaders/shadowDynamicPointInst.vs @@ -1,13 +1,8 @@ #version 330 core include(`meshIn.glsl') -layout(location = 5) in mat4 model; uniform mat4 viewProjection; +layout(location = 5) in mat4 model; -void -main() -{ - gl_Position = viewProjection * model * vec4(position, 1.0); - gl_Position.z = max(gl_Position.z, -1); -} +include(`commonShadowPoint.glsl') diff --git a/gfx/gl/shaders/shadowFixedPoint.vs b/gfx/gl/shaders/shadowFixedPoint.vs index c9fa19b..8921707 100644 --- a/gfx/gl/shaders/shadowFixedPoint.vs +++ b/gfx/gl/shaders/shadowFixedPoint.vs @@ -3,10 +3,6 @@ include(`meshIn.glsl') uniform mat4 viewProjection; +const mat4 model = mat4(1); -void -main() -{ - gl_Position = viewProjection * vec4(position, 1.0); - gl_Position.z = max(gl_Position.z, -1); -} +include(`commonShadowPoint.glsl') -- cgit v1.2.3