Procházet zdrojové kódy

Compute flat normals when detail is zero

WestLangley před 8 roky
rodič
revize
cd71783f75
1 změnil soubory, kde provedl 10 přidání a 1 odebrání
  1. 10 1
      src/geometries/PolyhedronGeometry.js

+ 10 - 1
src/geometries/PolyhedronGeometry.js

@@ -74,7 +74,16 @@ function PolyhedronBufferGeometry( vertices, indices, radius, detail ) {
 	this.addAttribute( 'position', new Float32BufferAttribute( vertexBuffer, 3 ) );
 	this.addAttribute( 'normal', new Float32BufferAttribute( vertexBuffer.slice(), 3 ) );
 	this.addAttribute( 'uv', new Float32BufferAttribute( uvBuffer, 2 ) );
-	this.normalizeNormals();
+
+	if ( detail === 0 ) {
+
+		BufferGeometry.prototype.computeVertexNormals.call( this ); // flat normals
+
+	} else {
+
+		this.normalizeNormals(); // smooth normals
+
+	}
 
 	// helper functions