遨游在太空
Blitheli —— 航天 · 技术 · 星辰
-
Cesium 用 BillboardCollection 替换默认 SkyBox 画真实星空
Cesium 默认的天空盒子是六张立方体贴图,看起来像“远方星空”,但其实是贴图像素,很难按星等缩放、按光谱着色,也难和真实赤经赤纬星表对齐。开源演示仓库 [AnotherCesiumSkybox](https://github.com/blitheli/AnotherCesiumSkybox) 关掉默认 SkyBox,改用 `BillboardCollection` 把 NASA Eyes 星表一颗颗画出来,再配合 ICRF→Fixed 惯性锁定,实现「地球在转、星空钉在惯性天球上」的观感。本文面向初学者,按直觉 → 原理 → 本地跑通的顺序说明。
-
glb模型在Cesium中发黑的机理分析
最近在将一款火箭模型(fbx模式)转换为glb(gltf)格式后,在Cesium中加载结果模型看起来全黑,经过分析发现是由于高光的折射率等级(IOR level)默认设置错误(设置为0)导致的,将其设置为0.5即可在Cesium中表现正常。
-
Cesium天空盒子(Skybox)制作(js代码)和显示
在Cesium中,星空背景是通过天空盒子方式(6张图片)来显示的,原生的图片分辨率太低,本项目用于生成天空盒子的6张图片。最终生成的6个图片大小约为500kb(每个),格式为jpg,总共的恒星数目约为1万颗左右,在最终的地球星空背景中,仅出现恒星点,不会出现模糊的效果!
-
使用Jest测试Cesium源码
业务代码常直接引用 Cesium 的 ES6 源码以便调试,但官方 Jasmine Spec 是全量打包后再跑,不便于单独测某一个类。本文介绍在 Node 环境下用 Jest 对 Cesium 源码做单测(不涉及浏览器),并配 Babel 以支持 `import`,以 `Cartesian3` 为例走通配置与断言。
-
Cesium打包入门(gulp与esbuild)
本文针对Cesium源码包的打包工具gulp和esbuild进行了初步探讨,属于入门篇。
-
Cesium中的DataSource和Entity关系
本章梳理 Cesium 中 DataSource 与 Entity 的关系:Entity 是面向业务的高层对象,底层仍落到 Primitive;通过 DataSource 加载的数据最终也以 Entity 形式组织,文中结合示例说明二者分工与使用场景。
-
Cesium中的相机—setView&lookAtTransform
作为相机系列,此处先温习一下前期涉及到Cesium中Camera的两个概念(系列文章可参考我前面发的“Cesium中的相机--”系列)。 ## 回顾 ### 相机的空间位置 Cesium中,世界坐标系就是地球的WGS84系,也即地球固连坐标系(Earth Fiexed),在此坐标中定义相机的位置与观测方位。
-
Cesium中gltf模型的坐标系
Cesium中使用gltf格式的模型,而gltf格式的模型的坐标系在加载到Cesium中后,Cesium会自动变换坐标系。
-
STK/Component/Cesium中的月球坐标系的计算
下图中,已如某飞行器在地球惯性系(ICRS或GCRS或ICRF)中T时刻的位置,那么如何求解此飞行器T时刻在月球坐标系下的位置(速度)?
-
Cesium中通过Primitive显示大量的点以及点的运动
如果想在Cesium中显示一个点,目前有这么几种方法: - Primitive - Entity - czml文件 - GeoJson文件等
-
VSCode实现Cesium的智能提示功能
之前在[“VSC调试Cesium代码及模块功能初探”](https://blog.csdn.net/u011575168/article/details/104401258)介绍了在vs code中如何调试cesium的源代码中的部分函数。目前看来,在整体引入Cesium时就无能为力了。
-
Cesium与STK中的天空盒子(skybox)
天空盒子是计算机图形学中的概念,用于在3D展示中,显示观测者上下左右前后的全景图像。
-
Cesium中的儒略日JulianDate
在天文和卫星轨道计算中,有关儒略日的计算是一个绕不开的话题。本章阐述下Cesium中有关儒略日的处理方法。
-
Cesium中的地球坐标系转换:岁差章动计算(XYs)
从本章开始,介绍下Cesium中有关地球坐标系转换的相关内容。
-
Cesium加载月球WMTS服务
本文的背景知识: 1. 熟悉wmts 2. 熟悉Cesium的加载
-
VSC调试Cesium代码及模块功能初探
本文主要介绍: - 介绍Cesium的新特性-使用ES6 标准的模块,而舍弃了AMD的模块调用方式 - 使用vsc(visual studio code)调试Cesium代码。什么?你还不知道vsc?那赶紧去学吧!
-
使用IIS创建Cesium本地服务器
研究学习Cesium少不了创建本地服务器。创建本地服务器有多种方式:IIS(微软windows系统自带)、Tomcat、Python、NodeJS。后面几种方式的创建请参考之前的博文:[**使用Tomcat架设Cesium本地服务器(含Nodejs,Python方法)**](https://blog.csdn.net/u011575168/article/details/80031663)
-
基于Cesium的火箭发射演示
本文介绍基于 Cesium 实现的网页版火箭飞行演示,以 ULA「火神」火箭为模型展示全过程飞行。文中给出演示链接,并简述场景搭建、模型与轨迹驱动等实现要点,供 Cesium 航天可视化参考。
-
zz: Cesium原理篇:glTF
关键字:Cesium glTF WebGL技术
-
Cesium中的相机—齐次坐标与坐标变换
在前面几个章节中,我们仅仅讨论了两个坐标系之间的坐标转换矩阵,涉及到四元素、方向余弦阵、欧拉旋转等各种表现形式,但并没有涉及到两个坐标系的平移。
-
Cesium中的相机—方向余弦阵
前面在讨论两个不同坐标系之间的转换时都是通过欧拉旋转或者四元素来定义的。今天直接给出方向余弦阵的定义和用途。 ## 方向余弦的定义 方向余弦是指在解析几何里,一个向量的三个方向余弦分别是这向量与三个坐标轴之间的角度的余弦。 如下图中,矢量A与坐标系三个轴$i,j,k$的夹角为$\alpha,\beta,\gamma$,则矢量A的方向余弦就是: $$[\cos(\alpha),\cos(\beta),\cos(\gamma)]$$  ## 方向余弦矩阵 方向余弦矩阵是由两组不同的标准正交基的基底向量之间的方向余弦所形成的矩阵。方向余弦矩阵可以用来表达一组标准正交基与另一组标准正交基之间的关系。 使用$i_b,j_b,k_b$表示直角坐标系$ox_by_bz_b(b系)$的三个坐标轴的基向量,用$i_i,j_i,k_i$表示直角坐标系$ox_iy_iz_i(i系)$的三个坐标轴的基向量,则$i_b,j_b,k_b$(单位向量)分别可用$i_i,j_i,k_i$表示: $$\left\{\begin{m
-
Cesium中的相机—HeadingPitchRoll
在Cesium中,常常使用HeadingPitchRoll三个角度来定义相机坐标系相对某基准坐标系的方位。
-
Cesium中的相机—四元素
有关四元素和矩阵转换的具体定义和过程请参考相关资料,本文直接给出具体的结果。
-
Cesium中的相机—欧拉旋转
在[Cesium中的相机—旋转矩阵](https://blog.csdn.net/u011575168/article/details/82914686)一文中,我们给出了对于绕某个轴旋转的旋转矩阵,并给出了两种旋转方式的区别。
-
Cesium中的相机—旋转矩阵
在学习坐标旋转的时候,一不小心就会把坐标系的旋转和矢量的旋转弄错,这里给出详细的两种旋转过程: ## 两种旋转矩阵的定义 ## 下面仅以绕Z轴旋转为例,给出两种旋转的过程定义。 1. **坐标系旋转,点不变(见下左图)** - 两个坐标系$O-X_AY_AZ_A$和$O-X_BY_BZ_B$初始时重合。 - 点P在原坐标系$O-X_AY_AZ_A$中的坐标分量为$(x,y,z)$; - 若将坐标系$O-X_BY_BZ_B$绕Z轴旋转(右手旋转法则)$\theta$角度,则点P在新的坐标$O-X_BY_BZ_B$中的坐标分量为$({x}',{y}',{z}')$ - 同一个点P在两个坐标系中的坐标分量(列向量的形式)的关系可以由下面旋转矩阵的形式关联: $$\begin{bmatrix} {x}'\\{y}' \\{z}' \end{bmatrix}= \begin{bmatrix} \cos\theta &\sin\theta & 0 \\ -\sin\theta &\cos\theta & 0\\ 0 & 0 &1 \end{bmatrix} \begin{bmatrix} x \\
-
Cesium中的相机—WebGL基础
Cesium是基于Html5 WebGL技术在浏览器中显示三维物体,本文阐述一下WebGL显示三维物体的基本概念。
-
Cesium简介
Cesium 是基于 JavaScript 与 WebGL 的开源三维地球与地图引擎,支持 3D、2D 与 2.5D 哥伦布视图。本文介绍其主要能力(动态时空数据可视化、全球高精度地形、开箱即用的几何与标注)以及官方示例入口,便于快速了解 Cesium 能做什么。
-
Cesium加载GeoServer的WMS(含跨域解决)
本文介绍如何在 Cesium 中加载 GeoServer 发布的 WMS 图层,并给出在 Jetty 环境下解决跨域(CORS)请求的配置思路与示例代码,便于本地联调三维地图与自建地图服务。