深色模式
剖面、体数据与体渲染
几张半透明压力面不是连续三维体场。剖面(cross-section)先选择一条路径检查垂直结构;体渲染(volume rendering)则沿屏幕射线积累空间中的颜色与衰减。二者都依赖足够的数据和明确的插值假设,不能凭视觉外形补出缺失的物理信息。
高度含义见地球与高度,采样中间层见采样与插值,沿射线累积的离散思路可配合数值积分阅读。
从路径到垂直剖面
给定 A、B,经椭球测地线(ellipsoidal geodesic)按距离采样水平位置 P(s),s 是从 A 出发的沿线距离,单位为米。在每个位置、每个已有压力层采样温度、风和位势高度,组成 value(s,p)。二维图横轴是距离,纵轴可用压力 p 或对数压力(log-pressure);压力可用 hPa,1 hPa=100 Pa,它不是高度的米;三维幕墙则把对应地理位置与显示高度转换为 ECEF,连接成三角网格。
若只有 850、500、200 hPa,可显示三个真实层;若构造中间层,应声明假设。例如在两个压力 p0、p1 之间使用对数压力插值,三者必须用相同单位且为正数,p0 与 p1 不相等。权重 w 为:
text
w = log(p/p0) / log(p1/p0)
f(p) = (1-w) × f0 + w × f1这里 log 是自然对数(natural logarithm);对无量纲压力比取对数,w 也没有单位。它不证明层间存在真实细节。位势高度也不能无条件等同椭球高;教学近似与显示夸张必须单独标记。剖面里的 U/V 可投影为沿路径和横路径分量,但没有垂直速度时,不能画出声称真实的垂直运动箭头。
当前实验直接采样合成三维场 f(x,y,z) 的定纬剖面,x、y、z 是 0–1 的无量纲参数,将 z 对应为教学高度 h_data=12*z km。显示椭球高为 h_display=1 km+E*h_data,E 是无量纲夸张倍数,额外 1 km 是显示偏移。移动切面会重新采样;调整 E 只拉伸几何。它用高度坐标演示剖面机制;上面的压力层和测地线路径是推广到大气数据时需要采用的建模步骤。
打开一个剖面
切开合成大气场,观察高度与剖面位置。
在浏览器本地运行 · 无需账号 · 鼠标拖动旋转,滚轮缩放
教学合成数据,不代表真实观测或天气预报。规则场用于验证,拟真形态用于观察复杂结构。 数据说明
查看运行源码
此代码直接读取实际运行的实验模块。按 kind 分支定位当前实验,也可查看数据公式和 GLSL。
读取源码…体数据如何变成图像
规则三维数组可存入三维纹理(3D texture),或排列为二维切片图集;体素(voxel)是三维数据中的一个单元,采样需建立世界位置到体素坐标的转换。射线步进(ray marching)先求射线进入与离开体边界的位置,再按步长 Δs 采样,利用传递函数(transfer function)把标量映射为颜色 c 和消光系数(extinction coefficient)σ。若步长 Δs 用米,σ 就用 1/m;二者乘积无量纲。下面采用简化的无散射发射—吸收模型(emission–absorption model),不是完整的云或大气光传输求解。
text
T = 1; C = 0
对每个样本:
alpha = 1 - exp(-sigma × deltaS)
C += T × alpha × c
T *= 1 - alpha
最终颜色 = C + T × 背景T 是剩余透射率(transmittance),从 1 开始;alpha 是每小段的不透明度,二者都没有单位。exp(x) 是指数函数(exponential function);σ 非负时,exp(−σΔs) 表示该段剩余的透射比例。C 和 c 是 RGB 向量,累加式逐分量计算。T 接近零时可提前终止;遇到不透明地球深度时也应停止。步长变小却保持每样本 alpha 不变,会让体越来越不透明,因此透明度必须与采样距离一致。更细步长降低离散误差,同时增加采样与带宽成本。
切片、等值面和体渲染各自回答什么
切片保留指定平面上的读数,等值面(isosurface)提取满足阈值的边界,体渲染综合沿射线的信息。体渲染很适合观察整体结构,却不总便于精确读值。薄锋面需要足够采样;缺测区不能当低值透明区混过去。本页实际实验演示合成剖面,体渲染提供算法推导,不把剖面实验冒充完整体渲染器。
观察任务
先移动切面,再改变高度夸张,区分标量结构变化与几何拉伸。进一步思考:只有三个压力层时,增加 100 个中间绘制层是否获得了更高的科学分辨率?把 ray marching 步长减半但 alpha 不变,为什么画面会变浓?
展开答案
新增层只是所选模型的插值,不增加独立信息。同一路径的样本数翻倍,每次又乘相同的透射比例,最终 T 变小;应按距离转换消光或修正每样本不透明度。
阅读依据:Cesium 1.145 EllipsoidGeodesic、NVIDIA GPU Gems:Volume Rendering Techniques。