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