Material

new Cesium.Material(options)

材料通过漫反射、镜面反射、法线、发射和 alpha 组件的组合定义表面外观。 这些值使用称为 Fabric 的 JSON 架构进行指定,该架构在后台被解析并组装成 glsl 着色器代码。 有关 Fabric 的更多详细信息,请查看 wiki page

基础材料类型及其各种参数:
  • Color
    • color: rgba 颜色对象。
  • Image
    • image: 图像的路径。
    • repeat: 包含 x 和 y 值的对象,指定重复图像的次数。
  • DiffuseMap
    • image: 图像的路径。
    • channels: 三字符字符串,包含 r、g、b 和 a 的任意组合,用于选择所需的图像通道。
    • repeat: 包含 x 和 y 值的对象,指定重复图像的次数。
  • AlphaMap
    • image: 图像的路径。
    • channel: 单字符字符串,包含 r、g、b 或 a,用于选择所需的图像通道。
    • repeat: 包含 x 和 y 值的对象,指定重复图像的次数。
  • SpecularMap
    • image: 图像的路径。
    • channel: 单字符字符串,包含 r、g、b 或 a,用于选择所需的图像通道。
    • repeat: 包含 x 和 y 值的对象,指定重复图像的次数。
  • EmissionMap
    • image: 图像的路径。
    • channels: 三字符字符串,包含 r、g、b 和 a 的任意组合,用于选择所需的图像通道。
    • repeat: 包含 x 和 y 值的对象,指定重复图像的次数。
  • BumpMap
    • image: 图像的路径。
    • channel: 单字符字符串,包含 r、g、b 或 a,用于选择所需的图像通道。
    • repeat: 包含 x 和 y 值的对象,指定重复图像的次数。
    • strength: 碰撞强度值,范围在 0.0 到 1.0 之间,0.0 为小碰撞,1.0 为大碰撞。
  • NormalMap
    • image: 图像的路径。
    • channels: 三字符字符串,包含 r、g、b 和 a 的任意组合,用于选择所需的图像通道。
    • repeat: 包含 x 和 y 值的对象,指定重复图像的次数。
    • strength: 碰撞强度值,范围在 0.0 到 1.0 之间,0.0 为小碰撞,1.0 为大碰撞。
  • Grid
    • color: 整个材料的 rgba 颜色对象。
    • cellAlpha: 网格线之间单元格的 alpha 值。将与 color.alpha 相结合。
    • lineCount: 包含 x 和 y 值的对象,分别指定列和行的数量。
    • lineThickness: 包含 x 和 y 值的对象,指定网格线的厚度(以像素为单位,如果可用)。
    • lineOffset: 包含 x 和 y 值的对象,指定网格线的偏移量(范围是 0 到 1)。
  • Stripe
    • horizontal: 布尔值,确定条纹是水平的还是垂直的。
    • evenColor: 条纹的第一个颜色的 rgba 颜色对象。
    • oddColor: 条纹的第二个颜色的 rgba 颜色对象。
    • offset: 控制在图案中开始绘制的点的数字;0.0 表示偶数颜色的开始,1.0 表示奇数颜色的开始,2.0 重新为偶数颜色,任何倍数或分数值位于之间。
    • repeat: 控制条纹的总数,光明和黑暗各占一半。
  • Checkerboard
    • lightColor: 交替亮色的 rgba 颜色对象。
    • darkColor: 交替暗色的 rgba 颜色对象。
    • repeat: 包含 x 和 y 值的对象,分别指定列和行的数量。
  • Dot
    • lightColor: 点颜色的 rgba 颜色对象。
    • darkColor: 背景颜色的 rgba 颜色对象。
    • repeat: 包含 x 和 y 值的对象,分别指定点的列和行的数量。
  • Water
    • baseWaterColor: 水的基本 rgba 颜色对象。
    • blendColor: 用于从水域过渡到非水域区域的 rgba 颜色对象。
    • specularMap: 单通道纹理,用于指示水域区域。
    • normalMap: 用于水面法线扰动的法线图。
    • frequency: 控制波浪数量的数字。
    • animationSpeed: 控制水面动画速度的数字。
    • amplitude: 控制水波振幅的数字。
    • specularIntensity: 控制镜面反射强度的数字。
  • RimLighting
    • color: 漫反射颜色和 alpha。
    • rimColor: 边缘的漫反射颜色和 alpha。
    • width: 确定边缘宽度的数字。
  • Fade
    • fadeInColor: 在 time 时的漫反射颜色和 alpha。
    • fadeOutColor: 在 maximumDistance 处的漫反射颜色和 alpha,相对 time
    • maximumDistance: 数字,范围在 0.0 到 1.0 之间,表示 fadeInColor 变为 fadeOutColor 的位置。值为 0.0 使整个材料的颜色为 fadeOutColor,而值为 1.0 则使整个材料的颜色为 fadeInColor
    • repeat: 如果淡化应环绕纹理坐标,则为 true。
    • fadeDirection: 包含 x 和 y 值的对象,指定淡化是否应在 x 和 y 方向上进行。
    • time: 包含 0.0 到 1.0 之间的 x 和 y 值,表示 fadeInColor 的位置。
  • PolylineArrow
    • color: 漫反射颜色和 alpha。
  • PolylineDash
    • color: 线条的颜色。
    • gapColor: 线条中的间隙颜色。
    • dashLength: 虚线长度(以像素为单位)。
    • dashPattern: 线条的 16 位图案。
  • PolylineGlow
    • color: 线条的光晕颜色和最大 alpha。
    • glowPower: 光晕强度,相对于总线宽的百分比(小于 1.0)。
    • taperPower: 收缩效果的强度,相对于总线长的百分比。如果为 1.0 或更高,则不使用收缩效果。
  • PolylineOutline
    • color: 线条内部的漫反射颜色和 alpha。
    • outlineColor: 边框的漫反射颜色和 alpha。
    • outlineWidth: 边框的宽度(以像素为单位)。
  • ElevationContour
    • color: 等高线的颜色和 alpha。
    • spacing: 等高线在米单位下的间距。
    • width: 指定网格线宽度的数字,以像素为单位。
  • ElevationRamp
    • image: 用于着色地形的颜色渐变图像。
    • minimumHeight: 渐变的最小高度。
    • maximumHeight: 渐变的最大高度。
  • SlopeRamp
    • image: 用于根据坡度为地形着色的颜色渐变图像。
  • AspectRamp
    • image: 用于根据朝向为地形着色的颜色渐变图像。
  • ElevationBand
    • heights: 从最低到最高的高度图像。
    • colors: 在相应高度下的颜色图像。
  • WaterMask
    • waterColor: 覆盖水域的漫反射颜色和 alpha。
    • landColor: 覆盖陆地的漫反射颜色和 alpha。
