[发明专利]基于OSG渲染3DTiles模型的跨层调度方法、系统及电子设备有效
| 申请号: | 202111445315.3 | 申请日: | 2021-11-30 |
| 公开(公告)号: | CN114168219B | 公开(公告)日: | 2022-11-29 |
| 发明(设计)人: | 赵彬锋;张帅 | 申请(专利权)人: | 埃洛克航空科技(北京)有限公司 |
| 主分类号: | G06F9/445 | 分类号: | G06F9/445;G06T15/00;G06T19/20 |
| 代理公司: | 北京知果之信知识产权代理有限公司 11541 | 代理人: | 高科 |
| 地址: | 北京市丰台区汽车博物馆*** | 国省代码: | 北京;11 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 基于 osg 渲染 dtiles 模型 调度 方法 系统 电子设备 | ||
本发明公开了一种基于OSG渲染3DTiles模型的跨层调度方法、系统及电子设备,其中方法包括:加载3DTiles模型数据;在OSG帧循环中,针对所述3DTiles模型数据中的每一帧,更新视口中的可加载模型渲染状态集;根据所述可加载模型渲染状态集中模型节点的类型设置渲染状态属性,并将设置渲染状态属性后的模型节点添加到渲染队列中。本发明在OSG加载3DTiles模型数据时,通过更新视口中的可加载模型渲染状态集以及设置渲染状态属性,实现了子节点和父节点的同时加载,提升了3DTiles模型数据在OSG中的加载渲染显示速度,使模型展示效果更加流畅,并解决了子节点模型和父节点模型数据同时加载时相互重叠影响的问题。
技术领域
本发明涉及OSG三维渲染领域,具体涉及一种基于OSG渲染3DTiles模型的跨层调度方法、系统及电子设备。
背景技术
传统OSG(OpenSceneGraph)三维渲染引擎中加载模型时,通过LOD(Levels ofDetail,多细节层次)方式实现分层加载,但会因网络速度或系统调度问题导致LOD节点数据加载慢,且在调度父节点和子节点渲染数据时,LOD父节点的替换是等待其所有子节点数据调度完成后才会一次性加载子节点,然后再替换父节点,导致调度渲染速度较慢。
并且,即便父节点和子节点同时加载,由于父节点和子节点所处LOD层级不同,所在LOD层级的三角格网面片不同、清晰度不同,导致存在父节点和子节点叠加显示问题,三维模型渲染显示效果不佳。
针对传统基于OSG三维引擎渲染调度中调度渲染速度较慢、父节点和子节点叠加显示的问题,目前尚未提出有效的解决方案。
发明内容
本发明的主要目的在于提供一种基于OSG渲染3DTiles模型的跨层调度方法及系统,以解决传统基于OSG三维引擎渲染调度中调度渲染速度较慢、父节点和子节点叠加显示的问题。
为了实现上述目的,本发明的第一方面提供了一种基于OSG渲染3DTiles模型的跨层调度方法,包括:
加载3DTiles模型数据;
在OSG帧循环中,针对所述3DTiles模型数据中的每一帧,更新视口中的可加载模型渲染状态集;
根据所述可加载模型渲染状态集中模型节点的类型设置渲染状态属性,并将设置渲染状态属性后的模型节点添加到渲染队列中。
可选地,所述加载3DTiles模型数据包括:
从预先设定的本地数据源或网络数据源中加载3DTiles模型数据。
可选地,所述在OSG帧循环中,针对所述3DTiles模型数据中的每一帧,更新视口中的可加载模型渲染状态集,包括:
将OSG中针对所述3DTiles模型数据中的每一帧对应一个渲染状态集;
在OSG帧循环中,每一帧更新当前视口中对应的一个所述渲染状态集。
可选地,所述可加载模型渲染状态集中模型节点的类型包括父节点和子节点;
所述根据所述可加载模型渲染状态集中模型节点的类型设置渲染状态属性,包括:
针对类型为父节点的模型节点,拷贝父节点渲染状态;
在所述拷贝父节点渲染状态之后,针对类型为子节点的模型节点,更新子节点渲染状态;
在所述更新子节点渲染状态之后,针对类型为父节点的模型节点,更新父节点渲染状态。
进一步地,所述拷贝父节点渲染状态包括:
清空上一帧中所述父节点的渲染状态设置;
拷贝父节点并设置渲染状态属性;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于埃洛克航空科技(北京)有限公司,未经埃洛克航空科技(北京)有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202111445315.3/2.html,转载请声明来源钻瓜专利网。





