0
我正在學習OpenGL,具體如何移動相機。如果我想改變我的相機矩陣,例如,如果用戶用WASD翻譯它,有兩種主要方式我可以這樣做:更新相機矩陣的好習慣
- 預乘上新的翻譯矩陣攝像機矩陣。
- 管理相機的一組屬性,如位置,視角,向上矢量,修改這些屬性,並根據這些屬性重新計算相機矩陣。
哪些被認爲更好?我覺得第一個會引入漂移,第二個會需要更多的計算,但我不知道分析這兩個。
我正在學習OpenGL,具體如何移動相機。如果我想改變我的相機矩陣,例如,如果用戶用WASD翻譯它,有兩種主要方式我可以這樣做:更新相機矩陣的好習慣
哪些被認爲更好?我覺得第一個會引入漂移,第二個會需要更多的計算,但我不知道分析這兩個。
模擬相機最簡單的方法之一是使用'lookAt'系統。基本上你記得camera_pos
,camera_target
,可選的camera_up
載體。然後你使用舊的gluLookAt
或一些現代的方式如glm::lookAt
建立最終矩陣。
這樣就可以更容易地模擬相機及其參數。
這裏有一些鏈接:
別看那麼多的性能開銷。首先學習一些東西,建立它......然後根據需要進行優化。
是的,它確實屬於「過早優化」,但由於我經常這樣做,而且之前有這麼多人做過,所以我覺得早點提出是有道理的。無論如何,謝謝! – 2013-05-06 12:56:19
'過早優化'不僅是您的問題:) – fen 2013-05-06 13:05:28
不要花太多時間擔心計算時間。讓它工作並根據需要進行優化。我非常懷疑,只要你沒有開始重新計算它每幀數千次,它就會成爲一個問題。計算一次..並將其傳遞給着色器。 – Grimmy 2013-05-08 23:09:34