Performance improvements, combine cap and geometry buffer
This commit is contained in:
+23
-7
@@ -66,6 +66,27 @@ preloadRender = do
|
||||
setupVertexAttribPointer 0 4 8 0
|
||||
setupVertexAttribPointer 1 4 8 4
|
||||
let winColVAO = VAO {_vao = winColVAOname, _vaoVBO = winVBO}
|
||||
-- setup shape geometry/cap VBO and two VAOs
|
||||
shVBOname <- genObjectName
|
||||
shVBOptr <- mallocArray (7 * numDrawableElements)
|
||||
bindBuffer ArrayBuffer $= Just shVBOname
|
||||
bufferData ArrayBuffer $=
|
||||
( fromIntegral $ floatSize * numDrawableElements * 7
|
||||
, nullPtr
|
||||
, DynamicDraw
|
||||
)
|
||||
let shVBO = VBO {_vbo = shVBOname, _vboPtr = shVBOptr, _vboAttribSizes = [4,4], _vboStride = 8}
|
||||
shPosColVAOname <- genObjectName
|
||||
bindVertexArrayObject $= Just shPosColVAOname
|
||||
bindBuffer ArrayBuffer $= Just shVBOname
|
||||
setupVertexAttribPointer 0 3 7 0
|
||||
setupVertexAttribPointer 1 4 7 3
|
||||
shPosVAOname <- genObjectName
|
||||
bindVertexArrayObject $= Just shPosVAOname
|
||||
bindBuffer ArrayBuffer $= Just shVBOname
|
||||
setupVertexAttribPointer 0 3 7 0
|
||||
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"]
|
||||
@@ -113,11 +134,6 @@ preloadRender = do
|
||||
framebuf2 <- setupTextureFramebuffer 800 600
|
||||
framebuf3 <- setupTextureFramebuffer 800 600
|
||||
|
||||
--rboLightingName <- genObjectName
|
||||
--bindRenderbuffer Renderbuffer $= rboLightingName
|
||||
--renderbufferStorage Renderbuffer Depth24Stencil8 (RenderbufferSize 800 600)
|
||||
--fboLightingName <- setupFramebufferGivenStencil rboLightingName
|
||||
|
||||
rboBaseBloomName <- genObjectName
|
||||
bindRenderbuffer Renderbuffer $= rboBaseBloomName
|
||||
renderbufferStorage Renderbuffer Depth24Stencil8 (RenderbufferSize 800 600)
|
||||
@@ -152,8 +168,8 @@ preloadRender = do
|
||||
|
||||
return $ RenderData
|
||||
{ _pictureShaders = shadV
|
||||
, _shapeShader = bslista
|
||||
, _lightingCapShader = lightingCapShad
|
||||
, _shapeShader = bslista {_shadVAO = shPosColVAO }
|
||||
, _lightingCapShader = lightingCapShad { _shadVAO = shPosVAO }
|
||||
, _lightingLineShadowShader = lightingLineShadowShad
|
||||
, _lightingOccludeShader = wsShad {_shadVAO = wpVAO}
|
||||
, _wallBlankShader = wlBlank { _shadVAO = wpColVAO }
|
||||
|
||||
Reference in New Issue
Block a user