Bibliotecas gráficas
Las bibliotecas gráficas, como DirectX y OpenGL, desempeñan un papel fundamental en el mundo de la programación y el desarrollo de aplicaciones interactivas, especialmente en el ámbito de los videojuegos y la simulación gráfica. Estas proporcionan a los desarrolladores las herramientas necesarias para aprovechar al máximo el potencial de los componentes gráficos de una computadora y crear experiencias visuales envolventes.
DirectX, desarrollado por Microsoft, es una suite de tecnologías diseñada principalmente para plataformas Windows, mientras que OpenGL, una especificación de gráficos multiplataforma, ofrece un enfoque más abierto y compatible con diversas plataformas, incluyendo Windows, macOS y Linux.
Ambas bibliotecas permiten controlar gráficos en 2D y 3D, interactuar con dispositivos de entrada y crear entornos visuales impactantes en una variedad de aplicaciones. Ya sea que estés interesado en juegos, visualización científica o aplicaciones de diseño, comprender estas bibliotecas gráficas es esencial para desarrollar software atractivo y de alto rendimiento.
Directx
Para hacer un pequeño test de la biblioteca gráfica Directx sigue los siguientes pasos:
- Presiona la tecla “Windows” + “R” para abrir la ventana Ejecutar.
- Escribe “dxdiag” y presiona Enter.
- Se abrirá la utilidad “DirectX Diagnostic Tool”. Aquí podrás ver información detallada sobre tu versión de DirectX en la pestaña “System”.
OpenGL
OpenGL es una tecnología gráfica de código abierto y se utiliza ampliamente en sistemas Windows, Mac y Linux. Para probar OpenGL, puedes utilizar programas de prueba de rendimiento gráfico como “OpenGL Extensions Viewer” o “GL-Z.” o usar el siguiente código escrito en python
Para que este código funcione hay que instalar las siguientes librerías: PyGame, PyOpenGL y PyOpenGL_accelerate. Para instalarlas hay que hacer uso del comando pip de la siguiente forma:
pip install PyGame PyOpenGL PyOpenGL_accelerate
Una vez que se tenga instalado las librerías copia el siguiente código en un fichero con nombre test_opengl.py
from OpenGL.GL import * import sys import pygame from pygame.locals import * from OpenGL.GLU import * vertices = [(0.5, -0.5, 0.5), (-0.5, -0.5, 0.5), (0.5, 0.5, 0.5), (-0.5, 0.5, 0.5), (0.5, 0.5, -0.5), (-0.5, 0.5, -0.5), (0.5, -0.5, -0.5), (-0.5, -0.5, -0.5), (0.5, 0.5, 0.5), (-0.5, 0.5, 0.5), (0.5, 0.5, -0.5), (-0.5, 0.5, -0.5), (0.5, -0.5, -0.5), (0.5, -0.5, 0.5), (-0.5, -0.5, 0.5), (-0.5, -0.5, -0.5), (-0.5, -0.5, 0.5), (-0.5, 0.5, 0.5), (-0.5, 0.5, -0.5), (-0.5, -0.5, -0.5), (0.5, -0.5, -0.5), (0.5, 0.5, -0.5), (0.5, 0.5, 0.5), (0.5, -0.5, 0.5)] triangles = [0, 2, 3, 0, 3, 1, 8, 4, 5, 8, 5, 9, 10, 6, 7, 10, 7, 11, 12, 13, 14, 12, 14, 15, 16, 17, 18, 16, 18, 19, 20, 21, 22, 20, 22, 23] def wireCube(): for t in range(len(triangles) - 3): glBegin(GL_LINES) glVertex3fv(vertices[triangles[t]]) glVertex3fv(vertices[triangles[t + 1]]) glVertex3fv(vertices[triangles[t + 2]]) glEnd() t += 3 pygame.init() # Project settings screen_width = 900 screen_height = 600 background_color = (0, 0, 0, 1) drawing_color = (0, 1, 0, 1) screen = pygame.display.set_mode( (screen_width, screen_height), DOUBLEBUF | OPENGL) clock = pygame.time.Clock() def initialise(): glClearColor(background_color[0], background_color[1], background_color[2], background_color[3]) glColor(drawing_color) # Projection glMatrixMode(GL_PROJECTION) glLoadIdentity() gluPerspective(60, (screen_width / screen_height), 0.1, 100.0) # Model View glMatrixMode(GL_MODELVIEW) glTranslate(0, 0, -5) glLoadIdentity() glViewport(0, 0, screen.get_width(), screen.get_height()) glEnable(GL_DEPTH_TEST) glTranslate(0, 0, -2) def display(): glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT) glRotatef(1, 10, 0, 1) glPushMatrix() wireCube() glPopMatrix() done = False initialise() while not done: clock.tick(60) / 1000 for event in pygame.event.get(): if event.type == pygame.QUIT: done = True display() pygame.display.flip() pygame.display.set_caption(f"{clock.get_fps():.0f} Frame por segundo") pygame.quit()
Una vez que se haya guardado el fichero, abre la terminal y ejecutalo. Se suele hacer con el siguiente comando:
python test_opengl.py
Pulsas enter y debe de abrirse una ventana con un cubo, sus aristas girando.