2011-07-27 167 views
0

我在OpenGL中有一個場景,它被旋轉和翻譯,我想沿着它的OWN Z軸進一步翻譯它。我應該如何反映這一點?組合旋轉和翻譯

更有點混凝土: glTranslated(TX,TY,TZ) gpRotated(RX,1,0,0) gpRotated(RY,0,1,0) gpRotated(RZ,0,0 1)

我應該以翻譯對自己的Z軸的場景(這對於「照相機」可能是X軸帶什麼修改的TX,TY,TZ?

回答

1

您應修改模型矩陣需要額外的glTranslate()模型轉換與攝像機無關,所以你可以在那裏做所有的事情,只要確保將模型放在世界空間的最後,然後使用在世界空間工作的視圖矩陣(即轉換世界 - >相機空間。)

+0

感謝您的快速回答。然而,作爲OpenGL的新手,你能告訴我怎樣才能「將模型放在世界空間中,然後使用在世界空間中工作的視圖矩陣」?因爲我想使用模型自己的軸,我不應該把它放在模型空間中嗎?謝謝 ! –

+0

想象一下在本地(模型)座標空間中工作的第一批轉換,根據需要旋轉模型。完成後,您需要將模型置於場景的某個位置,以便應用將頂點從本地移動到世界空間的轉換。它可以幫助你思考轉換不僅是從一個空間轉換到另一個空間,還可以轉換頂點相對於另一個空間(即在旋轉之後,空間或對象本身已經旋轉​​)。 – Anteru

+0

我實際上是在寫作一個可以根據需要移動和翻譯的3d編輯器。那麼對於重新計算我的tx,ty,tz,並且只有一個旋轉和一個整個場景的平移,還是沒有意義,這是否有意義?我非常感謝你的幫助和耐心。 –