diff --git a/src/Dodge/Creature/Inanimate.hs b/src/Dodge/Creature/Inanimate.hs index b3141988e..23acec938 100644 --- a/src/Dodge/Creature/Inanimate.hs +++ b/src/Dodge/Creature/Inanimate.hs @@ -37,7 +37,7 @@ lamp h = defaultInanimate lampPic :: Float -> Picture lampPic h = pictures [ pictures . map (Poly3D 0 . map ((, blue) . (-.-.- (2.5,2.5,0)))) $ boxXYZ 5 5 (h-1) - , setDepth h $ color white $ circleSolid 3 + , setLayer 1 $ setDepth h $ color white $ circleSolid 3 ] initialiseLamp :: Float -> CRUpdate diff --git a/src/Dodge/Render.hs b/src/Dodge/Render.hs index 9f0ed49d8..7feef8976 100644 --- a/src/Dodge/Render.hs +++ b/src/Dodge/Render.hs @@ -98,8 +98,8 @@ doDrawing pdata w = do blendFunc $= (One,Zero) --textureBinding Texture2D $= Just (snd $ _fboFourth1 pdata) drawShader (_bloomBlurShader pdata) 4 - blendFunc $= (One,Zero) - replicateM_ 5 $ pingPongBetween (_fboFourth1 pdata) (_fboFourth2 pdata) (_bloomBlurShader pdata) + --blendFunc $= (One,Zero) + replicateM_ 3 $ pingPongBetween (_fboFourth1 pdata) (_fboFourth2 pdata) (_bloomBlurShader pdata) --replicateM_ 5 $ pingPongBlur pdata --blend $= Enabled viewport $= (Position 0 0, Size (round $ fst wins) (round $ snd wins)) @@ -113,14 +113,9 @@ doDrawing pdata w = do colorMask $= Color4 Enabled Enabled Enabled Enabled clearColor $= Color4 0 0 0 0 - bindShaderBuffers [_fullscreenShader pdata] [4] - - --bindFramebuffer Framebuffer $= defaultFramebufferObject blend $= Disabled depthMask $= Disabled depthFunc $= Just Always - --textureBinding Texture2D $= Just (snd $ head $ fst $ _fbos pdata) - --drawShader (_fullscreenShader pdata) 4 bindFramebuffer Framebuffer $= (fst $ _fboBase pdata) --drawShader (_fullscreenShader pdata) 4 @@ -136,6 +131,8 @@ doDrawing pdata w = do --textureBinding Texture2D $= Just (snd3 $ _fbo2 pdata) textureBinding Texture2D $= Just (snd $ _fboFourth1 pdata) drawShader (_fullscreenShader pdata) 4 + textureBinding Texture2D $= Just (snd $ _fboBloom pdata) + drawShader (_fullscreenShader pdata) 4 depthFunc $= Just Lequal _ <- renderFoldable pdata $ picToLTree (Just 2) pic diff --git a/src/MatrixHelper.hs b/src/MatrixHelper.hs index cfa1e1d53..ea6870b91 100644 --- a/src/MatrixHelper.hs +++ b/src/MatrixHelper.hs @@ -21,12 +21,14 @@ perspectiveMatrixb rot zoom (tranx,trany) (winx,winy) (viewFromx,viewFromy) = . vToL . lmt $ scaleMat (2*zoom/winx,2*zoom/winy) + -- $ scaleMat (2/winx,2/winy) !*! rotMatr (-rot) !*! transMat (viewFromx-tranx,viewFromy-trany) - !*! perMat + !*! perMat (zoom * 0.4) !*! transMat (-viewFromx,-viewFromy) - !*! vertScale - !*! vertTrans + !*! vertScale + !*! vertTrans 20 + -- !*! vertTrans 80 isoMatrix :: Float -- ^ Rotation @@ -47,12 +49,12 @@ lmt = Linear.Matrix.transpose vToL :: V4 a -> [a] vToL (V4 a b c d) = [a,b,c,d] -perMat :: V4 (V4 Float) -perMat = V4 +perMat :: Float -> V4 (V4 Float) +perMat x = V4 (V4 1 0 0 0) (V4 0 1 0 0) (V4 0 0 1 0) - (V4 0 0 1 1) + (V4 0 0 x 1) scaleMat :: Point2 -> V4 (V4 Float) scaleMat (x,y) = V4 @@ -82,9 +84,9 @@ vertScale = V4 (V4 0 0 (negate 0.005) 0) (V4 0 0 0 1) -vertTrans :: V4 (V4 Float) -vertTrans = V4 +vertTrans :: Float -> V4 (V4 Float) +vertTrans z = V4 (V4 1 0 0 0) (V4 0 1 0 0) - (V4 0 0 1 (negate 20)) + (V4 0 0 1 (negate z)) (V4 0 0 0 1) diff --git a/src/Preload/Render.hs b/src/Preload/Render.hs index ce8cf9881..1be51330a 100644 --- a/src/Preload/Render.hs +++ b/src/Preload/Render.hs @@ -74,7 +74,7 @@ preloadRender = do textArrayShad <- makeShader "texture/array" [vert,frag] [3,3] ETriangles poke33 >>= addTextureArray "data/texture/ayene_wooden_floor.png" -- bind fixed vertex data - bindShaderBuffers [bloomBlurShad,colorBlurShad,fullscreenAlphaHalveShad] [4,4,4] + bindShaderBuffers [fsShad,bloomBlurShad,colorBlurShad,fullscreenAlphaHalveShad] [4,4,4,4] -- framebuffer for lighting (fbo,fboTO,fboRBO) <- setupFramebufferWithStencil framebuf2 <- setupFramebufferWithStencil