0

嗨,我正在编写 Quake 级别的渲染器。我已经到了需要考虑透明度的地步。我知道二进制空间分区器(BSP)树的格式化方式是数据按距离排序,或者至少我听到的是这样,但我不知道如何实现这一点。我已经构建了我的 BSP 树并解码了我的 PVS。

我是否: 1. 弄清楚我在哪一片叶子上。例如 6。2. 从最大值渲染到叶子 6,假定这些叶子在我的截锥体和 PVS 中。3. 从 min 渲染到叶 6,再次考虑 PVS 和截锥体。

这不是 BSP 树的工作原理吗?

这就是问题#1。第二个问题涉及 PVS。我知道在过去,当空间是一个问题时,PVS 很棒,因为它被压缩了。我现在拥有它的方式,我不会在每次渲染帧时解压缩 PVS,我只执行一次并将叶子的可见性存储在我在渲染过程中遍历的向量中。这有意义还是适得其反?

所以再次回顾一下,我可以假设一个 BSP 树的结构使得叶子已经按距离排序,在叶子 6(总共 9 个叶子),我应该渲染 9、8、7、6、1、2、3, 4、5(假设所有 9 在叶子 6 的 PVS 中都可见)同样考虑到 PVS 和截锥体。

谢谢你。

4

1 回答 1

0

要重新渲染到前面,我建议首先遍历/递归相机所在的节点(近节点)。完成后,您将遍历远节点。

于 2011-12-06T14:50:18.103 回答