|
@@ -429,20 +429,22 @@
|
|
|
|
|
|
|
|
const json = mesh.toJSON();
|
|
const json = mesh.toJSON();
|
|
|
const loader = new THREE.NodeObjectLoader().setNodes( moduleToLib( THREE ) ).setNodeMaterials( moduleToLib( THREE ) );
|
|
const loader = new THREE.NodeObjectLoader().setNodes( moduleToLib( THREE ) ).setNodeMaterials( moduleToLib( THREE ) );
|
|
|
- const serializedMesh = loader.parse( json );
|
|
|
|
|
|
|
+ const serializedMesh = loader.parse( json, () => {
|
|
|
|
|
|
|
|
- serializedMesh.position.x = ( objects.length % 4 ) * 200 - 400;
|
|
|
|
|
- serializedMesh.position.z = Math.floor( objects.length / 4 ) * 200 - 200;
|
|
|
|
|
|
|
+ serializedMesh.position.x = ( objects.length % 4 ) * 200 - 400;
|
|
|
|
|
+ serializedMesh.position.z = Math.floor( objects.length / 4 ) * 200 - 200;
|
|
|
|
|
|
|
|
- const scriptableNode = serializedMesh.material.colorNode;
|
|
|
|
|
|
|
+ const scriptableNode = serializedMesh.material.colorNode;
|
|
|
|
|
|
|
|
- // it's because local.get( 'material' ) is used in the example ( local/global is unserializable )
|
|
|
|
|
- scriptableNode.setLocal( 'material', serializedMesh.material );
|
|
|
|
|
- scriptableNode.setParameter( 'execFrom', 'serialized' );
|
|
|
|
|
|
|
+ // it's because local.get( 'material' ) is used in the example ( local/global is unserializable )
|
|
|
|
|
+ scriptableNode.setLocal( 'material', serializedMesh.material );
|
|
|
|
|
+ scriptableNode.setParameter( 'execFrom', 'serialized' );
|
|
|
|
|
|
|
|
- objects.push( serializedMesh );
|
|
|
|
|
|
|
+ objects.push( serializedMesh );
|
|
|
|
|
|
|
|
- scene.add( serializedMesh );
|
|
|
|
|
|
|
+ scene.add( serializedMesh );
|
|
|
|
|
+
|
|
|
|
|
+ } );
|
|
|
|
|
|
|
|
}
|
|
}
|
|
|
|
|
|