2011-09-24 19 views
3

好了,所以我下面這個教程,以幫助我在OpenGL使相機:http://nehe.gamedev.net/data/articles/article.asp?article=08OpenGL的攝像頭,支持3個載體

所以我跟着它,有些掙扎之後,終於有了一個解決方案,我現在有3個代表我的相機3軸的矢量。

雖然這個問題?我無法弄清楚如何使用這些信息來實現正確的旋轉/翻譯!我嘗試使用gluLookAt,使用相機的位置爲第一參數,然後將相機爲目標的Z軸,Y軸爲向上的參數。結果是,相機從來沒有停止看單點,無論我上/下/左/右移動,旋轉表現更奇怪...

我是否採取了完全錯誤的做法?我已經考慮使用四元數來計算我需要的變換,但無法弄清楚如何獲得我需要的參數/如何開始......本質上我只是想要一個簡單的類FPS相機開始,在那裏我可以四處移動,並向上/向下和向兩側看(以前我主要工作,除了擡頭,然後轉身時,旋轉的旋轉......)

一般或特定的幫助將非常感謝!因爲我一直在這幾個小時,形勢只是沒有改善......

概括起來......我需要幫助做一個攝像頭,可以偏航/俯仰/滾動..沒有被困在盯着一個點。

編輯: 好的,所以,顯然以正確的順序旋轉真的可以幫助!傻我。無論如何,我還是很想知道,如果我可以用我的相機的三個軸,形成了我的變換的四元數。

回答

0

我嘗試過使用gluLookAt,使用相機的位置作爲第一個參數,然後使用攝像機的Z軸作爲目標,使用Y軸作爲參數。

第二組參數不是看的方向,而是看着的位置。你需要拿相機位置和Z軸偏移它得到一看,在你想尋找方向的位置上。

無論如何,我還是很想知道,如果我可以使用我的相機的三個軸爲我的轉換形成一個四元數。

是的。你把它們變成一個矩陣,然後把矩陣轉換成一個四元數。有許多在線資源可以解釋將旋轉矩陣轉換爲四元數的過程。