一种基于OpenSceneGraph的三维动画制作方法技术

技术编号:12580994 阅读:76 留言:0更新日期:2015-12-23 19:20
本发明专利技术公开了一种基于OpenSceneGraph的三维动画制作方法,通过控制二维图片在三维场景中沿水平方向和垂直方向的规律性几何运动模拟场景中非主体目标动画,具体包括原图片预处理步骤、创建子图步骤、添加广告牌步骤、更新场景数据步骤、绘制场景的步骤;本发明专利技术对图片进行预处理除去背景,获得带有透明通道的目标图片;在每一帧改变纹理坐标和顶点对应关系,实现纹理动画效果;利用广告牌技术,使之在视角变化时自动改变图片朝向,始终面向屏幕,提高视觉真实性;利用更新场景数据步骤,更新每一帧动画数据;利用绘制步骤,获取场景数据,绘制每一帧场景;本发明专利技术所提供的方法,减少了建模、设计精细模型的运动的工作,降低了三维动画的制作难度和制作成本。

【技术实现步骤摘要】

本专利技术属于场景图形模拟仿真技术领±或,更具体地,涉及。
技术介绍
OpenSceneGraph(OSG)是一个开源的高性能三维图像清染引擎,基于修改的LGPL协议(OSGPL)免费发布,广泛用于视觉仿真、游戏、虚拟现实、科学可视化和建模等领域,它以成为工业标准的OpenGL为底层平台,使用可移植性的ANSI C++编写而成;解决了使用OpenGVS、Vega等商业引擎开发成本过高,不利于产品推广的问题,从实用的角度上更有意义,效果不亚于商业视景渲染软件。虚拟视景技术,是虚拟仿真视景技术中一个重要分支,其组成部分主要包括仿真建模技术、动画仿真技术和实时视景生成技术。在虚拟视景中,动画的渲染非常重要,可以添加更多的娱乐和互动。目前,OSG中实现逼真的动画技术主要是骨骼动画,其显示效果非常逼真。但其技术难度非常高。在一些场景中,有一部分动画起到很重要的锦上添花的效果,使得场景更加真实、绚丽,但这部分动画效果主要是视觉上的需求,并不需要精确度;这种情况下使用骨骼动画将会耗费大量的资源。以制作海底鱼群运动动画为例,游动的鱼群、波动的海草是必不可少的场景成员,若使用骨骼动画来实现,需要制作大量三维模型,并进行鱼类身体游动的计算,而大量的鱼群游动不是简单的平动,其还具有鱼类身体的扭动;但它们大部分并非是场景中的主体目标,而是修饰整个场景,使其更具有真实性;为了实现真实动画效果采用骨骼动画,计算工作量巨大,将耗费大量资源。
技术实现思路
针对现有技术的以上缺陷或改进需求,本专利技术提供了,其目的在于利用二维图片运动达到高度仿真三维动画视觉效果,克服了传统模型动画实现的复杂性。为实现上述目的,按照本专利技术的一个方面,提供了,包括以下步骤:(I)删除原始图片中的背景纹理,获得仅包含目标物体纹理信息的第一图片,将所述第一图片保存为带有透明度信息的格式,获得仅包含目标物体纹理信息且带有透明度的第二图片;(2)设置第二图片每一帧的纹理坐标对应关系,获得各帧对应的子图;(3)对所述子图添加广告牌;(4)采用OpenSceneGraph的路径动画类创建路径动画对象,并将该路径动画对象关联至步骤(3)所述广告牌的节点,使得路径动画对象成为广告牌子节点;(5)采用OpenSceneGraph的矩阵变换类创建矩阵变换对象和矩阵变化节点,将步骤(3)所述广告牌的节点关联至所述矩阵变换对象下;通过所述矩阵变换对象改变图片的位置和姿态信息,产生相对于三维场景参考系的位置和姿态变化效果;(6)采用OpenSceneGraph的单视景器类创建单视景器对象,采用OpenSceneGraph的组节点类创建场景根节点,将步骤(5)中获得的矩阵变换对象关联至所述根节点下,并将单视景器对象的场景数据设置为根节点;(7)采用OpenSceneGraph的帧函数完成各帧的场景数据更新并清染绘制场景,获得二维动画。优选地,步骤(2)创建子图的步骤具体如下:(2.1)采用OpenSceneGraph的纹理类创建纹理对象,并设置纹理大小、纹理颜色格式特征;(2.2)采用OpenSceneGraph的几何体类创建几何体对象,且将其设置为动态数据变量,使得该变量可在每一帧进行数据更新,且指定所述几何体对象局部坐标系的笛卡尔坐标系;(2.3)采用OpenSceneGraph的三维数组类创建三维数组对象,用以存放纹理,采用OpenSceneGraph的二维数组类创建二维数组对象,用以存放纹理坐标;进行纹理映射,完成几何体对象与纹理坐标绑定;(2.4)将上述纹理坐标对象与几何体对象进行关联,并设置几何体的定点数组;(2.5)采用OpenSceneGraph的四维数组类创建颜色数组对象,将颜色对象关联到步骤(2.2)中创建的几何体对象上;并将所述包含目标物体纹理信息且带有透明度的图片分为20*20的小格子,将小格顶点坐标与颜色坐标一对一对应,完成纹理映射;(2.6)创建图片对象,将步骤⑴获得的包含目标物体纹理信息且带有透明度的图片数据存入该图片对象,并将图片对象关联至(2.1)中创建的纹理对象上;(2.7)采用OpenSceneGraph的属性对象类创建属性对象;获得纹理映射与属性设置完全的子图;通过步骤(2)进行每一帧子图创建,在每一帧进行数据更新,完成图片基于自身的运动。优选地,步骤(2.1)包括以下子步骤:(2.1.1)利用OpenSceneGraph的纹理类的设置纹理大小函数设置纹理对象大小;(2.1.2)利用OpenSceneGraph的属性类的设置纹理属性和模式函数设置纹理对象的纹理格式,使其具有透明度通道,以免系统自动对背景纹理填充颜色;(2.1.3)利用OpenSceneGraph的纹理类的设置过滤方式函数设置纹理过滤方式允许进行插值或者均和,指定放大缩小的函数。优选地,步骤(2.7)包括以下子步骤:(2.7.1)利用OpenSceneGraph的属性类创建属性对象,设置纹理属性和模式,并将步骤(2.1)中获得的纹理对象关联到所述属性对象上;(2.7.2)利用OpenSceneGraph的属性类的设置模式函数关闭光照,以消除阴影对图片颜色的干扰;(2.7.3)利用OpenSceneGraph的属性类的设置模式函数开启纹理混合模式;(2.7.4)将所述属性对象关联到步骤(2.2)中获得的几何体对象。总体而言,通过本专利技术所构思的以上技术方案与现有技术相比,能够取得下列有益效果:(I)本专利技术提供的三维动画制作方法,通过预处理删除原始图片的背景,采用带有透明度且删除背景的二维图片改变其纹理坐标及顶点对应关系产生动画效果;(2)本专利技术提供的三维动画制作方法,添加广告牌技术使图片始终面向视角,利用二维图片运动达到高度仿真三维动画视觉效果;(3)本专利技术提供的三维动画制作方法,利用二维图片运动达到高度仿真三维动画视觉效果,克服了传统模型动画实现的复杂性,大大减少了计算工作量;与传统利用骨骼动画等方法,本专利技术所提供的方法,减少了建模、设计精细模型的运动的工作,大大降低了制作难度和制作成本,但同时获得了良好的视觉效果。【附图说明】图1是本专利技术提供的基于OpenSceneGraph的三维动画制作方法的流程示意图;图2为实施例中采用的原始图片;图3为实施例中对原始图片进行背景删除后获得的图片;图4为实施例中经过预处理后带有透明度信息的图片;图5为实施例中基于OpenSceneGraph的三维动画效果图。【具体实施方式】为了使本专利技术的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本专利技术进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本专利技术,并不用于限定本专利技术。此外,下面所描述的本专利技术各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。实施例以鱼类动画的制作为例,具体阐述本专利技术提供的动画制作方法;其流程如图1所示,包括图片预处理步骤、创建子图步骤、添加广告牌步骤、创建路径动画步骤、创建矩阵变化节点步骤、更新场景数据步骤、渲染绘制场景步骤。实施例中,待处理的图片之一如图2所示;下面以图2所示图片为例,进一步阐述本专利技术提供的基于OSG的动画制作方法,该方法包括以下步骤:(I)对图2所示的原始图片进行预处理,利用图像处理软件对图2所本文档来自技高网...
一种基于OpenSceneGraph的三维动画制作方法

