From e90a6857e87e3f39edb2ae0dee611719de7e578f Mon Sep 17 00:00:00 2001 From: MotoLegacy Date: Sun, 24 Nov 2024 17:59:36 -0800 Subject: [PATCH] Add page on Alpha Transparency --- markdown/landing/index.md | 3 ++- markdown/mapping/alpha-transparency.md | 20 ++++++++++++++++++++ markdown/res/images/alpha_texture_spec.webp | Bin 0 -> 2652 bytes markdown/res/images/mystery_glow.webp | Bin 0 -> 13298 bytes markdown/res/images/mystery_glow_gimp.webp | Bin 0 -> 5476 bytes 5 files changed, 22 insertions(+), 1 deletion(-) create mode 100644 markdown/mapping/alpha-transparency.md create mode 100644 markdown/res/images/alpha_texture_spec.webp create mode 100644 markdown/res/images/mystery_glow.webp create mode 100644 markdown/res/images/mystery_glow_gimp.webp diff --git a/markdown/landing/index.md b/markdown/landing/index.md index 8b305c2..37675c4 100644 --- a/markdown/landing/index.md +++ b/markdown/landing/index.md @@ -32,7 +32,7 @@ At this current moment, no marked-stable builds of Nazi Zombies: Portable are ma ## Core Documentation -Core documents contain information about Nazi Zombies: Portable's internal design. They are not specifically relevant to custom content creators, though overlap will be present for map features that interact with NZ:P's QuakeC. +Core documents contain information about Nazi Zombies: Portable's internal design. They may not be specifically relevant to custom content creators, though overlap will be present for map features that interact with NZ:P's QuakeC or for specialty features. - [Dedicated Server](../internal/dedicated-server.md) - [Weapon IDs](../internal/weapon-ids.md) @@ -47,6 +47,7 @@ Documentation and by extension headers/categories are a work in progress. - [External References](../mapping/external-references.md) - [Customizing Mystery Box Weapons](../mapping/mbox2-format.md) - [Advanced Model Exporting](../mapping/model-exporting.md) +- [Model Alpha Transparency](../mapping/alpha-transparency.md) ### Map Entities - [Barricades](../mapping/barricades.md) diff --git a/markdown/mapping/alpha-transparency.md b/markdown/mapping/alpha-transparency.md new file mode 100644 index 0000000..b073386 --- /dev/null +++ b/markdown/mapping/alpha-transparency.md @@ -0,0 +1,20 @@ +% Model Alpha Transparency - NZ:P Mapping Documentation +# Model Alpha Transparency + +## Introduction + +![The Mystery Box Glow is a model using Alpha Transparency](../res/images/mystery_glow.webp) + +_Nazi Zombies: Portable_ has it's own unique method of enabling alpha blending for models, equivalent to the `GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA` OpenGL blend mode. This process is supported by all platforms and the set up is identical for all of them. + +## Texture Format + +![The Mystery Box Glow texture in GIMP](../res/images/mystery_glow_gimp.webp) + +`.TGA` formated textures are the only ones supported for this method, and they can safely be exported as 32 bit RGBA. + +## Naming Convention + +![The Mystery Box Glow file name](../res/images/alpha_texture_spec.webp) + +The texture follows the same naming convention as standard Quake external textures. That being `model/path/your_model.mdl_.tga`. However, the model name itself has a unique identifier. The last character of the name (*before* the file extension) must be `$`. What this does internally is redirect the model renderer to a different pipeline that sets the given blend modes on non-FTE, and creates a Quake III shader inside of FTE in the `scripts/` path on first launch. \ No newline at end of file diff --git a/markdown/res/images/alpha_texture_spec.webp b/markdown/res/images/alpha_texture_spec.webp new file mode 100644 index 0000000000000000000000000000000000000000..1b7abe772c64229254a3ff7d39a8515d3392d9c6 GIT binary patch literal 2652 zcmZ{mXH-+!7RL_)13^NOE--*n4802yYNWT&q^Y47X_2Oa5;_VJwci(;Yx*x8ssgaRA3jmIW2IzBW4JR4` zQCf}yU*}p{RRB2^;zz)*4-?(GTWEr6WnhDqG~Z%>tDYANi1I8VV<-T3N6Jwv7zC# zoO|I&T` z#X*4)htEBX!|qwVgB|Q>D>E&HfH6=8r-9A?@u>dvpg;(~f@>fY_yb?y2f}Fs)~6|0 z5D2_!Yzl&bCy)oSG*$+Rv{XHuE$v=f{F>P>4QB(unKjzs(l5=S2!NJU0N}d6G_h|0 zz>)#zqQ|<2y8kS9c%j>72=h@<{<)_+`U(KXdmSp&pApI+m)YAxh8iBKA^s4l;}73jP#yilXpcm!go+ zMvkssmLFl7Woi=XqP{%X*~cwknM>)?9dFKnSg8QdPd$C$xuLSZvx<@A02I$%XdAbP zc}*I-0oM(ssO*G&W8Y=(R(Qxh^MHVF!WkSqJb?Bp$**q70o`;+3KBRd*fypxLC_1# z1b!A5OG(|H*<;^U*nBgI>B8qjkEz{MEh=fZAAD3SBZiEF*ih=RW_oq9MD%m<~LfQG?ikWO<8E ztTmZVzr{zCF`n;6@9<`~lP%S^8M$TKF8|)>(BLF$!eEa`8@ynN152t^y1z)aoDENeT@+Sj=3u)K``pz~ts*&6 zo2a$4sK0mVAp@sv%8iYeoQsq=c$fM1T-R%In!;M@QL|aDZF!*JHgye=gyh z6QbpQ6t6s$zEzRu7SLjHy*E^8(!R@+$JogGCv>YLBS!eeHFkA`OYc*&*Cun3?SiZ@OU6a*UVp_t z3~7_EoAhdi?%BOG2vxbur_zl33^lz;$cssm?&qan`!3>Hf2FTe@}U)buY5+3I|S-TMs}S=o0($`ce3LDIe=&sR>}zGZtG^%VYSZ5B2(2(8o% zXOQNp_vAu8%3J9yyIz@z70<{8BwpY&G)v*b^@BamO0;rDV_+^z{`^&)FD~8_BSt_~1*~?yMWq&@iscDA^Cc6yLcf?1~0m;nH!FlHa>KKt+tq`L81s(RL<{7Q(r}(uj#4N|Y;C=uG{_4z>QdTt ze>IoVoT4z{lWFN@8|@HK$s^a(p2Y2?_r^`?FM-Cpn_2}p;v|Ls-5+eae&o#;*#rkI zGJeNC$#C3E^v?}KNmEo0b?~qH^z&^Lu9}aE&Q|dO0rflBcS#`&;Pg&iI)R9Dy{~dG z>!FfCVje$lox{WBrq)~ZL~Qo7^6uy3xSN%Y@}#cJ(Kk8HloEv3! z(r3&)*ZIRDxFe5O`FwryKKST~&bxEW5U~*9+fwbjRJ(YQL)=Wrp73SRhH>WzUC$Kn zwVTPZf`TEGt+%~xclV`a#v^pR(B)kiG7GV+te_}PCZSdSsu2awGTg4Tsm_4ea|lwO z6#NZ+eVxgF0L_!{IXb%=8IXY}6rBPMdVI;Pf`< zQeTK&{&=*rzh{AIZspTi36d!zzmbnAt`GAgD%K=@AigNHPPU=>$@}9>24NerS%CvB z*OY37OUZ7Dy-=;raJ)~Sl&Tq8PzH|bX;3!{zGcI%rW-^Tz(g=Hp)xhMGf1J%F9KGYfmzX<; XrhJ6$l_HEUfSe^lu9Q`ZTb&w+8)3Hnz@= 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 QC9%#lZEL}wf08KqAH-S$b^rhX literal 0 HcmV?d00001