我在单个 DXR 底层加速结构 (BLAS) 中有多个几何体 (D3D12_RAYTRACING_GEOMETRY_DESC)。我如何确定其中哪些是在最近的命中着色器中被命中的? 以下 HLSL 内部函数做一些不同的事情:
- PrimitiveIndex() 返回当前几何体的三角形索引,但它会为 BLAS 内的每个新几何体重新启动,所以我不知道哪个被击中了。
- InstanceIndex() 返回顶层索引,不返回底层索引
- InstanceID() 同样,只为顶层定义
最佳答案
从 D3D12_RAYTRACING_TIER_1_1
开始,有一个名为 uint GeometryIndex()
的新内部函数 Specification .
关于hlsl - DXR : How to identify the geometry instance of the bottom level AS inside the closest hit shader,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57943297/