材料通过漫反射、镜面反射、法线、发射和 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
包含以下属性的对象:
|
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: 着色器源未使用材料。
- Fabric wiki page 以获取更详细的 Fabric 选项。
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
获取 alpha 贴图材料的名称。
获取方向渐变材料的名称。
获取凹凸贴图材料的名称。
获取棋盘材料的名称。
获取颜色材料的名称。
获取或设置默认立方体贴图纹理 uniform 值。
获取或设置默认纹理 uniform 值。
获取漫反射贴图材料的名称。
获取点材料的名称。
获取高程带材料的名称。
获取高程等高线材料的名称。
获取高程等高线材料的名称。
获取发光贴图材料的名称。
获取淡化材料的名称。
获取网格材料的名称。
获取图像材料的名称。
获取法线贴图材料的名称。
获取折线箭头材料的名称。
获取折线发光材料的名称。
获取折线发光材料的名称。
获取折线轮廓材料的名称。
获取边缘光照材料的名称。
获取坡度渐变材料的名称。
获取镜面反射贴图材料的名称。
获取条纹材料的名称。
获取水面遮罩材料的名称。
获取水材料的名称。
将子材料名称映射到材料对象。
-
Default Value:
undefined
此材料的 glsl 着色器源代码。
-
Default Value:
undefined
当
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}});
简写为:new Material({fabric : {type : type}});
| Name | Type | Description |
|---|---|---|
type |
string | 基础材料类型。 |
uniforms |
object | optional 对默认 uniforms 的覆盖。 |
Returns:
新的材料对象。
Throws:
-
DeveloperError : 指定类型的材料不存在。
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:
-
DeveloperError : 此对象已被销毁,即已调用 destroy()。
Example:
material = material && material.destroy();
See:
Returns:
如果该对象已被销毁,则返回 true;否则返回 false。
See:
获取该材料是否为半透明。
Returns:
true 如果该材料是半透明的,false 否则。
