论文部分内容阅读
虚拟现实技术已经不再是新兴产业,作为一个日渐成熟的科研领域,其研究内容主要都集中在提高算法效率、改进技术性能方面。游戏产业凭借互联网的普及,近些年已逐步发展成为虚拟现实领域中的标志性核心产业。面对玩家对游戏画面质量要求的不断提高,除了模型、地图的制作受到了极大的考验之外,碰撞检测技术更是面临着巨大的挑战。精美的画面背后是数以万计的三角面片,大规模游戏场景的复杂度直接制约了碰撞检测的效率。鉴于人眼识别画面帧的速度慢于计算机刷新的速率,因此在游戏中的仿真、碰撞检测对实时性的要求高于精准性的要求。本文以此为突破口,对已有方案进行改进,以达到提高碰撞检测效率及性能的目标。其主要研究内容包括以下方面:1.基础分析。通过文献阅读的方式找出在游戏中经典常用的碰撞检测方案,并学习相关技术予以实现。针对算法的特征以及其适用范围,归纳总结出他们的优缺点;在研究实践阶段,了解和掌握碰撞检测中涉及的数学基础知识,为本文课题研究奠定坚实基础。2.解决方案。针对游戏中主要存在的两类不同的碰撞检测,确定不同的解决思路。在碰撞检测系统可分段完成的基础上,使用不同的技术来满足碰撞检测算法的阶段性要求,从而提高游戏中碰撞检测的效率及性能。该部分研究主要集中于两个方面:首先,将射线技术、SAP技术应用于初步碰撞检测阶段,针对动态研究对象与静态场景之间的碰撞检测——通过动态研究对象所在包围盒中心点发出的射线与BSP空间划分过的静态场景进行相交测试;针对动态研究对象之间的碰撞检测——利用AABB包围盒在轴向进行投影,并通过数组存储进行插入排序,然后通过轴向重叠情况的判定来剔除不可能发生碰撞的研究对象。其次,利用粒子群优化算法以及随机方法进行精确碰撞检测,将可能发生碰撞的包围盒中心点作为采样点构建搜索空间,满足条件的情况下不断更新,最终返回最优结果。最后,将精确碰撞检测阶段计算出发生碰撞的研究对象进行最终的图元相交测试,为碰撞的响应提供必要信息。3.实验分析。利用OpenGL实现本文改进方案,并利用开源的Opcode碰撞检测库再次实现,同时分析算法改进前后的效率与性能。实验证明本文改进方案在大多数情况下都表现良好,检测效率有所提高,并且性能优越。该部分还将改进方案应用于游戏引擎中,证明该方案具有可操作实用性。