一种大规模三维动画的渲染方法及渲染装置制造方法及图纸

技术编号:8106221 阅读:265 留言:0更新日期:2012-12-21 05:26
本发明专利技术涉及一种大规模三维动画的渲染方法及渲染装置,所述的方法包括以下步骤:1)设定当前摄像机属性,通过坐标变化,得到三维动画的世界矩阵、观察矩阵和投影矩阵;2)采用视锥剔除算法、背面剔除算法以及遮挡剔除算法进行剪裁测试;3)对人物角色、地形和天空体进行渲染;4)对用户界面进行渲染;所述的装置包括中央处理器、图形处理器和存储模块,所述的存储模块分别连接中央处理器和图形处理器。与现有技术相比,本发明专利技术具有渲染效率高、可进行大规模三维动画渲染等优点。

【技术实现步骤摘要】

本专利技术涉及一种动画的渲染方法及装置,尤其是涉及一种大规模三维动画的渲染方法及渲染装置
技术介绍
三维(Three Dimension,简称3D)技术是基于电脑/网络/数字化平台的现代工具性基础共用技术。随着电脑技术的快速发展,3D技术在成熟度、完善度、易用性、人性化和经济性等各方面都取得了巨大的突破。通过3D技术做出来的游戏、电影、手机等等,更已经成为普通大众工作和生活的一部分。 3D游戏是一个笼统的概念,只要有立体感的游戏都可以叫做3D游戏。从概念上来讲,3D游戏就是在游戏中使用3D模型来制作人物、场景等物体,使玩家可以在游戏中体会 到长宽高三种度量,让玩家有360度旋转视角,从各个角度来进行游戏,大大增加了游戏的自由度、趣味度和真实性。目前广泛使用的3D的建模工具包括3ds max和maya等,用于呈现3D内容的引擎技术更是如雨后春笋。但把3D技术应用到网页游戏中,在国内还是不多见。这主要是因为在3D网页游戏中,技术层面上存在很多瓶颈,特别是在任务渲染方面,采用2. 5D锁定视觉的方面,同屏的人物角色一般不超过50个,这大大限制了游戏的规模。
技术实现思路
本专利技术的目的就是为了克服上述现有技术存在的缺陷而提供一种渲染效率高的大规模三维动画的渲染方法及渲染装置。本专利技术的目的可以通过以下技术方案来实现一种大规模三维动画的渲染方法,包括以下步骤I)中央处理器设定当前摄像机属性,通过坐标变化,得到三维动画的世界矩阵、观察矩阵和投影矩阵;2)中央处理器采用视锥剔除算法、背面剔除算法以及遮挡剔除算法对三维动画进行剪裁测试,获得简化后的三维动画,保存至动画存储器中;3)图形处理器对动画存储器中的三维动画中的人物角色、地形和天空体进行实时渲染;4)图形处理器对用户界面进行渲染。所述的摄像机属性包括摄像机的位置、朝向和视口。所述的视锥剔除是指根据三维动画的世界矩阵、观察矩阵和投影矩阵剔除视锥体外的多边形;所述的背面剔除是指将不透明物体的所有背向多边形进行裁剪;所述的遮挡剔除是指剔除被前面物体完全遮挡而不能被看见的物体。所述的步骤3)中对人物角色进行渲染的方法具体为31)图形处理器读入动画存储器中的角色模型文件,对角色模型信息进行处理;32)图形处理器对游戏场景中所有的角色对象进行匹配,生成角色对象的共性数据文件,保存至共性数据存储器中;33)图形处理器根据每个角色对象的个性数据创建与其对应的角色实例,保存到个性数据存储器;34)根据角色实例当前的位置和摄像机的位置对个性数据存储器中的角色实例进行更新;35)对角色实例进行渲染。所述的角色模型信息包括顶点缓存信息、索引缓存信息和纹理名称信息;所述的角色实例的更新包括如下步骤a)获得角色实例当前的位置、方向、动作等;b)根据角色实例当前的位置和摄像机的位置,确定角色实例的可见性或细节层次 等级;c)更新角色实例。一种实施大规模三维动画的渲染方法的渲染装置,包括中央处理器、图形处理器和存储模块,所述的存储模块分别连接中央处理器和图形处理器。所述的存储模块包括动画存储器、共性数据存储器和个性数据存储器,所述的动画存储器分别连接中央处理器和图形处理器,所述的共性数据存储器和个性数据存储器均与图形处理器连接。所述的图形处理器为可进行三维图形处理工作的图形处理器。与现有技术相比,本专利技术具有以下优点I)本专利技术采用视锥剔除算法、背面剔除算法以及遮挡剔除算法对三维动画进行剪裁,大大减少绘制的物体,提高了渲染的效率;2)本专利技术对人物角色进行渲染的过程中,将场景中大量相似的人物角色拥有的数据中相同的部分作为公共数据保存,将这些人物角色拥有的数据中各不相同的部分作为私有数据对应保存,可进行大规模人物的渲染。附图说明图I为本专利技术方法的流程示意图;图2为本专利技术人物角色渲染过程的流程示意图;图3为本专利技术装置的结构示意图。具体实施例方式下面结合附图和具体实施例对本专利技术进行详细说明。实施例如图I所示,一种大规模三维动画的渲染方法,包括以下步骤步骤101 :中央处理器设定当前摄像机属性,包括摄像机的位置、朝向和视口等,通过坐标变化,得到三维动画的世界矩阵、观察矩阵和投影矩阵;步骤102 :中央处理器采用视锥剔除算法、背面剔除算法以及遮挡剔除算法对三维动画进行剪裁测试,获得简化后的三维动画,保存至动画存储器中;步骤103 :图形处理器对动画存储器中的三维动画中的人物角色、地形和天空体进行实时渲染;步骤104 :图形处理器对用户界面进行渲染。所述的视锥剔除是指根据三维动画的世界矩阵、观察矩阵和投影矩阵剔除视锥体外的多边形。由于视椎体外面的多边形对最后的绘制画面没有贡献,所以在渲染之前要进行视锥剔除,剔除后就能减少送到渲染管线的三角形数量,能够大大减少后续处理阶段(如几何变换阶段和光栅化阶段)的计算量。在大规模的人物场景中,只有很少的一部分虚拟角色是可见的,如果将这小部分的角色发送到渲染管线,可以获得一定的加速效果。视锥剔除算法包括以下两个步骤第一步、从世界矩阵、观察矩阵和投影矩阵中抽取出视椎体的六个面;第二步、对欲检查对象如点、包围球或包围盒等进行测试,如果一个点到六个面的距离都是正数,那么就表明这个点在视锥体内部,它就是可见的,而对于包围球则判断圆心 到视椎体六个面的距离和半径的关系,确定包围球和视锥体的相交情况,从而剔除视锥体外面的多边形。所述的背面剔除是指将不透明物体的所有背向多边形进行裁剪。所谓背向多边形可以采用两种方式来判断一种方式是,在屏幕空间中,对于朝向一致的多边形来说其投影多边形是逆时针方向的话,则此多边形是背向的。另一种方式是,在观察空间中,从多边形所在平面上一点出发到视点创建一个向量,然后计算多边形面法线和此向量的点积的符号,其实就是计算夹角余弦值的符号,若为负,则夹角大于90度,表明此多边形是背向的。所述的遮挡剔除是指剔除被前面物体完全遮挡而不能被看见的物体,从而减少绘制的物体,以提高后续渲染的效率。它主要利用现在大多数图形卡提供的硬件遮挡查询接口的特性,该特性允许应用程序询问图形渲染应用程序接口(Application ProgrammingInterface,简称API)。优选的,本实施例采用的遮挡剔除算法是一致性层次裁剪算法。具体地说,在实时图形中,物体从一帧到下一帧移动不会太多,而对于遮挡剔除算法来说,这就表示上一帧物体的可见性分类很可能同样适用于下一帧,即上一帧是否可见的特性在下一帧里面不改变。对于这种猜测在两种情况下会出现问题假设节点可见而其实它是被遮挡的,那么就会处理不必要的节点,这需要花费一些时间,但不影响正确性;假设节点是被遮挡的而它却是可见的,这样物体就会丢失。因此,为了获得符合真实的图像,就需要对系统的猜测进行确认,同时还需要一种方法来减少由分枝节点的遮挡查询引起的开销。所以,对于先前可见的非叶节点直接处理(遍历或渲染);对于先前可见的叶节点和不可见节点(包括叶节点和分枝节点)进行查询后再处理;另外,对于先前其父节点不可见的节点不予处理。如图2所示,所述的步骤103中对人物角色进行渲染的方法具体为步骤201 :图形处理器读入动画存储器中的角色模型文件,对角色模型信息进行处理;所述的角色模型信息包括顶点缓存信息、索引缓存信息和纹理名称信息;所述的对角色本文档来自技高网...

