首页 > 其他分享 >数字孪生系统如何整合CesiumJS?整合后会产生怎样的化学反应?

数字孪生系统如何整合CesiumJS?整合后会产生怎样的化学反应?

时间:2023-07-11 19:45:02浏览次数:55  
标签:孪生 GIS 数字 CesiumJS 系统 整合

数字孪生有关的项目中,智慧城市一直是一个比较重要的类型,但是这类智慧城市项目往往包含了大量的GIS相关数据,例如倾斜摄影、DEM、DOM、地形数据等。这时,将GIS系统融合进数字孪生系统的需求就出现了。

这时一个新的问题就出现了,如果将GIS系统和数字孪生系统进行融合,那么该如何保证融合进来的GIS系统仍然能够共享数字孪生系统中的各项功能呢?虽然CesiumJS非常成熟,几乎支持了大部分常用的GIS协议,且性能优化较好,能够将CesiumJS整合到系统中,但是CesiumJS自己实现了底层的渲染功能,无法直接嫁接到渲染引擎当中。

实际上,无论是CesiumJS还是类似ThreeJS,他们底层目前都是基于WebGL/WebGL2绘制到Canvas来实现的(WebGPU还远没有成熟),那么我们是不是可以直接在一个Canvas让CesiumJS先画,ThreeJS后画呢?答案显然是可以的。但是,如果一个先画,一个后画,后画的不就把先画的覆盖了吗?这里我们就要学到深度缓冲区的概念了。

深度缓冲区也称之为DepthBuffer,是GPU为了对光栅化渲染时物体的遮挡关系进行排序用到的概念。概念本身很简单,就是每绘制一个物体的同时,把这个物体在每一个像素点上的深度信息与这个像素点之前的深度信息进行对比,如果这个像素点的深度较小(注意这要看具体深度缓冲的DepthFunction,一般在WebGL上默认是最大的是Depth是1,因此越小越近)则继续渲染像素颜色,否则直接丢弃。

当然,这之后还有许多要面临的问题,例如相机、光照、阴影等存在的冲突,这里就不展开细讲了。总之,到此为止我们已经初步将CesiumJS整合进数字孪生系统了。那么,整合之后又会有怎样的化学反应呢?

这里就需要考验数字孪生系统本身的能力了。以成功将CesiumJS整合进数字孪生系统的山海鲸Cesium为例,山海鲸为CesiumJS实现了Aerial Perspective LUT。将瑞利散射,米氏散射引入CesiumJS视觉效果中,大幅提升了大场景真实度。并且山海鲸采用Perlin-Worley噪声结合Perlin噪声实现CesiumJS内嵌体积云的动态建模,同时结合大气散射实现基于物理的体积云光照。并使用Temporal Reprojection和Bilateral Upsample技术大幅提升体积云渲染的性能。

具体效果大家可以在山海鲸可视化官网下载软件尝试一下,是免费的(只是全屏展示会有水印),整体效果可以说是非常优秀了。

 

标签:孪生,GIS,数字,CesiumJS,系统,整合
From: https://www.cnblogs.com/DouDouFox/p/17545396.html

相关文章

  • 创新体验的未来:探索VR与数字孪生的无限可能性
    VR即虚拟现实(VirtualReality)和数字孪生(DigitalTwin)是当今科技领域的两大热门概念,VR以其沉浸式的体验和逼真的虚拟环境,让用户身临其境,开启了全新的交互方式和感官体验;而数字孪生则以其复制现实世界的精确模型,为现实世界提供了虚拟的镜像,实现了真实与虚拟的融合。 VR技术的出现......
  • SpringBoot整合Caffeine本地缓存
    1、@Cacheable相关注解1.1相关依赖如果要使用@Cacheable注解,需要引入相关依赖,并在任一配置类文件上添加@EnableCaching注解<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-cache</artifactId></dependency>1.2常......
  • 整合SSM框架
    整合SSM框架最近把SSM框架的视频快速的过了一遍,虽然啥都没学会,但还是想在最后整合SSM框架的时候玩儿一下一、环境要求IDEAMySQL5.7.XTomcat9Maven3.6二、数据库环境搭建CREATEDATABASE`ssmbuild`;USE`ssmbuild`;DROPTABLEIFEXISTS`books`;CREATETABL......
  • SpringBoot整合Sharding-JDBC水平分表
    本文使用Sharding-JDBC完成对订单表的水平分表,通过快速入门程序的开发,快速体验Sharding-JDBC的使用方法。首先创建两张表,t_order_1和t_order_2,这两张表是订单表拆分后的表,通过Sharding-Jdbc向订单表插入数据,按照一定的分片规则,主键为偶数的进入t_order_1,另一部分数据进入t_order_......
  • springcloud -config配置中心 整合github 或者gitee 单个刷新配置
    配置中心,通过从开源仓库上拉去配置,而不是在本地修改服务端配置cloud-config-center-3344     <dependency>       <groupId>org.springframework.cloud</groupId>       <artifactId>spring-cloud-config-server</artifactId>   ......
  • Spring整合web环境(Servlet)
    前提:Spring系列坐标版本统一,否则会出现版本问题发布之前先进行打包,可以暴露一些代码配置上的问题,避免出现找不到资源的问题1.创建Servlet @WebServlet注解用于配置Servlet,相当于web.xml中的以下代码<servlet><servlet-name>AccountServlet</servlet-name><servlet-c......
  • SpringBoot整合EasyExcel 3.x
    目录1EasyExcel3.x1.1简介1.2引入依赖1.3简单导出1.3.1定义实体类1.3.2自定义转换器1.3.3定义接口1.4简单导入1.5复杂导出1.5.1引言1.5.2自定义注解1.5.3定义实体类1.5.4数据映射与平铺1.5.5自定义单元格合并策略1.5.6定义接口1EasyExcel3.x1.1简介EasyExce......
  • GIS融合之路(五)给CesiumJS加上体积云(Volumetric Cloud)和高度雾(Height Fog)
    同样在这篇文章开始前重申一下,山海鲸并没有使用ThreeJS引擎。但由于ThreeJS引擎使用广泛,下文中直接用ThreeJS同CesiumJS的整合方案代替山海鲸中3D引擎和CesiumJS整合。系列传送门:同样在这篇文章开始前重申一下,山海鲸并没有使用ThreeJS引擎。但由于ThreeJS引擎使用广泛,下文中直接......
  • 孪生网络:图片相似度对比神器
    本文来自公众号"AI大道理"—————— SiameseNetwork(孪生网络)很早就被发明了,它的作者是著名的卷积神经网络LeNet-5的作者LeCun。最早用来从相似图片数据集上学习图片表示的网络结构就是siamese网络。两幅图通过两个共享权重的CNN得到各自的表示,而各自表示的距离决定了......
  • 4. SpringBoot整合mybatis
    1.回顾Spring整合Mybatis​Spring​整合Mybatis​需要定义很多配置类​SpringConfig​配置类导入JdbcConfig​配置类导入MybatisConfig​配置类@Configuration@ComponentScan("com.itheima")@PropertySource("classpath:jdbc.properties")@Import({Jdbc......