2011-05-26 210 views
9

我正在使用Lua API。我試圖將3D空間座標轉換爲2D空間座標。我問過谷歌,但除了使用OpenGL函數的片段之外,我找不到任何東西。我不需要源代碼或任何東西只是一個簡單的方法如何做到這一點?如果有任何幫助,我可以獲取相機的視角,要轉換的原始位置,窗口大小和縱橫比?在此先感謝您的任何建議:)如何將三維空間座標轉換爲二維空間座標?

+2

要二維座標哪個空間? – Bart 2011-05-26 13:44:05

+0

對不起,我打算輸入**屏幕**座標。 – Conros 2011-05-26 13:45:14

回答

11

如果你談論的是改造世界空間(X,Y,Z)座標到屏幕空間(U,V)座標的話,基本做法是:

u = x/z; 
v = y/z; 

如果相機不在原點,則在投影矩陣之前通過視圖矩陣變換(x,y,z)。您可能還想調整相機視角,縱橫比等,在這種情況下,我會參考this Wikipedia article

我很抱歉,如果你正在尋找特定於Lua API的東西,我並不熟悉。

+0

:D!謝謝,wiki上的圖表已經幫了很大忙。應該想到在那裏檢查,哈哈。 – Conros 2011-05-26 13:59:39

+0

重要的是要指出,這不是一個真正的透視投影,而是一個所謂的「弱透視投影」,正交和透視混合 – 2017-08-03 03:51:23

+0

感謝您閱讀維基文章阿德里安。 – Birdasaur 2017-09-26 00:00:11

相關問題