2
我想知道如何做一個gl_Position
成爲(X,Y)在屏幕上的位置,我怎麼能變換回來(讓鼠標點擊的位置,例如)。gl_Position如何在窗口中變成(x,y)位置?
例如,假設我有以下的三維矢量:
V = [ -70.0, 0.27, -30.0, 1.0 ]
我的MVP(模型 - 視圖 - 投影),從兩英視圖計算,是
M = [[-1.34, 0.0 , 0.0 , 0.0 ],
[ 0.0, 1.26, 1.28, 0.40 ],
[ 0.0, -0.72, 0.71, 141.54 ],
[ 0.0, -0.71, 0.70, 142.13 ]]
如果我乘我得到:
M * V = [ 94.11, -37.53, 120.079, 120.86 ]
在我設置這個值在gl_Position
後,向量我■在窗口下面的位置繪製(我的窗口是800×600):
P = [ 702, 374 ]
我無法理解的是:如何M * V
成爲P
?我明白,這事做與V
的w
,但我不能找到一個計算從哪裏獲得相同的結果P
。例如,如何將P
轉換爲V
,以捕捉鼠標點擊的3D位置。
非常感謝您的文章。通過這樣做'與'M * V'結果N =(X,Y,Z)/ w',我能夠得到最終的窗口位置(考慮視口'T =(X,Y,W,H) ')用'win_x =(TW/2.0)* NX +(TX + TW/2.0)'和'win_y =釷 - ((TH/2.0)* NY + N(泰 - +的Th/2.0))'。 – 2014-09-05 19:17:06