Rename fadeCircle shaders to lightmapCircle

This commit is contained in:
jgk
2021-03-09 11:08:56 +01:00
parent c29aa46bc5
commit bfbd0b6fef
9 changed files with 68 additions and 19 deletions
+12
View File
@@ -0,0 +1,12 @@
#version 430 core
in vec2 cenPosT;
in vec2 gParams;
out vec4 fColor;
void main()
{
vec2 pos = gl_FragCoord.xy;
float dist = min(1 , 2*distance(pos,cenPosT) / (gParams.x));
float c = gParams.y * pow(1-dist,2);
fColor = vec4( c,c,c ,c );
}
+29
View File
@@ -0,0 +1,29 @@
#version 430 core
layout (points) in;
layout (triangle_strip, max_vertices = 4) out;
in vec2 vParams [];
out vec2 gParams;
out vec2 cenPosT;
uniform vec2 winSize;
uniform float zoom;
void main()
{
vec3 cenPos = gl_in[0].gl_Position.xyz;
gParams = vec2( vParams[0].x * zoom * 2, vParams[0].y);
float gRad = gParams.x;
cenPosT = vec2 ( (cenPos.x + 1) * 0.5 * winSize.x , (cenPos.y + 1) * 0.5 * winSize.y);
gl_Position = vec4 (cenPos.x + gRad/winSize.x, cenPos.y + gRad/winSize.y, 0.9 , 1);
EmitVertex();
gl_Position = vec4 (cenPos.x - gRad/winSize.x, cenPos.y + gRad/winSize.y, 0.9 , 1);
EmitVertex();
gl_Position = vec4 (cenPos.x + gRad/winSize.x, cenPos.y - gRad/winSize.y, 0.9 , 1);
EmitVertex();
gl_Position = vec4 (cenPos.x - gRad/winSize.x, cenPos.y - gRad/winSize.y, 0.9 , 1);
EmitVertex();
EndPrimitive();
}
+15
View File
@@ -0,0 +1,15 @@
#version 430 core
layout (location = 0) in vec4 position;
out vec2 vParams;
uniform vec2 winSize;
uniform float zoom;
uniform vec2 translation;
uniform float rotation;
uniform mat4 worldMat;
void main()
{
gl_Position = vec4(position.xy,0,1);
vParams = position.zw;
}
-2
View File
@@ -277,8 +277,6 @@ drawEquipment cr = pictures $ map f $ IM.toList (_crInv cr)
frontArmouredPict = const $ pictures [ color (greyN 0.8) $ circleSolid 20
, color red $ circLine 20
-- ,color (greyN 0.1) $ thickArc 0 90 20 5
-- ,color (greyN 0.1) $ thickArc 270 360 20 5
]
--packCrits :: (Int -> World -> World) -> [Int] -> [Creature]
+4 -4
View File
@@ -564,7 +564,7 @@ startZoomOutLongGun _ w = w & creatures . ix 0 . crInv . ix (_crInvSel (_creatu
poisonSprayer = defaultAutoGun
{ _itName = "POISONSPRAYER"
{ _itName = "POISONSPRAY"
, _itIdentity = PoisonSprayer
, _wpMaxAmmo = 500
, _wpLoadedAmmo = 500
@@ -586,7 +586,7 @@ poisonSprayer = defaultAutoGun
}
flamer = defaultAutoGun
{ _itName = "FLAMETHROWER"
{ _itName = "FLAMER"
, _itIdentity = Flamethrower
, _wpMaxAmmo = 250
, _wpLoadedAmmo = 250
@@ -1058,8 +1058,8 @@ moveFlame rotd w pt =
rfl wl p = Just $ pt {_btTimer' = time -1, _btPos' = pOut p
, _btVel' = reflV wl, _ptPict' = thepic $ pOut p
}
glow p' = onLayerL [levLayer UPtLayer,0] $ uncurry translate p'
$ color (withAlpha 0.02 orange)
glow p' = setLayer 2 $ onLayerL [levLayer UPtLayer,0] $ uncurry translate p'
$ color (withAlpha 0.01 orange)
$ circleSolid 50
pOut p = p +.+ safeNormalizeV (sp -.- p)
--reflV wall = (0.6 *.* reflectIn (_wlLine wall !! 1 -.- _wlLine wall !! 0)
-2
View File
@@ -475,7 +475,6 @@ crGlareWidth :: Float -> Color -> Float -> Point2 -> Creature -> Particle'
crGlareWidth wdth col alphay p cr =
Particle'
{ _ptPict' = onLayerL [levLayer GloomLayer + 2] $ l cp
--{ _ptPict' = [(blank, [levLayer WlLayer + 2])]
, _ptUpdate' = \w pt -> (w, Just $ pt {_ptPict' = onLayerL [levLayer GloomLayer + 2] $ upp cid w
,_ptUpdate' = ptTimer' 0
}
@@ -489,7 +488,6 @@ crGlareWidth wdth col alphay p cr =
cid = _crID cr
upp cid' w' = case w' ^? creatures . ix cid . crPos of
Just y -> l y
--Just p -> uncurry translate p $ circleSolid 5
_ -> blank
muzFlareAt :: Point2 -> World -> World
+3 -3
View File
@@ -23,7 +23,7 @@ data RenderData = RenderData
, _textShader :: (Program, [UniformLocation])
, _circShader :: (Program, [UniformLocation])
, _arcShader :: (Program, [UniformLocation])
, _fadeCircleShader :: (Program, [UniformLocation])
, _lightmapCircleShader :: (Program, [UniformLocation])
, _backShader :: (Program, [UniformLocation])
, _wallShadowShader :: (Program, [UniformLocation])
, _triVAO :: VAO
@@ -100,7 +100,7 @@ preloadRender = do
ts <- makeSourcedShader "character" [VertexShader,GeometryShader,FragmentShader]
cs <- makeSourcedShader "circle" [VertexShader,GeometryShader,FragmentShader]
as <- makeSourcedShader "arc" [VertexShader,GeometryShader,FragmentShader]
fcs <- makeSourcedShader "fadeCircle" [VertexShader,GeometryShader,FragmentShader]
fcs <- makeSourcedShader "lightmapCircle" [VertexShader,GeometryShader,FragmentShader]
bgs <- makeSourcedShader "background" [VertexShader,GeometryShader,FragmentShader]
wss <- makeSourcedShader "wallShadow" [VertexShader,GeometryShader,FragmentShader]
@@ -163,7 +163,7 @@ preloadRender = do
, _textShader = ts
, _circShader = cs
, _arcShader = as
, _fadeCircleShader = fcs
, _lightmapCircleShader = fcs
, _backShader = bgs
, _wallShadowShader = wss
, _triVAO = trivao
+2 -5
View File
@@ -364,7 +364,7 @@ renderPicture' pdata rot zoom (tranx,trany) (winx,winy) wallPoints lightPoints p
,_textShader pdata
,_circShader pdata
,_arcShader pdata
,_fadeCircleShader pdata
,_lightmapCircleShader pdata
,_backShader pdata
,_wallShadowShader pdata
] $ \shad -> do
@@ -400,7 +400,7 @@ renderPicture' pdata rot zoom (tranx,trany) (winx,winy) wallPoints lightPoints p
-- glDrawElements GL_POINTS (fromIntegral $ length wallPoints) GL_UNSIGNED_BYTE ptr
drawArrays Points (fromIntegral 0) (fromIntegral $ nWalls)
cullFace $= Nothing
currentProgram $= Just (fst $ _fadeCircleShader pdata)
currentProgram $= Just (fst $ _lightmapCircleShader pdata)
bindVertexArrayObject $= Just (_vao $ _fadeCircVAO pdata)
let fadeCircPtr = (\(_,ptr,_) -> ptr) $ head $ _vaoBufferTargets $ _fadeCircVAO pdata
pokeFourOff fadeCircPtr 0 (x,y,r,lum)
@@ -437,9 +437,6 @@ renderPicture' pdata rot zoom (tranx,trany) (winx,winy) wallPoints lightPoints p
,_textShader pdata
,_circShader pdata
,_arcShader pdata
-- ,_fadeCircleShader pdata
-- ,_backShader pdata
-- ,_wallShadowShader pdata
] $ \shad -> do
currentProgram $= Just (fst shad)
uniform (snd shad !! 0) $= Vector2 (2::Float) 2
+3 -3
View File
@@ -64,9 +64,9 @@ makeArcShader = do
makeFadeShader :: IO Program
makeFadeShader = do
vsSource <- BS.readFile "shader/fadeCircle.vert"
gsSource <- BS.readFile "shader/fadeCircle.geom"
fsSource <- BS.readFile "shader/fadeCircle.frag"
vsSource <- BS.readFile "shader/lightmapCircle.vert"
gsSource <- BS.readFile "shader/lightmapCircle.geom"
fsSource <- BS.readFile "shader/lightmapCircle.frag"
makeShaderProgram [(VertexShader, vsSource )
,(GeometryShader, gsSource )