经纬志
首页 / Cesium / API 文档

Material

先看结论

表面的着色规则:图片、条纹、水波或自己写的 GLSL。 多边形、墙体、模型外观都通过它换装。

最后验证 2026-11-03 · CesiumJS 1.121 · 更新 2026-10-28 · 引用本文
new Cesium.Material({ fabric, translucent, minificationFilter, magnificationFilter })

构造参数

参数类型默认说明
fabricobject必填材质描述,至少含 type,可带 uniforms 与自定义 source
translucentbooleantrue是否按半透明绘制
minificationFilterTextureMinificationFilterLINEAR缩小时的纹理采样方式
magnificationFilterTextureMagnificationFilterLINEAR放大时的纹理采样方式

常用内置类型

type主要 uniform用途
Colorcolor纯色填充
Imageimage、repeat、color贴一张图片或 canvas
DiffuseMapimage、channels光照模型下的漫反射贴图
AlphaMapimage、channel用灰度图控制透明度
NormalMapimage法线贴图,做凹凸感
StripedevenColor、oddColor、repeat、offset、orientation条纹,常用于管线、走廊
Gridcolor、cellAlpha、lineCount、lineThickness网格面
CheckerboardlightColor、darkColor、repeat棋盘格
WaterbaseWaterColor、specularMap、normalMap、frequency水面效果
FadefadeInColor、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)。