|
@@ -91,40 +91,51 @@
|
|
mesh.rotation.x = - 90 * Math.PI / 180;
|
|
mesh.rotation.x = - 90 * Math.PI / 180;
|
|
scene.addObject( mesh );
|
|
scene.addObject( mesh );
|
|
|
|
|
|
- var color, p, colors = [], colors2 = [], colors3 = [],
|
|
|
|
-
|
|
|
|
- geometry = new Icosahedron( 1 ),
|
|
|
|
- geometry2 = new THREE.Geometry(),
|
|
|
|
- geometry3 = new THREE.Geometry();
|
|
|
|
-
|
|
|
|
- for( var i = 0; i < geometry.vertices.length; i++ ) {
|
|
|
|
-
|
|
|
|
- p = geometry.vertices[ i ].position;
|
|
|
|
-
|
|
|
|
- color = new THREE.Color( 0xffffff );
|
|
|
|
- color.setHSV( ( p.y + 1 ) / 2, 1.0, 1.0 );
|
|
|
|
- colors[ i ] = color;
|
|
|
|
-
|
|
|
|
- color = new THREE.Color( 0xffffff );
|
|
|
|
- color.setHSV( 0.0, ( p.y + 1 ) / 2, 1.0 );
|
|
|
|
- colors2[ i ] = color;
|
|
|
|
-
|
|
|
|
- color = new THREE.Color( 0xffffff );
|
|
|
|
- color.setHSV( 0.125 * i/geometry.vertices.length, 1.0, 1.0 );
|
|
|
|
- colors3[ i ] = color;
|
|
|
|
-
|
|
|
|
|
|
+ var faceIndices = [ 'a', 'b', 'c', 'd' ];
|
|
|
|
+
|
|
|
|
+ var color, f, f2, f3, p, n, vertexIndex,
|
|
|
|
+
|
|
|
|
+ geometry = new Icosahedron( 1 ),
|
|
|
|
+ geometry2 = new Icosahedron( 1 ),
|
|
|
|
+ geometry3 = new Icosahedron( 1 );
|
|
|
|
+
|
|
|
|
+ for( var i = 0; i < geometry.faces.length; i++ ) {
|
|
|
|
+
|
|
|
|
+ f = geometry.faces[ i ];
|
|
|
|
+ f2 = geometry2.faces[ i ];
|
|
|
|
+ f3 = geometry3.faces[ i ];
|
|
|
|
+
|
|
|
|
+ n = ( f instanceof THREE.Face3 ) ? 3 : 4;
|
|
|
|
+
|
|
|
|
+ for( var j = 0; j < n; j++ ) {
|
|
|
|
+
|
|
|
|
+ vertexIndex = f[ faceIndices[ j ] ];
|
|
|
|
+
|
|
|
|
+ p = geometry.vertices[ vertexIndex ].position;
|
|
|
|
+
|
|
|
|
+ color = new THREE.Color( 0xffffff );
|
|
|
|
+ color.setHSV( ( p.y + 1 ) / 2, 1.0, 1.0 );
|
|
|
|
+
|
|
|
|
+ f.vertexColors[ j ] = color;
|
|
|
|
+
|
|
|
|
+ color = new THREE.Color( 0xffffff );
|
|
|
|
+ color.setHSV( 0.0, ( p.y + 1 ) / 2, 1.0 );
|
|
|
|
+
|
|
|
|
+ f2.vertexColors[ j ] = color;
|
|
|
|
+
|
|
|
|
+ color = new THREE.Color( 0xffffff );
|
|
|
|
+ color.setHSV( 0.125 * vertexIndex/geometry.vertices.length, 1.0, 1.0 );
|
|
|
|
+
|
|
|
|
+ f3.vertexColors[ j ] = color;
|
|
|
|
+
|
|
|
|
+ }
|
|
|
|
+
|
|
}
|
|
}
|
|
|
|
|
|
- geometry3.vertices = geometry2.vertices = geometry.vertices;
|
|
|
|
- geometry3.faces = geometry2.faces = geometry.faces;
|
|
|
|
-
|
|
|
|
- geometry.colors = colors;
|
|
|
|
- geometry2.colors = colors2;
|
|
|
|
- geometry3.colors = colors3;
|
|
|
|
|
|
|
|
var materials = [
|
|
var materials = [
|
|
|
|
|
|
- new THREE.MeshLambertMaterial( { color: 0xffffff, shading: THREE.FlatShading, vertexColors: true } ),
|
|
|
|
|
|
+ new THREE.MeshLambertMaterial( { color: 0xffffff, shading: THREE.FlatShading, vertexColors: THREE.VertexColors } ),
|
|
new THREE.MeshBasicMaterial( { color: 0x000000, shading: THREE.FlatShading, wireframe: true } )
|
|
new THREE.MeshBasicMaterial( { color: 0x000000, shading: THREE.FlatShading, wireframe: true } )
|
|
|
|
|
|
];
|
|
];
|