材質通過漫反射,鏡面反射,法線,發射和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:
獲取此材質是否為半透明。