共用方式為


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