Partager via


Formats hérités : Mapper les formats Direct3D 9 à Direct3D 10

Ce tableau répertorie les formats Direct3D 9 qui peuvent être mappés à un format Direct3D 10. Les formats Direct3D 10 ont divergé des formats Direct3D 9, de sorte que les formats de vertex et de texture peuvent être fusionnés pour permettre des applications inter-endiennes.

Direct3D 9 Texture/Vertex/Index Format Format Direct3D 10 équivalent
D3DFMT_UNKNOWN DXGI_FORMAT_UNKNOWN
D3DFMT_R8G8B8 Non disponible
D3DFMT_A8R8G8B8 DXGI_FORMAT_B8G8R8A8_UNORM (DXGI 1.1)
D3DFMT_X8R8G8B8 DXGI_FORMAT_B8G8R8X8_UNORM (DXGI 1.1)
D3DFMT_R5G6B5 DXGI_FORMAT_B5G6R5_UNORM (DXGI 1.2)
D3DFMT_X1R5G5B5 Non disponible
D3DFMT_A1R5G5B5 DXGI_FORMAT_B5G5R5A1_UNORM (DXGI 1.2)
D3DFMT_A4R4G4B4 DXGI_FORMAT_B4G4R4A4_UNORM (DXGI 1.2)
D3DFMT_R3G3B2 Non disponible
D3DFMT_A8 DXGI_FORMAT_A8_UNORM
D3DFMT_A8R3G3B2 Non disponible
D3DFMT_X4R4G4B4 Non disponible
D3DFMT_A2B10G10R10 DXGI_FORMAT_R10G10B10A2
D3DFMT_A8B8G8R8 DXGI_FORMAT_R8G8B8A8_UNORM ou DXGI_FORMAT_R8G8B8A8_UNORM_SRGB
D3DFMT_X8B8G8R8 Non disponible
D3DFMT_G16R16 DXGI_FORMAT_R16G16_UNORM
D3DFMT_A2R10G10B10 Non disponible
D3DFMT_A16B16G16R16 DXGI_FORMAT_R16G16B16A16_UNORM
D3DFMT_A8P8 Non disponible
D3DFMT_P8 Non disponible
D3DFMT_L8 DXGI_FORMAT_R8_UNORM ¹
D3DFMT_A8L8 Non disponible
D3DFMT_A4L4 Non disponible
D3DFMT_V8U8 DXGI_FORMAT_R8G8_SNORM
D3DFMT_L6V5U5 Non disponible
D3DFMT_X8L8V8U8 Non disponible
D3DFMT_Q8W8V8U8 DXGI_FORMAT_R8G8B8A8_SNORM
D3DFMT_V16U16 DXGI_FORMAT_R16G16_SNORM
D3DFMT_W11V11U10 Non disponible
D3DFMT_A2W10V10U10 Non disponible
D3DFMT_UYVY Non disponible
D3DFMT_R8G8_B8G8 DXGI_FORMAT_G8R8_G8B8_UNORM ²
D3DFMT_YUY2 Non disponible
D3DFMT_G8R8_G8B8 DXGI_FORMAT_R8G8_B8G8_UNORM ²
D3DFMT_DXT1 DXGI_FORMAT_BC1_UNORM ou DXGI_FORMAT_BC1_UNORM_SRGB
D3DFMT_DXT2 DXGI_FORMAT_BC2_UNORM ou DXGI_FORMAT_BC2_UNORM_SRGB ³
D3DFMT_DXT3 DXGI_FORMAT_BC2_UNORM ou DXGI_FORMAT_BC2_UNORM_SRGB
D3DFMT_DXT4 DXGI_FORMAT_BC3_UNORM ou DXGI_FORMAT_BC3_UNORM_SRGB ³
D3DFMT_DXT5 DXGI_FORMAT_BC3_UNORM ou DXGI_FORMAT_BC3_UNORM_SRGB
D3DFMT_D16 et D3DFMT_D16_LOCKABLE DXGI_FORMAT_D16_UNORM
D3DFMT_D32 Non disponible
D3DFMT_D15S1 Non disponible
D3DFMT_D24S8 Non disponible
D3DFMT_D24X8 Non disponible
D3DFMT_D24X4S4 Non disponible
D3DFMT_D16 DXGI_FORMAT_D16_UNORM
D3DFMT_D32F_LOCKABLE DXGI_FORMAT_D32_FLOAT
D3DFMT_D24FS8 Non disponible
D3DFMT_S1D15 Non disponible
D3DFMT_S8D24 DXGI_FORMAT_D24_UNORM_S8_UINT
D3DFMT_X8D24 Non disponible
D3DFMT_X4S4D24 Non disponible
D3DFMT_L16 DXGI_FORMAT_R16_UNORM ¹
D3DFMT_INDEX16 DXGI_FORMAT_R16_UINT
D3DFMT_INDEX32 DXGI_FORMAT_R32_UINT
D3DFMT_Q16W16V16U16 DXGI_FORMAT_R16G16B16A16_SNORM
D3DFMT_MULTI2_ARGB8 Non disponible
D3DFMT_R16F DXGI_FORMAT_R16_FLOAT
D3DFMT_G16R16F DXGI_FORMAT_R16G16_FLOAT
D3DFMT_A16B16G16R16F DXGI_FORMAT_R16G16B16A16_FLOAT
D3DFMT_R32F DXGI_FORMAT_R32_FLOAT
D3DFMT_G32R32F DXGI_FORMAT_R32G32_FLOAT
D3DFMT_A32B32G32R32F DXGI_FORMAT_R32G32B32A32_FLOAT
D3DFMT_CxV8U8 Non disponible
D3DDECLTYPE_FLOAT1 DXGI_FORMAT_R32_FLOAT
D3DDECLTYPE_FLOAT2 DXGI_FORMAT_R32G32_FLOAT
D3DDECLTYPE_FLOAT3 DXGI_FORMAT_R32G32B32_FLOAT
D3DDECLTYPE_FLOAT4 DXGI_FORMAT_R32G32B32A32_FLOAT
D3DDECLTYPED3DCOLOR Non disponible
D3DDECLTYPE_UBYTE4 DXGI_FORMAT_R8G8B8A8_UINT ⁴
D3DDECLTYPE_SHORT2 DXGI_FORMAT_R16G16_SINT
D3DDECLTYPE_SHORT4 DXGI_FORMAT_R16G16B16A16_SINT
D3DDECLTYPE_UBYTE4N DXGI_FORMAT_R8G8B8A8_UNORM
D3DDECLTYPE_SHORT2N DXGI_FORMAT_R16G16_SNORM
D3DDECLTYPE_SHORT4N DXGI_FORMAT_R16G16B16A16_SNORM
D3DDECLTYPE_USHORT2N DXGI_FORMAT_R16G16_UNORM
D3DDECLTYPE_USHORT4N DXGI_FORMAT_R16G16B16A16_UNORM
D3DDECLTYPE_UDEC3 Non disponible
D3DDECLTYPE_DEC3N Non disponible
D3DDECLTYPE_FLOAT16_2 DXGI_FORMAT_R16G16_FLOAT
D3DDECLTYPE_FLOAT16_4 DXGI_FORMAT_R16G16B16A16_FLOAT

 

  1. Utilisez .r swizzle dans un nuanceur pour dupliquer le rouge vers d’autres composants afin d’obtenir le comportement de Direct3D 9.
  2. Dans Direct3D 9, les données ont été mises à l’échelle de 255,0f, ce qui peut être effectué dans le code du nuanceur à la place.
  3. DXT2 et DXT3 sont identiques du point de vue de l’API ; DXT4 et DXT5 sont identiques du point de vue de l’API. La seule différence était l’alpha prémultipliée, qui peut être suivie par une application et n’a pas besoin d’un format distinct.
  4. Un nuanceur obtient des valeurs UINT, mais si le style Direct3D 9 flotte (0.0f, 1.0f... 255.f) sont nécessaires, UINT peut être converti en float32 dans un nuanceur.

Ressources (Direct3D 10)