一种缓存骨骼动画渲染纹理的方法、装置和存储介质制造方法及图纸

技术编号:18139502 阅读:93 留言:0更新日期:2018-06-06 12:30
本发明专利技术实施例公开了一种缓存骨骼动画渲染纹理的方法、装置和计算机可读存储介质,获取待渲染的骨骼动画的帧图片;依据帧图片的基础信息,判断缓存池中是否存储有帧图片对应的渲染纹理;当缓存池中未存储有帧图片对应的渲染纹理时,则对帧图片进行原生渲染,获取帧图片的顶点数据;依据顶点数据以及预先存储的初始矩阵,得到初始渲染顶点信息;对初始渲染顶点信息进行渲染提交,将得到的渲染纹理压入缓存池中,并将初始矩阵恢复至原始状态。通过在内存中动态渲染出渲染纹理,并将其存储至缓存池中,可以在第二次渲染时,直接使用缓存池中存储的渲染纹理,避免了CPU的重复计算,提升了骨骼动画的渲染效率。

【技术实现步骤摘要】
一种缓存骨骼动画渲染纹理的方法、装置和存储介质
本专利技术涉及动画渲染
,特别是涉及一种缓存骨骼动画渲染纹理的方法、装置和计算机可读存储介质。
技术介绍
开放图形库(OpenGraphicsLibrary,OpenGL),是行业领域中最为广泛接纳的2D/3D图形API,其自诞生至今已催生了各种计算机平台及设备上的数千优秀应用程序。在OpenGL渲染管线中,几何数据和纹理经过多次转化和多次测试,最后以二维像素的形式显示在屏幕上。OpenGL管线的最终渲染目的地被称作帧缓存(framebuffer)。帧缓冲是一些二维数组和OpenGL所使用的存储区的集合:颜色缓存、深度缓存、模板缓存和累计缓存。默认情况下,OpenGL将帧缓冲区作为渲染最终目的地。此帧缓冲区完全由操作系统生成和管理。这个默认的帧缓存被称作“操作系统生成”(opt-system-provided)的帧缓冲区。在OpenGL扩展中,提供了一种创建额外的非显示的帧缓冲区对象的接口。此种帧缓冲区被称为"由程序创建的帧缓冲区(application-createdframebuffer)”。这是为了区分操作系统默认创建的帧缓冲区对象。通过使用帧缓存对象(FrameBufferObject,FBO),OpenGL可以将显示输出重定向到程序帧缓存对象,而不是传统的“操作系统生成”帧缓存。而且它完全受OpenGL控制。在实际应用中,骨骼动画中每一帧图片的渲染,都需要大量的CPU计算,从骨骼到插槽,到图形顶点计算,数据平滑插值,最终提交到GPU,因为骨骼动画才有mesh自由形变方式,因此顶点数据量很大,GPU的渲染压力也很大。当骨骼动画需要反复播放时,每次都要重新计算每帧图片的渲染纹理,增加了CPU的计算量,导致骨骼动画的渲染效率较低。可见,如何提升骨骼动画的渲染效率,是本领域技术人员亟待解决的问题。
技术实现思路
本专利技术实施例的目的是提供一种缓存骨骼动画渲染纹理的方法、装置和计算机可读存储介质,可以实现渲染纹理的缓存,提升了骨骼动画的渲染效率。为解决上述技术问题,本专利技术实施例提供一种缓存骨骼动画渲染纹理的方法,包括:获取待渲染的骨骼动画的帧图片;依据所述帧图片的基础信息,判断缓存池中是否存储有所述帧图片对应的渲染纹理;若否,则对所述帧图片进行原生渲染,获取所述帧图片的顶点数据;依据所述顶点数据以及预先存储的初始矩阵,得到初始渲染顶点信息;对所述初始渲染顶点信息进行渲染提交,将得到的渲染纹理压入所述缓存池中,并将所述初始矩阵恢复至原始状态。可选的,所述依据所述帧图片的基础信息,判断缓存池中是否存储有所述帧图片对应的渲染纹理包括:依据获取所述帧图片时的实际帧率以及预先设定的帧率,计算出对应的目标帧率;将所述帧图片的动作名、皮肤名以及所述目标帧率作为标识信息,判断所述缓存池中是否存储有所述标识信息。可选的,所述依据所述顶点数据以及预先存储的初始矩阵,得到初始渲染顶点信息包括:依据所述顶点数据,计算出纹理宽度值、纹理高度值以及顶点偏移值;将所述顶点偏移值设置到预先存储的初始矩阵中,得到目标矩阵;依据所述目标矩阵和所述顶点数据,确定出初始渲染顶点信息;相应的,在所述对所述初始渲染顶点信息进行渲染提交,将得到的渲染纹理压入所述缓存池中之前还包括:将所述纹理宽度值作为渲染纹理的存储宽度值;将所述纹理高度值作为所述渲染纹理的存储高度值。可选的,所述依据所述顶点数据,计算出纹理宽度值、纹理高度值以及顶点偏移值包括:依据所述顶点数据,确定出顶点包围盒信息,并对所述顶点包围盒信息取整,得到纹理宽度值和纹理高度值;根据如下公式,计算出顶点偏移值,Vec2(-minX+(width-(maxX-minX))*0.5f,-minY+(height-(maxY-minY))*0.5f)其中,minX表示所述顶点数据中坐标轴X的最小值,maxX表示所述顶点数据中坐标轴X的最大值,width表示所述纹理宽度值,minY表示所述顶点数据中坐标轴Y的最小值,maxY表示所述顶点数据中坐标轴Y的最大值,height表示所述纹理高度值,f表示所述目标帧率。本专利技术实施例还提供了一种缓存骨骼动画渲染纹理的装置,包括获取单元、判断单元、原生渲染单元、得到单元和渲染提交单元;所述获取单元,用于获取待渲染的骨骼动画的帧图片;所述判断单元,用于依据所述帧图片的基础信息,判断缓存池中是否存储有所述帧图片对应的渲染纹理;若否,则触发所述原生渲染单元;所述原生渲染单元,用于对所述帧图片进行原生渲染,获取所述帧图片的顶点数据;所述得到单元,用于依据所述顶点数据以及预先存储的初始矩阵,得到初始渲染顶点信息;所述渲染提交单元,用于对所述初始渲染顶点信息进行渲染提交,将得到的渲染纹理压入所述缓存池中,并将所述初始矩阵恢复至原始状态。可选的,所述判断单元具体用于依据获取所述帧图片时的实际帧率以及预先设定的帧率,计算出对应的目标帧率;并将所述帧图片的动作名、皮肤名以及所述目标帧率作为标识信息,判断所述缓存池中是否存储有所述标识信息。可选的,所述得到单元包括计算子单元、设置子单元和确定子单元;所述计算子单元,用于依据所述顶点数据,计算出纹理宽度值、纹理高度值以及顶点偏移值;所述设置子单元,用于将所述顶点偏移值设置到预先存储的初始矩阵中,得到目标矩阵;所述确定子单元,用于依据所述目标矩阵和所述顶点数据,确定出初始渲染顶点信息;相应的,还包括作为单元,所述作为单元,用于将所述纹理宽度值作为渲染纹理的存储宽度值;将所述纹理高度值作为所述渲染纹理的存储高度值。可选的,所述计算子单元具体用于依据所述顶点数据,确定出顶点包围盒信息,并对所述顶点包围盒信息取整,得到纹理宽度值和纹理高度值;并根据如下公式,计算出顶点偏移值,Vec2(-minX+(width-(maxX-minX))*0.5f,-minY+(height-(maxY-minY))*0.5f)其中,minX表示所述顶点数据中坐标轴X的最小值,maxX表示所述顶点数据中坐标轴X的最大值,width表示所述纹理宽度值,minY表示所述顶点数据中坐标轴Y的最小值,maxY表示所述顶点数据中坐标轴Y的最大值,height表示所述纹理高度值,f表示所述目标帧率。本专利技术实施例还提供了一种缓存骨骼动画渲染纹理的装置,包括:存储器,用于存储计算机程序;处理器,用于执行所述计算机程序以实现如上述缓存骨骼动画渲染纹理的方法的步骤。本专利技术实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上述缓存骨骼动画渲染纹理的方法的步骤。由上述技术方案可以看出,获取待渲染的骨骼动画的帧图片;依据所述帧图片的基础信息,判断缓存池中是否存储有所述帧图片对应的渲染纹理;当缓存池中存储有所述帧图片对应的渲染纹理时,则获取所述渲染纹理对帧图片进行渲染处理即可。当缓存池中未存储有所述帧图片对应的渲染纹理时,则对所述帧图片进行原生渲染,获取所述帧图片的顶点数据;依据所述顶点数据以及预先存储的初始矩阵,得到初始渲染顶点信息;对所述初始渲染顶点信息进行渲染提交,将得到的渲染纹理压入所述缓存池中,并将所述初始矩阵恢复至原始状态。通过在内存中动态渲染出渲染纹理本文档来自技高网
...
一种缓存骨骼动画渲染纹理的方法、装置和存储介质

