1
0

KTX2Loader.html 4.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141
  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. [page:Loader] &rarr;
  11. <h1>KTX2加载器([name])</h1>
  12. <p class="desc">
  13. KTX 2.0 GPU 纹理容器的加载程序。<br><br>
  14. [link:http://github.khronos.org/KTX-Specification/ KTX 2.0] 是各种 GPU 纹理格式的容器格式。该加载器支持 Basis Universal GPU
  15. 纹理,可以快速转码为多种 GPU 纹理压缩格式。虽然 KTX 2.0 还允许其他特定于硬件的格式,但此加载程序尚未解析它们。
  16. </p>
  17. <p>
  18. 该加载程序解析 KTX 2.0 容器并将其转码为受支持的 GPU 压缩纹理格式。所需的 WASM 转码器和 JS 包装器可从
  19. [link:https://github.com/mrdoob/three.js/tree/dev/examples/jsm/libs/basis examples/jsm/libs/basis] 目录中获取。
  20. </p>
  21. <h2>导入</h2>
  22. <p>
  23. [name] 是一个附加组件,必须显式导入。请参阅 [link:#manual/introduction/Installation Installation / Addons]。
  24. </p>
  25. <code>
  26. import { KTX2Loader } from 'three/addons/loaders/KTX2Loader.js';
  27. </code>
  28. <h2>代码示例</h2>
  29. <code>
  30. var ktx2Loader = new KTX2Loader();
  31. ktx2Loader.setTranscoderPath( 'examples/jsm/libs/basis/' );
  32. ktx2Loader.detectSupport( renderer );
  33. ktx2Loader.load( 'diffuse.ktx2', function ( texture ) {
  34. var material = new THREE.MeshStandardMaterial( { map: texture } );
  35. }, function () {
  36. console.log( 'onProgress' );
  37. }, function ( e ) {
  38. console.error( e );
  39. } );
  40. </code>
  41. <h2>例子</h2>
  42. <p>
  43. [example:webgl_loader_texture_ktx2]
  44. </p>
  45. <h2>浏览器兼容性</h2>
  46. <p>
  47. 该加载器依赖于旧版浏览器不支持的 Web Assembly。
  48. </p>
  49. <br>
  50. <hr>
  51. <h2>构造函数</h2>
  52. <h3>[name]( [param:LoadingManager manager] )</h3>
  53. <p>
  54. [page:LoadingManager manager] — 供加载器使用的 [page:LoadingManager] 。默认值为 [page:LoadingManager
  55. THREE.DefaultLoadingManager]。
  56. </p>
  57. <p>
  58. 创建一个新的 [name]。
  59. </p>
  60. <h2>属性</h2>
  61. <p>有关常用属性,请参阅 [page:Loader] 基类</p>
  62. <h2>Methods</h2>
  63. <p>有关常用方法,请参阅 [page:Loader] 基类</p>
  64. <h3>[method:CompressedTexture load]( [param:String url], [param:Function onLoad], [param:Function onProgress],
  65. [param:Function onError] )</h3>
  66. <p>
  67. [page:String url] — 包含 `.ktx2` 文件路径/URL 的字符串。<br />
  68. [page:Function onLoad] — 加载成功完成后调用的函数。<br />
  69. [page:Function onProgress] — (可选)加载过程中调用的函数。参数将是 XMLHttpRequest 实例,其中包含 .[page:Integer total] 和 .[page:Integer
  70. loaded] 字节。如果服务器没有设置 Content-Length,.[page:Integer total] 将为 0。<br />
  71. [page:Function onError] — (可选)加载期间发生错误时调用的函数。该函数接收错误作为参数。<br />
  72. </p>
  73. <p>
  74. 从 url 加载并在转码后 [page:CompressedTexture] 调用 `onLoad` 函数。
  75. </p>
  76. <h3>[method:this detectSupport]( [param:WebGLRenderer renderer] )</h3>
  77. <p>
  78. [page:WebGLRenderer renderer] — 渲染器实例。
  79. </p>
  80. <p>
  81. 检测可用压缩纹理格式的硬件支持,以确定转码器的输出格式。必须在加载纹理之前调用。
  82. </p>
  83. <h3>[method:this setTranscoderPath]( [param:String path] )</h3>
  84. <p>
  85. [page:String path] — 包含 WASM 转码器和 JS 包装器的文件夹路径。
  86. </p>
  87. <p>
  88. WASM 转码器和 JS 包装器可从 [link:https://github.com/mrdoob/three.js/tree/dev/examples/jsm/libs/basis
  89. examples/jsm/libs/basis] 目录中获取。
  90. </p>
  91. <h3>[method:this setWorkerLimit]( [param:Number limit] )</h3>
  92. <p>
  93. [page:Number limit] — 最大 worker 数量。默认值为 '4'。
  94. </p>
  95. <p>
  96. 设置此实例要分配的最大 Web Worker 数量。
  97. </p>
  98. <h3>[method:this dispose]()</h3>
  99. <p>
  100. 处置加载器对象,取消分配创建的所有 Web Worker。
  101. </p>
  102. <h2>源代码</h2>
  103. <p>
  104. [link:https://github.com/mrdoob/three.js/blob/master/examples/jsm/loaders/KTX2Loader.js examples/jsm/loaders/KTX2Loader.js]
  105. </p>
  106. </body>
  107. </html>