Bagikan melalui


Format Warisan: Memetakan Format Direct3D 9 ke Direct3D 10

Tabel ini mencantumkan format Direct3D 9 yang dapat dipetakan ke format Direct3D 10. Format Direct3D 10 telah berbeda dari format Direct3D 9 sehingga format vertex dan tekstur dapat digabungkan untuk mengaktifkan aplikasi lintas endian.

Format Tekstur/Puncak/Indeks Direct3D 9 Format Direct3D 10 yang Setara
D3DFMT_UNKNOWN DXGI_FORMAT_UNKNOWN
D3DFMT_R8G8B8 Tidak tersedia
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 Tidak tersedia
D3DFMT_A1R5G5B5 DXGI_FORMAT_B5G5R5A1_UNORM (DXGI 1.2)
D3DFMT_A4R4G4B4 DXGI_FORMAT_B4G4R4A4_UNORM (DXGI 1.2)
D3DFMT_R3G3B2 Tidak tersedia
D3DFMT_A8 DXGI_FORMAT_A8_UNORM
D3DFMT_A8R3G3B2 Tidak tersedia
D3DFMT_X4R4G4B4 Tidak tersedia
D3DFMT_A2B10G10R10 DXGI_FORMAT_R10G10B10A2
D3DFMT_A8B8G8R8 DXGI_FORMAT_R8G8B8A8_UNORM atau DXGI_FORMAT_R8G8B8A8_UNORM_SRGB
D3DFMT_X8B8G8R8 Tidak tersedia
D3DFMT_G16R16 DXGI_FORMAT_R16G16_UNORM
D3DFMT_A2R10G10B10 Tidak tersedia
D3DFMT_A16B16G16R16 DXGI_FORMAT_R16G16B16A16_UNORM
D3DFMT_A8P8 Tidak tersedia
D3DFMT_P8 Tidak tersedia
D3DFMT_L8 DXGI_FORMAT_R8_UNORM ¹
D3DFMT_A8L8 Tidak tersedia
D3DFMT_A4L4 Tidak tersedia
D3DFMT_V8U8 DXGI_FORMAT_R8G8_SNORM
D3DFMT_L6V5U5 Tidak tersedia
D3DFMT_X8L8V8U8 Tidak tersedia
D3DFMT_Q8W8V8U8 DXGI_FORMAT_R8G8B8A8_SNORM
D3DFMT_V16U16 DXGI_FORMAT_R16G16_SNORM
D3DFMT_W11V11U10 Tidak tersedia
D3DFMT_A2W10V10U10 Tidak tersedia
D3DFMT_UYVY Tidak tersedia
D3DFMT_R8G8_B8G8 DXGI_FORMAT_G8R8_G8B8_UNORM ²
D3DFMT_YUY2 Tidak tersedia
D3DFMT_G8R8_G8B8 DXGI_FORMAT_R8G8_B8G8_UNORM ²
D3DFMT_DXT1 DXGI_FORMAT_BC1_UNORM atau DXGI_FORMAT_BC1_UNORM_SRGB
D3DFMT_DXT2 DXGI_FORMAT_BC2_UNORM atau DXGI_FORMAT_BC2_UNORM_SRGB ³
D3DFMT_DXT3 DXGI_FORMAT_BC2_UNORM atau DXGI_FORMAT_BC2_UNORM_SRGB
D3DFMT_DXT4 DXGI_FORMAT_BC3_UNORM atau DXGI_FORMAT_BC3_UNORM_SRGB ³
D3DFMT_DXT5 DXGI_FORMAT_BC3_UNORM atau DXGI_FORMAT_BC3_UNORM_SRGB
D3DFMT_D16 dan D3DFMT_D16_LOCKABLE DXGI_FORMAT_D16_UNORM
D3DFMT_D32 Tidak tersedia
D3DFMT_D15S1 Tidak tersedia
D3DFMT_D24S8 Tidak tersedia
D3DFMT_D24X8 Tidak tersedia
D3DFMT_D24X4S4 Tidak tersedia
D3DFMT_D16 DXGI_FORMAT_D16_UNORM
D3DFMT_D32F_LOCKABLE DXGI_FORMAT_D32_FLOAT
D3DFMT_D24FS8 Tidak tersedia
D3DFMT_S1D15 Tidak tersedia
D3DFMT_S8D24 DXGI_FORMAT_D24_UNORM_S8_UINT
D3DFMT_X8D24 Tidak tersedia
D3DFMT_X4S4D24 Tidak tersedia
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 Tidak tersedia
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 Tidak tersedia
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 Tidak tersedia
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 Tidak tersedia
D3DDECLTYPE_DEC3N Tidak tersedia
D3DDECLTYPE_FLOAT16_2 DXGI_FORMAT_R16G16_FLOAT
D3DDECLTYPE_FLOAT16_4 DXGI_FORMAT_R16G16B16A16_FLOAT

 

  1. Gunakan .r swizzle dalam shader untuk menduplikasi merah ke komponen lain untuk mendapatkan perilaku Direct3D 9.
  2. Di Direct3D 9, data ditingkatkan skalanya sebesar 255,0f yang dapat dilakukan dalam kode shader sebagai gantinya.
  3. DXT2 dan DXT3 sama dari perspektif API; DXT4 dan DXT5 sama dari perspektif API. Satu-satunya perbedaan adalah alfa yang telah ditentukan sebelumnya, yang dapat dilacak oleh aplikasi dan tidak memerlukan format terpisah.
  4. Shader mendapatkan nilai UINT, tetapi jika gaya Direct3D 9 floats integral (0,0f, 1,0f... 255.f) diperlukan, UINT dapat dikonversi ke float32 dalam shader.

Sumber daya (Direct3D 10)