随笔分类 -  图形/Cesium中阶

摘要:原文:https://cesium.com/blog/2022/10/05/tour-of-the-new-gltf-architecture-in-cesiumjs/ CesiumJS 和 glTF 之间有一段很长的合作关系。在 2012 年,CesiumJS 就实现了一个 glTF 加载器,是最 阅读全文
posted @ 2022-10-25 23:34 岭南灯火 阅读(2512) 评论(1) 推荐(0)
摘要:CesiumJS 更新日志 1.96 与 1.97 - 新构建工具 esbuild 体验及 Model API 更替完成 截止发文,1.97 还未发布,但已经在源码仓库完成了 Model API 的替换,文章会跟进。本文着重介绍新的构建指令的用法(配套 esbuild 的使用),见第三节。 首先介绍 阅读全文
posted @ 2022-08-08 06:14 岭南灯火 阅读(1502) 评论(0) 推荐(0)
摘要:很高兴你能在浮躁的年代里还有兴趣阅读源代码,CesiumJS 至今已有十年以上,代码量也积累了三十多万行(未压缩状态)。 我也很荣幸自己的文章能被读者看到,如果对你有帮助、有启发,点个赞就是对我最大的鼓励,感激不尽。本系列文章写于 2022 年,梳理的是 CesiumJS 前端库中的主要源码结构,不 阅读全文
posted @ 2022-07-04 02:11 岭南灯火 阅读(2359) 评论(1) 推荐(2)
摘要:CesiumJS 对需要网络请求的一切资源都进行了统一的封装,也就是 Resource 类。 在 XHR 技术横行的年代,就出现过 ajax 这种神器,但是 Cesium 团队选择了自己封装 XHR。后来 ES6 出现了 Promise API,axios 再次封装了 XHR,但是 Cesium 团 阅读全文
posted @ 2022-07-04 00:05 岭南灯火 阅读(1217) 评论(0) 推荐(1)
摘要:3DTiles 与 I3S 是竞争关系,可是比起生态开放性、数据定义的灵活性与易读性来说,3DTiles 比 I3S 好太多了。由于数据生产工具的开发者水平参差不齐,且数据并不存在极致的、万能的优化方法,故 3DTiles 1.0 时代的一些工具可能导致的数据渲染质量问题,让 3DTiles 的性能 阅读全文
posted @ 2022-07-03 19:17 岭南灯火 阅读(3691) 评论(0) 推荐(1)
摘要:三维模型架构(即 Scene/Model 目录下的模块)有别于旧版模型 API(即 Scene/Model.js 模块为主的一系列处理 glTF 以及处理 3DTiles 点云文件的源码,已在 1.97 之后移除),它重新设计了 CesiumJS 中的场景模型加载、解析、渲染、调度架构,更合理,更强 阅读全文
posted @ 2022-06-30 22:30 岭南灯火 阅读(1734) 评论(8) 推荐(0)
摘要:本篇涉及到的所有接口在公开文档中均无,需要下载 GitHub 上的源码,自己创建私有类的文档。 npm run generateDocumentation -- --private yarn generateDocumentation -- --private pnpm generateDocume 阅读全文
posted @ 2022-05-15 10:31 岭南灯火 阅读(2537) 评论(1) 推荐(1)
摘要:API 回顾 在创建 Viewer 时可以直接指定 影像供给器(ImageryProvider),官方提供了一个非常简单的例子,即离屏例子(搜 offline): new Cesium.Viewer("cesiumContainer", { imageryProvider: new Cesium.T 阅读全文
posted @ 2022-05-09 06:27 岭南灯火 阅读(3500) 评论(0) 推荐(7)
摘要:Cesium DrawCommand [1] 不谈地球 画个三角形0. 前言 Primitive API 是公开的 API 的最底层了,它面向的场景是高性能、可自定义材质着色器(Appearance API + FabricMaterial Specification)、静态三维物体。 尽管如此,Primitive API 仍然封装了大量几何体类、材质类、WebW 阅读全文
posted @ 2022-04-28 17:50 岭南灯火 阅读(4108) 评论(4) 推荐(8)
摘要:回顾 书接上文,Scene.js 模块内的 render 函数会将控制权交给 WebGL,执行 CesiumJS 自己封装的指令对象,画出每一帧来。 模块内的 render 函数首先会更新一批状态信息,譬如帧状态、雾效、Uniform 值、通道状态、三维场景中的环境信息等,然后就开始更新并执行指令, 阅读全文
posted @ 2022-04-11 12:15 岭南灯火 阅读(2148) 评论(0) 推荐(4)
摘要:0. 前置约定 对类的使用,不添加 Cesium 命名空间前缀,例如对于 Viewer,不会写 Cesium.Viewer,默认使用 ESM 格式解构导入类; JavaScript 代码使用最简格式(源码除外),不加分号,不用双引号,少注释,双空格缩进 本系列说明 佛系连载,想到什么写什么。 202 阅读全文
posted @ 2022-04-06 11:23 岭南灯火 阅读(2144) 评论(1) 推荐(2)
摘要:1 问题起因 我使用 vite2 + vanillajs 模板创建 CesiumJS 项目,其中,main.js 是这样的: import { Viewer } from 'cesium' import './style.css' import 'cesium/Source/Widgets/widg 阅读全文
posted @ 2022-02-28 18:55 岭南灯火 阅读(1110) 评论(2) 推荐(0)
摘要:此处介绍的,是 3DTiles 1.0(不含 next),以及 i3s 1.7 1. 相同点 均将三维模型通过转换的手段细碎化,使得局部加载压力降低,渲染性能有了提高的可能性。 均使用树结构这种空间索引类型进行原始模型空间上的分割,允许使用常见的树结构。 二者在树的末梢,又叫叶子节点,也即真正承载三 阅读全文
posted @ 2021-11-16 03:33 岭南灯火 阅读(2353) 评论(2) 推荐(0)
摘要:博客园 @四季留歌 项目工程下载(腾讯微云):点我 缺点:必须安装 cesium 依赖和几个 vite 插件,起项目时略微麻烦,部署 cdn 较麻烦 优点:打包速度起飞,构建后的成果代码网络传输效率最佳 安装依赖 yarn add cesium # 这个是给开发时 vite 的 esbuild 找模 阅读全文
posted @ 2021-08-18 17:30 岭南灯火 阅读(2611) 评论(6) 推荐(1)
摘要:与直接调用官方 API 不同,本例直接使用 Geometry 和 Appearance 类进行构造图形,灵活度较大。 博客园 @四季留歌 1 目的与结果 有如下一个经纬高数组,表示三角形的三个点,逆时针顺序: const coords_geo = [ [112.470, 25.694, 200000 阅读全文
posted @ 2021-08-06 19:22 岭南灯火 阅读(1638) 评论(3) 推荐(0)