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

时间:2018-08-30 00:21:21

标签: javascript three.js aframe

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

我了解它采用了几何图形,并对其进行了简化。

是否可以使用gltf模型来做到这一点?

1 个答案:

答案 0 :(得分:3)

是-请参考simplifier example以获取完整代码,但是要点是,您可以照常使用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 );

} );