Sfoglia il codice sorgente

Added heuristics to text example for long side faces to use flat shading.

Also enabled antialiasing and disabled default postprocessing.
alteredq 14 anni fa
parent
commit
f45a70896b
1 ha cambiato i file con 20 aggiunte e 3 eliminazioni
  1. 20 3
      examples/webgl_geometry_text.html

+ 20 - 3
examples/webgl_geometry_text.html

@@ -121,7 +121,7 @@
 			var windowHalfX = window.innerWidth / 2;
 			var windowHalfY = window.innerHeight / 2;
 
-			var postprocessing = { enabled : true };
+			var postprocessing = { enabled : false };
 			var glow = 0.9;
 
 			init();
@@ -222,7 +222,7 @@
 				plane.position.y = 100;
 				scene.addChild( plane );
 
-				renderer = new THREE.WebGLRenderer( { antialias: false } );
+				renderer = new THREE.WebGLRenderer( { antialias: true } );
 				renderer.setSize( window.innerWidth, window.innerHeight );
 
 				renderer.setClearColor( scene.fog.color, 1 );
@@ -416,6 +416,8 @@
 
 				if ( ! bevelEnabled ) {
 
+					var triangleAreaHeuristics = 0.1 * ( height * size );
+
 					for ( var i = 0; i < textGeo.faces.length; i ++ ) {
 
 						var face = textGeo.faces[ i ];
@@ -429,8 +431,23 @@
 
 							}
 
-						}
+							var va = textGeo.vertices[ face.a ].position;
+							var vb = textGeo.vertices[ face.b ].position;
+							var vc = textGeo.vertices[ face.c ].position;
+
+							var s = THREE.GeometryUtils.triangleArea( va, vb, vc );
+
+							if ( s > triangleAreaHeuristics ) {
+
+								for ( var j = 0; j < face.vertexNormals.length; j ++ ) {
 
+									face.vertexNormals[ j ].copy( face.normal );
+
+								}
+
+							}
+
+						}
 
 					}