A-Frame / THREE.js,简化 gltf[glb] 模型上的修饰符

819*_*ike 1 javascript three.js aframe

此处找到的三个简化修饰符中的示例之一 https://github.com/mrdoob/three.js/blob/dev/examples/js/modifiers/SimplifyModifier.js

我理解它采用几何图形并简化它。

有没有办法用 gltf 模型做到这一点?

Don*_*rdy 5

是的 - 请参阅简化程序示例以获取完整代码,但要点是您可以像往常一样使用 SimplifyModifier,除非您需要遍历模型,以防它包含多个网格:

var loader = new THREE.GLTFLoader();
loader.load( 'foo.glb', function ( gltf ) {

  var model = gltf.scene;
  var modifer = new THREE.SimplifyModifier();

  model.traverse( function ( o ) {

    if ( o.isMesh ) {

      var 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 );

} );
Run Code Online (Sandbox Code Playgroud)