OpenGL和Direct3D之间有什么区别?它们是真正不同的实现,以完成相同的任务(就像Java和Microsoft的CLR [.NET]一样)吗?
Direct3D和OpenGL是用于实现相同目的的不同API。
D3D和GL之间的主要区别在于D3D是面向对象的而GL不是。D3D9和GLES2基本具有相同的功能。事实上,如果您计划使用OpenGL并且不需要任何GL3或GL4功能,则应该将所有代码基于GLES2 API(所有GLES2功能都在GL2中,但反过来不行)。
如果可能的话,您应该始终在Windows上使用D3D,因为多线程和驱动程序支持不稳定。例如,以netbooks为例,它们支持D3D的HLSL ShaderModel 2,但不支持GLSL的等效物,它们只支持GL的固定管道。
在这种情况下,谷歌是你的朋友......有一篇不错的维基百科文章对比了两个库:
如果我没记错的话,OpenGL是在Direct3D出现之前的开放实现。然后Direct3D基于OpenGL......但很快就分道扬镳成为自己独立的库。
更新
看来我的记忆已经不可靠了......
Direct3D是独立于OpenGL开发的。