Material 通过漫反射、高光、法线、自发光和透明度组件的组合来定义表面外观。
这些值使用名为 Fabric 的 JSON 模式进行指定,该模式在幕后被解析并组装为 GLSL 着色器代码。
有关 Fabric 的更多详细信息,请查看 wiki 页面。
基础材质类型及其均匀变量:
基础材质类型及其均匀变量:
- 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: 网格线之间单元格的透明度值。该值将与 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: 漫反射颜色和透明度。rimColor: 边缘的漫反射颜色和透明度。width: 确定边缘宽度的数字。- Fade
fadeInColor:time处的漫反射颜色和透明度fadeOutColor: 距timemaximumDistance处的漫反射颜色和透明度maximumDistance: 0.0 到 1.0 之间的数字,fadeInColor在此处变为fadeOutColor。值为 0.0 时整个材质颜色为fadeOutColor,值为 1.0 时整个材质颜色为fadeInColorrepeat: 如果淡入淡出应环绕纹理坐标则设为 true。fadeDirection: 包含 x 和 y 值的对象,指定淡入淡出是否应在 x 和 y 方向上进行。time:fadeInColor位置在 0.0 到 1.0 之间包含 x 和 y 值的对象- PolylineArrow
color: 漫反射颜色和透明度。- PolylineDash
color: 线条的颜色。gapColor: 线条中间隙的颜色。dashLength: 虚线长度(像素)。dashPattern: 线条的 16 位点画图案。- PolylineGlow
color: 线条发光的颜色和最大透明度。glowPower: 发光强度,占线条总宽度的百分比(小于 1.0)。taperPower: 锥形效果的强度,占线条总长度的百分比。如果为 1.0 或更高,则不使用锥形效果。- PolylineOutline
color: 线条内部的漫反射颜色和透明度。outlineColor: 轮廓的漫反射颜色和透明度。outlineWidth: 轮廓宽度(像素)。- ElevationContour
color: 等高线的颜色和透明度。spacing: 等高线间距(米)。width: 指定网格线宽度(像素)的数字。- ElevationRamp
image: 用于地形着色的颜色渐变图像。minimumHeight: 渐变的最小高度。maximumHeight: 渐变的最大高度。- SlopeRamp
image: 用于按坡度对地形着色的颜色渐变图像。- AspectRamp
image: 用于按坡向对地形着色的颜色渐变图像。- ElevationBand
heights: 从最低到最高排序的高度图像。colors: 对应高度处的颜色图像。- WaterMask
waterColor: 水域覆盖区域的漫反射颜色和透明度。landColor: 陆地覆盖区域的漫反射颜色和透明度。
| Name | Type | Description | ||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
options |
object |
optional
具有以下属性的对象:
|
Throws:
-
DeveloperError : fabric: 均匀变量具有无效的类型。
-
DeveloperError : fabric: 均匀变量和材质不能共享相同的属性。
-
DeveloperError : fabric: 不能在同一部分中同时包含 source 和 components。
-
DeveloperError : fabric: 属性名称无效。应为 'type'、'materials'、'uniforms'、'components' 或 'source'。
-
DeveloperError : fabric: 属性名称无效。应为 'diffuse'、'specular'、'shininess'、'normal'、'emission' 或 'alpha'。
-
DeveloperError : strict: 着色器源代码未使用字符串。
-
DeveloperError : strict: 着色器源代码未使用均匀变量。
-
DeveloperError : strict: 着色器源代码未使用材质。
- Fabric wiki 页面 了解更多 Fabric 选项的详细信息。
Example:
// 使用 fromType 创建颜色材质:
polygon.material = Cesium.Material.fromType('Color');
polygon.material.uniforms.color = new Cesium.Color(1.0, 1.0, 0.0, 1.0);
// 创建默认材质:
polygon.material = new Cesium.Material();
// 使用完整 Fabric 表示法创建颜色材质:
polygon.material = new Cesium.Material({
fabric: {
type: 'Color',
uniforms: {
color: new Cesium.Color(1.0, 1.0, 0.0, 1.0)
}
}
});
Demo:
See:
Members
获取透明度贴图材质的名称。
获取坡向渐变材质的名称。
获取凹凸贴图层材质的名称。
获取棋盘格材质的名称。
获取颜色材质的名称。
获取或设置默认立方体贴图纹理均匀变量值。
获取或设置默认纹理均匀变量值。
获取漫反射贴图层材质的名称。
获取点状材质的名称。
获取高程带材质的名称。
获取高程等高线材质的名称。
获取高程渐变材质的名称。
获取自发光贴图层材质的名称。
获取淡入淡出材质的名称。
获取网格材质的名称。
获取图像材质的名称。
获取法线贴图层材质的名称。
获取线段箭头材质的名称。
获取线段虚线材质的名称。
获取线段发光材质的名称。
获取线段轮廓材质的名称。
获取边缘光照材质的名称。
获取坡度渐变材质的名称。
获取高光贴图层材质的名称。
获取条纹材质的名称。
获取水域遮罩材质的名称。
获取水材质的名称。
magnificationFilter : TextureMagnificationFilter
应用于此材质纹理的
TextureMagnificationFilter。
-
Default Value:
TextureMagnificationFilter.LINEAR
将子材质名称映射到材质对象。
-
Default Value:
undefined
minificationFilter : TextureMinificationFilter
应用于此材质纹理的
TextureMinificationFilter。
-
Default Value:
TextureMinificationFilter.LINEAR
此材质的 GLSL 着色器源代码。
-
Default Value:
undefined
当为
true 或返回 true 的函数时,
几何体预计将呈现半透明效果。
-
Default Value:
undefined
材质类型。可以是现有类型或新类型。如果未在 fabric 中指定类型,则类型为 GUID。
-
Default Value:
undefined
将均匀变量名称映射到其值。
-
Default Value:
undefined
Methods
static Cesium.Material.fromType(type, uniforms) → Material
使用现有材质类型创建新材质。
简写形式:new Material({fabric : {type : type}});
简写形式:new Material({fabric : {type : type}});
| Name | Type | Description |
|---|---|---|
type |
string | 基础材质类型。 |
uniforms |
object | optional 覆盖默认均匀变量的值。 |
Returns:
新材质对象。
Throws:
-
DeveloperError : 具有该类型的材质不存在。
Example:
const material = Cesium.Material.fromType('Color', {
color: new Cesium.Color(1.0, 0.0, 0.0, 1.0)
});
static Cesium.Material.fromTypeAsync(type, uniforms) → Promise.<Material>
使用现有材质类型创建新材质,并在加载完所有材质资源后返回一个 promise。
| Name | Type | Description |
|---|---|---|
type |
string | 基础材质类型。 |
uniforms |
object | optional 覆盖默认均匀变量的值。 |
Returns:
当所有资源加载完成时,解析为新材质对象的 promise。
Throws:
-
DeveloperError : 具有该类型的材质不存在。
Example:
const material = await Cesium.Material.fromTypeAsync('Image', {
image: '../Images/Cesium_Logo_overlay.png'
});
销毁此对象持有的 WebGL 资源。销毁对象可以确定性地
释放 WebGL 资源,而不是依赖垃圾回收器来销毁此对象。
对象销毁后,不应再使用;调用除
对象销毁后,不应再使用;调用除
isDestroyed 之外的任何函数都将导致 DeveloperError 异常。因此,
如示例所示,将返回值(undefined)赋给该对象。
Throws:
-
DeveloperError : 此对象已被销毁,即调用了 destroy()。
Example:
material = material && material.destroy();
See:
Returns:
如果此对象已被销毁则返回 true;否则返回 false。
See:
获取此材质是否为半透明。
Returns:
如果此材质为半透明则返回
true,否则返回 false。
