如何在SlimDX中取消投影

时间:2011-04-07 14:23:44

标签: directx mdx slimdx

我是游戏编程的新手,也是DirectX&的新手。 SlimDX。当前我正在将MDX代码转换为SlimDX代码,我陷入了一个我无法在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中取消项目中的矢量。

1 个答案:

答案 0 :(得分:0)

我不熟悉SlimDX,但是在MDX的情况下,你将世界,视图和投影矩阵传递给Unproject函数(如你所愿),在你的第二个例子中,你只传递了世界矩阵。假设Vector3.Unproject函数只接受一个矩阵作为参数,请尝试传递World * View * Projection的产品。