TraceRay 函数
在加速结构中将射线发送到搜索命中。
语法
此内部函数定义等效于以下函数模板:
Template<payload_t>
void TraceRay(RaytracingAccelerationStructure AccelerationStructure,
uint RayFlags,
uint InstanceInclusionMask,
uint RayContributionToHitGroupIndex,
uint MultiplierForGeometryContributionToHitGroupIndex,
uint MissShaderIndex,
RayDesc Ray,
inout payload_t Payload);
参数
AccelerationStructure
要使用的顶级加速结构。 指定 NULL 加速结构会强制未命中。
RayFlags
ray_flag值的有效组合。 系统仅传播定义的光线标志,即 对 RayFlags 着色器内部函数可见。
InstanceInclusionMask
一个无符号整数,其底部的 8 位用于根据每个实例中的 InstanceMask 包含或拒绝几何图形实例。 例如:
if(!((InstanceInclusionMask & InstanceMask) & 0xff)) { //ignore intersection }
RayContributionToHitGroupIndex
一个无符号整数,指定要添加到着色器表中用于命中组索引的寻址计算中的偏移量。 仅使用此值的底部 4 位。
MultiplierForGeometryContributionToHitGroupIndex
一个无符号整数,指定要乘以 GeometryContributionToHitGroupIndex 的步幅,该索引只是几何图形由应用提供给其底层加速结构的从 0 开始的索引。 仅使用此乘数值的底部 16 位。
MissShaderIndex
一个无符号整数,指定着色器表中未命中着色器的索引。
Ray
表示要跟踪的光线的 RayDesc 。
Payload
在光线跟踪期间调用的着色器为输入和输出访问用户定义的光线有效负载。 TraceRay 完成后,调用方也可以访问有效负载。
返回值
void
备注
可以从以下光线追踪着色器类型调用此函数:
另请参阅