three.js LightShadow

2023-02-16 17:43 更新

該類作為其他陰影類的基類來(lái)使用。

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

LightShadow( camera : Camera )

camera - 在光的世界里

創(chuàng)建一個(gè)新的LightShadow。這不能直接調(diào)用的 - 它由其他陰影用作基類。

屬性

.autoUpdate : Boolean

啟用燈光陰影的自動(dòng)更新。默認(rèn)為真。如果您不需要?jiǎng)討B(tài)光照/陰影,您可以將其設(shè)置為 false。

.camera : Camera

光的世界里。這用于生成場(chǎng)景的深度圖;從光的角度來(lái)看,其他物體背后的物體將處于陰影中。

.bias : Float

陰影貼圖偏差,在確定曲面是否在陰影中時(shí),從標(biāo)準(zhǔn)化深度添加或減去多少。默認(rèn)值為0.此處非常小的調(diào)整(大約0.0001)可能有助于減少陰影中的偽影

.blurSamples : Integer

模糊 VSM 陰影貼圖時(shí)要使用的樣本量。

.map : WebGLRenderTarget

使用內(nèi)置攝像頭生成的深度圖;超出像素深度的位置在陰影中。在渲染期間內(nèi)部計(jì)算。

.mapPass : WebGLRenderTarget

使用內(nèi)部攝像頭生成的分布圖;根據(jù)深度分布計(jì)算遮擋。在渲染期間在內(nèi)部計(jì)算。

.mapSize : Vector2

一個(gè)Vector2定義陰影貼圖的寬度和高度。較高的值會(huì)以計(jì)算時(shí)間為代價(jià)提供更好的陰影質(zhì)量。值必須是2的冪,直到給定設(shè)備的WebGLRenderer.capabilities.maxTextureSize, 雖然寬度和高度不必相同(例如,(512,1024)有效)。 默認(rèn)值為*(512,512)*。

.matrix : Matrix4

模擬陰影相機(jī)空間,計(jì)算陰影貼圖中的位置和深度。存儲(chǔ)在Matrix4中。這是在渲染期間內(nèi)部計(jì)算的。

.needsUpdate : Boolean

當(dāng)設(shè)置為 true 時(shí),陰影貼圖將在下一次渲染調(diào)用中更新。默認(rèn)為假。如果您已將 .autoUpdate 設(shè)置為 false,則需要將此屬性設(shè)置為 true,然后進(jìn)行渲染調(diào)用以更新燈光的陰影。

.normalBias : Float

定義用于查詢陰影貼圖的位置沿對(duì)象法線的偏移量。默認(rèn)值為 0。增加此值可用于減少陰影痤瘡,尤其是在光線以淺角度照射到幾何體的大場(chǎng)景中。代價(jià)是陰影可能會(huì)出現(xiàn)扭曲。

.radius : Float

將此值設(shè)置為大于1的值將模糊陰影的邊緣。較高的值會(huì)在陰影中產(chǎn)生不必要的條帶效果 - 更大的mapSize將允許在這些效果變得可見(jiàn)之前使用更高的值。如果 WebGLRenderer.shadowMap.type 設(shè)置為 PCFSoftShadowMap,則 radius 無(wú)效,建議通過(guò)減小 mapSize 來(lái)增加柔和度。請(qǐng)注意,如果[page:WebGLRenderer.shadowMap.type]設(shè)置為BasicShadowMap,將會(huì)無(wú)效。

方法

.getFrameExtents () : Vector2

由渲染器在內(nèi)部使用以擴(kuò)展陰影貼圖以包含所有視口

.updateMatrices ( light : Light ) : undefined

更新相機(jī)和陰影的矩陣,由 renderer.light 在內(nèi)部使用——渲染陰影的光。

.getFrustum () : Frustum

獲取陰影相機(jī)視錐體。由渲染器在內(nèi)部使用以剔除對(duì)象。

.getViewportCount () : number

由渲染器在內(nèi)部使用以獲取需要為此陰影渲染的視口數(shù)。

.copy ( source : LightShadow ) : this

將source中的所有屬性的值復(fù)制到該Light。

.clone () : LightShadow

克隆與此相同屬性的新LightShadow。

.toJSON () : Object

序列化這個(gè)LightShadow。

源碼

src/lights/LightShadow.js


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

掃描二維碼

下載編程獅App

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

編程獅公眾號(hào)