2013-05-05 102 views
0

我正在學習OpenGL,具體如何移動相機。如果我想改變我的相機矩陣,例如,如果用戶用WASD翻譯它,有兩種主要方式我可以這樣做:更新相機矩陣的好習慣

  1. 預乘上新的翻譯矩陣攝像機矩陣。
  2. 管理相機的一組屬性,如位置,視角,向上矢量,修改這些屬性,並根據這些屬性重新計算相機矩陣。

哪些被認爲更好?我覺得第一個會引入漂移,第二個會需要更多的計算,但我不知道分析這兩個。

回答

0

模擬相機最簡單的方法之一是使用'lookAt'系統。基本上你記得camera_pos,camera_target,可選的camera_up載體。然後你使用舊的gluLookAt或一些現代的方式如glm::lookAt建立最終矩陣。

這樣就可以更容易地模擬相機及其參數。

這裏有一些鏈接:

別看那麼多的性能開銷。首先學習一些東西,建立它......然後根據需要進行優化。

+0

是的,它確實屬於「過早優化」,但由於我經常這樣做,而且之前有這麼多人做過,所以我覺得早點提出是有道理的。無論如何,謝謝! – 2013-05-06 12:56:19

+0

'過早優化'不僅是您的問題:) – fen 2013-05-06 13:05:28

+0

不要花太多時間擔心計算時間。讓它工作並根據需要進行優化。我非常懷疑,只要你沒有開始重新計算它每幀數千次,它就會成爲一個問題。計算一次..並將其傳遞給着色器。 – Grimmy 2013-05-08 23:09:34