提交 74e95712 编写于 作者: M Mr.doob

GLTFLoader: Handle multiple primitives.

上级 c837ea17
...@@ -125,16 +125,20 @@ THREE.GLTFLoader.prototype = { ...@@ -125,16 +125,20 @@ THREE.GLTFLoader.prototype = {
var mesh = meshes[ meshId ]; var mesh = meshes[ meshId ];
var geometry = new THREE.BufferGeometry(); var geometries = {
geometry.name = mesh.name; name: mesh.name,
array: []
};
var primitives = mesh.primitives; var primitives = mesh.primitives;
for ( var i = 0; i < 1; /*primitives.length;*/ i ++ ) { for ( var i = 0; i < primitives.length; i ++ ) {
var primitive = primitives[ 0 ]; var primitive = primitives[ i ];
var attributes = primitive.attributes; var attributes = primitive.attributes;
var geometry = new THREE.BufferGeometry();
if ( primitive.indices ) { if ( primitive.indices ) {
geometry.setIndex( accessors[ primitive.indices ]._bufferattribute ); geometry.setIndex( accessors[ primitive.indices ]._bufferattribute );
...@@ -164,9 +168,11 @@ THREE.GLTFLoader.prototype = { ...@@ -164,9 +168,11 @@ THREE.GLTFLoader.prototype = {
} }
geometries.array.push( geometry );
} }
mesh._geometry = geometry; mesh._geometries = geometries;
} }
...@@ -212,7 +218,20 @@ THREE.GLTFLoader.prototype = { ...@@ -212,7 +218,20 @@ THREE.GLTFLoader.prototype = {
for ( var i = 0; i < node.meshes.length; i ++ ) { for ( var i = 0; i < node.meshes.length; i ++ ) {
var meshId = node.meshes[ i ]; var meshId = node.meshes[ i ];
object.add( new THREE.Mesh( meshes[ meshId ]._geometry, new THREE.MeshNormalMaterial() ) );
var geometries = meshes[ meshId ]._geometries;
var group = new THREE.Group();
group.name = geometries.name;
object.add( group );
var array = geometries.array;
for ( var j = 0; j < array.length; j ++ ) {
group.add( new THREE.Mesh( array[ j ], new THREE.MeshNormalMaterial() ) );
}
} }
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册