【问题标题】:How to Set Plane Mesh to always lookAt camera without tilting如何将平面网格设置为始终查看相机而不倾斜
【发布时间】:2014-12-30 06:06:43
【问题描述】:

我正在尝试使飞机始终面向相机或其他移动物体,但我希望飞机仅在 1 个轴上旋转。如何使用 lookAt 功能使其仅侧向旋转而不倾斜以向上或向下查看移动的对象?

【问题讨论】:

标签: three.js


【解决方案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);
}

【讨论】:

  • 不要使用new。创建一个pos 向量并重复使用它:pos.set( x, y, z )。
【解决方案2】:

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

也许这篇文章对你有什么帮助。您正在寻找我认为但从第一页阅读的那些圆柱形广告牌;)您可以自己修改特定的网格矩阵,尽管我不确定这是否是最有效的方法。我自己也做过一次。

让相机看起来 vec:

three.js set and read camera look vector

然后将相机 upVec ,然后根据上面的文章获取那些 = rightVec 的交叉产品。

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

为此,您必须使用

停用网格自动矩阵更新
mesh.matrixAutoUpdate = false;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-11-01
    • 2013-07-05
    • 1970-01-01
    • 1970-01-01
    • 2021-07-26
    • 1970-01-01
    • 1970-01-01
    • 2017-05-18
    相关资源
    最近更新 更多