Graphics 旋转球体数据集的遮挡剔除

Graphics 旋转球体数据集的遮挡剔除,graphics,3d,octree,zbuffer,occlusion-culling,Graphics,3d,Octree,Zbuffer,Occlusion Culling,我目前正在进行一项任务,其中我必须为球体数据集实现一个仅限CPU的光栅化器。数据集是静态的,因此在运行时不会改变,即使整个数据集可以在摄像机前旋转 现在的想法是实现一些遮挡剔除方法,这样从相机的角度看被其他球体遮挡的球体就不会进入光栅化器的下一阶段(针对z缓冲区和像素着色进行测试),从而浪费CPU时间 我一直在寻找实现这一目标的可能途径。首先,我想到了一个分层Z缓冲实现,它将场景模型保持在八叉树中。然而,由于数据集旋转,我需要每帧重新计算八叉树,这可能会非常昂贵。我说得对吗 我不确定在这种情况下

我目前正在进行一项任务,其中我必须为球体数据集实现一个仅限CPU的光栅化器。数据集是静态的,因此在运行时不会改变,即使整个数据集可以在摄像机前旋转

现在的想法是实现一些遮挡剔除方法,这样从相机的角度看被其他球体遮挡的球体就不会进入光栅化器的下一阶段(针对z缓冲区和像素着色进行测试),从而浪费CPU时间

我一直在寻找实现这一目标的可能途径。首先,我想到了一个分层Z缓冲实现,它将场景模型保持在八叉树中。然而,由于数据集旋转,我需要每帧重新计算八叉树,这可能会非常昂贵。我说得对吗


我不确定在这种情况下,空间散列或计算spheres数据集的层次结构是否更为便宜。有什么想法吗?请注意,这必须在CPU上完全实现。

前后范围检查

如果球面不相交,考虑它们的圆盘。< /P>