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

From Valve Developer Community
Jump to navigation Jump to search
No edit summary
No edit summary
 
Line 2: Line 2:


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
};