gpt4 book ai didi

javascript - Three.js - 查找相机的当前 LookAt?

转载 作者:行者123 更新时间:2023-11-30 07:14:52 27 4
gpt4 key购买 nike

我需要读取(提取)场景中相机的当前 lookAt。我看过以下帖子,但我无法从相机中获取外观。

three.js set and read camera look vector

感谢您的帮助。

最佳答案

威尔特的这个回答很有见地,但并不完全正确。该代码返回一个向量,该向量指向与相机指向相同的方向。这是一个很好的开始!

但除非相机位于原点 (0, 0, 0)(或恰好位于连接原点和旋转矢量点的线段上且不超过该点,因此该点位于相机后面)相机不会看那个点。显然——只是常识——相机的位置也会影响正在观察的点。考虑一下。相机方法 lookAt() 查看 3D 空间中的一个点,而不管相机在哪里。因此,要获得相机正在注视的点,您需要通过调用调整相机位置:

vec.add( camera.position );

还值得一提的是,相机不是在看一个点,而是在看一条由无数点组成的线,每个点与相机的距离不同。 Wilt 的上述代码返回一个长度恰好为一个单位的向量,因为将四元数应用于规范化 z 轴向量 (0, 0, -1) 会返回另一个规范化向量(在不同的方向)。要计算距相机任意距离 x 的观察点,请使用:

(new THREE.Vector3( 0, 0, -x )).applyQuaternion( camera.quaternion ).add( camera.position );

这会沿 z 轴取一个距离原点 x 的点,将其旋转到相机的方向,然后通过添加相机的位置创建一个“世界点”。我们需要一个“世界点”(而不是“相对于相机点”),因为 camera.lookAt() 也需要一个“世界点”作为参数。

关于javascript - Three.js - 查找相机的当前 LookAt?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27957645/

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