跳轉到主要內容
描述在加速結構建置過程中,GPU 記憶體中所使用的光線追蹤加速結構執行個體。

語法

成員

Transform
類型:FLOAT[3][4]
以列優先配置的 3x4 轉換矩陣,代表執行個體到世界的轉換。實作會轉換光線,而不是轉換所有幾何或 AABB。
Transform 的配置是仿射矩陣在記憶體中一般儲存方式的轉置。Transform 不是配置為四個 3 維向量,而是配置為三個 4 維向量。
InstanceID
類型:UINT
任意的 24 位元值,可在支援的著色器類型中使用 InstanceID 內建函式存取。 InstanceMask
類型:UINT
指派給執行個體的 8 位元遮罩,可用來依每條光線包含/拒絕執行個體群組。如果值為零,則永遠不會包含該執行個體,因此通常應將其設定為某個非零值。如需詳細資訊,請參閱 TraceRay 函式的 InstanceInclusionMask 參數。 InstanceContributionToHitGroupIndex
類型:UINT
任意的 24 位元值,代表要加入著色器表格索引中的每個執行個體貢獻值,以選取要使用的命中群組。 Flags
類型:UINT
8 位元遮罩,代表要套用至執行個體的 D3D12_RAYTRACING_INSTANCE_FLAGS 旗標。 AccelerationStructure
類型:D3D12_GPU_VIRTUAL_ADDRESS
要建立執行個體的底層加速結構位址。位址必須對齊 256 個位元組,定義為 D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BYTE_ALIGNMENT。在此傳入的任何現有加速結構,原本就必須以此對齊方式放置。 所指向的記憶體必須處於 D3D12_RESOURCE_STATE_RAYTRACING_ACCELERATION_STRUCTURE 狀態。

備註

如果您先在 CPU 上產生執行個體資料,再上傳至 GPU,此 C++ 結構定義會很有用。不過,您的應用程式也可以依照相同的配置,直接在 GPU 記憶體中產生執行個體描述 (例如從計算著色器)。

需求

標頭: d3d12_xs.h
程式庫: d3d12_xs.lib
支援的平台: XBOX Series 主機
最後修改於 2026年10月6日