材質(zhì)通過(guò)漫反射,鏡面反射,法線,發(fā)射和alpha分量的組合定義表面外觀。這些值是使用稱為Fabric的JSON模式指定的,該模式被解析并組裝為幕后的glsl著色器代碼。
基礎(chǔ)材料類型及其結(jié)構(gòu):
new Material(options)
基礎(chǔ)材料類型及其結(jié)構(gòu):
- Color
-
color
:RGB顏色對(duì)象。 - Image
-
image
:圖像路徑。 -
repeat
:具有x和y值的對(duì)象,指定重復(fù)圖像的次數(shù)。 - DiffuseMap
-
image
:圖像路徑。 -
channels
:三個(gè)字符串,包含用于選擇的r,g,b和a的任意組合 -
repeat
:具有x和y值的對(duì)象,指定重復(fù)圖像的次數(shù)。 - AlphaMap
-
image
:圖像路徑。 -
channel
:一個(gè)包含r,g,b或a的字符串,用于選擇所需的圖像通道。 -
repeat
:具有x和y值的對(duì)象,指定重復(fù)圖像的次數(shù)。 - SpecularMap
-
image
:路徑 -
channel
:一個(gè)包含r,g,b或a的字符串,用于選擇所需的圖像通道。 -
repeat
:具有x和y值的對(duì)象,指定重復(fù)圖像的次數(shù)。 - EmissionMap
-
image
:路徑 -
channels
:三個(gè)字符串,包含r,g,b和a的任意組合,用于選擇所需的圖像通道。 -
repeat
:具有x和y值的對(duì)象,指定重復(fù)圖像的次數(shù)。 - BumpMap
-
image
:路徑 -
channel
:一個(gè)包含r,g,b或a的字符串,用于選擇所需的圖像通道。 -
repeat
:對(duì)象的x和y值指定重復(fù)圖像的次數(shù)。 -
strength
:凹凸強(qiáng)度值在0.0和1.0之間,其中0.0是小顛簸,而1.0是 - NormalMap
-
image
:圖像路徑。 -
channels
:三個(gè)字符串,包含r的任意組合, g,b和a用于選擇所需的圖像通道。 -
repeat
:具有x和y值的對(duì)象,用于指定重復(fù)圖像的次數(shù)。 -
strength
:凸點(diǎn)強(qiáng)度值在0.0和1.0之間,其中0.0是小凸點(diǎn),而1.0是 - Grid
-
color
:整個(gè)材料的rgba顏色對(duì)象。 -
cellAlpha
:?jiǎn)卧竦腁lpha值網(wǎng)格線之間。這將與color.alpha。 -
lineCount
:具有x和y值的對(duì)象分別指定列數(shù)和行數(shù)。 -
lineThickness
:具有x和y值的對(duì)象指定網(wǎng)格線的粗細(xì)(以像素為單位)。 -
lineOffset
:具有x和y值的對(duì)象,指定網(wǎng)格線的偏移量(范圍為0到1)。 - Stripe
-
horizontal
:確定條帶是水平還是垂直的布爾值。 -
evenColor
:條帶的第一種顏色的rgba顏色對(duì)象。 -
oddColor
:rgba顏色對(duì)象,用于條紋的第二種顏色。 -
offset
:控制開(kāi)始繪制圖案的點(diǎn)的數(shù)字。其中0.0是偶數(shù)顏色的開(kāi)始,1.0是奇數(shù)顏色的開(kāi)始,2.0再次是偶數(shù)顏色,并且介于兩者之間的任何倍數(shù)或小數(shù)值。 -
repeat
:控制總數(shù)的數(shù)字 - Checkerboard
-
lightColor
:棋盤格淺色的rgba顏色對(duì)象。 -
darkColor
:棋盤格深色交替顏色的rgba顏色對(duì)象。 -
repeat
:具有x和y值的對(duì)象,分別指定列數(shù)和行數(shù)。 - Dot
-
lightColor
:用于點(diǎn)色的rgba顏色對(duì)象。 -
darkColor
:用于背景色的rgba顏色對(duì)象。 -
repeat
:具有x和y值的對(duì)象分別指定點(diǎn)的列數(shù)和行數(shù)。 - Water
-
baseWaterColor
:rgba顏色對(duì)象的基色 -
blendColor
:rgba顏色對(duì)象從水到非水區(qū)域混合時(shí)使用。 -
specularMap
:用于指示水區(qū)域的單通道紋理。 -
normalMap
:水法線攝動(dòng)的法線貼圖。 -
frequency
:控制波浪數(shù)的數(shù)字。 -
normalMap
:水正常擾動(dòng)的法線貼圖。 -
animationSpeed
:控制動(dòng)畫的動(dòng)畫速度的數(shù)字 -
amplitude
:控制水波振幅的數(shù)字。 -
specularIntensity
:控制鏡面反射強(qiáng)度的數(shù)字。 - RimLighting
-
color
:漫反射顏色和alpha。 -
rimColor
:漫反射顏色和邊框的Alpha。 -
width
:確定邊框?qū)挾鹊臄?shù)字。 - Fade
-
fadeInColor
:漫反射顏色和time
-
fadeOutColor
處的alpha:從time
-
maximumDistance
的maximumDistance
處擴(kuò)散顏色和alpha處:fadeInColor
變?yōu)?.0到1.0之間的數(shù)字fadeOutColor
。值為0.0會(huì)使整個(gè)材質(zhì)的顏色為fadeOutColor
,值為1.0會(huì)使整個(gè)材質(zhì)的顏色為fadeInColor
-
repeat
:如果淡入淡應(yīng)該環(huán)繞紋理,則為true 。 -
fadeDirection
:具有x和y值的對(duì)象,指定淡出是否應(yīng)在x和y方向上。 -
time
:具有介于0.0和1.0之間的x和y值的對(duì)象fadeInColor
的位置 - PolylineArrow
-
color
:分散顏色和alpha。 - PolylineDash
-
color
:行的顏色。 -
gapColor
:行的間隙的顏色。 -
dashLength
:虛線長(zhǎng)度(以像素為單位)。 -
dashPattern
:該行的16位點(diǎn)畫樣式。. - PolylineGlow
-
color
:該行的輝光的顏色和最大alpha。 -
glowPower
:輝光的強(qiáng)度,占總線寬(小于1.0)的百分比。 -
taperPower
:錐形效果的強(qiáng)度,占總行長(zhǎng)的百分比。如果值為1.0或更高,則不使用錐度效果。 - PolylineOutline
-
color
:在行的內(nèi)部擴(kuò)散顏色和Alpha。 -
outlineColor
:漫反射顏色和輪廓的alpha。 -
outlineWidth
:以像素為單位的輪廓寬度。 - ElevationContour
-
color
:等高線的顏色和alpha。 -
spacing
:等高線的間距,以米為單位。 -
width
:以像素為單位指定網(wǎng)格線寬度的數(shù)字。 - ElevationRamp
-
image
:用于為地形著色的顏色坡道圖像。 -
minimumHeight
:坡道的最小高度。 -
maximumHeight
:坡道的最大高度。 - SlopeRamp
-
image
:用于為坡度著色的彩色坡道圖像。 - AspectRamp
-
image
:用于按縱橫比對(duì)地形進(jìn)行著色的色帶圖像。
Parameters:
options
(Object)
Name | Description |
---|---|
options.strict
Boolean
default false
|
對(duì)于通常會(huì)被忽略的問(wèn)題,包括未使用的結(jié)構(gòu)或材料,拋出錯(cuò)誤。 |
options.translucent
(Boolean | function)
default true
|
當(dāng)true 或返回true 的函數(shù)時(shí),具有此材質(zhì)的幾何體將顯示為半透明。
|
options.fabric
Object
|
用于生成材料的結(jié)構(gòu)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 : 織物:結(jié)構(gòu)的類型無(wú)效。
-
DeveloperError : 面料:結(jié)構(gòu)和面料不能共用。
-
DeveloperError : 結(jié)構(gòu):不能在同一節(jié)中包含源和組件。
-
DeveloperError : 結(jié)構(gòu):屬性名無(wú)效。它應(yīng)該是“類型”、“材料”、“結(jié)構(gòu)”、“組件”或“來(lái)源”。
-
DeveloperError : 結(jié)構(gòu):屬性名無(wú)效。它應(yīng)該是“漫反射”、“鏡面反射”、“光澤”、“正常”、“發(fā)射”或“阿爾法”。
-
DeveloperError : 嚴(yán)格:明暗器源不使用字符串。
-
DeveloperError : 嚴(yán)格:明暗器源不使用統(tǒng)一。
-
DeveloperError : 嚴(yán)格:明暗器源不使用材質(zhì)。
Members
(static, readonly) AlphaMapType : String
獲取alpha映射材質(zhì)的名稱。
(static, readonly) AspectRampMaterialType : String
獲取方面漸變材質(zhì)的名稱。
(static, readonly) BumpMapType : String
獲取凹凸貼圖材質(zhì)的名稱。
(static, readonly) CheckerboardType : String
獲取棋盤格材質(zhì)的名稱。
(static, readonly) ColorType : String
獲取顏色材質(zhì)的名稱。
(static) DefaultCubeMapId : String
獲取或設(shè)置默認(rèn)的多維數(shù)據(jù)集映射紋理統(tǒng)一值。
(static) DefaultImageId : String
獲取或設(shè)置默認(rèn)的紋理均勻值。
(static, readonly) DiffuseMapType : String
獲取diffuce映射材質(zhì)的名稱。
(static, readonly) DotType : String
獲取點(diǎn)材質(zhì)的名稱。
(static, readonly) ElevationContourType : String
獲取立面輪廓材質(zhì)的名稱。
(static, readonly) ElevationRampType : String
獲取立面輪廓材質(zhì)的名稱。
(static, readonly) EmissionMapType : String
獲取電子地圖材質(zhì)的名稱。
(static, readonly) FadeType : String
獲取漸變材質(zhì)的名稱。
(static, readonly) GridType : String
獲取網(wǎng)格材質(zhì)的名稱。
(static, readonly) ImageType : String
獲取圖像材質(zhì)的名稱。
(static, readonly) NormalMapType : String
獲取普通地圖材質(zhì)的名稱。
(static, readonly) PolylineArrowType : String
獲取折線箭頭材質(zhì)的名稱。
(static, readonly) PolylineDashType : String
獲取折線輝光材質(zhì)的名稱。
(static, readonly) PolylineGlowType : String
獲取折線輝光材質(zhì)的名稱。
(static, readonly) PolylineOutlineType : String
獲取折線輪廓材質(zhì)的名稱。
(static, readonly) RimLightingType : String
獲取邊緣照明材質(zhì)的名稱。
(static, readonly) SlopeRampMaterialType : String
獲取斜面材質(zhì)的名稱。
(static, readonly) SpecularMapType : String
獲取鏡面反射貼圖材質(zhì)的名稱。
(static, readonly) StripeType : String
獲取條紋材質(zhì)的名稱。
(static, readonly) WaterType : String
獲取水材料的名稱。
materials : Object
將子材質(zhì)名稱映射到材質(zhì)對(duì)象。
-
Default Value:
undefined
shaderSource : String
此材質(zhì)的glsl明暗器源。
-
Default Value:
undefined
translucent : (Boolean|function)
當(dāng)
true
或返回true
的函數(shù)時(shí),幾何圖形應(yīng)顯示為半透明。
-
Default Value:
undefined
type : String
材料類型。可以是現(xiàn)有類型或新類型。如果結(jié)構(gòu)中未指定類型,則類型為guid。
-
Default Value:
undefined
uniforms : Object
將統(tǒng)一名稱映射到它們的值。
-
Default Value:
undefined
Methods
(static) fromType(type, uniforms) → {Material}
使用現(xiàn)有材質(zhì)類型創(chuàng)建新材質(zhì)。
縮寫:新材料({fabric : {type : type}});
縮寫:新材料({fabric : {type : type}});
Parameters:
type
(String)
基礎(chǔ)材料類型。
uniforms
(Object)
覆蓋默認(rèn)結(jié)構(gòu)。
Example
var material = bmgl.Material.fromType('Color', {
color : new bmgl.Color(1.0, 0.0, 0.0, 1.0)
});
Throws
-
DeveloperError : 不存在具有該類型的材料。
銷毀此對(duì)象持有的WebGL資源。銷毀對(duì)象允許確定地釋放WebGL資源,而不是依賴?yán)占鱽?lái)銷毀此對(duì)象。
一旦對(duì)象被破壞,就不應(yīng)使用它;調(diào)用除
一旦對(duì)象被破壞,就不應(yīng)使用它;調(diào)用除
isDestroyed
以外的任何函數(shù)都將導(dǎo)致DeveloperError
異常。因此,將返回值(undefined
)賦給對(duì)象,如示例中所述。
Throws
-
DeveloperError : 此對(duì)象已被銷毀,即調(diào)用destroy()。
See:
如果此對(duì)象被破壞,則返回true;否則返回false。
如果此對(duì)象被破壞,則不應(yīng)使用它;調(diào)用除
如果此對(duì)象被破壞,則不應(yīng)使用它;調(diào)用除
isDestroyed
以外的任何函數(shù)將導(dǎo)致DeveloperError
異常。
See:
獲取此材質(zhì)是否為半透明。