【问题标题】:Three JS - OrbitControls wobble when rotating三个 JS - OrbitControls 旋转时摆动
【发布时间】:2018-09-11 23:50:11
【问题描述】:

我目前正在使用threejs 开发一个场景,并且正在使用轨道控件围绕场景旋转相机。我注意到时不时地,在旋转时,它有时会开始将我的相机到处乱扔,然后它似乎会自行解决并平稳旋转。

我在网上看到了一些关于轨道控制摆动的帖子,但它们的问题似乎主要是当相机静止时,这种情况会在打开和关闭时发生,只有在旋转时才会发生。

small video of what I mean

你可以看到它在晃来晃去,然后我把注意力集中在物体上,然后再退出,就没事了。

我见过一些涉及近距和远距剪裁平面的解决方案,目前我的解决方案是:

nearClippingPlane = 0.1

farClippingPlane = 10000

你会说这与此有关吗?因此我应该进一步探索这些解决方案吗?

或者这是一个不同的问题?

谢谢大家,再一次,很抱歉这个可能是一个微不足道的问题......

编辑:

这是渲染循环:

https://ibb.co/hLLmqU

这是另一个视频,我试图避免将鼠标悬停在立方体上:

https://screencast-o-matic.com/watch/cFQXoCqmlS

【问题讨论】:

    标签: typescript three.js


    【解决方案1】:

    看起来当光线投射与立方体相交时,它同时应用了轨道控制旋转和缩放。请注意,当您在没有光线投射到立方体的情况下抓取空间时,它是如何正常工作的,当您抓取立方体时,它开始缩放并每帧返回。尝试将缩放事件从 mousedown 更改为 click。

    【讨论】:

    • 你的意思是“缩放”,就像我单击一个立方体并移入它时那样?在 mouseup 上,它会创建一条贝塞尔曲线并沿着该曲线调整相机的位置,它不会改变相机的缩放值,它实际上会朝着立方体移动。如果这实际上是你的意思,我还禁用了轨道控制缩放和平移,只需启用旋转即可。我刚刚禁用了立方体接收光线投射,并确保我在旋转时没有将鼠标移到立方体上,它仍在这样做:'-(
    • 编辑过的 OP,我目前正在一家公司实习,所以我遵循他们的惯例(如果看起来很时髦)
    • 这种情况已经不复存在了,别问为什么,如果我知道我会发布解决方案,但感谢老兄的回复
    猜你喜欢
    • 1970-01-01
    • 2015-11-12
    • 2016-09-06
    • 1970-01-01
    • 2013-11-12
    • 2021-04-25
    • 2013-10-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多