提交 5b9052ef 编写于 作者: M Mr.doob

Updated builds.

上级 76cebbf6
......@@ -8154,11 +8154,15 @@ THREE.Projector = function () {
var normals = [];
var object = null;
var material = null;
var normalMatrix = new THREE.Matrix3();
var setObject = function ( value ) {
object = value;
material = object.material;
normalMatrix.getNormalMatrix( object.matrixWorld );
normals.length = 0;
......@@ -8201,14 +8205,19 @@ THREE.Projector = function () {
};
var checkVerticesVisibility = function ( v1, v2, v3 ) {
return v1.visible === true && v2.visible === true && v3.visible === true;
};
var checkTriangleVisibility = function ( v1, v2, v3 ) {
_points3[ 0 ] = v1.positionScreen;
_points3[ 1 ] = v2.positionScreen;
_points3[ 2 ] = v3.positionScreen;
if ( v1.visible === true || v2.visible === true || v3.visible === true ||
_clipBox.isIntersectionBox( _boundingBox.setFromPoints( _points3 ) ) ) {
if ( _clipBox.isIntersectionBox( _boundingBox.setFromPoints( _points3 ) ) ) {
return ( ( v3.positionScreen.x - v1.positionScreen.x ) *
( v2.positionScreen.y - v1.positionScreen.y ) -
......@@ -8245,7 +8254,9 @@ THREE.Projector = function () {
var v2 = _vertexPool[ b ];
var v3 = _vertexPool[ c ];
if ( checkTriangleVisibility( v1, v2, v3 ) === true ) {
if ( checkVerticesVisibility( v1, v2, v3 ) === false ) return;
if ( material.side === THREE.DoubleSide || checkTriangleVisibility( v1, v2, v3 ) === true ) {
_face = getNextFaceInPool();
......@@ -8278,6 +8289,7 @@ THREE.Projector = function () {
return {
setObject: setObject,
projectVertex: projectVertex,
checkVerticesVisibility: checkVerticesVisibility,
checkTriangleVisibility: checkTriangleVisibility,
pushVertex: pushVertex,
pushNormal: pushNormal,
......@@ -8338,11 +8350,15 @@ THREE.Projector = function () {
}
var normals = attributes.normal.array;
if ( attributes.normal !== undefined ) {
var normals = attributes.normal.array;
for ( var i = 0, l = normals.length; i < l; i += 3 ) {
for ( var i = 0, l = normals.length; i < l; i += 3 ) {
renderList.pushNormal( normals[ i ], normals[ i + 1 ], normals[ i + 2 ] );
renderList.pushNormal( normals[ i ], normals[ i + 1 ], normals[ i + 2 ] );
}
}
......@@ -8464,10 +8480,14 @@ THREE.Projector = function () {
}
if ( renderList.checkVerticesVisibility( v1, v2, v3 ) === false ) continue;
var visible = renderList.checkTriangleVisibility( v1, v2, v3 );
if ( ( visible === false && side === THREE.FrontSide ) ||
( visible === true && side === THREE.BackSide ) ) continue;
if ( side !== THREE.DoubleSide ) {
if ( side === THREE.FrontSide && visible === false ) continue;
if ( side === THREE.BackSide && visible === true ) continue;
}
_face = getNextFaceInPool();
......@@ -17008,6 +17028,14 @@ THREE.CanvasRenderer = function ( parameters ) {
? strokePath( _color, material.wireframeLinewidth, material.wireframeLinecap, material.wireframeLinejoin )
: fillPath( _color );
} else {
_color.setRGB( 1, 1, 1 );
material.wireframe === true
? strokePath( _color, material.wireframeLinewidth, material.wireframeLinecap, material.wireframeLinejoin )
: fillPath( _color );
}
}
......
因为 它太大了无法显示 source diff 。你可以改为 查看blob
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册