Opengl

Páginas: 11 (2577 palabras) Publicado: 19 de septiembre de 2012
Mini Manual de OpenGL
Por Daniel Barrero (dbarrero@cable.net.co) - 11/6/2002
Introducción
OpenGL es una interface de software para el hardware grafico, esta interface consiste de una larga serie de
comandos para manipulacion de objetos y operaciones sobre estos los cuales permiten controlar la
implentacion realizada en la forma de una maquina de estados finitos, donde cada una de lasvariables que
determinan el estado se aplican a partir de ese punto hasta que se indique explicitmanete el cambio, asi las
variables de estado de OpenGL que vamos a utilizar mas comunmente son:
• Color (de dibujo y de borrado).
• Matrices de Transformacion (GL_MODELVIEW, GL_PROYECTION).
• Patrones (de lineas y de relleno).
• Modo de dibujo de poligonos.
• Buffers de dibujo.
• Buffer de Stencil.• Buffer de profundidad (z-Buffer).
• Buffer de acumulacion.
Funcionamiento de OpenGL:
Para poder trabajar con OpenGL, primero se debe crear un contexto de trabajo, este contexto contiene el
estado actual de maquina finita, asi como las referencias a los diferentes buffers de trabajo, estos buffers se
pueden ver como zonas de memoria correspondiendo a la pantalla en las cuales OpenGL va adibujar, en
general a parte del buffer de color (GL_COLOR_BUFFER) que es el buffer en el cual se van a dibujar las
primitivas, existen otro tipo de buffers mas especializados.
La configuracion en memoria de estos buffers (cuantos bits representan un pixel, etc) depende de la
manera como fue creado el contexto OpenGL y de las limitaciones del hardware, por esto no se puede
acceder directamente sinosolo a traves de las primitivas OpenGL.
OpenGL puede funcionar adicionalmente de dos maneras, de modo directo o indirecto:
• Modo directo: las primitivas se van dibujando a medida que se van definiendo.
Instruccion -> Buffer de Color = Pantalla
• Modo indirecto: las primitivas se guardan en una lista y solo se dibujan cuando el usuario decida o la
lista este llena, esto permite optimizar lafase de dibujo.
Instruccion-> Pila de instrucciones-> flush -> Buffer de Color = Pantalla
En este modo cuando se desea que OpenGL pinte lo que esta en la lista se utiliza la instruccion
glFlush(): esta instruccion obliga a pintar y no espera a que el hardawre termine para continuar con
el programa, analogamente la glFinish() obliga a pintar pero espera a que el hw termine antes de
continuarcon el programa.
En el modo indirecto, OpenGL permite definir dos buffers de colores (doublebuffer), asi un buffer
corresponde a lo que se ve en pantalla y otro a el buffer donde se esta pintando, de esta manera una vez que
se ha pintado todo lo deseado y se quiere que esto aparezca en pantalla se intercambian los buffers, esta
instruccion depende del sistema operativo para esto se utilizara lainstruccion de la libreria portable glut:
glutSwapBuffers() (esta ejecuta implicitamente glFlush o glFinish), en este modo glFlush y glFinish
obligan a pintar en el buffer de dibujo pero esto NO sera visible hasta intercambiar buffers.

Primitivas de dibujo :
En OpenGL solo se pueden dibujar primitivas muy simples, tales como puntos lineas, cuadrados, triangulos
y polygonos, a partir deestas primitivas es posible construir primitivas mas complejas como arcos y
circulos aproximandolos por poligonos.
Toda primitiva de dibujo se construye con un par: glBegin(tipo_de_primitiva); glVertex2f(); ... glEnd();
donde tipo_de_primitiva puede ser cualquiera de las siguientes:
GL_POINTS: Cada vertice es un punto
GL_LINES: Cada par de vertices sucesivos es
una linea
GL_LINE_STRIP: lineasconectadas.
GL_LINE_LOOP: lineas conectadas donde el
ultimo y el primer vertice indican una linea
cerrando el poligono.
GL_POLYGON: poligono (relleno o no) donde
los vertices sucesivos componiendolo se dan el
sentido contrario de las manecillas del reloj.
GL_QUADS: cuadrilateros separados, cada 4
vertices hacen un quad.
GL_QUAD_STRIP: tira de cuadrados unidos,
cada par de vertices...
Leer documento completo

Regístrate para leer el documento completo.

Estos documentos también te pueden resultar útiles

  • Opengl
  • Opengl
  • Opengl
  • Opengl
  • Opengl
  • que es OpenGL?
  • Opengl
  • Java OpenGL

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS