gltf

Cesium专栏-terrain地形、3dtiles模型、gltf模型 高度采样

人走茶凉 提交于 2020-05-01 20:11:02
在Cesium中,对于terrain地形、3dtiles模型、gltf模型的高度采样是一个很基本的功能,基于此,可以做一些深度应用,而Cesium已经帮我们提供了相应的API,在这里,我帮大家总结一下,如果遇到了,可以当做帮助文档随时浏览。 terrain地形 高度采样(API: Cesium.sampleTerrainMostDetailed) 通过两点决定一条直线,求取这条直线在地表高度 var start = Cesium.Cartesian3.fromDegrees( 114, 30); var end = Cesium.Cartesian3.fromDegrees( 115, 30); var positions = [Cesium.Cartographic.fromCartesian(start)]; // 插值100个点(自定义) var count = 100; for ( var i = 1; i < count; i++) { var cart = Cesium.Cartesian3.lerp(start, end, i / count, new Cesium.Cartesian3()); positions.push(Cesium.Cartographic.fromCartesian(cart)); } positions.push(Cesium

cesium 之三维场景展示篇(附源码下载)

你说的曾经没有我的故事 提交于 2020-05-01 20:06:33
前言 cesium 官网的api文档介绍地址 cesium官网api ,里面详细的介绍 cesium 各个类的介绍,还有就是在线例子: cesium 官网在线例子 ,这个也是学习 cesium 的好素材。 内容概览 1.基于cesium 实现三维场景展示效果 2.源代码 demo 下载 本篇实现 cesium 三维场景展示,效果图如下: 三维模型.gltf场景展示 倾斜摄影场景展示 加载三维模型 gltf cesium 三维模型格式数据转换 cesium 支持加载三维模型的格式是 .gltf 或者 .glb,一般我们制作三维模型都是从 3dmax 软件,所以需要转换;官网开源有转换工具 obj2gltf,具体的见这里: https://github.com/AnalyticalGraphicsInc/obj2gltf,转换需要安装 node 环境,我这里加载三维模型就是从 obj 转换 gltf 来的; cesium 加载 gltf 展示代码 *三维模型gltf配置信息*/ MapConfig.Obj3D = { position:Cesium.Cartesian3.fromDegrees( 111.828682, 21.579571,3000 ), models:[ { id: "3D_gltf" , name : "测试3D模型" , position : Cesium

Cesium原理篇:3D Tiles(1)渲染调度【转】

陌路散爱 提交于 2020-05-01 07:10:30
Cesium在2016年3月份左右推出 3D Tiles 数据规范, 在glTF基础上提供了LOD能力 ,定位就是Web环境下 海量三维模型数据 。虽然目前3D Tiles还是Beta阶段,有不少硬伤,但3D Tiles数据规范于2016年9月30日开始了 OGC 标准化进程,积极成分还是很大。 之前的glTF时分享了个人对二进制格式的一些想法和谨慎的态度。3D Tiles简单说就是具备LOD能力的glTF。有了数据首先是提供API可以渲染,保证用起来,下一步就要了解该数据规范的具体特点,比如倾斜,矢量,点云,OSM等支持情况,项目实施和风险评估等。最后,作为一个数据规范,从数据生产到深层次应用,需要时间沉淀出完善丰富的解决方案。 本文主要集中在 渲染调度层面 。看完本文可能会觉得思路很简单。在实际应用中有很多细节,比如浏览时各种操作的差异,并发量,内存和显存管理,异步传输和Workers线程等等各种调优。思路简单,但要把这些小细节打磨好就不容易了。 本文只讲诗和远方,鞋里的沙子自己来处理吧 。 先看看如何加载3D Tiles数据,如上所示,Cesium提供了 Cesium3DTileset 类来管理,主要负责Tile的调度。在 Cesium中,3DTiles就相当于一个Primitive的位置 。 3D Tile表述 当我们创建一个Cesium3DTileset后

cesium初探之加载三维模型

只愿长相守 提交于 2020-05-01 07:09:08
项目需要用到二三维地图切换,本来准备研究ArcGIS js for Web 3d,但考虑到版权的问题,决定试着用cesium来做,于是花了2天时间抱着试试看的心态把cesium从环境配置到加载三维模型完整的走了一遍。 一、环境配置 1.下载cesium js 下载地址 https://github.com/AnalyticalGraphicsInc/cesium/releases ,版本已是1.28。 2.下载安装nodejs 我去官网(https://nodejs.org/en/)下载的V6.9.2,这其实已经包括了npm,打开安装文件,一直默认安装,完成之后在cmd命令行中键入node -v以及npm确定node.js安装完成。 3.打开cmd命令行进入到cesium的安装目录(比如d盘的123文件夹底下的456文件夹 你在cmd中输入D: 回车 再输入cd 123/456 就进去了),执行npm install,这个过程因为要连接到国外的网站,过程会非常慢,如果安装失败可以去网上找找原因,该命令执行成功后会在cesium根目录下创建node_modules目录。 4.安装gulp作为项目开发的依赖,如下图 gulp安装之后会在node_modules目录中创建执行gulp命令所需要的依赖包,如下图 : 二、编译cesiumjs 在cesium根目录执行gulp

cesium编程入门(九)实体 Entity

