Skip to content

Surface Formats

Ivan Panayotov edited this page Oct 13, 2024 · 1 revision
Home

Many people know that images are usually stored in RGB or RGBA format. While this is true, the pixel data can take in a lot of different forms for a lot of reasons, the main 2 being: to reduce the amount resources (compression) or the program requiring more precise calculations (HDR).

This article has a table containing useful information regarding the surface formats used in Telltale Tool games.

Telltale surface formats have their equivalent OpenGL formats for games newer than The Walking Dead. For older ones, they directly use the ones from the original container (XENOS, Xbox 360 for example). If you are unsure in which format to save, stick to RGBA8 or BC formats. The following table has information regarding all Telltale surface formats and their usage.

Softwares such as Paint.NET, GIMP, NVIDIA Texture Tool or DirectX SDK (2010) have labeled their options well enough. The download links are here. Paint.NET or GIMP will be more than enough. More information about different types of textures can be found here.

Telltale Surface Format Equivalent Format Notes
RGBA8 R8G8B8A8_UNORM or R8G8B8A8_UNORM_SRGB1
  • Used for diffuse textures.
  • Use this save option if you do not want to lose quality.
ARGB8 R8G8B8A8_UNORM or R8G8B8A8_UNORM_SRGB1 BC7_UNORM or BC7_UNORM_SRGB[^2]
BC12 BC7_UNORM or BC7_UNORM_SRGB2 BC7_UNORM or BC7_UNORM_SRGB2
BC22 BC7_UNORM or BC7_UNORM_SRGB2 BC7_UNORM or BC7_UNORM_SRGB2
BC32 BC7_UNORM or BC7_UNORM_SRGB2 BC7_UNORM or BC7_UNORM_SRGB2
BC42 BC7_UNORM or BC7_UNORM_SRGB2 BC7_UNORM or BC7_UNORM_SRGB2
BC52 BC7_UNORM or BC7_UNORM_SRGB2 BC7_UNORM or BC7_UNORM_SRGB2
BC62 BC7_UNORM or BC7_UNORM_SRGB2 BC7_UNORM or BC7_UNORM_SRGB2
BC72 BC7_UNORM or BC7_UNORM_SRGB2
  • Use this save option if you want your texture compressed.
ARGB16 R16B16G16A16_UNORM
  • Used for big detailed textures.
  • Only 1 such texture has been found. (Poker Night 2 - ui_endofdemo_items.d3dtx)
RGB565 R5G6B5_UNORM
  • Used for diffuse textures.
ARGB1555 B5G5R5A1_UNORM
ARGB4 R4G4B4A4_UNORM
  • Used for diffuse textures.
ARGB2101010 R10G10B10A2_UNORM Requires swizzling the red and blue channels.
R16 R16_UNORM
RG16 R16G16_UNORM
RGBA16 R16G16B16A16_UNORM
RG8 R8G8_UNORM
R32 R32_FLOAT
RG32 R32G32_FLOAT
RGBA32 R32G32B32A32_FLOAT
R8 R8_UNORM
  • Equivalent to L8.
RGBA8S R8G8B8A8_SNORM
A8 A8_UNORM
  • Used for detail or 1 color textures.
L8 R8_UNORM
  • Equivalent to R8.
  • Used for old lookup textures.
AL8 R8G8_UNORM Used for look ups.
L16 R16_UNORM Use DirectX SDK (2010 version).
RG16S R16G16_SNORM
RGBA16S R16G16B16A16_SNORM
R16UI R16_UINT
RG16UI R16G16 _UINT
R16F R16_FLOAT
RG16F R16G16_FLOAT
RGBA16F R16G16B16A16_FLOAT
R32F R32_FLOAT
RG32F R32G32_FLOAT
RGBA32F R32G32B32A32_FLOAT
  • Used for light maps.
  • Use NVIDIA Texture Tool or DirectX SDK.
CTX15
RGBA1010102F
RGB111110F
RGB9E5F R9G9B9E5_SHAREDEXP
PVRTC23 PVRTC 1 4bpp RGB
PVRTC43 PVRTC 1 2bpp RGBA
PVRTC2a3 PVRTC 1 2bpp RGBA
PVRTC4a3 PVRTC 1 4bpp RGBA
ATC_RGB4 ATC RGB
ATC_RGB1A4 ATC Explicit Alpha
ATC_RGBA4 ATC Interpolated Alpha
ETC1_RGB4 ETC1 RGB
ETC2_RGB4 ETC2_RGB
ETC2_RGB1A4 ETC2 R8G8B8A1
ETC2_RGBA4 ETC2 EAC RGBA
ETC2_R4 ETC2 EAC R11
ETC2_RG4 ETC2 EAC RG11
ASTC_RGBA_4x43 ASTC 4x4
FrontBuffer X8R8G8B8

1: The output depends on the D3DTX's surface gamma value. 2: BC means Block Compression, which are basically image compression algorithms. They are lossy. 3: Used in Xbox 360 games. (No texture found yet.) 4: Used in iOS games. 5: Used is Android games.

Telltale Surface Gamma Color Space
Non-existent Non-sRGB (Linear)
Unknown Non-sRGB (Linear)
Linear Non-sRGB (Linear)
sRGB sRGB

Note

Non-existent means that there is no such field in the relative D3DTX version.

Reading Debug Information

A typical D3DTX debug information will contain a Meta header and a D3DTX header. Other image files will use the DirectXTex metadata information.

The structures, types and fields can be found in the converter source code.