基于物理模型的实时动画实现方法

the Application of Computer Technology  •
计算机技术应用Electronic Technology & Software Engineering  电子技术与软件工程• 161【关键词】物理模型 计算机实时动画 碰撞检
成都理工大学学报测技术
在我们平时的学习和生活中,随处都可以
接触到计算机实时动画技术,比如炫目的3D
动画电影、游戏人物等。在物理模型下进行实
时动画设计,充分考虑各种外力形式对布料
模型的形变作用,可以达到动态仿真效果,使
计算机模拟动画充分反映出现实世界的物理规
律,从而给人带来更加真实的视觉感。对计算
机实时动画技术进行分析,有利于提高我们的
计算机和物理学应用能力。
1 计算机模拟环境配置
童话屋
本次设计的布料实时动画以Visual C++
为开发平台,采用C++语言和OpenGL 图形
API 。OpenGL 是一款功能强大的计算机三维
图形接口,包含120多个图形函数库,支持几
何模型构建和动态仿真。初学者也可以快速上
手应用,软件开发难度较低。OpenGL 的三维
场景交互程度高,渲染效果逼真,性能非常
2013河南中招试题卓越。采用OpenGL 三维图形设计界面,可以
满足本次设计的软件需求。物理引擎则选择
Physx 引擎,可以自动引入牛顿动力学原理,
增加系统交互性,高度模拟自然界中的物体特
征,得到较为逼真的模型和动画效果。在上述
模拟环境配置条件下,我们可以将布料模型设
计为具有质量的三角网格模型,遵循牛顿第二
定律进行设计,为仿真效果提供保障。
2 质点-弹簧模型
从上述分析可知,质点-弹簧模型易于计
海尔微博
算和实现,因此在计算机实时动画制作中得到
了广泛应用。本文采用该模型构建的布料模型
由一系列均质、离散化的质点组成,质点之间
连接有不同类型的弹簧,假定弹簧长度不为零,
且不考虑其质量,加入弹簧的目的是模拟布料
纱线之间的相互作用力。布料纱线的内部作用
力可分为结构力、弯曲力和剪切力,因此弹簧
也分为三种类型,即结构弹簧、弯曲蛋黄和剪基于物理模型的实时动画实现方法
文/郝笑弘
毛利润
切弹簧。通过三种弹簧的应用,可以充分模拟布料的各种运动形式,获得真实的视觉感。此外,还要考虑布料所受的外力作用,模拟布料在下落、悬挂或与其他物体发生接触时的运动状态。可以将外力分为重力、摩擦力和空气阻力等。其中,重力使布料模型各质量的重力之和,空气阻力能够减缓弹簧等爱
拉伸形变,使布料模型逐渐趋于稳态。3 超弹性形变处理方法在布料的质点-弹簧模型动画模拟过程中,若将布料某一点固定,此时受到的拉伸力如果过大,会导致布料被撕裂或断开。在拉力作用质点附近,弹簧会出现超形变现象,而远离拉力作用点的质点拉伸长度则接近正常,这种现象被称为布料的超弹性形变,是布料动画模拟过程中需要处理好的问题。在布料质点-弹簧模型的模拟过程中,为方便计算,通常假设弹簧弹性因子为线性变化,但在实际受力情况下,其形变并不完全符合线性规律,这是超弹性形变问题的根本成因。另一方面,布料动画的帧刷新速度要能够被人的肉眼所接受,实时动画仿真对画面更新率有较高要求,需要适当降低动画时间步长,过大的时间步长也会引发超弹性形变问题。针对这一问题,传统的解决算法主要包括基于质点速度的修正方法和基于质点位置的修正方法。其中,质点位置修正法是由Provot 等人基于逆向动力学原理提出的修正方法。在每个时间步长模拟结束后,对各质点位置进行计算,进而计算弹簧拉伸铝,如果超过最大拉伸率的设定值,就对弹簧两端质点的位置进行修正,将弹簧拉伸率控制在最大拉伸率范围内。基于速度的修正方法最早由Vassilev 提出,是在每个时间间隔结束后对弹簧拉伸率进行检查,与预先设定值进行比较,根据实际拉伸率与设定阈值的关系,对质点速度进行修正。该方法后来经House.tal 和Bridson 等人的改进,修正效果有所提高,但总体来看,修正效率较低,且约束不严格,可能会再次引起超弹性形变为。针对传统解决算法的不足,目前又提出一种新的解决方法,即基于拉伸张量的排序算法,该方法针对布料超弹性形变的特征和形成原因,采用拉伸张量对质点进行倒序排列,优先对拉伸张量值较大的质点状态进行调整,采用迭代算法进行排序和更新,可以明显提高超弹性形变问题的处理效率,满足实时动
画模拟效果要求。4 包围盒碰撞检测方法本文采用经过优化的AABB 层次包围盒法实现碰撞检测,该方法对三角化的布料模型和待碰撞物体建立层次包围盒二叉树,遍历两棵发生碰撞的二叉树,判断重叠区域,检测某个动画时间点,布料与其他物体的碰撞情况。AABB 包围盒法的应用分为两个阶段,即初步检测阶段和详细检测阶段。在初步检测阶段,通过判断包围盒在三个坐标轴的投影情况,判断包围盒是否存在相交,若包围盒的投影都重叠,则两包围盒必然相交,若至少有一个投影布重叠,则不发生相交,从而将三维碰撞检测转化为一维空间的碰撞检测问题。在湘西检测阶段,主要应用直线-三角形碰撞检测方法,判断碰撞是否发生,并执行碰撞响应函数。采用上述碰撞检测方法,可以同时满足计算机动画模拟的真实性和实时性要求。5 结束语综上所述,通过对计算机实时动画的实现原理和实现方法进行分析,可以了解到计算机实时动画制作的关键技术,明确模拟平台的配置条件。在此基础上,构建合理的计算机动画模型,做好超弹性处理和碰撞检测,可以使动画效果接近真实,并满足实时性要求。通过本次研究和实践,使我对三维动画的制作有了一个新的认识,并在查阅资料和实践过程中,提高了知识技能的应用能力。参考文献[1]周冬,邵敏之.三维真实感角动画中运动模糊感知的实验研究[J].中国体视学与图像分析,2016,21(04):393-401.  [2]肖凡,徐丕文.网络动画仿真演示实现分析[J].无线互联科技,2015(23):24-25.  [3]范晓晔,田丰林,陈戈.基于GPU 的实时体仿真算法实现[J].计算机技术与发展,2014,24(11):17-22.  作者简介郝笑弘(1980-),女,山西省吕梁市人。硕士学位。研究方向为计算机科学与技术。作者单位山西水利职业技术学院  山西省太原市
033000

本文发布于:2024-09-25 16:39:19,感谢您对本站的认可!

本文链接:https://www.17tex.com/xueshu/212460.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:动画   弹簧   布料   模型   质点
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议