Add PP shaders when submerged.
This commit is contained in:
parent
f402f14138
commit
058a85e274
11 changed files with 146 additions and 16 deletions
27
gldefs.pp
27
gldefs.pp
|
|
@ -1,4 +1,31 @@
|
||||||
HardwareShader PostProcess beforebloom
|
HardwareShader PostProcess beforebloom
|
||||||
|
{
|
||||||
|
Name "WaterWarp"
|
||||||
|
Shader "shaders/glsl/WaterWarp.fp" 330
|
||||||
|
Texture warptex "textures/warptex.png"
|
||||||
|
Texture fluidtex "textures/wetwarp.png"
|
||||||
|
Uniform float dfact
|
||||||
|
Uniform float timer
|
||||||
|
}
|
||||||
|
HardwareShader PostProcess beforebloom
|
||||||
|
{
|
||||||
|
Name "LavaWarp"
|
||||||
|
Shader "shaders/glsl/LavaWarp.fp" 330
|
||||||
|
Texture warptex "textures/warptex.png"
|
||||||
|
Texture fluidtex "textures/lavawarp.png"
|
||||||
|
Uniform float dfact
|
||||||
|
Uniform float timer
|
||||||
|
}
|
||||||
|
HardwareShader PostProcess beforebloom
|
||||||
|
{
|
||||||
|
Name "SlimeWarp"
|
||||||
|
Shader "shaders/glsl/SlimeWarp.fp" 330
|
||||||
|
Texture warptex "textures/warptex.png"
|
||||||
|
Texture fluidtex "textures/slimewarp.png"
|
||||||
|
Uniform float dfact
|
||||||
|
Uniform float timer
|
||||||
|
}
|
||||||
|
HardwareShader PostProcess beforebloom
|
||||||
{
|
{
|
||||||
Name "ZoomBlur"
|
Name "ZoomBlur"
|
||||||
Shader "shaders/glsl/ZoomBlur.fp" 330
|
Shader "shaders/glsl/ZoomBlur.fp" 330
|
||||||
|
|
|
||||||
|
|
@ -1,2 +1,2 @@
|
||||||
[default]
|
[default]
|
||||||
SWWM_MODVER="\chSWWM \cwGZ\c- r514 (Tue 1 Sep 16:47:23 CEST 2020)";
|
SWWM_MODVER="\chSWWM \cwGZ\c- r515 (Tue 1 Sep 18:10:34 CEST 2020)";
|
||||||
|
|
|
||||||
Binary file not shown.
|
Before Width: | Height: | Size: 2.1 KiB After Width: | Height: | Size: 2 KiB |
26
shaders/glsl/LavaWarp.fp
Normal file
26
shaders/glsl/LavaWarp.fp
Normal file
|
|
@ -0,0 +1,26 @@
|
||||||
|
vec2 calcdist( vec2 duv )
|
||||||
|
{
|
||||||
|
vec2 uv = vec2(0.);
|
||||||
|
vec2 dist = 2.*texture(warptex,duv*.2).xy-1.;
|
||||||
|
dist.x *= abs(mod(dist.y+timer*0.34536,4.)-2.)-1.;
|
||||||
|
uv.x += dist.x*.02*dfact;
|
||||||
|
dist = 2.*texture(warptex,(duv+uv)*.3).xy-1.;
|
||||||
|
dist.y *= abs(mod(dist.x+timer*0.25363,4.)-2.)-1.;
|
||||||
|
uv.y -= dist.y*.03*dfact;
|
||||||
|
return uv;
|
||||||
|
}
|
||||||
|
|
||||||
|
void main()
|
||||||
|
{
|
||||||
|
vec2 uv = TexCoord+calcdist(TexCoord-vec2(0.,timer*.02));
|
||||||
|
vec2 bresl = textureSize(InputTexture,0);
|
||||||
|
vec2 sr = vec2(1.,bresl.y/bresl.x);
|
||||||
|
float p = distance(uv,vec2(.5));
|
||||||
|
uv = (uv-.5)*(1.-dfact*.07)+.5;
|
||||||
|
vec4 res = texture(InputTexture,uv);
|
||||||
|
vec4 flood = texture(fluidtex,uv*sr+vec2(timer*.02,timer*.01));
|
||||||
|
res.rgb += flood.rgb*dfact*.4;
|
||||||
|
flood = texture(fluidtex,uv*sr*2.+vec2(-timer*.03,timer*.04));
|
||||||
|
res.rgb += flood.rgb*dfact*.6;
|
||||||
|
FragColor = vec4(res.rgb,1.);
|
||||||
|
}
|
||||||
26
shaders/glsl/SlimeWarp.fp
Normal file
26
shaders/glsl/SlimeWarp.fp
Normal file
|
|
@ -0,0 +1,26 @@
|
||||||
|
vec2 calcdist( vec2 duv )
|
||||||
|
{
|
||||||
|
vec2 uv = vec2(0.);
|
||||||
|
vec2 dist = 2.*texture(warptex,duv*.4).xy-1.;
|
||||||
|
dist.x *= abs(mod(dist.y+timer*0.24536,4.)-2.)-1.;
|
||||||
|
uv.x += dist.x*.02*dfact;
|
||||||
|
dist = 2.*texture(warptex,(duv+uv)*.3).xy-1.;
|
||||||
|
dist.y *= abs(mod(dist.x+timer*0.15363,4.)-2.)-1.;
|
||||||
|
uv.y -= dist.y*.03*dfact;
|
||||||
|
return uv;
|
||||||
|
}
|
||||||
|
|
||||||
|
void main()
|
||||||
|
{
|
||||||
|
vec2 uv = TexCoord+calcdist(TexCoord-vec2(0.,timer*.08));
|
||||||
|
vec2 bresl = textureSize(InputTexture,0);
|
||||||
|
vec2 sr = vec2(1.,bresl.y/bresl.x);
|
||||||
|
float p = distance(uv,vec2(.5));
|
||||||
|
uv = (uv-.5)*(1.-dfact*.11)+.5;
|
||||||
|
vec4 res = texture(InputTexture,uv);
|
||||||
|
vec4 flood = texture(fluidtex,uv*sr+vec2(timer*.02,timer*.05));
|
||||||
|
res.rgb += flood.rgb*dfact*.3;
|
||||||
|
flood = texture(fluidtex,uv*sr*2.+vec2(-timer*.04,timer*.08));
|
||||||
|
res.rgb += flood.rgb*dfact*.4;
|
||||||
|
FragColor = vec4(res.rgb,1.);
|
||||||
|
}
|
||||||
26
shaders/glsl/WaterWarp.fp
Normal file
26
shaders/glsl/WaterWarp.fp
Normal file
|
|
@ -0,0 +1,26 @@
|
||||||
|
vec2 calcdist( vec2 duv )
|
||||||
|
{
|
||||||
|
vec2 uv = vec2(0.);
|
||||||
|
vec2 dist = 2.*texture(warptex,duv*.2).xy-1.;
|
||||||
|
dist.x *= abs(mod(dist.y+timer*0.34536,4.)-2.)-1.;
|
||||||
|
uv.x += dist.x*.03*dfact;
|
||||||
|
dist = 2.*texture(warptex,(duv+uv)*.3).xy-1.;
|
||||||
|
dist.y *= abs(mod(dist.x+timer*0.45363,4.)-2.)-1.;
|
||||||
|
uv.y -= dist.y*.02*dfact;
|
||||||
|
return uv;
|
||||||
|
}
|
||||||
|
|
||||||
|
void main()
|
||||||
|
{
|
||||||
|
vec2 uv = TexCoord+calcdist(TexCoord-vec2(0.,timer*.2));
|
||||||
|
vec2 bresl = textureSize(InputTexture,0);
|
||||||
|
vec2 sr = vec2(1.,bresl.y/bresl.x);
|
||||||
|
float p = distance(uv,vec2(.5));
|
||||||
|
uv = (uv-.5)*(1.-dfact*.12)+.5;
|
||||||
|
vec4 res = texture(InputTexture,uv);
|
||||||
|
vec4 flood = texture(fluidtex,uv*sr+vec2(timer*.01,timer*.02));
|
||||||
|
res.rgb += flood.rgb*dfact*.3;
|
||||||
|
flood = texture(fluidtex,uv*sr*2.+vec2(-timer*.04,timer*.08));
|
||||||
|
res.rgb += flood.rgb*dfact*.2;
|
||||||
|
FragColor = vec4(res.rgb,1.);
|
||||||
|
}
|
||||||
BIN
textures/lavawarp.png
Normal file
BIN
textures/lavawarp.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 69 KiB |
BIN
textures/slimewarp.png
Normal file
BIN
textures/slimewarp.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 120 KiB |
BIN
textures/warptex.png
Normal file
BIN
textures/warptex.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 28 KiB |
BIN
textures/wetwarp.png
Normal file
BIN
textures/wetwarp.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 73 KiB |
|
|
@ -371,6 +371,19 @@ Class SWWMHandler : EventHandler
|
||||||
return (al+ah+bl+bh)*.25;
|
return (al+ah+bl+bh)*.25;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static clearscope void ClearAllShaders( PlayerInfo p )
|
||||||
|
{
|
||||||
|
Shader.SetEnabled(p,"WaterWarp",false);
|
||||||
|
Shader.SetEnabled(p,"LavaWarp",false);
|
||||||
|
Shader.SetEnabled(p,"SlimeWarp",false);
|
||||||
|
Shader.SetEnabled(p,"ZoomBlur",false);
|
||||||
|
Shader.SetEnabled(p,"RagekitShader",false);
|
||||||
|
Shader.SetEnabled(p,"GhostShader",false);
|
||||||
|
Shader.SetEnabled(p,"InvinciShader",false);
|
||||||
|
Shader.SetEnabled(p,"Glitch",false);
|
||||||
|
Shader.SetEnabled(p,"Grain",false);
|
||||||
|
}
|
||||||
|
|
||||||
// level end stats
|
// level end stats
|
||||||
override void WorldUnloaded( WorldEvent e )
|
override void WorldUnloaded( WorldEvent e )
|
||||||
{
|
{
|
||||||
|
|
@ -378,13 +391,7 @@ Class SWWMHandler : EventHandler
|
||||||
SWWMStats s;
|
SWWMStats s;
|
||||||
while ( s = SWWMStats(ti.Next()) )
|
while ( s = SWWMStats(ti.Next()) )
|
||||||
s.AddLevelStats();
|
s.AddLevelStats();
|
||||||
PlayerInfo p = players[consoleplayer];
|
ClearAllShaders(players[consoleplayer]);
|
||||||
Shader.SetEnabled(p,"ZoomBlur",false);
|
|
||||||
Shader.SetEnabled(p,"RagekitShader",false);
|
|
||||||
Shader.SetEnabled(p,"GhostShader",false);
|
|
||||||
Shader.SetEnabled(p,"InvinciShader",false);
|
|
||||||
Shader.SetEnabled(p,"Glitch",false);
|
|
||||||
Shader.SetEnabled(p,"Grain",false);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
override void WorldLoaded( WorldEvent e )
|
override void WorldLoaded( WorldEvent e )
|
||||||
|
|
@ -474,13 +481,7 @@ Class SWWMHandler : EventHandler
|
||||||
Demolitionist(players[i].mo).CheckUnderwaterAmb(true);
|
Demolitionist(players[i].mo).CheckUnderwaterAmb(true);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
PlayerInfo p = players[consoleplayer];
|
ClearAllShaders(players[consoleplayer]);
|
||||||
Shader.SetEnabled(p,"ZoomBlur",false);
|
|
||||||
Shader.SetEnabled(p,"RagekitShader",false);
|
|
||||||
Shader.SetEnabled(p,"GhostShader",false);
|
|
||||||
Shader.SetEnabled(p,"InvinciShader",false);
|
|
||||||
Shader.SetEnabled(p,"Glitch",false);
|
|
||||||
Shader.SetEnabled(p,"Grain",false);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
override void PlayerDied( PlayerEvent e )
|
override void PlayerDied( PlayerEvent e )
|
||||||
|
|
@ -1648,6 +1649,27 @@ Class SWWMHandler : EventHandler
|
||||||
if ( pc && (mo is 'Demolitionist') && useshaders.GetBool() )
|
if ( pc && (mo is 'Demolitionist') && useshaders.GetBool() )
|
||||||
{
|
{
|
||||||
let demo = Demolitionist(mo);
|
let demo = Demolitionist(mo);
|
||||||
|
if ( demo.lastunder == Demolitionist.UNDER_WATER )
|
||||||
|
{
|
||||||
|
Shader.SetEnabled(p,"WaterWarp",true);
|
||||||
|
Shader.SetUniform1f(p,"WaterWarp","timer",(gametic+e.FracTic)/Thinker.TICRATE);
|
||||||
|
Shader.SetUniform1f(p,"WaterWarp","dfact",coat?.25:1.);
|
||||||
|
}
|
||||||
|
else Shader.SetEnabled(p,"WaterWarp",false);
|
||||||
|
if ( demo.lastunder == Demolitionist.UNDER_LAVA )
|
||||||
|
{
|
||||||
|
Shader.SetEnabled(p,"LavaWarp",true);
|
||||||
|
Shader.SetUniform1f(p,"LavaWarp","timer",(gametic+e.FracTic)/Thinker.TICRATE);
|
||||||
|
Shader.SetUniform1f(p,"LavaWarp","dfact",coat?.25:1.);
|
||||||
|
}
|
||||||
|
else Shader.SetEnabled(p,"LavaWarp",false);
|
||||||
|
if ( demo.lastunder == Demolitionist.UNDER_SLIME )
|
||||||
|
{
|
||||||
|
Shader.SetEnabled(p,"SlimeWarp",true);
|
||||||
|
Shader.SetUniform1f(p,"SlimeWarp","timer",(gametic+e.FracTic)/Thinker.TICRATE);
|
||||||
|
Shader.SetUniform1f(p,"SlimeWarp","dfact",coat?.25:1.);
|
||||||
|
}
|
||||||
|
else Shader.SetEnabled(p,"SlimeWarp",false);
|
||||||
int lastdmg = (demo.Health>0)?demo.lastdamage:Random[Flicker](60,80);
|
int lastdmg = (demo.Health>0)?demo.lastdamage:Random[Flicker](60,80);
|
||||||
int lastdmgtic = (demo.Health>0)?demo.lastdamagetic:(gametic+Random[Flicker](30,20));
|
int lastdmgtic = (demo.Health>0)?demo.lastdamagetic:(gametic+Random[Flicker](30,20));
|
||||||
double noiz = min(lastdmg*.09*max(0,(lastdmgtic-(gametic+e.Fractic))/35.),.5);
|
double noiz = min(lastdmg*.09*max(0,(lastdmgtic-(gametic+e.Fractic))/35.),.5);
|
||||||
|
|
@ -1691,6 +1713,9 @@ Class SWWMHandler : EventHandler
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
Shader.SetEnabled(p,"WaterWarp",false);
|
||||||
|
Shader.SetEnabled(p,"LavaWarp",false);
|
||||||
|
Shader.SetEnabled(p,"SlimeWarp",false);
|
||||||
Shader.SetEnabled(p,"Glitch",false);
|
Shader.SetEnabled(p,"Glitch",false);
|
||||||
Shader.SetEnabled(p,"Grain",false);
|
Shader.SetEnabled(p,"Grain",false);
|
||||||
Shader.SetEnabled(p,"ZoomBlur",false);
|
Shader.SetEnabled(p,"ZoomBlur",false);
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue