diff --git a/shader/pull/cloud.vert b/shader/pull/cloud.vert index a4002197c..d72b29609 100644 --- a/shader/pull/cloud.vert +++ b/shader/pull/cloud.vert @@ -18,7 +18,6 @@ void main() uint i = gl_VertexID / 6; uint k = gl_VertexID % 6; vCol = data[i].col; -// vCol = vec4(1,0.5,0,1); vControls = indices[k]; vPos = vec3(data[i].pos.xy + 20*vControls, data[i].pos.z); gl_Position = theMat * vec4(vPos,1); diff --git a/src/Dodge/Render.hs b/src/Dodge/Render.hs index a83fcc558..b3e1ecc8a 100644 --- a/src/Dodge/Render.hs +++ b/src/Dodge/Render.hs @@ -4,7 +4,6 @@ module Dodge.Render ( getWindowSize, ) where -import Shape.Parameters import Control.Lens import Control.Monad import qualified Control.Monad.Parallel as MP @@ -61,11 +60,6 @@ doDrawing' win pdata u = do let wswp = wallSPics <> worldSPic cfig u ws = wswp ^. _1 wp = wswp ^. _2 - nCloudVs <- - V.foldM' - (pokeCloud (pdata ^. cloudVBO . vboPtr)) - 0 - (V.fromList $ w ^. cWorld . lWorld . clouds) ((nWins, trueNWalls), (nShapeVs, nIndices, nSilIndices)) <- MP.liftM3 (\_ a b -> (a, b)) @@ -88,28 +82,16 @@ doDrawing' win pdata u = do (0, 0, 0) ws ) --- (nCloudVs', nCloudIs') <- --- -- Might want to sort the clouds based on z depth, not sure --- V.foldM' --- (pokeCloud (pdata ^. cloudVBO . vboPtr) (pdata ^. cloudEBO . uiboPtr)) --- (0, 0) --- (V.fromList $ w ^. cWorld . lWorld . clouds) --- (nCloudVs, nCloudIs) <- --- V.foldM' --- (pokeDust (pdata ^. cloudVBO . vboPtr) (pdata ^. cloudEBO . uiboPtr)) --- (nCloudVs', nCloudIs') --- (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) + 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 bufferShaderLayers shadV pokeCounts mapM_ diff --git a/src/Render.hs b/src/Render.hs index c0e8b982f..5f8836e0b 100644 --- a/src/Render.hs +++ b/src/Render.hs @@ -156,8 +156,11 @@ renderShadows shadrendertype nWalls nSils nCaps positiontexture normaltexture li -- for each of the lights: -- 1. stencil out the shadows from this light's point of view -- 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 -- note that the stencil shadows rely on the depth buffer +-- glScissor 0 0 200 200 glDepthFunc GL_LESS glColorMask GL_FALSE GL_FALSE GL_FALSE GL_FALSE -- setup stencil @@ -234,6 +237,7 @@ renderShadows shadrendertype nWalls nSils nCaps positiontexture normaltexture li (fromIntegral (4 :: Int)) --cleanup: may not be necessary, depending on what comes after... -- glDisable GL_STENCIL_TEST +-- glDisable GL_SCISSOR_TEST glStencilFunc GL_NOTEQUAL 128 255 glStencilOp GL_KEEP GL_KEEP GL_KEEP glColorMask GL_TRUE GL_TRUE GL_TRUE GL_TRUE diff --git a/tags b/tags index 0c04b4c95..0582b29f2 100644 --- a/tags +++ b/tags @@ -2642,7 +2642,7 @@ beltMag src/Dodge/Item/Ammo.hs 39;" f bfsThenReturn src/Dodge/Creature/ReaderUpdate.hs 226;" f bgateCalc src/Dodge/Inventory/SelectionList.hs 118;" 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 black src/Color.hs 27;" 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 btText src/Dodge/Inventory/SelectionList.hs 237;" 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 bufferShaderLayers src/Shader/Bind.hs 32;" 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 copyItemToFloor src/Dodge/FloorItem.hs 14;" 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 corridor src/Dodge/Room/Corridor.hs 17;" 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 344;" 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 getGrenadeHitEffect src/Dodge/HeldUse.hs 1264;" 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 initialWorld src/Dodge/Initialisation.hs 15;" 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 initializeOptionMenuBO src/Dodge/Menu/Option.hs 30;" 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 106;" 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 pistol src/Dodge/Item/Held/Stick.hs 40;" 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 renderInfoListAt src/Dodge/Render/InfoBox.hs 17;" 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 renderListAt src/Dodge/Render/List.hs 192;" 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 setViewDistance src/Dodge/Update/Camera.hs 239;" 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 setWristShieldPos src/Dodge/Equipment.hs 49;" f setWristShieldPos src/Dodge/Euse.hs 38;" f