在光线追踪器中计算相机旋转
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
我目前正在为学校编写自己的 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