Cesium和Three.js的初步认识

一、Threejs和Cesium的对比

相同点:

都是基于WebGL技术开发的Javascript库,用于在浏览器中创建和显示动画3D计算机图形。

不同点:

Threejs:受众面比较广,是封装了webgl的一些底层用法,让初学者更容易上手。例如绘制一个立方体,使用webgl原生api可能要写50行代码,包括构建坐标点,顶点组织、着色器等信息;在threejs里面可能只要一句代码就可以构建。实际上也是调用webgl原生api,只是做了更大粒度的封装。

Cesium:受众面相对较小,是Gis相关的,也是基于WebGL开发的。它主要是三维地球相关的js库,可以展示二维地图服务(百度地图、高德地图)、倾斜摄影模型。还可以在上面做一些三维分析。

二、Threejs概述

Threejs简介:

Three.js是一个基于WebGL的JavaScript 3D库。它封装了WebGL API,为开发者提供了简单易用的API,以便在Web浏览器中展示3D图形;

Three.js提供了组件、方法和工具,用于创建和处理3D图形,使得开发者可以在Web浏览器中快速创建3D图形和动画,而不需要深入了解WebGL的底层实现。

Threejs的组成:

Three.js支持多种类型的3D对象:几何体、材质、灯光、相机、渲染器 等

几何体:包含球体、立方体、圆锥体和圆柱体等。这些几何体可以进行旋转、平移和缩放等变换操作。

材质:包含基础材质等,主要有颜色、切图、透明度等属性。它们可以与几何体组合,形成具有不同表面效果的3D对象。

灯光:包含环境光、半球光和点光源等。它们可以为场景中的对象添加实际的阴影和光照。 

三、 Cesium概述

Cesium简介

Cesium是AGI公司计算机图形开发小组,于2011年研发的三维地球和地图可视化开源JavaScript库。Cesium为三维GIS提供了一个高效的数据可视化平台。Cesium是基于Apache2.0许可的开源程序。

即:

1.Cesium是一个跨平台、跨浏览器的展示三维地球和地图的JavaScript库。

2.Cesium使用WebGL来进行硬件加速图形,使用时不需要任何插件支持。

3.Cesium需要有 WEB前端、图形学、GIS 三个学科的知识体系。

Cesium的作用

Cesium用于地理数据可视化,支持海量数据的高效渲染,支持时间序列动态数据的三维可视化。

具备太阳、大气、云雾等地理环境要素的动态模拟和地形等要素的加载绘制。

包含丰富的可用工具,即Cesium基本控件所提供的工具,如地理编码器,图层选择器等。

Cesium的功能

1、使用3d tiles格式流式加载各种不同的3d数据,包含倾斜摄影模型、三维建筑物、CAD和BIM的外部和内部,点云数据。并支持样式配置和用户交互操作。
2、全球高精度地形数据可视化,支持地形夸张效果、以及可编程实现的等高线和坡度分析效果。
3、支持多种资源的图像图层,包括WMS,TMS,WMTS以及时序图像。图像支持透明度叠加、亮度、对比度、GAMMA、色调、饱和度都可以动态调整。支持图像的卷帘对比。
4、支持标准的矢量格式KML、GeoJSON、TopoJSON、以及矢量的贴地效果。
5、三维模型支持gltf2.0标准的PRB材质、动画、蒙皮和变形效果。贴地以及高亮效果。

6、使用CZML支持动态时序数据的展示。
7、支持各种几何体:点、线、面、标注、公告牌、立方体、球体、椭圆体、圆柱体、走廊、管径、墙体。
8、可视化效果包括:基于太阳位置的阴影、自身阴影、柔和阴影。
9、支持大气、雾、太阳、阳光、月亮、星星、水面。
10、粒子特效:烟、火、火花。

11、地形、模型、3d tiles模型的面裁剪。
12、对象点选和地形点选。
13、支持鼠标和触摸操作的缩放、渲染、惯性平移、飞行、任意视角、地形碰撞检测。
14、支持3d地球、2d地图、2.5d哥伦布模式。3d视图可以使用透视和正视两种投影方式。
15、支持点、标注、公告牌的聚集效果。

Cesium的学习参考

Cesium做为三维GIS开发最火爆的前端框架,在三维数据管理、三维地形分析、动态场景可视化等方面广泛应用。

Cesium学习可用参考的文档有:

1.官网API文档:官网
2.官网沙盒例子:官网

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/143548.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Istio学习笔记- 服务网格

Istio 服务网格 参考:Istio / Istio 服务网格 Istio 使用功能强大的 Envoy 服务代理扩展了 Kubernetes,以建立一个可编程的、可感知的应用程序网络。Istio 与 Kubernetes 和传统工作负载一起使用,为复杂的部署带来了标准的通用流量管理、遥…

DNS域名解析服务

1.概述 1.1.产生原因 IP 地址:是互联网上计算机唯一的逻辑地址,通过IP 地址实现不同计算机之间的相互通信,每台联网计算机都需要通过I 地址来互相联系和分别,但由于P 地址是由一串容易混淆的数字串构成,人们很难记忆所有计算机的…

labview实现仪器的控制visa

*IDN? 是识别大多数仪器的查询指令。仪器会回应一个用于描述仪器的识别字符串。如果仪器不接受该指令,请在仪器手册中查询仪器能识别的指令列表。 如下图所示: 程序如下:

【汇编】计算机的组成

