瀏覽代碼

SoftwareRenderer: Simplified code.

Mr.doob 10 年之前
父節點
當前提交
90918361c7
共有 1 個文件被更改,包括 10 次插入41 次删除
  1. 10 41
      examples/js/renderers/SoftwareRenderer.js

+ 10 - 41
examples/js/renderers/SoftwareRenderer.js

@@ -301,6 +301,7 @@ THREE.SoftwareRenderer = function ( parameters ) {
 	}
 
 	function getPalette( material, bSimulateSpecular ) {
+		var i = 0, j = 0;
 		var diffuseR = material.color.r * 255;
 		var diffuseG = material.color.g * 255;
 		var diffuseB = material.color.b * 255;
@@ -308,58 +309,26 @@ THREE.SoftwareRenderer = function ( parameters ) {
 
 		if ( bSimulateSpecular ) {
 
-			var i = 0, j = 0;
 			while(i < 204) {
-				var r = i * diffuseR / 204;
-				var g = i * diffuseG / 204;
-				var b = i * diffuseB / 204;
-				if(r > 255)
-					r = 255;
-				if(g > 255)
-					g = 255;
-				if(b > 255)
-					b = 255;
-
-				palette[j++] = r;
-				palette[j++] = g;
-				palette[j++] = b;
+				palette[j++] = Math.min( i * diffuseR / 204, 255 );
+				palette[j++] = Math.min( i * diffuseG / 204, 255 );
+				palette[j++] = Math.min( i * diffuseB / 204, 255 );
 				++i;
 			}
 
 			while(i < 256) { // plus specular highlight
-				var r = diffuseR + (i - 204) * (255 - diffuseR) / 82;
-				var g = diffuseG + (i - 204) * (255 - diffuseG) / 82;
-				var b = diffuseB + (i - 204) * (255 - diffuseB) / 82;
-				if(r > 255)
-					r = 255;
-				if(g > 255)
-					g = 255;
-				if(b > 255)
-					b = 255;
-
-				palette[j++] = r;
-				palette[j++] = g;
-				palette[j++] = b;
+				palette[j++] = Math.min( diffuseR + (i - 204) * (255 - diffuseR) / 82, 255 );
+				palette[j++] = Math.min( diffuseG + (i - 204) * (255 - diffuseG) / 82, 255 );
+				palette[j++] = Math.min( diffuseB + (i - 204) * (255 - diffuseB) / 82, 255 );
 				++i;
 			}
 
 		} else {
 
-			var i = 0, j = 0;
 			while(i < 256) {
-				var r = i * diffuseR / 255;
-				var g = i * diffuseG / 255;
-				var b = i * diffuseB / 255;
-				if(r > 255)
-					r = 255;
-				if(g > 255)
-					g = 255;
-				if(b > 255)
-					b = 255;
-
-				palette[j++] = r;
-				palette[j++] = g;
-				palette[j++] = b;
+				palette[j++] = Math.min( i * diffuseR / 255, 255 );
+				palette[j++] = Math.min( i * diffuseG / 255, 255 );
+				palette[j++] = Math.min( i * diffuseB / 255, 255 );
 				++i;
 			}