OpenGL与Direct3D?

use*_*784 2 c# opengl 3d direct3d

我是一名Java程序员,他对Swing有着相当多的经验,我已经用它来进行2D游戏编程.我有兴趣编写3D游戏,我不确定使用哪种API - OpenGL或Direct3D.

  • 我不关心可移植性或向后兼容性或任何相关性.我正在编程作为Windows机器上的一个爱好.
  • 我选择的最大因素是:哪种API为我提供了最佳的性能 - 速度比?
  • 但是,我也想要在互联网上相当详细记录的API.我不想浪费时间在黑暗中摸索.

其他不太重要的因素

  • 哪一个有"更干净"的代码?哪一个更面向对象?
  • 我知道OpenGL通常与C++一起使用.我更喜欢使用C#.哪两个在C#中更容易使用?

Asi*_*sik 8

两者都可以从C#中使用,分别得益于OpenTKSharpDX.在这两者中,SharpDX是最年轻但也是最积极开发的.

如果使用得当,两者都能提供出色 我认为不可能证明其中任何一个比另一个更快.

当然,OpenGL在各个平台之间具有更广泛的兼容性,但如果你关心的只是Windows,那么这不是问题.

Direct3D比OpenGL更面向对象; 它是一个COM API,而OpenGL是一个C API.两者都没有导致漂亮的代码,毕竟它们是非常低级的API.如果面向对象和清理是你想要的,你应该研究一些比这些API更高级的实用程序,例如XNA/MonoGame.