apparently I forgot to add some files.
git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@5122 fc73d0e0-1445-4013-8a0c-d673dee63da5
This commit is contained in:
parent
783ef32e67
commit
a255ee0def
7 changed files with 191 additions and 0 deletions
36
engine/shaders/hlsl9/drawflat_wall.hlsl
Normal file
36
engine/shaders/hlsl9/drawflat_wall.hlsl
Normal file
|
@ -0,0 +1,36 @@
|
||||||
|
!!cvard3 r_floorcolour
|
||||||
|
!!cvard3 r_wallcolour
|
||||||
|
//FIXME !!permu FOG
|
||||||
|
|
||||||
|
struct a2v {
|
||||||
|
float4 pos: POSITION;
|
||||||
|
float2 lmtc: TEXCOORD1;
|
||||||
|
float3 normal: NORMAL;
|
||||||
|
};
|
||||||
|
struct v2f {
|
||||||
|
#ifndef FRAGMENT_SHADER
|
||||||
|
float4 pos: POSITION;
|
||||||
|
#endif
|
||||||
|
float2 lmtc: TEXCOORD0;
|
||||||
|
float4 col: TEXCOORD1; //tc not colour to preserve range for oversaturation
|
||||||
|
};
|
||||||
|
#ifdef VERTEX_SHADER
|
||||||
|
float4x4 m_modelviewprojection;
|
||||||
|
float4 e_lmscale;
|
||||||
|
v2f main (a2v inp)
|
||||||
|
{
|
||||||
|
v2f outp;
|
||||||
|
outp.pos = mul(m_modelviewprojection, inp.pos);
|
||||||
|
outp.lmtc = inp.lmtc;
|
||||||
|
outp.col = e_lmscale * float4(((inp.normal.z < 0.73)?r_wallcolour:r_floorcolour)/255.0, 1.0);
|
||||||
|
return outp;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef FRAGMENT_SHADER
|
||||||
|
sampler s_t0;
|
||||||
|
float4 main (v2f inp) : COLOR0
|
||||||
|
{
|
||||||
|
return inp.col * tex2D(s_t0, inp.lmtc).xyzw;
|
||||||
|
}
|
||||||
|
#endif
|
23
engine/shaders/vulkan/bloom_blur.glsl
Normal file
23
engine/shaders/vulkan/bloom_blur.glsl
Normal file
|
@ -0,0 +1,23 @@
|
||||||
|
!!samps 1
|
||||||
|
#include "sys/defs.h"
|
||||||
|
//apply gaussian filter
|
||||||
|
|
||||||
|
varying vec2 tc;
|
||||||
|
|
||||||
|
#ifdef VERTEX_SHADER
|
||||||
|
void main ()
|
||||||
|
{
|
||||||
|
tc = v_texcoord;
|
||||||
|
gl_Position = ftetransform();
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
#ifdef FRAGMENT_SHADER
|
||||||
|
/*offset should be 1.2 pixels away from the center*/
|
||||||
|
void main ()
|
||||||
|
{
|
||||||
|
gl_FragColor =
|
||||||
|
0.3125 * texture2D(s_t0, tc - e_glowmod.st) +
|
||||||
|
0.375 * texture2D(s_t0, tc) +
|
||||||
|
0.3125 * texture2D(s_t0, tc + e_glowmod.st);
|
||||||
|
}
|
||||||
|
#endif
|
21
engine/shaders/vulkan/bloom_filter.glsl
Normal file
21
engine/shaders/vulkan/bloom_filter.glsl
Normal file
|
@ -0,0 +1,21 @@
|
||||||
|
!!samps 1
|
||||||
|
!!cvar3f r_bloom_filter=.7,.7,.7
|
||||||
|
#include "sys/defs.h"
|
||||||
|
//the bloom filter
|
||||||
|
//filter out any texels which are not to bloom
|
||||||
|
|
||||||
|
varying vec2 tc;
|
||||||
|
|
||||||
|
#ifdef VERTEX_SHADER
|
||||||
|
void main ()
|
||||||
|
{
|
||||||
|
tc = v_texcoord;
|
||||||
|
gl_Position = ftetransform();
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
#ifdef FRAGMENT_SHADER
|
||||||
|
void main ()
|
||||||
|
{
|
||||||
|
gl_FragColor.rgb = (texture2D(s_t0, tc).rgb - cvar_r_bloom_filter)/(1.0-cvar_r_bloom_filter);
|
||||||
|
}
|
||||||
|
#endif
|
28
engine/shaders/vulkan/bloom_final.glsl
Normal file
28
engine/shaders/vulkan/bloom_final.glsl
Normal file
|
@ -0,0 +1,28 @@
|
||||||
|
!!samps 4
|
||||||
|
!!cvarf r_bloom
|
||||||
|
!!cvarf r_bloom_retain=1.0
|
||||||
|
#include "sys/defs.h"
|
||||||
|
//add them together
|
||||||
|
//optionally apply tonemapping
|
||||||
|
|
||||||
|
varying vec2 tc;
|
||||||
|
|
||||||
|
#ifdef VERTEX_SHADER
|
||||||
|
void main ()
|
||||||
|
{
|
||||||
|
tc = v_texcoord;
|
||||||
|
gl_Position = ftetransform();
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
#ifdef FRAGMENT_SHADER
|
||||||
|
void main ()
|
||||||
|
{
|
||||||
|
gl_FragColor =
|
||||||
|
cvar_r_bloom_retain * texture2D(s_t0, tc) +
|
||||||
|
cvar_r_bloom*(
|
||||||
|
texture2D(s_t1, tc) +
|
||||||
|
texture2D(s_t2, tc) +
|
||||||
|
texture2D(s_t3, tc)
|
||||||
|
) ;
|
||||||
|
}
|
||||||
|
#endif
|
19
engine/shaders/vulkan/defaultfill.glsl
Normal file
19
engine/shaders/vulkan/defaultfill.glsl
Normal file
|
@ -0,0 +1,19 @@
|
||||||
|
#include "sys/defs.h"
|
||||||
|
|
||||||
|
#ifdef VERTEX_SHADER
|
||||||
|
varying vec4 vc;
|
||||||
|
|
||||||
|
void main ()
|
||||||
|
{
|
||||||
|
vc = v_colour;
|
||||||
|
gl_Position = ftetransform();
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef FRAGMENT_SHADER
|
||||||
|
varying vec4 vc;
|
||||||
|
void main ()
|
||||||
|
{
|
||||||
|
gl_FragColor = vc;
|
||||||
|
}
|
||||||
|
#endif
|
31
engine/shaders/vulkan/defaultsprite.glsl
Normal file
31
engine/shaders/vulkan/defaultsprite.glsl
Normal file
|
@ -0,0 +1,31 @@
|
||||||
|
!!permu FOG
|
||||||
|
!!samps 1
|
||||||
|
!!argf MASK=0
|
||||||
|
!!cvarb r_fog_exp2=true
|
||||||
|
|
||||||
|
//used by both particles and sprites.
|
||||||
|
//note the fog blending mode is all that differs from defaultadditivesprite
|
||||||
|
|
||||||
|
#include "sys/defs.h"
|
||||||
|
#include "sys/fog.h"
|
||||||
|
#ifdef VERTEX_SHADER
|
||||||
|
varying vec2 tc;
|
||||||
|
varying vec4 vc;
|
||||||
|
void main ()
|
||||||
|
{
|
||||||
|
tc = v_texcoord;
|
||||||
|
vc = v_colour;
|
||||||
|
gl_Position = ftetransform();
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
#ifdef FRAGMENT_SHADER
|
||||||
|
varying vec2 tc;
|
||||||
|
varying vec4 vc;
|
||||||
|
void main ()
|
||||||
|
{
|
||||||
|
vec4 col = texture2D(s_t0, tc);
|
||||||
|
if (arg_MASK!=0.0 && col.a < float(arg_MASK))
|
||||||
|
discard;
|
||||||
|
gl_FragColor = fog4blend(col * vc * e_colourident);
|
||||||
|
}
|
||||||
|
#endif
|
33
engine/shaders/vulkan/drawflat_wall.glsl
Normal file
33
engine/shaders/vulkan/drawflat_wall.glsl
Normal file
|
@ -0,0 +1,33 @@
|
||||||
|
!!permu FOG
|
||||||
|
!!cvar3f r_floorcolor
|
||||||
|
!!cvar3f r_wallcolor
|
||||||
|
!!cvarb r_fog_exp2=true
|
||||||
|
!!samps 1
|
||||||
|
#include "sys/defs.h"
|
||||||
|
|
||||||
|
//this is for the '286' preset walls, and just draws lightmaps coloured based upon surface normals.
|
||||||
|
|
||||||
|
#include "sys/fog.h"
|
||||||
|
varying vec4 col;
|
||||||
|
#ifdef VERTEX_SHADER
|
||||||
|
//attribute vec3 v_normal;
|
||||||
|
//attribute vec2 v_lmcoord;
|
||||||
|
varying vec2 lm;
|
||||||
|
//uniform vec3 cvar_r_wallcolor;
|
||||||
|
//uniform vec3 cvar_r_floorcolor;
|
||||||
|
//uniform vec4 e_lmscale;
|
||||||
|
void main ()
|
||||||
|
{
|
||||||
|
col = vec4(e_lmscale.rgb/255.0 * ((v_normal.z < 0.73)?cvar_r_wallcolor:cvar_r_floorcolor), e_lmscale.a);
|
||||||
|
lm = v_lmcoord;
|
||||||
|
gl_Position = ftetransform();
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
#ifdef FRAGMENT_SHADER
|
||||||
|
//uniform sampler2D s_t0;
|
||||||
|
varying vec2 lm;
|
||||||
|
void main ()
|
||||||
|
{
|
||||||
|
gl_FragColor = fog4(col * texture2D(s_t0, lm));
|
||||||
|
}
|
||||||
|
#endif
|
Loading…
Reference in a new issue