new Cesium.Material(options)
材质是通过漫反射、镜面反射、法线、散射和alpha的组合来定义表面外观。
这些值是使用一个名为Fabric的JSON模式指定的,该模式被解析并组装到glsl着色器代码中。
查看wiki页面了解更多关于Fabric的信息。
基本材质类型和它们的uniforms
基本材质类型和它们的uniforms
- 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之间- NormalMap
image
: 图片路径channels
: 包含r、g、b和a的任意组合的三个字符串,用于选择所需的图像通道。repeat
: 对象,其x和y值指定重复图像的次数。strength
: 凹凸程度值在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
: 条纹的第一种颜色oddColor
: 条纹的第二种颜色offset
: 控制从哪一点开始绘制图案的数字; with 0.0 being the beginning of the even color, 1.0 the beginning of the odd color, 2.0 being the even color again, and any multiple or fractional values being in between.repeat
: 条纹的总数- Checkerboard
lightColor
: 棋盘明亮部分的颜色darkColor
: 棋盘暗淡部分的颜色repeat
: 对象,其x和y值分别指定列和行数。- Dot
lightColor
: 点的颜色darkColor
: 背景颜色repeat
: 对象,其x和y值分别指定圆点的行数和列数。- Water
baseWaterColor
: 水的基础颜色blendColor
: 用于混合从水到非水的地区的颜色specularMap
: 用于表示水域区域的单通道纹理。normalMap
: 水正常扰动的法线贴图。frequency
: 波浪数normalMap
: 水正常扰动的法线贴图。animationSpeed
: 水运动的速度.amplitude
: 水波振幅specularIntensity
: 镜面反射强度。- RimLighting
color
: 扩散颜色和alpha.rimColor
: 边缘的扩散颜色和alpha.width
: 边缘的宽度- Fade
fadeInColor
: diffuse color and alpha attime
fadeOutColor
: diffuse color and alpha atmaximumDistance
fromtime
maximumDistance
: Number between 0.0 and 1.0 where thefadeInColor
becomes thefadeOutColor
. A value of 0.0 gives the entire material a color offadeOutColor
and a value of 1.0 gives the the entire material a color offadeInColor
repeat
: true if the fade should wrap around the texture coodinates.fadeDirection
: Object with x and y values specifying if the fade should be in the x and y directions.time
: Object with x and y values between 0.0 and 1.0 of thefadeInColor
position- PolylineArrow
color
: 扩散的颜色和alpha- PolylineDash
color
: 线的颜色gapColor
: 线的间隙的颜色dashLength
: Dash length in pixels.dashPattern
: The 16 bit stipple pattern for the line..- PolylineGlow
color
: 辉光的颜色和最大的alpha值glowPower
: 辉光的强度taperPower
: 渐变效果的强度。- PolylineOutline
color
: 内部线条的散射颜色和alpha值outlineColor
: 轮廓的散射颜色和alpha值outlineWidth
: 轮廓的宽度- ElevationContour
color
: 等高线的颜色和alphaspacing
: 等高线间距,以米为单位。width
: 线宽,以像素为单位- ElevationRamp
image
: 给地形着色的色带图像。minimumHeight
: 最低高度maximumHeight
: 最高高度- SlopeRamp
image
: 给地形着色的色带图像- AspectRamp
image
: color ramp image to use for color the terrain by aspect.
Name | Type | Description | ||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
options |
Object |
optional
具有下列属性的对象:
|
异常情况:
-
DeveloperError : fabric: uniform 类型无效。
-
DeveloperError : fabric: uniforms 和 materials不能共享同一属性。
-
DeveloperError : fabric: 不能在同一部分中包含源和分量。
-
DeveloperError : fabric: 属性名称无效,必须是 'type', 'materials', 'uniforms', 'components', 或 'source'。
-
DeveloperError : fabric: 属性名称无效,必须是 'diffuse', 'specular', 'shininess', 'normal', 'emission', 或 'alpha'。
-
DeveloperError : strict: 着色器代码不是字符串。
-
DeveloperError : strict: 着色器代码没有使用uniform。
-
DeveloperError : strict: 着色器代码没有使用material。
- Fabric wiki page for a more detailed options of Fabric.
示例:
// 用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:
参考:
成员变量
获取alpha贴图材质的名称。
获取长宽比渐变材质的名称。
获取凹凸贴图材质的名称。
获取棋盘材质的名称。
获取颜色材质的名称。
获取或者设置默认立方体贴图的uniform值。
获取或者设置默认纹理的uniform值.
获取漫射贴图材质的名称。
获取点材质的名称。
获取等高线材质的名称。
获取高度分层设色材质的名称。
获取emmision map 材质的名称。
获取淡入淡出材质的名称。
获取格网材质的名称。
获取图像材质的名称。
获取法线贴图材质的名称。
获取箭头折线材质的名称。
获取折线辉光材料的名称。
获取辉光折线材质的名称。
获取轮廓线材质的名称。
获取边缘发光材质的名称。
获取坡度材质的名称。
获取高光贴图材质的名称。
获取条纹材质的名称。
获取水面材质的名称。
materials : Object
将子材质名称映射到材质对象.
-
Default Value:
undefined
shaderSource : String
该材质的glsl着色器代码
-
Default Value:
undefined
translucent : Boolean|function
当
true
时,几何图形将显示为半透明。
-
Default Value:
undefined
type : String
材质类型。可以是现有类型,也可以是新类型。如果在fabric中没有指定类型,则类型为GUID。
-
Default Value:
undefined
uniforms : Object
将uniform名称映射到它们的值。
-
Default Value:
undefined
内置方法
使用现有材质类型创建材质。
Shorthand for: new Material({fabric : {type : type}});
Shorthand for: new Material({fabric : {type : type}});
Name | Type | Description |
---|---|---|
type |
String | 基本材质类型。 |
uniforms |
Object | optional 重写默认的uniforms. |
返回值:
创建的材质对象
异常情况:
-
DeveloperError : 这种类型的材质不存在。
示例:
var material = Cesium.Material.fromType('Color', {
color : new Cesium.Color(1.0, 0.0, 0.0, 1.0)
});
destroy()
销毁此集合中所有图元持有的WebGL资源。
异常情况:
-
DeveloperError : 这个对象已经被销毁。
示例:
material = material && material.destroy();
参考:
返回值:
如果该对象没被销毁,返回false。
参考:
获取此材质是否为半透明。
返回值:
如果是半透明返回true。