D3D12DDI_RAYTRACING_GEOMETRY_TRIANGLES_DESC_0054 結構 (d3d12umddi.h)
描述光線追蹤三角形幾何。
語法
typedef struct D3D12DDI_RAYTRACING_GEOMETRY_TRIANGLES_DESC_0054 {
D3D12DDI_GPU_VIRTUAL_ADDRESS ColumnMajorTransform3x4;
DXGI_FORMAT IndexFormat;
DXGI_FORMAT VertexFormat;
UINT IndexCount;
UINT VertexCount;
D3D12DDI_GPU_VIRTUAL_ADDRESS IndexBuffer;
D3D12DDI_GPU_VIRTUAL_ADDRESS_AND_STRIDE VertexBuffer;
} D3D12DDI_RAYTRACING_GEOMETRY_TRIANGLES_DESC_0054;
成員
ColumnMajorTransform3x4
在加速結構建置期間,要套用至 VertexBuffer 中頂 點的數據列主要版面配置中 3x4 affine 轉換矩陣的位址。 不會修改 VertexBuffer 的內容。 如果使用 2D 頂點格式,則會套用轉換,並將第三個頂點元件假設為零。
如果 ColumnMajorTransform3x4 為 NULL,則不會轉換頂點。 使用 ColumnMajorTransform3x4 可能會導致加速結構組建的計算和/或記憶體需求增加。
指向的記憶體必須處於 資源狀態 D3D12DDI_RESOURCE_STATE_NON_PIXEL_SHADER_RESOURCE。
IndexFormat
DXGI_FORMAT,表示 IndexBuffer 中索引的格式。 此值必須是下列其中一項:
- 當 IndexBuffer 為 NULL) 時DXGI_FORMAT_UNKNOWN (
- DXGI_FORMAT_R32_UINT
- DXGI_FORMAT_R16_UINT
VertexFormat
DXGI_FORMAT,表示頂點 (位置) 在 VertexBuffer 中的格式。 此值必須是下列其中一項:
- DXGI_FORMAT_R32G32_FLOAT (第三个组件假设为 0)
- DXGI_FORMAT_R32G32B32_FLOAT
- DXGI_FORMAT_R16G16_FLOAT (第三个组件假设为 0)
- DXGI_FORMAT_R16G16B16A16_FLOAT
IndexCount
IndexBuffer 中的索引數目。 如果 IndexBuffer 為 NULL,則必須為 0。
VertexCount
頂點 (位置) 頂點數目。
IndexBuffer
頂點索引的陣列。 如果為 NULL,則三角形為非索引。 地址必須對齊 IndexFormat 的大小。
指向的記憶體必須處於 資源狀態 D3D12DDI_RESOURCE_STATE_NON_PIXEL_SHADER_RESOURCE。
VertexBuffer
頂點陣列,包括步進。 位址和步進的對齊必須是元件大小的倍數,這表示 4 個字節的格式為 32 位元件,2 個字節表示具有 16 位元件的格式。 沒有跨步 (的條件約束,而圖形) 的限制,但值底部 32 位以外的全部都是使用。 這表示字段純粹是UINT64,讓鄰近字段清楚且明顯地對齊所有位置。 每個頂點位置應該位於步進範圍的開始位址,而且加速結構組建會忽略任何多餘的空間。 此多餘的空間可能包含其他應用程式數據,例如頂點屬性,應用程式負責在著色器中手動擷取,無論是交錯在頂點緩衝區或其他位置。
指向的記憶體必須處於 資源狀態 D3D12DDI_RESOURCE_STATE_NON_PIXEL_SHADER_RESOURCE。
備註
這個 結構所指向的幾何一律位於 (索引或非索引窗體) 的三角形清單中。 不支援等量。
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | Windows 10 版本 1809 |
標頭 | d3d12umddi.h |