SDF几何体生成器([name])

[name] 从有符号距离函数 生成 [page:BufferGeometry] 实例。
使用 Mikola Lysenko 的等值面。

引入

[name] 是一个附加组件,必须显式导入。请参阅 [link:#manual/introduction/Installation Installation / Addons].

import { SDFGeometryGenerator } from 'three/addons/geometries/SDFGeometryGenerator.js';

代码示例

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

例子

[example:webgl_geometry_sdf geometry / sdf ]

构造函数

[name]( [param:WebGLRenderer renderer] )

[page:WebGLRenderer renderer] -- 用于渲染场景的渲染器。

方法

[method:BufferGeometry generate]( [param:Int resolution], [param:String distanceField], [param:Int bounds] )

resolution - Int [必填项] 用于三角测量的“体素”数量。必须是 2 的幂。256 之后会变得很重,大多数机器将无法处理超过 512 的数据。默认为 64。

distanceField - String [必填项] 具有 glsl 距离函数的字符串。函数名称必须是“dist”,带有 vec3 参数。(参见上面的代码)。默认为球体距离。

bounds - Int [可选] 将评估有符号距离字段的边界。默认为 1。

源代码

[link:https://github.com/mrdoob/three.js/blob/master/examples/jsm/geometries/SDFGeometry.js examples/jsm/geometries/SDFGeometryGenerator.js]