Simplify ceiling oclusions

This commit is contained in:
2025-11-02 19:20:57 +00:00
parent 0d0c1a72e0
commit 2f0487a424
8 changed files with 178 additions and 171 deletions
+25 -13
View File
@@ -5,8 +5,6 @@ module Preload.Render (
cleanUpRenderPreload,
) where
import Shape.Parameters
import Shader.Parameters
import Control.Concurrent
import Control.Lens
import Control.Monad
@@ -19,6 +17,8 @@ import Graphics.GL.Core45
import Shader.AuxAddition
import Shader.Compile
import Shader.Data
import Shader.Parameters
import Shape.Parameters
{- BINDING LIST:
0 base
@@ -49,9 +49,13 @@ preloadRender = do
shEBO <- setupEBO shPosVAO
-- note the shape shader vao is distinct from the position vao, but they
-- share an EBO
shapeshader <- makeShaderUsingVBO "shape/basic" [vert, frag]
shapeVerxAttributes
pmTriangles shVBO
shapeshader <-
makeShaderUsingVBO
"shape/basic"
[vert, frag]
shapeVerxAttributes
pmTriangles
shVBO
glVertexArrayElementBuffer (shapeshader ^. shaderVAO . vaoName) (shEBO ^. eboName)
--setup silhouette edge VAO
@@ -63,8 +67,13 @@ preloadRender = do
let wallverxstrd = 8
wallvbo <- setupVBO (floatSize * wallverxstrd)
winvbo <- setupVBO (floatSize * 8)
windowshader <- makeShaderUsingVBO
"wall/window" [vert, geom, frag] (toFloatVAs [4, 4]) pmPoints winvbo
windowshader <-
makeShaderUsingVBO
"wall/window"
[vert, geom, frag]
(toFloatVAs [4, 4])
pmPoints
winvbo
wallshader <- makeShaderUsingVBO "wall/basic" [vert, geom, frag] (toFloatVAs [4, 4]) pmPoints wallvbo
putStrLn "Setup lighting shaders"
lightingWallShadShad <-
@@ -100,7 +109,7 @@ preloadRender = do
--initTexture2DArray 50 "data/texture/charMapVertBig.png" 2 32 64 95 GL_LINEAR_MIPMAP_NEAREST GL_LINEAR
putStrLn "Setup full screen shaders"
(_,screentexturevao) <- setupStaticVBOVAO (toFloatVAs [2,2]) (concat cornerList)
(_, screentexturevao) <- setupStaticVBOVAO (toFloatVAs [2, 2]) (concat cornerList)
alphadivideshader <- makeShaderUsingVAO "texture2D/alphaDivide" [vert, frag] pmTriangleStrip screentexturevao
fsShad <- makeShaderUsingVAO "texture/simple" [vert, frag] pmTriangleStrip screentexturevao
bloomBlurShad <- makeShaderUsingVAO "texture/bloomBlur" [vert, frag] pmTriangleStrip screentexturevao
@@ -120,10 +129,14 @@ preloadRender = do
putStrLn "Setup chasm VBO, shader"
let chasmverxstrd = 3
chasmvbo <- setupVBOStatic (floatSize * chasmverxstrd)
chasmshader <- makeShaderUsingVBO "positional/blank" [vert, frag] (toFloatVAs [3]) pmTriangles chasmvbo
chasmshader <-
makeShaderUsingVBO
"positional/blank"
[vert, frag]
(toFloatVAs [3])
pmTriangles
chasmvbo
putStrLn "Setup cloud VBO, shader"
--let cloudverxsizes = [4, 4, 4, 4]
let cloudverxsizes = [4, 4, 4]
cloudvbo <- setupVBO (floatSize * sum cloudverxsizes)
(cloudshader, cloudebo) <-
@@ -151,7 +164,6 @@ preloadRender = do
-- reset to default framebuffer, ready for drawing direct to screen
glBindFramebuffer GL_FRAMEBUFFER 0
initializeGLState
putStrLn "Return preload"
return $
@@ -177,7 +189,6 @@ preloadRender = do
, _fboHalf1 = fboHalf1Name
, _fboHalf2 = fboHalf2Name
, _fboLighting = fboLightingName
-- , _fboShadow = fboShadowName
, _fboBase = fboBaseName
, _fboCloud = fboCloudName
, _fboBloom = fboBloomName
@@ -221,6 +232,7 @@ cornerList =
initializeGLState :: IO ()
initializeGLState = do
glEnable GL_DEPTH_TEST
glEnable GL_STENCIL_TEST
cleanUpRenderPreload :: RenderData -> IO ()
cleanUpRenderPreload _ = return ()