在光线追踪器中计算相机旋转

Compute camera rotation in raytracer

我目前正在为学校编写自己的 raytracer,我 运行 在设置相机时遇到了一些问题。

我知道我的相机在哪里(cX、cY、cZ) 我知道它在看哪里 (lX, lY, lZ)

我需要将这些数据转换为: 我的相机在哪里 (cX, cY, cZ) 及其 rotationX 和 rotationZ

如果你们中的一些人能告诉我,我的数学不是很好 有点帮助吗? 非常感谢!

我自己想出来了

我所做的是: cam_rot.x = RadienToDegree(acos(-(dir.z / sqrt(pow(dir.x, 2) + pow(dir.z, 2))))) - 90; cam_rot.y = RadienToDegree((M_PI / 2 - acos(dir.y)));

假设 dir 是我的相机所在位置和它正在查看的位置之间的归一化方向向量。

我不完全确定 rotationX 的 -90,但我需要它

像魅力一样工作 Screenshot1