随笔分类 -  开源GIS/Cesium源码

源代码解读笔记
摘要:1. 由世界坐标转模型坐标 顶点着色器: attribute vec3 position3DHigh; attribute vec3 position3DLow; attribute vec3 normal; attribute vec2 st; attribute float batchId; v 阅读全文
posted @ 2020-12-30 16:11 岭南灯火 阅读(6070) 评论(6) 推荐(2) 编辑
摘要:对于一个 MaterialAppearance 对象来说,它的顶点着色器代码默认为: attribute vec3 position3DHigh; attribute vec3 position3DLow; attribute vec3 normal; attribute vec2 st; attr 阅读全文
posted @ 2020-12-16 01:41 岭南灯火 阅读(5357) 评论(14) 推荐(6) 编辑
摘要:fabric 材质定义:着色器实践 1. 示例代码 贴到沙盒里就可以运行: var viewer = new Cesium.Viewer("cesiumContainer"); viewer.scene.globe.depthTestAgainstTerrain = true; viewer.cam 阅读全文
posted @ 2020-12-15 16:46 岭南灯火 阅读(7488) 评论(0) 推荐(6) 编辑
摘要:开门见山:tileset.modelMatrix 这个属性可以在数据本身的基础上再进行坐标变换,不熟悉转换矩阵各个部分的含义的可参考图形学有关资料。 此文不一定是最佳算法,但是提供一种思路。转载请注明出处 全网@秋意正寒 。 平移思路 获取当前瓦片数据集的包裹范围(boundingSphere)中心 阅读全文
posted @ 2020-11-30 01:55 岭南灯火 阅读(9510) 评论(7) 推荐(5) 编辑
摘要:1. 简介 Fabric 是 Cesium 中用于描述材质的一种 JSON 规定。 材质表现了多边形、折线、椭圆等形状的外观。 使用 Fabric 和 GLSL,可以完全自定义材质。 通过几何对象的 material 属性可以创建材质,这个属性是 Cesium.Material 对象。 可以这么用: 阅读全文
posted @ 2020-11-30 01:43 岭南灯火 阅读(2943) 评论(1) 推荐(1) 编辑
摘要:导语 Cesium 的渲染引擎是基于高精度渲染设计的。不过,就算是以米作为单位的常规游戏引擎,也会遇到精度问题,例如 z值冲突 和 抖动。 z值冲突是指两个三角形接近时,有重叠的像素,但是深度缓存的精度不足以确定哪一个三角形更接近相机,当视图发生变化时,这些重叠像素会闪烁。 之所以会发生 z值冲突, 阅读全文
posted @ 2020-11-30 01:35 岭南灯火 阅读(2458) 评论(0) 推荐(2) 编辑
摘要:官方虽然说文章已过时,且说 2018 年会更新文章的代码,但是咕咕咕到了现在都没更新。 Geometry and Appearances · CesiumGS/cesium Wiki (github.com) 创建自定义几何图形和外观 Cesium支持许多常见的图形,开箱即用。但是,有时候这些预置的 阅读全文
posted @ 2020-11-30 01:21 岭南灯火 阅读(7390) 评论(0) 推荐(5) 编辑
摘要:自定义几何形状和外观 翻译自官方文档。 这篇教程介绍的是 Primitive API 有关的资料,适合高级用户。想快速绘制各种形状,建议参考 Entity API。 1. 几何概述 Cesium 可以创建 Entity API 创建各种几何图形,例如绘制一个矩形: viewer.entities.a 阅读全文
posted @ 2020-11-30 01:16 岭南灯火 阅读(4449) 评论(0) 推荐(4) 编辑
摘要:Graphics Tech in Cesium - Vertex Compression | cesium.com 顶点压缩概述 计算机图形学中一种常见的作法是打包、压缩顶点属性。它增加了顶点着色器中的代码,达到减小内存占用的效果,同时也减少了数据通过总线从CPU到GPU的时间,降低了GPU内存带宽 阅读全文
posted @ 2020-11-23 01:28 岭南灯火 阅读(2271) 评论(0) 推荐(3) 编辑
摘要:翻译有误请指出,规范性转载。@秋意正寒。 原文出处:https://cesium.com/blog/2015/05/26/graphics-tech-in-cesium-stack Cesium 和普通的图形引擎没什么区别,但是当对地球上事务抽象的逻辑层越来越多后,Cesium 中的类设计就越来越针 阅读全文
posted @ 2020-11-23 00:06 岭南灯火 阅读(2353) 评论(0) 推荐(1) 编辑
摘要:翻译有误请指出,规范性转载。@秋意正寒。 原文出处Graphics Tech in Cesium - Renderer Architecture | cesium.com Cesium 是一个 WebGL 引擎,自 WebGL 1.0 在 2011 年 3 月发布后,官方就开始开发了。 官方将 Ce 阅读全文
posted @ 2020-11-23 00:02 岭南灯火 阅读(2925) 评论(0) 推荐(1) 编辑
摘要:版权没有,请尊重翻译成果,有翻译错误请指出,规范性转载。@秋意正寒 本文通过解读 Scene.render 方法,观察 WebGL 在 Cesium 1.9 中如何渲染一帧。读者可以在 Scene.render 方法处打断点进入调试。 由于 Cesium 专注于可视化地理空间内容,因此多光源的场景并 阅读全文
posted @ 2020-11-23 00:00 岭南灯火 阅读(4489) 评论(1) 推荐(5) 编辑
摘要:版权没有,翻版不究。 这么做貌似有点不太道德,不过既然官方都开源了,本着学习的目的去研究研究源码未尝不可。 虽然百度上有大把通过 css 手段隐藏商标的代码,但是终究差几分意思。遂决定自己撸。 众所周知,Cesium 每个月的分发包(或叫发布包、预编译包等)内都有一个 Source 目录,里头是源代 阅读全文
posted @ 2020-11-16 01:10 岭南灯火 阅读(1814) 评论(2) 推荐(0) 编辑
摘要:转载请注明出处。全网@秋意正寒 1. 瓦片的调度 查阅 tileset.json 的规范,有一个属性是 refine,它有两个值:"ADD" 和 "REPLACE"。 还有另一个属性,叫 geometricError,是一个数字。 "ADD" 的含义是,当这一级瓦片显示不够精细时,渲染下一级瓦片,这 阅读全文
posted @ 2020-07-21 20:30 岭南灯火 阅读(8815) 评论(15) 推荐(9) 编辑
摘要:https://github.com/CesiumGS/cesium/blob/master/CHANGES.md 鉴于后续更新会越来越长,故决定分拆,见我的置顶博客。本文终止更新于 1.79.1 版本 1.79.1 发布时间:2021-03-01(北京时间) 问题修复 🔧 修复地形夸大的bug 阅读全文
posted @ 2020-05-02 01:29 岭南灯火 阅读(3325) 评论(1) 推荐(1) 编辑
摘要:四叶小天使! 上承 CesiumWidget实际上和Viewer差不多。以下两句代码用于初始化,效果是差不多的。 实例化Viewer必定会实例化一个CesiumWidget。CesiumWidget实际上代表的是 ,而Viewer除了包括可视区域,还包括各种控件(时间轴、右上角各种按钮、搜索框、时间 阅读全文
posted @ 2020-04-01 01:53 岭南灯火 阅读(2153) 评论(1) 推荐(0) 编辑
摘要:不好意思没有头图了... 1. 源码包和分发包 源码包只有两种方式得到 git clone https://github.com/CesiumGS/cesium.git https://github.com/CesiumGS/cesium/releases ,下载 Source code.zip 即 阅读全文
posted @ 2020-03-30 11:50 岭南灯火 阅读(3603) 评论(0) 推荐(0) 编辑
摘要:我原本想写日记的,但是不太现实。 源码下载 源码可以从源码包和发行包中的Source目录中获取。 Cesium的模块化机制从1.63版本开始,由原来的RequireJs变为ES6。但有可能是原先设计耦合的问题,内部依旧是ES5实现。 入口:实例化Viewer时到底发生了什么 写Cesium程序时,都 阅读全文
posted @ 2020-03-30 02:39 岭南灯火 阅读(2133) 评论(0) 推荐(2) 编辑