【技术保护点】
一种大规模三维动画的渲染方法,其特征在于,包括以下步骤:1)设定当前摄像机属性,通过坐标变化,得到三维动画的世界矩阵、观察矩阵和投影矩阵;2)采用视锥剔除算法、背面剔除算法以及遮挡剔除算法进行剪裁测试;3)对人物角色、地形和天空体进行渲染;4)对用户界面进行渲染。

【技术特征摘要】
1.一种大规模三维动画的渲染方法,其特征在于,包括以下步骤 1)设定当前摄像机属性,通过坐标变化,得到三维动画的世界矩阵、观察矩阵和投影矩阵; 2)采用视锥剔除算法、背面剔除算法以及遮挡剔除算法进行剪裁测试; 3)对人物角色、地形和天空体进行渲染; 4)对用户界面进行渲染。2.根据权利要求I所述的一种大规模三维动画的渲染方法,其特征在于,所述的视锥剔除是指根据三维动画的世界矩阵、观察矩阵和投影矩阵剔除视锥体外的多边形,所述的背面剔除是指将不透明物体的所有背向多边形进行裁剪,所述的遮挡剔除是指剔除被前面物体完全遮挡而不能被看见的物体。3.根据权利要求I所述的一种大规模三维动画的渲染方法,其特征在于,所述的步骤3)中对人物角色进行渲染的方法具体为 301)读入角色模型文件,对角色模型信息进行处理; 302)创建角色对象管理器,管理游戏场景中所有的角色对象的共性数据; 3...

【专利技术属性】
技术研发人员:谭青生傅新波林秀全张生言李欣包嘉会
申请(专利权)人:上海创图网络科技发展有限公司
类型:发明
国别省市:

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

1