论文部分内容阅读
人群仿真在社会群体安全、建筑设计、紧急疏散、教育培训、军事演练、数字娱乐、历史场景重现等方面具有广泛的应用价值。越来越多从事虚拟人研究的学者开始关注人群仿真技术及相关算法的研究。 大规模人群仿真的研究具有重要的社会意义,主要包括两个方面的研究目标:如何提高人群仿真的真实性(包括行为真实性和动画视觉真实性)和如何提高人群仿真的实时性(即在扩大人群规模的同时提高仿真的效率)。前者可以通过对虚拟环境建模、人群行为模型、人群运动建模等问题的研究来实现,后者则可通过对人群实时渲染技术、人群仿真系统结构设计、并行人群仿真相关算法等问题的研究来实现。 在某一特定仿真真实性的前提下实现大规模人群仿真的实时性是当前面临的难题。为此,本文采用并行计算的理论方法,利用现有的多核 CPU及多核GPU的硬件环境,实现了高性能的并行人群仿真。论文主要从并行人群仿真的任务划分算法研究、并行人群动画研究和并行人群仿真体系结构研究三个方面对高性能人群仿真技术进行了深入的研究。 (1)任务划分算法研究是并行人群仿真的关键问题之一,主要分为两个研究分支:基于个体分组的任务划分方法和基于空间区域分割的任务划分方法。 本文提出了两种基于图分割的个体分组的任务划分方法:(a)在基于MST的连通图方法中,首先通过个体的兴趣区域交叉构建无向连通图子图集,对Agent平面坐标点集生成的最小生成树进行冗余边剔除,求得子图间的最小连通边集;然后通过合并子图集与最小连通边集得到子图集的最小无向连通图;最后对无向连通图进行 K路分割以达到任务划分目标。该算法通过最小生成树构建连通图可有效减少任务划分的运算量,使用 GPU求解又能保证算法的性能,可以在保证较低的分区代价的前提下达到较高的运算性能,同时可克服倾斜分布的群体分区执行性能较均匀分布偏低的不足。(b)在基于Delaunay的连通图方法中,首先通过 GPU计算 K-AOI边集,接着通过Delaunay算法求得平面个体顶点集的Delaunay边集,然后通过合并 K-AOI边集和 Delaunay边集的方法构建无向连通图。最后采用 K路无向图分割方法实现任务的划分。两种方法相较现有其他个体分组方法都具有较好的划分代价及执行性能。两种算法能够有效应用于平坦开阔场景的并行人群仿真。 本文提出一种基于环境结构理解的空间区域分割的任务划分方法,以解决现有基于区域的任务划分算法将环境视为平面,不适合于复杂多层次仿真场景的问题。通过采用基于区域的划分思路,引入环境结构因素,使得所提自适应任务划分算法适用于多层次复杂环境,首先自动读取场景模型并通过理解转换为连通邻接区域集,然后对区域进行快速粗粒度划分,自然消除了被障碍隔离的相邻区域个体间的关联计算,大大减少了节点间通信量,使之更适合于大规模人群仿真应用。 (2)在并行人群动画方面,本文提出了一种基于运动捕捉的GPU人群动画方法。高质量的人群渲染效果是大规模人群实时仿真的关键研究内容,仿真的最终目的是呈现给用户感性的视觉认知。个体模型高度复杂的人群动画渲染成为大规模人群仿真面临的问题。通过对运动文件的预处理使得运动数据在个体的运动状态更新和几何变换运算方面适合在 GPU环境下进行并行处理,通过采用细分曲面的方式自动生成运动捕捉模型骨架对应的不同细分层次的几何网格模型,实验结果显示方法对复杂几何模型个体表示的大规模人群具有高效的渲染速度。 (3)本文提出一种混合式并行人群仿真体系结构,其中包括 CN计算节点、CC主控节点和Viewer视景节点,并设计了三种节点各自承担的任务及相互之间的通讯关系。并行群体仿真体系结构主要包括四种:基于 CPU的多线程并行,基于GPU的流式并行,基于分布式的多机并行以及基于GPU与分布式的混合并行方式。混合并行既满足可扩展性需求,又能充分挖掘每个计算节点的性能,已成为并行群体仿真领域的重要研究分支。群体仿真研究可基于Agent或流体进行,考虑到基于 Agent的群体能够更丰富的表达个体的特性和行为方式,相关 AI算法亦可用于提高 Agent的智能,因此本文基于 Agent方式进行群体仿真研究。分布式仿真实验表明,混合式体系结构对室内多层楼宇或室外场景大规模人群仿真均具有较高仿真性能,相同规模群体的仿真性能与仿真节点数成线性关系表明系统具有良好的可扩展性。 通过以上三方面的研究可以有效的构建并行人群仿真平台,应用于各种大规模人群动画和大规模人群行为仿真的研究过程中。