@@ -125,16 +125,20 @@ THREE.GLTFLoader.prototype = {
125
125
126
126
var mesh = meshes [ meshId ] ;
127
127
128
- var geometry = new THREE . BufferGeometry ( ) ;
129
- geometry . name = mesh . name ;
128
+ var geometries = {
129
+ name : mesh . name ,
130
+ array : [ ]
131
+ } ;
130
132
131
133
var primitives = mesh . primitives ;
132
134
133
- for ( var i = 0 ; i < 1 ; /* primitives.length;*/ i ++ ) {
135
+ for ( var i = 0 ; i < primitives . length ; i ++ ) {
134
136
135
- var primitive = primitives [ 0 ] ;
137
+ var primitive = primitives [ i ] ;
136
138
var attributes = primitive . attributes ;
137
139
140
+ var geometry = new THREE . BufferGeometry ( ) ;
141
+
138
142
if ( primitive . indices ) {
139
143
140
144
geometry . setIndex ( accessors [ primitive . indices ] . _bufferattribute ) ;
@@ -164,9 +168,11 @@ THREE.GLTFLoader.prototype = {
164
168
165
169
}
166
170
171
+ geometries . array . push ( geometry ) ;
172
+
167
173
}
168
174
169
- mesh . _geometry = geometry ;
175
+ mesh . _geometries = geometries ;
170
176
171
177
}
172
178
@@ -212,7 +218,20 @@ THREE.GLTFLoader.prototype = {
212
218
for ( var i = 0 ; i < node . meshes . length ; i ++ ) {
213
219
214
220
var meshId = node . meshes [ i ] ;
215
- object . add ( new THREE . Mesh ( meshes [ meshId ] . _geometry , new THREE . MeshNormalMaterial ( ) ) ) ;
221
+
222
+ var geometries = meshes [ meshId ] . _geometries ;
223
+
224
+ var group = new THREE . Group ( ) ;
225
+ group . name = geometries . name ;
226
+ object . add ( group ) ;
227
+
228
+ var array = geometries . array ;
229
+
230
+ for ( var j = 0 ; j < array . length ; j ++ ) {
231
+
232
+ group . add ( new THREE . Mesh ( array [ j ] , new THREE . MeshNormalMaterial ( ) ) ) ;
233
+
234
+ }
216
235
217
236
}
218
237
0 commit comments