Las API de gráficos, como OpenGL y DirectX, actúan como un puente entre el software y el hardware de gráficos que se usa para jugar. Estas API proporcionan métodos estandarizados para mostrar gráficos 2D y 3D en pantalla. Se han vuelto fundamentales para el desarrollo de juegos en las últimas dos décadas.
Los motores como Unity ofrecen una opción entre las API de gráficos que utilizan, pero ¿cómo se supone que debes elegir la opción correcta para tu juego? Únase a nosotros mientras comparamos OpenGL con DirectX para darle una idea de cuál de estas herramientas es mejor para usted.
DirectX frente a OpenGL: descripción general de la característica principal
En esencia, tanto DirectX como OpenGL comparten la misma canalización de gráficos, y lo han hecho durante muchos años. Ambas API usan puntos llamados vértices para construir primitivas gráficas complejas. Cada vértice almacena sus propias coordenadas y otra información importante. Pero la forma en que cada biblioteca usa los vértices es diferente.
Pueden realizar funciones similares, pero notará la diferencia entre OpenGL y DirectX si trabaja con ellos.
DirectX frente a OpenGL: alcance de la API
Antes de continuar, es importante tener en cuenta que, si bien ambas son API de gráficos, OpenGL y DirectX tienen alcances diferentes. OpenGL es una API de gráficos de pura raza, y esto significa que no se ocupa de nada más que gráficos 2D y 3D. DirectX, por otro lado, es una colección de gráficos, audio, redes y otras API de hardware que funcionan juntas.
En algunos casos, OpenGL utilizará DirectX para realizar funciones que no puede realizar por sí solo. El resto de este artículo ignorará esta diferencia entre las dos API y se centrará en los elementos gráficos de cada herramienta.
OpenGL frente a DirectX: Plataformas
OpenGL es una API gratuita administrada por una empresa sin fines de lucro llamada Khronos Group, mientras que DirectX está hecho por Microsoft. DirectX funciona principalmente en Windows y Xbox, mientras que otras plataformas, como Linux, obtienen soporte poco a poco. OpenGL es multiplataforma, lo que lo hace útil para el desarrollo de juegos en una variedad de sistemas operativos y consolas de juegos.
DirectX frente a OpenGL: recursos de hardware
DirectX deja la administración del hardware al desarrollador, lo que le brinda la capacidad de asignar recursos de manera eficiente, según los necesite. OpenGL maneja la administración de hardware, pero esto puede tener sus propios beneficios, ya que no tiene que preocuparse por administrar los recursos usted mismo.
DirectX frente a OpenGL: Documentación
El acceso a documentación detallada puede facilitar mucho el desarrollo de juegos cuando se trabaja con API. DirectX y OpenGL ofrecen documentación actualizada regularmente y comunidades de desarrolladores útiles. Ambas API reciben grandes actualizaciones anuales para garantizar que ofrecen las mejores funciones disponibles.
Usar OpenGL vs. DirectX para el desarrollo de juegos
Los desarrolladores han creado muchos juegos hermosos y bien optimizados en el mercado moderno usando OpenGL y DirectX. Hay varias cosas que debe considerar al elegir una API de gráficos 2D/3D. Algunos desarrolladores simplemente confiarán en la herramienta con la que se sientan más cómodos.
OpenGL o DirectX: Plataformas
Ya hemos mencionado las plataformas, pero esta es una consideración crucial para los desarrolladores. Si desea crear juegos para Nintendo Switch, Playstation 4 o Linux, deberá trabajar con OpenGL u otra API compatible. DirectX está hecho para Windows y Xbox y tiene compatibilidad limitada con otros sistemas.
OpenGL o DirectX: compatibilidad del motor
La mayoría de los desarrolladores de juegos utilizan motores como Unity y Unreal para crear sus juegos hoy en día. Ambos motores son compatibles con OpenGL y DirectX, al igual que otros motores de desarrollo de juegos multiplataforma.
OpenGL o DirectX: facilidad de uso
Algunos dirían que es más fácil trabajar con OpenGL que con DirectX. Junto con los recursos de hardware, OpenGL solo maneja gráficos, lo que lo hace más simple por naturaleza. El hecho de que funcione en más plataformas también facilita el lanzamiento de juegos con este requisito.
La facilidad de uso de la API de gráficos no es tan importante como solía ser para los desarrolladores de juegos. Con motores como Unity interactuando con las API de gráficos detrás de escena, solo se necesita hacer clic en un botón para cambiar la API que está utilizando. A menos que esté creando un juego desde cero, es poco probable que note una diferencia en la facilidad de uso de cada API.
OpenGL o DirectX: funciones gráficas
A menos que sea un caso marginal, es poco probable que vea una gran diferencia en las funciones que tiene disponibles entre estos API. Ambos son compatibles con las capacidades de su tarjeta gráfica, y esto solo cambiará si las GPU experimentan cambios drásticos en la futuro.
OpenGL o DirectX: rendimiento del juego
Hay mucho debate entre los desarrolladores sobre el rendimiento de estas API. Es difícil imaginar que OpenGL o DirectX tiene diferencias de rendimiento significativas, aunque es común afirmar que OpenGL es más fluido y más eficiente. en línea.
La única forma de averiguar cuál de estas API funciona mejor es mediante pruebas. Gracias a la compatibilidad de Unity con ambas API, podemos crear un proyecto y probar un juego de muestra con ambas API para crear un punto de referencia de rendimiento.
Estas pruebas se han realizado con gráficos 2D y 3D para garantizar que sus distintas canalizaciones no sean un factor considerable. Cada prueba se ejecuta durante 120 segundos de juego normal y se miden fotogramas por segundo para determinar el rendimiento. Todas las pruebas se han realizado en el mismo PC.
Prueba de rendimiento 3D: Microjuego Unity Carting
El microjuego Unity Carting es una plantilla gratuita que contiene todo lo que necesitas para crear un juego de carreras sencillo. Viene con tutoriales, pero estamos más interesados en el juego en sí. Creamos Carting Microgame con OpenGL y DirectX para comparar su rendimiento y los resultados fueron los siguientes:
más bajo | más alto | Promedio | |
---|---|---|---|
DirectX | 331 | 848 | 365.05 |
OpenGL | 247 | 819 | 283.7 |
DirectX superó a OpenGL en nuestro punto de referencia 3D, logrando velocidades de cuadro impresionantes en todo momento. Los resultados de OpenGL siguen siendo más que jugables.
Prueba de rendimiento 2D: Unity Platformer Microgame
Al igual que Carting Microgame, Unity Platformer Microgame es gratuito y está repleto de excelentes herramientas de aprendizaje. Como era de esperar, el juego 2D en nuestras pruebas funciona mejor que el 3D, pero puedes evaluar los resultados por ti mismo.
más bajo | más alto | Promedio | |
---|---|---|---|
DirectX | 599 | 850 | 767.367 |
OpenGL | 302 | 604 | 515.417 |
Como puede ver en los resultados anteriores, DirectX logró una velocidad de fotogramas promedio mucho más alta en nuestras pruebas. Si bien la diferencia puede parecer dramática, ambos resultados son muy jugables.
OpenGL o DirectX 11: Conclusión sobre el rendimiento
Si bien muchas personas dicen que OpenGL funciona mejor que DirectX, esta última API logró mejores resultados en nuestros dos puntos de referencia. Esto está lejos de ser concluyente, ya que muchos factores juegan un papel en el rendimiento de un juego, especialmente a medida que se vuelven más complejos.
DirectX u OpenGL: ¿Cuál debería usar para el desarrollo de juegos?
Elegir la API de gráficos adecuada depende de varios factores. DirectX es la API de gráficos más utilizada. Muchos desarrolladores de juegos crean sus juegos para Windows y Xbox antes de trasladarlos a OpenGL para otras plataformas. Si está publicando un juego exclusivamente fuera de Windows y Xbox, puede beneficiarse del uso de OpenGL desde el principio.
El rendimiento también es un factor a considerar, aunque nuestras pruebas muestran que esto es bastante insignificante cuando se usan herramientas de motor como Unity. En esencia, las diferencias entre estas dos API de gráficos solo importan para aquellos que buscan funciones de nicho específicas.