Skip to main content
描述加速结构构建过程中在 GPU 内存中使用的光线追踪加速结构的实例。

语法

成员

Transform
类型:FLOAT[3][4]
行主序布局的 3x4 变换矩阵,表示实例到世界的变换。实现变换光线,而不是变换所有几何体或 AABB。
Transform 的布局是通常在内存中存储仿射矩阵方式的转置。Transform 布局为三个 4 向量,而不是四个 3 向量。
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年8月24日