TraceRay()函数 :
作为启动RT Cores的指令,根据之前填写好的payload,在BVH中进行包围盒与三角形的相交测试
SceneBVH, // 1. RaytracingAccelerationStructure: 整个 3D 世界的加速结构
RAY_FLAG_NONE, // 2. RayFlags: 光线行为标志位
0xFF, // 3. InstanceInclusionMask: 剔除掩码 (0xFF 表示与所有物体发生交互,不忽略任何人)
0, // 4. RayContributionToHitGroupIndex: SBT 命中组的基址偏移 (决定调用哪个 ClosestHit)
1, // 5. MultiplierForGeometryContributionToHitGroupIndex: SBT 几何体步进乘数
0, // 6. MissShaderIndex: 如果啥都没撞到,调用 SBT 里的第几个 Miss 着色器
Ray, // 7. RayDesc: 光线的起点、方向、长短
payload // 8. Payload: 随光线传递的背包
在CreateRaytracingPipeline()中被调用,提前告诉GPU这条光线会弹射几次(在括号中填充数值)
全称是 ID3D12GraphicsCommandList::OMSetStencilRef
可以拆解为:Output Merger SetStencilReference,它用于在渲染管线的最后一个阶段(输出合并阶段)设置模板测试(Stencil Test)的参考值。
inline XMMATRIX XM_CALLCONV XMMatrixShadow(
原文:函数