three.js Materials

2023-02-16 17:30 更新

由這些常量定義的屬性對所有的材質(zhì)類型都生效,除了Texture Combine Operations只應(yīng)用于 MeshBasicMaterial,MeshLambertMaterial和MeshPhongMaterial。

THREE.FrontSide
THREE.BackSide
THREE.DoubleSide
THREE.TwoPassDoubleSide

定義了哪一邊的面將會被渲染 —— 正面,或是反面,還是兩個面都渲染。 默認(rèn)值是FrontSide(只渲染正面)。

TwoPassDoubleSide 將按前后順序分兩次渲染雙面透明材料,以減輕透明偽影。

混合模式

THREE.NoBlending
THREE.NormalBlending
THREE.AdditiveBlending
THREE.SubtractiveBlending
THREE.MultiplyBlending
THREE.CustomBlending

這些值控制著源和目標(biāo)材質(zhì)中,被發(fā)送到WebGLRenderer,來給WebGL使用的包含有RGB和Alpha數(shù)據(jù)的混合方程。
默認(rèn)值是NormalBlending。
請注意,CustomBlending必須被設(shè)置為自定義混合方程(Custom Blending Equations)常量中的值。
請查看示例:materials / blending。

深度模式

THREE.NeverDepth
THREE.AlwaysDepth
THREE.LessDepth
THREE.LessEqualDepth
THREE.GreaterEqualDepth
THREE.GreaterDepth
THREE.NotEqualDepth

材質(zhì)使用這些深度函數(shù)來比較輸入像素和緩沖器中Z-depth的值。 如果比較的結(jié)果為true,則將繪制像素。
NeverDepth 永遠(yuǎn)不返回true。
AlwaysDepth 總是返回true。
LessDepth 當(dāng)輸入像素Z-depth小于當(dāng)前緩沖器Z-depth時,返回true。
LessEqualDepth 為默認(rèn)值,當(dāng)輸入像素Z-depth小于或等于當(dāng)前緩沖器Z-depth時,返回true。
GreaterEqualDepth 當(dāng)輸入像素Z-depth大于或等于當(dāng)前緩沖器Z-depth時,返回true。
GreaterDepth 當(dāng)輸入像素Z-depth大于當(dāng)前緩沖器Z-depth時,返回true。
NotEqualDepth 當(dāng)輸入像素Z-depth不等于當(dāng)前緩沖器Z-depth時,返回true。

紋理結(jié)合操作

THREE.MultiplyOperation
THREE.MixOperation
THREE.AddOperation

這些常量定義了物體表面顏色與環(huán)境貼圖(如果存在的話)相結(jié)合的結(jié)果, 用在MeshBasicMaterial、MeshLambertMaterial和MeshPhongMaterial當(dāng)中。
MultiplyOperation 是默認(rèn)值,它將環(huán)境貼圖和物體表面顏色進(jìn)行相乘。
MixOperation 使用反射率來混和兩種顏色。使用反射率混合兩種顏色。

AddOperation 用于對兩種顏色進(jìn)行相加。

模板函數(shù)

THREE.NeverStencilFunc
THREE.LessStencilFunc
THREE.EqualStencilFunc
THREE.LessEqualStencilFunc
THREE.GreaterStencilFunc
THREE.NotEqualStencilFunc
THREE.GreaterEqualStencilFunc
THREE.AlwaysStencilFunc

材質(zhì)使用的模板函數(shù),用于決定是否執(zhí)行一項模板操作.

NeverStencilFunc 一定會返回true.

LessStencilFunc 當(dāng)模板基準(zhǔn)值比當(dāng)前模板值小的時候返回true.

EqualStencilFunc 當(dāng)模板基準(zhǔn)值和當(dāng)前模板值一樣的時候返回true.

LessEqualStencilFunc 當(dāng)模板基準(zhǔn)值小于等于當(dāng)前模板值的時候返回true.

GreaterStencilFunc 當(dāng)模板基準(zhǔn)值比當(dāng)前模板值大的時候返回true.

NotEqualStencilFunc 當(dāng)模板基準(zhǔn)值與當(dāng)前模板值不相等的時候返回true.

GreaterEqualStencilFunc 當(dāng)模板基準(zhǔn)值比當(dāng)前模板值大的時候返回true.

AlwaysStencilFunc 一定會返回true.

模板操作

THREE.ZeroStencilOp
THREE.KeepStencilOp
THREE.ReplaceStencilOp
THREE.IncrementStencilOp
THREE.DecrementStencilOp
THREE.IncrementWrapStencilOp
THREE.DecrementWrapStencilOp
THREE.InvertStencilOp

當(dāng)提供的模板函數(shù)通過的時候,材質(zhì)會在模板緩沖像素上執(zhí)行怎樣的模板操作.

ZeroStencilOp 將模板值設(shè)置為0。

KeepStencilOp 不會對模板值進(jìn)行任何操作。

ReplaceStencilOp 使用模板基準(zhǔn)值覆蓋模板值。

IncrementStencilOp 將當(dāng)前模板值加1。

DecrementStencilOp 將當(dāng)前模板值減1。

IncrementWrapStencilOp 將當(dāng)前模板值加1,如果這個值超過了255則會設(shè)置為0。

DecrementWrapStencilOp 將當(dāng)前模板值減1,如果這個值低于0則會設(shè)置為255

InvertStencilOp 將當(dāng)前模板值按位反轉(zhuǎn).

GLSL Version

THREE.GLSL1
THREE.GLSL3

源代碼

src/constants.js


以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號