¿Cuál es mejor, opengl o d3d?
Cada uno tiene sus propias ventajas. Hoy en día, hay más D3D para juegos, otros gráficos, procesamiento de gráficos industriales, realidad virtual usando openGL y OSG.
La historia del desarrollo de OpenGL:
El predecesor de OpenGL es IRIS GL desarrollado por SGI para sus estaciones de trabajo gráficas. IRIS GL es una interfaz de software de gráficos 3D estándar de la industria. Aunque es potente, su portabilidad no es buena, por lo que SGI desarrolló OpenGL basado en IRIS GL. El nombre completo en inglés de OpenGL es "Open Graphics Library". Como sugiere el nombre, OpenGL es una "interfaz de programa de gráficos abiertos".
En julio de 1992, SGI lanzó la versión 1.0 de OpenGL y luego desarrolló conjuntamente la versión Windows NT de OpenGL con Microsoft, permitiendo así algunos programas que originalmente tenían que ejecutarse en estaciones de trabajo de gráficos de alta gama. El software de procesamiento de gráficos 3D también se puede utilizar en microcomputadoras.
En 1995, se lanzó la versión 1.1 de OpenGL. Esta versión tenía un rendimiento mucho mejor en comparación con la 1.0 y agregaba algunas características nuevas. Esto incluye mejorar la velocidad de transmisión de posiciones de vértices, normales, colores, índices de color, coordenadas de textura, identificadores de bordes de polígonos, introducir nuevas características de textura y más.
En 1997, con la aparición de una gran cantidad de juegos 3D en Windows 95, las empresas de desarrollo de juegos necesitaban con urgencia una interfaz de gráficos 3D potente y compatible. En ese momento, la interfaz de gráficos 3D de Microsoft tenía la función DirectX 3.0. Muy malo. Por lo tanto, id Company, famosa por producir juegos de disparos clásicos en 3D como "Quake", y otras empresas de desarrollo de juegos han solicitado encarecidamente a Microsoft que agregue soporte para OpenGL en Windows 95. Microsoft finalmente agregó soporte para OpenGL en la versión OSR2 de Windows 95 y versiones posteriores de Windows. De esta manera, no solo se utilizan ampliamente muchos juegos 3D de computadora que admiten OpenGL, sino que muchos software de diseño de gráficos 3D también pueden usar tarjetas aceleradoras 3D que admiten el estándar OpenGL, lo que mejora en gran medida la velocidad de procesamiento de sus gráficos 3D.
El 28 de julio de 2003, SGI y ARB anunciaron OpenGL 1.5. OpenGL 1.5 incluye el lenguaje de dibujo oficial de especificación extendida "OpenGL Shading Language" de OpenGL ARB. Las nuevas características de OpenGL 1.5 incluyen: objeto de búfer de vértice, función de sombra, consulta oculta, textura sin energía, etc.
En agosto de 2004, se lanzó la versión OpenGL 2.0. El principal desarrollador del estándar OpenGL 2.0 no fue el SGI original, sino 3Dlabs, que gradualmente tomó la iniciativa en ARB. opengl2.0 admite el lenguaje de sombreado OpenGL, nuevas funciones de extensión de sombreado y muchas otras funciones mejoradas.
Para qué se utiliza OpenGL:
En la década de 1990, OpenGL era famoso. En ese momento, DirectX de Microsoft acababa de aparecer y sus funciones eran muy inferiores a las de OpenGL. en realidad era una interfaz de programación 3D (es decir, lo que a menudo llamamos API 3D). Esta interfaz consta de casi 250 llamadas a funciones diferentes y se utiliza para dibujar escenas tridimensionales complejas a partir de primitivas simples. Es un puente de comunicación muy importante entre el hardware de la tarjeta aceleradora 3D y las aplicaciones de gráficos 3D. También se puede decir que OpenGL es una biblioteca de gráficos 3D subyacente potente y fácil de llamar.
OpenGL es una interfaz de software independiente del hardware que se puede trasplantar entre diferentes plataformas como Windows NT, Unix, Linux, MacOS y OS/2.
Por lo tanto, el software que admite OpenGL tiene buena portabilidad y puede usarse ampliamente.
Características y funciones de OpenGL:
OpenGL es un paquete de software de gráficos tridimensionales abierto. Es independiente del sistema de ventanas y del sistema operativo. Las aplicaciones desarrolladas en base a él se pueden ejecutar fácilmente. se puede trasplantar entre varias plataformas; OpenGL se puede interconectar estrechamente con Visual C para facilitar la implementación de algoritmos de cálculo y gráficos relevantes del robot, lo que garantiza que el algoritmo sea correcto y confiable y sea altamente eficiente; Tiene siete funciones principales:
1. Modelado: además de proporcionar funciones básicas de dibujo de puntos, líneas y polígonos, la biblioteca de gráficos OpenGL también proporciona objetos tridimensionales complejos (bolas, conos, poliedros, teteras). , etc.) etc.) y funciones complejas de dibujo de curvas y superficies.
2. Transformación: Las transformaciones de la biblioteca de gráficos OpenGL incluyen transformaciones básicas y transformaciones de proyección. Hay cuatro transformaciones básicas: traslación, rotación y duplicación de proporción variable. Las transformaciones de proyección incluyen proyección paralela (también llamada proyección ortográfica) y proyección en perspectiva. Su método de transformación es beneficioso para reducir el tiempo de ejecución del algoritmo y mejorar la velocidad de visualización de gráficos tridimensionales.
3. Configuración del modo de color: hay dos modos de color OpenGL, a saber, el modo RGBA y el índice de color (índice de color).
4. Configuración de iluminación y materiales: La luz OpenGL incluye luz radiante (Emitted Light), luz ambiental (Ambient Light), luz difusa (Diffuse Light) y luz especular (Specular Light). Los materiales están representados por la reflectividad de la luz. El color de los objetos en la escena que finalmente se refleja al ojo humano es el color formado al multiplicar los componentes rojo, verde y azul de la luz y la reflectividad de los componentes rojo, verde y azul del material.
5: Mapeo de texturas. La función de mapeo de texturas OpenGL se puede utilizar para expresar detalles de la superficie del objeto de manera muy realista.
6: Además de la copia básica y la lectura y escritura de píxeles, las funciones de imagen de visualización de mapa de bits y mejora de imagen también proporcionan imágenes especiales de fusión, suavizado y procesamiento de efectos de niebla. Los tres elementos anteriores pueden hacer que el objeto simulado sea más realista y mejorar el efecto de la visualización gráfica.
7: Animación de doble búfer (Double Buffering) El doble búfer es el búfer frontal y el búfer de fondo. En resumen, el búfer de fondo calcula la escena y genera la imagen, y el búfer frontal muestra la imagen dibujada. el búfer de fondo.
Además, OpenGL también se puede utilizar para lograr efectos especiales como señal de profundidad (Depth Cue) y desenfoque de movimiento (Motion Blur). De este modo se implementa el algoritmo de supresión.
Estado de OpenGL:
En los últimos años, basándose en la fuerza de I+D de Microsoft y el dominio de Windows en el mercado de sistemas operativos, DirectX ha tomado una ventaja absoluta en las API de juegos 3D. OpenGL, que alguna vez fue un gran éxito, parece haberse estancado. En la actualidad, es posible que los únicos juegos OpenGL que conocemos apenas sean compatibles con las series "Quake" y "Doom" producidas por id. ¿Cuál es el futuro de OpenGL? OpenGL sigue siendo la única API que puede reemplazar el control total de Microsoft sobre la tecnología de gráficos 3D. En la actualidad, OpenGL sigue siendo la única solución 3D multiplataforma y todavía tiene cierta vitalidad. Los desarrolladores de juegos son un grupo con muchas ideas independientes. Todavía utilizamos Open GL. Como resultado, los desarrolladores de hardware buscan reforzar su soporte.
En la actualidad, con el continuo desarrollo y mejora de DirectX, las ventajas de OpenGL se están perdiendo gradualmente y las perspectivas de desarrollo futuro de OpenGL no están claras. OpenGL y DirectX representan dos escuelas importantes que dividen el mundo de los gráficos. Esta situación a veces obstaculiza el desarrollo y otras veces es beneficiosa para el desarrollo. Después de todo, la competencia conducirá al desarrollo.
Al igual que no queremos que AMD colapse en el mercado de procesadores, ni queremos que INTEL domine, no queremos que quede un solo señor en el campo del 3D. Espero que OpenGL vaya bien hasta el final. . . . . .
Otro: El 8 de agosto de 2007, la Junta de Revisión de Arquitectura OpenGL anunció oficialmente OpenGL 3 en la exposición Siggraph BOF en San Diego. Anteriormente conocido como OpenGL Longs Peak, OpenGL 3 es el nombre oficial. La especificación OpenGL 3 se finalizará en la próxima reunión de OpenGL ARB a finales de agosto y se hará pública oficialmente a finales de septiembre después de una evaluación de 30 días por parte del Grupo Khronos. El último lenguaje de sombreado OpenGL también se muestra públicamente con OpenGL 3.
d3d
Para hablar de Direct3D, tenemos que hablar de DirectX es un paquete de software de desarrollo multimedia desarrollado y lanzado por Microsoft. Una parte del mismo se llama DirectDraw. una API de representación de gráficos que proporciona potentes capacidades de procesamiento de acceso y algunas funciones relacionadas con gráficos tridimensionales están integradas en DirectDraw, llamado Direct3D.
Aunque D3D y OPENGL son esencialmente iguales, Direct3D (D3D) es un programa de visualización desarrollado por Microsoft para mejorar el rendimiento de visualización de juegos 3D en Win 95/98. Se ha actualizado a la versión 9.0 y es compatible. XP, etc. El último sistema operativo de Microsoft, que ofrece una rica biblioteca de funciones 3D, es un estándar ampliamente adoptado para juegos.
Direct 3D es una API de gráficos 3D basada en el Modo de Objeto Común COM (Modo de Objeto Común) de Microsoft. Es una especificación de API 3D establecida por Microsoft. Microsoft posee los derechos de autor de la biblioteca. Todas sus definiciones de sintaxis se incluyen en los archivos de ayuda y el código fuente de los componentes de desarrollo del programa proporcionados por Microsoft. Direct3D es una parte importante del paquete de desarrollo integrado DirectX SDK de Microsoft y es adecuado para computación de gráficos 3D extensa y práctica, como multimedia, entretenimiento y animación 3D en tiempo real. Desde su lanzamiento en 1996, Direct3D rápidamente ha sido ampliamente reconocido por su buena compatibilidad de hardware y métodos de programación amigables. Ahora casi todas las tarjetas gráficas convencionales con aceleración de gráficos 3D brindan un buen soporte para Direct3D. Pero también tiene fallas. Debido a que se proporciona en forma de interfaz COM, es más complejo y tiene poca estabilidad. Por lo tanto, D3D es una herramienta muy engorrosa, aunque Microsoft la ha simplificado tanto como sea posible. Para un efecto, todavía tienes que hacer mucho trabajo, incluidas las asignaciones a varias estructuras complejas. Estas asignaciones son muy importantes y están directamente relacionadas con el efecto final del programa. Además, actualmente sólo está disponible en plataformas Windows.