Clamp framebuffer textures to edges
This commit is contained in:
@@ -11,8 +11,10 @@ float f ( float x) {
|
|||||||
void main()
|
void main()
|
||||||
{
|
{
|
||||||
float t = f(length(texDist));
|
float t = f(length(texDist));
|
||||||
fColor = vec4(texture(screenTexture
|
float r = texture(screenTexture , (t*texPos - vcpos)).r ;
|
||||||
|
vec2 gb = texture(screenTexture
|
||||||
, 0.5+0.5 *( vcpos + t * (texPos - vcpos))
|
, 0.5+0.5 *( vcpos + t * (texPos - vcpos))
|
||||||
)
|
).gb
|
||||||
);
|
;
|
||||||
|
fColor = vec4(r,gb,1);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,9 +1,10 @@
|
|||||||
module Dodge.Distortion where
|
{-# LANGUAGE LambdaCase #-}
|
||||||
|
module Dodge.Distortion (updateDistortion) where
|
||||||
|
|
||||||
import Dodge.Data.Distortion
|
import Dodge.Data.Distortion
|
||||||
|
|
||||||
updateDistortion :: Distortion -> Maybe Distortion
|
updateDistortion :: Distortion -> Maybe Distortion
|
||||||
updateDistortion dt = case dt of
|
updateDistortion = \case
|
||||||
RadialDistortion a b c v
|
RadialDistortion a b c v
|
||||||
| v > 1 -> Just $ RadialDistortion a b c $ max 1 (v - 0.05)
|
| v > 1 -> Just $ RadialDistortion a b c $ max 1 (v - 0.05)
|
||||||
| v < 1 -> Just $ RadialDistortion a b c $ min 1 (v + 0.05)
|
| v < 1 -> Just $ RadialDistortion a b c $ min 1 (v + 0.05)
|
||||||
|
|||||||
@@ -1,11 +1,14 @@
|
|||||||
module Dodge.Event.Test (
|
module Dodge.Event.Test (testEvent) where
|
||||||
testEvent,
|
|
||||||
) where
|
|
||||||
|
|
||||||
--import Dodge.Creature.State
|
--import Dodge.Creature.State
|
||||||
import Dodge.Data.World
|
import Dodge.Data.World
|
||||||
--import Control.Lens
|
import Linear
|
||||||
|
import LensHelp
|
||||||
|
import Data.Maybe
|
||||||
|
|
||||||
testEvent :: World -> World
|
testEvent :: World -> World
|
||||||
testEvent w = w
|
testEvent w = fromMaybe w $ do
|
||||||
|
cpos <- w ^? cWorld . lWorld . creatures . ix 0 . crPos . _xy
|
||||||
|
let distR = 50
|
||||||
|
distortionBulge = RadialDistortion cpos (cpos + V2 distR 0) (cpos + V2 0 distR) 1.9
|
||||||
|
return $ w & cWorld . lWorld . distortions .~ [distortionBulge]
|
||||||
|
|||||||
@@ -220,5 +220,7 @@ initializeTexture2D fbo attachpoint x y minfilt magfilt form = do
|
|||||||
glTextureStorage2D to1 1 form xsize' ysize'
|
glTextureStorage2D to1 1 form xsize' ysize'
|
||||||
glTextureParameteri to1 GL_TEXTURE_MIN_FILTER (unsafeCoerce minfilt)
|
glTextureParameteri to1 GL_TEXTURE_MIN_FILTER (unsafeCoerce minfilt)
|
||||||
glTextureParameteri to1 GL_TEXTURE_MAG_FILTER (unsafeCoerce magfilt)
|
glTextureParameteri to1 GL_TEXTURE_MAG_FILTER (unsafeCoerce magfilt)
|
||||||
|
glTextureParameteri to1 GL_TEXTURE_WRAP_S (unsafeCoerce GL_CLAMP_TO_EDGE)
|
||||||
|
glTextureParameteri to1 GL_TEXTURE_WRAP_T (unsafeCoerce GL_CLAMP_TO_EDGE)
|
||||||
glNamedFramebufferTexture (_unFBO fbo) attachpoint to1 0
|
glNamedFramebufferTexture (_unFBO fbo) attachpoint to1 0
|
||||||
return to1
|
return to1
|
||||||
|
|||||||
@@ -128,7 +128,7 @@ preloadRender = do
|
|||||||
bloomBlurShad <- makeSourcedShader "texture/bloomBlur" [vert, frag]
|
bloomBlurShad <- makeSourcedShader "texture/bloomBlur" [vert, frag]
|
||||||
lightingTextureShad <- makeSourcedShader "lighting/texture" [vert, frag]
|
lightingTextureShad <- makeSourcedShader "lighting/texture" [vert, frag]
|
||||||
barrelShad <- makeShaderVBO "texture/barrel" [vert, geom, frag] (toFloatVAs [2, 2, 2, 1]) pmPoints
|
barrelShad <- makeShaderVBO "texture/barrel" [vert, geom, frag] (toFloatVAs [2, 2, 2, 1]) pmPoints
|
||||||
-- blank wallShader
|
|
||||||
putStrLn "Setup floor VBO, shader"
|
putStrLn "Setup floor VBO, shader"
|
||||||
flvbo <- mglCreate glCreateBuffers
|
flvbo <- mglCreate glCreateBuffers
|
||||||
flptr <- mallocArray (8 * 65536)
|
flptr <- mallocArray (8 * 65536)
|
||||||
@@ -142,8 +142,7 @@ preloadRender = do
|
|||||||
chptr <- mallocArray (2 * 65536)
|
chptr <- mallocArray (2 * 65536)
|
||||||
let chasmvbo = VBO chvbo chptr (2 * floatSize)
|
let chasmvbo = VBO chvbo chptr (2 * floatSize)
|
||||||
chasmshader <- makeSourcedShader "chasm" [vert]
|
chasmshader <- makeSourcedShader "chasm" [vert]
|
||||||
framebuf2 <- newTextureFramebuffer
|
|
||||||
framebuf3 <- newTextureFramebuffer
|
|
||||||
|
|
||||||
putStrLn "Setup framebuffers"
|
putStrLn "Setup framebuffers"
|
||||||
rboBaseBloomName <- mglCreate glCreateRenderbuffers
|
rboBaseBloomName <- mglCreate glCreateRenderbuffers
|
||||||
@@ -157,6 +156,9 @@ preloadRender = do
|
|||||||
fboPosName <- setupFramebufferGivenStencil rboBaseBloomName
|
fboPosName <- setupFramebufferGivenStencil rboBaseBloomName
|
||||||
fboLightingName <- setupFramebufferGivenStencil rboBaseBloomName
|
fboLightingName <- setupFramebufferGivenStencil rboBaseBloomName
|
||||||
|
|
||||||
|
framebuf2 <- newTextureFramebuffer
|
||||||
|
framebuf3 <- newTextureFramebuffer
|
||||||
|
|
||||||
fboHalf1Name <- newTextureFramebuffer
|
fboHalf1Name <- newTextureFramebuffer
|
||||||
fboHalf2Name <- newTextureFramebuffer
|
fboHalf2Name <- newTextureFramebuffer
|
||||||
|
|
||||||
@@ -205,7 +207,6 @@ preloadRender = do
|
|||||||
, _winVBO = winvbo
|
, _winVBO = winvbo
|
||||||
, _cloudVBO = cloudvbo
|
, _cloudVBO = cloudvbo
|
||||||
, _cloudShader = cloudshader
|
, _cloudShader = cloudshader
|
||||||
-- , _screenTextureVAO = screentexturevao
|
|
||||||
, _dummyVAO = dummyvao
|
, _dummyVAO = dummyvao
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -2885,7 +2885,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 213;" f
|
cornerList src/Preload/Render.hs 214;" 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
|
||||||
@@ -3712,7 +3712,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 234;" f
|
initializeGLState src/Preload/Render.hs 235;" 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 214;" f
|
initializeTexture2D src/Framebuffer/Update.hs 214;" f
|
||||||
@@ -5306,7 +5306,7 @@ updateDebrisChunk src/Dodge/Prop/Moving.hs 16;" f
|
|||||||
updateDebugMessageOffset src/Dodge/Update.hs 95;" f
|
updateDebugMessageOffset src/Dodge/Update.hs 95;" f
|
||||||
updateDelayedEvents src/Dodge/Update.hs 888;" f
|
updateDelayedEvents src/Dodge/Update.hs 888;" f
|
||||||
updateDisplaySections src/Dodge/DisplayInventory.hs 116;" f
|
updateDisplaySections src/Dodge/DisplayInventory.hs 116;" f
|
||||||
updateDistortion src/Dodge/Distortion.hs 5;" f
|
updateDistortion src/Dodge/Distortion.hs 6;" f
|
||||||
updateDistortions src/Dodge/Update.hs 556;" f
|
updateDistortions src/Dodge/Update.hs 556;" f
|
||||||
updateDoor src/Dodge/Door.hs 22;" f
|
updateDoor src/Dodge/Door.hs 22;" f
|
||||||
updateDoors src/Dodge/Update.hs 308;" f
|
updateDoors src/Dodge/Update.hs 308;" f
|
||||||
|
|||||||
Reference in New Issue
Block a user