Move towards geometry instancing for shadows

This commit is contained in:
2023-03-10 13:55:41 +00:00
parent cda7116930
commit c8b256c939
14 changed files with 303 additions and 17 deletions
+17 -6
View File
@@ -37,7 +37,7 @@ preloadRender = do
glNamedBufferStorage isoUBO 64 ptr 0
lightsubo <- mglCreate glCreateBuffers
glNamedBufferData lightsubo 560 nullPtr GL_STREAM_DRAW
glNamedBufferData lightsubo 640 nullPtr GL_STREAM_DRAW
glBindBufferBase GL_UNIFORM_BUFFER 1 lightsubo
-- setup wall points VBO, VAOs and shaders
@@ -140,8 +140,16 @@ preloadRender = do
>>= addUniforms ["lightPos", "radiusUniform"]
shadowedgeshader <-
makeShaderUsingVAO "lighting/lineShadow" [vert, geom] ELinesAdjacency shEdgeVAO
>>= addUniforms ["lightPos", "radiusUniform"]
makeShaderUsingVAO "shadow/edge" [vert, geom] ELinesAdjacency shEdgeVAO
>>= addUniforms ["lightID"]
-- >>= addUniforms ["lightPos", "radiusUniform","lightID"]
shadowcapshader <-
makeShaderUsingVAO "shadow/cap" [vert, geom] ETriangles shPosVAO
>>= addUniforms ["lightPos", "lightID"]
-- >>= addUniforms ["lightPos"]
shadowwallshader <-
makeShaderUsingVAO "shadow/wallShadow" [vert, geom] EPoints wpVAO
>>= addUniforms ["lightPos","lightID"]
-- positional shader
positionalBlankShad <- makeShader "positional/blank" [vert, frag] [3] ETriangles
@@ -173,6 +181,9 @@ preloadRender = do
lightingTextureShad <-
makeShaderUsingVAO "lighting/texture" [vert, frag] ETriangleStrip fsshadvao
>>= addUniforms ["lightPos", "lumRad"]
shadowlightshader <-
makeShaderUsingVAO "shadow/light" [vert, frag] ETriangleStrip fsshadvao
>>= addUniforms ["lightPos", "lumRad"]
barrelShad <- makeShader "texture/barrel" [vert, geom, frag] [2, 2, 2, 1] EPoints
-- blank wallShader
wallBlankShad <- makeShaderUsingVAO "wall/blank" [vert, geom, frag] EPoints wpColVAO
@@ -239,9 +250,9 @@ preloadRender = do
, _lightingLineShadowShader = lightingLineShadowShad
, _lightingWallShadShader = lightingWallShadShad
, _shadowEdgeShader = shadowedgeshader
, _shadowCapShader = shadowedgeshader
, _shadowWallShader = shadowedgeshader
, _shadowLightShader = shadowedgeshader
, _shadowCapShader = shadowcapshader
, _shadowWallShader = shadowwallshader
, _shadowLightShader = shadowlightshader
, _positionalBlankShader = positionalBlankShad
, _wallBlankShader = wallBlankShad
, _wallTextureShader = wallTextureShad