[英]Why vertex input parameters in Direct3D 11 use DXGI format
前段時間我在學習 Direct3D 11,我從 DX9 切換到 DX11,因為它有更多的功能。 但是,我無法解釋為什么輸入頂點布局格式使用這樣的 DXGI 格式
polygonLayout.Format = DXGI_FORMAT_R32G32B32_FLOAT; //For position i don't need color
在 Direct3D9 中,使用 D3DVERTEXELEMENT9 更簡單:
D3DVERTEXELEMENT9 dwDecl3[] =
{
{0, 0, D3DDECLTYPE_FLOAT3, D3DDECLMETHOD_DEFAULT,
D3DDECLUSAGE_POSITION, 0},
{0, 12, D3DDECLTYPE_D3DCOLOR, D3DDECLMETHOD_DEFAULT,
D3DDECLUSAGE_COLOR, 0},
{0, 16, D3DDECLTYPE_D3DCOLOR, D3DDECLMETHOD_DEFAULT,
D3DDECLUSAGE_COLOR, 1},
{1, 0, D3DDECLTYPE_FLOAT2, D3DDECLMETHOD_DEFAULT,
D3DDECLUSAGE_TEXCOORD, 0},
{2, 0, D3DDECLTYPE_FLOAT2, D3DDECLMETHOD_DEFAULT,
D3DDECLUSAGE_TEXCOORD, 1},
D3DDECL_END()
};
這不是一個真正的技術或編程問題,更多的是“他們為什么這樣做?” 歷史問題。
所以...
最初的想法是,當 Microsoft 將 Direct3D 7 更改為 Direct3D 8 再更改為 Direct3D 9 時,設備/適配器枚舉代碼總是在更改,即使它們都做同樣的事情。 因此,提出了提取進行設備/適配器枚舉的 Direct3D API 的位的想法,因此創建了DirectX 圖形基礎結構(DXGI) 來滿足這一需求。 因此,為什么像像素格式這樣的枚舉在DXGI_FORMAT_*
枚舉而不是“Direct3D 枚舉”中。
當時的計划是 DXGI 不需要改變,你可以只寫一次這些東西,它適用於 Direct3D 10 和未來版本的 DirectX。
唉, “沒有計划與敵人接觸” ,DXGI 幾乎隨着 Direct3D 和 Windows 操作系統的每次變化而不斷變化。
DXGI 1.0 Windows Vista and Direct3D 10
DXGI 1.1 Windows 7 and Direct3D 11
The "you really need to use DXGICreateFactory1" release
Included BGR formats for D3D_FEATURE_LEVEL_9_x devices
Included BC6/BC7 formats for D3D_FEATURE_LEVEL_11_0 devices
DXGI 1.2 Windows 8 and DirectX 11.1
Windows Store apps and the "CoreWindow" swapchain
Introduced the DXGI_SWAP_EFFECT_FLIP_SEQUENTIAL flip model
Included a bunch of new formats for DirectX 11 Video APIs
Added 16bpp (5:5:5:1, 5:6:5, and 4:4:4:4) formats
DXGI 1.3 Windows 8.1 and DirectX 11.2
Added DXGICreateFactory2 so you could enable DXGI Debugging
DXGI 1.4 Windows 10 and DirectX 11.3 / 12.0
Introduced the DXGI_SWAP_EFFECT_FLIP_DISCARD flip model
DirectX 12 requires DXGI_SWAP_EFFECT_FLIP_* flip models
Includes a few more video formats for JPEG hardware decoding support
DXGI 1.5 Windows 10 (15086) added DuplicateOutput1
Support for Variable refresh rate displays
(a.k.a. DXGI_PRESENT_ALLOW_TEARING)
DXGI 1.6 Windows 10 (15063) added support for HDR displays
Windows 10 (16299) added support for some special adapter fences
Windows 10 (17134) added the DXGI_GPU_PREFERENCE enumeration;
Also added HDR10+ metadata support
Windows 10 (17763) added a way to register for an event
for adapter changes
請參閱DirectX 圖形基礎結構 (DXGI):最佳實踐、 DXGI 調試設備和為了獲得最佳性能,請使用 DXGI 翻轉 model
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.