texHeaders.bin File Format: Difference between revisions

From Bohemia Interactive Community
Jump to navigation Jump to search
m (→‎TexBody: textypes)
m (endofmips)
Line 3: Line 3:
TextHeader.bin is created by [[BI_Tools_2.5|Binpbo personal edition 2.5]] and greater.
TextHeader.bin is created by [[BI_Tools_2.5|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.
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==
==Conventions==
see [[Generic FileFormat Data Types]]
see [[Generic FileFormat Data Types]]
Line 23: Line 26:
   ulong          Always0;
   ulong          Always0;
   ulong          AlwaysDefault;      // 0xFFFFFFFF
   ulong          AlwaysDefault;      // 0xFFFFFFFF
   ulong          FlagBytes;         // 01 01 00 10 typical
   byteBool      OnOff[4];           // 01 01 00 01 typical
   ulong          SameCount;          // always == nMipmaps
   ulong          SameCount;          // always == nMipmaps
   ulong          TextureType;        // see below
   ulong          TextureType;        // see below
Line 29: Line 32:
   byte          Always1;
   byte          Always1;
   
   
   Asciiz       *PaaFile;           //"data\icons\m4a3_cco_ca.paa"
   Asciiz         PaaFile[];         //"data\icons\m4a3_cco_ca.paa"
                                     //"fnfal\data\fnfal_smdi.paa"
                                     //"fnfal\data\fnfal_smdi.paa"
   ulong          Flag;
   ulong          Flag;
   ulong          nMipmaps;
   ulong          nMipmaps;
   MipMap        MipMaps[nMipmaps];
   MipMap        MipMaps[nMipmaps];
   ushort        SomeShort
   ulong          EndOfMipMaps;       //offset in pax to last (dummy) mipmap
  ushort        AnotherShort;
  };
  };



Revision as of 06:05, 21 June 2011

Template:unsupported-doc

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          Always1;
 ulong          Always0;
 floats         AverageColor[r,g,b,a];//AVGCTAGG floating-point equivalent. Note that order is different
 bytes          AverageColor[b,g,r,a];//AVGCTAGG in PAx file 
 bytes          MaxColor[b,g,r,a];    //MAXCTAGG in PAx file
 ulong          Always0;
 ulong          AlwaysDefault;      // 0xFFFFFFFF
 byteBool       OnOff[4];           // 01 01 00 01 typical
 ulong          SameCount;          // always == nMipmaps
 ulong          TextureType;        // see below
 byte           Always1;
 byte           Always1;

 Asciiz         PaaFile[];          //"data\icons\m4a3_cco_ca.paa"
                                    //"fnfal\data\fnfal_smdi.paa"
 ulong          Flag;
 ulong          nMipmaps;
 MipMap         MipMaps[nMipmaps];
 ulong          EndOfMipMaps;       //offset in pax to last (dummy) mipmap
};
  • BIS have finally learned to use relative file addressing. This might be the precursor to a better future where we leave oops modelling nightmares behind.

Texture Type

values seen

  • 0 GREY
  • 4 RGB4
  • 6 DXT1
  • 10 DXT5

this value is repeated in each mipmap

Color float

anyfloat= anybyte/255.0;

mipmap

MipMap
{
 ushort width,ushort height;     //as per same mipmap in the pax
 ushort Always0;
 byte   Always3;
 byte   TextureType;             //same value as above
 ulong  dataOffset;              //OFFSTAGG in PAx file. position of mipmap data in pax file
};