所有圖形引擎都使用矩陣在不同的協調系統之間進行轉換。的確,OpenGL和DirectX使用它們,因爲它們是標準的方式。
攝像機通常使用你有參數構建矩陣:
視圖矩陣(變換世界位置的方式你看它從攝像機位置)時,它使用LOOKAT位置和照相機的位置(也是向上的向量,通常是0,1,0)
投影矩陣(從3D座標轉換到2D座標),它使用fov,near,far和aspect。
你可以找到如何構建在互聯網搜索的矩陣爲創建它們的OpenGL函數信息:
gluLookat創建viewmatrix
gluPerspective:創建投影矩陣
但我無法想象一個引擎th在不允許你得到這些矩陣,因爲我可以確保你在哪裏,引擎正在使用它。
一旦你有了這些矩陣,你將它們相乘,得到viewprojeciton矩陣。這個矩陣從世界座標變換到屏幕座標。所以,只需將矩陣乘以你想知道的位置(以向量4格式,即4º分量1.0)。
但是等等,結果將會是齊次座標,您需要將生成的向量的X,Y,Z除以W,然後在Normalized屏幕座標中有位置(0代表中心,0.5代表右邊等)。
從這裏很容易變換乘以寬度和高度。
祝你好運:)
P.S:當您使用3D工作,它是非常重要的,瞭解三個矩陣(模型,視圖和投影),否則你會跌倒每次。