[发明专利]显卡中实现3D骨骼动画模型的碰撞检测方法及显卡、系统有效
申请号: | 200910076056.4 | 申请日: | 2009-01-04 |
公开(公告)号: | CN101458825A | 公开(公告)日: | 2009-06-17 |
发明(设计)人: | 刘皓 | 申请(专利权)人: | 腾讯科技(深圳)有限公司 |
主分类号: | G06T15/70 | 分类号: | G06T15/70;G06T1/00 |
代理公司: | 北京凯特来知识产权代理有限公司 | 代理人: | 郑立明 |
地址: | 518028广东省深*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 显卡 实现 骨骼 动画 模型 碰撞 检测 方法 系统 | ||
技术领域
本发明涉及计算机绘图处理领域,尤其涉及一种显卡中实现3D骨骼动画模型的碰撞检测方法及显卡、系统。
背景技术
目前,随着计算机绘图处理技术的提高,计算机游戏的界面变的越来越漂亮,3D游戏(三维游戏)以其场景和打斗场面形象逼真的特点更受到玩家的青睐。在3D游戏中,为模拟真实的人物打斗场景,常需要在运行该3D游戏的计算机上进行大量三维动画的绘图处理,则使绘图时数据运算量较大,以往这些数据运算处理均由计算机的中央处理器CPU完成,处理后再传送至显卡中进行显示,但这种方式存在浪费CPU资源,CPU占用率过高的问题。随着显卡性能的不断发展完善,这些动画的绘制工作已由以前的计算机中央处理器CPU处理,转至由显卡进行运算处理,主要是利用显卡中高性能图形处理器GPU进行图形数据的运算处理,实现3D动画的绘图,这样可以有效节省CPU的资源,减少CPU的占用率。
随着3D动画技术的不断完善,现在的3D动画中常用骨骼动画来进行3D虚拟人物的绘制,骨骼动画的实现思路是从人的身体的运动方式而来的,将动画人物的身体(肉、皮肤等)定义为一个网格模型,网格的内部是一个骨架结构。当人物的骨架运动时,身体就会跟着骨架一起运动。骨架是由一定数目的骨骼组成的层次结构,每一个骨骼的排列和连接关系对整个骨架的运动有很重要的影响,每一个骨骼数据都包含其自身的动画数据,和每个骨骼相关联的是的一个网格模型(表示人物的肉、皮肤等),它提供动画绘制所需要的几何模型(Vertex,Normal,etc)和纹理材质信息。网格模型的每个顶点都有相应的权值(Weight),这些权值定义了骨骼的运动对有关顶点的影响因子。当把动画人物的姿势和全局运动信息作用到骨骼上时,这个网格模型就会跟随骨架一起运动。所以关键是对骨架进行动画生成,生成的方法是用关键帧。关键帧动画是对人物的网格模型采用关键帧生成动画;而骨骼动画则是对人物的骨架采用关键帧生成动画,然后再让网格模型跟随骨架运动。关键帧动画实现的关键点是:根据当前时间,通过插值计算出每个骨骼的旋转、平移等值,形成中间帧的骨骼,根据骨骼的变化情况,插值计算出骨骼的网格模型的各个顶点的位置变化。对于某个特定骨骼,网格模型的顶点变换矩阵=初始姿势的变换矩阵的逆×姿势变换后的矩阵。在显卡中实现骨骼动画的要点是把顶点数据输入顶点着色器,把当前时间的骨骼在CPU中计算好,用常量寄存器的方式输入显卡,由显卡计算顶点的最终位置。由于模拟真实的需要,常需要对两个三维模型是否发生碰撞进行检测,即判断模型A与模型B是否有任意一个三角形相交,判断两个三角形是否相交可以判断其中一个三角形的三条线段是否与另一个三角形相交。
但发明人发现,现有技术中虽将绘制骨骼动画时的数据运算处理交由计算机显卡的GPU来完成,但由于骨骼动画的转换在显卡的GPU中进行之后无法回传到计算机的CPU中,因此在对显卡实现的骨骼动画进行碰撞检测时,仍要在CPU中进行骨骼动画的转换,因此,针对在显卡中实现绘制骨骼动画但在CPU进行骨骼动画的碰撞检测的处理方式而言,仍然存在消耗CPU资源,CPU占用率过高的缺点。
发明内容
基于上述现有技术所存在的问题,本发明实施方式的目的是提供一种显卡中实现3D骨骼动画模型的碰撞检测方法及显卡、系统,将3D骨骼动画模型的碰撞检测由计算机的显卡完成,节省计算机CPU的资源和降低CPU的占用率。
一种显卡中实现3D骨骼动画模型的碰撞检测方法,包括:
生成第一3D骨骼动画模型的三角形面顶点纹理或边顶点纹理时,将确定的三角形面顶点的信息传递给显卡的像素着色器作为输出三角形面纹理的像素点的信息,或将确定的边顶点的信息传递给显卡的像素着色器作为边纹理的像素点的信息;
生成第二3D骨骼动画模型的边顶点纹理或三角形面顶点纹理时,将确定的边顶点的信息传递给显卡的像素着色器作为输出边纹理的像素点的信息,或将确定的三角形面顶点的信息传递给显卡的像素着色器作为三角形面纹理的像素点的信息;
显卡的像素着色器输出第一3D骨骼动画模型的三角形面或边与第二3D骨骼动画模型的边或三角形面相交的像素点,查询显卡的像素着色器有像素点输出则确定第一3D骨骼动画模型与第二3D骨骼动画模型发生碰撞。
一种实现权利要求1-8中任一项所述的3D骨骼动画模型的碰撞检测方法的显卡,包括:
中央处理单元、顶点信息获取单元,像素着色器和查询检测单元;
所述中央处理单元,与所述顶点信息获取单元连接,用于对构建3D骨骼动画模型的数据进行处理生成3D骨骼动画模型;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于腾讯科技(深圳)有限公司,未经腾讯科技(深圳)有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/200910076056.4/2.html,转载请声明来源钻瓜专利网。