SDFGeometryGenerator.html 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  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>SDF几何体生成器([name])</h1>
  11. <p class="desc">
  12. [name] 从有符号距离函数 生成 [page:BufferGeometry] 实例。</br>
  13. 使用 <a href="https://www.npmjs.com/package/isosurface" target="_blank"> Mikola Lysenko 的等值面。</a>
  14. </p>
  15. <h2>导入</h2>
  16. <p>
  17. [name] 是一个附加组件,必须显式导入。请参阅 [link:#manual/introduction/Installation Installation / Addons].
  18. </p>
  19. <code>
  20. import { SDFGeometryGenerator } from 'three/addons/geometries/SDFGeometryGenerator.js';
  21. </code>
  22. <h2>代码示例</h2>
  23. <code>
  24. const generator = new SDFGeometryGenerator( renderer );
  25. const sdf = 'float dist( vec3 p ){ return length(p) - 0.5; }' // glsl
  26. const geometry = generator.generate( 64, sdf, 1 ); // ~> THREE.BufferGeometry
  27. </code>
  28. <h2>例子</h2>
  29. <p>[example:webgl_geometry_sdf geometry / sdf ]</p>
  30. <h2>构造函数</h2>
  31. <h3>[name]( [param:WebGLRenderer renderer] )</h3>
  32. <p>
  33. [page:WebGLRenderer renderer] -- 用于渲染场景的渲染器。<br />
  34. </p>
  35. <h2>方法</h2>
  36. <h3>[method:BufferGeometry generate]( [param:Int resolution], [param:String distanceField], [param:Int bounds] )</h3>
  37. <p>
  38. <b>resolution</b> - Int [必填项] 用于三角测量的“体素”数量。必须是 2 的幂。256 之后会变得很重,大多数机器将无法处理超过 512 的数据。默认为 64。
  39. </p>
  40. <p>
  41. <b>distanceField</b> - String [必填项] 具有 glsl 距离函数的字符串。函数名称必须是“dist”,带有 vec3 参数。(参见上面的代码)。默认为球体距离。
  42. </p>
  43. <p>
  44. <b>bounds</b> - Int [可选] 将评估有符号距离字段的边界。默认为 1。
  45. </p>
  46. <h2>源代码</h2>
  47. <p>
  48. [link:https://github.com/mrdoob/three.js/blob/master/examples/jsm/geometries/SDFGeometry.js examples/jsm/geometries/SDFGeometryGenerator.js]
  49. </p>
  50. </body>
  51. </html>