Readd dust cloud rendering

This commit is contained in:
2025-11-12 20:53:37 +00:00
parent 409180959c
commit 383beeae82
4 changed files with 22 additions and 37 deletions
-1
View File
@@ -18,7 +18,6 @@ void main()
uint i = gl_VertexID / 6; uint i = gl_VertexID / 6;
uint k = gl_VertexID % 6; uint k = gl_VertexID % 6;
vCol = data[i].col; vCol = data[i].col;
// vCol = vec4(1,0.5,0,1);
vControls = indices[k]; vControls = indices[k];
vPos = vec3(data[i].pos.xy + 20*vControls, data[i].pos.z); vPos = vec3(data[i].pos.xy + 20*vControls, data[i].pos.z);
gl_Position = theMat * vec4(vPos,1); gl_Position = theMat * vec4(vPos,1);
+10 -28
View File
@@ -4,7 +4,6 @@ module Dodge.Render (
getWindowSize, getWindowSize,
) where ) where
import Shape.Parameters
import Control.Lens import Control.Lens
import Control.Monad import Control.Monad
import qualified Control.Monad.Parallel as MP import qualified Control.Monad.Parallel as MP
@@ -61,11 +60,6 @@ doDrawing' win pdata u = do
let wswp = wallSPics <> worldSPic cfig u let wswp = wallSPics <> worldSPic cfig u
ws = wswp ^. _1 ws = wswp ^. _1
wp = wswp ^. _2 wp = wswp ^. _2
nCloudVs <-
V.foldM'
(pokeCloud (pdata ^. cloudVBO . vboPtr))
0
(V.fromList $ w ^. cWorld . lWorld . clouds)
((nWins, trueNWalls), (nShapeVs, nIndices, nSilIndices)) <- ((nWins, trueNWalls), (nShapeVs, nIndices, nSilIndices)) <-
MP.liftM3 MP.liftM3
(\_ a b -> (a, b)) (\_ a b -> (a, b))
@@ -88,28 +82,16 @@ doDrawing' win pdata u = do
(0, 0, 0) (0, 0, 0)
ws ws
) )
-- (nCloudVs', nCloudIs') <- nCloudVs' <-
-- -- Might want to sort the clouds based on z depth, not sure V.foldM'
-- V.foldM' (pokeCloud (pdata ^. cloudVBO . vboPtr))
-- (pokeCloud (pdata ^. cloudVBO . vboPtr) (pdata ^. cloudEBO . uiboPtr)) 0
-- (0, 0) (V.fromList $ w ^. cWorld . lWorld . clouds)
-- (V.fromList $ w ^. cWorld . lWorld . clouds) nCloudVs <-
-- (nCloudVs, nCloudIs) <- V.foldM'
-- V.foldM' (pokeDust (pdata ^. cloudVBO . vboPtr))
-- (pokeDust (pdata ^. cloudVBO . vboPtr) (pdata ^. cloudEBO . uiboPtr)) nCloudVs'
-- (nCloudVs', nCloudIs') (V.fromList $ w ^. cWorld . lWorld . dusts)
-- (V.fromList $ w ^. cWorld . lWorld . dusts)
--nCloudVs' <-
-- nCloudVs <-
-- V.foldM'
-- (pokeCloud (pdata ^. cloudVBO . vboPtr))
-- 0
-- (V.fromList $ w ^. cWorld . lWorld . clouds)
-- nCloudVs <-
-- V.foldM'
-- (pokeDust (pdata ^. cloudVBO . vboPtr))
-- nCloudVs'
-- (V.fromList $ w ^. cWorld . lWorld . dusts)
-- bind wall points, silhouette data, surface geometry -- bind wall points, silhouette data, surface geometry
bufferShaderLayers shadV pokeCounts bufferShaderLayers shadV pokeCounts
mapM_ mapM_
+4
View File
@@ -156,8 +156,11 @@ renderShadows shadrendertype nWalls nSils nCaps positiontexture normaltexture li
-- for each of the lights: -- for each of the lights:
-- 1. stencil out the shadows from this light's point of view -- 1. stencil out the shadows from this light's point of view
-- 2. calculate lighting based on each fragment's position and normal -- 2. calculate lighting based on each fragment's position and normal
-- TODO stencil out square around light!
-- glEnable GL_SCISSOR_TEST
flip VFSM.mapM_ (VFSM.fromList lightPoints) $ \(V3 x y z, rad, V3 r g b) -> do flip VFSM.mapM_ (VFSM.fromList lightPoints) $ \(V3 x y z, rad, V3 r g b) -> do
-- note that the stencil shadows rely on the depth buffer -- note that the stencil shadows rely on the depth buffer
-- glScissor 0 0 200 200
glDepthFunc GL_LESS glDepthFunc GL_LESS
glColorMask GL_FALSE GL_FALSE GL_FALSE GL_FALSE glColorMask GL_FALSE GL_FALSE GL_FALSE GL_FALSE
-- setup stencil -- setup stencil
@@ -234,6 +237,7 @@ renderShadows shadrendertype nWalls nSils nCaps positiontexture normaltexture li
(fromIntegral (4 :: Int)) (fromIntegral (4 :: Int))
--cleanup: may not be necessary, depending on what comes after... --cleanup: may not be necessary, depending on what comes after...
-- glDisable GL_STENCIL_TEST -- glDisable GL_STENCIL_TEST
-- glDisable GL_SCISSOR_TEST
glStencilFunc GL_NOTEQUAL 128 255 glStencilFunc GL_NOTEQUAL 128 255
glStencilOp GL_KEEP GL_KEEP GL_KEEP glStencilOp GL_KEEP GL_KEEP GL_KEEP
glColorMask GL_TRUE GL_TRUE GL_TRUE GL_TRUE glColorMask GL_TRUE GL_TRUE GL_TRUE GL_TRUE
+8 -8
View File
@@ -2642,7 +2642,7 @@ beltMag src/Dodge/Item/Ammo.hs 39;" f
bfsThenReturn src/Dodge/Creature/ReaderUpdate.hs 226;" f bfsThenReturn src/Dodge/Creature/ReaderUpdate.hs 226;" f
bgateCalc src/Dodge/Inventory/SelectionList.hs 118;" f bgateCalc src/Dodge/Inventory/SelectionList.hs 118;" f
bgunSound src/Dodge/HeldUse.hs 514;" f bgunSound src/Dodge/HeldUse.hs 514;" f
bindFBO src/Render.hs 266;" f bindFBO src/Render.hs 270;" f
bingate src/Dodge/Item/Scope.hs 109;" f bingate src/Dodge/Item/Scope.hs 109;" f
black src/Color.hs 27;" f black src/Color.hs 27;" f
blank src/Picture/Base.hs 59;" f blank src/Picture/Base.hs 59;" f
@@ -2698,7 +2698,7 @@ brightX src/Color.hs 116;" f
btSPic src/Dodge/Render/ShapePicture.hs 129;" f btSPic src/Dodge/Render/ShapePicture.hs 129;" f
btText src/Dodge/Inventory/SelectionList.hs 237;" f btText src/Dodge/Inventory/SelectionList.hs 237;" f
bufferEBO src/Shader/Bind.hs 28;" f bufferEBO src/Shader/Bind.hs 28;" f
bufferPerspectiveMatrixUBO src/Dodge/Render.hs 490;" f bufferPerspectiveMatrixUBO src/Dodge/Render.hs 499;" f
bufferPokedVBO src/Shader/Bind.hs 19;" f bufferPokedVBO src/Shader/Bind.hs 19;" f
bufferShaderLayers src/Shader/Bind.hs 32;" f bufferShaderLayers src/Shader/Bind.hs 32;" f
bulletBeltBracer src/Dodge/Item/Equipment.hs 67;" f bulletBeltBracer src/Dodge/Item/Equipment.hs 67;" f
@@ -2876,7 +2876,7 @@ copier src/Dodge/Item/Scope.hs 88;" f
copierItemUpdate src/Dodge/Creature/State.hs 131;" f copierItemUpdate src/Dodge/Creature/State.hs 131;" f
copyItemToFloor src/Dodge/FloorItem.hs 14;" f copyItemToFloor src/Dodge/FloorItem.hs 14;" f
corDoor src/Dodge/Room/Room.hs 385;" f corDoor src/Dodge/Room/Room.hs 385;" f
cornerList src/Preload/Render.hs 246;" f cornerList src/Preload/Render.hs 249;" f
corpseOrGib src/Dodge/Creature/Update.hs 111;" f corpseOrGib src/Dodge/Creature/Update.hs 111;" f
corridor src/Dodge/Room/Corridor.hs 17;" f corridor src/Dodge/Room/Corridor.hs 17;" f
corridorBoss src/Dodge/LockAndKey.hs 133;" f corridorBoss src/Dodge/LockAndKey.hs 133;" f
@@ -3552,7 +3552,7 @@ getCrMoveSpeed src/Dodge/Creature/Statistics.hs 50;" f
getCrsFromRooms src/Dodge/Room/Tutorial.hs 357;" f getCrsFromRooms src/Dodge/Room/Tutorial.hs 357;" f
getCrsFromRooms' src/Dodge/Room/Tutorial.hs 344;" f getCrsFromRooms' src/Dodge/Room/Tutorial.hs 344;" f
getDebugMouseOver src/Dodge/Update.hs 374;" f getDebugMouseOver src/Dodge/Update.hs 374;" f
getDistortions src/Dodge/Render.hs 496;" f getDistortions src/Dodge/Render.hs 505;" f
getEdgesCrossing src/Dodge/Path.hs 37;" f getEdgesCrossing src/Dodge/Path.hs 37;" f
getGrenadeHitEffect src/Dodge/HeldUse.hs 1264;" f getGrenadeHitEffect src/Dodge/HeldUse.hs 1264;" f
getInventoryPath src/Dodge/Inventory/Path.hs 9;" f getInventoryPath src/Dodge/Inventory/Path.hs 9;" f
@@ -3703,7 +3703,7 @@ initWallZoning src/Dodge/Wall/Zone.hs 12;" f
initialRoomTree src/Dodge/Floor.hs 24;" f initialRoomTree src/Dodge/Floor.hs 24;" f
initialWorld src/Dodge/Initialisation.hs 15;" f initialWorld src/Dodge/Initialisation.hs 15;" f
initialisePlaying src/Sound.hs 77;" f initialisePlaying src/Sound.hs 77;" f
initializeGLState src/Preload/Render.hs 264;" f initializeGLState src/Preload/Render.hs 267;" f
initializeOptionMenu src/Dodge/Menu/Option.hs 17;" f initializeOptionMenu src/Dodge/Menu/Option.hs 17;" f
initializeOptionMenuBO src/Dodge/Menu/Option.hs 30;" f initializeOptionMenuBO src/Dodge/Menu/Option.hs 30;" f
initializeTexture2D src/Framebuffer/Update.hs 205;" f initializeTexture2D src/Framebuffer/Update.hs 205;" f
@@ -4329,7 +4329,7 @@ pincerP src/Dodge/Creature/Boid.hs 63;" f
pincerP' src/Dodge/Creature/Boid.hs 96;" f pincerP' src/Dodge/Creature/Boid.hs 96;" f
pincerP'' src/Dodge/Creature/Boid.hs 106;" f pincerP'' src/Dodge/Creature/Boid.hs 106;" f
pincerP''' src/Dodge/Creature/Boid.hs 77;" f pincerP''' src/Dodge/Creature/Boid.hs 77;" f
pingPongBetween src/Render.hs 242;" f pingPongBetween src/Render.hs 246;" f
pipe src/Dodge/Item/Craftable.hs 32;" f pipe src/Dodge/Item/Craftable.hs 32;" f
pistol src/Dodge/Item/Held/Stick.hs 40;" f pistol src/Dodge/Item/Held/Stick.hs 40;" f
pistolerRoom src/Dodge/Room/Room.hs 330;" f pistolerRoom src/Dodge/Room/Room.hs 330;" f
@@ -4604,7 +4604,7 @@ renderDataResizeUpdate src/Preload/Update.hs 26;" f
renderFlatLighting src/Render.hs 107;" f renderFlatLighting src/Render.hs 107;" f
renderInfoListAt src/Dodge/Render/InfoBox.hs 17;" f renderInfoListAt src/Dodge/Render/InfoBox.hs 17;" f
renderInfoListsAt src/Dodge/Render/InfoBox.hs 44;" f renderInfoListsAt src/Dodge/Render/InfoBox.hs 44;" f
renderLayer src/Render.hs 255;" f renderLayer src/Render.hs 259;" f
renderLightingNoShadows src/Render.hs 48;" f renderLightingNoShadows src/Render.hs 48;" f
renderListAt src/Dodge/Render/List.hs 192;" f renderListAt src/Dodge/Render/List.hs 192;" f
renderShadows src/Render.hs 122;" f renderShadows src/Render.hs 122;" f
@@ -4816,7 +4816,7 @@ setTiles src/Dodge/Layout.hs 67;" f
setTreeInts src/Dodge/Room/Tutorial.hs 98;" f setTreeInts src/Dodge/Room/Tutorial.hs 98;" f
setViewDistance src/Dodge/Update/Camera.hs 239;" f setViewDistance src/Dodge/Update/Camera.hs 239;" f
setViewPos src/Dodge/Creature/ReaderUpdate.hs 69;" f setViewPos src/Dodge/Creature/ReaderUpdate.hs 69;" f
setViewport src/Dodge/Render.hs 501;" f setViewport src/Dodge/Render.hs 510;" f
setVol src/Dodge/Config.hs 47;" f setVol src/Dodge/Config.hs 47;" f
setWristShieldPos src/Dodge/Equipment.hs 49;" f setWristShieldPos src/Dodge/Equipment.hs 49;" f
setWristShieldPos src/Dodge/Euse.hs 38;" f setWristShieldPos src/Dodge/Euse.hs 38;" f