Work on geometry shader based shadows

This commit is contained in:
2023-03-11 22:59:19 +00:00
parent 5724a0543e
commit 7ee3f6581d
18 changed files with 235 additions and 144 deletions
+17 -9
View File
@@ -141,15 +141,15 @@ preloadRender = do
shadowedgeshader <-
makeShaderUsingVAO "shadow/edge" [vert, geom] ELinesAdjacency shEdgeVAO
>>= addUniforms ["lightID"]
-- >>= addUniforms ["lightPos", "radiusUniform","lightID"]
shadowcapshader <-
makeShaderUsingVAO "shadow/cap" [vert, geom] ETriangles shPosVAO
>>= addUniforms [ "lightID"]
-- >>= addUniforms ["lightPos"]
shadowwallshader <-
makeShaderUsingVAO "shadow/wallShadow" [vert, geom] EPoints wpVAO
>>= addUniforms ["lightID"]
shadowlightshader <- makeShaderSized "shadow/light" [vert, geom, frag]
[1] 1
EPoints
shadowcombineshader <- makeShaderSized "shadow/combine" [vert,geom,frag] [1] 1 EPoints
pokeArray (shadVBOptr' shadowlightshader) $ concat cornerListForTriangles
-- positional shader
positionalBlankShad <- makeShader "positional/blank" [vert, frag] [3] ETriangles
@@ -181,17 +181,15 @@ preloadRender = do
lightingTextureShad <-
makeShaderUsingVAO "lighting/texture" [vert, frag] ETriangleStrip fsshadvao
>>= addUniforms ["lightPos", "lumRad"]
shadowlightshader <-
makeShaderUsingVAO "shadow/light" [vert, frag] ETriangleStrip fsshadvao
-- >>= addUniforms ["lightPos", "lumRad"]
>>= addUniforms ["lightID"]
-- >>= addUniforms ["lightID"]
barrelShad <- makeShader "texture/barrel" [vert, geom, frag] [2, 2, 2, 1] EPoints
-- blank wallShader
wallBlankShad <- makeShaderUsingVAO "wall/blank" [vert, geom, frag] EPoints wpColVAO
-- textured wallShader
wallTextureShad <-
makeShaderUsingVAO "wall/texture" [vert, geom, frag] EPoints wpColVAO
>>= addTexture "data/texture/grayscaleDirt.png"
>>= addSamplerTexture2D "data/texture/grayscaleDirt.png"
---- texture array shader
textArrayShad <-
makeShader "texture/arrayPos" [vert, frag] [3, 3] ETriangles
@@ -254,6 +252,7 @@ preloadRender = do
, _shadowCapShader = shadowcapshader
, _shadowWallShader = shadowwallshader
, _shadowLightShader = shadowlightshader
, _shadowCombineShader = shadowcombineshader
, _positionalBlankShader = positionalBlankShad
, _wallBlankShader = wallBlankShad
, _wallTextureShader = wallTextureShad
@@ -292,6 +291,15 @@ cornerList =
, [1, 1, 1, 1]
, [1, -1, 1, 0]
]
cornerListForTriangles :: [[Float]]
cornerListForTriangles =
[ [-1, 1, 0, 1]
, [-1, -1, 0, 0]
, [1, 1, 1, 1]
, [-1, -1, 0, 0]
, [1, 1, 1, 1]
, [1, -1, 1, 0]
]
cleanUpRenderPreload :: RenderData -> IO ()
cleanUpRenderPreload pd = do