gpt4 book ai didi

c++ - gluLookAt 中的不连续性

转载 作者:行者123 更新时间:2023-11-28 08:13:33 24 4
gpt4 key购买 nike

这就是我计算视线 vector 和向上 vector 的方式。

    ly = sin(inclination);
lx = cos(inclination)*sin(azimuth);
lz = cos(inclination)*cos(azimuth);
uy = sin(inclination + M_PI / 2.0);
ux = cos(inclination + M_PI / 2.0)*sin(azimuth + M_PI);
uz = cos(inclination + M_PI / 2.0)*cos(azimuth + M_PI);

倾角是视线 vector 与 xz 平面的夹角,方位角是 xz 平面内的夹角。

在我的倾角达到 225 度之前,这一切正常。那时由于某种原因旋转不连续。 (注意 225 度,我的意思是它超过了倒置点)

关于为什么会这样有什么想法吗?

编辑:没关系,想通了。方位角不需要 180 度。向上 vector 倾斜。

最佳答案

我想你说的是 90 度 (pi) 的极限角。您得到的是正常行为。使用 gluLookAt 时,您指定一个“向上” vector ,用于确定相机的滚动。在您倒着看的特殊情况下,“向上” vector 与眼睛方向 vector 平行,因此无法确定相机的滚动(这个问题有无限多的解决方案,所以任意一个由 gluLookAt 选择)。也许您应该使用您的倾角和方位角来计算这个“向上” vector 。

关于c++ - gluLookAt 中的不连续性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8381915/

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