diff --git a/LICENSE.txt b/LICENSE.txt index 41944d6..fc603ac 100644 --- a/LICENSE.txt +++ b/LICENSE.txt @@ -1,4 +1,4 @@ -Copyright (c) 2018-2023 Marisa the Magician, UnSX Team +Copyright (c) 2018-2025 Marisa the Magician, UnSX Team Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/gldefs.txt b/gldefs.txt index a982832..9902204 100644 --- a/gldefs.txt +++ b/gldefs.txt @@ -478,19 +478,16 @@ HardwareShader Texture "models/Abelt1.png" { Shader "shaders/glsl/AmbientGlow_Brightmapped.fp" Texture "brighttex" "brightmaps/Abelt1.png" - Texture "ambglow" "AmbGlowT" } HardwareShader Texture "models/Apbelt1.png" { Shader "shaders/glsl/AmbientGlow_Brightmapped.fp" Texture "brighttex" "brightmaps/Abelt1.png" - Texture "ambglow" "AmbGlowT" } HardwareShader Texture "models/Ahand1_.png" { Shader "shaders/glsl/AmbientGlow_Brightmapped.fp" Texture "brighttex" "brightmaps/Ahand1.png" - Texture "ambglow" "AmbGlowT" } Brightmap Texture "models/Ahand1.png" { @@ -500,7 +497,6 @@ HardwareShader Texture "models/Ainv1_.png" { Shader "shaders/glsl/AmbientGlow_Brightmapped.fp" Texture "brighttex" "brightmaps/Ainv1.png" - Texture "ambglow" "AmbGlowT" } Brightmap Texture "models/Ainv1.png" { @@ -510,7 +506,6 @@ HardwareShader Texture "models/DPistol1_.png" { Shader "shaders/glsl/AmbientGlow_Brightmapped.fp" Texture "brighttex" "brightmaps/DPistol1.png" - Texture "ambglow" "AmbGlowT" } Brightmap Texture "models/DPistol1.png" { @@ -520,7 +515,6 @@ HardwareShader Texture "models/OldSkins/DPistol1_.png" { Shader "shaders/glsl/AmbientGlow_Brightmapped.fp" Texture "brighttex" "brightmaps/DPistol1.png" - Texture "ambglow" "AmbGlowT" } Brightmap Texture "models/OldSkins/DPistol1.png" { @@ -530,7 +524,6 @@ HardwareShader Texture "models/JBRifle1_.png" { Shader "shaders/glsl/AmbientGlow_Brightmapped.fp" Texture "brighttex" "brightmaps/JBRifle1.png" - Texture "ambglow" "AmbGlowT" } Brightmap Texture "models/JBRifle1.png" { @@ -540,7 +533,6 @@ HardwareShader Texture "models/OldSkins/JBRifle1_.png" { Shader "shaders/glsl/AmbientGlow_Brightmapped.fp" Texture "brighttex" "brightmaps/JBRifle1.png" - Texture "ambglow" "AmbGlowT" } Brightmap Texture "models/OldSkins/JBRifle1.png" { @@ -550,7 +542,6 @@ HardwareShader Texture "models/OldSkins/Jnapalm1_.png" { Shader "shaders/glsl/AmbientGlow_Brightmapped.fp" Texture "brighttex" "brightmaps/OldSkins/Jnapalm1.png" - Texture "ambglow" "AmbGlowT" } Brightmap Texture "models/OldSkins/Jnapalm1.png" { @@ -560,7 +551,6 @@ HardwareShader Texture "models/JEightB1_.png" { Shader "shaders/glsl/AmbientGlow_Brightmapped.fp" Texture "brighttex" "brightmaps/JEightB1.png" - Texture "ambglow" "AmbGlowT" } Brightmap Texture "models/JEightB1.png" { @@ -569,18 +559,15 @@ Brightmap Texture "models/JEightB1.png" HardwareShader Texture "models/JFlashl1.png" { Shader "shaders/glsl/AmbientGlow.fp" - Texture "ambglow" "AmbGlowT" } HardwareShader Texture "models/JBigFlash1.png" { Shader "shaders/glsl/AmbientGlow.fp" - Texture "ambglow" "AmbGlowT" } HardwareShader Texture "models/JImpale1_.png" { Shader "shaders/glsl/AmbientGlow_Brightmapped.fp" Texture "brighttex" "brightmaps/JImpale1.png" - Texture "ambglow" "AmbGlowT" } Brightmap Texture "models/JImpale1.png" { @@ -590,19 +577,16 @@ HardwareShader Texture "models/JPickup1.png" { Shader "shaders/glsl/AmbientGlow_Brightmapped.fp" Texture "brighttex" "brightmaps/JPickup1.png" - Texture "ambglow" "AmbGlowT" } HardwareShader Texture "models/JPickup21.png" { Shader "shaders/glsl/AmbientGlow_Brightmapped.fp" Texture "brighttex" "brightmaps/JPickup21.png" - Texture "ambglow" "AmbGlowT" } HardwareShader Texture "models/JRazor1_.png" { Shader "shaders/glsl/AmbientGlow_Brightmapped.fp" Texture "brighttex" "brightmaps/JRazor1.png" - Texture "ambglow" "AmbGlowT" } Brightmap Texture "models/JRazor1.png" { @@ -612,7 +596,6 @@ HardwareShader Texture "models/JRifle1_.png" { Shader "shaders/glsl/AmbientGlow_Brightmapped.fp" Texture "brighttex" "brightmaps/JRifle1.png" - Texture "ambglow" "AmbGlowT" } Brightmap Texture "models/JRifle1.png" { @@ -622,7 +605,6 @@ HardwareShader Texture "models/JTaryPick1_.png" { Shader "shaders/glsl/AmbientGlow_Brightmapped.fp" Texture "brighttex" "brightmaps/JTaryPick1.png" - Texture "ambglow" "AmbGlowT" } Brightmap Texture "models/JTaryPick1.png" { @@ -633,7 +615,6 @@ HardwareShader Texture "models/OldSkins/JTaryPick1_.png" { Shader "shaders/glsl/AmbientGlow_Brightmapped.fp" Texture "brighttex" "brightmaps/JTaryPick1.png" - Texture "ambglow" "AmbGlowT" } Brightmap Texture "models/OldSkins/JTaryPick1.png" { @@ -653,7 +634,6 @@ HardwareShader Texture "models/Jpeacehand1_.png" { Shader "shaders/glsl/AmbientGlow_Brightmapped.fp" Texture "brighttex" "brightmaps/Jpeacehand1.png" - Texture "ambglow" "AmbGlowT" } Brightmap Texture "models/Jpeacehand1.png" { @@ -663,7 +643,6 @@ HardwareShader Texture "models/Sting1_.png" { Shader "shaders/glsl/AmbientGlow_Brightmapped.fp" Texture "brighttex" "brightmaps/Sting1.png" - Texture "ambglow" "AmbGlowT" } Brightmap Texture "models/Sting1.png" { @@ -673,7 +652,6 @@ HardwareShader Texture "models/Stunner_.png" { Shader "shaders/glsl/AmbientGlow_Brightmapped.fp" Texture "brighttex" "brightmaps/Stunner.png" - Texture "ambglow" "AmbGlowT" } Brightmap Texture "models/Stunner.png" { @@ -683,97 +661,78 @@ HardwareShader Texture "models/aforce1.png" { Shader "shaders/glsl/AmbientGlow_Brightmapped.fp" Texture "brighttex" "brightmaps/aforce1.png" - Texture "ambglow" "AmbGlowT" } HardwareShader Texture "models/Jflakshel1_.png" { Shader "shaders/glsl/AmbientGlow.fp" - Texture "ambglow" "AmbGlowT" } HardwareShader Texture "models/Jflak1_.png" { Shader "shaders/glsl/AmbientGlow.fp" - Texture "ambglow" "AmbGlowT" } HardwareShader Texture "models/ASMD1_.png" { Shader "shaders/glsl/AmbientGlow.fp" - Texture "ambglow" "AmbGlowT" } HardwareShader Texture "models/AToxSuit1.png" { Shader "shaders/glsl/AmbientGlow.fp" - Texture "ambglow" "AmbGlowT" } HardwareShader Texture "models/AkevSuit1.png" { Shader "shaders/glsl/AmbientGlow.fp" - Texture "ambglow" "AmbGlowT" } HardwareShader Texture "models/Asuit1.png" { Shader "shaders/glsl/AmbientGlow.fp" - Texture "ambglow" "AmbGlowT" } HardwareShader Texture "models/AutoHand1_.png" { Shader "shaders/glsl/AmbientGlow.fp" - Texture "ambglow" "AmbGlowT" } HardwareShader Texture "models/Autom1_.png" { Shader "shaders/glsl/AmbientGlow.fp" - Texture "ambglow" "AmbGlowT" } HardwareShader Texture "models/Automa1_.png" { Shader "shaders/glsl/AmbientGlow.fp" - Texture "ambglow" "AmbGlowT" } HardwareShader Texture "models/Flamet_.png" { Shader "shaders/glsl/AmbientGlow.fp" - Texture "ambglow" "AmbGlowT" } HardwareShader Texture "models/GunPick1_.png" { Shader "shaders/glsl/AmbientGlow.fp" - Texture "ambglow" "AmbGlowT" } HardwareShader Texture "models/JAmplifier1.png" { Shader "shaders/glsl/AmbientGlow.fp" - Texture "ambglow" "AmbGlowT" } HardwareShader Texture "models/JAsmdAmmo1.png" { Shader "shaders/glsl/AmbientGlow.fp" - Texture "ambglow" "AmbGlowT" } HardwareShader Texture "models/JBigGun1_.png" { Shader "shaders/glsl/AmbientGlow.fp" - Texture "ambglow" "AmbGlowT" } HardwareShader Texture "models/JBoneSw1_.png" { Shader "shaders/glsl/AmbientGlow.fp" - Texture "ambglow" "AmbGlowT" } HardwareShader Texture "models/JDetector.png" { Shader "shaders/glsl/AmbientGlow.fp" - Texture "ambglow" "AmbGlowT" } HardwareShader Texture "models/JFlameG1_.png" { Shader "shaders/glsl/AmbientGlow.fp" - Texture "ambglow" "AmbGlowT" } HardwareShader Texture "models/JInvisibility1.png" { Shader "shaders/glsl/AmbientGlow.fp" - Texture "ambglow" "AmbGlowT" } Brightmap Texture "models/JNaliFruit1.png" { @@ -782,92 +741,74 @@ Brightmap Texture "models/JNaliFruit1.png" HardwareShader Texture "models/JNapalm1_.png" { Shader "shaders/glsl/AmbientGlow.fp" - Texture "ambglow" "AmbGlowT" } HardwareShader Texture "models/JNapalmAm1.png" { Shader "shaders/glsl/AmbientGlow.fp" - Texture "ambglow" "AmbGlowT" } HardwareShader Texture "models/JQuadAm1_.png" { Shader "shaders/glsl/AmbientGlow.fp" - Texture "ambglow" "AmbGlowT" } HardwareShader Texture "models/JRocketCan1.png" { Shader "shaders/glsl/AmbientGlow.fp" - Texture "ambglow" "AmbGlowT" } HardwareShader Texture "models/JRocket1_.png" { Shader "shaders/glsl/AmbientGlow.fp" - Texture "ambglow" "AmbGlowT" } HardwareShader Texture "models/Jarmor1.png" { Shader "shaders/glsl/AmbientGlow.fp" - Texture "ambglow" "AmbGlowT" } HardwareShader Texture "models/Jband1.png" { Shader "shaders/glsl/AmbientGlow.fp" - Texture "ambglow" "AmbGlowT" } HardwareShader Texture "models/Jclip1_.png" { Shader "shaders/glsl/AmbientGlow.fp" - Texture "ambglow" "AmbGlowT" } HardwareShader Texture "models/Jhealth1.png" { Shader "shaders/glsl/AmbientGlow.fp" - Texture "ambglow" "AmbGlowT" } HardwareShader Texture "models/Jlboot1.png" { Shader "shaders/glsl/AmbientGlow.fp" - Texture "ambglow" "AmbGlowT" } HardwareShader Texture "models/Jmisc1_.png" { Shader "shaders/glsl/AmbientGlow.fp" - Texture "ambglow" "AmbGlowT" } HardwareShader Texture "models/Jpeacehand1_.png" { Shader "shaders/glsl/AmbientGlow.fp" - Texture "ambglow" "AmbGlowT" } HardwareShader Texture "models/Jseed1.png" { Shader "shaders/glsl/AmbientGlow.fp" - Texture "ambglow" "AmbGlowT" } HardwareShader Texture "models/Jshealth1.png" { Shader "shaders/glsl/AmbientGlow.fp" - Texture "ambglow" "AmbGlowT" } HardwareShader Texture "models/Minigun_.png" { Shader "shaders/glsl/AmbientGlow.fp" - Texture "ambglow" "AmbGlowT" } HardwareShader Texture "models/RifleBul1.png" { Shader "shaders/glsl/AmbientGlow.fp" - Texture "ambglow" "AmbGlowT" } HardwareShader Texture "models/aPower1.png" { Shader "shaders/glsl/AmbientGlow.fp" - Texture "ambglow" "AmbGlowT" } HardwareShader Texture "models/minigun1_.png" { Shader "shaders/glsl/AmbientGlow.fp" - Texture "ambglow" "AmbGlowT" } HardwareShader Texture "models/ShockSm.png" { @@ -931,12 +872,10 @@ HardwareShader Texture "models/OLSMP_.png" Shader "shaders/glsl/MeshEnviroMapMasked_AmbientGlow.fp" Texture "masktex" "models/OLSMP_m.png" Texture "envtex" "models/OLSMP_env.png" - Texture "ambglow" "AmbGlowT" } HardwareShader Texture "models/JSentry1_.png" { Shader "shaders/glsl/AmbientGlow.fp" - Texture "ambglow" "AmbGlowT" } HardwareShader Texture "models/Glass2.png" { @@ -956,7 +895,6 @@ HardwareShader Texture "models/JTranslator1.png" { Shader "shaders/glsl/AmbientGlow_Brightmapped.fp" Texture "brighttex" "brightmaps/JTranslator1.png" - Texture "ambglow" "AmbGlowT" } // PP shaders diff --git a/menudef.txt b/menudef.txt index 0c85db8..d105aea 100644 --- a/menudef.txt +++ b/menudef.txt @@ -149,13 +149,9 @@ OptionMenu "UnrealCreditsMenu" StaticText "Epic Games, id Software, Bethesda Softworks" StaticText " " StaticText "$STING_CPATRON", "White" - StaticText "Snacks, Artem Bashev, john," - StaticText "Jonas Höglund, Lilian Lamp, Valerie Thiessen," - StaticText "Corey Hectus, Dac, Pietro Gagliardi, Xada Xephron," - StaticText "Alexa Jones-Gonzales, John, NekoMithos," - StaticText "bouncytem, Figo, Holly_Rook," - StaticText "Namsan, YaGirlJuniper, Ashley Lambert," - StaticText "LordMisfit, m8f, 3d0xp0xy" + StaticText "Bean, Snacks, bouncytem," + StaticText "Fantasmita, Pietro Gagliardi, NekoMithos," + StaticText "Antlason Widowz, YaGirlJuniper" StaticText " " StaticText "$STING_CTHANK", "White" StaticText "KynikossDragonn, Raffine52, The Cutting Room Floor" diff --git a/modeldef.impaler b/modeldef.impaler index e03ea37..aeedcc1 100644 --- a/modeldef.impaler +++ b/modeldef.impaler @@ -25,8 +25,8 @@ Model "ImpalerBurstBolt" { Path "models" Model 0 "PBolt_d.3d" - Offset 5.0125 0 0 - Scale 0.050125 0.1025 0.1025 + Offset 5.0625 0 0 + Scale 0.050625 0.10125 0.10125 AngleOffset 90 DONTCULLBACKFACES USEACTORPITCH diff --git a/shaders/glsl/95Bg.fp b/shaders/glsl/95Bg.fp index d873326..e08f890 100644 --- a/shaders/glsl/95Bg.fp +++ b/shaders/glsl/95Bg.fp @@ -1,11 +1,11 @@ -vec4 ProcessTexel() +void SetupMaterial( inout Material mat ) { const vec3 fadecol = vec3(.9,.1,.2); vec2 coord = vTexCoord.st+vec2(timer*.02,0.); - coord = fract(coord); vec3 base = getTexel(coord).rgb; float dist = abs(vTexCoord.s-.5)*2.; vec3 col = mix(vec3(1.),fadecol,vec3(min(1.,dist*1.3))); col = mix(col,vec3(0.),vec3(min(1.,dist))); - return vec4(base*col,1.); + mat.Base = vec4(base*col,1.); + mat.Normal = ApplyNormalMap(vTexCoord.st); } diff --git a/shaders/glsl/96Bg.fp b/shaders/glsl/96Bg.fp index 803394d..70b165a 100644 --- a/shaders/glsl/96Bg.fp +++ b/shaders/glsl/96Bg.fp @@ -1,22 +1,23 @@ -vec4 ProcessTexel() +void SetupMaterial( inout Material mat ) { vec2 uv = vTexCoord.st; uv.x += 1.; float ang = timer*.05; vec2 uv2 = vec2(uv.x*cos(ang)-uv.y*sin(ang),uv.y*cos(ang)+uv.x*sin(ang))*1.3; - vec3 col = getTexel(fract(uv2)).rgb; + vec3 col = getTexel(uv2).rgb; uv.y -= 2.; ang = timer*.03; uv2 = vec2(uv.x*cos(ang)-uv.y*sin(ang),uv.y*cos(ang)+uv.x*sin(ang))*1.5; - col += getTexel(fract(uv2)).rgb; + col += getTexel(uv2).rgb; uv.x -= 3.; ang = timer*.04; uv2 = vec2(uv.x*cos(ang)-uv.y*sin(ang),uv.y*cos(ang)+uv.x*sin(ang))*1.6; - col += getTexel(fract(uv2)).rgb; + col += getTexel(uv2).rgb; uv.y += 4.; ang = timer*.02; uv2 = vec2(uv.x*cos(ang)-uv.y*sin(ang),uv.y*cos(ang)+uv.x*sin(ang))*1.2; - col += getTexel(fract(uv2)).rgb; + col += getTexel(uv2).rgb; col *= .25; - return vec4(col,1.); + mat.Base = vec4(col,1.); + mat.Normal = ApplyNormalMap(vTexCoord.st); } diff --git a/shaders/glsl/97Bg.fp b/shaders/glsl/97Bg.fp index 0227f41..e269203 100644 --- a/shaders/glsl/97Bg.fp +++ b/shaders/glsl/97Bg.fp @@ -1,4 +1,4 @@ -vec4 ProcessTexel() +void SetupMaterial( inout Material mat ) { vec2 ccoord = vTexCoord.st-vec2(.5); if ( ccoord.y < 0. ) ccoord.x *= -1.; @@ -8,16 +8,14 @@ vec4 ProcessTexel() vec2 coord; vec3 col = vec3(0.); coord = proj*.142536+vec2(-.3,-1.)*timer*.0925436; - coord = fract(coord); col += getTexel(coord).rgb; coord = proj*.123234+vec2(0.,-1.)*timer*.092346; - coord = fract(coord); col += getTexel(coord).rgb; coord = proj*.145463+vec2(.3,-1.)*timer*.093242; - coord = fract(coord); col += getTexel(coord).rgb; col *= vec3(1.2,.4,.8); col += vec3(.9,.7,1.6)*pow(max(1.2-abs(ccoord.y)*2.4,0.),6.); col = clamp(col,vec3(0.),vec3(1.)); - return vec4(col,1.); + mat.Base = vec4(col,1.); + mat.Normal = ApplyNormalMap(vTexCoord.st); } diff --git a/shaders/glsl/AsmdBeam.fp b/shaders/glsl/AsmdBeam.fp index b4a1576..e066897 100644 --- a/shaders/glsl/AsmdBeam.fp +++ b/shaders/glsl/AsmdBeam.fp @@ -33,7 +33,7 @@ float fbm(vec2 uv) return f; } -vec4 ProcessTexel() +void SetupMaterial( inout Material mat ) { vec2 uv = vTexCoord.st; uv.y = 1.0-uv.y; @@ -47,5 +47,6 @@ vec4 ProcessTexel() c1=clamp(c1,0.,1.); vec3 col = vec3(c1*c1*c1*c1, 1.2*c1*c1*c1, 2.2*c1*c1); float a = clamp(c * (1.-pow(uv.y,3.)),0.,1.); - return pow(getTexel(vTexCoord.st),vec4(2.))+vec4(mix(vec3(0.),col,a),0.0); + mat.Base = pow(getTexel(vTexCoord.st),vec4(2.))+vec4(mix(vec3(0.),col,a),0.0); + mat.Normal = ApplyNormalMap(vTexCoord.st); } diff --git a/shaders/glsl/AsmdPBeam.fp b/shaders/glsl/AsmdPBeam.fp index d776a92..88a7a07 100644 --- a/shaders/glsl/AsmdPBeam.fp +++ b/shaders/glsl/AsmdPBeam.fp @@ -33,7 +33,7 @@ float fbm(vec2 uv) return f; } -vec4 ProcessTexel() +void SetupMaterial( inout Material mat ) { vec2 uv = vTexCoord.st; uv.y = 1.0-uv.y; @@ -47,5 +47,6 @@ vec4 ProcessTexel() c1=clamp(c1,0.,1.); vec3 col = vec3(1.8*c1*c1*c1, 1.2*c1*c1*c1*c1, 2.2*c1*c1); float a = clamp(c * (1.-pow(uv.y,3.)),0.,1.); - return pow(getTexel(vTexCoord.st),vec4(2.))+vec4(mix(vec3(0.),col,a),0.0); + mat.Base = pow(getTexel(vTexCoord.st),vec4(2.))+vec4(mix(vec3(0.),col,a),0.0); + mat.Normal = ApplyNormalMap(vTexCoord.st); } diff --git a/shaders/glsl/AsmdSBeam.fp b/shaders/glsl/AsmdSBeam.fp index 2fc664e..19adb8b 100644 --- a/shaders/glsl/AsmdSBeam.fp +++ b/shaders/glsl/AsmdSBeam.fp @@ -33,7 +33,7 @@ float fbm(vec2 uv) return f; } -vec4 ProcessTexel() +void SetupMaterial( inout Material mat ) { vec2 uv = vTexCoord.st; uv.y = 1.0-uv.y; @@ -47,5 +47,6 @@ vec4 ProcessTexel() c1=clamp(c1,0.,1.); vec3 col = vec3(2.5*c1*c1, 1.2*c1*c1*c1, c1*c1*c1*c1*c1*c1); float a = clamp(c * (1.-pow(uv.y,3.)),0.,1.); - return pow(getTexel(vTexCoord.st),vec4(2.))+vec4(mix(vec3(0.),col,a),0.0); + mat.Base = pow(getTexel(vTexCoord.st),vec4(2.))+vec4(mix(vec3(0.),col,a),0.0); + mat.Normal = ApplyNormalMap(vTexCoord.st); } diff --git a/shaders/glsl/ElecFX.fp b/shaders/glsl/ElecFX.fp index b8f1dbb..94f5e2c 100644 --- a/shaders/glsl/ElecFX.fp +++ b/shaders/glsl/ElecFX.fp @@ -1,4 +1,4 @@ -vec4 ProcessTexel() +void SetupMaterial( inout Material mat ) { vec2 uv = vTexCoord.st; uv.x += 1.; @@ -18,5 +18,6 @@ vec4 ProcessTexel() uv2 = vec2(uv.x*cos(ang)-uv.y*sin(ang),uv.y*cos(ang)+uv.x*sin(ang))*1.2; col += getTexel(fract(uv2)); col *= .5; - return col; + mat.Base = col; + mat.Normal = ApplyNormalMap(vTexCoord.st); } diff --git a/shaders/glsl/FlametFX.fp b/shaders/glsl/FlametFX.fp index 9b05c48..120dd51 100644 --- a/shaders/glsl/FlametFX.fp +++ b/shaders/glsl/FlametFX.fp @@ -33,7 +33,7 @@ float fbm(vec2 uv) return f; } -vec4 ProcessTexel() +void SetupMaterial( inout Material mat ) { vec2 uv = vTexCoord.st; uv.y = 1.0-uv.y; @@ -46,5 +46,6 @@ vec4 ProcessTexel() float c1 = n * c * (1.5-pow(1.25*uv.y,4.)); c1=clamp(c1,0.,1.); vec3 col = vec3(c1*c1*c1*c1,1.2*c1*c1*c1,1.7*c1*c1); - return vec4(col,1.0); + mat.Base = vec4(col,1.0); + mat.Normal = ApplyNormalMap(vTexCoord.st); } diff --git a/shaders/glsl/FlareFX.fp b/shaders/glsl/FlareFX.fp index b9f52df..b09c990 100644 --- a/shaders/glsl/FlareFX.fp +++ b/shaders/glsl/FlareFX.fp @@ -33,7 +33,7 @@ float fbm(vec2 uv) return f; } -vec4 ProcessTexel() +void SetupMaterial( inout Material mat ) { vec2 uv = vTexCoord.st; uv.y = 1.0-uv.y; @@ -48,5 +48,6 @@ vec4 ProcessTexel() c1=clamp(c1,0.,1.); vec3 col = vec3(1.5*c1, c1*c1*c1, c1*c1*c1*c1*c1*c1); float a = clamp(c * (1.-pow(uv.y,3.)),0.,1.); - return vec4( mix(vec3(0.),col,a), 1.0); + mat.Base = vec4( mix(vec3(0.),col,a), 1.0); + mat.Normal = ApplyNormalMap(vTexCoord.st); } \ No newline at end of file diff --git a/shaders/glsl/Menu2.fp b/shaders/glsl/Menu2.fp index 4a56341..4099bbe 100644 --- a/shaders/glsl/Menu2.fp +++ b/shaders/glsl/Menu2.fp @@ -25,7 +25,7 @@ vec2 hash22(vec2 p) return fract((p3.xx+p3.yz)*p3.zy); } -vec4 ProcessTexel() +void SetupMaterial( inout Material mat ) { vec2 resolution = vec2(3.,6.); vec2 uv = vTexCoord.st*resolution; @@ -54,5 +54,6 @@ vec4 ProcessTexel() vec3 n = vec3(dFdx(circles), dFdy(circles), 0.); n.z = sqrt(1. - dot(n.xy, n.xy)); vec3 color = getTexel(uv/resolution - intensity*n.xy).rgb + 5.*pow(clamp(dot(n, normalize(vec3(1., 0.7, 0.5))), 0., 1.), 6.); - return vec4(color, 1.0); + mat.Base = vec4(color, 1.0); + mat.Normal = ApplyNormalMap(vTexCoord.st); } \ No newline at end of file diff --git a/shaders/glsl/MenuBarrier.fp b/shaders/glsl/MenuBarrier.fp index 202c9a9..1d34b9d 100644 --- a/shaders/glsl/MenuBarrier.fp +++ b/shaders/glsl/MenuBarrier.fp @@ -33,7 +33,7 @@ float fbm(vec2 uv) return f; } -vec4 ProcessTexel() +void SetupMaterial( inout Material mat ) { vec2 uv = vTexCoord.st; uv.y = 1.0-uv.y; @@ -48,5 +48,6 @@ vec4 ProcessTexel() c1=clamp(c1,0.,1.); vec3 col = vec3(c1*c1*c1, 1.5*c1, c1*c1*c1*c1*c1*c1); float a = clamp(c * (1.-pow(uv.y,3.)),0.,1.); - return vec4( mix(vec3(0.),col,a), 1.0); + mat.Base = vec4( mix(vec3(0.),col,a), 1.0); + mat.Normal = ApplyNormalMap(vTexCoord.st); } \ No newline at end of file diff --git a/shaders/glsl/MeshEnviroMapMasked.fp b/shaders/glsl/MeshEnviroMapMasked.fp index 02356bc..990b619 100644 --- a/shaders/glsl/MeshEnviroMapMasked.fp +++ b/shaders/glsl/MeshEnviroMapMasked.fp @@ -1,9 +1,10 @@ // imitation of the Unreal Engine 1.x bMeshEnviroMap effect, not 1:1 but gets close -vec4 ProcessTexel() +void SetupMaterial( inout Material mat ) { vec4 base = getTexel(vTexCoord.st); float mask = texture(masktex,vTexCoord.st).x; vec3 eyedir = normalize(uCameraPos.xyz-pixelpos.xyz); vec3 norm = reflect(eyedir,normalize(vWorldNormal.xyz)); - return vec4(base.rgb+texture(envtex,norm.xz*.5+.5).rgb*mask,base.a); + mat.Base = vec4(base.rgb+texture(envtex,norm.xz*.5+.5).rgb*mask,base.a); + mat.Normal = ApplyNormalMap(vTexCoord.st); } diff --git a/shaders/glsl/MeshEnviroMapMasked_AmbientGlow.fp b/shaders/glsl/MeshEnviroMapMasked_AmbientGlow.fp index 556cf54..c5316ae 100644 --- a/shaders/glsl/MeshEnviroMapMasked_AmbientGlow.fp +++ b/shaders/glsl/MeshEnviroMapMasked_AmbientGlow.fp @@ -1,32 +1,16 @@ -// imitation of the Unreal Engine 1.x ambient glow effect -vec4 ProcessLight( vec4 color ) -{ - vec2 gs = texture(ambglow,vec2(.5)).xy; - if ( gs.x > .5 ) return color; - if ( gs.y > .5 ) - { - float glow = max(0.,sin(timer*4.)-.5); - return vec4(min(color.rgb+vec3(glow),1.),color.a); - } - float glow = .25+.2*sin(timer*8.); - return vec4(min(color.rgb+vec3(glow),1.),color.a); -} - // imitation of the Unreal Engine 1.x bMeshEnviroMap effect, not 1:1 but gets close +// + +// imitation of the Unreal Engine 1.x ambient glow effect // with the addition of a mask for blending the environment map with the base texture -vec4 ProcessTexel() +void SetupMaterial( inout Material mat ) { vec4 base = getTexel(vTexCoord.st); float mask = texture(masktex,vTexCoord.st).x; vec3 eyedir = normalize(uCameraPos.xyz-pixelpos.xyz); vec3 norm = reflect(eyedir,normalize(vWorldNormal.xyz)); - vec2 gs = texture(ambglow,vec2(.5)).xy; - if ( gs.x > .5 ) return vec4(base.rgb+texture(envtex,norm.xz*.5+.5).rgb*mask,base.a); - if ( gs.y > .5 ) - { - float glow = max(0.,sin(timer*4.)-.5); - vec3 col = base.rgb+texture(envtex,norm.xz*.5+.5).rgb*mask; - return vec4(min(col+vec3(glow),1.),base.a); - } - return vec4(base.rgb+texture(envtex,norm.xz*.5+.5).rgb*mask,base.a); + mat.Base = vec4(base.rgb+texture(envtex,norm.xz*.5+.5).rgb*mask,base.a); + float glow = .25+.2*sin(timer*8.); + mat.Bright = vec4(vec3(glow),1.); + mat.Normal = ApplyNormalMap(vTexCoord.st); + mat.Normal = ApplyNormalMap(vTexCoord.st); } diff --git a/shaders/glsl/PowerUp.fp b/shaders/glsl/PowerUp.fp index 691bbe9..39cded0 100644 --- a/shaders/glsl/PowerUp.fp +++ b/shaders/glsl/PowerUp.fp @@ -10,10 +10,11 @@ vec3 bolt( in vec2 uv, in float speed, in float freq ) return col; } -vec4 ProcessTexel() +void SetupMaterial( inout Material mat ) { vec3 col = bolt(vTexCoord.st,2.53534,0.21); col += bolt(vTexCoord.st,2.64563,0.32); col += bolt(vTexCoord.st,2.73425,0.43); - return vec4(col,1.); + mat.Base = vec4(col,1.); + mat.Normal = ApplyNormalMap(vTexCoord.st); } diff --git a/shaders/glsl/ShockCore.fp b/shaders/glsl/ShockCore.fp index ee714b4..d214c3f 100644 --- a/shaders/glsl/ShockCore.fp +++ b/shaders/glsl/ShockCore.fp @@ -10,10 +10,11 @@ vec3 bolt( in vec2 uv, in float speed, in float freq ) return col; } -vec4 ProcessTexel() +void SetupMaterial( inout Material mat ) { vec3 col = bolt(vTexCoord.st,1.53534,0.51); col += bolt(vTexCoord.st,1.64563,0.62); col += bolt(vTexCoord.st,1.73425,0.73); - return vec4(col,1.); + mat.Base = vec4(col,1.); + mat.Normal = ApplyNormalMap(vTexCoord.st); } diff --git a/shaders/glsl/ShockSm.fp b/shaders/glsl/ShockSm.fp index 4670e9a..ea9ba98 100644 --- a/shaders/glsl/ShockSm.fp +++ b/shaders/glsl/ShockSm.fp @@ -1,9 +1,10 @@ -vec4 ProcessTexel() +void SetupMaterial( inout Material mat ) { vec3 base = getTexel(vTexCoord.st).rgb; vec2 scroll = vTexCoord.st*.5+vec2(.2,.5)*timer; float smk = texture(smoketex,scroll).x; scroll = vTexCoord.st*.9+vec2(-.2,.4)*timer; smk *= texture(smoketex,scroll).x; - return vec4(base*smk,1.); + mat.Base = vec4(base*smk,1.); + mat.Normal = ApplyNormalMap(vTexCoord.st); } diff --git a/shaders/glsl/UnBg.fp b/shaders/glsl/UnBg.fp index 3b97d31..a8b1498 100644 --- a/shaders/glsl/UnBg.fp +++ b/shaders/glsl/UnBg.fp @@ -1,10 +1,10 @@ -vec4 ProcessTexel() +void SetupMaterial( inout Material mat ) { vec2 coord = vTexCoord.st*4.-vec2(0.,timer*0.1); - coord = fract(coord); vec3 base = getTexel(coord).rgb; float dist = pow(distance(vec2(.5),vTexCoord.st)*1.4,.5); vec3 col = mix(vec3(1.,.9,.7),vec3(0.),min(1.,dist)); col *= 1.-vTexCoord.t*.8; - return vec4(base*col,1.); + mat.Base = vec4(base*col,1.); + mat.Normal = ApplyNormalMap(vTexCoord.st); } diff --git a/zscript.txt b/zscript.txt index 606d7f5..f824ed6 100644 --- a/zscript.txt +++ b/zscript.txt @@ -3,8 +3,8 @@ version "4.11" /* Doomreal add-on codebase - All code here is (C)2018-2023 Marisa the Magician, UnSX Team, and is - released under the terms of the MIT license (see LICENSE.txt). + (C)2018-2025 Marisa the Magician, UnSX Team. + released under the MIT license (see LICENSE.txt). No proprietary code by Epic Games has been copied, with or without modification, in the process of developing this project. diff --git a/zscript/impaler.zsc b/zscript/impaler.zsc index 6ce7cb7..0b39528 100644 --- a/zscript/impaler.zsc +++ b/zscript/impaler.zsc @@ -167,7 +167,7 @@ Class ImpalerBurstBolt : Actor Vector3 x, y, z; [x, y, z] = dt_Utility.GetAxes(angle,pitch,roll); t.ShootThroughList.Clear(); - t.Trace(pos,CurSector,x,11.125,0); + t.Trace(pos,CurSector,x,10.125,0); for ( int i=0; i