Work on geometry shader based shadows
This commit is contained in:
+17
-9
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user