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