Name Type Description
options object optional 包含以下属性的对象:
Name Type Default Description
strict boolean false optional 对通常被忽略的问题(包括未使用的 uniforms 或材料)抛出错误。
translucent boolean | function true optionaltrue 或返回 true 的函数时,期望使用此材料的几何图形呈现出半透明效果。
minificationFilter TextureMinificationFilter TextureMinificationFilter.LINEAR optional 要应用于此材料纹理的 TextureMinificationFilter
magnificationFilter TextureMagnificationFilter TextureMagnificationFilter.LINEAR optional 要应用于此材料纹理的 TextureMagnificationFilter
fabric object 生成材料所使用的 Fabric JSON。
Throws:
  • DeveloperError : fabric: uniform 的类型无效。
  • DeveloperError : fabric: uniforms 和材料不能共享相同的属性。
  • DeveloperError : fabric: 不能在同一部分中同时包含源和组件。
  • DeveloperError : fabric: 属性名无效。 应为 'type'、'materials'、'uniforms'、'components' 或 'source'。
  • DeveloperError : fabric: 属性名无效。 应为 'diffuse'、'specular'、'shininess'、'normal'、'emission' 或 'alpha'。
  • DeveloperError : strict: 着色器源未使用字符串。
  • DeveloperError : strict: 着色器源未使用 uniform。
  • DeveloperError : strict: 着色器源未使用材料。
Example:
// Create a color material with fromType:
polygon.material = Cesium.Material.fromType('Color');
polygon.material.uniforms.color = new Cesium.Color(1.0, 1.0, 0.0, 1.0);

// Create the default material:
polygon.material = new Cesium.Material();

// Create a color material with full Fabric notation:
polygon.material = new Cesium.Material({
  fabric: {
    type: 'Color',
    uniforms: {
      color: new Cesium.Color(1.0, 1.0, 0.0, 1.0)
    }
  }
});
Demo:
See:

