我该如何开始玩3D游戏?

时间:2010-05-23 16:29:03

标签: c# .net 3d modeling

我现在只是开发人员大约6个月了,而且因为我喜欢编程,所以我开始使用脚本,计算器,工具,玩DropBox(hehe)的东西等小程序,玩的东西使用位图,绘制图形,甚至是根据您在iTunes上收听的音乐作品更新MSN显示图像的程序。

我的另一个爱好是3D建模(completely amateur),我想将这些爱好混合在一起!所以我已经阅读了一些关于它的内容,并认为我必须对几何,数学,点空间位置(我从我的3D建模经验中做)有好的概念,但我不知道如何使用API它,所以我用一个简单的程序(spinning cube)'模拟'简单的3d。

以下是一些问题:
1)对于像我这样的.NET程序员来说,什么是一个很好的3D开发工具? 2)有没有办法使用3DS Max制作的3D模型? (我打算对人物进行建模)
3)我应该有什么知识才能渲染它并移动它? 4)我应该使用哪种API?

注意:不是欺骗,我要求使用3ds MAX特定于.NET开发的方向,到目前为止没有任何问题


修改

我有三个答案似乎相当不错,所以让我指一点,也许你可以告诉我什么是更合适的工具。
我想很快建立的将是:

  • 便携式(点击'n'run,无需安装,(希望)无需发送DLL)
  • winforms应用程序中的“3D嵌入”,就像您可以渲染的图片框一样。
  • 真正的winforms类似应用程序(具有所有系统API,如IO,绘图等)

如果发展环境很好:

  • 是否有可能导入存在的3D模型(不是必须的,而是一个加号)
  • 能够以编程方式创建3d模型(必须)
  • 可能有材料和纹理的工具(这将是一个巨大的优势)
  • 众所周知(教程的高可用性,S.O.的问题,论坛......)

如果我可以一直使用C#,那将是非常好的。)

7 个答案:

答案 0 :(得分:7)

我打算再为XNA投票。它过于“以游戏为中心”的评论是非首发 - 它提供了一个渲染循环,其中包含有关所有内容运行速度的反馈,因此您可以调整渲染以尝试维持特定的帧速率(如果需要)。这不是特别以游戏为中心的,因为它是大多数3D应用程序应该担心的东西。唯一真正异乎寻常以游戏为中心的是它提供了对游戏控制器的轻松访问。如果你不想使用它,请随意忽略它。

使用XNA的唯一不利方面是你要求点击'n'run,XNA有redistributable,你必须担心。请注意,Win7默认安装了此功能,但Vista和更早版本没有安装。

编辑: XNA适用于严格3D的应用程序。因此,它本身不支持在XNA项目中使用典型的窗口控件。但是,这方面有很多方法...... 一些有用的链接。将XNA嵌入winform中:http://forums.xna.com/forums/p/6471/34180.aspx#34180 WPF直接控制在XNA项目中:http://www.c-sharpcorner.com/UploadFile/iersoy/256/Default.aspx

答案 1 :(得分:4)

就我个人而言,我发现XNA对我的口味有点“游戏中心”。我对设计/架构类型的使用更感兴趣。

您可以根据自己的喜好找到SlimDX

答案 2 :(得分:4)

即使这篇帖子中有很多好建议(比如SlimDX和XNA),我还是想提一下OpenTK

OpenTK比Direct3D更接近OpenGL,但它可能是跨平台3D .NET应用程序的最佳解决方案。

答案 3 :(得分:3)

由于您使用的是C#.Net,因此XNA库非常适合您。它可以从Microsoft网站免费下载并集成到VS IDE中。有很多可用的教程可以帮助您入门。

另外,如果我没记错的话。要在XNA中使用3d模型,只需将完成的模型导出为(.X)。然后它可以加载到你的工作中。

答案 4 :(得分:2)

我投你试试Blender。 www.blender.org

它是免费的,开源的,并且在论坛和IRC上都有一个很棒的社区。该应用程序的进展每年都会被主要社区项目推进,其中一些是电影和游戏,并赢得了一些奖项。它正在获得业界的认可,作为一种非常快速建模的方式。

下行:它不像Maya或ZBrush那样被视为“专业”,它在界面上有着截然不同的大脑。学习曲线可能很有趣,取决于您的学习方式和获得的帮助。

好处:它是免费的,优秀的社区,定期更新,许多教程和社区项目可供使用。

社区:

以前的社区项目:

答案 5 :(得分:1)

我的投票是Povray。它是一个具有类似c语法语言的3d渲染器。它不能满足你的.net需求,但如果很酷则不是3d渲染。如果您有任何交互性,XNA可能是您最好的。但我对你的发现很感兴趣。

答案 6 :(得分:1)

Re:“能够以编程方式创建3d模型(必须)”

一些指示:

我知道没有允许您使用上述库/技术的.NET库。您必须使用PInvoke或C ++ / CLI才能从托管环境调用这些库。