《Breaking The Walls》算法的第一印象和空间分割杂论
这个算法来自于国外的一篇论文《Breaking the Walls: Scene Partitioning and Portal Creation》(以下简称论文,为虾米不是国内滴? -_-b),全名在这个Blog转载Dreams_wu的那篇文章里,大家可以去下来看。
当处理室外场景的时候,四叉和八叉毫无疑问,室内场景的时候,Bsp和室内八叉也是挺不错的,其中以Bsp为最好。但是有一种场景,四叉和八叉显得力不从心,Bsp又显得有点过分,这就是传说中的“城市场景”。
城市场景的特点是:数据量异乎寻常的巨大,具有大量不规则的平面,八叉分割很容易就将场景划分得过于细致而丧失了八叉本身的优势。而Bsp则由于不规则平面的存在,易将场景切分得毫无规则可言,如一团乱麻(图片来自论文):
注意,白色的部分是建筑物。
这样的分割本身或许不是什么错误,但是,大空间的分割将直接导致大BSP树的产生,从而最终导致BSP算法效率的下降,同时,建筑物的外表面往往极为复杂(拜那些变态设计师所赐),没必要发生的BSP分割也因此增多了起来,最终的结果就是上图左:也就是我常说的诡异的空间~~ ^_^。
而相对而言,右边的算法:也就是所谓的Breaking The Wall (BW)算法,看起来就好很多。
BW算法基于这样一个理论:我们将3D的摩天大楼投影到2D平面(地面),那么,凡角落处,必有Portal,Portal和墙面围出的区域,必为Cell。这应该很好理解,建筑的外墙与另一栋相邻建筑的外墙之间,大凡就是街道和小巷,人能在其中穿行以跨越不同的区域,所以,这些地方肯定是要诞生Portal和Cell的。只是论文似乎忽略了一个问题(或者是我忽略了):天桥怎么办呢?还有连接两栋楼的那种天桥,他们是悬空的,投影时怎么投影呢?这个目前还没有想到解决方案。
BW算法的核心是一个2D平面的蔓延算法,这和我现在工作中所作的蔓延算法有点相似,但他是2D空间中发生的,而我所作的是3D的蔓延。蔓延和BSP一样,最后的结果都是Cell和Portal,Cell组成空间,Portal连接Cell。唯一的不同是,Bsp以平面划分空间,以分出Cell和Portal,它所依据的是“平面等分空间为正反”的真理,因此,凡分割必要求将上级空间切分完全,完全切分成正负两个半空间。
而BW蔓延法虽然也是以墙面(平面)作为基础,但它只是以墙面延伸而不是平面作为分割基础,因此不必要受平面无限延展的限制,可以看作特别优化过的BSP。对于一些划分过小的空间,BSP是无法忽略的,因为平面必须跨越整个分割空间,而蔓延法会直接将之忽略,因为延伸不必考虑全空间的问题,只需要尽可能延展就可以,灵活很多。因此最后的结果看起来就比BSP规则很多。我们可以想象一下,BSP类如切西瓜,每刀下去,西瓜必定一刀两断。而BW就不会那么冲动,它只要求尽可能分割,就如同雕冰雕,适可而止,决不容许一刀两断的事情发生——太浪费了。
最近上了上Gameres,发现OGRE社群在批判BSP方面很有一手,或者说,他们主要批判的是传统经典BSP分割算法。关于这个问题,我是这样认为的:首先,作为自动空间分割的方案,我们不可能要求太高,相对于让美工一个个Portal去摆的方案而言,任何自动算法肯定都是傻而又蛮的。开发的高效性和运行的高效性总是反比。BW在处理这类问题的时候,其性能已经很不错了,你当然不能拿他来跟手动摆Portal的方案相比,但是,也没必要这样比,因为手动Portal的话,BSP其实就表现得很不错了,开发效率又高,运行效率也不低。放着成熟的技术不用,总是在开发新的技术和概念,很没必要的。
空间分割的首要原则应该是:没有普适分割法,只有最适分割法。只有知道自己要分割什么,目标是什么,才能得到最好的分割法和最好的空间。在这一点上,我的想法是:什么都不用批判,什么也都不需要批判,一切都是恩典,懂得感恩,才能获得一切。大家认为呢?
关于BW,简单说到这里,论文写得最全,大家可以下来看看。原文正在翻译,不过遇到点麻烦,有些句子实在有点难懂,我尽量快点吧,大家有什么内外结合或者城市场景分割的更好方案,请麻烦告诉我一声啊~
李巍[ noslopforever(天堂里的死神) ] 原作,转载请注明出处:http://blog.csdn.net/noslopforever
email : noslopforever@yahoo.com.cn
分享到:
相关推荐
A星算法是一种在图形平面上,有多个节点的路径中,寻找从起始点到目标点的最佳路径的算法。它属于图搜索算法的一种,广泛应用于地图寻路、网络路由等领域。A星算法通过启发式评估,结合从起点到当前点的实际成本和从...
### 嵌入式软件:作品集 —— Colin Walls #### 概述 《嵌入式软件:作品集》由Colin Walls编写,该书详细介绍了嵌入式系统的各个方面,包括其基本概念、硬件设计的影响因素、软件迁移、测试方法以及特定领域的...
【摘要】介绍了一种改进的粒子群优化算法(MPSO),该算法基于广泛的粒子群优化算法(CLPSO)的思想,并引入了选择墙的概念,同时结合高斯分布的原理来提升算法的收敛性。实验结果显示,改进后的算法在防止陷入局部...
“Walls”在这个上下文中可能是指在实现这些目标时遇到的技术难题或理论限制,比如物理层的限制、算法复杂性、以及实际环境中的多径传播和衰落等。解决这些问题需要深入研究信号处理、检测理论和通信协议设计。 综...
《Spring in Action》第四版是由Craig Walls撰写,张卫滨翻译的一本权威Spring框架实战教程。这本书基于Spring框架4.0版本,详细介绍了如何利用这一先进的Java应用开发平台进行实践操作。Spring框架是Java世界中不可...
Walls和G.J. Milburn著作的量子计算基础教材,该书详细阐述了量子光学的理论基础和技术应用,内容包括从入门概念到当前研究课题的广泛材料。本书的物理概念阐释清晰,理论推导简洁,适用于量子计算和相关物理学领域...
这反映出西方文化倾向于开放和融合,比如牛津和剑桥等著名学府,其校园并未被围墙所环绕,它们与城市融为一体,体现出一种开放和包容的精神。 这种对比揭示了中西文化在对待公共空间、边界和社区意识上的显著差异。...
“Walls(城墙ACM1161)软件系统设计报告”指出这是一个与 ACM(Association for Computing Machinery)竞赛相关的项目,编号为 ACM1161。题目“城墙”暗示了该竞赛可能涉及到的问题是围绕构建、保护或攻击城墙的策略...
simple ones, supply the need and thus the motivation and much of the explanation. When learning a new programming language, my first step is to program the game of craps. If I can build a ballistics ...
本书分为两个版本:第一版于1994年出版,第二版则在原有基础上进行了大量更新,以反映量子光学领域近年来的重要进展。以下是本书各章节内容的大致介绍: 1. **绪论**:介绍了量子光学的历史背景、研究对象以及与...
该算法是解决Maxwell方程组的常用方法之一,广泛应用于电磁场的模拟和计算电磁学领域。 Matlab是MATrix LABoratory的缩写,即矩阵实验室。它是一种高级的数学计算软件,常用于科学计算、数据分析、算法开发、数据...
在本篇文章中,我们将深入探讨POJ平台上的一系列经典图论问题,并根据提供的部分内容,总结出每个题目背后所涉及的核心算法和技术点。这些题目不仅考验了参赛者的逻辑思维能力,同时也对数据结构和算法的掌握提出了...
SpringBoot入门-配置-开发-测试~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Also we are investigated that with different shapes of EBG on the walls we can reduce S12 more than 4 dB. At 0.94GHz it is shown that this translates into a center to center separation between ...
室内定位算法,有助于研究者认清研究方向,给定位算法一个准确的描述,是很好的参考教材。the possibility for the user to be notified by visible and Waveformof Distance audible warnings using buzzer and ...
Building internet fire walls by visual basic
The document contains step by step java script program to check collision against fours walls of canvas.
Manhattan Associates公司是物流解决方案的领先供应商,它将向Walls Industries服装生产商推广运用“电子程控经理”这样一种RFID解决方案部件。 Walls作为对零售客户,代销点和在线购物等不同群体的销售商,将选用...
### Spring in Action 第三版 —— Craig Walls #### 书籍简介 《Spring in Action》第三版是由Craig Walls编写的关于Spring框架的专业书籍。本书详细介绍了Spring 3.0版本的功能和特性,为开发者提供了深入理解和...
"Breaking down the walls that come between us for all time"是歌曲中的另一个关键点,它呼吁打破种族、文化和国家之间的障碍,实现持久的和平。"A li la"在这里可能是一种表达和谐与欢乐的感叹,类似于“阿里郎”...