three.js LightShadow

2023-02-16 17:43 更新

該類作為其他陰影類的基類來使用。

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

LightShadow( camera : Camera )

camera - 在光的世界里

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

屬性

.autoUpdate : Boolean

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

.camera : Camera

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

.bias : Float

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

.blurSamples : Integer

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

.map : WebGLRenderTarget

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

.mapPass : WebGLRenderTarget

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

.mapSize : Vector2

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

.matrix : Matrix4

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

.needsUpdate : Boolean

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

.normalBias : Float

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

.radius : Float

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

方法

.getFrameExtents () : Vector2

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

.updateMatrices ( light : Light ) : undefined

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

.getFrustum () : Frustum

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

.getViewportCount () : number

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

.copy ( source : LightShadow ) : this

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

.clone () : LightShadow

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

.toJSON () : Object

序列化這個LightShadow。

源碼

src/lights/LightShadow.js


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

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號