Three.js法线不正确

时间:2015-01-01 21:23:15

标签: three.js intersection normals

我必须编写脚本以在网格上显示法线。在最小的脚本上,一切正常。如果我在我现有的应用程序中使用相同的模型,则eveything是错误的。在相机前面,正常检测似乎是正确的,但是一旦我旋转网格,正常检测就不好了。 在这两个脚本中,我使用raycaster来获取交集,我使用:

                var p = intersects[ 0 ].point;
                intersection.point.copy( p );
                var n = intersects[ 0 ].face.normal.clone();
                n.multiplyScalar( 100 );
                n.add( intersects[ 0 ].point );
                intersection.normal.copy( intersects[ 0 ].face.normal );

                line.geometry.vertices[ 0 ].copy( intersection.point );
                line.geometry.vertices[ 1 ].copy( n );
                line.geometry.verticesNeedUpdate = true;

得到正常。

什么可能导致这种差异,因为我在两个脚本中使用相同的网格和相同的命令来获取法线?

1 个答案:

答案 0 :(得分:0)

我发现了问题的根源:

  • 在工作脚本中,我使用Orbitcontrols来转换网格;

  • 在非工作脚本中,我自己正在转换网格,似乎法线没有更新。发生的事情是原点是正确的,但正常方向与网格任何变换之前相同。转换不适用于法线。我没有进一步挖掘并切换到OrbitControls。