新-第8篇-计算机动画技术.ppt

  1. 1、本文档共44页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
计算机图形学 Computer Graphics 目前,随着计算机硬件性能价格比的快速提高和OpenGL、DirectX等图形标准的广泛应用,商用动画软件公司纷纷推出了动画软件的微机版本。如原来运行于工作站上价格昂贵的动画软件Alias|Wavefront、maya和softimage现在都已有了PC版本。 随着PC 图形加速卡的性价比迅速提高,使得在基于PC的微机工作站上制作动画也能与在SGI工作站上一样得心应手。 当前,商业动画软件的功能越来越强,已经能够轻松制作出许多足以以假乱真的影视动画特技,这在《侏罗纪公园》、《终结者》等电影中都得到了淋漓尽致的展现,观众已很难区分哪些是计算机生成的动画,哪些是模型制作的效果。 1、刚体动画 2、软体动画 3、关节动画 4、粒子动画 算法动画是指按照物理或化学等自然规律对运动进行控制的方法、针对不同类型物体的运动方式,从简单的质点运动到复杂的涡流、有机分子碰撞等,一般按物体运动的复杂程度分为质点、刚体、可变软组织、链接物、变化物等类型、也可以按解析式定义物体。 用算法控制运动的过程包括:给定环境描述、环境中的物体造型、运动规律、计算机通过算法生成动画帧。 目前针对刚体和链接物已开发了不少较成熟算法,对软组织和群体运动控制方面也做了不少工作。 采用什么方法来进行插值运算呢? 基于物体空间的碰撞检测算法 基于物体空间的碰撞检测算法又分: 空间剖分法(space decomposition) 层次包围体树法(hierarchical bounding volume trees) 包围体技术 1976年由Clark提出。 基本思想:用一个简单的几何形体(即包围体)将动画场景中复杂的几何物体围住,通过构造树状层次结构可以越来越逼近真实的物体。当对两个物体碰撞检测时,首先检查两者的包围体是否相交,若不相交,则说明两个物体未相交,否则再进一步对两个物体作检测,因为包围体的求交算法比物体求交算法要简单的多,所以可以快速排除很多不相交的物体,从而大大加快和简化了碰撞检测算法。 基于此,包围体的碰撞检测算法在很多动画系统中被广泛采用。 包围体技术特点: 基于层次包围体的碰撞检测算法根据包围体类型的不同可以区分为: 1、包围球体 2、AABB轴对齐包围体(Aligned Axis Bounding Box) 3、OBB有向包围体(Oriented Bounding Box) 4、k-dop包围体(Discrete Orientation Polytope) 5、QuOSPO包围体(Quantized Orientation Slabs with Primary Orientations) 6、凸块层次包围体 7、混合层次包围体等等。 1.包围球 包围球定义为包含物体的最小的球体。包围球的球心可以用物体顶点坐标的最大值和最小值的一半来确定。 包围球间的相交测试比较简单。对于两个包围球(c1,r1)和(c2,r2),如果球心距离小于半径之和|c1-c2|≤r1+r2则两包围球相交。 包围球的构造十分简单,而且存储一个包围球所占的内存也很小。包围球适合于长宽高相差不多的物体,且物体频繁发生旋转的情况,因为无论物体如何旋转包围球都不需要再次更新。 但是对于长条形的物体,包围球的紧密性很差,建构物体层次树时会产生较多的节点,导致大量冗余的包围体之间的求交计算,因此,除非物体大量旋转的情况之外,现在的动画或者游戏当中几乎不会使用该方法。 2.AABB包围体 AABB(Aligned Axis Bounding Box)其实是沿坐标轴的包围体,它是包含几何对象且各边平行于坐标轴的最小六面体。构造时根据物体的形状和状态取得坐标X,Y,Z方向上的最大最小值就能确定包围体最高和最低的边界点。 检测两个AABB包围体是否相交非常简单,只要利用投影法:当且仅当三个坐标轴上的投影均重叠,两个AABB包围体才相交。只要存在一个方向上的投影不重叠,那么它们就不相交。所以检测两个AABB包围体是否相交最多只需要6次比较运算。 AABB包围体具有建构简单快速、相交测试简单、内存开销少的优点,能较好地适应可变形物体实时更新层次树的需要,但AABB也存在包围物体不够紧密,在一些情况时将出现较大的空隙,从而导致层次二叉树的节点冗余,对碰撞检测效率有较大影响。 为此,Bergen提出了一种有效的改进算法。该算法采用分离轴定理(Separate Axis Theorem)加快AABB包围体之间的相交检测,同时又利用AABB局部坐标轴不发生变化的特性加速AABB树之间的碰撞检测。他的算法与Gottschalk等提出的采用OBB树的碰撞检测算法相比,计算性

文档评论(0)

187****5045 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档