此类从立方体贴图环境纹理生成经过预过滤的Mipmapped辐射环境贴图(PMREM)。
这允许根据材料粗糙度快速访问不同级别的模糊。
它被打包成一种特殊的CubeUV格式,允许我们执行自定义插值,以便我们可以支持RGBE等非线性格式。
与传统的mipmap链不同,它只下降到LOD_MIN级别(上图),然后以相同的 LOD_MIN 分辨率创建额外的甚至更多的过滤“mips”,并与更高的粗糙度级别相关联。
通过这种方式,我们保持分辨率以平滑地插入漫射照明,同时限制采样计算。
注意:[page:MeshStandardMaterial] 的最小粗糙度取决于所提供纹理的大小。如果您的渲染尺寸较小,或者闪亮部分曲率较大,您仍然可以使用较小的纹理尺寸。
| 纹理大小 | 最小粗糙度 |
|---|---|
| 16 | 0.21 |
| 32 | 0.15 |
| 64 | 0.11 |
| 128 | 0.076 |
| 256 | 0.054 |
| 512 | 0.038 |
| 1024 | 0.027 |
此构造函数创建一个新的[name]。
[page:Scene scene] - 给定的场景
[page:Number sigma] - (可选)指定在PMREM生成之前应用于场景的以弧度为单位的模糊半径。默认为0。
[page:Number near] - (可选)近平面值,默认值为0.1。
[page:Number far] - (可选)远平面值。默认值为100。
从提供的场景生成PMREM,如果网络带宽较低,这可能比使用图像更快。可选的近平面和远平面确保场景被完整渲染(cubeCamera放置在原点)。
[page:Texture equirectangular] - equirectangular纹理。
从等距柱状纹理生成PMREM,可以是LDR或HDR。理想的输入图像大小为1k(1024x512),因为这与256x256立方体贴图输出最匹配。
[page:CubeTexture cubemap] - 立方体贴图纹理。
从立方体贴图纹理生成PMREM,可以是LDR或HDR。理想的输入立方体大小为256x256,因为这与 256x256立方体贴图输出最匹配。
预编译立方体贴图着色器。您可以通过在纹理的网络获取期间调用此方法来提高并发性,从而加快启动速度。
预编译等距柱状着色器。您可以通过在纹理的网络获取期间调用此方法来提高并发性,从而加快启动速度。
处理PMREMGenerator的内部存储器。 请注意,PMREMGenerator是一个静态类,因此您不需要多个PMREMGenerator对象。 如果这样做,对其中之一调用dispose()将导致任何其他对象也变得不可用。
[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]