Cesium和Three.js的初步认识

news2024/10/5 14:15:38

一、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.官网沙盒例子:官网

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

[linux网络实验] 多网卡绑定

聚合链路技术 什么是bonding 提供了一种将多个网络接口设备绑定到一个网络接口的方法。这可用于网络负载平衡和网络冗余; 实现将两个网卡虚拟成一个网卡。这种聚合设备看起来就像一个以太网接口设备。通俗地说,这意味着两个网卡拥有相同的 IP 地址&am…

代码随想录算法训练营第五十三天 | LeetCode 1143. 最长公共子序列、1035. 不相交的线、53. 最大子数组和

代码随想录算法训练营第五十三天 | LeetCode 1143. 最长公共子序列、1035. 不相交的线、53. 最大子数组和 文章链接:最长公共子序列、不相交的线、最大子数组和 视频链接:最长公共子序列、不相交的线、最大子数组和 1. LeetCode 1143. 最长公共子序列 1…

WMS系统出库管理:功能、流程与优势

一、WMS系统出库管理概述 WMS系统是一种用于仓库管理的信息系统,它涵盖了从货物入库、在库管理到出库的全过程。在WMS系统中,出库管理是非常重要的一环,它涉及到的功能包括订单处理、拣货、打包、发货等。通过WMS系统的出库管理,…

世界互联网大会|美创科技新一代 数据安全管理平台,携五大新特性发布亮相

11月7日,2023年世界互联网大会“互联网之光”博览会在浙江乌镇开幕。今年是博览会办展第十年,重点突出国际性、创新性、引领性。在新产品新技术发布活动中,美创科技全新升级的新一代 数据安全管理平台(简称:DSM Cloud&…

SaaS 电商设计 (四) 如何做大促压测

一.背景&目标 1.1 常见的压测场景 电商大促:一众各大厂的促销活动场景,如:淘宝率先推出的天猫双11,而后京东拉出的京东 618 .还是后续陆陆续续的一些年货节, 3.8 女神节等等.都属于一些常规的电商大促 票务抢购:常见的如承载咱们 80,90 青春回忆的 Jay 的演唱会,还有普罗…

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

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

小程序与公众号下发统一消息接口返回45109

根据微信官方通告,自 2023 年 9 月 20 日起,下发统一消息接口将被收回,返回45109。链接见 小程序与公众号下发统一消息接口调整通知 | 微信开放社区各位开发者:下发统一消息 接口曾支持小程序与公众号统一的模板消息下发。由于小程…

虹科示波器 | 汽车免拆检修 | 2014款保时捷卡宴车行驶中发动机偶尔自动熄火

一、故障现象 一辆2014款保时捷卡宴车,搭载4.8L自然吸气发动机,累计行驶里程约为10.3万km。车主反映,行驶中发动机偶尔自动熄火,尤其在减速至停车的过程中故障容易出现。 二、故障诊断 接车后路试,确认故障现象与车主所…

DTC Network旗下代币DSTC大蒜头即将上线,市场热度飙升

全球数字资产领导者DTC Network宣布其代币DSTC(大蒜头)即将于近期上线,引发市场广泛关注。DTC Network以其创新性的区块链技术和多维度的网络构建,致力于打造一个融合Web3.0、元宇宙和DAPP应用的去中心化聚合公共平台,…

Shiro快速入门之二

一、前言 Shiro快速入门之一 介绍了Shiro三大核心组件,四大核心功能,以及一个简单的Test Demo,接下来两篇我会用一个比较完整的例子来讲述Shiro的认证及授权是怎么做的,本篇侧重于介绍认证的过程 二、Shiro认证例子 1、例子概述…

立体库堆垛机控制程序手动功能实现

手动操作功能模块 手动前后保护锁 *************提升手动程序段 手动上升,下降保护锁 **********货叉手动程序段

【第2章 Node.js基础】2.4 Node.js 全局对象(二) process 对象

process对象是一个全局对象,提供当前Node.js 进程信息并对其进行控制。通常用于编写本地命令行程序。 1.进程事件 process对象是EventEmitter类的实例,因此可以使用事件的方式来处理和监听process对象的各种事件。以下是一些常用的process对象事件&…

Webpack 性能优化 二次编译速度提升3倍!

本文作者为 360 奇舞团前端开发工程师 Rien. 本篇文章主要记录 webpack 的一次性能优化。 现状 随着业务复杂度的不断增加,项目也开始变得庞大,工程模块的体积也不断增加,webpack 编译的时间也会越来越久,我们现在的项目二次编译的…

医院安全(不良)事件管理系统源码 不良事件报告全套源码

不良事件管理系统是一种专为企业或组织设计的软件工具,用于跟踪、记录和管理不良事件。该系统可以有效地整合不良事件的收集、分类、分析和报告,帮助企业及时识别和处理不良事件,从而降低风险和损失。通过实时监控和自动化报告,该…

JavaScript数据类型和存储区别

目录 一、原始数据类型 二、引用数据类型 三、存储区别 四、常见错误 JavaScript是一种动态类型语言,这意味着变量可以在程序执行过程中改变其数据类型。了解JavaScript中的数据类型和它们的存储方式对于编写高效和可维护的代码至关重要。 在JavaScript中&…

世界互联网大会|云轴科技ZStack受邀分享云原生超融合

11月8日至10日“世界互联网大会乌镇峰会”在浙江嘉兴的乌镇开幕,大会的主题为“建设包容、普惠、有韧性的数字世界——携手构建网络空间命运共同体”,全球各界代表就热点焦点问题展开讨论,反映产业各界对互联网发展的前瞻思考,引领…

knife4j集成Swagger

knife4j集成 配置knife4j 第一步: 导入knife4j对应的maven坐标,knife4j是为MVC框架集成Swagger生成API文档的增强解决方案 <dependency><groupId>com.github.xiaoymin</groupId><artifactId>knife4j-spring-boot-starter</artifactId><ver…

中国平安:短期面临两项重大风险,长期具有增长潜力

来源&#xff1a;猛兽财经 作者&#xff1a;猛兽财经 中国平安面临的短期风险 在过去的一个月里&#xff0c;中国平安(02318)(601318)的股价已经下跌了16.4%&#xff0c;而同期标普500指数则上涨了1.3%。所以&#xff0c;猛兽财经认为&#xff0c;中国平安近期的股价疲软&…

python数据结构与算法-02_数组和列表

线性结构 本节我们从最简单和常用的线性结构开始&#xff0c;并结合 Python 语言本身内置的数据结构和其底层实现方式来讲解。 虽然本质上数据结构的思想是语言无关的&#xff0c;但是了解 Python 的实现方式有助于你避免一些坑。 我们会在代码中注释出操作的时间复杂度。 数…

nginx之使用与配置教程

目录 简介 优点 安装 目录结构 nginx.conf配置文件结构 server虚拟主机配置 listen server_name location root index try_files proxy_pass 使用 反向代理 配置语法 常用指令 proxy_pass proxy_set_header proxy_redirect 负载均衡 负载均衡策略 轮询&…