2008-12-21 24 views
4

哪个是.NET 3D图形编程的首选方法:Direct3D或XNA似乎是当前的技术,但最适合非游戏相关的编程?托管Direct3D或XNA的非游戏相关的3D图形编程?

另外,Managed Direct 3D已经停产? XNA似乎并不适合非游戏开发。

+0

我thingk你的意思是“XNA并没有真正似乎是适当的,除非游戏的开发。” – faulty 2008-12-21 17:39:38

+0

@faulty:更正 - 谢谢:) – 2008-12-21 17:50:08

回答

1

如果它不是游戏相关的是什么?如果你回答这个问题,我们可能会给你一个很好的答案,无论如何,取决于应用程序WPF可能是一个很好的答案。

0

我不是一个专家,但是当我混淆了两者,我发现XNA的方式更好。我只是玩弄我的Zune和PC游戏。我没有足够的时间来混淆DirectX,我找到了更多XNA的例子。

您还有一个完整的community来帮助你。

4

邑,太糟糕MS停止MDX。我目前正在使用SlimDX进行我们的非游戏开发。它不是MDX的直接替代产品,但与MDX v1.1的API相比,至少API设计非常直观。我已经使用MDX v1.1 + .Net v1.1用于我们产品的第1版。至于版本2,我们正在迁移到.Net 2.0。 MDX v1.1不适用于.Net 2.0,另外它还有其他固有的问题。因此我们不得不寻找替代品。

最初XNA是我们最好的选择。然后,因为它瞄准了游戏市场并且与xbox 360兼容,我们发现我们需要编写很多解决方法/黑客手段以使其适用于我们。更糟的是与我们在产品中广泛使用的DirectShow的互操作性。 MS在现有技术和新技术之间创造了巨大差距,目前MDX和DirectShow的最新替代品不够强大,无法替代旧版本,而且我们也无法等待下一个版本。

我不会说SlimDX是非游戏开发的最佳选择。但对我而言,这是事实。而且由于它是开源的,我们总是可以对我们认为合适的地方进行更改。当我们使用SlimxDX + DirectShow.Net时,会有一些意想不到的麻烦。当我们使用MDX 1.1 + DirectShow.Net时,这些毛刺不存在。我的猜测是,在内部,MS进行了相当多的黑客工作。

无论如何,如果您根本不使用DirectShow,请考虑Ogre3D/MOgre3D。 MOgre3D是一款精心打造的3D引擎Ogre3D的管理包装。这是我们的第一选择,但我们无法使用它,因为它不支持DirectShow。

0

Xna是Microsoft的Managed DirectX。不幸的是,他们没有写很多关于将它用于非游戏相关的东西,但它可以完成。

不幸的是我找不到任何好的资源在线,显示如何做到这一点。

3

被管理的DirectX并没有因为被重写为XNA而被放弃。的确,XNA是在Xbox 360的基础上设计的,但XNA适合用于非游戏3D编程,就像我使用的任何其他3D框架一样。不要忽视XNA极其便利的内容导入管道......您可以将模型和着色器放到卡上并轻松渲染。

如上所述,创建者俱乐部社区非常丰富,他们的Winforms tutorials可能会引起您的兴趣。

1

这里的简单答案可能是XNA。也许WPF。这取决于。

如果你正在寻找任何的远程游戏型MUD,XNA确实是一个很好的解决方案,因为它给你的是网格非常好,只是一个3D互动世界的任何一个实施框架。除了处理所有3D视觉材料之外,您还可以轻松获取碰撞检测,照明,时序和摄像头等所有内容。如果你正在做的是某种3D虚拟空间,那么你拥有的东西可能已经非常接近成为一款游戏了,XNA除了图形端还会给你更多的东西。

否则,如果你正在寻找3D UI和数据可视化,WPF可能是更多的你想要什么。没有什么不必要的开销,而且包括命令或数据绑定在内的其他内容对您来说可能会更有用。据我所知,它被设置为在后端使用硬件加速,并在必要时通过软件处理材质着色器和各种3D效果,以便用户获得视觉上一致的体验。

如果你有这并没有真正很好地成为这两种阵营的一个例子,我真的有兴趣在听到它。可能是人谁想写一个有用的图形库的好机会......