文章目录 前言一、计算机的基本组成1.1 中央处理器(CPU)1.2 内存指令和数据存储的位置计算机中的存储单元计算机中的总线地址总线数据总线控制总线 1.3 输入设备和输出设备1.4 存储设备 二、计算机工作原理三、计算机的层次结构总结 前言 计算机是现代社…

容器化nacos部署并实现服务发现(gradle)

1.如何容器化部署mysql 2. 如何容器化部署nacos 为不暴露我的服务器地址,本文全部使用localhost来代替服务器地址,所有的localhost都应该调整为你自己的服务器地址。 为不暴露我的服务器地址,本文全部使用localhost来代替服务器地址&#x…

Centos上删除文件及目录的命令积累

01-如果我想删除Centos上当前目录下的文件 test06-2023-11-14-01.sql 该怎么操作? 答:如果你想删除CentOS上当前目录下的文件 test06-2023-11-14-01.sql,可以使用 rm 命令。以下是删除文件的基本语法: rm test06-2023-11-14-01.s…

《QT从基础到进阶·二十三》弹窗提示框QMessageBox和QCloseEvent事件

1、正常信息提示 QMessageBox::information(NULL, "Title", "Content", QMessageBox::Yes | QMessageBox::No, QMessageBox::Yes);消息框按钮判断: if(QMessageBox::Ok QMessageBox::warning(this,"温馨提示","是否保存设置?…

BGP路由控制实验

目录 一、实验拓扑 二、实验需求 三、实验步骤 1、IP地址配置 2、As 200 内部配置OSPF 3、建立BGP邻居关系 4、宣告网段,在BGP中传递网段 5、通过修改MED 使 R1 到达 192.168.2.0/24 网段的路由经过 R3 6、通过修改Preferred-value 属性,使 R4 …

6.6二叉树的最大深度(LC104-E)、N叉树的最大深度(LC559-E)

二叉树的最大深度: 二叉树的 最大深度 是指从根节点到最远叶子节点的最长路径上的节点数。 二叉树的最大深度二叉树的高度 算法: 这道题既可以求深度,也可以直接求高度。不过高度和深度用的遍历方式不同。 二叉树写代码之前要确定遍历顺序…

从零开始,掌握Nacos搭建的艺术(单点、集群、docker-compose)

🎏:你只管努力,剩下的交给时间 🏠 :小破站 从零开始,掌握Nacos 前言:前提:建表语句第一: 单节点搭建:第二: 集群搭建:第三&#xff1a…

BUUCTF 来首歌吧 1

BUUCTF:https://buuoj.cn/challenges 题目描述: 密文: 下载附件,解压得到一个.wav音频文件。 解题思路: 1、得到一个音频文件,放到Audacity看看。看到有两条音轨,放大上面的那条音轨,看到这…

Shiro快速入门之三

一、前言 接Shiro快速入门之二,上篇侧重于介绍认证,这篇介绍一下Shiro的授权,先初始化5张表的数据。 注:创建三条权限记录,一个admin角色分配查询和添加用户权限,一个账户qingcai18036授予管理员角色。 二…

python数据结构与算法-04_队列

队列和栈 前面讲了线性和链式结构,如果你顺利掌握了,下边的队列和栈就小菜一碟了。因为我们会用前两章讲到的东西来实现队列和栈。 之所以放到一起讲是因为这两个东西很类似,队列是先进先出结构(FIFO, first in first out), 栈是…

android studio开发flutter应用,使用mumu模拟器调试软件

安装好mumu模拟器,先打开网易mumu模拟器的开发者模拟。系统应用 > 设置 > 关于手机 > 版本号 多点击几次调出开发者模式: 然后在android studio中刷新设备列表,就能看到新设备了: 如何确定这个设备就是你的mumu模拟器呢…

2012年11月10日 Go生态洞察:Go语言三周年回顾

🌷🍁 博主猫头虎(🐅🐾)带您 Go to New World✨🍁 🦄 博客首页——🐅🐾猫头虎的博客🎐 🐳 《面试题大全专栏》 🦕 文章图文…

预览PDF并显示当前页数

这里写目录标题 步骤实例实例效果图 步骤 1.安装依赖 npm install --save vue-pdf2.在需要的页面&#xff0c;引入插件 import pdf from vue-pdf3.使用 单页pdf可以直接使用 <pdf :src"获取到的pdf地址"></pdf>多页pdf通过循环实现 html标签部分 &l…

电子零部件工厂的WMS系统:业务特点、产品特点与优势

一、电子零部件工厂的业务特点 电子零部件工厂的业务涉及各种电子元器件的生产、组装和配送。其业务特点包括&#xff1a; 高度复杂性&#xff1a;电子零部件工厂的生产流程涉及多种原材料、半成品和成品&#xff0c;每种产品都有不同的规格、属性及存储要求。 严格的质量控…

基于Rabbitmq和Redis的延迟消息实现

1 基于Rabbitmq延迟消息实现 支付时间设置为30&#xff0c;未支付的消息会积压在mq中&#xff0c;给mq带来巨大压力。我们可以利用Rabbitmq的延迟队列插件实现消息前一分钟尽快处理 1.1定义延迟消息实体 由于我们要多次发送延迟消息&#xff0c;因此需要先定义一个记录消息…

Jenkins 构建CICD

GitLab GitLab安装 https://gitlab.cn/install/?versionce CentOS 下安装 1. 安装和配置必须的依赖项 在 CentOS 7上&#xff0c;下面的命令也会在系统防火墙中打开 HTTP、HTTPS 和 SSH 访问。这是一个可选步骤&#xff0c;如果您打算仅从本地网络访问极狐GitLab&#xf…