CN114119825A - 多引擎场景可视化面效果偏移抖动的解决方法及相关设备 - Google Patents
多引擎场景可视化面效果偏移抖动的解决方法及相关设备 Download PDFInfo
- Publication number
- CN114119825A CN114119825A CN202111306787.0A CN202111306787A CN114119825A CN 114119825 A CN114119825 A CN 114119825A CN 202111306787 A CN202111306787 A CN 202111306787A CN 114119825 A CN114119825 A CN 114119825A
- Authority
- CN
- China
- Prior art keywords
- data
- rendering
- grid
- scene
- geometric body
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/005—General purpose rendering architectures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T11/00—2D [Two Dimensional] image generation
- G06T11/20—Drawing from basic elements, e.g. lines or circles
- G06T11/206—Drawing of charts or graphs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T17/00—Three dimensional [3D] modelling, e.g. data description of 3D objects
- G06T17/05—Geographic models
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T17/00—Three dimensional [3D] modelling, e.g. data description of 3D objects
- G06T17/10—Constructive solid geometry [CSG] using solid primitives, e.g. cylinders, cubes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T17/00—Three dimensional [3D] modelling, e.g. data description of 3D objects
- G06T17/20—Finite element generation, e.g. wire-frame surface description, tesselation
Landscapes
- Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Geometry (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computer Graphics (AREA)
- Software Systems (AREA)
- Remote Sensing (AREA)
- Image Generation (AREA)
Abstract
本发明公开了一种多引擎场景可视化面效果偏移抖动的解决方法,该方法包括根据传入数据的不同属性重组数据;根据重组后的数据构建网格;将不同属性数据生成的网格加入场景,得到贴合平面和球面的完整场景;其中,将重组后的数据中所有地理坐标转换为笛卡尔坐标;将笛卡尔坐标数据中第一个坐标点作为标准点,计算其他每一个点与标准点的相对距离作为新的面坐标集合并生成面状几何体,新建一个空几何体,将生成的每个面状几何体的顶点数据、面数据、法线数据相互叠加,整合到空几何体中生成网格;根据数据的属性获取着色器,作用于网格得到完整网格。本发明解决了多引擎场景可视化面效果偏移抖动的问题。
Description
技术领域
本申请涉及可视化技术领域,特别是涉及一种多引擎场景可视化面效果偏移抖动的解决方法及相关设备。
背景技术
在目前常见的可视化编辑器中使用三维可视化效果的可以大致分为两种,一种是运用于搭建的小场景中,另一种是运用于与地理引擎结合的场景。而目前部分与地理引擎结合的面绘制功能都会存在拉动视角抖动的问题。在小场景中实现面效果较为简单,在正常的使用场景中不会出现偏移和抖动问题,但当这个场景足够大时这些问题就出现了,在地图场景中这些问题尤为明显。平面地图可以看做为小场景的一个极限情况,当需要在平面地图中根据经纬度坐标绘制面时,此时接受到的经纬度的坐标数值是比较大的,若是墨卡托坐标则更大,使用以往的绘制面的方法,会导致其浮点数的数值错误,在拉动相机更新渲染的时候顶点会有抖动的现象。而在球面地图中,除了会有在平面出现的抖动的情况,还会出现位置偏移的问题,这个问题主要是因为在地理引擎与WebGL进行融合时是对相机以及渲染器进行同步,并不会对其中的效果物体本身进行改变。地图变为球面,但面效果是不会跟随之变为曲面的,于是就会出现顶点位置偏移的问题。综上所述,现有技术的缺点是:
(1)效果抖动,当将效果放大到一定程度的时候,效果又有抖动的情况。会影响到用户的使用体验;
(2)位置偏移,在三维地图可视化中,位置的准确性是其中一个非常重要的指标,一方面会误导用户,另一方面也失去了其数据可视化的作用;
(3)通用性弱,目前大多数这类的面类效果只能够在平面场景中正常使用,在使用程度同样很高的球面场景中无法使用。
发明内容
本发明针对上述问题,提供了一种多引擎场景可视化面效果偏移抖动的解决方法及相关设备,不仅是在ArcGIS的三维球面和平面进行准确渲染,而是通用于目前绝大部分常用地理引擎。
本发明的第一方面,提供了一种多引擎场景可视化面效果偏移抖动的解决方法,包括:
根据传入数据的不同属性重组数据;
根据重组后的数据构建网格;
将不同属性数据生成的网格加入场景,得到贴合平面和球面的完整场景;
其中,根据重组后的数据构建网格具体实施步骤为:
将重组后的数据中所有地理坐标转换为笛卡尔坐标,得到笛卡尔坐标数据;
将笛卡尔坐标数据中第一个坐标点作为标准点,计算其他每一个点与标准点的相对距离,将其他每一个点与标准点的相对距离作为新的面坐标集合;
根据新的面坐标集合生成面状几何体,新建一个空几何体,将生成的每个面状几何体的顶点数据、面数据、法线数据相互叠加,整合到空几何体中生成网格;
根据数据的属性获取着色器,作用于网格得到完整网格;
将完整网格移动到标准点位置。
本发明的进一步技术方案是:方法还包括搭建一个支持多种数据类型和数据属性的渲染引擎,通过将分类渲染和分值渲染进行一个模拟封装,对传入的数据选择不同的渲染方式。
本发明的进一步技术方案是:对传入的数据选择不同的渲染方式具体包括:每个数据都带有特定的描述字段,根据每个描述字段的不同进行分类,分类针对单个数据或针对一类数据,分类渲染规定多个区间使用不同的渲染参数,通过判断数据中特定的描述字段所处在的区间,给每个数据赋予对应的渲染方式;分值渲染指定唯一值渲染,只有当数据中的描述字段和规定值相同才会使用规定值对应的渲染方式。
本发明的进一步技术方案是:方法支持的数据属性包括simple、class-breaks和unique-value。
本发明的第二方面,提供了一种云服务器,包括:处理器;以及存储器,其中,所述存储器中存储有计算机可执行程序,当由所述处理器执行所述计算机可执行程序时,执行上述多引擎场景可视化面效果偏移抖动的解决方法。
本发明的第三方面,提供了一种计算机可读存储介质,其上存储有指令,所述指令在被处理器执行时,使得所述处理器执行上述多引擎场景可视化面效果偏移抖动的解决方法。
本发明提供的一种多引擎场景可视化面效果偏移抖动的解决方法及相关设备,开发的面类可视化效果组件后续支持的编辑器和地理引擎较为全面,不止包括ArcGis平面地图、Mapbox地图,高德、百度等平面地图,还支持ArcGis球面以及Cesium球面地图。开发面类效果采用的WebGL技术,对比于传统的Web3D技术,例如VRML,X3D等,WebGL在绝大多数浏览器中不需要安装插件就可以实现三维图形加速,并得到一个较好的渲染效果。另外利用着色器编程也能够开发出更加丰富的面类效果。面类效果主要作为对一个范围进行强调注释,其中比较重点的一个类型就是围栏类效果,针对这个效果需要将根据多个顶点数据的绘制而成的多边形面进行拉高并去除上下底面,对于这个呈现方式一般采用的都是运用Three.JS中的二维图形进行多边形的绘制,然后再利用拉伸几何体生成一个多棱柱几何体,再加上定制的着色器实现丰富多样的围栏类效果。针对上面是比较常用的生成多棱柱的方式,这种方式做出来的围栏效果在平面地图比较合适,但在球面上就会出现位置偏移的问题。本发明中也采取了合适的方法来生成多棱柱以解决这个问题。最终达到的有益效果:效果稳定,无论如何移动相机视角,效果都不会出现抖动。极大程度的保障了用户的使用体验;位置准确,无论是在平面场景中还是球面地图中,效果的每个位置保证是与用户传入的位置是一致的;通用性强,利用本发明生成的面类效果可以在当前市面上大部分主流地理引擎上进行呈现。
附图说明
图1是本发明实施例中多引擎场景可视化面效果偏移抖动的解决方法流程图;
图2是本发明实施例中根据重组后的数据构建网格方法流程图;
图3是本发明实施例中围栏效果的实现流程图;
图4是本发明实施例中棱柱几何体的生成流程图;
图5是本发明实施例中的云服务器的架构。
具体实施方式
为进一步对本发明的技术方案作详细说明,本实施例在以本发明技术方案为前提下进行实施,给出了详细的实施方式和具体的步骤。
本发明提供的一种多引擎场景可视化面效果偏移抖动的解决方法具体流程如图1所示,具体为:
S1、根据传入数据的不同属性重组数据,在传入的数据以及属性进入效果类之后,内部首先会根据传入的属性进行数据分类,这样保证了使用相同属性的数据在后续生成几何体的步骤进行融合之后能够适用相同的材质,方法支持的数据属性包括simple、class-breaks和unique-value。
S2、根据重组后的数据构建网格;
S3、将不同属性数据生成的网格加入场景,得到贴合平面和球面的完整场景;
其中,S2中根据重组后的数据构建网格实施步骤如图2所示,具体为:
S21、将重组后的数据中所有地理坐标转换为笛卡尔坐标,得到笛卡尔坐标数据;
S22、将笛卡尔坐标数据中第一个坐标点作为标准点,计算其他每一个点与标准点的相对距离,将其他每一个点与标准点的相对距离作为新的面坐标集合,此相对位置法生成的面由于极大程度的减小了坐标数值过大,浮点数运算所产生的顶点数据误差,以避免抖动。
S23、根据新的面坐标集合生成面状几何体,新建一个空几何体,将生成相同属性的每个面状几何体的顶点数据、面数据、法线数据相互叠加,整合到空几何体中生成网格,通过采用几何体合并的方法大大减少了网格的整体数量,降低了加入到场景的时间。
S24、根据数据的属性获取着色器,作用于网格得到完整网格;
S25、将完整网格移动到标准点位置。
本发明方法还包括搭建一个支持多种数据类型和数据属性的渲染引擎,通过将分类渲染和分值渲染进行一个模拟封装,对传入的数据选择不同的渲染方式。该功能主要是对原本仅支持在ArcGis中的分类渲染和分值渲染进行一个模拟封装。在效果接收到的中每个数据都会带有其特定的描述字段,根据每个描述字段的不同可以将其进行分类。这个分类可以针对单个数据,也可以针对一类数据,这也就是分类和分值的本质。
本发明开发的面类效果通过同步各个引擎的相机和渲染器以达到支持对多种地理引擎的效果,在接入的数据和属性上也有很高的灵活性。接入的数据方面支持接入ArcGis服务,后端接口,GeoJson数据以及自定义数据;接入的属性方面引入了ArcGis的分类渲染和分值渲染,这样就只需要在每个数据的标识参数中加入指定的区分字符,就可以在一套配置中对众多不同的数据赋予不同的渲染属性。对传入的数据选择不同的渲染方式具体包括:每个数据都带有特定的描述字段,根据每个描述字段的不同进行分类,分类针对单个数据或针对一类数据,分类渲染规定多个区间使用不同的渲染参数,通过判断数据中特定的描述字段所处在的区间,给每个数据赋予对应的渲染方式;分值渲染指定唯一值渲染,只有当数据中的描述字段和规定值相同才会使用规定值对应的渲染方式。
下面给出一个具体示例,具体示例以比较重点的一个类型围栏效果为例,如图3所示,首先根据传入数据的不同属性重组数据,遍历相同属性的所有围栏数据,单独处理每一个围栏。确定数据中的底面数据和围栏的高层数据,并将原坐标和加上高层后的每一个坐标转换为笛卡尔坐标,这时就获取到一个无论平面还是球面场景都贴合地平面的数据,这样就保证了不会出现偏移的情况。
利用相对位置法选取数据中第一个转换好的笛卡尔坐标作为基准点与其他转换好的笛卡尔坐标进行计算得到新的面坐标集合,将新的面坐标集合根据上下底面顶点数据生成棱柱几何体。
相同属性数据各自生成棱柱几何体之后,将其融合成为一个完整的几何体,这样能够减少之后网格加入场景的总体时间。然后根据传入的属性获取自定义的着色器材质,生成一个完整的网格。此时网格所在的位置处于坐标原点,所以最后需要将网格移动到之前的标准点位置才能到准确位置。这样一组相同属性的数据生成了一个网格,接下来继续使用同样的步骤处理其他属性的数组,这样就完成了一整个围栏效果的开发。
其中,将新的面坐标集合根据上下底面顶点数据生成棱柱几何体具体如图4所示:通过自行构建几何体解决ThreeJS提供的几何体无法处理在球面环境中贴合底面的问题。这个方法能够限制棱柱的类型,包括生成的棱柱是否有上下底面,还是只有上底面或是下底面。接收转换为笛卡尔坐标系的围栏底部数据和加上高层之后的数据,依据这些数据可以得到该几何体的顶点数据。并分别根据上下底面的顶点数据利用Earcut中三角面生成方法,通过传入一个面的全部顶点数据,将其每个顶点数据以三角面的形式完整无遗漏的连接在一起形成一个完整的面,返回出来的也就是组成这个完整不规则平面的所有三角面的顶点索引,通过这些顶点索引每三个构成一个面,从而组成完整的面数据,紧接着处理出每个顶点上的uv纹理贴图坐标数据用于在着色器中进行纹理着色,法线数据用于后续在着色器中计算光照,这样便可以得到该棱柱的几何体用于之后组成网格。
本发明实施例的装置可以借助如图5所示的一种云服务器来实现,图5示出了云服务器的结构,包括计算机系统201、系统总线203、一个或多个CPU 204、输入/输出组件202、存储器205等。存储器205可以存储计算机处理和/或通信使用的各种数据或文件以及CPU所执行的程序指令。当CPU执行云服务器可执行程序时,执行上述多引擎场景可视化面效果偏移抖动的解决方法。图5所示的架构只是示例性的,在实现不同的设备时,根据实际需要调整图5中的一个或多个组件。
本发明实施例也可以被实现为计算机可读存储介质,根据实施例的计算机可读存储介质上存储有计算机可读指令。当所述计算机可读指令由处理器运行时,可以执行参照以上附图描述的根据本发明实施例的多引擎场景可视化面效果偏移抖动的解决方法。
本发明提供的一种多引擎场景可视化面效果偏移抖动的解决方法及相关设备,开发的面类可视化效果组件后续支持的编辑器和地理引擎较为全面,不止包括ArcGis平面地图、Mapbox地图,高德、百度等平面地图,还支持ArcGis球面以及Cesium球面地图。开发面类效果采用的WebGL技术,对比于传统的Web3D技术,例如VRML,X3D等,WebGL在绝大多数浏览器中不需要安装插件就可以实现三维图形加速,并得到一个较好的渲染效果。另外利用着色器编程也能够开发出更加丰富的面类效果。面类效果主要作为对一个范围进行强调注释,其中比较重点的一个类型就是围栏类效果,针对这个效果需要将根据多个顶点数据的绘制而成的多边形面进行拉高并去除上下底面,对于这个呈现方式一般采用的都是运用Three.JS中的二维图形进行多边形的绘制,然后再利用拉伸几何体生成一个多棱柱几何体,再加上定制的着色器实现丰富多样的围栏类效果。针对上面是比较常用的生成多棱柱的方式,这种方式做出来的围栏效果在平面地图比较合适,但在球面上就会出现位置偏移的问题。本发明中也采取了合适的方法来生成多棱柱以解决这个问题。最终达到的有益效果:效果稳定,无论如何移动相机视角,效果都不会出现抖动。极大程度的保障了用户的使用体验;位置准确,无论是在平面场景中还是球面地图中,效果的每个位置保证是与用户传入的位置是一致的;通用性强,利用本发明生成的面类效果可以在当前市面上大部分主流地理引擎上进行呈现。
在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的步骤、方法不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种步骤、方法所固有的要素。
以上内容是结合具体的优选实施方式对本发明所作的进一步详细说明,不能认定本发明的具体实施只局限于这些说明。对于本发明所属技术领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干简单推演或替换,都应当视为属于本发明的保护范围。
Claims (6)
1.一种多引擎场景可视化面效果偏移抖动的解决方法,其特征在于,所述方法包括:
根据传入数据的不同属性重组数据;
根据重组后的数据构建网格;
将不同属性数据生成的网格加入场景,得到贴合平面和球面的完整场景;
其中,根据重组后的数据构建网格具体实施步骤为:
将重组后的数据中所有地理坐标转换为笛卡尔坐标,得到笛卡尔坐标数据;
将笛卡尔坐标数据中第一个坐标点作为标准点,计算其他每一个点与标准点的相对距离,将其他每一个点与标准点的相对距离作为新的面坐标集合;
根据新的面坐标集合生成面状几何体,新建一个空几何体,将生成的每个面状几何体的顶点数据、面数据、法线数据相互叠加,整合到空几何体中生成网格;
根据数据的属性获取着色器,作用于网格得到完整网格;
将完整网格移动到标准点位置。
2.根据权利要求1所述的一种多引擎场景可视化面效果偏移抖动的解决方法,其特征在于,方法还包括搭建一个支持多种数据类型和数据属性的渲染引擎,通过将分类渲染和分值渲染进行一个模拟封装,对传入的数据选择不同的渲染方式。
3.根据权利要求2所述的一种多引擎场景可视化面效果偏移抖动的解决方法,其特征在于,对传入的数据选择不同的渲染方式具体包括:每个数据都带有特定的描述字段,根据每个描述字段的不同进行分类,分类针对单个数据或针对一类数据,分类渲染规定多个区间使用不同的渲染参数,通过判断数据中特定的描述字段所处在的区间,给每个数据赋予对应的渲染方式;分值渲染指定唯一值渲染,只有当数据中的描述字段和规定值相同才会使用规定值对应的渲染方式。
4.根据权利要求1所述的一种多引擎场景可视化面效果偏移抖动的解决方法,其特征在于,方法支持的数据属性包括simple、class-breaks和unique-value。
5.一种云服务器,其特征在于,包括:处理器;以及存储器,其中,所述存储器中存储有计算机可执行程序,当由所述处理器执行所述计算机可执行程序时,执行权利要求1-4中任一项所述的方法。
6.一种计算机可读存储介质,其上存储有指令,所述指令在被处理器执行时,使得所述处理器执行如权利要求1-4中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111306787.0A CN114119825A (zh) | 2021-11-05 | 2021-11-05 | 多引擎场景可视化面效果偏移抖动的解决方法及相关设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111306787.0A CN114119825A (zh) | 2021-11-05 | 2021-11-05 | 多引擎场景可视化面效果偏移抖动的解决方法及相关设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114119825A true CN114119825A (zh) | 2022-03-01 |
Family
ID=80380857
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111306787.0A Pending CN114119825A (zh) | 2021-11-05 | 2021-11-05 | 多引擎场景可视化面效果偏移抖动的解决方法及相关设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114119825A (zh) |
-
2021
- 2021-11-05 CN CN202111306787.0A patent/CN114119825A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20230053462A1 (en) | Image rendering method and apparatus, device, medium, and computer program product | |
US11138216B2 (en) | Automatically invoked unified visualization interface | |
US20180329927A1 (en) | Thumbnail Generation from Panoramic Images | |
US10726614B2 (en) | Methods and systems for changing virtual models with elevation information from real world image processing | |
CN113112603A (zh) | 三维模型优化的方法和装置 | |
US11798181B2 (en) | Method and system for location detection of photographs using topographic techniques | |
US20150346915A1 (en) | Method and system for automating data processing in satellite photogrammetry systems | |
CA3182430A1 (en) | Systems and methods for automatic alignment of drawings | |
CN114494024B (zh) | 图像渲染方法、装置、设备及存储介质 | |
CN111639149A (zh) | 海洋数据可视化方法和装置 | |
US20130176304A1 (en) | Method and apparatus for processing three-dimensional model data | |
CN104182498A (zh) | Android平台下电子海图引擎及无时延显示方法 | |
CN113034582A (zh) | 位姿优化装置及方法、电子设备及计算机可读存储介质 | |
CN110378948B (zh) | 3d模型重建方法、装置及电子设备 | |
Liu et al. | An IoT‐Based Intelligent Geological Disaster Application Using Open‐Source Software Framework | |
CN117078888A (zh) | 虚拟角色的服装生成方法、装置、介质及电子设备 | |
CN109405807B (zh) | 一种大场景倾斜影像三维重建的分区方法 | |
CN114119825A (zh) | 多引擎场景可视化面效果偏移抖动的解决方法及相关设备 | |
US10460420B2 (en) | Converting spatial features to map projection | |
US10460427B2 (en) | Converting imagery and charts to polar projection | |
CN113419806B (zh) | 图像处理方法、装置、计算机设备和存储介质 | |
CN115187709A (zh) | 地理模型处理方法、装置、电子设备及可读存储介质 | |
CN115511701A (zh) | 一种地理信息的转换方法及装置 | |
CN115170765A (zh) | 一种模型处理系统、方法及装置 | |
CN114049403A (zh) | 一种多角度三维人脸重建方法、装置及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |