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