首页 / Cesium / API 文档
Material
先看结论
表面的着色规则:图片、条纹、水波或自己写的 GLSL。 多边形、墙体、模型外观都通过它换装。
new Cesium.Material({ fabric, translucent, minificationFilter, magnificationFilter })
构造参数
| 参数 | 类型 | 默认 | 说明 |
|---|---|---|---|
fabric | object | 必填 | 材质描述,至少含 type,可带 uniforms 与自定义 source |
translucent | boolean | true | 是否按半透明绘制 |
minificationFilter | TextureMinificationFilter | LINEAR | 缩小时的纹理采样方式 |
magnificationFilter | TextureMagnificationFilter | LINEAR | 放大时的纹理采样方式 |
常用内置类型
| type | 主要 uniform | 用途 |
|---|---|---|
Color | color | 纯色填充 |
Image | image、repeat、color | 贴一张图片或 canvas |
DiffuseMap | image、channels | 光照模型下的漫反射贴图 |
AlphaMap | image、channel | 用灰度图控制透明度 |
NormalMap | image | 法线贴图,做凹凸感 |
Striped | evenColor、oddColor、repeat、offset、orientation | 条纹,常用于管线、走廊 |
Grid | color、cellAlpha、lineCount、lineThickness | 网格面 |
Checkerboard | lightColor、darkColor、repeat | 棋盘格 |
Water | baseWaterColor、specularMap、normalMap、frequency | 水面效果 |
Fade | fadeInColor、fadeOutColor、maximumDistance | 按距离渐隐 |
常用方法
| 方法 | 返回 | 说明 |
|---|---|---|
Material.fromType(type, uniforms) | Material | 用内置类型快速创建,uniforms 可省略 |
destroy() | — | 释放纹理与着色器程序 |
isDestroyed() | boolean | 是否已销毁 |
示例
// 图片材质:贴一张本地 PNG
var imageMat = new Cesium.Material({
fabric: {
type: 'Image',
uniforms: {
image: '/img/roof.png',
repeat: new Cesium.Cartesian2(6, 6),
color: Cesium.Color.WHITE
}
},
translucent: false
});
viewer.entities.add({
polygon: {
hierarchy: Cesium.Cartesian3.fromDegreesArray([
116.380, 39.900, 116.400, 39.900,
116.400, 39.915, 116.380, 39.915
]),
material: imageMat
}
});
// 条纹材质:管道走向一目了然
var stripe = Cesium.Material.fromType('Striped', {
orientation: 0,
evenColor: Cesium.Color.fromCssColorString('#4aa3ff'),
oddColor: Cesium.Color.WHITE,
repeat: 4,
offset: 0
});
viewer.entities.add({
polyline: {
positions: Cesium.Cartesian3.fromDegreesArray([
116.35, 39.90, 116.45, 39.92
]),
width: 12,
material: stripe
}
});
注意事项
Image材质的image支持 URL、canvas 与 Image 元素;canvas 每次重绘后要改uniforms.image才会刷新。- 贴图坐标以多边形范围归一化,长条要素会出现拉伸,需用
repeat调整密度。 - 多边形和墙体在 3D 里要求材质
translucent与实体透明度设置一致,混用会出现排序问题。 - 自定义 GLSL 材质在不同显卡上有精度差异,坐标计算避免依赖过大的绝对数值。
经纬志(2026)。《Material》。https://www.jingweizhi.com/cesium/api/material.html(访问日期 2026-11-03)。