DDS Files

From the Oblivion ConstructionSet Wiki
Jump to navigation Jump to search

DDS is the file extension used to denote the Microsoft DirectDraw Surface (.dds) texture file format.

Oblivion employs the DDS format for textures. The Microsoft DirectDraw Surface (.dds) file format stores textures and cubic environment maps, with or without mipmaps. It was introduced with DirectX 7.0.

Although the format is not natively supported by most graphic editing applications, there are a number of Tools designed to handle the format.

Types of textures[edit | edit source]

There are at least several types of the DirectX textures and their equivalent in the shaders. Note that the textures should contain mipmaps (the same texture copied several times but with lower resolution down to almost a single pixel). If the mipmap is not present in the texture file then it will be generated on the fly (adding some stress to the CPU/GPU). If the texture is 1x2 and shader requests color from the middle of that texture then it should get interpolated value (in that case average of the both pixels).

2D texture[edit | edit source]

Standard flat texture. It has 2 dimensions (X,Y), can hold 4 colors (Red, Green, Blue, Alpha) and multiple mipmaps. Example: Texture 64x32 with mipmaps 32x16, 16x8, 8x4, 4x2, 2x1. Declared in shader assembler as dcl_2D.

2D texture array[edit | edit source]

Probably not supported by Oblivion's engine thus not described here.

3D texture (volume texture)[edit | edit source]

The same as 2D texture but has 3 dimenzions (X,Y,Z). Every layer of pixels in Z dimension is stored as a separate image called slice. Example: Texture 16x8x4 with mipmaps 8x4x2, 4x2x1. Declared in shader assembler as dcl_volume.

3D cube texture[edit | edit source]

6 textures that are laid on the sides of a cube. (needs more info about that).


DDS Settings used by Oblivion[edit | edit source]

Usage Save Format Mip Maps Image Type Use of Alpha Channel
Textures without Transparency

(Most Models and all Landscape)

DXT1,

RGB

Yes Color map -
Textures with optional Transparency

(Needs to be activated in NIF-File)

DXT3, DXT5

ARGB

Yes Color map Transparency

(Black = Invisible,
White = Opaque)

Textures with Parallax displacement mapping

(must be activated in NIF file)

DXT3, DXT5

ARGB

Yes Color map Displacement mapping

(Black = recessed,
White = raised,
50% gray = baseline)

Normal Maps

(*_n.dds)

DXT3, DXT5

ARGB

Yes Tangent Space Specular shine

(Black = no shine, White = high shine)
Glossiness is controlled through a mesh's NiMaterialProperty in the NIF file

Glow Maps

(*_g.dds)

DXT1

RGB

Yes Color map -
Icons

(And other GUI elements)

DXT3

ARGB

No Color map Transparency in GUI

(e.g. Weapon Icons)

BookArt DXT3

ARGB

No Color map Transparency on Page

(Show Book's Background Texture)

Loading Screens DXT1

RGB

No Color map -

NOTES: Compression for the RGB channels does not differ significantly between DXT1, 3, and 5. The main differences lie in the manner in which the alpha channel is compressed. DXT1 compresses the alpha map as all-black/white, which is highly compressible. DXT1 has a two-bit alpha channel, either white ("Implicit") or black (the color-channels are set to 0). DXT3 has a larger grayscale available ("Explicit"), and DXT5 has as wide an alpha map grayscale as it has for the color channels ("Interpolated").

Because of this, saving a Normal map as DXT1 has the unwanted side effect of causing full specular highlighting over the whole mesh to which the texture is assigned to. DXT3 or DXT5 are strongly recommended for normal maps.

Though both DXT3 and DXT5 have alpha channels that can function as specular maps, DXT3 has a noticeable step in the gradients; DXT5's more gradual gradient may be better suited to some situations.

Though parallax mapping and transparency can function at the same time, the formats in which the alpha channel must be configured for the two effects is usually incompatible and may produce unwanted effects.

Oblivion can also use uncompressed texture files, specifically 8.8.8.8 Unsigned format. This completely eliminates compression artifacts not pre-existing, but is significantly larger in file size (and thus harder on the video RAM resources). You may be able to afford reducing the size of the texture to a smaller size since there are no DXT compression artifacts to be concerned about.

See Also[edit | edit source]