如何将平面网格设置为始终在不倾斜的情况下查看相机

时间:2014-11-03 14:51:50

标签: three.js

我试图让飞机始终面对相机或其他移动物体,但我希望飞机只能在1轴上旋转。如何使用lookAt功能使其仅侧向旋转而不倾斜向上或向下移动物体?

2 个答案:

答案 0 :(得分:1)

谢谢,我设法通过保持旋转物体的y位置不变来轻松解决它。

if(planex){
    var yaw_control = controls.getYawObject();
    pos = new THREE.Vector3( yaw_control.position.x, planex.position.y, yaw_control.position.z );
    planex.lookAt(pos);
}

答案 1 :(得分:0)

http://www.lighthouse3d.com/opengl/billboarding/index.php?billCyl

也许这篇文章对你有所帮助。你正在寻找那些圆柱形广告牌我想但是从第一页读到;)你可以自己修改特定的网格矩阵,虽然我不确定这是否是最有效的方法。我也曾经做过一次。

让相机看起来像:

three.js set and read camera look vector

然后将摄像机向上移动,然后根据上面的文章获得那些= rightVec的交叉产品。

使用这些向量,您可以填写新的Three.Matrix4(),如文章中所述,然后用新创建的矩阵替换网格矩阵。正如我所说的那样,我不太喜欢three.js中的矩阵内容,但这可行,但可能效率不高。

为此,您必须使用

取消网格自动矩阵更新
mesh.matrixAutoUpdate = false;