Initial pass at shadows from level geometry

This commit is contained in:
jgk
2021-06-29 15:27:26 +02:00
parent 089dcc3f5d
commit 3d16c33d33
20 changed files with 181 additions and 74 deletions
+17 -17
View File
@@ -26,43 +26,43 @@ preloadRender = do
bindBufferBase IndexedUniformBuffer 0 $= Just theUBO
-- lighting shaders
wsShad <- makeShader "lighting/occlude" [vert,geom,frag] [4] Points pokeWPStrat
wsShad <- makeShader "lighting/occlude" [vert,geom,frag] [4] EPoints pokeWPStrat
>>= addUniforms ["lightPos"]
wlLightShad
<- makeShader "lighting/wall" [vert,geom,frag] [4] Points pokeWPStrat
<- makeShader "lighting/wall" [vert,geom,frag] [4] EPoints pokeWPStrat
>>= addUniforms ["lightPos","radLum"]
lightingSurfaceShad
<- makeShader "lighting/surface" [vert,frag] [3] Triangles poke3
<- makeShader "lighting/surface" [vert,frag] [3] ETriangles poke3
>>= addUniforms ["lightPos","radLum"]
lightingLineShadowShad
<- makeShader "lighting/lineShadow" [vert,geom,frag] [3] Lines poke3
<- makeShader "lighting/lineShadow" [vert,geom,frag] [3] ELinesAdjacency poke3
>>= addUniforms ["lightPos"]
-- 2D draw shaders
bslist <- makeShader "twoD/basic" [vert,frag] [3,4] Triangles pokeTriStrat
lslist <- makeShader "twoD/basic" [vert,frag] [3,4] Lines pokeLineStrat
aslist <- makeShader "twoD/arc" [vert,frag] [3,4,3] Triangles pokeArcStrat
eslist <- makeShader "twoD/ellipse" [vert,geom,frag] [3,4] Triangles pokeEllStrat
bezierQuadShader <- makeShader "twoD/bezierQuad" [vert,frag] [3,4,4] TriangleStrip pokeBezQStrat
cslist <- makeShader "twoD/character" [vert,frag] [3,4,2] Triangles pokeCharStrat
bslist <- makeShader "twoD/basic" [vert,frag] [3,4] ETriangles pokeTriStrat
lslist <- makeShader "twoD/basic" [vert,frag] [3,4] ELines pokeLineStrat
aslist <- makeShader "twoD/arc" [vert,frag] [3,4,3] ETriangles pokeArcStrat
eslist <- makeShader "twoD/ellipse" [vert,geom,frag] [3,4] ETriangles pokeEllStrat
bezierQuadShader <- makeShader "twoD/bezierQuad" [vert,frag] [3,4,4] ETriangleStrip pokeBezQStrat
cslist <- makeShader "twoD/character" [vert,frag] [3,4,2] ETriangles pokeCharStrat
>>= addTexture "data/texture/charMap.png"
-- texture shaders, no textures attached
fsShad <- makeShader "texture/simple" [vert,frag] [2,2] TriangleStrip $ const cornerList
fsShad <- makeShader "texture/simple" [vert,frag] [2,2] ETriangleStrip $ const cornerList
-- note we directly poke the shader vertex data here
pokeArray (_vboPointer $ _vaoVBO $ _shaderVAO fsShad) $ concat cornerList
boxBlurShad <- makeShader "texture/boxBlur" [vert,frag] [2,2] TriangleStrip $ const cornerList
boxBlurShad <- makeShader "texture/boxBlur" [vert,frag] [2,2] ETriangleStrip $ const cornerList
pokeArray (_vboPointer $ _vaoVBO $ _shaderVAO boxBlurShad) $ concat cornerList
grayscaleShad <- makeShader "texture/grayscale" [vert,frag] [2,2] TriangleStrip $ const cornerList
grayscaleShad <- makeShader "texture/grayscale" [vert,frag] [2,2] ETriangleStrip $ const cornerList
pokeArray (_vboPointer $ _vaoVBO $ _shaderVAO grayscaleShad) $ concat cornerList
-- blank wallShader
wlBlank <- makeShader "wall/blank" [vert,geom,frag] [4,4] Points pokeWPColStrat
wlBlank <- makeShader "wall/blank" [vert,geom,frag] [4,4] EPoints pokeWPColStrat
-- textured wallShader
wlTexture <- makeShader "wall/texture" [vert,geom,frag] [4,4] Points pokeWPColStrat
wlTexture <- makeShader "wall/texture" [vert,geom,frag] [4,4] EPoints pokeWPColStrat
>>= addTexture "data/texture/grayscaleDirt.png"
---- texture shader
textShad <- makeShader "texture/simpleWorld" [vert,frag] [3,2] Triangles poke32
textShad <- makeShader "texture/simpleWorld" [vert,frag] [3,2] ETriangles poke32
>>= addTexture "data/texture/ayene_wooden_floor.png"
---- texture array shader
textArrayShad <- makeShader "texture/array" [vert,frag] [3,3] Triangles poke33
textArrayShad <- makeShader "texture/array" [vert,frag] [3,3] ETriangles poke33
>>= addTextureArray "data/texture/ayene_wooden_floor.png"
-- framebuffer for lighting
(fbo,fboTO,fboRBO) <- setupFramebufferWithStencil