Skip to content

综合练习:解释一张会动的地球 ​

完成课程不意味着记住每个 Cesium 类名,而是能解释一个画面从哪里来、为什么这样变化、哪些部分值得相信。最后用合成场完成一次完整检查:标量填色、等值线和风粒子共享地理背景与时间语义,剖面帮助检查垂直关系。

先写下数据契约 ​

选择一个固定种子的拟真合成场,记录网格尺寸、轴顺序、单位、经度周期、缺测策略与生成规则。再准备一个可手算的规则场作对照。拟真纹理负责逼近现实形态,规则场负责指出算法是否正确;二者都不能标成真实观测。

固定色域(color scale range,颜色覆盖的数值范围)和等值级别(contour levels,各条等值线对应的数值)。例如温度范围 −20 到 30°C,等值间隔 5°C;风的 U/V 为 m/s。示例值由你明确选择,不要因为第一帧看起来不够鲜艳就让每一帧任意改变图例。所有显示夸张都应与原始数值分开。

本页嵌入的标量与等值线实验各自运行,可手动设置相同合成场与时间权重比较。下面描述的是把它们扩展为统一应用时的状态与验收设计,包含 Worker 几何交接等进一步实现任务。

一个场,多种颜色EXPERIMENT 07 · CESIUM 1.145.0

一个场,多种颜色

在同一组合成场上切换采样、时间和颜色映射。

在浏览器本地运行 · 无需账号 · 鼠标拖动旋转,滚轮缩放

教学合成数据,不代表真实观测或天气预报。规则场用于验证,拟真形态用于观察复杂结构。 数据说明
查看运行源码

此代码直接读取实际运行的实验模块。按 kind 分支定位当前实验,也可查看数据公式和 GLSL。

读取源码…

沿一次操作追踪整个系统 ​

从数据时刻 t0 拖到相邻 t1 的无量纲插值权重(interpolation weight)alpha=0.37:CPU 更新共享时间状态,shader 混合标量与矢量分量,粒子继续按自己的积分步长推进。暂停时保留该 alpha;如果提取静态等值线,Worker 结果与 Primitive ready 必须属于同一版本,再替换动态显示。

这里最有价值的问题是“哪个变化需要重建什么”。调透明度通常只改 uniform;换网格拓扑需要几何更新;切到新的数据对可能需要纹理上传;旋转相机主要改变视图。每次都重建全部资源通常是边界设计不清的信号。

做一份有证据的检查 ​

在赤道、日期线、两极和区域边缘比较 CPU 与 GPU 采样;缺测区不应生成极端颜色或跨全球线段。旋转到背面检查地球遮挡,斜视检查贴合与透明。分别记录首次进入、稳态播放、暂停交接和重复进出的行为,而不是只截一个最佳视角。

网络检查关注 Worker、纹理与字体是否真实成功加载,错误状态有没有清楚提示。静态部署之后再次验证资源路径:开发服务能工作的相对路径,不保证在公开子路径或独立实验页中也正确。

看见等值线EXPERIMENT 08 · CESIUM 1.145.0

看见等值线

调整 level 和线宽,比较数值场与屏幕上的线。

在浏览器本地运行 · 无需账号 · 鼠标拖动旋转,滚轮缩放

教学合成数据,不代表真实观测或天气预报。规则场用于验证,拟真形态用于观察复杂结构。 数据说明
查看运行源码

此代码直接读取实际运行的实验模块。按 kind 分支定位当前实验,也可查看数据公式和 GLSL。

读取源码…

综合观察任务 ​

你遇到三个现象:暂停后线条跳到下一帧;日期线出现长直线;进入页面十次后明显变慢。分别给出第一项检查,不要立即更换渲染框架。再用一句话解释为什么这套画面不能证明模拟具有气象预测能力。

展开答案

暂停跳帧先核对 alpha 与静态结果的版本;日期线长线先查周期拓扑与经度展开;重复进入变慢先查 Viewer、Worker、事件和 GPU 资源的销毁。渲染系统验证的是数据如何被解释和显示,合成数据的逼真形态没有提供物理模型、同化或独立预报检验。

能定位问题所属层次,保留最小复现并说明测量边界,就已经建立了继续阅读源码和处理真实项目的基础。以后遇到 3D Tiles、地形或更大的体场,也沿着“数据契约—坐标—采样—命令—验收”这条链逐项检查。

阅读依据:Cesium 1.145 Scene 源码、Cesium 官方 Sandcastle。

气象学 · 数学基础 · 地理可视化