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 就能让"公寓黄、高楼青、其余白",城市秒变彩虹。

相关推荐
Jmyd01239 小时前
用 Web VR 引擎搭建 3D 虚拟展厅:从素材上云到多端实时渲染的完整数据链路
前端·3d·vr·三维数字化
Zldaisy3d11 小时前
北京理工大学 l 金属激光增材制造在线监测技术研究进展
数码相机·3d·制造
大圣编蚕11 小时前
OpenGL ES 教程:从零开始掌握 3D 渲染
大数据·elasticsearch·3d
足球中国16 小时前
3D STEP文件编程
3d
时空节拍AI数字人16 小时前
数字文旅补贴来了,景区申报要注意什么?
大数据·人工智能·百度·3d·ai·架构·aigc
Martina_032116 小时前
AI生成3D模型导入后只剩一个大网格?用6步完成微缩场景拆分与优化
人工智能·游戏·数学建模·3d·ai·自然语言处理·aigc
数字新视界17 小时前
国产信创动环监控系统的未来趋势分析
物联网·3d·数字孪生·三维可视化·数据可视化
星恒随风19 小时前
Linux基础IO万字详解:从文件描述符fd到重定向、FILE缓冲机制及MiniShell升级
linux·运维·笔记·学习·状态模式
成都渲染101云渲染66661 天前
云渲染怎么用?从项目准备到提交出图,3ds Max、VRay、UE5 实用教程
3d·ue5
我才是银古2 天前
大坐标、镜像与弦高:.NET CSG 库的工程笔记
3d·cad·csg