Difference between revisions of "Texture (RW Section)"

From GTAMods Wiki
Jump to navigation Jump to search
(Added example C struct for the struct section (The text description is easy to misunderstand))
 
Line 16: Line 16:
 
The structure stores filtering and uv-addressing information for the texture.
 
The structure stores filtering and uv-addressing information for the texture.
  
  1byte Texture filtering (Texture filtering modes)
+
1byte Texture filtering (Texture filtering modes)
  4bit U-addressing
+
4bit U-addressing
  4bit V-addressing
+
4bit V-addressing
  1bit Does texture use mip levels
+
1bit Does texture use mip levels
 
  15bits padding
 
  15bits padding
 +
 +
Example C structure (UInt32 is a 4 byte unsigned integer type)
 +
<syntaxhighlight lang="c">
 +
struct
 +
{
 +
    // Filtering mode
 +
    UInt32 filtering : 8;
 +
 +
    // Addressing modes for u, v
 +
    UInt32 u : 4;
 +
    UInt32 v : 4;
 +
 +
    UInt32 mipmaps : 1;
 +
};
 +
</syntaxhighlight>
  
 
Texture filtering modes
 
Texture filtering modes

Latest revision as of 16:06, 28 November 2020

Texture
RenderWare Stream Section
Vendor Criterion Games
Module Core
Module ID 0x000000
Identifier 0x06
Chunk ID 0x00000006
Versions All
Hierarchy
Parents:
Material
Children:
Struct, String
Extensions:
Sky Mipmap Val, Anisotropy
File Format

Texture is a container section used in DFF files as child of a material section or an Material Effects PLG section. The section itself does not store any data at all. All additional information get stored inside a struct section which directly follows this one as a child. A texture section is used to store the sampler state of a texture.

Structure

The structure stores filtering and uv-addressing information for the texture.

1byte Texture filtering (Texture filtering modes)
4bit U-addressing
4bit V-addressing
1bit Does texture use mip levels
15bits padding

Example C structure (UInt32 is a 4 byte unsigned integer type)

struct
{
    // Filtering mode
    UInt32 filtering : 8;

    // Addressing modes for u, v
    UInt32 u : 4;
    UInt32 v : 4;

    UInt32 mipmaps : 1;
};

Texture filtering modes

0 - FILTERNAFILTERMODE (filtering is disabled)
1 - FILTERNEAREST (Point sampled)
2 - FILTERLINEAR (Bilinear)
3 - FILTERMIPNEAREST (Point sampled per pixel mip map)
4 - FILTERMIPLINEAR (Bilinear per pixel mipmap)
5 - FILTERLINEARMIPNEAREST (MipMap interp point sampled)
6 - FILTERLINEARMIPLINEAR (Trilinear)

Texture addressing modes

0 - TEXTUREADDRESSNATEXTUREADDRESS (no tiling)
1 - TEXTUREADDRESSWRAP (tile in U or V direction)
2 - TEXTUREADDRESSMIRROR (mirror in U or V direction)
3 - TEXTUREADDRESSCLAMP
4 - TEXTUREADDRESSBORDER

Child sections

There are always child sections which appear in the order they are listed here.

  • String – Holds the texture's name
  • String – Holds the texture's alpha layer name.

See also