0
我寫一個鉤子一個很老的遊戲,用DX 6.1,並且不爲L & T.如何從屏幕空間頂點座標給出FOV和屏幕分辨率來計算視空間頂點座標?
我攔截來電與float x, y, z, rhw
頂點位置DX和我要重建鑑於空間座標XYZ 。我知道FOV和屏幕分辨率,但是我找到用於後向變換的公式的問題。有人可以給我這樣的公式,或者將我指向相關的互聯網來源嗎?
還有一兩件事 - 有時候,我收到了非常奇怪的座標,比如我管理的調試器來捕捉:
float x = 105.96786.0f;
float y = 1963.8353.0f;
float z = -2343.6121.0f;
float rhw = 0.0f;
我應該如何處理這種情況下,在恢復公式?
所以,你想從世界COORDS計算屏幕COORDS?然後,您將使用'screenCoord = Transform(worldCoord,View * Proj)'進行操作'您必須將其縮放到視口。如果你想要另一個方向,使用逆矩陣。 –
我想要另一個方向。當我將x/y/z/rhw傳遞給逆矩陣時,我會得到原始的worldCoord? – PiotrK
是的。假設x/y縮放到視口(範圍[-1,1])。 –