W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗值獎勵
材質(zhì)的抽象基類。
材質(zhì)描述了對象objects的外觀。它們的定義方式與渲染器無關, 因此,如果您決定使用不同的渲染器,不必重寫材質(zhì)。
所有其他材質(zhì)類型都繼承了以下屬性和方法(盡管它們可能具有不同的默認值)。
該方法創(chuàng)建一個通用材質(zhì)。
設置運行alphaTest時要使用的alpha值。如果不透明度低于此值,則不會渲染材質(zhì)。默認值為0。
啟用alpha to coverage. 只能在開啟了MSAA的渲染環(huán)境中使用 (當渲染器創(chuàng)建的時候antialias 屬性要true才能使用). 默認為 false.
混合目標。默認值為OneMinusSrcAlphaFactor。 目標因子所有可能的取值請參閱constants。 必須將材質(zhì)的blending設置為 CustomBlending才能生效。
.blendDst的透明度。 默認值為 null.
使用混合時所采用的混合方程式。默認值為AddEquation。 混合方程式所有可能的取值請參閱constants。 必須將材質(zhì)的blending設置為 CustomBlending才能生效。
.blendEquation 的透明度. 默認值為 null.
在使用此材質(zhì)顯示對象時要使用何種混合。
必須將其設置為CustomBlending才能使用自定義blendSrc, blendDst 或者 [page:Constant blendEquation]。 混合模式所有可能的取值請參閱constants。默認值為 NormalBlending。
混合源。默認值為SrcAlphaFactor。 源因子所有可能的取值請參閱constants。必須將材質(zhì)的blending設置為CustomBlending才能生效。
.blendSrc的透明度。 默認值為 null.
更改剪裁平面的行為,以便僅剪切其交叉點,而不是它們的并集。默認值為 false。
用戶定義的剪裁平面,在世界空間中指定為THREE.Plane對象。這些平面適用于所有使用此材質(zhì)的對象??臻g中與平面的有符號距離為負的點被剪裁(未渲染)。 這需要WebGLRenderer.localClippingEnabled為true。 示例請參閱WebGL / clipping /intersection。默認值為 null。
定義是否根據(jù)此材質(zhì)上指定的剪裁平面剪切陰影。默認值為 false。
是否渲染材質(zhì)的顏色。 這可以與網(wǎng)格的renderOrder屬性結合使用,以創(chuàng)建遮擋其他對象的不可見對象。默認值為true。
注入shader的自定義對象。 以鍵值對形式的對象傳遞,{ MY_CUSTOM_DEFINE: '' , PI2: Math.PI * 2 }。 這些鍵值對在頂點和片元著色器中定義。默認值為undefined。
使用何種深度函數(shù)。默認為LessEqualDepth。 深度模式所有可能的取值請查閱constants。
是否在渲染此材質(zhì)時啟用深度測試。默認為 true。
渲染此材質(zhì)是否對深度緩沖區(qū)有任何影響。默認為true。在繪制2D疊加時,將多個事物分層在一起而不創(chuàng)建z-index時,禁用深度寫入會很有用。
檢查這個對象是否為材質(zhì)Material的只讀標記.
是否對模板緩沖執(zhí)行模板操作,如果執(zhí)行寫入或者與模板緩沖進行比較,這個值需要設置為true。默認為false。
寫入模板緩沖區(qū)時所用的位元遮罩,默認為0xFF。
使用模板比較時所用的方法,默認為AlwaysStencilFunc。在模板函數(shù) constants 中查看可用的值
在進行模板比較或者模板操作的時候所用的基準值,默認為0。
與模板緩沖進行比較時所使用的位元遮罩,默認為0xFF
當比較函數(shù)沒有通過的時候要執(zhí)行的模板操作,默認為KeepStencilOp,在模板操作 constants 查看可用值。
當比較函數(shù)通過了但是深度檢測沒有通過的時候要執(zhí)行的模板操作, 默認為KeepStencilOp,在模板操作 constants 查看可用值。
當比較函數(shù)和深度檢測都通過時要執(zhí)行的模板操作,默認為KeepStencilOp,在模板操作constants 中查看可用值。
此材質(zhì)實例的唯一編號。
對象的可選名稱(不必是唯一的)。默認值為空字符串。
指定需要重新編譯材質(zhì)。
在0.0 - 1.0的范圍內(nèi)的浮點數(shù),表明材質(zhì)的透明度。值0.0表示完全透明,1.0表示完全不透明。如果材質(zhì)的transparent屬性未設置為true,則材質(zhì)將保持完全不透明,此值僅影響其顏色。 默認值為1.0。
是否使用多邊形偏移。默認值為false。這對應于WebGL的GL_POLYGON_OFFSET_FILL功能。
設置多邊形偏移系數(shù)。默認值為0。
設置多邊形偏移單位。默認值為0。
重寫此材質(zhì)渲染器的默認精度??梢允?highp", "mediump" 或 "lowp"。默認值為null。
是否預乘alpha(透明度)值。有關差異的示例,請參閱WebGL / Materials / Physical / Transmission。 默認值為false。
是否對顏色應用抖動以消除條帶的外觀。默認值為 false。
定義投影的面。設置時,可以是THREE.FrontSide, THREE.BackSide, 或Materials。默認值為 null。如果為null, 則面投射陰影確定如下:
Material.side | Side casting shadows |
---|---|
THREE.FrontSide | 背面 |
THREE.BackSide | 前面 |
THREE.DoubleSide | 雙面 |
定義將要渲染哪一面 - 正面,背面或兩者。 默認為THREE.FrontSide。其他選項有THREE.BackSide, THREE.DoubleSide 和 THREE.TwoPassDoubleSide。
定義這個材質(zhì)是否會被渲染器的toneMapping設置所影響,默認為 true 。
定義此材質(zhì)是否透明。這對渲染有影響,因為透明對象需要特殊處理,并在非透明對象之后渲染。設置為true時,通過設置材質(zhì)的opacity屬性來控制材質(zhì)透明的程度。默認值為false。
值是字符串'Material'。不應該被更改,并且可以用于在場景中查找此類型的所有對象。
此材質(zhì)實例的UUID,會自動分配,不應該被更改。
開始為0,會記錄 .needsUpdate : Boolean設置為true的次數(shù)。
是否使用頂點著色。默認值為false。
此材質(zhì)是否可見。默認為true。
一個對象,可用于存儲有關Material的自定義數(shù)據(jù)。它不應該包含對函數(shù)的引用,因為這些函數(shù)不會被克隆。
EventDispatcher 方法在此類中可用。
返回與此材質(zhì)具有相同參數(shù)的新材質(zhì)。
將被傳入材質(zhì)中的參數(shù)復制到此材質(zhì)中。
處理材質(zhì)。材質(zhì)的紋理不會被處理。需要通過Texture處理。
在編譯shader程序之前立即執(zhí)行的可選回調(diào)。此函數(shù)使用shader源碼作為參數(shù)。用于修改內(nèi)置材質(zhì)。
和其他屬性不一樣的是,這個回調(diào)在.clone(),.copy() 和 .toJSON() 中不支持。
當用到onBeforeCompile回調(diào)的時候,這個回調(diào)函數(shù)可以用來定義在onBeforeCompile中使用的配置項,這樣three.js就可以根據(jù)這個回調(diào)返回的字符串來判定使用一個緩存的編譯好的著色器代碼還是根據(jù)需求重新編譯一個新的著色器代碼。
例如一個onBeforeCompile回調(diào)函數(shù)包含了下面的條件語句:
if ( black ) {
shader.fragmentShader = shader.fragmentShader.replace('gl_FragColor = vec4(1)', 'gl_FragColor = vec4(0)')
}
那么 customProgramCacheKey 就可以設置為:
material.customProgramCacheKey = function() {
return black ? '1' : '0';
}
和其他屬性不一樣的是,這個回調(diào)在.clone(),.copy() 和 .toJSON() 中不支持。
values -- 具有參數(shù)的容器。 根據(jù)values設置屬性。
meta -- 包含有元數(shù)據(jù)的對象,例如該對象的紋理或圖片。 將material對象轉(zhuǎn)換為 three.js JSON Object/Scene format(three.js JSON 物體/場景格式)。
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: