BLP文件格式

长平狐 发布于 2012/11/12 11:50
阅读 378
收藏 0

.BLP files are texture files used in games made by Blizzard Entertainment, also used in other games like Neverwinter Nights. While Blizzard provides an Interface AddOn Kit for extracting the user interface files from the World of Warcraft .MPQs, they do not provide a utility to view the .BLP files contained within. Also, .BLP graphics were used for Warcraft III, and are also stored within .MPQs.

Format
The file starts with a proprietary header, followed by the texture data. The texture data are typically stored in DXT1, DXT3, uncompressed or possibly DXT5. It is important to note that the size of the image is a power of 2.

Converters

Several third party applications exist that can convert .BLP files to .tga files and vice versa. Some of the programs were made for Warcraft III textures, however, and don't work for all Blizzard game textures. These converters have become very important to the Warcraft III modding community, and have been the doorway to the vast amount of customised skins available for download.

Specification

Note that all types are little-endian.
Only the BLP2 format is shown here; for the BLP1 format, refer to BLP version 1 format specifications

BLP2 Format

struct BLP2Header
{
    FourCC      ID; // Always 'BLP2' 
    UInt32      Type;
    UInt8       Encoding;
    UInt8       AlphaDepth;
    UInt8       AlphaEncoding;
    UInt8       HasMips;
    UInt32      Width;
    UInt32      Height;
    UInt32      Offsets[16];
    UInt32      Lengths[16];
    RGBAColor8  Palette[256];
};

Type
    0: JPEG compression
    1: Uncompressed or DirectX compression

Encoding
    1: Uncompressed
    2: DirectX compression

AlphaDepth
    0: No alpha channel
    1: 1 bit alpha
    8: 8 bit alpha

AlphaEncoding
    0: DXT1 alpha (0 or 1 bit alpha)
    1: DXT2/3 alpha (4 bit alpha)
    7: DXT4/5 alpha (interpolated alpha)

HasMips
    0: No mip levels
    1: Mip levels present (the number of levels is determined by the image size)

Width, Height: Dimensions of the image in pixels (always a power of two)

Offsets[0]: Offset from the start of the file to the image data
Lengths[0]: Length in bytes of the image data
Palette: 4-byte BGRA color values for paletted textures (this field is present regardless of whether the texture actually uses palettes


Type 1 Encoding 1 AlphaDepth 0 (uncompressed paletted image with no alpha)

Each byte of the image data is an index into Palette which contains the actual RGB value for the pixel. Although the palette entries are 32-bits, the alpha value of each Palette entry may contain garbage and should be discarded.

Type 1 Encoding 1 AlphaDepth 1 (uncompressed paletted image with 1-bit alpha)

This is the same as Type 1 Encoding 1 AlphaDepth 0 except that immediately following the index array is a second image array containing 1-bit alpha values for each pixel. The first byte of the array is for pixels 0 through 7, the second byte for pixels 8 through 15 and so on. Bit 0 of each byte corresponds to the first pixel (leftmost) in the group, bit 7 to the rightmost. A set bit indicates the pixel is opaque while a zero bit indicates a transparent pixel.

Type 1 Encoding 1 AlphaDepth 8 (uncompressed paletted image with 8-bit alpha)

This is the same as Type 1 Encoding 1 AlphaDepth 0 except that immediately following the index array is a second image array containing the actual 8-bit alpha values for each pixel. This second array starts at BLP2Header.Offset[0] + BLP2Header.Width * BLP2Header.Height.

Type 1 Encoding 2 AlphaDepth 0 (DXT1 no alpha)

The image data are formatted using DXT1 compression with no alpha channel.

Type 1 Encoding 2 AlphaDepth 1 (DXT1 one bit alpha)

The image data are formatted using DXT1 compression with a one-bit alpha channel.

Type 1 Encoding 2 AlphaDepth 8 AlphaEncoding 1(DXT3)

The image data are formatted using DXT3 compression.

Type 1 Encoding 2 AlphaDepth 8 AlphaEncoding 7(DXT5)

The image data are formatted using DXT5 compression.

External links


原文链接:http://blog.csdn.net/xoyojank/article/details/3433037
加载中
返回顶部
顶部