一种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
300、根据所述矩形区域设置视口的偏移大小,重新计算投影矩阵,对所述矩形区域进行绘制,并将绘制结果生成对应的更新纹理;
步骤S400、将所述更新纹理与源纹理混合,绘制到所述视口,并更新显示所述屏幕显示,以完成3D应用的显示刷新。
[0023]下面结合具体的实施例对上述步骤进行详细的描述。
[0024]所述3D应用是基于OpenGL ES的应用,一般都是整个屏幕在不停的刷新。OpenGL(全写Open Graphics Library)是个定义了一个跨编程语言、跨平台的编程接口的规格,它用于三维图像(二维的亦可)。OpenGL是个专业的图形程序接口,是一个功能强大,调用方便的底层图形库。OpenGL绘图时,会分配前后两个缓冲区,以避免绘图过程中窗口出现的闪烁现象。前缓冲区用于屏幕刷新,后缓冲区用于绘图,当调用Swap Buffer (交换缓冲区)的时候,将前后缓冲区进行交换,即前缓冲区变成后缓冲区,后缓冲区变成前缓冲区。一般情况下,OpenGL会一直调用刷新接口,即每帧视口中内容全部刷新。这样不管视口内容是否变化,都要占用CPU和GPU (Graphic Processing Unit,图形处理器)的资源进行绘制,这样就导致嵌入式平台的功耗大大增加,机身发热。本发明提供的基于OpenGL ES的3D应用刷新方法,是一种局部刷新方法,也就是说那里有变化就刷新那里,OpenGL是3D空间坐标系的绘制API (Applicat1n Programming Interface,应用程序编程接口),绘制的物体是空间的,而不是屏幕的像素坐标。
[0025]首先对本发明的原理进行说明。请参阅图2,图2为本发明提供的3D应用的显示刷新方法的原理示意图。本发明提供的3D应用显示刷新方法,先保存图2a所示的源屏幕,也就是3D应用上一次显示的渲染结果。然后找出3D应用当前屏幕显示与上一次屏幕显示相比屏幕发生变化的矩形区域,具体如图2b的矩形框所示。最后,只对显示界面有所改动的矩形框进行3D绘制,并刷新,具体如图2c所示。也就是说,本发明不需要对整个屏幕的画面进行全绘制,只绘制需要刷新的局部区域,从而,提高了系统性能和用户交互的响应速度,较大程度的降低了 GPU的占用率,平衡CPU和GPU的负载,提高了嵌入式系统的有效使用率。
[0026]本发明提供的基于OpenGL ES的3D应用的显示刷新方法,首先将OpenGL ES对3D应用进行显示的上一次渲染结果保存,并根据所述上一次显示的渲染结果生成对应的源纹理。具体来说,就是先创建一与终端显示屏幕大小一样、用于保存所述终端显示屏幕显示3D应用的上一次渲染结果的ΡΒ0,然后保存3D应用进行显示的上一次渲染结果至所述ΡΒ0中,并将所述ΡΒ0保存的上一次渲染结果生成对应的源纹理。所述PBO (Pixel BufferObject) B卩为OpenGL像素缓冲区,也是用于GPU的扩展(ARB_vertex_buffer_object)。这里的缓存当然就是GPU的缓存。ΡΒ0与VB0扩展类似,只不过它存储的是像素数据而不是顶点数据。在实际应用时,ΡΒ0不仅保存上一次渲染的结果,还保存第一次初始化拷贝屏幕显示的内容。使用ΡΒ0的好处是快速的像素数据传递,它采用了一种叫DMA (Direct MemoryAccess)的技术,无需CPU介入。另一个PBO的优点是,这种DMA是异步的。用传统的方法从图像源(如图像文件或视频)载入图像数据到纹理对象的过程。像素数据首先存到系统内存中,接着使用glTeXImage2D将数据从系统内存拷贝到纹理对象,包含的两个子过程均需要有CPU执行。像素数据直接载入到ΡΒ0中,这个过程仍需要CPU来执行,但是从数据从ΡΒ0到纹理对象的过程则由GPU来执行DMA,而不需要CPU参与。而且opengl可安排异步DMA,不必马上进行像素数据的传递。
[0027]在步骤S200中,计算所述3D应用的当前屏幕显示与上一次屏幕显示相比屏幕发生变化的矩形区域。具体来说,将所述3D应用的当前屏幕显示与上一次屏幕显示进行对t匕,将3D应用显示的3D空间有变化的区域映射到屏幕的2D坐标;根据所述屏幕的2D坐标生成对应的矩形区域。本发明总,渲染物体采用父子节点层次化组织结构,由于逻辑控制导致的物体位置、大小、材质发生变化后,将重新计算映射到屏幕发生变化的矩形区域。在实际应用时,嵌入式设备上运行3D应用时,会接收用户的操作,譬如拖动操作等,所述3D应用也会自己播放动画等视频。根据3D应用的逻辑操作,计算屏幕上此次屏幕显示与上次屏幕显示相比屏幕发生变化的矩形区域,也就是上一帧屏幕显示的内容与下一帧屏幕显示的内容有变化的区域,取变化范围的矩形区域,并确定所述矩形区域的大小。由于OpenGL是3D空间坐标系的绘制API,绘制的物体是空间的,而不是屏幕的像素坐标,因此本发明需要将空间变化的区域映射到2D屏幕坐标,根据所述2D屏幕坐标形成对应的矩形区域。
[0028]在步骤S300中,根据所述矩形区域设置视口的偏移大小,重新计算投影矩阵,对所述矩形区域进行绘制,并将绘制结果生成对应的更新纹理。具体来说,所述步骤S300具体包括:S310、调整视口的偏移大小到所述矩形区域中;S320、确定视点的位置,采用近切面的偏移以及大小计算投影矩阵,根据投影矩阵确定投影的范围,透视除法后获取到规范化坐标[_1,1]之间;S330、将所述投影矩阵缩小至需要更新的矩形区域中,OpenGL绘制所述矩形区域对应的显示界面;S340、获取视口绘制的矩形区域对应的绘制结果,并生成对应的更新纹理。
[0029]请一并参阅图3和图4,图3和图4为在投影矩阵形成的视景体,分别为全景投影矩阵和局部投影矩阵。在实际应用时,调整视口的大小偏移到步骤S200计算的2D矩形区域中,然后对所述矩形区域进行对应的OpenGL绘制。在绘图前,先确定视点的位置,视点决定观测物体的大小,正反面,光影效果等。再根据所述矩形区域,可采用近切面的偏移以及大小计算投影矩阵。然后根据投影矩阵确定投影的范围,透视除法后获取到规范化坐标[_1,1]之间。根据动态投影矩阵原理,将所述投影矩阵缩小至需要更新的矩形区域中,OpenGL绘制所述矩形区域对应的显示界面,也就是3D绘制显示界面有变化的矩形区域。通过gl Read Pixels获取视口绘制的与下一帧所述矩形区域对应的新内容,并将其包装为一块更新纹理。
[0030]在步骤S400中,将所述更新纹理与源纹理混合,绘制到所述视口,并更新显示所述屏幕显示,以完成3D应用的显示刷新。具体来说,先将所述更新纹理与源纹理混合,并绘制到所述视口 ;在上一次屏幕显示的基础上更新显示所述屏幕显示,以完成3D应用的显示刷新,并将刷新后的当前屏幕显示结果发送至ΡΒ0保存。也就是说,根据上一帧和下一帧的屏幕显示内容,只针对下一帧屏幕显示的3D界面有所改动的矩形区域进行刷新,从而提高了系统性能和用户交互的响应速度,较大程度的降低了 GPU的占用率,平衡CPU和GPU的负载,提高了嵌入式系统的有效使用率。
[0031]本发明提供的基于OpenGL ES的3D应用的显示刷新方法,通过动态投影矩阵的计算,确定了界面有所改动的区域局部刷新的窗口大小,再只针对修改的区域进行刷新,从而完成了 3D应用的刷新显示,提高了系统性能和用户交互的响应速度,较大程度的降低了GPU的占用率,平衡CPU和GPU的负载,提高了嵌入式系统的有效使用率,节约了嵌入式设备的电量。
[0032]基于上述的3D应用的显示刷新方法,本发明还提供了一种3D应用的显示刷新方法,如图5所示,包括:
源纹理生成模块10,用于保存3D应用进行显示的上一次渲染结果,并根据所述上一次渲染结果生成对应的源纹理;具体如步骤S100所述;
矩形区域计算模块20,用于计算所述3D应用的当前屏幕显示与上一次屏幕显示相比屏幕发生变化的矩形区域;具体如步骤S200所述;
更新纹理生成模块30,用于根据所述矩形区域设置视口的偏移大小,重新计算投影矩阵,对所述矩形区域进行绘制,并将绘制结果生成对应的更新纹理;具体如步骤S300所述;纹理混合显示模块40,用于将所述更新纹理与源纹理混合,绘制到所述视口,并更新显示所述屏幕显示,以完成3D应用的显示刷新;具体如步骤S4
00所述。
[0033]进一步地,所述源纹理生成模块10包括:
ΡΒ0创建单元,用于创建一与终端显示屏幕大小一样、用于保存所述终端显示屏幕显示3D应用的上一次渲染结果的ΡΒ0 ;
源纹理生成单元,用于保存3D应用进行显示的上一次渲染结果至所述ΡΒ0中,并将所述ΡΒ0保存的上一次渲染结果生成对应的源纹理。
[0034]进一步地,所述矩形区域计算模块20包括:
映射单元,用于将所述3D应用的当前屏幕显示与上一次屏幕显示进行对比,将3D应用显示的3D空间有变化的区域映射到屏幕的2D坐标;
矩形区域生成单元,用于根据所述屏幕的2D坐标生成对应的矩形区域。
[0035]进一步地,所述更新纹理生成模块30包括:
视口偏移单元,用于调整视口的偏移大小到所述矩形区域中;
投影矩阵计算单元,用于确定视点的位置,采用近切面的偏移以及大小计算投影矩阵,根据投影矩阵确定投影的范围,透视除法后获取到规范化坐标[-1,1]之间;
矩形区域绘制单元,用于将所述投影矩阵缩小至需要更新的矩形区域中,OpenGL绘制所述矩形区域对应的显示界面;
更新纹理生成单元,用于获取视口绘制的矩形区域对应的绘制结果,并生成对应的更新纹理。
[0036]进一步地,所述纹理混合显示模块40包括:
纹理混合单元,用于将所述更新纹理与源纹理混合,并绘制到所述视口 ;
屏幕显示更新单元,用于在上一次屏幕显示的基础上更新显示所述屏幕显示,以完成3D应用的显示刷新,并将刷新后的当前屏幕显示结果发送至ΡΒ0保存。
[0037]本发明所述的嵌入式设备包括移动终端、PDA和游戏主机等嵌入式设备。所述移动终端包括手机、平板电脑等。
[0038]综上所述,本发明提供的一种基于OpenGL ES的3D应用刷新方法及系统,通过保存3D应用进行显示的上一次渲染结果,并根据所述上一次渲染结果生成对应的源纹理;计算所述3D应用的当前屏幕显示与上一次屏幕显示相比屏幕发生变化的矩形区域;根据所述矩形区域设置视口的偏移大小,重新计算投影矩阵,对所述矩形区域进行绘制,并将绘制结果生成对应的更新纹理;将所述更新纹理与源纹理混合,绘制到所述视口,并更新显示所述屏幕显示,以完成3D应用的显示刷新;通过动态投影矩阵的计算,确定局部刷新的窗口大小,只针对屏幕显示界面有所改动的区域进行刷新,提高了系统性能和用户交互的响应速度,较大程度的降低了 GPU的占用率,平衡CPU和GPU的负载,提高了嵌入式系统的有效使用率,大大提高了帧率,提高了动画的流畅度,显著提高3D场景的渲染效率,在嵌入式平台效果更加显著,带来了大大的方便。
[0039]应当理解的是,本发明的应用不限于上述的举例,对本领域普通技术人员来说,可以根据上述说明加以改进或变换,所有这些改进和变换都应属于本发明所附权利要求的保护范围。
【主权项】
1.一种3D应用的显示刷新方法,其特征在于,包括以下步骤: A、保存3D应用进行显示的上一次渲染结果,并根据所述上一次渲染结果生成对应的源纹理; B、计算所述3D应用的当前屏幕显示与上一次屏幕显示相比屏幕发生变化的矩形区域; C、根据所述矩形区域设置视口的偏移大小,重新计算投影矩阵,对所述矩形区域进行绘制,并将绘制结果生成对应的更新纹理; D、将所述更新纹理与源纹理混合,绘制到所述视口,并更新显示所述屏幕显示,以完成3D应用的显示刷新。2.根据权利要求1所述的3D应用的显示刷新方法,其特征在于,所述步骤A具体包括: A1、创建一与终端显示屏幕大小一样、用于保存所述终端显示屏幕显示3D应用的上一次渲染结果的PBO ; A2、保存3D应用进行显示的上一次渲染结果至所述PBO中,并将所述PBO保存的上一次渲染结果生成对应的源纹理。3.根据权利要求1所述的3D应用的显示刷新方法,其特征在于,所述步骤B具体包括: B1、将所述3D应用的当前屏幕显示与上一次屏幕显示进行对比,将3D应用显示的3D空间有变化的区域映射到屏幕的2D坐标; B2、根据所述屏幕的2D坐标生成对应的矩形区域。4.根据权利要求1所述的3D应用的显示刷新方法,其特征在于,所述步骤C具体包括: C1、调整视口的偏移大小到所述矩形区域中; C2、确定视点的位置,采用近切面的偏移以及大小计算投影矩阵,根据投影矩阵确定投影的范围,透视除法后获取到规范化坐标[_1,1]之间; C3、将所述投影矩阵缩小至需要更新的矩形区域中,绘制所述矩形区域对应的显示界面; C4、获取视口绘制的矩形区域对应的绘制结果,并生成对应的更新纹理。5.根据权利要求1所述的3D应用的显示刷新方法,其特征在于,所述步骤D具体包括: D1、将所述更新纹理与源纹理混合,并绘制到所述视口 ; D2、在上一次屏幕显示的基础上更新显示所述屏幕显示,以完成3D应用的显示刷新,并将刷新后的当前屏幕显示结果发送至PBO保存。6.一种3D应用的显示刷新系统,其特征在于,包括: 源纹理生成模块,用于保存3D应用进行显示的上一次渲染结果,并根据所述上一次渲染结果生成对应的源纹理; 矩形区域计算模块,用于计算所述3D应用的当前屏幕显示与上一次屏幕显示相比屏幕发生变化的矩形区域; 更新纹理生成模块,用于根据所述矩形区域设置视口的偏移大小,重新计算投影矩阵,对所述矩形区域进行绘制,并将绘制结果生成对应的更新纹理; 纹理混合显示模块,用于将所述更新纹理与源纹理混合,绘制到所述视口,并更新显示所述屏幕显示,以完成3D应用的显示刷新。7.根据权利要求6所述的3D应用的显示刷新系统,其特征在于,所述源纹理生成模块包括: PBO创建单元,用于创建一与终端显示屏幕大小一样、用于保存所述终端显示屏幕显示3D应用的上一次渲染结果的PB0 ; 源纹理生成单元,用于保存3D应用进行显示的上一次渲染结果至所述PB0中,并将所述PB0保存的上一次渲染结果生成对应的源纹理。8.根据权利要求6所述的3D应用的显示刷新系统,其特征在于,所述矩形区域计算模块包括: 映射单元,用于将所述3D应用的当前屏幕显示与上一次屏幕显示进行对比,将3D应用显示的3D空间有变化的区域映射到屏幕的2D坐标; 矩形区域生成单元,用于根据所述屏幕的2D坐标生成对应的矩形区域。9.根据权利要求6所述的3D应用的显示刷新系统,其特征在于,所述更新纹理生成模块包括: 视口偏移单元,用于调整视口的偏移大小到所述矩形区域中; 投影矩阵计算单元,用于确定视点的位置,采用近切面的偏移以及大小计算投影矩阵,根据投影矩阵确定投影的范围,透视除法后获取到规范化坐标[_1,1]之间; 矩形区域绘制单元,用于将所述投影矩阵缩小至需要更新的矩形区域中,绘制所述矩形区域对应的显示界面; 更新纹理生成单元,用于获取视口绘制的矩形区域对应的绘制结果,并生成对应的更新纹理。10.根据权利要求6所述的3D应用的显示刷新系统,其特征在于,所述纹理混合显示模块包括: 纹理混合单元,用于将所述更新纹理与源纹理混合,并绘制到所述视口 ; 屏幕显示更新单元,用于在上一次屏幕显示的基础上更新显示所述屏幕显示,以完成3D应用的显示刷新,并将刷新后的当前屏幕显示结果发送至PB0保存。
【专利摘要】本发明公开了一种3D应用的显示刷新方法及系统,通过保存3D应用进行显示的上一次渲染结果,并根据所述上一次渲染结果生成对应的源纹理;计算所述3D应用的当前屏幕显示与上一次屏幕显示相比屏幕发生变化的矩形区域;根据所述矩形区域设置视口的偏移大小,重新计算投影矩阵,对所述矩形区域进行绘制,并将绘制结果生成对应的更新纹理;将所述更新纹理与源纹理混合,绘制到所述视口,并更新显示所述屏幕显示,以完成3D应用的显示刷新;通过只针对屏幕显示界面有所改动的区域进行刷新,大程度降低了GPU的占用率,显著提高了3D场景的渲染效率。
【IPC分类】G06F9/44, G06T15/00
【公开号】CN105487848
【申请号】CN201410523532
【发明人】赵智宝, 卢伟超
【申请人】Tcl集团股份有限公司
【公开日】2016年4月13日
【申请日】2014年10月8日