[发明专利]一种基于OpenGL指令的渲染运行方法及系统有效
申请号: | 202110755492.5 | 申请日: | 2021-07-05 |
公开(公告)号: | CN113256779B | 公开(公告)日: | 2021-11-19 |
发明(设计)人: | 毛献勇;刘玉峰;李会江;冯征文;王志非;甘文峰 | 申请(专利权)人: | 广州中望龙腾软件股份有限公司 |
主分类号: | G06T15/00 | 分类号: | G06T15/00;G06T1/20 |
代理公司: | 广州市越秀区哲力专利商标事务所(普通合伙) 44288 | 代理人: | 曾令军 |
地址: | 510623 广东省广州市天*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 opengl 指令 渲染 运行 方法 系统 | ||
本发明公开了一种基于OpenGL指令的渲染运行方法及系统,其中渲染运行方法包括根据显示数据依次向绘制处理单元发送用于绘制渲染图像的绘制命令;依次拦截并收集所有向绘制处理单元发送的绘制命令以进行条件判断,若当前帧所对应的绘制命令列表满足预设条件时,将当前帧所对应的绘制命令列表存储至数据容器中;遍历所述数据容器中所有绘制命令,依次从所述数据容器中取出绘制命令发送至所述绘制处理单元以完成渲染图像的绘制操作。本发明可在渲染的过程中大量减少CPU端的运行时间,提高整个渲染的效率。
技术领域
本发明涉及渲染优化处理领域,尤其涉及一种基于OpenGL指令的渲染运行方法及系统。
背景技术
目前,渲染引擎在渲染的过程本质上可以认为是CPU发送一系列的OpenGL相关的命令和命令相关的参数给GPU, GPU根据这些命令和参数绘制出相关的图像,而CPU在发送这些OpenGL相关命令和参数过程中不可避免的要执行很多的分支结构,函数跳转以及各种的CPU端的代码,使得渲染过程需要执行较大的代码量,导致渲染过程存在时间较长,效率较低等问题。
为了优化显示引擎的渲染效率,目前提出了各种优化方案,例如创建各种VBO(顶点缓冲区对像)、VAO(顶点数组对像)、EBO(顶点索引对像)、UBO(uniform 缓冲区对像)等缓存,通过这些预先在GPU创建的缓存,在绘制时即可以减少CPU和GPU之间的数据交互,提高显示的效率;又或者对相同显示属性的对像进行分类,每一类对像放在一起绘制,通过一些相同显示属性的分类,可以减少调用OpenGL的指令数量,也可以提高显示的效率。
但是无论是哪种渲染方式,其渲染过程中为了获取一帧所有的绘制命并发送给GPU,需要执行一遍完整的显示流程,这个过程在CPU端需要消耗大量的时间,使其CPU端的运行时间无法减少,导致更新过程中渲染效率依然无法进一步提高。
发明内容
为了克服现有技术的不足,本发明的目的之一在于提供一种基于OpenGL指令的渲染运行方法,在渲染的过程中大量减少CPU端的运行时间,提高整个渲染的效率。
本发明的目的之二在于提供一种基于OpenGL指令的渲染运行系统。
本发明的目的之三在于提供一种电子设备,执行上述渲染运行方法。
本发明的目的之四在于提供一种存储介质,执行上述渲染运行方法。
本发明的目的之一采用如下技术方案实现:
一种基于OpenGL指令的渲染运行方法,包括:
根据显示数据依次向绘制处理单元发送用于绘制渲染图像的绘制命令;
依次拦截并收集所有向绘制处理单元发送的绘制命令以进行条件判断,若当前帧所对应的绘制命令列表满足预设条件时,将当前帧所对应的绘制命令列表存储至数据容器中;
遍历所述数据容器中所有绘制命令,依次从所述数据容器中取出绘制命令发送至所述绘制处理单元以完成渲染图像的绘制操作。
进一步地,所述绘制处理单元根据绘制命令完成绘制操作的方法为:
预先对每个绘制命令的OpenGL函数创建对应的包裹函数;
向所述绘制处理单元发送绘制命令时所述绘制处理单元直接调用绘制命令对应的包裹函数,并在执行包裹函数的过程中调用OpenGL函数以进行渲染图像的绘制操作。
进一步地,主动拦截并收集所有向绘制处理单元发送的绘制命令的方法为:
在执行包裹函数并调用包裹函数对应的OpenGL函数时将OpenGL函数拦截下来,记录OpenGL函数名及其参数内容。
进一步地,判断当前帧的绘制命令列表是否满足预设条件的方法为:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于广州中望龙腾软件股份有限公司,未经广州中望龙腾软件股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202110755492.5/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种基于物联网控制的灌溉河道闸门
- 下一篇:一种用于处理淀粉废水的微生物菌剂