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