Material

材质通过漫反射,镜面反射,法线,发射和alpha分量的组合定义表面外观。这些值是使用称为Fabric的JSON模式指定的,该模式被解析并组装为幕后的glsl着色器代码。

基础材料类型及其结构:
  • 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
    • maximumDistancemaximumDistance处扩散颜色和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:用于按纵横比对地形进行着色的色带图像。
new Material(options)
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}});
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
destroy()
销毁此对象持有的WebGL资源。销毁对象允许确定地释放WebGL资源,而不是依赖垃圾收集器来销毁此对象。

一旦对象被破坏,就不应使用它;调用除isDestroyed以外的任何函数都将导致DeveloperError异常。因此,将返回值(undefined)赋给对象,如示例中所述。
Example
material = material && material.destroy();
Throws
See:
isDestroyed() → {Boolean}
如果此对象被破坏,则返回true;否则返回false。

如果此对象被破坏,则不应使用它;调用除isDestroyed以外的任何函数将导致DeveloperError异常。
See:
isTranslucent() → {Boolean}
获取此材质是否为半透明。