Browse Source

Ensure face vertex normals are unique.

WestLangley 11 years ago
parent
commit
21c138a3f1
1 changed files with 5 additions and 14 deletions
  1. 5 14
      src/extras/geometries/TorusGeometry.js

+ 5 - 14
src/extras/geometries/TorusGeometry.js

@@ -39,6 +39,7 @@ THREE.TorusGeometry = function ( radius, tube, radialSegments, tubularSegments,
 			normals.push( vertex.clone().sub( center ).normalize() );
 
 		}
+
 	}
 
 
@@ -51,30 +52,20 @@ THREE.TorusGeometry = function ( radius, tube, radialSegments, tubularSegments,
 			var c = ( this.tubularSegments + 1 ) * ( j - 1 ) + i;
 			var d = ( this.tubularSegments + 1 ) * j + i;
 
-			var face = new THREE.Face3( a, b, d, [ normals[ a ], normals[ b ], normals[ d ] ] );
-			face.normal.add( normals[ a ] );
-			face.normal.add( normals[ b ] );
-			face.normal.add( normals[ d ] );
-			face.normal.normalize();
-
+			var face = new THREE.Face3( a, b, d, [ normals[ a ].clone(), normals[ b ].clone(), normals[ d ].clone() ] );
 			this.faces.push( face );
-
 			this.faceVertexUvs[ 0 ].push( [ uvs[ a ].clone(), uvs[ b ].clone(), uvs[ d ].clone() ] );
 
-			face = new THREE.Face3( b, c, d, [ normals[ b ], normals[ c ], normals[ d ] ] );
-			face.normal.add( normals[ b ] );
-			face.normal.add( normals[ c ] );
-			face.normal.add( normals[ d ] );
-			face.normal.normalize();
-
+			face = new THREE.Face3( b, c, d, [ normals[ b ].clone(), normals[ c ].clone(), normals[ d ].clone() ] );
 			this.faces.push( face );
-
 			this.faceVertexUvs[ 0 ].push( [ uvs[ b ].clone(), uvs[ c ].clone(), uvs[ d ].clone() ] );
+
 		}
 
 	}
 
 	this.computeCentroids();
+	this.computeFaceNormals();
 
 };