Members

static readonly Cesium.Material.AlphaMapType : string

获取 alpha 贴图材料的名称。

static readonly Cesium.Material.AspectRampMaterialType : string

获取方向渐变材料的名称。

static readonly Cesium.Material.BumpMapType : string

获取凹凸贴图材料的名称。

static readonly Cesium.Material.CheckerboardType : string

获取棋盘材料的名称。

static readonly Cesium.Material.ColorType : string

获取颜色材料的名称。

static Cesium.Material.DefaultCubeMapId : string

获取或设置默认立方体贴图纹理 uniform 值。

static Cesium.Material.DefaultImageId : string

获取或设置默认纹理 uniform 值。

static readonly Cesium.Material.DiffuseMapType : string

获取漫反射贴图材料的名称。

static readonly Cesium.Material.DotType : string

获取点材料的名称。

static readonly Cesium.Material.ElevationBandType : string

获取高程带材料的名称。

static readonly Cesium.Material.ElevationContourType : string

获取高程等高线材料的名称。

static readonly Cesium.Material.ElevationRampType : string

获取高程等高线材料的名称。

static readonly Cesium.Material.EmissionMapType : string

获取发光贴图材料的名称。

static readonly Cesium.Material.FadeType : string

获取淡化材料的名称。

static readonly Cesium.Material.GridType : string

获取网格材料的名称。

static readonly Cesium.Material.ImageType : string

获取图像材料的名称。

static readonly Cesium.Material.NormalMapType : string

获取法线贴图材料的名称。

static readonly Cesium.Material.PolylineArrowType : string

获取折线箭头材料的名称。

static readonly Cesium.Material.PolylineDashType : string

获取折线发光材料的名称。

static readonly Cesium.Material.PolylineGlowType : string

获取折线发光材料的名称。

static readonly Cesium.Material.PolylineOutlineType : string

获取折线轮廓材料的名称。

static readonly Cesium.Material.RimLightingType : string

获取边缘光照材料的名称。

static readonly Cesium.Material.SlopeRampMaterialType : string

获取坡度渐变材料的名称。

static readonly Cesium.Material.SpecularMapType : string

获取镜面反射贴图材料的名称。

static readonly Cesium.Material.StripeType : string

获取条纹材料的名称。

static readonly Cesium.Material.WaterMaskType : string

获取水面遮罩材料的名称。

static readonly Cesium.Material.WaterType : string

获取水材料的名称。
将子材料名称映射到材料对象。
Default Value: undefined

shaderSource : string

此材料的 glsl 着色器源代码。
Default Value: undefined

translucent : boolean|function

true 或返回 true 的函数时, 期望几何体呈现出半透明效果。
Default Value: undefined
材料类型。可以是现有类型或新类型。如果在 fabric 中未指定类型,则类型为 GUID。
Default Value: undefined
将 uniform 名称映射到它们的值。
Default Value: undefined

Methods

static Cesium.Material.fromType(type, uniforms)Material

使用现有材料类型创建新材料。

简写为:new Material({fabric : {type : type}});
Name Type Description
type string 基础材料类型。
uniforms object optional 对默认 uniforms 的覆盖。
Returns:
新的材料对象。
Throws:
Example:
const material = Cesium.Material.fromType('Color', {
  color: new Cesium.Color(1.0, 0.0, 0.0, 1.0)
});
销毁此对象持有的 WebGL 资源。销毁对象可以实现确定性释放 WebGL 资源, 而不是依赖垃圾回收器来销毁此对象。

一旦对象被销毁,就不应再使用;调用除 isDestroyed 以外的任何函数将导致 DeveloperError 异常。 因此,请将返回值(undefined)赋值给对象,如示例中所示。
Throws:
Example:
material = material && material.destroy();
See:

isDestroyed()boolean

如果该对象已被销毁,则返回 true;否则返回 false。

如果该对象已被销毁,则不应使用;调用除 isDestroyed 以外的任何函数将导致 DeveloperError 异常。
Returns:
如果该对象已被销毁,则返回 true;否则返回 false。
See:

isTranslucent()boolean

获取该材料是否为半透明。
Returns:
true 如果该材料是半透明的,false 否则。
需要帮助?获得答案的最快方法是来自社区和团队 Cesium Forum.