一种3d应用的显示刷新方法及系统的制作方法

文档序号:9727126阅读:911来源:国知局
一种3d应用的显示刷新方法及系统的制作方法
【技术领域】
[0001]本发明涉及移动终端技术领域,尤其涉及的是一种3D应用的显示刷新方法及系统。
【背景技术】
[0002]随着移动终端技术的不断发展,手机等移动终端的功能越来越多。现有智能手机功能十分丰富,基于3D的视觉体验效果也越来越流行,越来越多的3D应用在嵌入式设备上运行起来。基于 OpenGL ES (OpenGL for Embedded Systems,是 OpenGL 三维图形 API 的子集,针对手机、PDA和游戏主机等嵌入式设备而设计)的应用一般都是整个屏幕在不停的刷新,这样在嵌入式设备上就会占用大量的CPU和GPU的资源,导致嵌入式设备功耗增加,系统性能降低,而且直接影响嵌入式设备电池的续航能力。
[0003]因此,现有技术还有待于改进和发展。

【发明内容】

[0004]本发明的目的在于提供一种3D应用的显示刷新方法及系统,旨在解决现有的嵌入式设备在显示3D应用显示时,3D应用刷新占用大量的CPU和GPU的资源导致嵌入式设备功耗增加、系统性能降低及耗电量大的问题。
[0005]本发明解决技术问题所采用的技术方案如下:
一种3D应用的显示刷新方法,其中,包括以下步骤:
A、保存3D应用进行显示的上一次渲染结果,并根据所述上一次渲染结果生成对应的源纹理;
B、计算所述3D应用的当前屏幕显示与上一次屏幕显示相比屏幕发生变化的矩形区域;
C、根据所述矩形区域设置视口的偏移大小,重新计算投影矩阵,对所述矩形区域进行绘制,并将绘制结果生成对应的更新纹理;
D、将所述更新纹理与源纹理混合,绘制到所述视口,并更新显示所述屏幕显示,以完成3D应用的显示刷新。
[0006]所述的3D应用的显示刷新方法,其中,所述步骤A具体包括:
A1、创建一与终端显示屏幕大小一样、用于保存所述终端显示屏幕显示3D应用的上一次渲染结果的ΡΒ0 ;
A2、保存3D应用进行显示的上一次渲染结果至所述ΡΒ0中,并将所述ΡΒ0保存的上一次渲染结果生成对应的源纹理。
[0007]所述的3D应用的显示刷新方法,其中,所述步骤B具体包括:
B1、将所述3D应用的当前屏幕显示与上一次屏幕显示进行对比,将3D应用显示的3D空间有变化的区域映射到屏幕的2D坐标;
B2、根据所述屏幕的2D坐标生成对应的矩形区域。
[0008]所述的3D应用的显示刷新方法,其中,所述步骤C具体包括:
C1、调整视口的偏移大小到所述矩形区域中;
C2、确定视点的位置,采用近切面的偏移以及大小计算投影矩阵,根据投影矩阵确定投影的范围,透视除法后获取到规范化坐标[_1,1]之间;
C3、将所述投影矩阵缩小至需要更新的矩形区域中,绘制所述矩形区域对应的显示界面;
C4、获取视口绘制的矩形区域对应的绘制结果,并生成对应的更新纹理。
[0009]所述的3D应用的显示刷新方法,其中,所述步骤D具体包括:
D1、将所述更新纹理与源纹理混合,并绘制到所述视口 ;
D2、在上一次屏幕显示的基础上更新显示所述屏幕显示,以完成3D应用的显示刷新,并将刷新后的当前屏幕显示结果发送至ΡΒ0保存。
[0010]一种3D应用的显示刷新系统,其中,包括:
源纹理生成模块,用于保存3D应用进行显示的上一次渲染结果,并根据所述上一次渲染结果生成对应的源纹理;
矩形区域计算模块,用于计算所述3D应用的当前屏幕显示与上一次屏幕显示相比屏幕发生变化的矩形区域;
更新纹理生成模块,用于根据所述矩形区域设置视口的偏移大小,重新计算投影矩阵,对所述矩形区域进行绘制,并将绘制结果生成对应的更新纹理;
纹理混合显示模块,用于将所述更新纹理与源纹理混合,绘制到所述视口,并更新显示所述屏幕显示,以完成3D应用的显示刷新。
[0011]所述的3D应用的显示刷新系统,其中,所述源纹理生成模块包括:
ΡΒ0创建单元,用于创建一与终端显示屏幕大小一样、用于保存所述终端显示屏幕显示3D应用的上一次渲染结果的ΡΒ0 ;
源纹理生成单元,用于保存3D应用进行显示的上一次渲染结果至所述ΡΒ0中,并将所述ΡΒ0保存的上一次渲染结果生成对应的源纹理。
[0012]所述的3D应用的显示刷新系统,其中,所述矩形区域计算模块包括:
映射单元,用于将所述3D应用的当前屏幕显示与上一次屏幕显示进行对比,将3D应用显示的3D空间有变化的区域映射到屏幕的2D坐标;
矩形区域生成单元,用于根据所述屏幕的2D坐标生成对应的矩形区域。
[0013]所述的3D应用的显示刷新系统,其中,所述更新纹理生成模块包括:
视口偏移单元,用于调整视口的偏移大小到所述矩形区域中;
投影矩阵计算单元,用于确定视点的位置,采用近切面的偏移以及大小计算投影矩阵,根据投影矩阵确定投影的范围,透视除法后获取到规范化坐标[-1,1]之间;
矩形区域绘制单元,用于将所述投影矩阵缩小至需要更新的矩形区域中,绘制所述矩形区域对应的显示界面;
更新纹理生成单元,用于获取视口绘制的矩形区域对应的绘制结果,并生成对应的更新纹理。
[0014]所述的3D应用的显示刷新系统,其中,所述纹理混合显示模块包括:
纹理混合单元,用于将所述更新纹理与源纹理混合,并绘制到所述视口 ; 屏幕显示更新单元,用于在上一次屏幕显示的基础上更新显示所述屏幕显示,以完成3D应用的显示刷新,并将刷新后的当前屏幕显示结果发送至PBO保存。
[0015]本发明所提供的一种3D应用的显示刷新方法及系统,特别是基于OpenGL ES的3D应用显示的局部刷新方法,有效地解决了现有的嵌入式设备在显示3D应用显示时,3D应用刷新占用大量的CPU和GPU的资源导致嵌入式设备功耗增加、系统性能降低及耗电量大的问题,通过保存3D应用进行显示的上一次渲染结果,并根据所述上一次渲染结果生成对应的源纹理;计算所述3D应用的当前屏幕显示与上一次屏幕显示相比屏幕发生变化的矩形区域;根据所述矩形区域设置视口的偏移大小,重新计算投影矩阵,对所述矩形区域进行绘制,并将绘制结果生成对应的更新纹理;将所述更新纹理与源纹理混合,绘制到所述视口,并更新显示所述屏幕显示,以完成3D应用的显示刷新;通过动态投影矩阵的计算,确定局部刷新的窗口大小,只针对屏幕显示界面有所改动的区域进行刷新,提高了系统性能和用户交互的响应速度,较大程度的降低了 GPU的占用率,平衡CPU和GPU的负载,提高了嵌入式系统的有效使用率,大大提高了帧率,提高了动画的流畅度,显著提高3D UI (User’sInterface,用户界面,也称人机界面)场景的渲染效率,在嵌入式平台效果更加显著,带来了大大的方便。
【附图说明】
[0016]图1为本发明提供的3D应用的显示刷新方法较佳实施例的流程图。
[0017]图2为本发明提供的3D应用的显示刷新方法的原理示意图。
[0018]图3为全投影矩阵的原理示意图。
[0019]图4为局部投影矩阵的原理示意图。
[0020]图5为本发明提供的3D应用的显示刷新系统较佳实施例的结构框图。
【具体实施方式】
[0021]本发明提供一种3D应用的显示刷新方法及系统,为使本发明的目的、技术方案及优点更加清楚、明确,以下参照附图并举实施例对本发明进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
[0022]请参阅图1,图1为本发明提供3D应用的显示刷新方法较佳实施例的流程图,如图所示,所述方法包括以下步骤:
步骤S100、保存3D应用进行显示的上一次渲染结果,并根据所述上一次渲染结果生成对应的源纹理;
步骤S200、计算所述3D应用的当前屏幕显示与上一次屏幕显示相比屏幕发生变化的矩形区域;
步骤S
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1