论文部分内容阅读
近二十年间,随着计算机相关技术尤其是图形学技术的发展,计算机图形学产生了巨大的变革,三维图形学在各领域的应用也日趋广泛。与此同时计算机图形硬件也遵从着摩尔定律飞速发展,这让我们可以用廉价的设备实现过去不敢想象的功能,图形学应用中的实时显示和真实感绘制得以为大众所接受,并且成为了人们关注的焦点。图形学中碰撞检测应用广泛,包括三维仿真、虚拟装配和三维游戏等。碰撞检测从时域上可划分为离散碰撞检测和连续碰撞检测。在虚拟交互中不管是离散碰撞检测还是连续碰撞检测,由于虚拟屏幕上显示的模型全部都是不精确的模型,而工业应用的三维模型都是边界表示的实体模型,在构造结构上有本质的区别,因此显示的模型与精确表述的模型之间都存在偏差。在需要极高精度的制造业,通过虚拟交互来仿真制造过程均是不准确的表示。与图形学中的碰撞检测不同的是,工业级别的边界表示模型间干涉检查要进行实体求交和布尔运算。图形学中的碰撞检测还有学者去改进性能,由于实体模型涉及实体求交和布尔运算,计算量非常大,因此几乎所有的CAM软件对于实体模型的干涉检查都是静态的。本文开发了一个实时碰撞检测系统,使得虚拟装配中的模型在精度和速度上达到了一个均衡。本文主要做了以下工作:1.本文对常见的层次包围体碰撞检测算法进行了全面的分析、比较。目前离散碰撞检测算法的“穿透效应”,而连续碰撞检测的好处是能够解决这个“穿透效应”,但速度稍微有些慢。通过对比,找出了一个适用于网格模型的碰撞检测算法C2A,该算法可以解决所有的三角网格模型之间的碰撞检测,并且不需要假定模型具有某种拓扑结构。2.针对实体模型间干涉计算的速度问题,我们把精确表述的实体模型转化为网格模型,同时使网格模型与后台的实体模型在时间,位置上保持一致。由于网格模型的碰撞检测空间区域要比实体模型的干涉检查区域要大,因此在对不精确的网格模型操作时,若网格模型没有碰撞,则实体模型间肯定未发生碰撞,这时一直关闭实体模型的干涉检查功能;若网格模型发生了碰撞,这时就会开启实体模型的干涉检查,计算出的干涉量也是准确的。通过网格模型与实体模型的映射关系,按需开启和关闭干涉检查,提高了速度,达到了实时性要求。3.通过以上两种方法本文搭建了一个虚拟交互系统,开发了自己的碰撞检测方法,即基于开源工程OpenSceneGraph的实时动态碰撞检测系统。系统可以通过后台直接读取CATIAV5数据,并在系统内部对其离散网格化,建立实体与网格一一对应关系,对碰撞检测和干涉检查进行结合,使得初检时使用网格模型的碰撞检测算法,若碰撞再进行实体模型的干涉检查,能到达到实时性碰撞检测。