Grayscale post processing
This commit is contained in:
+18
-8
@@ -52,9 +52,10 @@ doDrawing pdata w = do
|
|||||||
pmat <- (newMatrix RowMajor $ perspectiveMatrix rot zoom trans wins viewFroms)
|
pmat <- (newMatrix RowMajor $ perspectiveMatrix rot zoom trans wins viewFroms)
|
||||||
:: IO (GLmatrix GLfloat)
|
:: IO (GLmatrix GLfloat)
|
||||||
createLightMap pdata (w ^. config . shadow_resolution) wallPoints lightPoints viewFroms pmat
|
createLightMap pdata (w ^. config . shadow_resolution) wallPoints lightPoints viewFroms pmat
|
||||||
|
|
||||||
blendFuncSeparate $= ((SrcAlphaSaturate, OneMinusSrcAlpha), (Zero,One))
|
blendFuncSeparate $= ((SrcAlphaSaturate, OneMinusSrcAlpha), (Zero,One))
|
||||||
-- clear [DepthBuffer]
|
-- clear [DepthBuffer]
|
||||||
depthFunc $= Just Always
|
-- depthFunc $= Just Always
|
||||||
renderBackground pdata rot zoom trans wins
|
renderBackground pdata rot zoom trans wins
|
||||||
depthFunc $= Just Less
|
depthFunc $= Just Less
|
||||||
if w ^. config . wall_textured
|
if w ^. config . wall_textured
|
||||||
@@ -77,14 +78,23 @@ doDrawing pdata w = do
|
|||||||
renderBlankWalls pdata windowPoints pmat
|
renderBlankWalls pdata windowPoints pmat
|
||||||
depthMask $= Enabled
|
depthMask $= Enabled
|
||||||
|
|
||||||
---- draw the lightmap to the screen
|
-- draw the lightmap to the screen
|
||||||
|
bindFramebuffer Framebuffer $= defaultFramebufferObject
|
||||||
|
blend $= Disabled
|
||||||
|
clear [ColorBuffer,DepthBuffer]
|
||||||
|
depthFunc $= Just Always
|
||||||
|
textureBinding Texture2D $= Just (snd $ _fbo2 pdata)
|
||||||
|
textureFilter Texture2D $= ((Linear',Just Linear') , Linear')
|
||||||
|
generateMipmap' Texture2D
|
||||||
|
bindShaderBuffers [_grayscaleShader pdata] [4]
|
||||||
|
drawShader (_grayscaleShader pdata) 4
|
||||||
|
-- bindFramebuffer Framebuffer $= fst (_fbo3 pdata)
|
||||||
|
-- clear [ColorBuffer,DepthBuffer]
|
||||||
|
-- bindFramebuffer Framebuffer $= fst (_fbo2 pdata)
|
||||||
|
-- clear [ColorBuffer,DepthBuffer]
|
||||||
-- bindFramebuffer Framebuffer $= defaultFramebufferObject
|
-- bindFramebuffer Framebuffer $= defaultFramebufferObject
|
||||||
-- clear [DepthBuffer]
|
blend $= Enabled
|
||||||
-- textureBinding Texture2D $= Just (snd $ _fbo2 pdata)
|
|
||||||
-- textureFilter Texture2D $= ((Linear',Just Linear') , Linear')
|
|
||||||
-- generateMipmap' Texture2D
|
|
||||||
-- bindShaderBuffers [_fullscreenShader pdata] [4]
|
|
||||||
-- drawShader (_fullscreenShader pdata) 4
|
|
||||||
|
|
||||||
resetShaderUniforms (map extractProgAndUnis $ _pictureShaders pdata)
|
resetShaderUniforms (map extractProgAndUnis $ _pictureShaders pdata)
|
||||||
----------------------
|
----------------------
|
||||||
|
|||||||
+11
-6
@@ -141,7 +141,10 @@ createLightMap pdata resDiv wallPoints lightPoints (viewFromx,viewFromy) pmat =
|
|||||||
-- always want to draw lightmap
|
-- always want to draw lightmap
|
||||||
depthFunc $= Just Always
|
depthFunc $= Just Always
|
||||||
-- draw the lightmap on a full size fbo
|
-- draw the lightmap on a full size fbo
|
||||||
|
-- bindFramebuffer Framebuffer $= fst (_fbo3 pdata)
|
||||||
|
-- clear [ColorBuffer,DepthBuffer]
|
||||||
bindFramebuffer Framebuffer $= fst (_fbo2 pdata)
|
bindFramebuffer Framebuffer $= fst (_fbo2 pdata)
|
||||||
|
-- clear [ColorBuffer,DepthBuffer]
|
||||||
colorMask $= Color4 Disabled Disabled Disabled Enabled
|
colorMask $= Color4 Disabled Disabled Disabled Enabled
|
||||||
bindShaderBuffers [_boxBlurShader pdata] [4]
|
bindShaderBuffers [_boxBlurShader pdata] [4]
|
||||||
textureBinding Texture2D $= Just (_fboTexture pdata)
|
textureBinding Texture2D $= Just (_fboTexture pdata)
|
||||||
@@ -154,12 +157,14 @@ createLightMap pdata resDiv wallPoints lightPoints (viewFromx,viewFromy) pmat =
|
|||||||
-- ping pong blur between the two buffers as many times as desired
|
-- ping pong blur between the two buffers as many times as desired
|
||||||
replicateM_ 3 $ pingPongBlur pdata
|
replicateM_ 3 $ pingPongBlur pdata
|
||||||
|
|
||||||
-- draw the lightmap to the screen
|
---- draw the lightmap to the screen
|
||||||
bindFramebuffer Framebuffer $= defaultFramebufferObject
|
-- bindFramebuffer Framebuffer $= defaultFramebufferObject
|
||||||
textureBinding Texture2D $= Just (snd $ _fbo2 pdata)
|
-- clear [DepthBuffer]
|
||||||
textureFilter Texture2D $= ((Linear',Just Linear') , Linear')
|
-- textureBinding Texture2D $= Just (snd $ _fbo2 pdata)
|
||||||
generateMipmap' Texture2D
|
-- textureFilter Texture2D $= ((Linear',Just Linear') , Linear')
|
||||||
drawShader (_boxBlurShader pdata) 4
|
-- generateMipmap' Texture2D
|
||||||
|
-- bindShaderBuffers [_fullscreenShader pdata] [4]
|
||||||
|
-- drawShader (_fullscreenShader pdata) 4
|
||||||
|
|
||||||
colorMask $= Color4 Enabled Enabled Enabled Enabled
|
colorMask $= Color4 Enabled Enabled Enabled Enabled
|
||||||
depthMask $= Enabled
|
depthMask $= Enabled
|
||||||
|
|||||||
Reference in New Issue
Block a user