。_饼干妹妹 提交于 2020-05-01 07:07:44
cesium编程入门(九)实体 Entity 在 cesium编程入门(五)绘制形状 提到过添加实体的方法,这一节聊一聊实体相关的一些内容: 先来看 Entity 的各个属性 id 唯一标志,如果没设置,值就为一个默认给定的GUID name 名称,可以不唯一 availability 可用性 show 可见性 description 描述 position 位置 orientation 方向 viewFrom 查看此对象的初始偏移量 parent 父节点 properties 与此实体关联的任意属性。 Graphics 相关的形状 box corridor cylinder ellipse ellipsoid path point polygon polyline polylineVolume rectangle wall billboard label model 第五篇中描述了部分形状,这里补充 标签,模型,广告牌 标签 label 文字标注,可以设置样式,文字内容,字体,偏移等等 label : { text : 'Citizens Bank Park', font : '14pt monospace', style: Cesium.LabelStyle.FILL_AND_OUTLINE, outlineWidth : 2, verticalOrigin : Cesium

cesium js学习一加载三维模型【转】

末鹿安然 提交于 2020-05-01 05:57:12
http://blog.csdn.net/tangyajun_168/article/details/50936698 最近项目中用到室外三维模型与室内三维地图交互,室外三维模型的加载我们采用了cesium js来实现,在使用的过程中遇到了许多的问题,闲暇之余将其实现及遇到的问题记录下来,以备将来再用到时少走弯路。 一、开发环境准备 1、下载cesium js cesium js 下载地址 https://github.com/AnalyticalGraphicsInc/cesium/releases 下载完成解压后的目录如下图 2.打开cmd命令行进入到cesium的安装目录,执行npm install(需要安装nodejs及npm),该命令执行完会在cesium根目录下创建node_modules目录,如下图 安装gulp作为项目开发的依赖,如下图 gulp安装之后会在node_modules目录中创建执行gulp命令所需要的依赖包,如下图 3.下载mds max插件OpenCOLLADA Tools,下载地址 https://github.com/KhronosGroup/OpenCOLLADA/wiki/OpenCOLLADA-Tools (根据系统要求下载32位或64位)。 4.下载collada2gltf 工具,下载地址 https://github.com

Maxon发布Cinema 4D S22

穿精又带淫゛_ 提交于 2020-04-23 05:30:16
德国弗里德里希斯多夫--(美国商业资讯)--专业3D建模、动画和渲染软件解决方案的开发商 Maxon 今天发布了 Cinema 4D Subscription Release 22 (S22) 。它是Maxon的下一代3D应用程序和第一个仅限订阅的版本,让客户能够尽早获得显著的性能和交互性改进,包括 UV解包和编辑工具 、改进的选择和 建模工具功能 、 针对批量客户的组织许可 以及可在macOS上支持Metal的 更新视口技术 。此外,Maxon通过 GLTF导出 增强了Cinema 4D的管道兼容性,改进了 与Z-Brush的GoZ集成 ,并支持FBX和Cineware中基于节点的材料。订阅客户可以立即使用Cinema 4D S22。公司计划在今年晚些时候发布一个针对Cinema 4D永久许可证持有者的版本,其中将包含S22的功能以及其他增强功能。 Maxon首席执行官Dave McGavran表示:“去年9月,我们推出了基于订阅的选项,让我们能够以大幅降低的价格提供专业的3D软件。这也使我们能够更为经常性地为订阅客户提供改进和增强。S22让订阅用户能够尽早使用强大的解决方案。” Cinema 4D S22 概述 Cinema 4D S22 在线新闻资料包 推荐系统要求 Cinema 4D S22最低需要Windows 10或MacOS 10.13.6,使用最新版本10

Cesium中级教程4

生来就可爱ヽ(ⅴ<●) 提交于 2020-03-01 01:03:56
Cesium中文网: http://cesiumcn.org/ | 国内快速访问: http://cesium.coinidea.com/ Viewer中的Entity功能 让我们看看 Viewer 为操作entities提供出来的功能函数。 选中和描述 点击Viewer中的entity将在entity的位置上呈现 SelectionIndicator 控件,提供一个 InfoBox 用于呈现更多的信息。我们可以设置 name ,来定义 InfoBox 的标题。我们也以HTML样式来提供 Entity.description 的属性。 wyoming.name = 'wyoming'; wyoming.description = '\ <img\ width="50%"\ style="float:left; margin: 0 1em 1em 0;"\ src="//cesium.com/docs/tutorials/creating-entities/Flag_of_Wyoming.svg"/>\ <p>\ Wyoming is a state in the mountain region of the Western \ United States.\ </p>\ <p>\ Wyoming is the 10th most extensive, but the least

三维组态可视化解决方案

岁酱吖の 提交于 2020-02-28 09:30:25
HTML5 WebGL 在三维中的应用,已经发展的如火如荼,使其在三维组态(工业控制)方面也变得简单易行! 三维组态软件提高了工业控制的管理效率,让工业控制的资源管理、风险管控得到很大的改善。 传统的三维组态一般都是本地应用, 该案例使用的是基于浏览器B/S架构下的三维组态的应用。 该案例模拟的是一个油田简单的工业控制场景, 模型大致包括 油井、分离器、 加热炉、天然气、外输泵。 还包括管路流动、流动方向。 描述了采油、加工、 输出的全过程。 制作模型 第一步要做的就是建模,设计组使用3D建模工具 3d max或者c4d 进行油田设备模型的建模。建模后导出后缀为obj或者gltf格式文件,这两种格式是我们三维渲染引擎支持最好的文件格式。 建模后的所有模型文件,最终会放到后端的模型库,模型库的管理目录,如下图所示: 需要制作的模型包括油井、分离器、加热炉、天然气、外输泵,如下图所示, 加载模型 加载模型可使用引擎模型的加载函数,进行模型加载,如obj模型加载,如下代码所示: new mono.OBJMTLLoader().load( 'youjing.obj', 'youjing.mtl', '', (node)=> { node.type = 'obj'; box.addByDescendant(node); }, ); 如加载一个油井模型,因为加载模型是一个异步的过程

翻译glTF文档中 材质球的一段

我的未来我决定 提交于 2020-02-28 01:59:29
英文原文 基于实物的渲染(PBR) 为了允许渲染器在不同的光照条件下显示具有真实外观的对象,渲染模型必须考虑对象表面的物理属性。这些物理材料特性有不同的表现形式。一种常用的方法是金属粗糙度模型。这里,关于物体表面的信息用三个主要参数进行编码: 底色,即物体表面的“主”色。 金属,这个参数描述了材料的反射行为与金属的反射行为的相似程度。 粗糙度值,表示表面的粗糙程度,影响光散射。 金属粗糙度模型是glTF中使用的表示方法。其他的物质表现形式,如镜面-光泽-模型,是通过扩展来支持的。 不同的金属和粗糙度值的影响如下图所示: 基色、金属和粗糙度属性可以作为单个值给出,然后应用于整个对象。为了给物体表面的不同部分赋予不同的材质属性,这些属性也可以以纹理的形式给出。这使得它有可能建模的现实世界的材料与现实的外观广泛。 根据材质模型,附加效果可以应用到物体表面。这些通常是纹理和比例因子的组合: 一个发射纹理描述的是物体表面发出某种颜色光的部分。 遮挡纹理可以用来模拟物体之间的自阴影效应。 法线贴图是一种用于调整表面法线的纹理,它使模拟更精细的几何细节成为可能,而不需要更高的网格分辨率。 glTF支持所有这些附加属性,并为省略这些属性的情况定义合理的默认值。 来源: oschina 链接: https://my.oschina.net/u/235558/blog/3157589