我有一个BSP树加载到内存中.我首先找出我所在的叶子.接下来,我解码PVS.然后,我浏览那个PVS中的每个区域,看看它是否位于我的视锥内.
我被告知这是不正确的渲染方式,我实际上应该通过遍历BSP树进行前后渲染.我到底该怎么做?我已经看到了许多不同的方法,这就是我问的原因.
例如,Quake 3 BSP渲染说:遍历BSP以确定摄像机位于哪个叶子中.检索并解压缩此叶子的PVS,迭代PVS并在BSP中标记叶子.遍历远近的BSP如果未标记节点,请跳过它.测试节点边界框对照相机Frustrum.将当前叶子添加到再现列表中
这仍然是今天完成的标准方式,或者至少对于更简单的游戏而言.
我一直在尝试实现一个三维BSP树来渲染单个对象(一个立方体,一个带有圆柱体的盒子等),这些对象是透明的.据我所知,这应该有效,但事实并非如此,我无法弄清楚原因.我读过的所有内容都指的是在两个维度或多个对象中使用的BSP树,所以我想知道我是否只是误解了可以应用哪些BSP树而不是在我的代码中出错.我在线查看了很多内容,我的代码与Bretton Wade(ftp://ftp.sgi.com/other/bspfaq/faq/bspfaq.html)相同,所以如果有人有任何样本特别是单个对象/透明度的BSP代码,这将是美妙的.
谢谢.
我知道如何利用像Quake这样的旧3D级别的预构建BSP树,甚至编写了一个级别渲染器.现在,我正在进行下一步实际构建BSP树的步骤.我知道它背后的过程,但我想知道是否有人有任何建议或指向教程的链接.