> ## Documentation Index
> Fetch the complete documentation index at: https://devdocs.xbox.com/llms.txt
> Use this file to discover all available pages before exploring further.

# D3D12_RAYTRACING_INSTANCE_DESC (XBOX Series 主機)

> 描述在加速結構建置過程中，GPU 記憶體中所使用的光線追蹤加速結構執行個體。

描述在加速結構建置過程中，GPU 記憶體中所使用的光線追蹤加速結構執行個體。

## 語法

```cpp theme={null}
typedef struct D3D12_RAYTRACING_INSTANCE_DESC
{
    FLOAT[4] Transform;
    UINT InstanceID;
    UINT InstanceMask;
    UINT InstanceContributionToHitGroupIndex;
    UINT Flags;
    D3D12_GPU_VIRTUAL_ADDRESS AccelerationStructure;
} D3D12_RAYTRACING_INSTANCE_DESC
```

### 成員

*Transform*\
類型：FLOAT\[3]\[4]

以列優先配置的 3x4 轉換矩陣，代表執行個體到世界的轉換。實作會轉換光線，而不是轉換所有幾何或 AABB。

<Note>
  `Transform` 的配置是仿射矩陣在記憶體中一般儲存方式的轉置。`Transform` 不是配置為四個 3 維向量，而是配置為三個 4 維向量。
</Note>

*InstanceID*\
類型：UINT

任意的 24 位元值，可在支援的著色器類型中使用 `InstanceID` 內建函式存取。

*InstanceMask*\
類型：UINT

指派給執行個體的 8 位元遮罩，可用來依每條光線包含/拒絕執行個體群組。如果值為零，則永遠不會包含該執行個體，因此通常應將其設定為某個非零值。如需詳細資訊，請參閱 [TraceRay](https://learn.microsoft.com/en-us/windows/win32/direct3d12/traceray-function) 函式的 `InstanceInclusionMask` 參數。

*InstanceContributionToHitGroupIndex*\
類型：UINT

任意的 24 位元值，代表要加入著色器表格索引中的每個執行個體貢獻值，以選取要使用的命中群組。

*Flags*\
類型：UINT

8 位元遮罩，代表要套用至執行個體的 [D3D12\_RAYTRACING\_INSTANCE\_FLAGS](/zh-TW/reference/graphics/d3d12/enums/d3d12_raytracing_instance_flags_public) 旗標。

*AccelerationStructure*\
類型：D3D12\_GPU\_VIRTUAL\_ADDRESS

要建立執行個體的底層加速結構位址。位址必須對齊 256 個位元組，定義為 [D3D12\_RAYTRACING\_ACCELERATION\_STRUCTURE\_BYTE\_ALIGNMENT](https://learn.microsoft.com/en-us/windows/win32/direct3d12/constants)。在此傳入的任何現有加速結構，原本就必須以此對齊方式放置。

所指向的記憶體必須處於 [D3D12\_RESOURCE\_STATE\_RAYTRACING\_ACCELERATION\_STRUCTURE](/zh-TW/reference/graphics/d3d12_x/enums/d3d12_resource_states) 狀態。

## 備註

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

## 需求

**標頭:** d3d12\_xs.h\
**程式庫:** d3d12\_xs.lib\
**支援的平台**: XBOX Series 主機


## Related topics

- [D3D12_RAYTRACING_INSTANCE_FLAGS (XBOX Series 主機)](/zh-TW/reference/graphics/d3d12/enums/d3d12_raytracing_instance_flags_public.md)
- [D3D12_RAYTRACING_GEOMETRY_DESC (XBOX Series 主機)](/zh-TW/reference/graphics/d3d12/structs/d3d12_raytracing_geometry_desc_public.md)
- [D3D12_RAYTRACING_GEOMETRY_AABBS_DESC (XBOX Series 主機)](/zh-TW/reference/graphics/d3d12/structs/d3d12_raytracing_geometry_aabbs_desc_public.md)
- [D3D12_RAYTRACING_GEOMETRY_FLAGS (XBOX Series 主機)](/zh-TW/reference/graphics/d3d12/enums/d3d12_raytracing_geometry_flags_public.md)
- [D3D12_RAYTRACING_GEOMETRY_TYPE (XBOX Series 主機)](/zh-TW/reference/graphics/d3d12/enums/d3d12_raytracing_geometry_type_public.md)
