一:概述
为了提高效率,光线追踪需要将几何体组织成加速结构(AS, 即Acceleration Structure),以减少渲染过程中光线与三角形的相交测试次数。这种层次结构通常在硬件中实现,但只有两个层级对用户可见:一个顶层加速结构(TLAS),它引用任意数量的底层加速结构(BLAS)。通常,BLAS对应于场景中的单个3D模型,而TLAS对应于整个场景。
BLAS实际存储顶点数据。它们由一个或多个顶点缓冲区构建而成,每个缓冲区都有自己的变换矩阵(这的矩阵与TLAS矩阵不同),这允许我们在单个BLAS中存储多个位置模型。请注意,如果一个对象在同一个BLAS中实例化多次,其几何体将被复制。
TLAS将包含对象实例,每个实例都有自己的变换矩阵和对BLAS的引用。如下图所示:
二: 底层加速结构(BLAS)的创建过程:
void RayQueries: