2015-02-11 87 views
0

我想創建一個正交視圖(從最終的透視圖分開)。我知道視圖的規模,位置,矢量以及它正在看的點。因此,只需使用glm::lookAt()來創建視圖矩陣似乎是最簡單的,除非無法指定比例。如何縮放使用glm :: lookat()獲取的矩陣?

有沒有辦法引入縮放比例glm::lookAt()?我認爲可以縮放由lookAt製作的矩陣,因爲縮放需要首先發生以獲得「預期」結果(對象看起來更大或更小,例如縮放攝像頭)。雖然我可能錯了。

如果在使用lookAt時不可能,是否有一系列glm函數可以等價?

+0

你試過正常的縮放矩陣嗎? – 2015-02-11 16:10:46

回答

0

就矩陣變換而言,您可以從一個比例開始,然後應用glm::lookAt()矩陣。我不熟悉glm,但我之前使用過GLUT。你應該能夠做一個矩陣乘法這樣的(我假設你已經轉化到一切場景空間,定義所有的變量等)


    TransformedVector = glm::lookAt(cameraPosition, 
            cameraTarget, 
            upVector) * 
         glm::scale(scalingFactor, 
            scalingFactor, 
            scalingFactor) * 
         OriginalVector; 

如果該行爲會獨有的嘗試更換glm::lookAt()glm::scale()訂購。