three.js PMREMGenerator

2023-02-16 17:32 更新

此类从立方体贴图环境纹理生成经过预过滤的 Mipmapped 辐射环境贴图 (PMREM)。这允许根据材料粗糙度快速访问不同级别的模糊。它被打包成一种特殊的 CubeUV 格式,允许我们执行自定义插值,以便我们可以支持 RGBE 等非线性格式。与传统的 mipmap 链不同,它只下降到 LOD_MIN 级别,然后在相同的 LOD_MIN 分辨率下创建额外的甚至更多过滤的“mips”,并与更高的粗糙度级别相关联。通过这种方式,我们保持分辨率以平滑地插入漫射照明,同时限制采样计算。

构造函数

PMREMGenerator( renderer : WebGLRenderer )

此构造函数创建一个新的 PMREMGenerator。

方法

.fromScene ( scene : Scene, sigma : Number, near : Number, far : Number ) : WebGLRenderTarget

scene - 给定的场景。

sigma - (可选)指定在 PMREM 生成之前应用于场景的以弧度为单位的模糊半径。默认为 0。

near - (可选)近平面值。默认值为 0.1。

far - (可选)远平面值。默认值为 100。

从提供的场景生成 PMREM,如果网络带宽较低,这可能比使用图像更快。可选的近平面和远平面确保场景被完整渲染(cubeCamera 放置在原点)。

.fromEquirectangular ( equirectangular : Texture ) : WebGLRenderTarget

equirectangular - 等矩形纹理。

从等距柱状纹理生成 PMREM,可以是 LDR 或 HDR。理想的输入图像大小为 1k (1024 x 512),因为这与 256 x 256 立方体贴图输出最匹配。

.fromCubemap ( cubemap : CubeTexture ) : WebGLRenderTarget

cubemap - 立方体贴图纹理。

从立方体贴图纹理生成 PMREM,可以是 LDR 或 HDR。理想的输入立方体大小为 256 x 256,因为这与 256 x 256 立方体贴图输出最匹配。

.compileCubemapShader () : undefined

预编译立方体贴图着色器。您可以通过在纹理的网络获取期间调用此方法来提高并发性,从而加快启动速度。

.compileEquirectangularShader () : undefined

预编译等距柱状着色器。您可以通过在纹理的网络获取期间调用此方法来提高并发性,从而加快启动速度。

.dispose () : undefined

处理 PMREMGenerator 的内部存储器。请注意,PMREMGenerator 是一个静态类,因此您不需要多个 PMREMGenerator 对象。如果这样做,对其中之一调用 dispose() 将导致任何其他对象也变得不可用。

源码

src/extras/PMREMGenerator.js


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

扫描二维码

下载编程狮App

公众号
微信公众号

编程狮公众号