2011-04-07 35 views
2

我是新來的遊戲編程,以及新的DirectX & SlimDX。目前,我正在將MDX代碼轉換爲SlimDX代碼,並陷入了一個我無法在SlimDX文檔中發現的問題。我想 「Unproject」 的矢量碼爲哪些如下:如何在SlimDX中未註冊

MDX代碼:

Vector3 p1 = new Vector3(x, y, device.Viewport.MinZ); 
p1.Unproject(device.Viewport, device.Transform.Projection, device.Transform.View, device.Transform.World); 
我轉換

SlimDX代碼如下:

Vector3 p1 = new Vector3(x, y, device.Viewport.MinZ); 
p1 = Vector3.Unproject(p1, device.Viewport.X, device.Viewport.Y, device.Viewport.Width, 
device.Viewport.Height, device.Viewport.MinZ, device.Viewport.MaxZ, 
device.GetTransform(TransformState.World)); 

使用上述SlimDX代碼我無法得到正確的結果,請在此建議我,即如何在SlimDX中取消投影矢量。

回答

0

我對SlimDX並不熟悉,但在MDX的情況下,您將世界,視圖和投影矩陣傳遞給Unproject函數(如您應該那樣),而在第二個示例中,您只是將世界矩陣。假設Vector3.Unproject函數僅將一個矩陣作爲參數,請嘗試傳遞World * View * Projection的乘積。