jal*_*alf 20
性能方面,假设GPU驱动程序不错,总体上没有差异.
虽然DX10可以解决这个问题,但OpenGL中的某些操作本身比DirectX9更快.
但是,使用外部硬件时的一个好的经验法则是,您使用的API不是决定性能的API.
当写网络代码的瓶颈是网络适配器,如果你的套接字代码是写在.NET,在C平原Berkeley套接字,或者使用一些Python库也没关系.
在编写使用GPU的代码时,GPU是限制因素.DirectX和OpenGL之间最大的区别是,一个可能需要一个函数调用或两个比对方多,实现特定的任务 - 和其性能成本是非常不存在的.会发生什么事的GPU是在两种情况下是相同的,因为这是你的GPU驱动程序确定的,因为这两个OpenGL和DirectX尝试尽可能高效.
但是有正当理由偏爱任何API.
DirectX具有更好的工具支持.微软做得非常好.使用PIX等工具可以更轻松地调试和优化DirectX代码.Microsoft还提供了辅助库D3DX,它提供了许多常用功能的高效实现.
OpenGL的优势在于它不依赖于特定的操作系统.DirectX9仅适用于Windows.DX10及以上版仅适用于Vista及以上版本.
OpenGL适用于已编写OpenGL驱动程序的任何操作系统.
在Windows上,情况有时有点尴尬.Windows本身只附带OpenGL的古老实现.(相信v1.1的XP,和1.5的Vista/7).
因此,Windows上的OpenGL应用程序依靠GPU供应商为其驱动程序提供更新的实现.ATI和NVidia确实提供了非常好的实现,所以它不是一个很大的问题.英特尔的OpenGL驱动程序通常在质量和支持功能方面都落后.