论文部分内容阅读
自从20世纪80年代Reynolds将boid系统用于模拟鸟群、鱼群和牛群等动物的群体运动,群体动画便逐渐成为研究热点,在计算机图形学和虚拟现实领域中占据十分重要的研究地位。近年来,群体动画技术的应用十分广泛,在数字娱乐、公共安全、军事演练、城市规划和科研仿真等领域都起着重要的作用。与传统的帧动画相比,群体动画技术大量减少了动画制作者的工作量,并且能够产生更加壮观自然的场景。角色建模、路径规划、碰撞避免是群体动画中的三个关键技术。这些技术之间互有交融:在角色建模的过程中应当考虑碰撞避免(如:给个体添加包围盒);碰撞避免问题在一定程度上可以看作是局部路径规划问题;路径规划时应该选择最短且无拥塞现象(避免碰撞)的路线。本文的研究目的是解决群体动画中的路径规划、碰撞避免、穿透和“晃动”等问题。所提出的算法力求在视觉效果与算法效率之间找到一个平衡点,使其能够应用于大型复杂的虚拟场景。本文的研究工作主要包括以下三个方面:(1)构建了一种基于密度信息与DC模型的群体仿真算法,并从两方面对群体动画进行研究:群内仿真与群间仿真。在群内仿真中将环境划分为一系列可行走区域。从全局规划角度出发,考虑群体可行走区域的实时密度信息使行人选择非拥挤路径并自然顺畅地通过虚拟环境,有效地避免了个体进入拥塞路线产生不自然的碰撞现象。在群间仿真中,针对路径规划提出了一种新颖的DC模型。该模型考虑了全局路径和局部信息,并采用动态反馈机制最终确定智能体的目标。在实际应用中,动态反馈机制根据不同的场景制定不同的影响因子,为此我们提供了一个严谨的动态反馈表达式。在虚拟环境中可能会发生一些不可避免的穿透现象,我们提出了一种基于可变包围盒的解决方案。通过探索个体的初始位置信息和移动方向来制定角度规则,再确定优先级层次关系,进而解决穿透问题。实验结果证实了算法的有效性与健壮性。(2)提出了一种基于网格的实时人群路径控制算法。该算法通过在网格中传播距离信息的变化来实现动态的路径规划,而不需要对人群和障碍物有先验信息。利用补偿函数实现碰撞避免,即使用局部信息给障碍物添加一个“安全边界”来避免碰撞。该算法不仅有效提高了大规模人群运动仿真中碰撞避免的准确性,还极大降低了计算代价。通过对人群控制进行数学建模并进行相关实验,首先在二维网格环境下验证了该算法的高效性,再通过基于高度插值的三角剖分方法将二维网格扩展到了三维,验证了该算法在三维地形下仍能够实现很好的仿真效果。(3)改进了一种基于群体流信息的群体仿真算法,在多层次的多边形三维环境中使用导航网格为人群规划全局路径,利用群体流信息进行个体间的碰撞避免检测。该算法通过基于优先级层次的碰撞避免方法提高了碰撞避免的准确度,并且使用中止规则解决了个体在原始位置产生“晃动”行为的问题。群体动力学的理论研究显示,基于群体流的算法可以保留群体的本质特征,很适合模拟大规模的人群。实验结果表明,该算法可避免个体产生不自然的行为,有效提高了群体动画的真实性。以上解决方案各有其优势与独特性,在不同类型的虚拟场景中适合采用不同的解决方案。第一种方法先从个体出发解决碰撞避免,再从群组着手规划最优路径,局部与整体相结合提高了仿真过程的视觉效果。第二种方法不需要对人群和障碍物有先验信息,使仿真效率得到了进一步提高。第三种方法基于群体流信息,重点关注整个群体,能够模拟大规模的人群运动。