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

文档序号:6375589阅读:183来源:国知局
专利名称:一种大规模三维动画的渲染方法及渲染装置的制作方法
技术领域
本发明涉及一种动画的渲染方法及装置,尤其是涉及一种大规模三维动画的渲染方法及渲染装置。
背景技术
三维(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 :图形处理器读入动画存储器中的角色模型文件,对角色模型信息进行处理;所述的角色模型信息包括顶点缓存信息、索引缓存信息和纹理名称信息;所述的对角色模型信息进行处理具体包括对信息的加载。步骤202 :图形处理器对游戏场景中所有的角色对象进行匹配,生成角色对象的共性数据文件,保存至共性数据存储器中;在游戏场景中有大量相似的角色对象,这些角色对象有很多共性,例如,这些不同的角色对象会有相同的顶点数据、动画的帧数、每根关联骨骼的权重以及同一份材质列表等共性的信息;
步骤203 :图形处理器根据每个角色对象的个性数据创建与其对应的角色实例,保存到个性数据存储器;不同的角色对象除了具有共性数据之外,还具有一些不同的数据,例如位置、朝向、当前播放的动作、颜色等数据,因此,对于不同的角色对象,需要分别创建对应的角色实例。步骤204 :根据角色实例当前的位置和摄像机的位置对个性数据存储器中的角色实例进行更新;角色实例的更新可以包括如下步骤a)获得角色实例当前的位置、方向、动作等;b)根据角色实例当前的位置和摄像机的位置,确定角色实例的可见性或细节层次等级;c)更新角色实例。 步骤205 :对角色实例进行渲染,具体为顶点着色阶段首先根据传入的动画信息索引值从动画纹理中查询得到影响当前顶点的骨骼的动画变换矩阵,进行顶点混合;然后再进行一般的几何流水线处理;最后在像素着色阶段还要根据角色实例的多样化纹理值解码后查询对应的纹理。如图3所示,一种用于完成上述大规模三维动画的渲染方法的装置,包括中央处理器I、图形处理器2和存储模块,所述的存储模块分别连接中央处理器I和图形处理器2。所述的存储模块包括动画存储器3、共性数据存储器4和个性数据存储器5,所述的动画存储器3分别连接中央处理器I和图形处理器2,所述的共性数据存储器4和个性数据存储器5均与图形处理器2连接。所述的中央处理器I为集成有视锥剔除算法、背面剔除算法以及遮挡剔除算法的处理器。所述的图形处理器2为可进行三维图形处理工作的图形处理器。本发明使用角色实例化技术,将游戏场景中大量相似角色对象拥有的所有数据中相同的部分抽取出来作为共性数据保存,然后将这些对象各自拥有的互不相同的个性数据如位置、颜色、大小等按每个角色对象对应保存,在对角色实例进行更新时只对这些保存不同的数据的角色实例进行渲染处理,在绘制时通过将共性数据和个性数据进行合并得到单个角色对象的完整数据,使一个几何数据能对应多个实例数据,达到几何数据多次重复使用的目的,从而可以在同样的系统配置下,增加人物角色的数量。在以上技术理论的基础上,本发明实现了网页游戏中大规模三维动画的实时渲染。具体地,在保证实时性的基础上,增加人物角色数量,提升了视觉外观真实感。在目前网吧主流的电脑平台上,能达到同屏渲染人物1000人的规模,同时还能保证帧率(fps)在40以上。最后,需要注意的是以上列举的仅是本发明的具体实施例子,当然本领域的技术人员可以对本发明进行改动和变型,倘若这些修改和变型属于本发明权利要求及其等同技术的范围之内,均应认为是本发明的保护范围。
权利要求
1.一种大规模三维动画的渲染方法,其特征在于,包括以下步骤 1)设定当前摄像机属性,通过坐标变化,得到三维动画的世界矩阵、观察矩阵和投影矩阵; 2)采用视锥剔除算法、背面剔除算法以及遮挡剔除算法进行剪裁测试; 3)对人物角色、地形和天空体进行渲染; 4)对用户界面进行渲染。
2.根据权利要求I所述的一种大规模三维动画的渲染方法,其特征在于,所述的视锥剔除是指根据三维动画的世界矩阵、观察矩阵和投影矩阵剔除视锥体外的多边形,所述的背面剔除是指将不透明物体的所有背向多边形进行裁剪,所述的遮挡剔除是指剔除被前面物体完全遮挡而不能被看见的物体。
3.根据权利要求I所述的一种大规模三维动画的渲染方法,其特征在于,所述的步骤3)中对人物角色进行渲染的方法具体为 301)读入角色模型文件,对角色模型信息进行处理; 302)创建角色对象管理器,管理游戏场景中所有的角色对象的共性数据; 303)根据每个角色对象的个性数据创建与其对应的角色实例; 304)根据角色实例当前的位置和摄像机的位置对角色实例进行更新; 305)对角色实例进行渲染。
4.根据权利要求3所述的一种大规模三维动画的渲染方法,其特征在于,所述的角色模型息包括顶点缓存息、索引缓存息和纹理名称息。
5.一种实施如权利要求4所述的大规模三维动画的渲染方法的渲染装置,其特征在于,包括中央处理器、图形处理器和存储模块,所述的存储模块分别连接中央处理器和图形处理器。
6.根据权利要求5所述的一种大规模三维动画的渲染装置,其特征在于,所述的存储模块包括动画存储器、共性数据存储器和个性数据存储器,所述的动画存储器分别连接中央处理器和图形处理器,所述的共性数据存储器和个性数据存储器均与图形处理器连接。
7.根据权利要求5所述的一种大规模三维动画的渲染装置,其特征在于,所述的图形处理器为可进行三维图形处理工作的图形处理器。
全文摘要
本发明涉及一种大规模三维动画的渲染方法及渲染装置,所述的方法包括以下步骤1)设定当前摄像机属性,通过坐标变化,得到三维动画的世界矩阵、观察矩阵和投影矩阵;2)采用视锥剔除算法、背面剔除算法以及遮挡剔除算法进行剪裁测试;3)对人物角色、地形和天空体进行渲染;4)对用户界面进行渲染;所述的装置包括中央处理器、图形处理器和存储模块,所述的存储模块分别连接中央处理器和图形处理器。与现有技术相比,本发明具有渲染效率高、可进行大规模三维动画渲染等优点。
文档编号G06T15/00GK102831631SQ20121030365
公开日2012年12月19日 申请日期2012年8月23日 优先权日2012年8月23日
发明者谭青生, 傅新波, 林秀全, 张生言, 李欣, 包嘉会 申请人:上海创图网络科技发展有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1