2016-04-29 84 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