|
@@ -65,7 +65,7 @@
|
|
|
|
|
|
// Spheres
|
|
|
|
|
|
- var geometry = new Sphere( 70, 32, 16, true );
|
|
|
+ var geometry1 = new Sphere( 70, 32, 16, true );
|
|
|
|
|
|
var generatedTexture = new THREE.Texture( generateTexture() );
|
|
|
generatedTexture.loaded = 1;
|
|
@@ -86,9 +86,13 @@
|
|
|
materials.push( { material: new THREE.MeshBasicMaterial( { map: generatedTexture } ), overdraw: true, doubleSided: false } );
|
|
|
materials.push( { material: new THREE.MeshLambertMaterial( { map: generatedTexture } ), overdraw: true, doubleSided: false } );
|
|
|
|
|
|
- for ( var i = 0, l = geometry.faces.length; i < l; i ++ ) {
|
|
|
+ // Extra mesh to be broken down for MeshFaceMaterial
|
|
|
+
|
|
|
+ var geometry2 = new Sphere( 70, 32, 16, true );
|
|
|
+
|
|
|
+ for ( var i = 0, l = geometry2.faces.length; i < l; i ++ ) {
|
|
|
|
|
|
- var face = geometry.faces[ i ];
|
|
|
+ var face = geometry2.faces[ i ];
|
|
|
if ( Math.random() > 0.7 ) face.material = [ materials[ Math.floor( Math.random() * materials.length ) ].material ];
|
|
|
|
|
|
}
|
|
@@ -97,9 +101,14 @@
|
|
|
|
|
|
objects = [];
|
|
|
|
|
|
+ var sphere, geometry;
|
|
|
+
|
|
|
for ( var i = 0, l = materials.length; i < l; i ++ ) {
|
|
|
-
|
|
|
- var sphere = new THREE.Mesh( geometry, materials[ i ].material );
|
|
|
+
|
|
|
+ geometry = materials[ i ].material instanceof THREE.MeshFaceMaterial ? geometry2 : geometry1;
|
|
|
+
|
|
|
+ sphere = new THREE.Mesh( geometry, materials[ i ].material );
|
|
|
+
|
|
|
sphere.overdraw = materials[ i ].overdraw;
|
|
|
sphere.doubleSided = materials[ i ].doubleSided;
|
|
|
|