Virtualizacion
APUNTES DE
OPENGL
CURSO 1998-99
Rafael Molina Carmona
Juan Antonio Puchol García
ALGUNAS CUESTIONES PREVIAS
¿QUÉ ES OPENGL?
OpenGL
es
una
librería
de
inicialmente por Silicon Graphics, aunque
especial
cuando
lo
adoptó
Microsoft
principales características son:
•
•
Es fácilmente portable y muy rápida.
•
Actúa en
creándose.
•
modelado
ygráficos
3D.
Fue
desarrollada
pronto pasó a convertirse en un estándar, en
para
su
sistema
operativo
Windows.
Sus
Incluye:
•
Es un sistema procedural y no descriptivo, es decir, el programador no describe
una escena sino los objetos de la escena y los pasos necesarios para configurar la
escena final.
•
•
•
•
•
modo
inmediato,
es
decir,
los
objetos
sondibujados
conforme
van
Primitivas gráficas: puntos, líneas, polígonos.
Iluminación y sombreado.
Texturas.
Animaciones.
Otros efectos especiales.
OpenGL trata con contextos de visualización o de rendering ,
contexto de dispositivo que, a su vez, se encuentra asociado a un ventana.
asociados
a
un
¿QUÉ ES MESA?
Mesa es un clónico gratuito de OpenGL. Se trata de unalibrería cuyo API es
básicamente igual que el de OpenGL. Incorpora toda la funcionalidad de OpenGL con
la única excepción de algunas rutinas muy específicas, que se refieren a:
•
•
NURBS recortadas.
Antialiasing para polígonos.
Nosotros utilizaremos Mesa en este curso. En lo sucesivo
indistintamente a Mesa o a OpenGL, ya que no existen diferencias sustanciales.
nos
referiremosESTRUCTURA BÁSICA DE OPENGL
•
OpenGL es un API, no un lenguaje de programación. Necesitaremos, por lo tanto,
un lenguaje (generalmente C o C++) en el que escribir el programa que realizará
llamadas a funciones de la librería, utilizando para ello la sintaxis de C.
•
OpenGL
es
independiente
del
sistema
de
ventanas
utilizado
y
del
operativo, es decir, no incorpora rutinas para elmanejo de ventanas. Este
debe realizarse a través del API del entorno de ventanas elegido.
•
Se necesita, por lo tanto, un conjunto limitado de rutinas que pongan el contacto al
sistema operativo y al entorno de ventanas con OpenGL. Este conjunto de rutinas
es diferente para cada sistema operativo y no pertenece a OpenGL sino a una
librería auxiliar. De esta manera, el núcleo de OpenGLpermanece inalterado para
todos los sistemas operativos.
sistema
manejo
2
•
OpenGL incorpora la funcionalidad básica para realizar la
Existe, no obstante, un conjunto de aspectos que no
visualización y que se encuentran en una librería estándar
(OpenGL Utility Library).
•
Existen algunas herramientas o toolkits que facilitan la labor de “pegar” OpenGL
con un entorno deventanas. Un ejemplo es GLUT (OpenGL Utility Toolkit), un
completo conjunto de herramientas que facilitan enormente el trabajo con OpenGL
y MS-Windows o X Windows.
•
En resumen,
componentes:
para
trabajar
con
OpenGL
necesitamos
visualización (rendering ).
son estrictamente de
adicional llamada GLU
al
menos
•
Un lenguaje de programación con su compilador,llamadas a funciones en formato C: C, C++, VisualBasic, Java...
•
Librería OpenGL: Contiene las funciones propias
fundamentalmente a las tareas de rendering . Las
prefijo gl-.
•
Librería
de
utilidades
GLU:
Contiene
algunas
las
siguientes
que
pueda
realizar
de OpenGL, dedicadas
funciones incorporan el
funciones,
con
el
prefijo glu-,
querealizan las siguientes tareas:
•
•
•
•
•
•
•
Transformación de coordenadas.
Poligonalización de objetos.
Manipulación de imágenes para aplicarlas como texturas.
Rendering de figuras canónicas: esferas, cilindros y discos.
Curvas y superficies NURBS.
Informe de errores.
Librería para “pegar” OpenGL y el sistema de ventanas.
depende del sistema elegido. Entre los más habituales...
Regístrate para leer el documento completo.