开始3D编程/ OpenGL

时间:2011-05-03 06:09:34

标签: opengl 3d direct3d

我对C / C ++ / java非常熟悉,但我大多只做过命令行编程(除了java中的GUI)。

我对3D编程非常感兴趣,但我遇到的问题是我觉得我知道的很少,我甚至不知道从哪里开始,所以我很难找到所说的资源。

我希望有人能指出我正确的方向,以便开始使用一些资源/教程。

据我所知,两个大平台是OpenGL和Direct3d。我的问题是“更好”学习?

我最初是在http://nehe.gamedev.net开始使用一些OpenGl和一些教程,但我后来发现大多数东西都是贬值/糟糕的风格。

然后我了解到最新版本的OpenGL是4.x,而我只有一年的VG卡只支持OpenGL 2.x(HD 4890)。

我想学习如何基本上“走”通过一些三维环境,例如一个迷宫。

5 个答案:

答案 0 :(得分:1)

我个人没有使用过OpenGL,而且我只使用DirectX通过XNA,但据我所知,OpenGL比DirectX(更不用说跨平台)更容易学习,所以可能是一个更好的开始。你不必担心像特殊格式创建纹理(例如使用Maya)这么多东西;您可以使用JPEG文件或其他东西来使其工作。我听说Java Monkey Engine很好。

如果您正在使用Windows并且交叉兼容性不是问题,那么一定要试试微软XNA游戏工作室,它开始游戏编程的很棒 - 快速但简单而强大。 (你需要学习C#,但它应该很简单,因为你有足够的经验。)

答案 1 :(得分:1)

如果你对3D编程更感兴趣而不是底层的OpenGL / DirectX,我会开始使用某种框架或游戏引擎,例如: XNA,所以你不要担心(尽可能多)关于低级别的东西。但是,如果你想学习OpenGL或DirectX,我会从2D开始,因为它仍然会教你API,但它会更简单(因为你不必同时处理3D和API) ),虽然如果你只是制作一个简单的迷宫游戏(如你所说),你可以侥幸逃脱。

对于现代OpenGL,最新的SuperBible涵盖了它; http://www.arcsynthesis.org/gltut/涵盖了它;并且http://www.swiftless.com/opengltuts/opengl4tuts.html也涵盖了它。

要回答OpenGL或DirectX是否更好,如果您对XNA / Xbox / Windows Phone中的任何一个或仅仅是XNA / Xbox / Windows Phone感兴趣,请选择后者;如果您使用Linux /想要编写跨平台游戏,请选择前者。我认为OpenGL的新版本与DirectX相似。

https://gamedev.stackexchange.com/可能对你有帮助;针对初学者的问题很多;见https://gamedev.stackexchange.com/search?q=beginnerhttp://www.gamasutra.com/blogs/LewisPulsipher/20110516/7453/So_Youre_Going_To_Make_A_Game_For_The_Very_First_Time.php也提供了一些很好的建议(虽然它用于游戏而不是3D编程)

答案 2 :(得分:1)

OpenGL和DirectX分享了很多概念,但如果你想要跨平台,那么OpenGL肯定是更好的选择。特别是如果您想要定位更新的平台,如Android或WebGL。

您可能会发现最简单的方法是从现成的3D引擎开始,而不是从“原始”OpenGL开始。一些选项可以帮助您入门:

  • 如果您有Java经验,那么查看jMonkeyEngine可能是个好主意。它是一个完全成熟的OpenGL游戏引擎(在引擎盖下使用LWJGL,支持子弹物理,着色器架构,完整的SDK等),它附带了一些很好的示例代码。
  • 在C ++方面,我过去曾听到过关于Ogre3DIrrlicht的好消息。
  • 有一个很大的list of game engines on Wikipedia

答案 3 :(得分:0)

我真的要从XNA开始。 已经有一些很好的3D库和教程了。

e.g。 http://msdn.microsoft.com/en-us/library/bb197293%28v=xnagamestudio.31%29.aspx http://www.nfostergames.com/XNAQuickStartEngineWalkthrough.htm

和图书馆示例:

http://quickstartengine.codeplex.com/

答案 4 :(得分:0)

这个:http://www.amazon.com/Introduction-Game-Programming-Direct-9-0c/dp/1598220160是一本很棒的书,可以用DirectX学习“现代”(也就是基于着色器的)图形编程。还有一个更新的DX10版本,我确信它也很好,但我还没看过它。

我不知道相同的OpenGL书籍,也许其他人可以推荐一本书。一旦掌握了基本概念(顶点缓冲区,着色器,渲染状态等),在GL和DX之间移动并不是很困难,因为它们基本上都是相同图形硬件的接口。