老哥学习网 - www.lg9.cn 2024年05月07日 23:19 星期二
当前位置 首页 >诗词歌赋 >

基于嵌入式系统的人工生命动画引擎关键技术研究 嵌入式系统软件

发布时间:2019-01-25 07:42:49 浏览数:

  摘要:传统动画采用关键帧技术,设计出的动画缺乏自主性、情节单一 、在一定程度上不能满足用户的需求。因此本文采用基于人工生命的方法,进行动画引擎的设计。考虑到嵌入式系统中硬件性能有限的问题,提出了适应嵌入式系统的人工生命动画新方法,即采用分层算法构建人工生命模型,以提高动画运行速度、运行效率。另外,由于50%的CPU处理时间花费在渲染引擎上面,重点分析了图形渲染中的几个关键技术,并在理论与实践相结合的基础上实现了一个简单的图形渲染引擎。
  关键词:人工生命;嵌入式系统;动画引擎;图形渲染
  中图分类号:TP368.1文献标识码:A文章编号:1007-9599 (2012) 03-0000-02
  Artificial Life Animation Engine Key Technology Research Based on Embedded System
  Wang Lili1, Li Guoyi1, Meng Xianyu1, Li Han1, Wang Fei2
  (1 Liaoning University of Technology, Electronics and Information Engineering College, Jinzhou, Liaoning 121001, China;
  2 Liaoning Technical University of Electronic and Information Engineering, Huludao125105, China)
  Abstract:The traditional animation using keyframe animation design is the lack of autonomy, a single plot, to a certain extent, can not meet the needs of users. This article uses the method based on artificial life animation engine design. Taking into account the limited hardware performance in embedded systems, artificial life animation new methods to adapt to embedded systems, using the hierarchical algorithm for constructing artificial life model, in order to improve the animation speed, running efficiency. In addition, because 50% of the CPU processing time spent on the top of the rendering engine, focusing on several key technologies in the graphics rendering, and on the basis of a combination of theory and practice, a simple graphics rendering engine. Keywords: Artificial Life; Embedded systems; Animation engine; Graphics rendering
  传统的动画游戏采用“关键帧”技术制作,存在着严重的缺点,比如对动画师的依赖性较高,动画不能自动生成;动画模式单一、缺乏自动性;生成的动画角色不能很好的与用户进行交互,缺乏趣味性,不能满足用户的需求等。另一方面,随着嵌入式技术的迅猛发展,手机性价比的提高,必然诱发手机动画的发展,手机动画的趣味性与黏着度的提高,使得基于人工生命方法开发的手机动画、游戏更能吸引玩家的眼球,更能长久占据市场。基于人工生命方法开发出来的动画将自然生态系统的动画生成看作是动物在栖息地生活的可视化仿真过程,场景自动生成,情节随机发展,具有引人入胜的效果。
  一、基于人工生命动画引擎架构设计
  人工生命系统是指具有自然生命特征的人造系统。在信息科学技术领域中的人工生命,是以计算机为研究工具,模拟自然界的生命现象,生成表现自然生命系统行为特点的仿真系统。基于人工生命方法开发出来的动画,动画主角是一个个“智体”(Agent),动画情景由Agent根据感知到的环境信息,自主进行决策,以驱动行为。
  动画开发过程中,用户输入/输出、各种算法的计算、物体在环境中的相对位置以及各种使用的工具盒插件等等都是由动画引擎来控制的。
  在动画引擎架构设计上可以将其分为三层,上层为动画图形渲染引擎,用来提供引擎和动画世界中需管理的图形对象模式;中层用来实现在虚拟环境下基于人工生命方法表达的智体;底层用来提供支持平台上的一套标准功能即底层接口层。
  二、适应嵌入式系统的人工生命动画新方法
  基于人工生命方法的动画在PC机上已经成功实现,但是在嵌入式系统中,由于受到CPU速度、存储器容量等的限制,需要重点提高动画运行效率,因而提出了嵌入式系统下人工生命动画的设计新方法。考虑到嵌入式存储容量问题,在构建人工生命模型时采用分层思想来构建,以分组为单位进行行为遍历实现,以提高运行效率。
  (一)人工模型分层构建设计
  在群体粒度上分成了3个等级:群体(crowd)、分组(Group)和个体(Individual)。这里群体泛指在虚拟场景里面所“生活”的智能体全体,分组是系统所处理的基本单元,可以看作为一个相对小规模的群体,它们具有共同的意图和协调的行为动作,并且通常有一个首领(kader),基本上可以把首领的意图作为分组的意图通常就可以达到很好的效果。个体是系统中处理的最小粒度单元,也就是单独的智能体本身。
  群体层次中,主要处理群体信息,控制数据包括对场景物体参数的定义或者改变、对智能体分组行为的实时控制等等。控制数据在群体信息处理模块得到进一步处理并且分发到相关的各个分组。
  分组层次中,分组信息处理模块接收由群体层次分发过来的信息,然后流向分组意图级的高级行为模块,根据高级行为模块的决策条件(比如行为系统的优先级)决定出适当的高级行为传送到低级行为模块,低层次行为模块再根据此层的决策条件决定出适当的低级行为分发到单个个体。
  个体层次中,低层次行为通过个体的低层次行为处理模块转化为动作指令发送到动作处理模块。由于提供了统一的接口,各层次模块之间的独立性很高,显然,这极大地提高了系统的灵活性和可扩充性,易于嵌入式系统下动画的设计。
  (二)行为层次结构设计
  在行为模型中,行为模型的主要目标是在动态的、未知的虚拟环境中去引导虚拟角色(人或动物)的动作,也就是说,行为模型要完成的任务是根据智体所处的实时环境在相互冲突的目标之间选择出最适合的行为。
  建立一个完整自主行为模型大致需要经历如下三个步骤:
  1.为虚拟个体选择适当的行为集合,这里行为集合可以为: 躲避障碍物、进食、交配、集群、闲逛、离开等;2.建立行为层次结构,即高层行为与低层行为;3.设计行为选择机制;行为选择机制中要有行为优先权,行为选择机制选择行为后,激活相应的行为程序,完成相应的目标。
  在行为系统中,高层行为与低层行为之间需要进行竞争,进而产生有意义的高级行为;低层行为与多个动作控制器之间进行竞争,以便产生有意义的低级行为。如图2.1 行为层次结构图。
  
  图2.1 行为层次结构
  上图中,高层行为也可称为意图级行为,根据智体自身的内部精神状态和所处的周围环境,意图之间进行相互竞争之后产生一种合适的高级行为;低层行为又称为行动级行为,它主要与具体行为动作、子行为相关,当处于同一高级行为中不同低级行为之间不需进行相互竞争,可以根据一些固有的行为优先级(比如当前的周身环境、自身的需求、时间等等)选择出合适的低级行为;然后根据选择出的低级行为触动相应的动作控制器已作出适当的行为动作。
  比如虚拟智体(鱼)感觉到很饥饿需要进行觅食,但同时它感受到了威胁(前方有鲨鱼出现)需要躲避障碍物即逃跑,那么这时候就出现了“觅食”和“逃跑”两种高级行为之间的竞争。通常“逃跑”会竞争胜出。一般来讲,当虚拟鱼感受到威胁,会产生“逃跑”的意图,并执行这一高级行为。但“逃跑”仍然是一个抽象的行为,比如如何逃跑、向什么方向逃跑、是加快还是缓慢等等,这是就需要对高级行为进行分解为子任务来完成即底层行为。可以把“逃跑”高级行为分解为判断逃跑方向与逃跑两个子行为。
  在行为层次模型中,高级行为之间可能同时存在并相互竞争,这时就需要根据一个仲裁原则来进行选择。在Escorwd系统模型中,又该采用什么样的仲裁机制仲裁出新的意图?这里可以将每种意图的优先程度值记作V,当这个值最大的将作为新的意图。下面给出这个算法的描述:所有意图值V都是动态变化的,它受外部变量、内部变量、行为间抑制系数的函数:
  
  其中, 为行为 在时间 时的优先程度值; 为行为 在 时刻的疲劳系数; 为系统感知的外部变量; 为系统的内部变量; 分别为系统的外部变量和内部变量的范围; 为行为 对行为 的抑制系数; 是关于内部变量和外部变量的函数(加或乘)。
  在行为层次结构中,行为抑制模型通过互斥抑制以便产生新的行为。抑制模型中,每个行为都有一个值相关联,这个值根据与该行为相关的内部状态和外部因素来计算,即根据动物感知到的相关的量和相关的内部状态量来计算。记作: 。
  其中, 分别表示行为的值, 为行为对行为 的抑制系数。通过1、限制抑制系数为大于 1 的值;2、使一个行为的值必须大于或等于 0;3、所有的行为相互抑制,当前行为组中,只有一个行为的值是非零的。
  整个行为系统流程图可表示为:
  
  图2.3行为系统流程图
  三、动画引擎中图形渲染的设计
  图形渲染引擎是动画引擎中最关键的部分,超过50%的CPU处理时间花费在渲染引擎上面。如果没有它,众多应用将无法使用。动画让游戏场景可视化,让用户可以看见3D场景,从而让用户能够根据屏幕上所看到的场景做出适当的决断。
  (一)图形渲染流程设计
  本引擎中进行图形渲染的基本流程如下:第一步:程序开始后初始化设备;第二步:初始化场景;第三步:消息循环;第四步:渲染整个场景;第五步:捕获消息。对各种消息进行处理。按下END将退出系统,使用上、下、左、右四个方向键改变视点位置,可漫游整个场景;第六步:对于更改过的场景信息进行再次渲染,然后进入第二步,整个系统都是在一个无限的消息循环的当中,一旦接受到键盘消息,就会重新绘制整个场景。
  (二)图形渲染中的关键技术
  1.纹理映射技术。为了使在虚拟环境下建立的智体更能形象逼真的表现出现实世界中的物体,只进行简单的颜色变换显然微不足道,这时纹理映射技术就产生了。纹理映射的过程是指将纹理空间中的纹理像素映射到屏幕空间中的像素。
  纹理映射可分为5个步骤。第一步,找到纹理映射的起点即物体表面上的某个点,对于这个点的选择原则是纹理能够随物体方位改变而改变,一般的,把这个点定义在物体局部空间内;第二步,进行函数参数化,因为n维物体空间是一个不规则空间,从物体空间变换到纹理空间(规一化空间)需要一个映射,这个映射称为参数化;第三步,到物体空间对应点取出该点的颜色值;第四步,根据需要,对取出的颜色值进行某些变换计算;第五步,按照纹理融合函数,对曲面的颜色属性进行修改。
  2.LOD技术。1976年,Clark[1]提出了细节层次(Levels of Detail,简称LOD)模型的概念,认为当物体覆盖屏幕较小区域时,可以使用该物体描述较粗的模型,并给出了一个用于可见面判定算法的几何层次模型,以便对复杂场景进行快速绘制。1982年,Rubin结合光线跟踪算法,提出了复杂场景的层次表示算法及相关的绘制算法,从而使计算机能以较少的时间绘制复杂场景。
  Lod实现方式
  (1)静态Lod。在预处理过程中产生一个物体的几个离散的不同细节层次模型。实时绘制时根据特定的标准选择合适的细节层次模型来表示物体。
  (2)动态Lod。在动态Lod算法中生成一个数据结构,在实时绘制时可以从这个数据结构中抽取所需的细节层次模型。从这个数据结构中可以得到大量不同分辨率的细节层次模型,分辨率甚至可以是连续变化的。
  四、实验效果
  本引擎实现了一个简单的图形绘制引擎,从运行效果来看海水、水下地形、水草都比较真实,漫游时画面也比较流畅。
  
  五、结束语
  本文借鉴了基于PC的动画引擎技术的理论基础和实现思路,将人工生命理论与嵌入式系统的图形/动画生成技术相结合,凸现了嵌入式设备的智能性与娱乐性,有着重要应用价值和意义。
  参考文献:
  [1]吴明.嵌入式系统中多媒体应用软件的设计开发[D].南京:东南大学,2005
  [2]莫军. 基于嵌入式的3D游戏引擎技术的研究与实现[D].成都:电子科技大学,2006
  [3]左鲁梅.三维图形引擎中的关键技术研究[D].中国优秀博硕士论文全文数据库(硕士),2004,(03)
  [4]黄文高.潘志庚.人工生命在计算机图形学中的应用[J].计算机辅助设计与图形学学报,2005,(07)
  [5]高翔.嵌入式三维图形引擎的设计与实现[D].成都:电子科技大学,2005
  本论文受如下项目基金支持辽宁省教育厅科研项目资助(No.L2010182)“基于人工生命的嵌入式动画引擎研究”

推荐访问:技术研究 嵌入式系统 关键 生命

相关文章:

Top