PMREMGenerator

这个类从一个cubeMap环境纹理生成一个Prefiltered, Mipmapped Radiance Environment Map (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 (RGBFormat) 或 HDR (RGBEFormat)。理想的输入图像大小为 1k (1024 x 512),因为这与 256 x 256 立方体贴图输出最匹配。

.fromCubemap(cubemap : CubeTexture) → WebGLRenderTarget

cubemap — 立方体贴图纹理。

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

.compileCubemapShader() → void

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

.compileEquirectangularShader() → void

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

.dispose() → void

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

源代码

关于如何获取此模块的源代码,请查看 本页