我想将3D用于两个目的。一种是为我的应用程序以奇特的方式显示统计数据,另一种是制作简单的3D游戏。
我正在寻找的是一个最好是开源的库,所以我可以将它包含在我的C#项目中,而不使用任何dll,但如果没有其他选项,那就没什么大不了的了。我出售我的应用程序,因此我需要能够将该库用于商业目的。如果我可以在Blender 3D中创建模型并轻松地将它们导入库中,那将是完美的。
答案 0 :(得分:6)
您是否考虑使用MOGRE,这是OGRE的.NET包装器? OGRE是MIT许可的,非常适合商业用途,MOGRE似乎是LGPL许可的,所以也适用于商业用途(如果你动态链接它,你不必发布源代码)。
quick search将为Blender打开插件以导出为OGRE的模型格式,所以你应该没问题。
您还可以使用XNA,这是Microsoft编写的用于游戏开发的托管库。然而,最近(2013年1月),似乎微软正在推动人们远离XNA进行Windows开发,并回到原生代码。
例如,在最后一个链接中,他们将XNA称为Xbox Live独立游戏和Windows Phone游戏,而DirectX则用于Windows。同样地,Microsoft Create site,(如果我没记错的话)曾经拥有用于Windows XNA开发的资源,现在有2个用于Windows Phone和XBox的大块,而且没有提到Windows开发。最后,(目前)没有迹象表明XNA支持被添加到Visual Studio 2012中(但这可能是因为正在为新的Xbox开发新版本的XNA,可能即将推出)。
MonoGame是XNA的开源实现(就像Mono是.NET的开源实现一样),但我不确定它的3D功能。
如果这没有帮助,关于这个主题还有很多其他问题和答案:
答案 1 :(得分:5)
C#本身只是一种语言,它没有自己渲染的概念。 “在项目中包含3D”意味着库必须适应您的渲染引擎,例如,如果您有WPF项目或Windows窗体项,那就不同了。可能有库(特别是对于Windows Presentation Foundation),但为什么不使用Microsoft XNA?它在托管环境中运行,它允许您完全使用C#或任何其他CLR语言构建游戏/查看器/常规项目。
答案 2 :(得分:2)
Unity旨在让您能够创建最佳的互动娱乐或多媒体体验。 http://unity3d.com/promo/unity4/?gclid=CMOSnf281bQCFUbf4AodohUAQQ