2014-06-17 172 views
0

我需要使用OpenGL ES 2.0的突出點

GLU.gluProject();

。函數需要視口(int [])參數。我假定INT數組包含X,Y,寬度,高度,這是由設置:

GLES20.glViewport(0,0,寬度,高度);

我是否正確?

OpenGL的起源點還在左下角嗎?所以當你檢測到在Android設備上觸摸ex。在x = 255,y = 255你必須重新計算它? (我的計算射線的開始和結束點;))

+0

起源取決於許多許多事情。對於2D格式的最簡單情況,您通常使用glOrtho,它包含頂部,底部,左側和右側參數,可以設置左上角是原點(0,0)。默認(沒有設置任何東西)我相信原點位於中心,左邊是-1,右邊是1,頂部是1,底部是-1。 –

回答

0

是的,GLU.gluProject()的第八參數,這是在documentation命名view,是含有X,Y,寬度,高度的視口的數組:

查看|當前視圖{x,y,寬度,高度}

OpenGL中窗口座標的原點位於窗口的左下角。

對於用於繪製的座標,您可以應用自己的轉換,因此您可以選擇要使用的座標系。您的頂點着色器需要應用轉換來將您的輸入座標轉換爲標準化的設備座標(NDC),其範圍爲從左到右和從下到上的範圍[-1.0,1.0]。

+0

因此,我們假設觸摸輸入(x = 200,y = 350),其中屏幕寬度爲400,高度爲700,您必須重新計算到[-1,1]範圍才能使它們成爲正確的形式?更具體地說,我在vec3(0,0,-3)上看到了相機,沒有其他世界變換看到vec3(0,0,0),並且正投影(左-1,右1,下-1,頂1) – user2977027