Comparación entre Direct3D y OpenGL

Direct3D y OpenGL son interfaces para la programación de aplicaciones (API acrónimo del inglés Application Programing Interfaces) competitivas que pueden ser usadas en aplicaciones para representar gráficos por computadora (o también llamado computación gráfica) en 2D y 3D, tomando como ventaja de la aceleración por hardware cuando se dispone de esta.

Para más detalle, las dos APIs de computación gráfica puden resumirse como: Tenga en cuenta que muchas extensiones de OpenGL y algunos métodos esenciales, aunque está documentados, se encuentran en realidad patentados, lo que impone serios problemas legales para su implementación (ver problemas con Mesa[1]​).

OpenGL tiene implementaciones disponibles en muchas plataformas, incluyendo Microsoft Windows y sistemas Unix como Mac OS X, GNU / Linux.

La aceleración por hardware de OpenGL en Windows está disponible desde la primera vez que son instalados por los usuarios los controladores instalables del cliente (CIC) desarrollados por los fabricantes de GPU.

[4]​ Chris Hecker hizo una petición similar en una "Carta Abierta a Microsoft "en el período abril-mayo de 1997 en la revista Game Developer.

Estos enlaces existen para Ada, BASIC (BlitzMax (a menudo utilizado para programar juegos), 'PureBasic, Visual Basic), C#, Delphi, Fortran, Haskell, Java, Lisp, Lua, Pascal, Perl, Python y Ruby por nombrar algunos.

Estos dos APIs están orientadas fundamentalmente bajo dos modos diferentes de pensamiento.

Hasta alrededor del 2005, otra diferencia funcional entre estas dos API, era la forma en que manejaron la representación de las texturas.

Gran parte de la discusión giró en torno a cual ofrece un rendimiento superior.

DOS es un software empresarial, como AutoCAD y los juegos de DOS tales como Doom, distribuido por la empresa id-Software, originalmente tenían que ser optimizados para funcionar en muchos chipsets gráficos diferentes.

En entornos multitarea, como Microsoft Windows en el PC y el sistema X Window (X11) en sistemas tipo Unix-Like llegó a ser un factor dominante, por lo que la relevancia de este hardware se desvaneció.

En ese momento, SGI desafió a Microsoft con su propia implementación optimizada de OpenGLn para Windows llamado CosmoGL que en varias demostraciones igualó o superó el rendimiento de Direct3D.

Por otra parte, la representación de software usando API 3D fue en gran medida irrelevante para aplicaciones Direct3D y OpenGL.

Esto significa que en cada llamada Direct3D envía comandos para el hardware el cual debe realizar una conmutación en modo de kernel que a su vez, tarda un tiempo en el orden de los microsegundos en completarse.

Sin embargo, ningún subgrupo específico para juegos oficiales se definió alguna vez.

El mecanismo de extensión OpenGL es probablemente la diferencia más fuertemente disputada entre los dos APIs.

La tecnología NVIDIA UltraShadow, por ejemplo, no está disponible en el API Direct3D en tiempo de escritura.

Cuando las tarjetas gráficas han añadido soporte para pixel shaders (conocidos en OpenGL como "Fragment Shader"), Direct3D ha proporcionado un estándar "de Pixel Shader 1.1" (PS1.1) con la que la GeForce 3 o superior, y Radeon 8500 o superior, son totalmente compatibles.

En su mayor parte, las únicas tarjetas PS 1,1 que permiten esta funcionalidad son las NVIDIA, y eso se debe a que fueron construidas para ello de forma nativa.

Como tal Shader, Pixel 2.0 permite una ruta de código unificado bajo Direct3D.

(El término profesional se utiliza aquí para referirse a la producción profesional y visualización de gráficos, tales como en películas de animación por ordenador y la visualización científica, no en los juegos donde los gráficos obtenidos son para uso personal, en lugar de profesional, del usuario final.)

Varias versiones de sistemas operativos de teléfonos inteligentes son compatibles con OpenGL ES, como Android, iOS (iPad, iPhone, iPod Touch), Maemo (Nokia N900), y Symbian.

[9]​ En la actualidad todos los dispositivos Windows Phone 7 utiliza una interfaz de usuario.