[发明专利]一种高效组织和切换OpenGL渲染状态的方法有效
申请号: | 201710600299.8 | 申请日: | 2017-07-21 |
公开(公告)号: | CN107845144B | 公开(公告)日: | 2021-04-02 |
发明(设计)人: | 王茂松;俞蔚 | 申请(专利权)人: | 浙江科澜信息技术有限公司 |
主分类号: | G06T19/20 | 分类号: | G06T19/20 |
代理公司: | 浙江杭知桥律师事务所 33256 | 代理人: | 王梨华;陈丽霞 |
地址: | 310051 浙江省杭州*** | 国省代码: | 浙江;33 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 高效 组织 切换 opengl 渲染 状态 方法 | ||
本发明涉及计算机技术领域,公开了一种高效组织和切换OpenGL渲染状态的方法,包括以下步骤:步骤(1)对场景图中的存在渲染顺序值的场景节点和渲染状态属性集的场景节点进行渲染顺序树和渲染状态树形结构的建立;步骤(2)两个树形结构建立完毕以后,对渲染叶子节点进行必要的排序工作,由渲染顺序树根节点开始遍历,渲染实体节点;步骤(3)依据渲染状态树的树形结构,切换并应用该渲染叶子节点对应的OpenGL状态属性,达到某种OpenGL状态之后,进行渲染叶子节点网格数据的提交渲染。本发明通过对渲染场景节点有效的组织,建立合理可靠的树形结构,使三维渲染引擎各线程之间的压力均衡,并减少了状态属性管理的开销,渲染帧率更高,场景漫游更流畅。
技术领域
本发明涉及三维渲染技术领域,特别是涉及渲染引擎中高效组织和切换OpenGL(Open Graphics Library,开放图形库)渲染状态的方法。
背景技术
通过用户给出的三维场景图形结构,在渲染的过程中,实体节点绘制之前,要进行该节点的正确渲染状态的切换,如果不进行渲染状态的管理,并没有对拥有同一状态属性集的节点进行合并,每个实体节点渲染时面临着巨大的状态搜集、切换和还原开销;如果对场景实体节点根据渲染状态属性进行过当的组织管理,那根据状态属性组织管理节点带来的开销亦严重影响了渲染引擎的效率;上述两种情况都会造成渲染引擎所渲染的场景出现卡顿甚至明显的跳帧行为,极大的影响了用户的视觉体验。
发明内容
本发明针对现有技术中渲染引擎在渲染较大场景时出现的渲染效率低下、卡顿甚至跳帧现象,提供一种高效组织和切换OpenGL渲染状态的方法。
为解决上述技术问题,本发明提出了一种高效组织和切换OpenGL渲染状态的方法,其特征在于,包括如下步骤:
步骤(1)、将场景图形结构裁剪为包含渲染顺序数值的场景节点和渲染状态属性集的场景节点,并得到渲染叶子节点,其中,基于所述渲染顺序数值建立第一渲染顺序树,基于所述渲染状态属性集建立第一渲染状态树;
步骤(2)、对于所述第一渲染顺序树进行透明渲染处理;将需要排序的所述渲染叶子节点从第一渲染状态树转移到第一渲染顺序树中,然后根据所述渲染叶子节点的距离值进行排序操作,形成第二渲染顺序树;摘除渲染叶子节点的渲染状态树形成第二渲染状态树。
步骤(3)、对于步骤(2)中建立的所述第二渲染顺序树和第二渲染状态树进行依次遍历,遍历过程中搜集到的状态属性,即为渲染当前渲染叶子节点所必要的状态属性,将这些渲染状态存放在栈结构,渲染引擎依据栈结构切换必要的渲染状态后,进行实体节点中网格数据的提交和绘制,实现场景节点的渲染状态和网格数据的绘制。
其中,所述步骤(1)包括将所述第一渲染顺序树与所述第一渲染状态树进行关联。
其中,所述步骤(2)根据所述渲染叶子节点的距离值进行排序操作具体包括按渲染叶子节点离相机的距离值进行由远到近排序。
其中,所述步骤(3)包括通过回溯查找算法,搜集并切换该路由上的OpenGL状态属性,完成当前渲染叶子节点所需的状态属性的切换。
其中,所述关联包括:
步骤(11)、所述第一渲染顺序树和第一渲染状态树均具有根节点和当前节点,当前节点的起始指向为根节点;
步骤(12)、对所述场景图形结构进行裁剪遍历,依据从场景节点中提取的渲染顺序值,新建渲染顺序节点,并将该渲染顺序节点作为当前渲染顺序节点的子节点,插入到当前渲染顺序节点的子节点链表中;然后将新建节点作为渲染顺序树的当前渲染顺序节点;
步骤(13)、同时从所述场景节点中提取渲染状态属性集,如果存在状态属性集,新建渲染状态节点,并将该节点作为当前渲染状态节点的子节点,插入到当前渲染状态节点的子节点链表中;然后将新建节点作为渲染状态树的当前渲染状态节点;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于浙江科澜信息技术有限公司,未经浙江科澜信息技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201710600299.8/2.html,转载请声明来源钻瓜专利网。