|
@@ -1911,7 +1911,7 @@ THREE.GLTF2Loader = ( function () {
|
|
|
var sampler = samplers[ texture.sampler ] || {};
|
|
|
|
|
|
_texture.magFilter = WEBGL_FILTERS[ sampler.magFilter ] || THREE.LinearFilter;
|
|
|
- _texture.minFilter = WEBGL_FILTERS[ sampler.minFilter ] || THREE.NearestMipMapLinearFilter;
|
|
|
+ _texture.minFilter = WEBGL_FILTERS[ sampler.minFilter ] || THREE.LinearMipMapLinearFilter;
|
|
|
_texture.wrapS = WEBGL_WRAPPINGS[ sampler.wrapS ] || THREE.RepeatWrapping;
|
|
|
_texture.wrapT = WEBGL_WRAPPINGS[ sampler.wrapT ] || THREE.RepeatWrapping;
|
|
|
|
|
@@ -2235,13 +2235,18 @@ THREE.GLTF2Loader = ( function () {
|
|
|
positionAttribute = dependencies.accessors[ target.POSITION ].clone();
|
|
|
var position = geometry.attributes.position;
|
|
|
|
|
|
- for ( var j = 0, jl = positionAttribute.array.length; j < jl; j ++ ) {
|
|
|
+ for ( var j = 0, jl = positionAttribute.count; j < jl; j ++ ) {
|
|
|
|
|
|
- positionAttribute.array[ j ] += position.array[ j ];
|
|
|
+ positionAttribute.setXYZ(
|
|
|
+ j,
|
|
|
+ positionAttribute.getX( j ) + position.getX( j ),
|
|
|
+ positionAttribute.getY( j ) + position.getY( j ),
|
|
|
+ positionAttribute.getZ( j ) + position.getZ( j )
|
|
|
+ );
|
|
|
|
|
|
}
|
|
|
|
|
|
- } else {
|
|
|
+ } else if ( geometry.attributes.position ) {
|
|
|
|
|
|
// Copying the original position not to affect the final position.
|
|
|
// See the formula above.
|
|
@@ -2258,13 +2263,18 @@ THREE.GLTF2Loader = ( function () {
|
|
|
normalAttribute = dependencies.accessors[ target.NORMAL ].clone();
|
|
|
var normal = geometry.attributes.normal;
|
|
|
|
|
|
- for ( var j = 0, jl = normalAttribute.array.length; j < jl; j ++ ) {
|
|
|
+ for ( var j = 0, jl = normalAttribute.count; j < jl; j ++ ) {
|
|
|
|
|
|
- normalAttribute.array[ j ] += normal.array[ j ];
|
|
|
+ normalAttribute.setXYZ(
|
|
|
+ j,
|
|
|
+ normalAttribute.getX( j ) + normal.getX( j ),
|
|
|
+ normalAttribute.getY( j ) + normal.getY( j ),
|
|
|
+ normalAttribute.getZ( j ) + normal.getZ( j )
|
|
|
+ );
|
|
|
|
|
|
}
|
|
|
|
|
|
- } else {
|
|
|
+ } else if ( geometry.attributes.normal ) {
|
|
|
|
|
|
normalAttribute = geometry.attributes.normal.clone();
|
|
|
|
|
@@ -2275,11 +2285,19 @@ THREE.GLTF2Loader = ( function () {
|
|
|
|
|
|
}
|
|
|
|
|
|
- positionAttribute.name = attributeName;
|
|
|
- normalAttribute.name = attributeName;
|
|
|
+ if ( positionAttribute ) {
|
|
|
+
|
|
|
+ positionAttribute.name = attributeName;
|
|
|
+ morphAttributes.position.push( positionAttribute );
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ if ( normalAttribute ) {
|
|
|
|
|
|
- morphAttributes.position.push( positionAttribute );
|
|
|
- morphAttributes.normal.push( normalAttribute );
|
|
|
+ normalAttribute.name = attributeName;
|
|
|
+ morphAttributes.normal.push( normalAttribute );
|
|
|
+
|
|
|
+ }
|
|
|
|
|
|
}
|
|
|
|