发明名称 显卡中实现3D骨骼动画模型的碰撞检测方法及显卡、系统
摘要 本发明实施例提供一种显卡中实现3D骨骼动画的碰撞检测方法及显卡、系统。属计算机绘图领域。方法包括:生成第一3D骨骼动画模型的三角形面顶点纹理或边顶点纹理时,将确定的三角形面顶点的信息或边顶点的信息传递给显卡的像素着色器;生成第二3D骨骼动画模型的边顶点纹理或三角形面顶点纹理时,将确定的边顶点的信息或三角形面顶点的信息传递给显卡的像素着色器;显卡的像素着色器输出第一3D骨骼动画模型的三角形面或边与第二3D骨骼动画模型的边或三角形面相交的像素点,查询显卡的像素着色器有像素点输出则确定第一3D骨骼动画模型与第二3D骨骼动画模型发生碰撞。该方法由显卡完成生成的3D骨骼动画模型的碰撞检测,节省CPU资源、减少CPU占用率。
申请公布号 CN101458825B 申请公布日期 2011.07.20
申请号 CN200910076056.4 申请日期 2009.01.04
申请人 腾讯科技(深圳)有限公司 发明人 刘皓
分类号 G06T13/40(2011.01)I;G06T1/00(2006.01)I 主分类号 G06T13/40(2011.01)I
代理机构 北京凯特来知识产权代理有限公司 11260 代理人 郑立明
主权项 一种显卡中实现3D骨骼动画模型的碰撞检测方法,其特征在于,包括生成第一3D骨骼动画模型的三角形面顶点纹理或边顶点纹理时,将确定的三角形面顶点的信息传递给显卡的像素着色器作为输出三角形面纹理的像素点的信息,或将确定的边顶点的信息传递给显卡的像素着色器作为边纹理的像素点的信息;所述生成第一3D骨骼动画模型的三角形面顶点纹理或边顶点纹理时,将确定的三角形面顶点的信息传递给显卡的像素着色器作为输出三角形面纹理的像素点的信息,或将确定的边顶点的信息传递给显卡的像素着色器作为边纹理的像素点的信息具体包括:显卡以三角形索引方式绘制第一3D骨骼动画模型的三角形面顶点,显卡的顶点着色器根据显卡的常量寄存器输入的第一3D骨骼动画模型的骨骼信息进行顶点位置变换后,得到当前顶点的实际位置,结合顶点所在三角形的编号确定顶点的具体位置,将确定的顶点的具体位置及顶点在所在三角形中的索引值作为三角形面顶点的信息传递给显卡的像素着色器,所述索引值和顶点的具体位置作为输出三角形面纹理的像素点的信息;或显卡以线段索引方式绘制第一3D骨骼动画模型的边顶点,显卡的顶点着色器根据显卡的常量寄存器输入的第一3D骨骼动画模型的骨骼信息进行顶点位置变换后,得到当前顶点的实际位置,结合顶点所在边的编号确定顶点的具体位置,将确定的顶点的具体位置及顶点在所在边中的索引值作为边顶点的信息传递给显卡的像素着色器,所述索引值和顶点的具体位置作为输出边纹理像素点的信息;生成第二3D骨骼动画模型的边顶点纹理或三角形面顶点纹理时,将确定的边顶点的信息传递给显卡的像素着色器作为输出边纹理的像素点的信息,或将确定的三角形面顶点的信息传递给显卡的像素着色器作为三角形面纹理的像素点的信息;所述生成第二3D骨骼动画模型的边顶点纹理或三角形面顶点纹理时,将确定的边顶点的信息传递给显卡的像素着色器作为输出边纹理的像素点的信息,或将确定的三角形面顶点的信息传递给显卡的像素着色器作为三角形面纹理的像素点的信息具体包括:显卡以线段索引方式绘制第二3D骨骼动画模型的边顶点,显卡的顶点着色器根据显卡的常量寄存器输入的第二3D骨骼动画模型的骨骼信息进行顶点位置变换后,得到当前顶点的实际位置,结合顶点所在边的编号确定顶点的具体位置,将确定的顶点的具体位置及顶点在所在边中的索引值作为边顶点的信息传递给显卡的像素着色器,所述索引值和顶点的具体位置作为输出边纹理的像素点的信息;或显卡以三角形索引方式绘制第二3D骨骼动画模型的三角形面顶点,显卡的顶点着色器根据显卡的常量寄存器输入的第二3D骨骼动画模型的骨骼信息进行顶点位置变换后,得到当前顶点的实际位置,结合顶点所在三角形的编号确定顶点的具体位置,将确定的顶点的具体位置及顶点在所在三角形中的索引值作为三角形面顶点的信息传递给显卡的像素着色器,所述索引值和顶点的具体位置作为输出三角形面纹理的像素点的信息;显卡的像素着色器输出第一3D骨骼动画模型的三角形面或边与第二3D骨骼动画模型的边或三角形面相交的像素点,查询显卡的像素着色器有像素点输出则确定第一3D骨骼动画模型与第二3D骨骼动画模型发生碰撞;所述显卡的像素着色器输出第一3D骨骼动画模型的三角形面或边与第二3D骨骼动画模型的边或三角形面相交的像素点具体包括:显卡的像素着色器遍历构成第二3D骨骼动画模型边纹理的每个像素点或三角形面纹理的每个像素点,若存在任一像素点与构成第一3D骨骼动画模型的三角形面纹理的任一像素点或边纹理的任一像素点重合,则确定第一3D骨骼动画模型三角形面或与第二3D骨骼动画模型边或三角形面相交并输出重合的像素点。
地址 518028 广东省深圳市福田区赛格科技园2栋东403室