gpt4 book ai didi

three.js - 将相机保持在地面上方(使用 OrbitControls.js)

转载 作者:行者123 更新时间:2023-12-02 21:25:43 25 4
gpt4 key购买 nike

所以我有一个非常简单的情况,地平面基本上是 y=0 所在的位置,我想始终将相机保持在地面上方。我还想要感觉直观(并且与触摸兼容)的良好控件,我发现 OrbitControls.js 似乎最适合这个,还因为我可以通过设置 maxPolarAngle 轻松限制极角小于或等于 Math.PI/2(四分之一圈)。

不过,即使这样做,用户也可以平移到地面以下,除非平移被完全禁用(我不想这样做)。手动限制以使 y 永远不会变为负数感觉很奇怪,但我认为简单地忽略 y 轴上的任何更改,例如将第 165 行(panUp 函数)更改为以下内容

panOffset.set( te[ 4 ], 0, te[ 6 ] );
panOffset.normalize();

导致了一个快速而肮脏的解决方案,它满足了我的要求。

但现在用户只能通过缩放来改变相机高度。

你能想到更好的解决方案吗?也许这个帖子可以作为官方解决方案的思考来源,我相信我不会是唯一从这样的解决方案中受益的人。

/edit:一开始我没有规范化偏移向量,这导致了另一个问题,现在已经改变了。

最佳答案

不要去地下:

controls.maxPolarAngle = Math.PI / 2

关于three.js - 将相机保持在地面上方(使用 OrbitControls.js),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24437296/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com