[发明专利]基于Unity3D的骨骼动画渲染方法及系统在审
| 申请号: | 202011357225.4 | 申请日: | 2020-11-26 |
| 公开(公告)号: | CN112489183A | 公开(公告)日: | 2021-03-12 |
| 发明(设计)人: | 桑新柱;郑健平;邢树军 | 申请(专利权)人: | 北京邮电大学 |
| 主分类号: | G06T15/50 | 分类号: | G06T15/50;G06T13/20 |
| 代理公司: | 北京路浩知识产权代理有限公司 11002 | 代理人: | 郭亮 |
| 地址: | 100876 北京市*** | 国省代码: | 北京;11 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 基于 unity3d 骨骼 动画 渲染 方法 系统 | ||
本发明提供一种基于Unity3D的骨骼动画渲染方法及系统,该方法包括:对目标模型实例每一帧的骨骼动画数据进行纹理转换处理,得到骨骼动画数据纹理图;基于Unity3D,将所述骨骼动画数据纹理图输入到着色器程序中,并根据所述骨骼动画数据纹理图的骨骼顶点索引和所述骨骼顶点索引对应的骨骼权重,计算所述目标模型实例中每个顶点的顶点坐标向量,以根据所述顶点坐标向量对所述目标模型实例每一帧的骨骼动画进行渲染。本发明只需一个着色器程序进行一次渲染管线,即可输出大量实例化的模型动画,大幅度降低了帧渲染时间。
技术领域
本发明涉及计算机图形学技术领域,尤其涉及一种基于Unity3D的骨骼动画渲染方法及系统。
背景技术
传统的骨骼动画渲染流程为:在中央处理器(Central Processing Unit,简称CPU)中将原始的T模型姿势计算为当前帧动画姿势;然后,将模型的顶点数据从CPU端传输到图形处理器(Graphics Processing Unit,简称GPU)端;再调用绘制函数,将模型的顶点数据通过渲染管线,绘制成最终的渲染图像。
在Unity3D引擎创建的游戏场景中,存在着大量某一对象的实例,且当对象具有骨骼动画时,CPU会在每帧进行大量的顶点计算,并多次调用渲染绘制函数,这将产生严重的计算耗时,极大降低渲染帧数。
因此,现在亟需一种基于Unity3D的骨骼动画渲染方法及系统来解决上述问题。
发明内容
针对现有技术存在的问题,本发明提供一种基于Unity3D的骨骼动画渲染方法及系统。
本发明提供一种基于Unity3D的骨骼动画渲染方法,包括:
对目标模型实例每一帧的骨骼动画数据进行纹理转换处理,得到骨骼动画数据纹理图;
基于Unity3D,将所述骨骼动画数据纹理图输入到着色器程序中,并根据所述骨骼动画数据纹理图的骨骼顶点索引和所述骨骼顶点索引对应的骨骼权重,计算所述目标模型实例中每个顶点的顶点坐标向量,以根据所述顶点坐标向量对所述目标模型实例每一帧的骨骼动画进行渲染。
根据本发明提供的一种基于Unity3D的骨骼动画渲染方法,所述对目标模型实例每一帧的骨骼动画数据进行纹理转换处理,得到骨骼动画数据纹理图,包括:
对所述目标模型实例每一帧的骨骼动画数据进行采样,获取每一帧的顶点数据和预设渲染动画片段,并根据所述顶点数据和所述预设渲染动画片段,通过Editor插件对骨骼动画进行解析,得到对应的骨骼姿势变换矩阵;
对所述骨骼姿势变换矩阵进行数据拆分和压缩处理,得到RGBA颜色值,并根据骨骼顶点索引和帧数顺序,通过所述RGBA颜色值生成骨骼动画数据纹理图。
根据本发明提供的一种基于Unity3D的骨骼动画渲染方法,在所述基于Unity3D,将所述骨骼动画数据纹理图输入到着色器程序中之前,所述方法还包括:
根据所述目标模型实例每一帧的骨骼动画数据,获取骨骼顶点索引和所述骨骼顶点索引对应的骨骼顶点权重;
将所述骨骼顶点索引和所述骨骼顶点权重存储到目标模型每个顶点的UV通道中。
根据本发明提供的一种基于Unity3D的骨骼动画渲染方法,在所述基于Unity3D,将所述骨骼动画数据纹理图输入到着色器程序中之前,所述方法还包括:
获取所述目标模型实例的当前帧动画索引和当前帧动画帧数;
将所述当前帧动画索引作为上一帧动画索引,将所述当前帧动画帧数作为上一帧动画帧数,根据当前帧时刻,计算当前帧动画实际索引和当前帧动画实际帧数;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京邮电大学,未经北京邮电大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202011357225.4/2.html,转载请声明来源钻瓜专利网。





