Template:Archived page history/Xwad/en: Difference between revisions

From Valve Developer Community
Jump to navigation Jump to search
m (Multipage removal)
(Replaced content with "{{APH|Xwad}}")
Tag: Replaced
Line 1: Line 1:
 
{{APH|Xwad}}
[[Category:TODO Finish Multipage Removal Manually]]
{{LanguageBar}}
 
{{note|Most first-party games don't have a copy of this tool; the version of the tool found in the [steam://install/211 old "SourceSDK" depot] can still be used for any branch (all 4 included versions of xwad.exe are the same).}}
A copy of this [[command-line]] tool can be found in following folder: {{file|common\SourceSDK\bin\<nowiki><</nowiki>branchname<nowiki>></nowiki>\bin\xwad|exe}}. This tool can convert [[WAD]], [[Wikipedia:Windows bitmap|BMP]], and [[SPR]] files to [[TGA]] and accompanied [[VMT]] files, as well as call [[vtex]] to generate associated [[VTF]] files.
 
After running XWAD and converting the textures to VTF, use the [[Convert WAD to VMT...]] button in {{hammer4|4.1}}'s File menu {{not|{{hammer++}}}} to automatically add material paths and fix the scaling of previously non-power-of-two textures.
 
{{todo|The 28 June 2024 update to {{jb3|4}} includes a build of xwad with several bugfixes and extra features; document these properly. They include:
* Increases max resolution cap to allow textures up to 8192x8192.
* Add support for WAD2 format (using {{code|-palfile}} param to provide [[palette]], defaulting to Quake 1 palette).
* Fix processing of decals
* Extract sprite groups from SPR files
* Include approximate values for [[water (shader)|water]] fog in generated VMTs
}}
 
== Caveats ==
{{bug|Xwad always outputs pixels that used index 255 as transparent, even if they aren't flagged as such{{elaborate}}. Only textures that are flagged as transparent will have the transparent pixels [[$translucent#Filtering_Borders|modified to work better with texture filtering]].{{workaround|Convert the output folder(s) to BGRA8888 using {{vtfedit|2}}, then use {{vide|2|addtext='s}} batch VTF converter to convert the textures that should be opaque to BGR565, BGR888, or DXT1.
}} }}
{{modernImportant|Valve's Xwad does not support textures with more than 262144 pixels (ex: 512x512 resolution).<br>This is increased to 8192x8192 in {{jbep3}}'s Xwad.}}
 
== Syntax ==
{{stub}}
== Options ==
{{stub}}
=== Required ===
; {{code|-basedir <path>}}
: Location of [[gameinfo.txt]].
: If xwad is called from the {{path|materialsrc}} directory, then {{code|..}} will suffice.
 
; {{code|-wadfile <file>.wad}}
; {{code|-bmpfile <file>.bmp}}
; {{code|-sprfile <file>.spr}}
Convert a [[WAD]], [[BMP]], or [[SPR]], respectively. Accepts preceding file paths and wildcards.
 
=== Optional ===
; {{code|-transparent}}
: Flag input [[BMP]] files as having alphatest transparency. For [[WAD]] files, this happens automatically for {{code|{}}-prefixed textures, and for [[SPR]] file, this happens automatically if the sprite has its transparency mode set to alphatest.
: A texture flagged as transparent will have [[texel]]s using [[palette]] index 255 (the last color) [[$translucent#Filtering_Borders|dilated]] based upon surrounding opaque texels, and {{ent|$alphatest|1}} and {{ent|$alphatestreference|0.5}} added to the [[VMT]].
: Palette index 255 is always transparent in the output [[TGA]], but the underlying texels' colors are kept unless the texture is flagged as transparent.
 
; {{code|-decal}}
: Works differently in Valve's Xwad vs Jabroni Brawl's:
:* {{valve}} '''Do not use'''. Creates VMTs using {{ent|DecalModulate}} shader and {{ent|$alphatest}} parameter.
:: As this is not faithful to how GoldSrc decals work, {{wadmaker|2}} should be used to convert [[decals (GoldSrc)|decals]] instead (if necessary, using an [[image editor]] to pad all edges to the next power of two), and the VMTs created manually as {{ent|LightmappedGeneric}} with {{ent|$translucent|1}}, {{ent|$decal|1}}, and {{ent|$decalscale|1}}.
:* {{jbep3}} Treats the input texture as an IndexAlpha texture, with the palette index being used for full 8-bit translucency, and the last index being used to determine color. Creates VMTs using {{ent|$translucent|1}}, {{ent|$decal|1}}, and {{ent|$decalscale|1}}.
:: Implied when converting {{code|{}} textures if the input WAD is named decals.wad.
::{{confirm|Is this implied if converting IndexAlpha SPRs?}}
::{{warning|Due to how Xwad's Po2 resizing method works, non-power-of-two decals will be slightly larger when using [[infodecal]] in Source vs how it appeared in GoldSrc. If this is a noticeable issue, use {{wadmaker|2}} to convert the decals from their original format, then use an [[image editor]] to pad all edges to the next power of two.}}
: {{tip|For decals and IndexAlpha sprites, consider using A8 texture format and defining color in the VMT using {{ent|$color}}, as this retains the full original quality while being the same size as a DXT5 texture of the same resolution.}}
 
; {{code|-vmtparam <parameter> <value>}}
: Add the described material parameter to the VMTs of all converted textures.
: To add multiple parameters, use multiple {{mono|-vmtparam}} arguments.
: Despite what the readme says, this has nothing to do with {{vtex|2}}.
 
; {{code|-onlytex <texture>}}
: Only export the specified texture name.
 
; {{code|-palfile <file>.lmp}} {{jbep3|only}}
: What [[palette]] to use for WAD2 files (uses the vanilla {{quake|2}} palette by default).
: Expects a 768-byte array of 24-bit RGB values ("pallete.lmp"); can be extracted from several formats using {{quakewiki|Fimg}}. Can also be taken from a 8-bit paletted [[PCX]] file by deleting all but the last 768 bytes in a hex editor.
: {{tip|For {{Quake|2|nt=0}} textures, it is possible to generate accurate [[$selfillummask]] textures based upon fullbrights by using palette with the last 32 indices set as white, and the rest of the indices set as black. A preconfigured palette for this purpose can be found [https://files.gamebanana.com/bitpit/q1_selfillum_palette.lmp here (direct download)].<br>This should ''not'' be done for {{hexen2|2}} textures, as Hexen II does not use fullbrights.}}
 
== Readme ==
Help from xwad run without any parameters (some information is inaccurate and/or misleading):
{{codeblock|<nowiki>
[-AutoDir]
Automatically detects -basedir and -wadfile or -bmpfile based
on the last parameter (it must be a WAD file or a BMP file.
[-decal]
Creates VMTs for decals and creates VMTs for model decals.
[-onlytex <tex name>]
[-shader <shader name>]
Specify the shader to use in the VMT file (default
is LightmappedGeneric.
[-vtex]
If -vtex is specified, then it calls vtex on each newly-created
.TGA file.
[-vmtparam <ParamName> <ParamValue>]
if -vtex was specified, passes the parameters to that process.
Used to add parameters to the generated .vmt file
-BaseDir <basedir>
-game <basedir>
Specifies where the root mod directory is.
-WadFile <wildcard>
-wadfile will make (power-of-2) TGAs, VTFs, and VMTs for each
texture in the WAD. It will also place them under a directory
with the name of the WAD. In addition, it will create
.resizeinfo files in the materials directory if it has to
resize the texture. Then Hammer's File->WAD To Material
command will use them to rescale texture coordinates.
-bmpfile <wildcard>
-bmpfile acts like -WadFile but for BMP files, and it'll place
them in the root materials directory.
-sprfile <wildcard>
Acts like -bmpfile, but ports a sprite.
-Transparent (BMP files only)
If this is set, then it will treat palette index 255 as a
transparent pixel.
-SubDir <subdirectory>
-SubDir tells it what directory under materials to place the
final art. If using a WAD file, then it will automatically
use the WAD filename if no -SubDir is specified.
-Quiet
Don't print out anything or wait for a keypress on exit.
ex: xwad.exe -vtex -BaseDir c:\hl2\dod -WadFile c:\hl1\dod\*.wad
ex: xwad.exe -vtex -BaseDir c:\hl2\dod -bmpfile test.bmp -SubDir models\props
ex: xwad.exe -vtex -vmtparam $ignorez 1 -BaseDir c:\hl2\dod -sprfile test.spr -SubDir sprites\props
</nowiki>}}
{{SDKTools}}
 
[[Category:Material System]]

Revision as of 03:41, 13 July 2024

Note.pngNote:Archived rest of page history of page Xwad
Icon-Important.pngImportant:These pages are linked often from page history logs so Special:WhatLinksHere will not show anything.