three.js LightShadow

2023-02-16 17:43 更新

该类作为其他阴影类的基类来使用。

构造函数

LightShadow( camera : Camera )

camera - 在光的世界里

创建一个新的LightShadow。这不能直接调用的 - 它由其他阴影用作基类。

属性

.autoUpdate : Boolean

启用灯光阴影的自动更新。默认为真。如果您不需要动态光照/阴影,您可以将其设置为 false。

.camera : Camera

光的世界里。这用于生成场景的深度图;从光的角度来看,其他物体背后的物体将处于阴影中。

.bias : Float

阴影贴图偏差,在确定曲面是否在阴影中时,从标准化深度添加或减去多少。默认值为0.此处非常小的调整(大约0.0001)可能有助于减少阴影中的伪影

.blurSamples : Integer

模糊 VSM 阴影贴图时要使用的样本量。

.map : WebGLRenderTarget

使用内置摄像头生成的深度图;超出像素深度的位置在阴影中。在渲染期间内部计算。

.mapPass : WebGLRenderTarget

使用内部摄像头生成的分布图;根据深度分布计算遮挡。在渲染期间在内部计算。

.mapSize : Vector2

一个Vector2定义阴影贴图的宽度和高度。较高的值会以计算时间为代价提供更好的阴影质量。值必须是2的幂,直到给定设备的WebGLRenderer.capabilities.maxTextureSize, 虽然宽度和高度不必相同(例如,(512,1024)有效)。 默认值为*(512,512)*。

.matrix : Matrix4

模拟阴影相机空间,计算阴影贴图中的位置和深度。存储在Matrix4中。这是在渲染期间内部计算的。

.needsUpdate : Boolean

当设置为 true 时,阴影贴图将在下一次渲染调用中更新。默认为假。如果您已将 .autoUpdate 设置为 false,则需要将此属性设置为 true,然后进行渲染调用以更新灯光的阴影。

.normalBias : Float

定义用于查询阴影贴图的位置沿对象法线的偏移量。默认值为 0。增加此值可用于减少阴影痤疮,尤其是在光线以浅角度照射到几何体的大场景中。代价是阴影可能会出现扭曲。

.radius : Float

将此值设置为大于1的值将模糊阴影的边缘。较高的值会在阴影中产生不必要的条带效果 - 更大的mapSize将允许在这些效果变得可见之前使用更高的值。如果 WebGLRenderer.shadowMap.type 设置为 PCFSoftShadowMap,则 radius 无效,建议通过减小 mapSize 来增加柔和度。请注意,如果[page:WebGLRenderer.shadowMap.type]设置为BasicShadowMap,将会无效。

方法

.getFrameExtents () : Vector2

由渲染器在内部使用以扩展阴影贴图以包含所有视口

.updateMatrices ( light : Light ) : undefined

更新相机和阴影的矩阵,由 renderer.light 在内部使用——渲染阴影的光。

.getFrustum () : Frustum

获取阴影相机视锥体。由渲染器在内部使用以剔除对象。

.getViewportCount () : number

由渲染器在内部使用以获取需要为此阴影渲染的视口数。

.copy ( source : LightShadow ) : this

将source中的所有属性的值复制到该Light。

.clone () : LightShadow

克隆与此相同属性的新LightShadow。

.toJSON () : Object

序列化这个LightShadow。

源码

src/lights/LightShadow.js


以上内容是否对您有帮助:
在线笔记
App下载
App下载

扫描二维码

下载编程狮App

公众号
微信公众号

编程狮公众号