Stuff for Plasma Blaster.

This commit is contained in:
Mari the Deer 2022-10-21 20:11:59 +02:00
commit b9e3fbe184
5 changed files with 178 additions and 2 deletions

View file

@ -13,3 +13,24 @@ Brightmap Texture "models/PlasmaBlast.png"
{
Map "models/PlasmaBlast_bright.png"
}
HardwareShader Texture "models/PlasmaLED.png"
{
Shader "shaders/glsl/CanvasProxy.fp"
Texture "scrtex" "PLASBLED"
}
HardwareShader Texture "models/PlasmaBlast_1st.png"
{
Shader "shaders/glsl/PlasmaBlast.fp"
Texture "masktex" "models/PlasmaBlast_mask.png"
Texture "envtex" "models/envmap/iceenv.png"
Texture "rimtex" "models/envmap/icerim.png"
Define "RIM_LIGHTING"
Define "ENVFACT" = "1."
Define "RIMFACT" = "1."
Define "RIMSTEP" = "0."
Texture "fadetex" "PLASBFAD"
Texture "battex" "models/PlasmaBlast_battery.png"
Texture "chgtex" "models/PlasmaBlast_charge.png"
Texture "gradtex" "models/PlasmaBlast_grad.png"
Texture "noisetex" "textures/roughwarp.png"
}

View file

@ -1,3 +1,3 @@
[default]
SWWM_MODVER="\cyDEMOLITIONIST \cw1.3pre r579 \cu(Fri 21 Oct 12:43:41 CEST 2022)\c-";
SWWM_SHORTVER="\cw1.3pre r579 \cu(2022-10-21 12:43:41)\c-";
SWWM_MODVER="\cyDEMOLITIONIST \cw1.3pre r580 \cu(Fri 21 Oct 20:11:59 CEST 2022)\c-";
SWWM_SHORTVER="\cw1.3pre r580 \cu(2022-10-21 20:11:59)\c-";

BIN
models/canvas/NukuriFnt.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 810 B

109
models/canvas/NukuriFnt.txt Normal file
View file

@ -0,0 +1,109 @@
0,0,0,1,8
1,9,0,5,8
2,18,0,7,8
3,27,0,7,8
4,36,0,4,8
5,45,0,7,8
6,54,0,7,8
7,63,0,7,8
8,72,0,8,8
9,81,0,5,8
A,0,9,8,8
E,9,9,8,8
I,18,9,8,8
Y,27,9,8,8
U,36,9,8,8
O,45,9,8,8
H,54,9,2,8
W,0,18,6,8
WA,9,18,8,8
WE,18,18,8,8
WI,27,18,6,8
WY,36,18,8,8
WU,45,18,8,8
WO,54,18,8,8
D,0,27,6,8
DA,9,27,8,8
DE,18,27,8,8
DI,27,27,6,8
DY,36,27,8,8
DU,45,27,8,8
DO,54,27,8,8
V,0,36,4,8
VA,9,36,6,8
VE,18,36,8,8
VI,27,36,5,8
VY,36,36,8,8
VU,45,36,8,8
VO,54,36,8,8
Z,0,45,6,8
ZA,9,45,8,8
ZE,18,45,8,8
ZI,27,45,6,8
ZY,36,45,8,8
ZU,45,45,8,8
ZO,54,45,8,8
M,0,54,6,8
MA,9,54,8,8
ME,18,54,8,8
MI,27,54,6,8
MY,36,54,8,8
MU,45,54,8,8
MO,54,54,8,8
L,0,63,6,8
LA,9,63,8,8
LE,18,63,8,8
LI,27,63,6,8
LY,36,63,8,8
LU,45,63,8,8
LO,54,63,8,8
B,0,72,6,8
BA,9,72,8,8
BE,18,72,8,8
BI,27,72,6,8
BY,36,72,8,8
BU,45,72,8,8
BO,54,72,8,8
R,0,81,6,8
RA,9,81,8,8
RE,18,81,8,8
RI,27,81,6,8
RY,36,81,8,8
RU,45,81,8,8
RO,54,81,8,8
S,0,90,6,8
SA,9,90,8,8
SE,18,90,8,8
SI,27,90,6,8
SY,36,90,8,8
SU,45,90,8,8
SO,54,90,8,8
T,0,99,6,8
TA,9,99,8,8
TE,18,99,8,8
TI,27,99,6,8
TY,36,99,8,8
TU,45,99,8,8
TO,54,99,8,8
N,0,108,6,8
NA,9,108,8,8
NE,18,108,8,8
NI,27,108,6,8
NY,36,108,8,8
NU,45,108,8,8
NO,54,108,8,8
X,0,117,6,8
XA,9,117,8,8
XE,18,117,8,8
XI,27,117,6,8
XY,36,117,8,8
XU,45,117,8,8
XO,54,117,8,8
K,0,126,6,8
KA,9,126,8,8
KE,18,126,8,8
KI,27,126,6,8
KY,36,126,8,8
KU,45,126,8,8
KO,54,126,8,8
<EFBFBD>,0,135,8,8

View file

@ -0,0 +1,46 @@
// basic texture + masked equirectangular envmap + gradient rim
// + dynamic glows (Plasma Blaster specific)
#define RECIPROCAL_PI2 0.15915494
#ifndef RIMSTEP
#define RIMSTEP .5
#endif
#ifndef ENVFACT
#define ENVFACT 1.
#endif
#ifndef RIMFACT
#define RIMFACT 1.
#endif
void SetupMaterial( inout Material mat )
{
vec4 base = getTexel(vTexCoord.st);
float mask = texture(masktex,vTexCoord.st).x;
vec3 norm = normalize(vWorldNormal.xyz);
vec3 eye = normalize(uCameraPos.xyz-pixelpos.xyz);
vec3 rvec = normalize(reflect(eye,norm));
vec2 uv = vec2(atan(rvec.z,rvec.x)*RECIPROCAL_PI2+.5,asin(rvec.y)*RECIPROCAL_PI2+.5);
vec2 uv2 = vec2(atan(rvec.z,abs(rvec.x))*RECIPROCAL_PI2+.5,asin(rvec.y)*RECIPROCAL_PI2+.5);
vec3 envcol = textureGrad(envtex,uv,dFdx(uv2),dFdy(uv2)).rgb*ENVFACT;
#ifdef RIM_LIGHTING
float rim = smoothstep(RIMSTEP,1.,1.-abs(dot(eye,norm)));
vec3 rimcol = texture(rimtex,vec2(.25+.5*rim,.5)).rgb;
envcol = mix(envcol,rimcol,rim*RIMFACT);
#endif
mat.Base = vec4(base.rgb+envcol*mask,base.a);
mat.Normal = ApplyNormalMap(vTexCoord.st);
if ( (uTextureMode&TEXF_Brightmap) != 0 )
mat.Bright = texture(brighttexture,vTexCoord.st);
// status canvas tex (only need two channels)
vec2 fade = texture(fadetex,vec2(.5)).rg;
// red: battery connection led
vec3 bat = texture(battex,vTexCoord.st).rgb*fade.r;
mat.Base.rgb += bat;
mat.Bright.rgb += vec3(max(bat.r,max(bat.g,bat.b)));
// green: charge glow
float chg = texture(chgtex,vTexCoord.st).x*fade.g;
// TODO noise
vec3 grad = texture(gradtex,vec2(.25+chg*.5,.5)).rgb;
mat.Base.rgb += grad;
mat.Bright.rgb += vec3(chg);
}