我想制作一个分子扩散动画。我有一些带有数据的CSV或二进制文件来创建带有原子的3D场景。
由于我定期在C#中编码,我将选择XNA(后来的Mono.XNA,在linux上运行是一个不错的选择)。它不一定是C#。
它最合适吗?我想减少制作按钮,滚动条等的时间。
有什么好处可以减少代码的数量吗?有没有人有将XNA动画移植到Mono.XNA的问题?
答案 0 :(得分:3)
我建议您使用XNA进行3D视图,但在WinForms中进行控制。 App Hub(Microsoft)有一个非常好的using XNA with WinForms(part 2)示例。通过这种方式,您可以获得用于3D图形的出色API,以及用于创建界面的出色API(无需弯曲一个API来执行这两项操作)。
我对Mono.XNA的印象是它绝对不完整。它也没有多少更新(patch list)。以下是(在撰写本文时)用于执行3D图形的相当关键的类的当前版本:GraphicsDevice.cs - 请注意3D绘图所需的所有NotImplementedException
函数抛出的Draw*
。
有一些跨平台的XNA API(我甚至写过其中一个),但它们都不能用于3D。也许有一天。
如果您真的必须拥有Linux支持,那么将OpenTK用于您的图形可能是值得的。 OpenTK的缺点是它远不如XNA支持或易于使用。
我建议您尽最大努力避免在3D图形平台(XNA或OpenTK)上使用(或更糟糕的是,创建)GUI库。有一个原因是大多数现有的图书馆都得不到支持或被遗弃。我的印象是Mono's implementation of WinForms这些天非常好,如果您愿意,还有Gtk#。
答案 1 :(得分:1)
我从未尝试将XNA应用程序移植到Mono,但我使用了几个不同的GUI库,我可以诚实地说Tom Shane的Neoforce库是最好的。不幸的是,他已经停止更新它,但他确实发布了一个适用于4.0的版本。