我是游戏编程新手,也是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中取消投影向量。
发布于 2011-04-13 04:37:28
我不熟悉SlimDX,但是在MDX示例中,您将世界矩阵、视图矩阵和投影矩阵传递给Unproject函数(正如您应该做的那样),而在第二个示例中,您只传递了世界矩阵。假设Vector3.Unproject函数只接受一个矩阵作为参数,尝试传递World * View * Projection的乘积。
https://stackoverflow.com/questions/5582645
复制相似问题