函数***************

TraceRay()函数 :
作为启动RT Cores的指令,根据之前填写好的payload,在BVH中进行包围盒与三角形的相交测试

在调用时,需要给出八个参数,e.g :

TraceRay

(

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: 随光线传递的背包

);

SetMaxRecursionDepth()函数 :

在CreateRaytracingPipeline()中被调用,提前告诉GPU这条光线会弹射几次(在括号中填充数值)

OMSetStencilRef()函数 :

全称是 ID3D12GraphicsCommandList::OMSetStencilRef

可以拆解为:Output Merger SetStencilReference,它用于在渲染管线的最后一个阶段(输出合并阶段)设置模板测试(Stencil Test)的参考值。

XMMatrixShadow()函数 :

用于构建在特定平面内投影所用的阴影矩阵,定义如下:

inline XMMATRIX XM_CALLCONV XMMatrixShadow(

FXMVECTOR ShadowPlane,

FXMVECTOR LightPosition);

原文:函数