2016-04-29 43 views
-2

我目前正在编码我自己的学校raytracer,并且在设置我的相机时遇到了一些问题。在光线跟踪器中计算相机旋转

我知道我的相机(CX,CY,CZ) ,我知道它在哪里看(LX,LY,LZ)

我需要将这些数据转换: 在我的相机(cX,cY,cZ) 及其旋转X和旋转Z

我不是那么好的数学,如果你们中的一些人可以给我 有点帮助吗? 非常感谢你!

+0

你有没有听说过欧拉角的工作? [这](http://stackoverflow.com/questions/36604734/rotating-a-pinhole-camera-in-3d)可能会有帮助... – Matso

+0

在你这样做之前:我敢肯定你不想要欧拉角。改用由这些矢量形成的方向矢量和矩阵。 –

+0

指定什么是rotationX和rotationZ以及如何定义摄像机方向 – MBo

回答

0

嗯,我想通了自己

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

假设dir是我的相机和它正在看的地方之间的归一化方向矢量。

我不能完全肯定-90的,但的rotationX我需要它在我的情况

就像一个魅力 Screenshot1