|
|
Line 1: |
Line 1: |
| {{OBD_File_Header | type=TXMP | prev=TXMB | next=TxtC | name=Texture Map | family=Generic | align=center}} | | {{OBD_File_Header | type=TXMP | prev=TXMB | next=TxtC | name=Texture Map | family=Generic | desc=If an object has a texture, it's probably a '''TXMP''' (the exceptions being environmental things like the skybox texture). A versatile bitmap format that allows for an optional alpha channel, TXMPs can come in 16-bit and 32-bit varieties and can also be compressed in a standard OpenGL format. Interestingly, TXMPs are also stored upside down. | align=center}} |
|
| |
|
|
| |
|
Revision as of 22:47, 27 August 2008
|
|
|
Offset |
Type |
Raw Hex |
Value |
Description
|
0x00 |
res_id |
01 1F 00 00 |
31 |
00031-rl_1.TXMP
|
0x04 |
lev_id |
01 00 00 06 |
3 |
level 3
|
0x08 |
char[128] |
rl_1 |
name of the texture; unused
|
0x88 |
int32 |
00 10 00 00 |
0x1000 |
options; possible option flags (from left to right):
- 0x01 00 00 00 - has mipmaps
- 0x04 00 00 00 - U wrapping disabled
- 0x08 00 00 00 - V wrapping disabled
- 0x10 00 00 00 - ignored
- 0x40 00 00 00 - animation order: play back to back (frames 0 to n then n-1 to 0)
- 0x80 00 00 00 - animation order: play in random order
- 0x00 01 00 00 - animation time: add local (particle) time (see below)
- 0x00 02 00 00 - has environment map texture
- 0x00 04 00 00 - additive alpha blending
- 0x00 10 00 00 - little endian data
- 0x00 40 00 00 - animation time: ignore game time (see below)
- 0x00 80 00 00 - effect: shield (blue)
- 0x00 00 01 00 - effect: invisibility
- 0x00 00 02 00 - effect: daodan shield (red)
|
0x8C |
int16 |
80 00 |
128 |
width of the image in pixels
|
0x8E |
int16 |
80 00 |
128 |
height of the image in pixels
|
0x90 |
int32 |
01 00 00 00 |
1 |
texture format RGB555; used texture formats:
- 0 - ARGB4444, 16 bits/pixel, 4 bits per channel, alpha channel present (GL_RGBA4 OpenGL texture format)
- 1 - RGB555, 16 bits/pixel, 5 bits per channel, no alpha channel (GL_RGB5 OpenGL texture format)
- 2 - ARGB5551, 16 bits/pixel, 5 bits per color channel, 1 bit alpha channel (GL_RGB5_A1 OpenGL texture format)
- 8 - RGB888, 32 bits/pixel, 8 bits per color channel, no alpha channel (GL_RGB OpenGL texture format)
- 9 - S3TC/DXT1, compressed 4 times (GL_COMPRESSED_RGB_S3TC_DXT1_EXT OpenGL texture format)
|
0x94 |
link |
00 00 00 00 |
unused |
link to a TXAN file; used if this texture is animated
|
0x98 |
link |
00 00 00 00 |
unused |
link to a TXMP file that contain the environment map
|
0x9C |
offset |
20 00 00 00 |
00 00 00 20 |
at this position starts the texture part in the raw file (PC only)
|
0xA0 |
offset |
00 00 00 00 |
unused |
at this position starts the texture part in the sep file (Mac and PC demo only)
|
0xA4 |
char[28] |
AD DE |
dead |
unused
|
- Effect options
- "Shield", "Invisibility" and "Daodan shield" options do not affect the texture reading/drawing in any way. The texture data is still RGB555 or whatever format the texture format field says it is. The effect of these flags is that the engine uses vertex shading with a colour that varies with time.
- Animation time
When using animated textures the image to display is selected using the game time and animation speed. For textures that are used by particles the local (particle) time can be used either to replace or offset the game time.
- Pixel storage order
- Below you can see the pictures for this example. The first picture shows how it's stored in Oni, the second how you see it in the game.
Pixel arrangement
how it's stored
|
|
how you'll see it
|
|
|
|