由于微软通常对Direct3D有偏见,因此Direct3D中使用VBO的场景是否比在OpenGL中使用VBO的场景更快,或者是否与图形卡驱动程序相同?
谢谢
谢谢
解决方法
性能方面,假设出色的GPU驱动程序,总体上没有差别.
尽管DX10解决了这个问题,OpenGL中的一些操作本身就比DirectX9更快.
但使用外部硬件的一个很好的经验法则是,您不是使用API来确定性能.
在编写网络代码时,瓶颈是网络适配器,如果您的套接字代码是用.NET编写的,或者是使用一些Python库,则不需要使用.NET,普通的Berkeley套接字.
当编写代码以使用GPU时,GPU是限制因素. DirectX和OpenGL之间的最大区别在于,可能需要一个函数调用或者两个以上的函数来实现某些任务,而且性能成本几乎不存在.在这两种情况下,GPU都会发生什么,因为这是由GPU驱动程序决定的,因为OpenGL和DirectX都尽可能的高效.
有理由更喜欢任何API.
DirectX具有更好的工具支持.微软做得非常好.使用像PIX这样的工具,调试和优化DirectX代码更容易.而微软还提供了助手库D3DX,它提供了许多常用功能的高效实现.
OpenGL具有的优点是它不受特定操作系统的限制. DirectX9仅适用于Windows. DX10及以上版本仅适用于Vista及以上版本.
OpenGL适用于已经编写了OpenGL驱动程序的任何操作系统.
在Windows上,情况有时有点尴尬. Windows本身只是OpenGL的古老实现. (XP与v1.1,我相信,Vista / 7与1.5).
因此,Windows上的OpenGL应用程序依赖于GPU供应商来提供其驱动程序的更新实现. ATI和NVidia提供了非常好的实现,所以这不是一个问题.英特尔的OpenGL驱动程序通常落后于质量和支持功能.