three.js MeshDistanceMaterial

2023-02-16 17:45 更新

MeshDistanceMaterial 在內(nèi)部用于使用PointLight來(lái)實(shí)現(xiàn)陰影映射。 也可以用于通過(guò)將MeshDistanceMaterial實(shí)例指定給Object3D.customDistanceMaterial,來(lái)自定義物體陰影投射。 下列示例演示了這一方法,以確保物體的透明部分不投射陰影。

例子

WebGL / shadowmap / pointlight

構(gòu)造函數(shù)(Constructor)

MeshDistanceMaterial( parameters : Object )

parameters - (可選)用于定義材質(zhì)外觀的對(duì)象,具有一個(gè)或多個(gè)屬性。 材質(zhì)的任何屬性都可以從此處傳入(包括從Material繼承的任何屬性)。

屬性(Properties)

共有屬性請(qǐng)參見(jiàn)其基類(lèi)Material。

.alphaMap : Texture

alpha貼圖是一張灰度紋理,用于控制整個(gè)表面的不透明度。(黑色:完全透明;白色:完全不透明)。 默認(rèn)值為null。

僅使用紋理的顏色,忽略alpha通道(如果存在)。 對(duì)于RGB和RGBA紋理,WebGL渲染器在采樣此紋理時(shí)將使用綠色通道, 因?yàn)樵贒XT壓縮和未壓縮RGB 565格式中為綠色提供了額外的精度。 Luminance-only以及l(fā)uminance/alpha紋理也仍然有效。

.displacementMap : Texture

位移貼圖會(huì)影響網(wǎng)格頂點(diǎn)的位置,與僅影響材質(zhì)的光照和陰影的其他貼圖不同,移位的頂點(diǎn)可以投射陰影,阻擋其他對(duì)象,以及充當(dāng)真實(shí)的幾何體。 位移紋理是指:網(wǎng)格的所有頂點(diǎn)被映射為圖像中每個(gè)像素的值(白色是最高的),并且被重定位。

.displacementScale : Float

位移貼圖對(duì)網(wǎng)格的影響程度(黑色是無(wú)位移,白色是最大位移)。如果沒(méi)有設(shè)置位移貼圖,則不會(huì)應(yīng)用此值。默認(rèn)值為1。

.displacementBias : Float

位移貼圖在網(wǎng)格頂點(diǎn)上的偏移量。如果沒(méi)有設(shè)置位移貼圖,則不會(huì)應(yīng)用此值。默認(rèn)值為0。

.farDistance : Float

點(diǎn)光源的內(nèi)部陰影相機(jī)的遠(yuǎn)值。

.map : Texture

顏色貼圖??梢赃x擇包括一個(gè)alpha通道,通常與.transparent 或.alphaTest。默認(rèn)為null。

.nearDistance : Float

點(diǎn)光源內(nèi)部陰影相機(jī)的近值。

.referencePosition : Vector3

點(diǎn)光源在世界空間中的位置。

方法(Methods)

共有方法請(qǐng)參見(jiàn)其基類(lèi)Material。

源碼(Source)

src/materials/MeshDistanceMaterial.js


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

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)