【问题标题】:Three js copying rotation三个js复制轮换
【发布时间】:2021-04-05 07:54:16
【问题描述】:

我正在为我正在开发的一款虚拟现实游戏的 3d 旋转而头晕目眩。

https://imgur.com/a/789PxLU

在视频 1 中:我将辅助块设置为等于组位置和四元数。如果我使用控制器旋转组,我只需复制四元数和位置设置的黑色助手的位置就可以了。

但是,在视频 2 中,当我用第一个孩子的本地位置(视频 1 中它上面的那个)偏移助手(黑色块)时,初始位置很好,但是当我开始旋转组和尝试同步位置和四元数,我似乎缺少一个偏移量。

知道正确的术语是什么吗?或者关于如何解决这个问题的任何想法?

编辑:设法解决了这个问题!想出了这个解决方案:https://imgur.com/ueSlnGK

我可以把它缩小到这个:https://imgur.com/pLkSNQe

【问题讨论】:

    标签: three.js quaternions react-three-fiber


    【解决方案1】:

    您正在寻找的主题是3D 转换层次结构。意味着指定 3D 对象相对于彼此的变换(平移、旋转和缩放)的想法。这样的系统需要区分不同的坐标空间(如局部空间或世界空间)。

    您可以将助手添加到对象中,以便它自动继承所有 3D 转换。通过这种方式,您根本不必费心复制转换。

    如果您出于某些原因不想这样做,则必须在世界空间中提取转换数据。在轮换的上下文中,three.js 为这个任务提供了Object3D.getWorldQuaternion()

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-09-28
    • 1970-01-01
    • 2021-08-02
    • 1970-01-01
    • 1970-01-01
    • 2023-03-16
    • 1970-01-01
    相关资源
    最近更新 更多