소스 검색

Added material.emissive support to SVGRenderer too.

Mr.doob 13 년 전
부모
커밋
fbb5f5b75e
1개의 변경된 파일12개의 추가작업 그리고 6개의 파일을 삭제
  1. 12 6
      examples/js/renderers/SVGRenderer.js

+ 12 - 6
examples/js/renderers/SVGRenderer.js

@@ -350,15 +350,18 @@ THREE.SVGRenderer = function () {
 
 			if ( _enableLighting ) {
 
+				var diffuse = material.color;
+				var emissive = material.emissive;
+
 				_color.r = _ambientLight.r;
 				_color.g = _ambientLight.g;
 				_color.b = _ambientLight.b;
 
 				calculateLight( _lights, element.centroidWorld, element.normalWorld, _color );
 
-				_color.r = Math.max( 0, Math.min( material.color.r * _color.r, 1 ) );
-				_color.g = Math.max( 0, Math.min( material.color.g * _color.g, 1 ) );
-				_color.b = Math.max( 0, Math.min( material.color.b * _color.b, 1 ) );
+				_color.r = Math.max( 0, Math.min( diffuse.r * _color.r + emissive.r, 1 ) );
+				_color.g = Math.max( 0, Math.min( diffuse.g * _color.g + emissive.g, 1 ) );
+				_color.b = Math.max( 0, Math.min( diffuse.b * _color.b + emissive.b, 1 ) );
 
 			} else {
 
@@ -407,15 +410,18 @@ THREE.SVGRenderer = function () {
 
 			if ( _enableLighting ) {
 
+				var diffuse = material.color;
+				var emissive = material.emissive;
+
 				_color.r = _ambientLight.r;
 				_color.g = _ambientLight.g;
 				_color.b = _ambientLight.b;
 
 				calculateLight( _lights, element.centroidWorld, element.normalWorld, _color );
 
-				_color.r = Math.max( 0, Math.min( material.color.r * _color.r, 1 ) );
-				_color.g = Math.max( 0, Math.min( material.color.g * _color.g, 1 ) );
-				_color.b = Math.max( 0, Math.min( material.color.b * _color.b, 1 ) );
+				_color.r = Math.max( 0, Math.min( diffuse.r * _color.r + emissive.r, 1 ) );
+				_color.g = Math.max( 0, Math.min( diffuse.g * _color.g + emissive.g, 1 ) );
+				_color.b = Math.max( 0, Math.min( diffuse.b * _color.b + emissive.b, 1 ) );
 
 			} else {