[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 ]
[page:WebGLRenderer renderer] -- 用于渲染场景的渲染器。
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]