【问题标题】:How to traverse a BSP tree back to front如何从后向前遍历 BSP 树
【发布时间】:2012-01-14 03:44:35
【问题描述】:

您好,我正在编写 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 和截锥体。

谢谢。

【问题讨论】:

    标签: c++ bsp-tree


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 2012-02-29
      • 1970-01-01
      • 1970-01-01
      • 2011-07-09
      • 2011-03-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多