Cesium快速入门33:tile3d设置样式

这一节,我们给 3D Tiles 换皮肤------让一栋栋建筑按"类型、高度"自动变色,瞬间把灰白城市变成"彩虹都市"。全程只用官方样式语言,无需写着色器。


一、先看清"建筑长啥样"

打开 Cesium3DTilesInspector 面板,点击任意建筑,Info 里会弹出特征字段:

  • building = apartments / commercial / office

  • cesium#estimatedHeight = 68

    这些字段就是"换皮肤"的判断依据。


二、统一染色:一句话全变黄

复制代码
const osmtile = Cesium.createOsmBuildings();
const osmBuildings = viewer.scene.primitives.add(osmtile);

/* 整片建筑统一刷成黄色 */
osmtile.style = new Cesium.Cesium3DTileStyle({
  show: true,
  color: "color('yellow')",
});

支持三种写法:

  • 颜色名 "yellow"

  • 十六进制 "#FFEB3B"

  • RGBA "rgba(255,255,0,0.5)"


三、按条件变色:公寓黄、高楼青、其余白

官方样式支持 conditions 数组,自上而下匹配,命中即停:

复制代码
osmtile.style = new Cesium.Cesium3DTileStyle({
  show: true,
  color: {
    conditions: [
      // 1. 公寓 = 黄色半透明
      ["${feature['building']} === 'apartments'", "rgba(255, 255, 0, 0.5)"],
      // 2. 估计高度 > 80 米 = 青色半透明
      ["${feature['cesium#estimatedHeight']} > 80", "rgba(2, 255, 255, 0.5)"],
      // 3. 默认 fallback = 白色半透明
      ["true", "rgba(255, 255, 255, 0.2)"],
    ],
  },
});

写规则时记住:

  • 字段名用单引号包裹;

  • 字符串比较用 ===

  • 最后一条必须是 ["true", ...] 作兜底。


四、常用判断字段速查

https://cesium.com/learn/cesiumjs/ref-doc/Cesium3DTileStyle.html?classFilter=3d

字段 含义 示例条件
${feature['building']} 建筑类型 === 'apartments'
${feature['cesium#estimatedHeight']} 估算高度米 > 100
${feature['name']} 名称 === 'Canton Tower'
${feature['addr:country']} 国家 === 'CN'

五、性能提示

  • 条件数组越长越慢,尽量把高概率规则放前面;

  • 只用你需要的字段,多余字段不要写进表达式;

  • 动态修改时直接 osmtile.style = newStyle,无需重建 tileset。


小结

  • 3D Tiles 样式 = Cesium3DTileStyle 对象,支持统一色或条件色。

  • conditions 按顺序匹配,字段名用 ${feature['xxx']} 取值。

  • 会一条 JSON 就能让"公寓黄、高楼青、其余白",城市秒变彩虹。

相关推荐
cyadyx7 分钟前
【Three.js】Three.js 中加载 3D 模型
前端·javascript·3d
AI_AGENT_DEV_AI5 小时前
数字孪生项目的开发
webgl
chaoyuanl5 小时前
悬空玻璃剧场源头厂家选型全解析|270°裸眼3D悬空玻璃剧场投资避坑指南
大数据·人工智能·3d·xr·娱乐·mr
在下胡三汉7 小时前
GLTF vs OBJ vs FBX vs GLB:选择合适的 3D 文件格式,怎么获取下载
3d
fanfan_hongyun8 小时前
Cesium for unity (可加载3dTileset)
3d
鲲穹AI种草8 小时前
家装设计工具记录:多款室内 3D 设计工具能力边界整理
3d·家装设计工具
杀生丸学AI21 小时前
【前馈三维重建】SAF3R:前馈式3D重建Transformer的动态稀疏注意力(加速)
深度学习·3d·transformer
2601_950760791 天前
3D细胞活力检测技术:从传统方法到三维体系的跨越
人工智能·3d·蛋白
牛企老板俱乐部1 天前
广东手板3D打印三大核心产区 采购视角看珠海深圳东莞
3d
supermapsupport1 天前
SuperMap GIS 基础产品 FAQ 集锦(20260807)
webgl·supermap·idesktopx