PMREMGenerator.html 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113
  1. <!DOCTYPE html>
  2. <html lang="zh">
  3. <head>
  4. <meta charset="utf-8" />
  5. <base href="../../../" />
  6. <script src="page.js"></script>
  7. <link type="text/css" rel="stylesheet" href="page.css" />
  8. </head>
  9. <body>
  10. <h1>[name]</h1>
  11. <p class="desc">
  12. 此类从立方体贴图环境纹理生成经过预过滤的Mipmapped辐射环境贴图(PMREM)。
  13. 这允许根据材料粗糙度快速访问不同级别的模糊。
  14. 它被打包成一种特殊的CubeUV格式,允许我们执行自定义插值,以便我们可以支持RGBE等非线性格式。
  15. 与传统的mipmap链不同,它只下降到LOD_MIN级别(上图),然后以相同的 LOD_MIN 分辨率创建额外的甚至更多的过滤“mips”,并与更高的粗糙度级别相关联。
  16. 通过这种方式,我们保持分辨率以平滑地插入漫射照明,同时限制采样计算。<br /><br />
  17. 注意:[page:MeshStandardMaterial] 的最小粗糙度取决于所提供纹理的大小。如果您的渲染尺寸较小,或者闪亮部分曲率较大,您仍然可以使用较小的纹理尺寸。
  18. </p>
  19. <table>
  20. <tr>
  21. <th>纹理大小</th>
  22. <td>最小粗糙度</td>
  23. </tr>
  24. <tr>
  25. <td>16</td>
  26. <td>0.21</td>
  27. </tr>
  28. <tr>
  29. <td>32</td>
  30. <td>0.15</td>
  31. </tr>
  32. <tr>
  33. <td>64</td>
  34. <td>0.11</td>
  35. </tr>
  36. <tr>
  37. <td>128</td>
  38. <td>0.076</td>
  39. </tr>
  40. <tr>
  41. <td>256</td>
  42. <td>0.054</td>
  43. </tr>
  44. <tr>
  45. <td>512</td>
  46. <td>0.038</td>
  47. </tr>
  48. <tr>
  49. <td>1024</td>
  50. <td>0.027</td>
  51. </tr>
  52. </table>
  53. <h2>构造器(Constructor)</h2>
  54. <h3>[name]( [param:WebGLRenderer renderer] )</h3>
  55. <p>
  56. 此构造函数创建一个新的[name]。
  57. </p>
  58. <h2>方法(Methods)</h2>
  59. <h3>[method:WebGLRenderTarget fromScene]( [param:Scene scene], [param:Number sigma], [param:Number near], [param:Number far] )</h3>
  60. <p>
  61. [page:Scene scene] - 给定的场景<br>
  62. [page:Number sigma] - (可选)指定在PMREM生成之前应用于场景的以弧度为单位的模糊半径。默认为0。<br>
  63. [page:Number near] - (可选)近平面值,默认值为0.1。<br>
  64. [page:Number far] - (可选)远平面值。默认值为100。<br /><br />
  65. 从提供的场景生成PMREM,如果网络带宽较低,这可能比使用图像更快。可选的近平面和远平面确保场景被完整渲染(cubeCamera放置在原点)。
  66. </p>
  67. <h3>[method:WebGLRenderTarget fromEquirectangular]( [param:Texture equirectangular] )</h3>
  68. <p>
  69. [page:Texture equirectangular] - equirectangular纹理。<br /><br />
  70. 从等距柱状纹理生成PMREM,可以是LDR或HDR。理想的输入图像大小为1k(1024x512),因为这与256x256立方体贴图输出最匹配。
  71. </p>
  72. <h3>[method:WebGLRenderTarget fromCubemap]( [param:CubeTexture cubemap] )</h3>
  73. <p>
  74. [page:CubeTexture cubemap] - 立方体贴图纹理。<br /><br />
  75. 从立方体贴图纹理生成PMREM,可以是LDR或HDR。理想的输入立方体大小为256x256,因为这与 256x256立方体贴图输出最匹配。
  76. </p>
  77. <h3>[method:undefined compileCubemapShader]()</h3>
  78. <p>
  79. 预编译立方体贴图着色器。您可以通过在纹理的网络获取期间调用此方法来提高并发性,从而加快启动速度。
  80. </p>
  81. <h3>[method:undefined compileEquirectangularShader]()</h3>
  82. <p>
  83. 预编译等距柱状着色器。您可以通过在纹理的网络获取期间调用此方法来提高并发性,从而加快启动速度。
  84. </p>
  85. <h3>[method:undefined dispose]()</h3>
  86. <p>
  87. 处理PMREMGenerator的内部存储器。
  88. 请注意,PMREMGenerator是一个静态类,因此您不需要多个PMREMGenerator对象。
  89. 如果这样做,对其中之一调用dispose()将导致任何其他对象也变得不可用。
  90. </p>
  91. <h2>源代码(Source)</h2>
  92. <p>
  93. [link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
  94. </p>
  95. </body>
  96. </html>
粤ICP备19079148号