"Generalize" canvas proxy shader so it's useful for other people.
This commit is contained in:
parent
5243d533b1
commit
e903130b8e
6 changed files with 37 additions and 21 deletions
|
|
@ -102,12 +102,12 @@ HardwareShader Texture "models/MortalGrenade_Used.png"
|
|||
}
|
||||
HardwareShader Texture "models/MortalLED.png"
|
||||
{
|
||||
Shader "shaders/glsl/BrightCanvas.fp"
|
||||
Shader "shaders/glsl/CanvasProxy.fp"
|
||||
Texture "scrtex" "MORTLED1"
|
||||
}
|
||||
HardwareShader Texture "models/MortalLED2.png"
|
||||
{
|
||||
Shader "shaders/glsl/BrightCanvas.fp"
|
||||
Shader "shaders/glsl/CanvasProxy.fp"
|
||||
Texture "scrtex" "MORTLED2"
|
||||
Define "ALPHA_CUT"
|
||||
Define "ALPHA_KEY" = "vec3(0.)" // key out pure black
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
HardwareShader Texture "models/QuadLED.png"
|
||||
{
|
||||
Shader "shaders/glsl/BrightCanvas.fp"
|
||||
Shader "shaders/glsl/CanvasProxy.fp"
|
||||
Texture "scrtex" "QUADRLED"
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
HardwareShader Texture "models/SheenLED.png"
|
||||
{
|
||||
Shader "shaders/glsl/BrightCanvas.fp"
|
||||
Shader "shaders/glsl/CanvasProxy.fp"
|
||||
Texture "scrtex" "SHEENLED"
|
||||
}
|
||||
PointLight SHEENTLIGHT
|
||||
|
|
|
|||
|
|
@ -1,3 +1,3 @@
|
|||
[default]
|
||||
SWWM_MODVER="\cyDEMOLITIONIST \cw1.3pre r432 \cu(Sun 11 Sep 12:02:48 CEST 2022)\c-";
|
||||
SWWM_SHORTVER="\cw1.3pre r432 \cu(2022-09-11 12:02:48)\c-";
|
||||
SWWM_MODVER="\cyDEMOLITIONIST \cw1.3pre r432 \cu(Sun 11 Sep 12:16:47 CEST 2022)\c-";
|
||||
SWWM_SHORTVER="\cw1.3pre r432 \cu(2022-09-11 12:16:47)\c-";
|
||||
|
|
|
|||
|
|
@ -1,14 +0,0 @@
|
|||
// Make canvas textures fullbright, basically
|
||||
|
||||
void SetupMaterial( inout Material mat )
|
||||
{
|
||||
mat.Base = texture(scrtex,vec2(vTexCoord.s,1.-vTexCoord.t)); // canvas textures are upside-down when used by models
|
||||
mat.Base.a = 1.;
|
||||
#ifdef ALPHA_CUT
|
||||
// cut black
|
||||
if ( max(mat.Base.r,max(mat.Base.g,mat.Base.b)) <= 0. )
|
||||
mat.Base.a = 0.;
|
||||
#endif
|
||||
mat.Normal = ApplyNormalMap(vTexCoord.st);
|
||||
mat.Bright = vec4(1.);
|
||||
}
|
||||
30
shaders/glsl/CanvasProxy.fp
Normal file
30
shaders/glsl/CanvasProxy.fp
Normal file
|
|
@ -0,0 +1,30 @@
|
|||
// Proxy shader for canvas textures
|
||||
|
||||
void SetupMaterial( inout Material mat )
|
||||
{
|
||||
// canvas textures are upside-down when used by models
|
||||
// this is the default use-case here, so for other situations,
|
||||
// there's a macro for it™
|
||||
#ifdef STRAIGHT_UVS
|
||||
mat.Base = texture(scrtex,vTexCoord.st);
|
||||
#else
|
||||
mat.Base = texture(scrtex,vec2(vTexCoord.s,1.-vTexCoord.t));
|
||||
#endif
|
||||
// drawing with render styles applied can alter the alpha of the
|
||||
// canvas itself, which may not be intended, so cap it to 100% here
|
||||
// unless explicitly disabled
|
||||
#ifndef DONT_FIX_ALPHA
|
||||
mat.Base.a = 1.;
|
||||
#endif
|
||||
// treat a color (usually pure black) as fully transparent
|
||||
// used by some special textures
|
||||
#ifdef ALPHA_KEY
|
||||
if ( mat.Base.rgb == ALPHA_KEY )
|
||||
mat.Base.a = 0.;
|
||||
#endif
|
||||
mat.Normal = ApplyNormalMap(vTexCoord.st);
|
||||
// by default, canvas textures are treated as fullbright
|
||||
#ifndef NO_FULLBRIGHT
|
||||
mat.Bright = vec4(1.);
|
||||
#endif
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue