Browse Source

Merge remote-tracking branch 'alteredq/dev' into dev

Mr.doob 12 years ago
parent
commit
744264a64e

+ 16 - 9
examples/js/renderers/WebGLDeferredRenderer.js

@@ -14,8 +14,7 @@ THREE.WebGLDeferredRenderer = function ( parameters ) {
 	var scaledWidth = Math.floor( scale * width );
 	var scaledHeight = Math.floor( scale * height );
 
-	var brightness = parameters.brightness;
-
+	var brightness = parameters.brightness !== undefined ?  parameters.brightness : 1;
 	var antialias = parameters.antialias !== undefined ? parameters.antialias : false;
 
 	this.renderer = parameters.renderer;
@@ -158,9 +157,9 @@ THREE.WebGLDeferredRenderer = function ( parameters ) {
 		var wrapAround = originalMaterial.wrapAround !== undefined ? ( originalMaterial.wrapAround ? -1 : 1 ) : 1;
 		var additiveSpecular = originalMaterial.metal !== undefined ? ( originalMaterial.metal ? 1 : -1 ) : -1;
 
-		uniforms.emissive.value.copy( emissive );
-		uniforms.diffuse.value.copy( diffuse );
-		uniforms.specular.value.copy( specular );
+		uniforms.emissive.value.copyGammaToLinear( emissive );
+		uniforms.diffuse.value.copyGammaToLinear( diffuse );
+		uniforms.specular.value.copyGammaToLinear( specular );
 		uniforms.shininess.value = shininess;
 		uniforms.wrapAround.value = wrapAround;
 		uniforms.additiveSpecular.value = additiveSpecular;
@@ -314,10 +313,14 @@ THREE.WebGLDeferredRenderer = function ( parameters ) {
 
 		}
 
+		// linear space
+
+		var intensity = light.intensity * light.intensity;
+
 		materialLight.uniforms[ "lightPos" ].value = light.position;
 		materialLight.uniforms[ "lightRadius" ].value = distance;
-		materialLight.uniforms[ "lightIntensity" ].value = light.intensity;
-		materialLight.uniforms[ "lightColor" ].value = light.color;
+		materialLight.uniforms[ "lightIntensity" ].value = intensity;
+		materialLight.uniforms[ "lightColor" ].value.copyGammaToLinear( light.color );
 
 		materialLight.uniforms[ "viewWidth" ].value = scaledWidth;
 		materialLight.uniforms[ "viewHeight" ].value = scaledHeight;
@@ -361,9 +364,13 @@ THREE.WebGLDeferredRenderer = function ( parameters ) {
 
 		} );
 
+		// linear space
+
+		var intensity = light.intensity * light.intensity;
+
 		materialLight.uniforms[ "lightDir" ].value = light.position;
-		materialLight.uniforms[ "lightIntensity" ].value = light.intensity;
-		materialLight.uniforms[ "lightColor" ].value = light.color;
+		materialLight.uniforms[ "lightIntensity" ].value = intensity;
+		materialLight.uniforms[ "lightColor" ].value.copyGammaToLinear( light.color );
 
 		materialLight.uniforms[ "viewWidth" ].value = scaledWidth;
 		materialLight.uniforms[ "viewHeight" ].value = scaledHeight;

+ 0 - 2
examples/webgl_lights_deferred_animation.html

@@ -183,9 +183,7 @@
 					var light = new THREE.PointLight( 0xffffff, 2.0, distance );
 
 					c.set( Math.random(), Math.random(), Math.random() ).normalize();
-
 					light.color.setRGB( c.x, c.y, c.z );
-					light.color.convertGammaToLinear();
 
 					scene.add( light );
 					lights.push( light );

+ 1 - 3
examples/webgl_lights_deferred_pointlights.html

@@ -111,7 +111,7 @@
 
 				// renderer
 
-				renderer = new THREE.WebGLDeferredRenderer( { width: WIDTH, height: HEIGHT, scale: SCALE, brightness: 2, antialias: true } );
+				renderer = new THREE.WebGLDeferredRenderer( { width: WIDTH, height: HEIGHT, scale: SCALE, antialias: true } );
 
 				renderer.domElement.style.position = "absolute";
 				renderer.domElement.style.top = MARGIN + "px";
@@ -178,9 +178,7 @@
 					var light = new THREE.PointLight( 0xffffff, 2.0, distance );
 
 					c.set( Math.random(), Math.random(), Math.random() ).normalize();
-
 					light.color.setRGB( c.x, c.y, c.z );
-					light.color.convertGammaToLinear();
 
 					scene.add( light );
 					lights.push( light );