|
@@ -1162,9 +1162,22 @@ THREE.GLTFExporter.prototype = {
|
|
var modifiedAttribute = null;
|
|
var modifiedAttribute = null;
|
|
for ( var attributeName in geometry.attributes ) {
|
|
for ( var attributeName in geometry.attributes ) {
|
|
|
|
|
|
|
|
+ // Ignore morph target attributes, which are exported later.
|
|
|
|
+ if ( attributeName.substr( 0, 5 ) === 'morph' ) continue;
|
|
|
|
+
|
|
var attribute = geometry.attributes[ attributeName ];
|
|
var attribute = geometry.attributes[ attributeName ];
|
|
attributeName = nameConversion[ attributeName ] || attributeName.toUpperCase();
|
|
attributeName = nameConversion[ attributeName ] || attributeName.toUpperCase();
|
|
|
|
|
|
|
|
+ // Prefix all geometry attributes except the ones specifically
|
|
|
|
+ // listed in the spec; non-spec attributes are considered custom.
|
|
|
|
+ var validVertexAttributes =
|
|
|
|
+ /^(POSITION|NORMAL|TANGENT|TEXCOORD_\d+|COLOR_\d+|JOINTS_\d+|WEIGHTS_\d+)$/;
|
|
|
|
+ if ( ! validVertexAttributes.test( attributeName ) ) {
|
|
|
|
+
|
|
|
|
+ attributeName = '_' + attributeName;
|
|
|
|
+
|
|
|
|
+ }
|
|
|
|
+
|
|
if ( cachedData.attributes.has( attribute ) ) {
|
|
if ( cachedData.attributes.has( attribute ) ) {
|
|
|
|
|
|
attributes[ attributeName ] = cachedData.attributes.get( attribute );
|
|
attributes[ attributeName ] = cachedData.attributes.get( attribute );
|
|
@@ -1184,15 +1197,11 @@ THREE.GLTFExporter.prototype = {
|
|
|
|
|
|
}
|
|
}
|
|
|
|
|
|
- if ( attributeName.substr( 0, 5 ) !== 'MORPH' ) {
|
|
|
|
-
|
|
|
|
- var accessor = processAccessor( modifiedAttribute || attribute, geometry );
|
|
|
|
- if ( accessor !== null ) {
|
|
|
|
|
|
+ var accessor = processAccessor( modifiedAttribute || attribute, geometry );
|
|
|
|
+ if ( accessor !== null ) {
|
|
|
|
|
|
- attributes[ attributeName ] = accessor;
|
|
|
|
- cachedData.attributes.set( attribute, accessor );
|
|
|
|
-
|
|
|
|
- }
|
|
|
|
|
|
+ attributes[ attributeName ] = accessor;
|
|
|
|
+ cachedData.attributes.set( attribute, accessor );
|
|
|
|
|
|
}
|
|
}
|
|
|
|
|