2013-08-06 194 views
0

我終於畢業了,在OpenGL中使用我自己的矩陣,並且在設置正射投影時遇到了一些問題。此刻,我有需要的左側,右側,頂部和底部並把它們拋出到這樣的矩陣(從here)的方法:OpenGL 3.0+:正投影矩陣

2(right-left) 0    0     -right + (left * right) - left 
0    2(top-bottom) 0     -top + (top * bottom) - bottom 
0    0    -2(farVal-nearVal) -far + (far * near) - far 
0    0    0     1 

我然後通過投影矩陣來乘以該矩陣,以及作爲輸出我絕對沒有任何意義。這讓我相信我是1)。不使用適當的正交矩陣,2)。不要將正交矩陣乘以正確的矩陣,或者3)。都。

我懷疑它是2,因爲每當我使用不推薦使用的函數時,glOrtho在當前矩陣爲GL_PROJECTION時被調用。那麼你究竟如何計算左,右,上,下值的正交矩陣呢?

+0

我認爲你需要2 /寬度,2 /身高(你似乎在乘以而不是在這裏劃分,除非我錯過了某些東西)。 – Robinson

+0

現在我覺得很蠢......我終於在正投影矩陣上找到了一個維基頁面,這就是其中一個問題。另一個我發現的是日期狼說的。 – CoderTheTyler

回答

1

那麼,從技術上講,你不必要求你的ortho矩陣的東西。使用固定功能流水線,您通常會在投影矩陣堆棧中加載單位矩陣,因此將矩陣乘以矩陣就會在投影矩陣堆棧中留下正交矩陣。

對於你的情況,無論你乘以ortho,它可能是錯誤的(即不是身份)。建議:不要繁殖,只需加載它。

+0

這固定了一半的問題。另一個是羅賓遜在上面的評論中提出的。謝謝!並且爲了將來可以引用其他人,請查看此頁面以查找適當的正投影設置:http://en.wikipedia.org/wiki/Orthographic_projection_%28geometry%29 – CoderTheTyler