Draw walls using vertex pulling

This commit is contained in:
2025-11-10 19:05:54 +00:00
parent 1546caa6a3
commit 1f01147821
8 changed files with 68 additions and 8 deletions
+9 -1
View File
@@ -41,14 +41,20 @@ preloadRender = do
winssbo <- mglCreate glCreateBuffers
let winssbosize = sizeOf (0::Float) * 8 * 1024
glNamedBufferStorage winssbo (fromIntegral winssbosize) nullPtr GL_DYNAMIC_STORAGE_BIT
glBindBufferBase GL_SHADER_STORAGE_BUFFER 1 winssbo
wallssbo <- mglCreate glCreateBuffers
let wallssbosize = sizeOf (0::Float) * 8 * 2048
glNamedBufferStorage wallssbo (fromIntegral wallssbosize) nullPtr GL_DYNAMIC_STORAGE_BIT
glBindBufferBase GL_SHADER_STORAGE_BUFFER 2 wallssbo
dummyvao <- mglCreate glGenVertexArrays
winpull <- makeShaderUsingVAO "pull/window" [vert,frag] pmTriangles (VAO dummyvao)
wallpull <- makeShaderUsingVAO "pull/wall" [vert,frag] pmTriangles (VAO dummyvao)
-- setup shape geometry/cap VBO and two VAOs
putStrLn "Setup shape VBO, VAO, EBO"
shVBO <- setupVBO shapeVerxSize
@@ -182,6 +188,7 @@ preloadRender = do
, _ceilingStencilShader = ceilingstencilshader
-- , _windowShader = windowshader
, _windowPullShader = winpull
, _pullWallShader = wallpull
, _fullscreenShader = fsShad
, _transparencyCompShader = transcompshader
, _alphaDivideShader = alphadivideshader
@@ -203,6 +210,7 @@ preloadRender = do
, _rboBaseBloom = rboBaseBloomName
, _matUBO = theUBO
, _winSSBO = winssbo
, _wallSSBO = wallssbo
-- , _lightsUBO = lightsubo
, _vboWindows = winvbo
, _vboShapes = shVBO