放弃Cell-Portal,开始做松散八叉和层次包围了

如果要问,相对大规模和复杂的室内场景,最具有效率的组织和渲染方式是什么,那么Cell-Portal和衍生而得的PVS肯定是不二之选,这也是当初会去看BSP和BW等一系列Cell-Portal的原因。八叉和层次包围,一直没有足够重视。

上周末,看了看所需分割的场景,发现场景基本都是存在大量空地的不封闭空间,有些场景甚至没有合理安排Portal的地方。而对于不封闭空间,那么,Cell-Portal本身的优势就彻底没了。即便BSP,对于这种空间,虽然可以做,但是也很难舒舒服服地将这种空间分割成我们希望的样子。由于摄像机基本一马平川,这些分割法基本都没有意义。

老大说,在这种情况下,只能用八叉和层次包围了。

诚然,八叉和层次包围有很多很多很多很多很多很多不足,很少有人会考虑将他们用作空间分割:比起BSP,它们可能产生的细节空间可能更加恐怖:大量小空间,每个空间包含数量不多的三角形,且这些三角形可能从属于多个材质和纹理。相比于这些缺点,容许大变动空间的优点就形如鸡肋,一点意义都没有。

然而,这毕竟是一个“变态”的世界,而在“变态”的世界中,任何“正确”的做法都是错误的。所以,我们或许也是被迫使用这样的算法——明知其低效,但你找不到更高效的方式,因此,它最优。感觉自己好邪恶啊……

回到上一个世纪,回到上一个时代,重新捡起八叉和层次包围——这两个迄今继续在物体管理上大行其道,却在场景管理上早已出局的算法,用来满足场景的分割要求。 ^_^

变态多了,就不变态了。但是,这样做的场景,真的是好的场景吗?……毕竟,那不是我该问的问题。

或许这样的怀疑和挣扎是没必要的,还是那句话:

“场景分割中,没有最优解,只有最适解。”

希望能尽快结束吧……

你可能感兴趣的:(算法)