|
@@ -63,7 +63,6 @@ THREE.CanvasRenderer = function ( parameters ) {
|
|
_clearBox = new THREE.Box2(),
|
|
_clearBox = new THREE.Box2(),
|
|
_elemBox = new THREE.Box2(),
|
|
_elemBox = new THREE.Box2(),
|
|
|
|
|
|
- _enableLighting = false,
|
|
|
|
_ambientLight = new THREE.Color(),
|
|
_ambientLight = new THREE.Color(),
|
|
_directionalLights = new THREE.Color(),
|
|
_directionalLights = new THREE.Color(),
|
|
_pointLights = new THREE.Color(),
|
|
_pointLights = new THREE.Color(),
|
|
@@ -276,13 +275,7 @@ THREE.CanvasRenderer = function ( parameters ) {
|
|
_context.fillRect( _clipBox.min.x, _clipBox.min.y, _clipBox.max.x - _clipBox.min.x, _clipBox.max.y - _clipBox.min.y );
|
|
_context.fillRect( _clipBox.min.x, _clipBox.min.y, _clipBox.max.x - _clipBox.min.x, _clipBox.max.y - _clipBox.min.y );
|
|
*/
|
|
*/
|
|
|
|
|
|
- _enableLighting = _lights.length > 0;
|
|
|
|
-
|
|
|
|
- if ( _enableLighting === true ) {
|
|
|
|
-
|
|
|
|
- calculateLights();
|
|
|
|
-
|
|
|
|
- }
|
|
|
|
|
|
+ calculateLights();
|
|
|
|
|
|
for ( var e = 0, el = _elements.length; e < el; e++ ) {
|
|
for ( var e = 0, el = _elements.length; e < el; e++ ) {
|
|
|
|
|
|
@@ -641,46 +634,36 @@ THREE.CanvasRenderer = function ( parameters ) {
|
|
|
|
|
|
}
|
|
}
|
|
|
|
|
|
- if ( _enableLighting === true ) {
|
|
|
|
-
|
|
|
|
- if ( material.wireframe === false && material.shading == THREE.SmoothShading && element.vertexNormalsLength == 3 ) {
|
|
|
|
-
|
|
|
|
- _color1.copy( _ambientLight );
|
|
|
|
- _color2.copy( _ambientLight );
|
|
|
|
- _color3.copy( _ambientLight );
|
|
|
|
-
|
|
|
|
- calculateLight( element.v1.positionWorld, element.vertexNormalsModel[ 0 ], _color1 );
|
|
|
|
- calculateLight( element.v2.positionWorld, element.vertexNormalsModel[ 1 ], _color2 );
|
|
|
|
- calculateLight( element.v3.positionWorld, element.vertexNormalsModel[ 2 ], _color3 );
|
|
|
|
-
|
|
|
|
- _color1.multiply( _diffuseColor ).add( _emissiveColor );
|
|
|
|
- _color2.multiply( _diffuseColor ).add( _emissiveColor );
|
|
|
|
- _color3.multiply( _diffuseColor ).add( _emissiveColor );
|
|
|
|
- _color4.addColors( _color2, _color3 ).multiplyScalar( 0.5 );
|
|
|
|
|
|
+ if ( material.wireframe === false && material.shading == THREE.SmoothShading && element.vertexNormalsLength == 3 ) {
|
|
|
|
|
|
- _image = getGradientTexture( _color1, _color2, _color3, _color4 );
|
|
|
|
|
|
+ _color1.copy( _ambientLight );
|
|
|
|
+ _color2.copy( _ambientLight );
|
|
|
|
+ _color3.copy( _ambientLight );
|
|
|
|
|
|
- clipImage( _v1x, _v1y, _v2x, _v2y, _v3x, _v3y, 0, 0, 1, 0, 0, 1, _image );
|
|
|
|
|
|
+ calculateLight( element.v1.positionWorld, element.vertexNormalsModel[ 0 ], _color1 );
|
|
|
|
+ calculateLight( element.v2.positionWorld, element.vertexNormalsModel[ 1 ], _color2 );
|
|
|
|
+ calculateLight( element.v3.positionWorld, element.vertexNormalsModel[ 2 ], _color3 );
|
|
|
|
|
|
- } else {
|
|
|
|
|
|
+ _color1.multiply( _diffuseColor ).add( _emissiveColor );
|
|
|
|
+ _color2.multiply( _diffuseColor ).add( _emissiveColor );
|
|
|
|
+ _color3.multiply( _diffuseColor ).add( _emissiveColor );
|
|
|
|
+ _color4.addColors( _color2, _color3 ).multiplyScalar( 0.5 );
|
|
|
|
|
|
- _color.copy( _ambientLight );
|
|
|
|
|
|
+ _image = getGradientTexture( _color1, _color2, _color3, _color4 );
|
|
|
|
|
|
- calculateLight( element.centroidModel, element.normalModel, _color );
|
|
|
|
|
|
+ clipImage( _v1x, _v1y, _v2x, _v2y, _v3x, _v3y, 0, 0, 1, 0, 0, 1, _image );
|
|
|
|
|
|
- _color.multiply( _diffuseColor ).add( _emissiveColor );
|
|
|
|
|
|
+ } else {
|
|
|
|
|
|
- material.wireframe === true
|
|
|
|
- ? strokePath( _color, material.wireframeLinewidth, material.wireframeLinecap, material.wireframeLinejoin )
|
|
|
|
- : fillPath( _color );
|
|
|
|
|
|
+ _color.copy( _ambientLight );
|
|
|
|
|
|
- }
|
|
|
|
|
|
+ calculateLight( element.centroidModel, element.normalModel, _color );
|
|
|
|
|
|
- } else {
|
|
|
|
|
|
+ _color.multiply( _diffuseColor ).add( _emissiveColor );
|
|
|
|
|
|
material.wireframe === true
|
|
material.wireframe === true
|
|
- ? strokePath( material.color, material.wireframeLinewidth, material.wireframeLinecap, material.wireframeLinejoin )
|
|
|
|
- : fillPath( material.color );
|
|
|
|
|
|
+ ? strokePath( _color, material.wireframeLinewidth, material.wireframeLinecap, material.wireframeLinejoin )
|
|
|
|
+ : fillPath( _color );
|
|
|
|
|
|
}
|
|
}
|
|
|
|
|
|
@@ -825,54 +808,40 @@ THREE.CanvasRenderer = function ( parameters ) {
|
|
|
|
|
|
}
|
|
}
|
|
|
|
|
|
- if ( _enableLighting === true ) {
|
|
|
|
|
|
+ if ( material.wireframe === false && material.shading == THREE.SmoothShading && element.vertexNormalsLength == 4 ) {
|
|
|
|
|
|
- if ( material.wireframe === false && material.shading == THREE.SmoothShading && element.vertexNormalsLength == 4 ) {
|
|
|
|
|
|
+ _color1.copy( _ambientLight );
|
|
|
|
+ _color2.copy( _ambientLight );
|
|
|
|
+ _color3.copy( _ambientLight );
|
|
|
|
+ _color4.copy( _ambientLight );
|
|
|
|
|
|
- _color1.copy( _ambientLight );
|
|
|
|
- _color2.copy( _ambientLight );
|
|
|
|
- _color3.copy( _ambientLight );
|
|
|
|
- _color4.copy( _ambientLight );
|
|
|
|
|
|
+ calculateLight( element.v1.positionWorld, element.vertexNormalsModel[ 0 ], _color1 );
|
|
|
|
+ calculateLight( element.v2.positionWorld, element.vertexNormalsModel[ 1 ], _color2 );
|
|
|
|
+ calculateLight( element.v4.positionWorld, element.vertexNormalsModel[ 3 ], _color3 );
|
|
|
|
+ calculateLight( element.v3.positionWorld, element.vertexNormalsModel[ 2 ], _color4 );
|
|
|
|
|
|
- calculateLight( element.v1.positionWorld, element.vertexNormalsModel[ 0 ], _color1 );
|
|
|
|
- calculateLight( element.v2.positionWorld, element.vertexNormalsModel[ 1 ], _color2 );
|
|
|
|
- calculateLight( element.v4.positionWorld, element.vertexNormalsModel[ 3 ], _color3 );
|
|
|
|
- calculateLight( element.v3.positionWorld, element.vertexNormalsModel[ 2 ], _color4 );
|
|
|
|
|
|
+ _color1.multiply( _diffuseColor ).add( _emissiveColor );
|
|
|
|
+ _color2.multiply( _diffuseColor ).add( _emissiveColor );
|
|
|
|
+ _color3.multiply( _diffuseColor ).add( _emissiveColor );
|
|
|
|
+ _color4.multiply( _diffuseColor ).add( _emissiveColor );
|
|
|
|
|
|
- _color1.multiply( _diffuseColor ).add( _emissiveColor );
|
|
|
|
- _color2.multiply( _diffuseColor ).add( _emissiveColor );
|
|
|
|
- _color3.multiply( _diffuseColor ).add( _emissiveColor );
|
|
|
|
- _color4.multiply( _diffuseColor ).add( _emissiveColor );
|
|
|
|
-
|
|
|
|
- _image = getGradientTexture( _color1, _color2, _color3, _color4 );
|
|
|
|
-
|
|
|
|
- // TODO: UVs are incorrect, v4->v3?
|
|
|
|
-
|
|
|
|
- drawTriangle( _v1x, _v1y, _v2x, _v2y, _v4x, _v4y );
|
|
|
|
- clipImage( _v1x, _v1y, _v2x, _v2y, _v4x, _v4y, 0, 0, 1, 0, 0, 1, _image );
|
|
|
|
-
|
|
|
|
- drawTriangle( _v5x, _v5y, _v3x, _v3y, _v6x, _v6y );
|
|
|
|
- clipImage( _v5x, _v5y, _v3x, _v3y, _v6x, _v6y, 1, 0, 1, 1, 0, 1, _image );
|
|
|
|
-
|
|
|
|
- } else {
|
|
|
|
-
|
|
|
|
- _color.copy( _ambientLight );
|
|
|
|
|
|
+ _image = getGradientTexture( _color1, _color2, _color3, _color4 );
|
|
|
|
|
|
- calculateLight( element.centroidModel, element.normalModel, _color );
|
|
|
|
|
|
+ // TODO: UVs are incorrect, v4->v3?
|
|
|
|
|
|
- _color.multiply( _diffuseColor ).add( _emissiveColor );
|
|
|
|
|
|
+ drawTriangle( _v1x, _v1y, _v2x, _v2y, _v4x, _v4y );
|
|
|
|
+ clipImage( _v1x, _v1y, _v2x, _v2y, _v4x, _v4y, 0, 0, 1, 0, 0, 1, _image );
|
|
|
|
|
|
- drawQuad( _v1x, _v1y, _v2x, _v2y, _v3x, _v3y, _v4x, _v4y );
|
|
|
|
|
|
+ drawTriangle( _v5x, _v5y, _v3x, _v3y, _v6x, _v6y );
|
|
|
|
+ clipImage( _v5x, _v5y, _v3x, _v3y, _v6x, _v6y, 1, 0, 1, 1, 0, 1, _image );
|
|
|
|
|
|
- material.wireframe === true
|
|
|
|
- ? strokePath( _color, material.wireframeLinewidth, material.wireframeLinecap, material.wireframeLinejoin )
|
|
|
|
- : fillPath( _color );
|
|
|
|
|
|
+ } else {
|
|
|
|
|
|
- }
|
|
|
|
|
|
+ _color.copy( _ambientLight );
|
|
|
|
|
|
- } else {
|
|
|
|
|
|
+ calculateLight( element.centroidModel, element.normalModel, _color );
|
|
|
|
|
|
- _color.addColors( _diffuseColor, _emissiveColor );
|
|
|
|
|
|
+ _color.multiply( _diffuseColor ).add( _emissiveColor );
|
|
|
|
|
|
drawQuad( _v1x, _v1y, _v2x, _v2y, _v3x, _v3y, _v4x, _v4y );
|
|
drawQuad( _v1x, _v1y, _v2x, _v2y, _v3x, _v3y, _v4x, _v4y );
|
|
|
|
|
|
@@ -937,8 +906,6 @@ THREE.CanvasRenderer = function ( parameters ) {
|
|
|
|
|
|
}
|
|
}
|
|
|
|
|
|
-
|
|
|
|
-
|
|
|
|
} else if ( material instanceof THREE.MeshDepthMaterial ) {
|
|
} else if ( material instanceof THREE.MeshDepthMaterial ) {
|
|
|
|
|
|
_near = camera.near;
|
|
_near = camera.near;
|