123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172 |
- <!DOCTYPE html>
- <html lang="zh">
- <head>
- <meta charset="utf-8" />
- <base href="../../../" />
- <script src="page.js"></script>
- <link type="text/css" rel="stylesheet" href="page.css" />
- </head>
- <body>
- <h1>SDF几何体生成器([name])</h1>
- <p class="desc">
- [name] 从有符号距离函数 生成 [page:BufferGeometry] 实例。</br>
- 使用 <a href="https://www.npmjs.com/package/isosurface" target="_blank"> Mikola Lysenko 的等值面。</a>
- </p>
- <h2>导入</h2>
- <p>
- [name] 是一个附加组件,必须显式导入。请参阅 [link:#manual/introduction/Installation Installation / Addons].
- </p>
- <code>
- import { SDFGeometryGenerator } from 'three/addons/geometries/SDFGeometryGenerator.js';
- </code>
- <h2>代码示例</h2>
- <code>
- const generator = new SDFGeometryGenerator( renderer );
- const sdf = 'float dist( vec3 p ){ return length(p) - 0.5; }' // glsl
- const geometry = generator.generate( 64, sdf, 1 ); // ~> THREE.BufferGeometry
- </code>
- <h2>例子</h2>
- <p>[example:webgl_geometry_sdf geometry / sdf ]</p>
- <h2>构造函数</h2>
- <h3>[name]( [param:WebGLRenderer renderer] )</h3>
- <p>
- [page:WebGLRenderer renderer] -- 用于渲染场景的渲染器。<br />
- </p>
- <h2>方法</h2>
- <h3>[method:BufferGeometry generate]( [param:Int resolution], [param:String distanceField], [param:Int bounds] )</h3>
- <p>
- <b>resolution</b> - Int [必填项] 用于三角测量的“体素”数量。必须是 2 的幂。256 之后会变得很重,大多数机器将无法处理超过 512 的数据。默认为 64。
- </p>
- <p>
- <b>distanceField</b> - String [必填项] 具有 glsl 距离函数的字符串。函数名称必须是“dist”,带有 vec3 参数。(参见上面的代码)。默认为球体距离。
- </p>
- <p>
- <b>bounds</b> - Int [可选] 将评估有符号距离字段的边界。默认为 1。
- </p>
- <h2>源代码</h2>
- <p>
- [link:https://github.com/mrdoob/three.js/blob/master/examples/jsm/geometries/SDFGeometry.js examples/jsm/geometries/SDFGeometryGenerator.js]
- </p>
- </body>
- </html>
|