Browse Source

USDZExporter: Log a warning when matrixWorld has a negative scale.

Mr.doob 4 years ago
parent
commit
a40bb1ae1d
2 changed files with 13 additions and 0 deletions
  1. 7 0
      examples/js/exporters/USDZExporter.js
  2. 6 0
      examples/jsm/exporters/USDZExporter.js

+ 7 - 0
examples/js/exporters/USDZExporter.js

@@ -141,6 +141,13 @@
 
 
 		const name = 'Object_' + object.id;
 		const name = 'Object_' + object.id;
 		const transform = buildMatrix( object.matrixWorld );
 		const transform = buildMatrix( object.matrixWorld );
+
+		if ( object.matrixWorld.determinant() < 0 ) {
+
+			console.warn( 'THREE.USDZExporter: USDZ does not support negative scales', object );
+
+		}
+
 		return `def Xform "${name}" (
 		return `def Xform "${name}" (
     prepend references = @./geometries/Geometry_${geometry.id}.usd@</Geometry>
     prepend references = @./geometries/Geometry_${geometry.id}.usd@</Geometry>
 )
 )

+ 6 - 0
examples/jsm/exporters/USDZExporter.js

@@ -155,6 +155,12 @@ function buildXform( object, geometry, material ) {
 	const name = 'Object_' + object.id;
 	const name = 'Object_' + object.id;
 	const transform = buildMatrix( object.matrixWorld );
 	const transform = buildMatrix( object.matrixWorld );
 
 
+	if ( object.matrixWorld.determinant() < 0 ) {
+
+		console.warn( 'THREE.USDZExporter: USDZ does not support negative scales', object );
+
+	}
+
 	return `def Xform "${ name }" (
 	return `def Xform "${ name }" (
     prepend references = @./geometries/Geometry_${ geometry.id }.usd@</Geometry>
     prepend references = @./geometries/Geometry_${ geometry.id }.usd@</Geometry>
 )
 )