OpenGL还是DirectX?

14 c++ opengl directx

我知道这可能是一个非常主观的问题,但我只想从最简单,最快速的学习开始,这样我就可以尽快开始我的一个小项目,这是一个小小的2D游戏,至少从...开始.你建议我选择哪一个?我正在使用C++

Ree*_*sey 20

第一个问题:你在Windows上吗?如果没有,请使用OpenGL.

如果你在Windows上,这将归结为品味问题.API不同,但OpenGL和DirectX所需的概念非常相似.大多数东西都得到了支持,尽管它们确实有所不同.

Microsoft提供了相当多的示例和一个可以用于DirectX(9或10)的体面框架,这可以使它更容易入门.

话虽这么说,如果你只针对Windows Vista/Win7,那么转移到DirectX 10可能会让生活更轻松.在DX10中删除了DX9及更早版本中的许多烦恼,并且API更加干净.

话虽这么说,如果这是一个游戏,我建议使用像Ogre这样的中间件引擎,而不是直接在DirectX或OpenGL中编写.这将使您的生活更加简单,尤其是在学习的过程中.

  • 我认为Ogre已经成为游戏编程的jQuery,每个人只是说"使用Ogre",可能没有尝试过.我不会推荐Ogre来换新手.您需要了解图形编程的原理,为此您应该以非常低级的方式接触到3D API. (4认同)
  • 除了我的情况,我痴迷于收集引擎,实际上没有做任何事情.我肯定会更好地一次绘制一个三角形.哦,我推荐使用OpenGL,因为那时你的程序可以在Linux上运行......无论如何你要使其余部分兼容Linux. (2认同)

rpj*_*nst 6

我没有使用过DirectX,但OpenGL相当简单,并且在NeHe有一些很好的初学者教程.此外,如果您甚至想要跨平台,那么您将需要OpenGL.
但是,DirectX不仅仅是一个图形库,你也可以将它用于声音等,所以它可能值得研究.

  • 虽然常用的SDL库,使用OpenGL,支持输入(并管理你的窗口,并帮助你跨平台),并有声音,网络等的"插件".OpenAL也是一个伟大的声音库,并且具有与OpenGL相同的语法,因此感觉很熟悉. (4认同)

Jor*_*eña 5

如果它只是2D,那么也许值得研究SDL,它已经是跨平台的,似乎很容易学习.网上有很多教程,但我记得的一个特定网站是Lazy Foo的SDL教程.您也可以将OpenGL与SDL混合使用,也有相关的教程.

如果你不想使用SDL,并且你在Windows上,我会推荐使用DirectX.我确实认识到它们之间的选择最终会在互联网上的任何地方结束,但我的理解是DirectX 面向游戏开发者,所以你会发现许多可能促进各种各样的实用程序库,函数和类任务.使用OpenGL,您可以编写跨平台代码,前提是图像加载等辅助功能也是跨平台的(确实存在跨平台库).

所以我的底线是:两者都很好,OpenGL为您提供跨平台代码(只要您编写它),DirectX为您提供更多面向游戏开发的工具和库.