> ## 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 consoles)

> 描述加速结构构建过程中在 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` 布局为三个 4 向量，而不是四个 3 向量。
</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](/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](/reference/graphics/d3d12_x/enums/d3d12_resource_states) 状态。

## 备注

如果您首先在 CPU 上生成实例数据，然后上传到 GPU，则此 C++ 结构定义很有用。但您的应用程序也可以按照相同的布局直接在 GPU 内存中生成实例描述（例如，从计算着色器）。

## 要求

**头文件：** d3d12\_xs.h\
**库：** d3d12\_xs.lib\
**支持的平台**：XBOX Series 主机


## Related topics

- [D3D12_RAYTRACING_GEOMETRY_DESC (XBOX Series consoles)](/zh-CN/reference/graphics/d3d12/structs/d3d12_raytracing_geometry_desc_public.md)
- [D3D12_RAYTRACING_GEOMETRY_AABBS_DESC (XBOX Series consoles)](/zh-CN/reference/graphics/d3d12/structs/d3d12_raytracing_geometry_aabbs_desc_public.md)
- [D3D12_RAYTRACING_INSTANCE_FLAGS (XBOX Series 主机)](/zh-CN/reference/graphics/d3d12/enums/d3d12_raytracing_instance_flags_public.md)
- [D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_SERIALIZATION_DESC (XBOX Series consoles)](/zh-CN/reference/graphics/d3d12/structs/d3d12_raytracing_acceleration_structure_postbuild_info_serialization_desc_public.md)
- [D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_CURRENT_SIZE_DESC (XBOX Series consoles)](/zh-CN/reference/graphics/d3d12/structs/d3d12_raytracing_acceleration_structure_postbuild_info_current_size_desc_public.md)
