[发明专利]基于ThreeJS的图形分层显示方法、装置和存储介质有效
申请号: | 201911064589.0 | 申请日: | 2019-11-04 |
公开(公告)号: | CN110827381B | 公开(公告)日: | 2023-06-16 |
发明(设计)人: | 王琛;刘帅;吕越 | 申请(专利权)人: | 广联达科技股份有限公司 |
主分类号: | G06T15/00 | 分类号: | G06T15/00;G06T1/20 |
代理公司: | 北京英特普罗知识产权代理有限公司 11015 | 代理人: | 程超 |
地址: | 100193 北京市海淀区西*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 threejs 图形 分层 显示 方法 装置 存储 介质 | ||
本发明属于三维显示领域,具体涉及一种基于ThreeJS的图形分层显示方法、装置和存储介质。ThreeJS引擎中可以主动设置网格对象的渲染顺序和当前程序的渲染方式,但是使用起来较为低效、繁琐,在复杂情况下可行性不高,其内嵌的渲染排序算法在透明和非透明物体的排序和遮挡问题上存在矛盾。本发明根据场景业务要求对场景中的各网格对象按类型进行层级划分,并根据层级关系的不同,规定每层的渲染顺序以及各层内网格对象的渲染方式。思路简单,代码更加容易维护;在复杂场景下,便捷性更加明显;能够以层级为单位进行错误定位,调试更加快捷;避免不必要的状态切换,减小性能开销的同时实现高效。
技术领域
本发明属于三维显示领域,具体涉及一种基于ThreeJS的图形分层显示方法、装置和存储介质,在大多数需要绘制和管理多种三维物体的场景中都可以应用,降低绘制过程中对渲染顺序和多种渲染方式的控制难度。
背景技术
随着技术的进步和硬件设备性能的不断提升,三维显示的渲染效率也与日俱增。与此同时,也不断增加了新的渲染需求,导致在三维显示时往往需要同时绘制具有遮挡关系及渲染顺序等绘制特征的物体,因此如何对其进行管理就十分重要。
在三维显示时可能有很多的渲染需要。比如有很多种类的网格对象,其中包括三维的模型网格对象、选中模型而产生的高亮网格对象、二维下的约束符号、文字、尺寸标注等,并且每一类网格对象与其他类的遮挡关系都是提前规定好的。而ThreeJS引擎仅提供了对网格对象的基本渲染方法,无法满足实际应用的需要。
在多数场景下,开发人员要对所有需要渲染的物体进行主动排序,保证每一类物体的渲染顺序是正确的。而且渲染不同类的物体(比如二维物体和三维物体),需要开启不同的渲染方式,所以主动排序并控制渲染方式存在如下几个问题:
1)代码可读性和可维护性差;
2)对于复杂场景,实现可行性很差;
3)难以进行错误定位;
4)渲染方式有可能进行多次不必要的切换,增加性能开销。
针对分层绘制,ThreeJS引擎中可以主动设置网格对象的渲染顺序和当前程序的渲染方式。但是使用起来较为低效、繁琐,需要程序开发人员考虑的情况较多,在复杂情况下可行性不高。另外,其内嵌的渲染排序算法在透明和非透明物体的排序和遮挡问题上存在矛盾,有时并不适合开发人员的项目需要。
发明内容
本发明提出了一种基于ThreeJS的图形分层显示方法、系统、装置和存储介质,目的在于为了满足复杂业务场景的渲染需要,解决复杂场景下多种网格对象的分层渲染问题。
本发明基于ThreeJS引擎,对所有需要绘制的网格对象进行分类,并按照层级特点的不同设置渲染的优先级并完成渲染方式的切换。
需要说明的是:在渲染结果中,很多情况下业务场景中会要求某一类网格对象优先显示于另一类网格对象显示,比如场景规定在同时渲染二维对象和三维对象时,二维对象永远不会被三维对象遮挡,为了表述方便,可以引入“显示优先级”的概念,上面的情况可以表述为二维对象的显示优先级高于三维对象。可以说,显示优先级是对显示结果要求的一种表述,表明渲染结果中,各类网格对象遮挡关系的一种排序。同时还要区别于“渲染优先级”,渲染优先级指的是各类对象在渲染过程中的先后顺序。
本发明提供一种基于ThreeJS的图形分层显示方法,该方法包括以下步骤:
S1、规定场景业务要求;
S2、根据场景业务要求对场景中的各网格对象按类型进行层级划分,并将层级作为属性与各类型的网格对象进行绑定;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于广联达科技股份有限公司,未经广联达科技股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201911064589.0/2.html,转载请声明来源钻瓜专利网。