【技术保护点】
一种缓存骨骼动画渲染纹理的方法,其特征在于,包括:获取待渲染的骨骼动画的帧图片;依据所述帧图片的基础信息,判断缓存池中是否存储有所述帧图片对应的渲染纹理;若否,则对所述帧图片进行原生渲染,获取所述帧图片的顶点数据;依据所述顶点数据以及预先存储的初始矩阵,得到初始渲染顶点信息;对所述初始渲染顶点信息进行渲染提交,将得到的渲染纹理压入所述缓存池中,并将所述初始矩阵恢复至原始状态。

【技术特征摘要】
1.一种缓存骨骼动画渲染纹理的方法,其特征在于,包括:获取待渲染的骨骼动画的帧图片;依据所述帧图片的基础信息,判断缓存池中是否存储有所述帧图片对应的渲染纹理;若否,则对所述帧图片进行原生渲染,获取所述帧图片的顶点数据;依据所述顶点数据以及预先存储的初始矩阵,得到初始渲染顶点信息;对所述初始渲染顶点信息进行渲染提交,将得到的渲染纹理压入所述缓存池中,并将所述初始矩阵恢复至原始状态。2.根据权利要求1所述的方法,其特征在于,所述依据所述帧图片的基础信息,判断缓存池中是否存储有所述帧图片对应的渲染纹理包括:依据获取所述帧图片时的实际帧率以及预先设定的帧率,计算出对应的目标帧率;将所述帧图片的动作名、皮肤名以及所述目标帧率作为标识信息,判断所述缓存池中是否存储有所述标识信息。3.根据权利要求2所述的方法,其特征在于,所述依据所述顶点数据以及预先存储的初始矩阵,得到初始渲染顶点信息包括:依据所述顶点数据,计算出纹理宽度值、纹理高度值以及顶点偏移值;将所述顶点偏移值设置到预先存储的初始矩阵中,得到目标矩阵;依据所述目标矩阵和所述顶点数据,确定出初始渲染顶点信息;相应的,在所述对所述初始渲染顶点信息进行渲染提交,将得到的渲染纹理压入所述缓存池中之前还包括:将所述纹理宽度值作为渲染纹理的存储宽度值;将所述纹理高度值作为所述渲染纹理的存储高度值。4.根据权利要求3所述的方法,其特征在于,所述依据所述顶点数据,计算出纹理宽度值、纹理高度值以及顶点偏移值包括:依据所述顶点数据,确定出顶点包围盒信息,并对所述顶点包围盒信息取整,得到纹理宽度值和纹理高度值;根据如下公式,计算出顶点偏移值,Vec2(-minX+(width-(maxX-minX))*0.5f,-minY+(height-(maxY-minY))*0.5f)其中,minX表示所述顶点数据中坐标轴X的最小值,maxX表示所述顶点数据中坐标轴X的最大值,width表示所述纹理宽度值,minY表示所述顶点数据中坐标轴Y的最小值,maxY表示所述顶点数据中坐标轴Y的最大值,height表示所述纹理高度值,f表示所述目标帧率。5.一种缓存骨骼动画渲染纹理的装置,其特征在于,包括获取单元、判断单元、原生渲染单元、得到单元和渲染提交单元;所述获取单元,用于获取待渲染的骨骼动画的帧图片;所述判断单元,用于依据所述帧图片的基础信息,判断缓...

【专利技术属性】
技术研发人员:王伟游彬
申请(专利权)人:成都卓杭网络科技股份有限公司
类型:发明
国别省市:四川,51

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

1