diff --git a/examples/js/renderers/WebGLDeferredRenderer.js b/examples/js/renderers/WebGLDeferredRenderer.js index 98dd073d4cea0df8a9641311a77257cae502ad2d..1296c55e96728a3a25030ef89f572431b8677512 100644 --- a/examples/js/renderers/WebGLDeferredRenderer.js +++ b/examples/js/renderers/WebGLDeferredRenderer.js @@ -158,9 +158,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 +314,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 +365,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;