我目前正在执行一项任务,其中我必须为球体数据集实现一个仅 CPU 的光栅化器。数据集是静态的,因此在运行时不会发生变化,即使整个数据集可以在摄像机前旋转。
现在的想法是实现一些遮挡剔除方法,以便从相机的角度来看被其他球体遮挡的球体不会进入光栅化器的下一个阶段,(针对 z 缓冲区和像素着色进行测试)浪费CPU时间。
我一直在寻找实现这一目标的可能方法。首先,我想到了一个在八叉树中维护场景模型的分层 Z 缓冲实现。然而,由于数据集旋转,我需要重新计算每一帧的八叉树,这可能非常昂贵。我对吗?
我不确定在这种情况下,空间散列或一些更便宜的计算球体数据集的分层组织是否会更有益。对此有什么想法吗?请注意,这必须在 CPU 上完全实现。