texHeaders.bin File Format
Category: BIS File Formats
intro
TextHeader.bin is created by Binpbo personal edition 2.5 and greater. It is placed in the primary folder of the addon.pbo, and comprises of information from all pax files encountered in that addon from all it's possible data trees.
Information here has been gleaned from the very few texheaders in Arrowhead (approx 24) and won't necessarily be complete as a result.
Conventions
see Generic FileFormat Data Types
File Structure
struct TexHeader.bin
{
MimeType "0DHT" ; // NOT asciiz. '0' = 0x30. This is mimetype "TexHeaDer0"
ulong version; // 1
ulong nTextures; //
TexBody TexBodies[nTextures];
};
TexBody
TexBody
{
ulong nColorPallets; //always 1
ulong Pallet_ptr; //Always0 (there are none)
floats AverageColor[r,g,b,a];//AVGCTAGG floating-point equivalent.
bytes AverageColor[b,g,r,a];//AVGCTAGG in PAx file
bytes MaxColor[b,g,r,a]; //MAXCTAGG in PAx file
ulong clampflags; // always 0
ulong transparentColor; // always 0xFFFFFFFF
byteBool has_maxCtagg; // the MaxColor was set by the paa
isAlpha; // set if FLAGTAG=1: 'basic transparency'
isTransparent; // set if FLAGTAG=2: 'alpha channel is not interpolated'
isAlphaNonOpaque; // set if isalpha, AND AverageColor alpha <0x80
ulong nMipmaps; // always same as nMipmapsCopy below
ulong pax_format; // see below Dxt1,2,3 etc
byteBool littleEndian; // Always true;
byte isPaa; //file was a .paa not .pac
Asciiz PaaFile[]; // Relative to the file location of the texheader itself.
//"data\icons\m4a3_cco_ca.paa"
//"fnfal\data\fnfal_smdi.paa"
ulong pax_suffix_type; // _co, _ca, smdi, etc
ulong nMipmapsCopy; // same as nMipmaps above
MipMap MipMaps[nMipmaps]; // see below
ulong SizeOfPaxFile; //
};
===pax_format===(not all values found in a pax file)
0 Index Pallet (P8),
- Greyscale (AI88),
- RGB565,
- ARGB1555,
- ARGB4444,
- ARGB8888,
- DXT1
- DXT2
- DXT3,
- DXT4,
- DXT5
The same value is also repeated in each mipmap
===pax_suffix_type=== (not all values found in a pax file)
0 diffuse color, SRGB color space. the default for anything else
- diffuse color, linear color space: (_sky, _lco)
- detail texture, linear color space:(_detail,_cdt,_dt,_mco)
- normal map: (_nXXX)
- irradiance map
- Map with random values from interval <0.5, 1>
- tree crown calculation texture
- 'macro' object color, SRGB color space: (_mc)
- ambient shadow layer: (_as)
- Specular: amount of layer: (_sm, _smdi)
- dithering: texture
- detail specular: (_dtsmdi) amount of layer
- mask: (_mask) used for texture selection in the multi-shader
- Thermal Image: (_ti_ca) texture
Color float
anyfloat= anybyte/255.0;
- note the order of floats is reverse to the rgba equivalent
mipmap
MipMap
{
ushort width,height; //as per same mipmap in the pax
ushort Always0;
byte pax_format; //same value as above
byte Always3;
ulong dataOffset; //OFFSTAGG in PAx file. position of mipmap data in pax file
};