【技术保护点】
一种基于OpenSceneGraph的三维动画制作方法,其特征在于,包括以下步骤:(1)删除原始图片中的背景纹理,获得仅包含目标物体纹理信息的第一图片,将所述第一图片保存为带有透明度信息的格式,获得仅包含目标物体纹理信息且带有透明度的第二图片;(2)设置第二图片每一帧的纹理坐标对应关系,获得各帧对应的子图;(3)对所述子图添加广告牌;(4)采用OpenSceneGraph的路径动画类创建路径动画对象,并将该路径动画对象关联至步骤(3)所述广告牌的节点,使得路径动画对象成为广告牌子节点;(5)采用OpenSceneGraph的矩阵变换类创建矩阵变换对象和矩阵变化节点,将步骤(3)所述广告牌的节点关联至所述矩阵变换对象下;通过所述矩阵变换对象改变图片的位置和姿态信息,产生相对于三维场景参考系的位置和姿态变化效果;(6)采用OpenSceneGraph的单视景器类创建单视景器对象,采用OpenSceneGraph的组节点类创建场景根节点,将步骤(5)中获得的矩阵变换对象关联至所述根节点下,并将单视景器对象的场景数据设置为根节点;(7)采用OpenSceneGraph的帧函数完成各帧的场景数据更新并渲染绘制场景。...

【技术特征摘要】

【专利技术属性】
技术研发人员:邹腊梅高亚红杨卫东金留嘉万敏钟鸣
申请(专利权)人:华中科技大学
类型:发明
国别省市:湖北;42

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1