2016-04-07 4 views
0

質問に複数のBoxGeometriesを変換しますか?は、単一BufferedGeometry

var buffer = new THREE.BufferGeometry(); 

      for (var i = 0; i < meshList.length; ++i) { 
       var item = meshList[i]; 
       var geometry = <THREE.BoxGeometry>item.geometry; 
       buffer.fromGeometry(geometry); 
      } 

      buffer.computeBoundingSphere(); 

      var buffer_material = new THREE.MeshPhongMaterial({ 
       color: 0x999999, 
       specular: 0x333333, 
       shininess: 50, 
       side: THREE.DoubleSide, 
       vertexColors: THREE.VertexColors, 
       shading: THREE.SmoothShading 
      }); 

      var buffer_mesh = new THREE.Mesh(buffer, buffer_material); 
      this.Scene.add(buffer_mesh); 

残念ながら、これは完全に動作しません。

今私はこのようなものを持っています。私は1箱(多くの箱の代わりに)を見るだけです。私は '位置'を指定する必要がありますか?もしそうなら、どうしたらいいですか?

ありがとうございます!

答えて

1

あなたはTHREE.Geometry Sをマージし、このようなパターンを使用してTHREE.BufferGeometryに結果を変換することができます:

var geometry = new THREE.Geometry(); 

for (var count = 0; count < 10; count ++) { 

    var geo = new THREE.BoxGeometry(5, 5, 5); 

    geo.translate(THREE.Math.randFloat(- 5, 5), THREE.Math.randFloat(- 5, 5), THREE.Math.randFloat(- 5, 5)); 

    geometry.merge(geo); 

} 

geometry = new THREE.BufferGeometry().fromGeometry(geometry); 

three.js r.75

+0

クール。私はこれを試してみよう! – AlvinfromDiaspar

+0

ちょうど興味がありますが、これは「ピッキング」に影響しますか?最終的には、それぞれ別々のBoxGeometryの衝突検出を行いたいと思います。 – AlvinfromDiaspar

+0

あなたのユースケースによって異なります。さらなる助けが必要な場合は、新しい投稿を作成してください。 – WestLangley

関連する問題