[发明专利]一种基于WebGL的GPU加速海量目标高效渲染方法有效
申请号: | 201911388971.7 | 申请日: | 2019-12-30 |
公开(公告)号: | CN111080766B | 公开(公告)日: | 2023-09-01 |
发明(设计)人: | 朱王璋;曾飞传;王焰辉 | 申请(专利权)人: | 中科星图股份有限公司 |
主分类号: | G06T15/20 | 分类号: | G06T15/20;G06T1/20;G06F9/48 |
代理公司: | 北京科迪生专利代理有限责任公司 11251 | 代理人: | 邓治平 |
地址: | 101399 北京市顺义区临空经济核心*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 webgl gpu 加速 海量 目标 高效 渲染 方法 | ||
1.一种基于WebGL的GPU加速海量目标高效渲染方法,其特征在于,包括如下步骤:
步骤1、在主线程中,每隔一段时间将当前三维场景的范围通过PostMessage方法发送到WebWorker进程中;
步骤2、WebWorker进程通过OnMessage方法获取到视图范围后发送数据请求到动标数据服务器,动标数据服务器根据查询结果返回当前批次的数据;
步骤3、WebWorker进程在获取到数据后需要对数据进行比对分类处理,所述的分类处理将当前批次的数据和上一批次的数据进行比对,将比对结果分类为三种状态,即添加的数据、修改的数据、删除的数据;通过比对后,在每个目标数据的属性中添加一个状态属性Status;
步骤4、数据分类处理完成后,WebWorker进程将本批次数据返回给主进程进行渲染,同时将上一批次的数据修改为当前请求返回的数据,WebWorker进程返回数据后,在主线程中通过OnMessage获取数据,根据目标数据的状态属性Status调用目标类对象的方法进行更新。
2.根据权利要求1所述的一种基于WebGL的GPU加速海量目标高效渲染方法,其特征在于:所述步骤4中;
WebWorker进程返回数据后,在主线程中通过OnMessage获取数据,根据目标数据的状态属性Status调用目标类对象的方法进行更新,具体流程如下:
步骤1、Render函数为Camera对象的帧回调函数,在三维场景渲染的时候每一帧都会调用该方法,在目标类中,该Render函数为渲染的入口函数;
步骤2、当三维场景的范围大于阈值时,将目标对象进行分批次渲染;根据用户设置的渲染目标数量阈值,从渲染对象列表中筛选出当前帧绘制的目标对象;
步骤3、高度剔除;获取镜头高度,将当前渲染对象中不符合高度条件的对象从列表中剔除;
步骤4、范围剔除;根据当前视图范围,将视图范围外的目标对象删除;
步骤5、渲染目标,从符合条件的目标对象中根据状态属性Status值,获取需要增加的目标对象,初始化目标对象;
步骤6、更新目标;修改目标位置,更新目标的属性、样式信息;
步骤7、删除目标;从渲染队列中移除对象,释放资源。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中科星图股份有限公司,未经中科星图股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201911388971.7/1.html,转载请声明来源钻瓜专利网。