此处找到三个简化修饰符的示例之一 https://github.com/mrdoob/ Three.js/blob/dev/examples/js/modifiers/SimplifyModifier.js
我知道它需要几何图形,并简化它。
有没有办法用 gltf 模型做到这一点?
是的 — 请参阅 simplifier 示例获取完整代码,但要点是您可以像往常一样使用 SimplifyModifier,除非您需要遍历模型以防它包含多个网格:
const loader = new THREE.GLTFLoader();
loader.load( 'foo.glb', function ( gltf ) {
const model = gltf.scene;
const modifer = new THREE.SimplifyModifier();
model.traverse( function ( o ) {
if ( o.isMesh ) {
const numVertices = o.geometry.attributes.position.count;
o.geometry = modifer.modify( o.geometry, Math.floor( numVertices * 0.9375 ) );
}
} );
scene.add( model );
}, undefined, function ( e ) {
console.error( e );
} );