User:Chipsnapper2/HL2 Xbox Research/Texture Research: Difference between revisions

From Valve Developer Community
Jump to navigation Jump to search
(Created page with "HL2 Xbox doesn't use VTF files for materials - instead it uses the XTF file format. VTFEdit cannot open these files. All VMTs are identical to those found in Source 2004 b...")
 
No edit summary
 
(One intermediate revision by the same user not shown)
Line 1: Line 1:
HL2 Xbox doesn't use VTF files for materials - instead it uses the XTF file format. [[VTFEdit]] cannot open these files.
HL2 Xbox doesn't use VTF files for materials - instead it uses the XTF file format. [[VTFEdit]] cannot open these files.
All VMTs are identical to those found in Source 2004 builds of HL2.
All VMTs are identical to those found in Source 2004 builds of HL2.
== XTF header ==
<source lang="cpp">
struct VTFFileBaseHeader_t
{
    char fileTypeString[4]; // "VTF" Valve texture file
    int version[2];        // version[0].version[1]
    int headerSize;
};
#define XTF_MAJOR_VERSION    5
#define XTF_MINOR_VERSION    0
struct XTFFileHeader_t : public VTFFileBaseHeader_t
{
    unsigned int    flags;
    unsigned short    width;                    // actual width
    unsigned short    height;                    // actual height
    unsigned short    depth;                    // always 1
    unsigned short    numFrames;
    unsigned short    preloadDataSize;        // exact size of preload data
    unsigned short    imageDataOffset;        // aligned to sector size
    Vector            reflectivity;            // Resides on 16 byte boundary!
    float            bumpScale;
    ImageFormat        imageFormat;
    unsigned char    lowResImageWidth;
    unsigned char    lowResImageHeight;
    unsigned char    fallbackImageWidth;
    unsigned char    fallbackImageHeight;
    unsigned char    mipSkipCount;            // used to resconstruct mapping dimensions
    unsigned char    pad;                    // for alignment
};
</source>

Latest revision as of 17:43, 10 June 2020

HL2 Xbox doesn't use VTF files for materials - instead it uses the XTF file format. VTFEdit cannot open these files.

All VMTs are identical to those found in Source 2004 builds of HL2.

XTF header

struct VTFFileBaseHeader_t
{
    char fileTypeString[4]; // "VTF" Valve texture file
    int version[2];         // version[0].version[1]
    int headerSize;
};

#define XTF_MAJOR_VERSION    5
#define XTF_MINOR_VERSION    0

struct XTFFileHeader_t : public VTFFileBaseHeader_t 
{
    unsigned int    flags;
    unsigned short    width;                    // actual width
    unsigned short    height;                    // actual height
    unsigned short    depth;                    // always 1
    unsigned short    numFrames;
    unsigned short    preloadDataSize;        // exact size of preload data
    unsigned short    imageDataOffset;        // aligned to sector size
    Vector            reflectivity;            // Resides on 16 byte boundary!
    float            bumpScale;
    ImageFormat        imageFormat;
    unsigned char    lowResImageWidth;
    unsigned char    lowResImageHeight;
    unsigned char    fallbackImageWidth;
    unsigned char    fallbackImageHeight;
    unsigned char    mipSkipCount;            // used to resconstruct mapping dimensions
    unsigned char    pad;                    // for alignment
};