Buggy (but fastish) merge of shadows into shapes
This commit is contained in:
+17
-10
@@ -99,15 +99,12 @@ preloadRender = do
|
||||
bindBuffer ElementArrayBuffer $= Just shEBOname
|
||||
let shPosColVAO = VAO { _vao = shPosColVAOname, _vaoVBO = shVBO }
|
||||
shPosVAO = VAO { _vao = shPosVAOname, _vaoVBO = shVBO }
|
||||
-- lighting shaders
|
||||
wsShad <- makeShader "lighting/occlude" [vert,geom,frag] [4] EPoints
|
||||
>>= addUniforms ["lightPos"]
|
||||
lightingCapShad
|
||||
<- makeShader "lighting/cap" [vert,geom,frag] [3] ETriangles
|
||||
>>= addUniforms ["lightPos"]
|
||||
lightingLineShadowShad
|
||||
<- makeShader "lighting/lineShadow" [vert,geom,frag] [3] ELinesAdjacency
|
||||
>>= addUniforms ["lightPos"]
|
||||
--setup silhouette edge VAO
|
||||
shEdgeVAOname <- genObjectName
|
||||
bindVertexArrayObject $= Just shEdgeVAOname
|
||||
bindBuffer ArrayBuffer $= Just shVBOname
|
||||
setupVertexAttribPointer 0 3 7 0
|
||||
--setup ebo for silhouette edges
|
||||
silEBOname <- genObjectName
|
||||
silEBOptr <- mallocArray numDrawableElements
|
||||
-- it may be important to bind this while the correct VAO is bound
|
||||
@@ -118,6 +115,16 @@ preloadRender = do
|
||||
, StreamDraw
|
||||
)
|
||||
let silEBO = EBO {_ebo = silEBOname, _eboPtr = silEBOptr}
|
||||
shEdgeVAO = VAO { _vao = shEdgeVAOname, _vaoVBO = shVBO }
|
||||
-- lighting shaders
|
||||
wsShad <- makeShader "lighting/occlude" [vert,geom,frag] [4] EPoints
|
||||
>>= addUniforms ["lightPos"]
|
||||
lightingCapShad
|
||||
<- makeShader "lighting/cap" [vert,geom,frag] [3] ETriangles
|
||||
>>= addUniforms ["lightPos"]
|
||||
lightingLineShadowShad
|
||||
<- makeShader "lighting/lineShadow" [vert,geom,frag] [3] ELinesAdjacency
|
||||
>>= addUniforms ["lightPos"]
|
||||
-- 2D draw shaders
|
||||
bslist <- makeShader "dualTwoD/basic" [vert,frag] [3,4] ETriangles
|
||||
bslista <- makeShader "dualTwoD/basic" [vert,frag] [3,4] ETriangles
|
||||
@@ -194,7 +201,7 @@ preloadRender = do
|
||||
, _shapeEBO = shEBO
|
||||
, _silhouetteEBO = silEBO
|
||||
, _lightingCapShader = lightingCapShad { _shadVAO = shPosVAO }
|
||||
, _lightingLineShadowShader = lightingLineShadowShad
|
||||
, _lightingLineShadowShader = lightingLineShadowShad {_shadVAO = shEdgeVAO}
|
||||
, _lightingOccludeShader = wsShad {_shadVAO = wpVAO}
|
||||
, _wallBlankShader = wlBlank { _shadVAO = wpColVAO }
|
||||
, _wallTextureShader = wlTexture { _shadVAO = wpColVAO }
|
||||
|
||||
Reference in New Issue
Block a user