@@ -63,7 +63,6 @@ THREE.CanvasRenderer = function ( parameters ) {
6363 _clearBox = new THREE . Box2 ( ) ,
6464 _elemBox = new THREE . Box2 ( ) ,
6565
66- _enableLighting = false ,
6766 _ambientLight = new THREE . Color ( ) ,
6867 _directionalLights = new THREE . Color ( ) ,
6968 _pointLights = new THREE . Color ( ) ,
@@ -276,13 +275,7 @@ THREE.CanvasRenderer = function ( parameters ) {
276275 _context.fillRect( _clipBox.min.x, _clipBox.min.y, _clipBox.max.x - _clipBox.min.x, _clipBox.max.y - _clipBox.min.y );
277276 */
278277
279- _enableLighting = _lights . length > 0 ;
280-
281- if ( _enableLighting === true ) {
282-
283- calculateLights ( ) ;
284-
285- }
278+ calculateLights ( ) ;
286279
287280 for ( var e = 0 , el = _elements . length ; e < el ; e ++ ) {
288281
@@ -641,46 +634,36 @@ THREE.CanvasRenderer = function ( parameters ) {
641634
642635 }
643636
644- if ( _enableLighting === true ) {
645-
646- if ( material . wireframe === false && material . shading == THREE . SmoothShading && element . vertexNormalsLength == 3 ) {
647-
648- _color1 . copy ( _ambientLight ) ;
649- _color2 . copy ( _ambientLight ) ;
650- _color3 . copy ( _ambientLight ) ;
651-
652- calculateLight ( element . v1 . positionWorld , element . vertexNormalsModel [ 0 ] , _color1 ) ;
653- calculateLight ( element . v2 . positionWorld , element . vertexNormalsModel [ 1 ] , _color2 ) ;
654- calculateLight ( element . v3 . positionWorld , element . vertexNormalsModel [ 2 ] , _color3 ) ;
655-
656- _color1 . multiply ( _diffuseColor ) . add ( _emissiveColor ) ;
657- _color2 . multiply ( _diffuseColor ) . add ( _emissiveColor ) ;
658- _color3 . multiply ( _diffuseColor ) . add ( _emissiveColor ) ;
659- _color4 . addColors ( _color2 , _color3 ) . multiplyScalar ( 0.5 ) ;
637+ if ( material . wireframe === false && material . shading == THREE . SmoothShading && element . vertexNormalsLength == 3 ) {
660638
661- _image = getGradientTexture ( _color1 , _color2 , _color3 , _color4 ) ;
639+ _color1 . copy ( _ambientLight ) ;
640+ _color2 . copy ( _ambientLight ) ;
641+ _color3 . copy ( _ambientLight ) ;
662642
663- clipImage ( _v1x , _v1y , _v2x , _v2y , _v3x , _v3y , 0 , 0 , 1 , 0 , 0 , 1 , _image ) ;
643+ calculateLight ( element . v1 . positionWorld , element . vertexNormalsModel [ 0 ] , _color1 ) ;
644+ calculateLight ( element . v2 . positionWorld , element . vertexNormalsModel [ 1 ] , _color2 ) ;
645+ calculateLight ( element . v3 . positionWorld , element . vertexNormalsModel [ 2 ] , _color3 ) ;
664646
665- } else {
647+ _color1 . multiply ( _diffuseColor ) . add ( _emissiveColor ) ;
648+ _color2 . multiply ( _diffuseColor ) . add ( _emissiveColor ) ;
649+ _color3 . multiply ( _diffuseColor ) . add ( _emissiveColor ) ;
650+ _color4 . addColors ( _color2 , _color3 ) . multiplyScalar ( 0.5 ) ;
666651
667- _color . copy ( _ambientLight ) ;
652+ _image = getGradientTexture ( _color1 , _color2 , _color3 , _color4 ) ;
668653
669- calculateLight ( element . centroidModel , element . normalModel , _color ) ;
654+ clipImage ( _v1x , _v1y , _v2x , _v2y , _v3x , _v3y , 0 , 0 , 1 , 0 , 0 , 1 , _image ) ;
670655
671- _color . multiply ( _diffuseColor ) . add ( _emissiveColor ) ;
656+ } else {
672657
673- material . wireframe === true
674- ? strokePath ( _color , material . wireframeLinewidth , material . wireframeLinecap , material . wireframeLinejoin )
675- : fillPath ( _color ) ;
658+ _color . copy ( _ambientLight ) ;
676659
677- }
660+ calculateLight ( element . centroidModel , element . normalModel , _color ) ;
678661
679- } else {
662+ _color . multiply ( _diffuseColor ) . add ( _emissiveColor ) ;
680663
681664 material . wireframe === true
682- ? strokePath ( material . color , material . wireframeLinewidth , material . wireframeLinecap , material . wireframeLinejoin )
683- : fillPath ( material . color ) ;
665+ ? strokePath ( _color , material . wireframeLinewidth , material . wireframeLinecap , material . wireframeLinejoin )
666+ : fillPath ( _color ) ;
684667
685668 }
686669
@@ -825,54 +808,40 @@ THREE.CanvasRenderer = function ( parameters ) {
825808
826809 }
827810
828- if ( _enableLighting === true ) {
811+ if ( material . wireframe === false && material . shading == THREE . SmoothShading && element . vertexNormalsLength == 4 ) {
829812
830- if ( material . wireframe === false && material . shading == THREE . SmoothShading && element . vertexNormalsLength == 4 ) {
813+ _color1 . copy ( _ambientLight ) ;
814+ _color2 . copy ( _ambientLight ) ;
815+ _color3 . copy ( _ambientLight ) ;
816+ _color4 . copy ( _ambientLight ) ;
831817
832- _color1 . copy ( _ambientLight ) ;
833- _color2 . copy ( _ambientLight ) ;
834- _color3 . copy ( _ambientLight ) ;
835- _color4 . copy ( _ambientLight ) ;
818+ calculateLight ( element . v1 . positionWorld , element . vertexNormalsModel [ 0 ] , _color1 ) ;
819+ calculateLight ( element . v2 . positionWorld , element . vertexNormalsModel [ 1 ] , _color2 ) ;
820+ calculateLight ( element . v4 . positionWorld , element . vertexNormalsModel [ 3 ] , _color3 ) ;
821+ calculateLight ( element . v3 . positionWorld , element . vertexNormalsModel [ 2 ] , _color4 ) ;
836822
837- calculateLight ( element . v1 . positionWorld , element . vertexNormalsModel [ 0 ] , _color1 ) ;
838- calculateLight ( element . v2 . positionWorld , element . vertexNormalsModel [ 1 ] , _color2 ) ;
839- calculateLight ( element . v4 . positionWorld , element . vertexNormalsModel [ 3 ] , _color3 ) ;
840- calculateLight ( element . v3 . positionWorld , element . vertexNormalsModel [ 2 ] , _color4 ) ;
823+ _color1 . multiply ( _diffuseColor ) . add ( _emissiveColor ) ;
824+ _color2 . multiply ( _diffuseColor ) . add ( _emissiveColor ) ;
825+ _color3 . multiply ( _diffuseColor ) . add ( _emissiveColor ) ;
826+ _color4 . multiply ( _diffuseColor ) . add ( _emissiveColor ) ;
841827
842- _color1 . multiply ( _diffuseColor ) . add ( _emissiveColor ) ;
843- _color2 . multiply ( _diffuseColor ) . add ( _emissiveColor ) ;
844- _color3 . multiply ( _diffuseColor ) . add ( _emissiveColor ) ;
845- _color4 . multiply ( _diffuseColor ) . add ( _emissiveColor ) ;
846-
847- _image = getGradientTexture ( _color1 , _color2 , _color3 , _color4 ) ;
848-
849- // TODO: UVs are incorrect, v4->v3?
850-
851- drawTriangle ( _v1x , _v1y , _v2x , _v2y , _v4x , _v4y ) ;
852- clipImage ( _v1x , _v1y , _v2x , _v2y , _v4x , _v4y , 0 , 0 , 1 , 0 , 0 , 1 , _image ) ;
853-
854- drawTriangle ( _v5x , _v5y , _v3x , _v3y , _v6x , _v6y ) ;
855- clipImage ( _v5x , _v5y , _v3x , _v3y , _v6x , _v6y , 1 , 0 , 1 , 1 , 0 , 1 , _image ) ;
856-
857- } else {
858-
859- _color . copy ( _ambientLight ) ;
828+ _image = getGradientTexture ( _color1 , _color2 , _color3 , _color4 ) ;
860829
861- calculateLight ( element . centroidModel , element . normalModel , _color ) ;
830+ // TODO: UVs are incorrect, v4->v3?
862831
863- _color . multiply ( _diffuseColor ) . add ( _emissiveColor ) ;
832+ drawTriangle ( _v1x , _v1y , _v2x , _v2y , _v4x , _v4y ) ;
833+ clipImage ( _v1x , _v1y , _v2x , _v2y , _v4x , _v4y , 0 , 0 , 1 , 0 , 0 , 1 , _image ) ;
864834
865- drawQuad ( _v1x , _v1y , _v2x , _v2y , _v3x , _v3y , _v4x , _v4y ) ;
835+ drawTriangle ( _v5x , _v5y , _v3x , _v3y , _v6x , _v6y ) ;
836+ clipImage ( _v5x , _v5y , _v3x , _v3y , _v6x , _v6y , 1 , 0 , 1 , 1 , 0 , 1 , _image ) ;
866837
867- material . wireframe === true
868- ? strokePath ( _color , material . wireframeLinewidth , material . wireframeLinecap , material . wireframeLinejoin )
869- : fillPath ( _color ) ;
838+ } else {
870839
871- }
840+ _color . copy ( _ambientLight ) ;
872841
873- } else {
842+ calculateLight ( element . centroidModel , element . normalModel , _color ) ;
874843
875- _color . addColors ( _diffuseColor , _emissiveColor ) ;
844+ _color . multiply ( _diffuseColor ) . add ( _emissiveColor ) ;
876845
877846 drawQuad ( _v1x , _v1y , _v2x , _v2y , _v3x , _v3y , _v4x , _v4y ) ;
878847
@@ -937,8 +906,6 @@ THREE.CanvasRenderer = function ( parameters ) {
937906
938907 }
939908
940-
941-
942909 } else if ( material instanceof THREE . MeshDepthMaterial ) {
943910
944911 _near = camera . near ;
0 commit comments