2011-05-23 161 views
5

Android opengl-es查看問題。所以在openGL中,攝像頭和視圖的默認位置是0,0。如何設置視圖和攝像頭,使其與頂部0,0處的計算機屏幕座標基本相同。我稱之爲gl.glOrthof(-screenWidth/2,ScreenWidth/2,-ScreenHeight/2,ScreenHeight/2)。但我認爲這是錯誤的。我還需要設置相機以查看整個字段。我不確定如何使用gl.glFrustumf來完成此任務。OpenGL座標匹配屏幕座標?

回答

11

要使用頂點座標作爲屏幕座標,只需在投影矩陣上使用glOrtho(0, width, height, 0, -1, 1)並保持您的模型視圖矩陣標識(這是默認值)。請注意,我翻轉了底部和頂部,因爲在GL(0,0)位於左下角,並且您希望它位於頂部(但請記住,這也會翻轉每個對象,因此也會翻轉三角形的順序)。你也忘了設置近距離和遠距離飛機(所有帶有z間隔的區域都不會顯示)。但是,當你現在繪製所有的對象z = 0(這是默認的,只繪製2d頂點時),一切都應該沒問題。

glFrustum只是glOrtho的替代選擇。其中glOrtho構造正交(平行)視圖,glFrustum構造透視圖。所以你不需要glFrustum

+0

不應該是glOrtho(0,寬度,0,高度,-1,1)? – darethas 2013-11-21 04:44:11

+0

@ treehau5如果你閱讀完整個答案,特別是在'glOrtho'調用之後的句子:*「請注意,我翻轉了底部和頂部,如GL(0,0)在左下角,你希望它在頂端」*。 – 2013-11-21 09:30:06

+0

對。現在主要關心的是,你爲什麼要那樣做? – darethas 2013-11-22 02:46:55