在OpenGL中学习曲线与Direct3D +其他游戏组件

时间:2011-05-02 06:48:39

标签: opengl comparison directx direct3d

不要开始一场火焰战...... 但是我在OpenGL超级明星的第4章中,书籍组织对初学者没有帮助 我一直在对每个API的背景故事进行一些研究,但很多人都指向Direct3D作为未来更简单的API,考虑到他们实际进步,添加新功能并将其推出的能力。

主要是,我想知道是否有更陡峭的学习曲线,因为我发现OpenGL很难继续使用我的书......

如果它更容易学习,我应该切换到Direct3D吗?如果他们开始再次回到Direct3D,可能会在以后返回OpenGL吗?

顺便说一下,在学习C ++一年和未来的游戏编程的背景下,我很想学习这些东西,所以我还需要弄清楚如何设置音频,ai等等......

谢谢!! =)

2 个答案:

答案 0 :(得分:2)

你应该切换到Direct3D吗?问自己以下问题:

  • 您是否只想开发Windows? [YES / NO]
  • 每当API的主要版本增加时,您是否准备好花时间学习新的API设计? [YES / NO]
  • 你是否还可以使用新一代GPU的功能只有一些重大延迟,直到下一个主要版本的API发布? [YES / NO]

如果您使用YES回答了上述任何一项,那么Direct3D是正确的选择。否则我推荐OpenGL:

  • OpenGL适用于所有主要操作系统和平台以及更加模糊的版本。
  • OpenGL的API设计非常稳定,基本原则十多年来没有改变。看一下开源游戏 Nexuiz Classic ,它主要基于Darkplaces引擎,它是开源Quake2引擎(为OpenGL-1.1编写)的大修,并已更新为支持所有现代口哨和基于着色器渲染的铃铛。
  • OpenGL的扩展机制允许GPU供应商在发布日期访问最新一代的功能。使用Direct3D,您不得不等到Microsoft发布下一个版本。当NVidia在2006年发布他们的GeForce8800时,花了半年时间才让Joe Average Developer为其新功能编写Direct3D代码。但是,通过OpenGL扩展,它可以立即被OpenGL程序访问;我记得我买GeForce8800的那天(正式发布后4天)将它安装到我的机器中,并在同一天晚上开始使用几何着色器进行黑客攻击。

答案 1 :(得分:1)

听起来我觉得你有大部分倒退。

OpenGL肯定比Direct3D更容易学习 - 特别是,你可以使用立即模式来处理你不太关心性能的简单事情,以及延迟处理顶点缓冲区和像素缓冲区等等。 / p>

与Direct3D相比,OpenGL曾经具有显着的性能劣势,并且在添加新功能方面进展相对较慢。一段时间后,新的发展被转交给Khronos。虽然对于Khronos所采取的一些步骤存在一些争议,但他们在功能平价方面做得很好,而且我已经看了几年,因为我已经看到了Direct3D的任何真正的性能优势。

相关问题