CN108122266B - 一种缓存骨骼动画渲染纹理的方法、装置和存储介质 - Google Patents
一种缓存骨骼动画渲染纹理的方法、装置和存储介质 Download PDFInfo
- Publication number
- CN108122266B CN108122266B CN201711384404.5A CN201711384404A CN108122266B CN 108122266 B CN108122266 B CN 108122266B CN 201711384404 A CN201711384404 A CN 201711384404A CN 108122266 B CN108122266 B CN 108122266B
- Authority
- CN
- China
- Prior art keywords
- rendering
- vertex
- texture
- frame picture
- value
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T11/00—2D [Two Dimensional] image generation
- G06T11/001—Texturing; Colouring; Generation of texture or colour
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T13/00—Animation
Landscapes
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Image Generation (AREA)
Abstract
本发明实施例公开了一种缓存骨骼动画渲染纹理的方法、装置和计算机可读存储介质,获取待渲染的骨骼动画的帧图片;依据帧图片的基础信息,判断缓存池中是否存储有帧图片对应的渲染纹理;当缓存池中未存储有帧图片对应的渲染纹理时,则对帧图片进行原生渲染,获取帧图片的顶点数据;依据顶点数据以及预先存储的初始矩阵,得到初始渲染顶点信息;对初始渲染顶点信息进行渲染提交,将得到的渲染纹理压入缓存池中,并将初始矩阵恢复至原始状态。通过在内存中动态渲染出渲染纹理,并将其存储至缓存池中,可以在第二次渲染时,直接使用缓存池中存储的渲染纹理,避免了CPU的重复计算,提升了骨骼动画的渲染效率。
Description
技术领域
本发明涉及动画渲染技术领域,特别是涉及一种缓存骨骼动画渲染纹理的方法、装置和计算机可读存储介质。
背景技术
开放图形库(Open Graphics Library,OpenGL),是行业领域中最为广泛接纳的2D/3D图形API,其自诞生至今已催生了各种计算机平台及设备上的数千优秀应用程序。在OpenGL渲染管线中,几何数据和纹理经过多次转化和多次测试,最后以二维像素的形式显示在屏幕上。OpenGL管线的最终渲染目的地被称作帧缓存(framebuffer)。帧缓冲是一些二维数组和OpenGL所使用的存储区的集合:颜色缓存、深度缓存、模板缓存和累计缓存。默认情况下,OpenGL将帧缓冲区作为渲染最终目的地。此帧缓冲区完全由操作系统生成和管理。这个默认的帧缓存被称作“操作系统生成”(opt-system-provided)的帧缓冲区。
在OpenGL扩展中,提供了一种创建额外的非显示的帧缓冲区对象的接口。此种帧缓冲区被称为"由程序创建的帧缓冲区(application-created framebuffer)”。这是为了区分操作系统默认创建的帧缓冲区对象。通过使用帧缓存对象(Frame Buffer Object,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表示所述目标帧率。
本发明实施例还提供了一种缓存骨骼动画渲染纹理的装置,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序以实现如上述缓存骨骼动画渲染纹理的方法的步骤。
本发明实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上述缓存骨骼动画渲染纹理的方法的步骤。
由上述技术方案可以看出,获取待渲染的骨骼动画的帧图片;依据所述帧图片的基础信息,判断缓存池中是否存储有所述帧图片对应的渲染纹理;当缓存池中存储有所述帧图片对应的渲染纹理时,则获取所述渲染纹理对帧图片进行渲染处理即可。当缓存池中未存储有所述帧图片对应的渲染纹理时,则对所述帧图片进行原生渲染,获取所述帧图片的顶点数据;依据所述顶点数据以及预先存储的初始矩阵,得到初始渲染顶点信息;对所述初始渲染顶点信息进行渲染提交,将得到的渲染纹理压入所述缓存池中,并将所述初始矩阵恢复至原始状态。通过在内存中动态渲染出渲染纹理,并将其存储至缓存池中,可以在第二次渲染时,直接使用缓存池中存储的渲染纹理,避免了CPU的重复计算,提升了骨骼动画的渲染效率。
附图说明
为了更清楚地说明本发明实施例,下面将对实施例中所需要使用的附图做简单的介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种缓存骨骼动画渲染纹理的方法的流程图;
图2为本发明实施例提供的一种缓存骨骼动画渲染纹理的装置的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下,所获得的所有其他实施例,都属于本发明保护范围。
为了使本技术领域的人员更好地理解本发明方案,下面结合附图和具体实施方式对本发明作进一步的详细说明。
接下来,详细介绍本发明实施例所提供的一种缓存骨骼动画渲染纹理的方法。图1为本发明实施例提供的一种缓存骨骼动画渲染纹理的方法的流程图,该方法包括:
S101:获取待渲染的骨骼动画的帧图片。
在本发明实施例中,系统可以依据预先设定的帧率,获取骨骼动画的帧图片。为了平衡内存和表现效果,可以将该帧率设定为16帧/秒,即每秒采集播放的16张序列帧图片。
S102:依据所述帧图片的基础信息,判断缓存池中是否存储有所述帧图片对应的渲染纹理。
在本发明实施例中,为了避免CPU的重复操作,可以在原有的渲染机制下,增加缓存池检测的步骤。在系统中可以预先建立空的缓存池,每个动作、每套皮肤都有其专属的缓存池,用来存储相应的渲染纹理。
每张帧图片都有其对应的基础信息,该基础信息可以包括动作名、皮肤名、帧率等信息。
受系统性能的影响,获取帧图片的实际帧率和预先设定的帧率会存在一定的偏差,在本发明实施例中,可以依据获取所述帧图片时的实际帧率以及预先设定的帧率,计算出对应的目标帧率。例如,可以计算实际帧率和预先设定的帧率的差值,并将该差值取整作为帧图片的目标帧率。
在本发明实施例中,为了更加准确的区分不同的渲染纹理,可以将动作名、皮肤名和当前帧率作为渲染纹理的标识信息,由该标识信息可以唯一确定出对应的渲染纹理。也即通过判断所述缓存池中是否存储有所述标识信息,作为缓存池中是否存储有所述帧图片对应的渲染纹理的判断依据。当缓存池中存储有帧图片的标识信息时,则可以依据该标识信息查找到对应的渲染纹理。
当缓存池中存储有所述帧图片对应的渲染纹理时,则可以直接获取该渲染纹理,利用该渲染纹理对骨骼动画进行渲染。
当缓存池中未存储有所述帧图片对应的渲染纹理时,则需要对帧图片进行渲染操作,即进入S103。
S103:对所述帧图片进行原生渲染,获取所述帧图片的顶点数据。
对帧图片进行原生渲染是在内存中执行,屏幕不会渲染。
获取顶点数据,是为了便于得到该帧图片的渲染纹理。其中,顶点数据中包含了各个顶点的坐标信息、纹理信息和颜色信息等。
S104:依据所述顶点数据以及预先存储的初始矩阵,得到初始渲染顶点信息。
初始矩阵是用于进行纹理坐标变换的缩放、旋转、平移矩阵。
在本发明实施例中,依据顶点数据,可以对初始矩阵进行相应的修改,从而得到与该帧图片相关联的目标矩阵,然后通过将该目标矩阵与顶点数据相乘的方式,可以得到初始渲染顶点信息。
在具体实现中,可以依据顶点数据,计算出纹理宽度值、纹理高度值以及顶点偏移值;将所述顶点偏移值设置到预先存储的初始矩阵中,可以得到目标矩阵。
纹理宽度值和纹理高度值为当前渲染所需要的纹理大小。在本发明实施例中,可以依据所述顶点数据,确定出顶点包围盒信息,并对所述顶点包围盒信息取整,得到纹理宽度值和纹理高度值。
其中,顶点包围盒信息可以看做是一个包含所有顶点坐标的最小矩阵信息,对所述顶点包围盒信息取整也即对矩阵信息中左上角坐标值与右下角坐标值的差值取整,从而得到当前渲染所需的纹理宽度值和纹理高度值。相应的,在对初始渲染顶点信息进行渲染提交之前,可以将所述纹理宽度值作为渲染纹理的存储宽度值;将所述纹理高度值作为所述渲染纹理的存储高度值。
顶点偏移值反映了帧图片实际对应的矩阵与初始矩阵之间的偏移量。
其中,顶点偏移值可以根据如下公式计算出得到,
Vec2(-minX+(width-(maxX-minX))*0.5f,-minY+(height-(maxY-minY))*0.5f)
其中,minX表示所述顶点数据中坐标轴X的最小值,maxX表示所述顶点数据中坐标轴X的最大值,width表示所述纹理宽度值,minY表示所述顶点数据中坐标轴Y的最小值,maxY表示所述顶点数据中坐标轴Y的最大值,height表示所述纹理高度值,f表示所述目标帧率。
通过将该顶点偏移值设置到初始矩阵中,便可以得到该帧图片对应的目标矩阵。
S105:对所述初始渲染顶点信息进行渲染提交,将得到的渲染纹理压入所述缓存池中,并将所述初始矩阵恢复至原始状态。
在存储渲染纹理时,可以将帧图片的动作名、皮肤名和当前帧率作为渲染纹理的标识信息,存储至缓存池中。以便于后续需要使用该渲染纹理时,可以直接依据该标识信息查找。
在上述S104中,得到初始渲染顶点信息时,需要对初始矩阵进行顶点偏移量的设置,此时,初始矩阵中包含的矩阵信息会发生变化,当完成渲染纹理的缓存之后,需要将该初始矩阵恢复至原始状态,即将该初始矩阵中的数据恢复至初始的数值。以便于后续执行渲染纹理的缓存操作时,可以直接调用该初始矩阵。
由上述技术方案可以看出,获取待渲染的骨骼动画的帧图片;依据所述帧图片的基础信息,判断缓存池中是否存储有所述帧图片对应的渲染纹理;当缓存池中存储有所述帧图片对应的渲染纹理时,则获取所述渲染纹理对帧图片进行渲染处理即可。当缓存池中未存储有所述帧图片对应的渲染纹理时,则对所述帧图片进行原生渲染,获取所述帧图片的顶点数据;依据所述顶点数据以及预先存储的初始矩阵,得到初始渲染顶点信息;对所述初始渲染顶点信息进行渲染提交,将得到的渲染纹理压入所述缓存池中,并将所述初始矩阵恢复至原始状态。通过在内存中动态渲染出渲染纹理,并将其存储至缓存池中,可以在第二次渲染时,直接使用缓存池中存储的渲染纹理,避免了CPU的重复计算,提升了骨骼动画的渲染效率。
图2为本发明实施例提供的一种缓存骨骼动画渲染纹理的装置的结构示意图,包括获取单元21、判断单元22、原生渲染单元23、得到单元24和渲染提交单元25;
所述获取单元21,用于获取待渲染的骨骼动画的帧图片;
所述判断单元22,用于依据所述帧图片的基础信息,判断缓存池中是否存储有所述帧图片对应的渲染纹理;若否,则触发所述原生渲染单元23;
所述原生渲染单元23,用于对所述帧图片进行原生渲染,获取所述帧图片的顶点数据;
所述得到单元24,用于依据所述顶点数据以及预先存储的初始矩阵,得到初始渲染顶点信息;
所述渲染提交单元25,用于对所述初始渲染顶点信息进行渲染提交,将得到的渲染纹理压入所述缓存池中,并将所述初始矩阵恢复至原始状态。
可选的,所述判断单元具体用于依据获取所述帧图片时的实际帧率以及预先设定的帧率,计算出对应的目标帧率;并将所述帧图片的动作名、皮肤名以及所述目标帧率作为标识信息,判断所述缓存池中是否存储有所述标识信息。
可选的,所述得到单元包括计算子单元、设置子单元和确定子单元;
所述计算子单元,用于依据所述顶点数据,计算出纹理宽度值、纹理高度值以及顶点偏移值;
所述设置子单元,用于将所述顶点偏移值设置到预先存储的初始矩阵中,得到目标矩阵;
所述确定子单元,用于依据所述目标矩阵和所述顶点数据,确定出初始渲染顶点信息;
相应的,还包括作为单元,所述作为单元,用于将所述纹理宽度值作为渲染纹理的存储宽度值;将所述纹理高度值作为所述渲染纹理的存储高度值。
可选的,所述计算子单元具体用于依据所述顶点数据,确定出顶点包围盒信息,并对所述顶点包围盒信息取整,得到纹理宽度值和纹理高度值;
并根据如下公式,计算出顶点偏移值,
Vec2(-minX+(width-(maxX-minX))*0.5f,-minY+(height-(maxY-minY))*0.5f)
其中,minX表示所述顶点数据中坐标轴X的最小值,maxX表示所述顶点数据中坐标轴X的最大值,width表示所述纹理宽度值,minY表示所述顶点数据中坐标轴Y的最小值,maxY表示所述顶点数据中坐标轴Y的最大值,height表示所述纹理高度值,f表示所述目标帧率。
图2所对应实施例中特征的说明可以参见图1所对应实施例的相关说明,这里不再一一赘述。
由上述技术方案可以看出,获取待渲染的骨骼动画的帧图片;依据所述帧图片的基础信息,判断缓存池中是否存储有所述帧图片对应的渲染纹理;当缓存池中存储有所述帧图片对应的渲染纹理时,则获取所述渲染纹理对帧图片进行渲染处理即可。当缓存池中未存储有所述帧图片对应的渲染纹理时,则对所述帧图片进行原生渲染,获取所述帧图片的顶点数据;依据所述顶点数据以及预先存储的初始矩阵,得到初始渲染顶点信息;对所述初始渲染顶点信息进行渲染提交,将得到的渲染纹理压入所述缓存池中,并将所述初始矩阵恢复至原始状态。通过在内存中动态渲染出渲染纹理,并将其存储至缓存池中,可以在第二次渲染时,直接使用缓存池中存储的渲染纹理,避免了CPU的重复计算,提升了骨骼动画的渲染效率。本发明实施例还提供了一种缓存骨骼动画渲染纹理的装置,包括:存储器,用于存储计算机程序;处理器,用于执行所述计算机程序以实现如权上述缓存骨骼动画渲染纹理的方法的步骤。
本发明实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上述缓存骨骼动画渲染纹理的方法的步骤。
以上对本发明实施例所提供的一种缓存骨骼动画渲染纹理的方法、装置和计算机可读存储介质进行了详细介绍。说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
Claims (6)
1.一种缓存骨骼动画渲染纹理的方法,其特征在于,包括:
获取待渲染的骨骼动画的帧图片;
依据所述帧图片的基础信息,判断缓存池中是否存储有所述帧图片对应的渲染纹理;
若否,则对所述帧图片进行原生渲染,获取所述帧图片的顶点数据;
依据所述顶点数据以及预先存储的初始矩阵,得到初始渲染顶点信息;
对所述初始渲染顶点信息进行渲染提交,将得到的渲染纹理压入所述缓存池中,并将所述初始矩阵恢复至原始状态;
所述依据所述顶点数据以及预先存储的初始矩阵,得到初始渲染顶点信息包括:
依据所述顶点数据,确定出顶点包围盒信息,并对所述顶点包围盒信息取整,得到纹理宽度值和纹理高度值;
根据如下公式,计算出顶点偏移值,
Vec2(-minX+(width-(maxX-minX))*0.5f,-minY+(height-(maxY-minY))*0.5f)
其中,minX表示所述顶点数据中坐标轴X的最小值,maxX表示所述顶点数据中坐标轴X的最大值,width表示所述纹理宽度值,minY表示所述顶点数据中坐标轴Y的最小值,maxY表示所述顶点数据中坐标轴Y的最大值,height表示所述纹理高度值,f表示目标帧率;
将所述顶点偏移值设置到预先存储的初始矩阵中,得到目标矩阵;
依据所述目标矩阵和所述顶点数据,确定出初始渲染顶点信息;初始渲染顶点信息为依据顶点数据,对初始矩阵进行修改,得到与帧图片相关联的目标矩阵,将目标矩阵与顶点数据相乘的方式得到;
相应的,在所述对所述初始渲染顶点信息进行渲染提交,将得到的渲染纹理压入所述缓存池中之前还包括:
将所述纹理宽度值作为渲染纹理的存储宽度值;将所述纹理高度值作为所述渲染纹理的存储高度值。
2.根据权利要求1所述的方法,其特征在于,所述依据所述帧图片的基础信息,判断缓存池中是否存储有所述帧图片对应的渲染纹理包括:
依据获取所述帧图片时的实际帧率以及预先设定的帧率,计算出对应的目标帧率;
将所述帧图片的动作名、皮肤名以及所述目标帧率作为标识信息,判断所述缓存池中是否存储有所述标识信息。
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表示目标帧率;
所述设置子单元,用于将所述顶点偏移值设置到预先存储的初始矩阵中,得到目标矩阵;
所述确定子单元,用于依据所述目标矩阵和所述顶点数据,确定出初始渲染顶点信息;初始渲染顶点信息为依据顶点数据,对初始矩阵进行修改,得到与帧图片相关联的目标矩阵,将目标矩阵与顶点数据相乘的方式得到;
相应的,还包括作为单元,所述作为单元,用于将所述纹理宽度值作为渲染纹理的存储宽度值;将所述纹理高度值作为所述渲染纹理的存储高度值。
4.根据权利要求3所述的装置,其特征在于,所述判断单元具体用于依据获取所述帧图片时的实际帧率以及预先设定的帧率,计算出对应的目标帧率;并将所述帧图片的动作名、皮肤名以及所述目标帧率作为标识信息,判断所述缓存池中是否存储有所述标识信息。
5.一种缓存骨骼动画渲染纹理的装置,其特征在于,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序以实现如权利要求1至2任意一项所述缓存骨骼动画渲染纹理的方法的步骤。
6.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至2任一项所述缓存骨骼动画渲染纹理的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711384404.5A CN108122266B (zh) | 2017-12-20 | 2017-12-20 | 一种缓存骨骼动画渲染纹理的方法、装置和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711384404.5A CN108122266B (zh) | 2017-12-20 | 2017-12-20 | 一种缓存骨骼动画渲染纹理的方法、装置和存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108122266A CN108122266A (zh) | 2018-06-05 |
CN108122266B true CN108122266B (zh) | 2021-07-27 |
Family
ID=62229627
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711384404.5A Active CN108122266B (zh) | 2017-12-20 | 2017-12-20 | 一种缓存骨骼动画渲染纹理的方法、装置和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108122266B (zh) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109377545B (zh) * | 2018-09-28 | 2022-06-24 | 武汉艺画开天文化传播有限公司 | 基于Alembic的模型共享、渲染方法及电子终端 |
CN109840931B (zh) * | 2019-01-21 | 2023-07-25 | 网易(杭州)网络有限公司 | 骨骼动画的合批渲染方法、装置、系统及存储介质 |
CN112825197B (zh) * | 2019-11-20 | 2023-09-15 | 福建天晴数码有限公司 | Unity中群集动画快速渲染的方法、存储介质 |
CN111402369B (zh) * | 2020-03-10 | 2023-11-03 | 京东科技控股股份有限公司 | 互动广告的处理方法、装置、终端设备及存储介质 |
CN111309430B (zh) * | 2020-03-16 | 2021-12-10 | 广东趣炫网络股份有限公司 | 一种自动缓存用户交互界面节点的方法和相关装置 |
CN114584598A (zh) * | 2020-11-16 | 2022-06-03 | 中国移动通信有限公司研究院 | 一种图像处理方法、装置、设备及可读存储介质 |
CN113421321B (zh) * | 2021-07-09 | 2024-03-19 | 北京七维视觉传媒科技有限公司 | 用于动画的渲染方法、装置、电子设备及介质 |
CN116012497B (zh) * | 2023-03-29 | 2023-05-30 | 腾讯科技(深圳)有限公司 | 动画重定向方法、装置、设备及介质 |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20100116251A (ko) * | 2009-04-22 | 2010-11-01 | 주식회사 엔씨소프트 | 본 애니메이션 방식에 따라 동작하는 게임 캐릭터의 데미지 모션 처리 방법 |
CN103021008A (zh) * | 2012-12-11 | 2013-04-03 | 湖南师范大学 | 一种基于可编程gpu的骨骼动画处理方法 |
CN103606180A (zh) * | 2013-11-29 | 2014-02-26 | 广州菲动软件科技有限公司 | 3d骨骼动画的渲染方法及装置 |
CN103617643A (zh) * | 2013-11-29 | 2014-03-05 | 广州菲动软件科技有限公司 | 骨骼动画的渲染方法和系统 |
CN104240285A (zh) * | 2014-09-16 | 2014-12-24 | 无锡梵天信息技术股份有限公司 | 利用vtf技术处理cpu大批量数据传入gpu的方法 |
CN104408761A (zh) * | 2014-11-12 | 2015-03-11 | 成都卓杭信息技术有限公司 | 一种基于自动批次渲染等技术的计算机制图方法 |
CN105894551A (zh) * | 2016-03-31 | 2016-08-24 | 百度在线网络技术(北京)有限公司 | 图像绘制方法及装置 |
CN106447748A (zh) * | 2016-09-14 | 2017-02-22 | 厦门幻世网络科技有限公司 | 一种用于生成动画数据的方法和装置 |
CN106504309A (zh) * | 2016-11-24 | 2017-03-15 | 腾讯科技(深圳)有限公司 | 一种图像合成的方法以及图像合成装置 |
CN107452048A (zh) * | 2016-05-30 | 2017-12-08 | 网易(杭州)网络有限公司 | 全局光照的计算方法及装置 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6700586B1 (en) * | 2000-08-23 | 2004-03-02 | Nintendo Co., Ltd. | Low cost graphics with stitching processing hardware support for skeletal animation |
CN104268920B (zh) * | 2014-09-05 | 2017-08-18 | 无锡梵天信息技术股份有限公司 | 一种利用布娃娃物理系统模拟人物角色死亡的方法 |
CN106710003B (zh) * | 2017-01-09 | 2020-07-10 | 成都品果科技有限公司 | 一种基于OpenGL ES的三维拍照方法和系统 |
CN107093200A (zh) * | 2017-03-29 | 2017-08-25 | 珠海金山网络游戏科技有限公司 | 一种骨骼蒙皮动画网格表面附加模型的方法 |
-
2017
- 2017-12-20 CN CN201711384404.5A patent/CN108122266B/zh active Active
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20100116251A (ko) * | 2009-04-22 | 2010-11-01 | 주식회사 엔씨소프트 | 본 애니메이션 방식에 따라 동작하는 게임 캐릭터의 데미지 모션 처리 방법 |
CN103021008A (zh) * | 2012-12-11 | 2013-04-03 | 湖南师范大学 | 一种基于可编程gpu的骨骼动画处理方法 |
CN103606180A (zh) * | 2013-11-29 | 2014-02-26 | 广州菲动软件科技有限公司 | 3d骨骼动画的渲染方法及装置 |
CN103617643A (zh) * | 2013-11-29 | 2014-03-05 | 广州菲动软件科技有限公司 | 骨骼动画的渲染方法和系统 |
CN104240285A (zh) * | 2014-09-16 | 2014-12-24 | 无锡梵天信息技术股份有限公司 | 利用vtf技术处理cpu大批量数据传入gpu的方法 |
CN104408761A (zh) * | 2014-11-12 | 2015-03-11 | 成都卓杭信息技术有限公司 | 一种基于自动批次渲染等技术的计算机制图方法 |
CN105894551A (zh) * | 2016-03-31 | 2016-08-24 | 百度在线网络技术(北京)有限公司 | 图像绘制方法及装置 |
CN107452048A (zh) * | 2016-05-30 | 2017-12-08 | 网易(杭州)网络有限公司 | 全局光照的计算方法及装置 |
CN106447748A (zh) * | 2016-09-14 | 2017-02-22 | 厦门幻世网络科技有限公司 | 一种用于生成动画数据的方法和装置 |
CN106504309A (zh) * | 2016-11-24 | 2017-03-15 | 腾讯科技(深圳)有限公司 | 一种图像合成的方法以及图像合成装置 |
Non-Patent Citations (1)
Title |
---|
基于可编程图形处理器的骨骼动画算法及其比较;季卓尔等;《计算机工程与设计》;20081130;第29卷(第21期);第5551-5552页,图4 * |
Also Published As
Publication number | Publication date |
---|---|
CN108122266A (zh) | 2018-06-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108122266B (zh) | 一种缓存骨骼动画渲染纹理的方法、装置和存储介质 | |
CN111815755B (zh) | 虚拟物体被遮挡的区域确定方法、装置及终端设备 | |
US11922534B2 (en) | Tile based computer graphics | |
JP5437475B2 (ja) | 画像における陰影生成方法 | |
KR100833842B1 (ko) | 3차원 그래픽 엔진에서의 픽셀 래스터라이제이션 처리방법및 그의장치 | |
CN110111408B (zh) | 基于图形学的大场景快速求交方法 | |
KR20080097354A (ko) | 텍스쳐 상세 레벨을 산출하기 위한 장치 및 방법 | |
CN112288665A (zh) | 图像融合的方法、装置、存储介质及电子设备 | |
US10535188B2 (en) | Tessellation edge shaders | |
KR20160031328A (ko) | 렌더링 방법 및 장치 | |
KR20150093689A (ko) | 쉘 메쉬에 기초한 최적화된 다각형을 형성하기 위한 방법 | |
CN110599564A (zh) | 图像展示方法、装置、计算机设备和存储介质 | |
JP4463597B2 (ja) | 3次元描画モデル生成方法及びそのプログラム | |
RU2680355C1 (ru) | Способ и система удаления невидимых поверхностей трёхмерной сцены | |
CN111080762B (zh) | 虚拟模型渲染方法及装置 | |
US20180165869A1 (en) | Method and apparatus for rendering object using mipmap including plurality of textures | |
KR20170036419A (ko) | 그래픽스 프로세싱 장치 및 그래픽스 파이프라인의 텍스쳐링을 위한 LOD(level of detail)를 결정하는 방법 | |
KR101508388B1 (ko) | 밉맵 생성 장치 및 방법 | |
CN106445445B (zh) | 一种矢量数据的处理方法及装置 | |
CN114092611A (zh) | 虚拟表情驱动方法及装置、电子设备、存储介质 | |
CN109636874B (zh) | 一种三维模型透视投影方法、系统及相关装置 | |
CN111507891A (zh) | 基于cuda的数字图像几何变换方法、装置、设备及介质 | |
KR102178260B1 (ko) | 이미지 출력 장치 및 이의 이미지 렌더링 방법 | |
US20150103072A1 (en) | Method, apparatus, and recording medium for rendering object | |
JP2005050336A (ja) | 隠線を消去したベクトルイメージを提供する方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |