【问题标题】:Three.js normals update on object rotationThree.js 法线更新对象旋转
【发布时间】:2015-04-28 19:04:08
【问题描述】:

我使用 3D 对象作为一些网格的容器。我正在使用正交相机。我像这样将容器垂直旋转 90°:

        meshContainer.rotation.x = 0;
        meshContainer.rotation.y = - 90 * Math.PI / 180;
        meshContainer.rotation.z = 0;
        camera.updateProjectionMatrix();

我必须根据它们相对于相机的方向对容器内的网格进行操作。所以,我做了这个测试:

            var vector = new THREE.Vector3( 0, 0, -1 );
            vector.applyQuaternion(camera.quaternion);

            if (vector.dot(geom.faces[i].normal) < 0) { ... }           

goem 是容器内一个网格的几何形状。

我只想检查每张脸是否在“看着”相机。当我使用鼠标控件旋转容器但不使用上述旋转时,它可以正常工作。当我查看网格几何时,似乎在进行容器旋转时面的法线没有更新。

我试过这个:

        mesh[value].geometry.computeFaceNormals();
        mesh[value].geometry.computeVertexNormals();

容器旋转后在每个网格上,但没有结果。

有人知道该怎么做吗?

【问题讨论】:

    标签: object rotation three.js mesh normals


    【解决方案1】:

    必须更改相机位置,但不能更改网格容器,一切都很好

    【讨论】:

      猜你喜欢
      • 2013-08-06
      • 2014-10-24
      • 1970-01-01
      • 1970-01-01
      • 2020-09-29
      • 2015-01-06
      • 1970-01-01
      • 2013-06-17
      • 2017-07-14
      相关资源
      最近更新 更多