材质通过漫反射,镜面反射,法线,发射和alpha分量的组合定义表面外观。这些值是使用称为Fabric的JSON模式指定的,该模式被解析并组装为幕后的glsl着色器代码。
基础材料类型及其结构:
new Material(options)
基础材料类型及其结构:
- Color
-
color
:RGB颜色对象。 - 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
:控制波浪数的数字。 -
normalMap
:水正常扰动的法线贴图。 -
animationSpeed
:控制动画的动画速度的数字 -
amplitude
:控制水波振幅的数字。 -
specularIntensity
:控制镜面反射强度的数字。 - RimLighting
-
color
:漫反射颜色和alpha。 -
rimColor
:漫反射颜色和边框的Alpha。 -
width
:确定边框宽度的数字。 - Fade
-
fadeInColor
:漫反射颜色和time
-
fadeOutColor
处的alpha:从time
-
maximumDistance
的maximumDistance
处扩散颜色和alpha处:fadeInColor
变为0.0到1.0之间的数字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
:用于按纵横比对地形进行着色的色带图像。
Parameters:
options
(Object)
Name | Description |
---|---|
options.strict
Boolean
default false
|
对于通常会被忽略的问题,包括未使用的结构或材料,抛出错误。 |
options.translucent
(Boolean | function)
default true
|
当true 或返回true 的函数时,具有此材质的几何体将显示为半透明。
|
options.fabric
Object
|
用于生成材料的结构json。 |
Example
// Create a color material with fromType:
polygon.material = bmgl.Material.fromType('Color');
polygon.material.uniforms.color = new bmgl.Color(1.0, 1.0, 0.0, 1.0);
// Create the default material:
polygon.material = new bmgl.Material();
// Create a color material with full Fabric notation:
polygon.material = new bmgl.Material({
fabric : {
type : 'Color',
uniforms : {
color : new bmgl.Color(1.0, 1.0, 0.0, 1.0)
}
}
});
Throws
-
DeveloperError : 织物:结构的类型无效。
-
DeveloperError : 面料:结构和面料不能共用。
-
DeveloperError : 结构:不能在同一节中包含源和组件。
-
DeveloperError : 结构:属性名无效。它应该是“类型”、“材料”、“结构”、“组件”或“来源”。
-
DeveloperError : 结构:属性名无效。它应该是“漫反射”、“镜面反射”、“光泽”、“正常”、“发射”或“阿尔法”。
-
DeveloperError : 严格:明暗器源不使用字符串。
-
DeveloperError : 严格:明暗器源不使用统一。
-
DeveloperError : 严格:明暗器源不使用材质。
Members
(static, readonly) AlphaMapType : String
获取alpha映射材质的名称。
(static, readonly) AspectRampMaterialType : String
获取方面渐变材质的名称。
(static, readonly) BumpMapType : String
获取凹凸贴图材质的名称。
(static, readonly) CheckerboardType : String
获取棋盘格材质的名称。
(static, readonly) ColorType : String
获取颜色材质的名称。
(static) DefaultCubeMapId : String
获取或设置默认的多维数据集映射纹理统一值。
(static) DefaultImageId : String
获取或设置默认的纹理均匀值。
(static, readonly) DiffuseMapType : String
获取diffuce映射材质的名称。
(static, readonly) DotType : String
获取点材质的名称。
(static, readonly) ElevationContourType : String
获取立面轮廓材质的名称。
(static, readonly) ElevationRampType : String
获取立面轮廓材质的名称。
(static, readonly) EmissionMapType : String
获取电子地图材质的名称。
(static, readonly) FadeType : String
获取渐变材质的名称。
(static, readonly) GridType : String
获取网格材质的名称。
(static, readonly) ImageType : String
获取图像材质的名称。
(static, readonly) NormalMapType : String
获取普通地图材质的名称。
(static, readonly) PolylineArrowType : String
获取折线箭头材质的名称。
(static, readonly) PolylineDashType : String
获取折线辉光材质的名称。
(static, readonly) PolylineGlowType : String
获取折线辉光材质的名称。
(static, readonly) PolylineOutlineType : String
获取折线轮廓材质的名称。
(static, readonly) RimLightingType : String
获取边缘照明材质的名称。
(static, readonly) SlopeRampMaterialType : String
获取斜面材质的名称。
(static, readonly) SpecularMapType : String
获取镜面反射贴图材质的名称。
(static, readonly) StripeType : String
获取条纹材质的名称。
(static, readonly) WaterType : String
获取水材料的名称。
materials : Object
将子材质名称映射到材质对象。
-
Default Value:
undefined
shaderSource : String
此材质的glsl明暗器源。
-
Default Value:
undefined
translucent : (Boolean|function)
当
true
或返回true
的函数时,几何图形应显示为半透明。
-
Default Value:
undefined
type : String
材料类型。可以是现有类型或新类型。如果结构中未指定类型,则类型为guid。
-
Default Value:
undefined
uniforms : Object
将统一名称映射到它们的值。
-
Default Value:
undefined
Methods
(static) fromType(type, uniforms) → {Material}
使用现有材质类型创建新材质。
缩写:新材料({fabric : {type : type}});
缩写:新材料({fabric : {type : type}});
Parameters:
type
(String)
基础材料类型。
uniforms
(Object)
覆盖默认结构。
Example
var material = bmgl.Material.fromType('Color', {
color : new bmgl.Color(1.0, 0.0, 0.0, 1.0)
});
Throws
-
DeveloperError : 不存在具有该类型的材料。
销毁此对象持有的WebGL资源。销毁对象允许确定地释放WebGL资源,而不是依赖垃圾收集器来销毁此对象。
一旦对象被破坏,就不应使用它;调用除
一旦对象被破坏,就不应使用它;调用除
isDestroyed
以外的任何函数都将导致DeveloperError
异常。因此,将返回值(undefined
)赋给对象,如示例中所述。
Throws
-
DeveloperError : 此对象已被销毁,即调用destroy()。
See:
See:
获取此材质是否为半透明。