Share wall points in buffer, part 1
This commit is contained in:
@@ -30,8 +30,11 @@ preloadRender = do
|
|||||||
wsShad <- makeShader "lighting/occlude" [vert,geom,frag] [4] EPoints pokeWPStrat
|
wsShad <- makeShader "lighting/occlude" [vert,geom,frag] [4] EPoints pokeWPStrat
|
||||||
>>= addUniforms ["lightPos"]
|
>>= addUniforms ["lightPos"]
|
||||||
wlLightShad
|
wlLightShad
|
||||||
<- makeShader "lighting/wall" [vert,geom,frag] [4] EPoints pokeWPStrat
|
<- makeShaderUsingShaderVAO "lighting/wall" [vert,geom,frag] EPoints wsShad
|
||||||
>>= addUniforms ["lightPos","radLum"]
|
>>= addUniforms ["lightPos","radLum"]
|
||||||
|
-- wlLightShad
|
||||||
|
-- <- makeShader "lighting/wall" [vert,geom,frag] [4] EPoints pokeWPStrat
|
||||||
|
-- >>= addUniforms ["lightPos","radLum"]
|
||||||
lightingSurfaceShad
|
lightingSurfaceShad
|
||||||
<- makeShader "lighting/surface" [vert,frag] [3] ETriangles poke3
|
<- makeShader "lighting/surface" [vert,frag] [3] ETriangles poke3
|
||||||
>>= addUniforms ["lightPos","radLum"]
|
>>= addUniforms ["lightPos","radLum"]
|
||||||
|
|||||||
+6
-4
@@ -69,8 +69,8 @@ createLightMap pdata resDiv wallPoints lightPoints fpics scPol = do
|
|||||||
viewport $= (vppos, vsize)
|
viewport $= (vppos, vsize)
|
||||||
textureBinding Texture2D $= Just (snd $ _fboLighting pdata)
|
textureBinding Texture2D $= Just (snd $ _fboLighting pdata)
|
||||||
-- store wall and light positions into buffer
|
-- store wall and light positions into buffer
|
||||||
nWallLights <- F.foldM (pokeShader $ _lightingWallShader pdata) (map Render22 wallPoints)
|
-- nWallLights <- F.foldM (pokeShader $ _lightingWallShader pdata) (map Render22 wallPoints)
|
||||||
bindShaderBuffers [_lightingWallShader pdata] [nWallLights]
|
-- bindShaderBuffers [_lightingWallShader pdata] [nWallLights]
|
||||||
nWalls <- F.foldM (pokeShader $ _lightingOccludeShader pdata) (map Render22 wallPoints)
|
nWalls <- F.foldM (pokeShader $ _lightingOccludeShader pdata) (map Render22 wallPoints)
|
||||||
bindShaderBuffers [_lightingOccludeShader pdata] [nWalls]
|
bindShaderBuffers [_lightingOccludeShader pdata] [nWalls]
|
||||||
-- store foreground silhouette geometry into buffer
|
-- store foreground silhouette geometry into buffer
|
||||||
@@ -89,7 +89,8 @@ createLightMap pdata resDiv wallPoints lightPoints fpics scPol = do
|
|||||||
cullFace $= Just Back
|
cullFace $= Just Back
|
||||||
-- draw walls from your point of view in order to set z buffer
|
-- draw walls from your point of view in order to set z buffer
|
||||||
currentProgram $= Just (_shaderProgram $ _lightingWallShader pdata)
|
currentProgram $= Just (_shaderProgram $ _lightingWallShader pdata)
|
||||||
drawShader (_lightingWallShader pdata) nWallLights
|
--drawShader (_lightingWallShader pdata) nWallLights
|
||||||
|
drawShader (_lightingWallShader pdata) nWalls
|
||||||
--colorMask $= Color4 Disabled Disabled Disabled Disabled
|
--colorMask $= Color4 Disabled Disabled Disabled Disabled
|
||||||
--currentProgram $= Just (_shaderProgram $ _lightingOccludeShader pdata)
|
--currentProgram $= Just (_shaderProgram $ _lightingOccludeShader pdata)
|
||||||
--uniform (head $ _shaderCustomUnis $ _lightingOccludeShader pdata)
|
--uniform (head $ _shaderCustomUnis $ _lightingOccludeShader pdata)
|
||||||
@@ -151,7 +152,8 @@ createLightMap pdata resDiv wallPoints lightPoints fpics scPol = do
|
|||||||
$= Vector3 x y z
|
$= Vector3 x y z
|
||||||
uniform (_shaderCustomUnis (_lightingWallShader pdata) !! 1)
|
uniform (_shaderCustomUnis (_lightingWallShader pdata) !! 1)
|
||||||
$= Vector2 r lum
|
$= Vector2 r lum
|
||||||
drawShader (_lightingWallShader pdata) nWallLights
|
--drawShader (_lightingWallShader pdata) nWallLights
|
||||||
|
drawShader (_lightingWallShader pdata) nWalls
|
||||||
cullFace $= Nothing
|
cullFace $= Nothing
|
||||||
stencilTest $= Disabled
|
stencilTest $= Disabled
|
||||||
blend $= Disabled
|
blend $= Disabled
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
module Shader.Compile
|
module Shader.Compile
|
||||||
( makeShader
|
( makeShader
|
||||||
|
, makeShaderUsingShaderVAO
|
||||||
, makeSourcedShader
|
, makeSourcedShader
|
||||||
, setupVAO
|
, setupVAO
|
||||||
) where
|
) where
|
||||||
@@ -13,6 +14,21 @@ import Control.Monad
|
|||||||
--import Control.Lens
|
--import Control.Lens
|
||||||
import Graphics.Rendering.OpenGL hiding (Point,translate,scale,imageHeight)
|
import Graphics.Rendering.OpenGL hiding (Point,translate,scale,imageHeight)
|
||||||
|
|
||||||
|
-- | Takes the VAO and poke strategy from another shader
|
||||||
|
makeShaderUsingShaderVAO
|
||||||
|
:: String -- ^ First part of the name of the shader
|
||||||
|
-> [ShaderType] -- ^ Filetype extensions
|
||||||
|
-> EPrimitiveMode
|
||||||
|
-> FullShader
|
||||||
|
-> IO FullShader
|
||||||
|
makeShaderUsingShaderVAO s shaderlist pm fs = do
|
||||||
|
prog <- makeSourcedShader s shaderlist
|
||||||
|
return $ fs
|
||||||
|
{_shaderProgram = prog
|
||||||
|
, _shaderDrawPrimitive = pm
|
||||||
|
, _shaderTexture = Nothing
|
||||||
|
, _shaderCustomUnis = []
|
||||||
|
}
|
||||||
{- |
|
{- |
|
||||||
Compiles a full shader found within the shader directory.
|
Compiles a full shader found within the shader directory.
|
||||||
The shader is made up of files begining with the inputted string with extensions .vert, .geom etc.
|
The shader is made up of files begining with the inputted string with extensions .vert, .geom etc.
|
||||||
|
|||||||
Reference in New Issue
Block a user