Преглед на файлове

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

Also enabled antialiasing and disabled default postprocessing.
alteredq преди 14 години
родител
ревизия
f45a70896b
променени са 1 файла, в които са добавени 20 реда и са изтрити 3 реда
  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 );
+
+								}
+
+							}
+
+						}
 
 					}