首页 / Cesium / 使用示例
3D Tiles 自定义着色器
给瓦片集挂 CustomShader,用节点局部坐标的高度改写材质颜色。
源码与运行效果
着色器入口
fragmentShaderText 里必须实现 fragmentMain,第二个参数是 czm_modelMaterial,改它的 diffuse、roughness 就改写了 PBR 输入。
能拿到什么
fsInput.attributes.positionMC 是模型局部坐标,position 是世界坐标。按局部高度分层不受瓦片位置影响,按世界坐标则可以做城市级的统一渐变。
| 输入 | 含义 | 用途 |
|---|---|---|
positionMC | 模型局部坐标 | 按单体高度分层 |
material.diffuse | 漫反射颜色 | 着色主入口 |
normalEC | 相机空间法线 | 自定义光照 |
CustomShader 编译失败时控制台会打印 GLSL 日志,瓦片会退回原始着色,不会黑屏;调试时先写最小可用的 fragmentMain。