You are on page 1of 1

OPEN GL es una interfaz de sostware de hadware grafico q realiza procedimientos y funciones que permite al programador generar imagns en color

de alta calidad espclmnt. Los objts en 2y3d TIPOS DE DATOS: SUF B S I F D Ub Ub Ui TIPO D DATO Ent. 8-bits Ent. 16-bits Ent. 32-bits P. flot 32 b. P. flot64 bit Ent.Sin s 8 Ent.sin s 16 Ent.sin s 32 DEF.EN OPENGL D TIPO GLbyte GLshort Glint, GLsizei GLfloat,GLclamp GLdouble GLubyte, GLboo GLlushort GLunit, GLlenun

LIBRERIAS AUXILIARES GLU: Es el que contiene muchas rutinas se utiliza en OpenGL y es bajo nivel, adems en ella se realiza las transformaciones de matrices. GLUT: Es el que contiene rutinas para las ventanas, ratn, teclado, etc. GALUX: Esta realiza la misma funcin que GLUT y se realiza solo en Windows. DEFINICION DE COLORES Funcion glColor3f() glColor3f(0.0,0.0,0.0); glColor3f(1.0,0.0,0.0); glColor3f(0.0,1.0,0.0); glColor3f(1.0,1.0,0.0); glColor3f(0.0,0.0,1.0); glColor3f(0.1,0.0,0.1); glColor3f(0.0,1.0,1.0); glColor3f(1.0,1.0,1.0); LIMPIAR VENTANA Buffer Color Buffer Depth Buffer Accumulate Buffer Stencil Buffer Ejemplo Void Dibujatetera(void) { glClear(GL_COLOR_BUFFER_BIT|\GL_DEPTH_BUFF ER_BIT); PROYECCION ORTOGRAFICA glOrtho().-Una proyeccin ortogrfica define una perspectiva ortonormal y se dice que es cuadrada en todas sus caras, por lo tanto esto genera una proyeccin paralela y es utilizado en aplicaciones de tipo CAD el formato es. glOrtho(x_minima, x_maxima, y_minima, y_maxima, z_minima, z_maxima). glOrtho(GLdouble left, GLdouble right, GLdouble bottom, Gldouble topo, GLdouble Znear, GL double Zfar); Ejemplo: glOrtho(-1.0, 1.0, -1.0, 1.0, -1.0, 1.0); FUNCIONES NESESARIAS DE GLUT Se debe inicializar el modo de desplegado con la funcin glutInitDisplayMode teniendo encuenta sus argumentos. GLUT_SINGLE: Se permite un buffer de memoria GLUT_DOUBLE: permite usar dos buffer de memoria GLUT_RGB: se usa para cambiar al modo RGB GLUT_DEPTH:permite usar buffer de profundidad GLUT_STENCIL: nos permite cambiar a modo stelcil. Ejemplo glutInitDisplayMode(GLUT_DOUBLE\GLUT_RGF) glutInit(&arge,argv);Inicializa la libreria auxiliary GLUT glutDisplayFunc(display). Se usa para definir el callback y consiste en redibujar la Nombre GL_COLOR_BUFFER_BIT GL_DEPTH_BUFFER_BIT GL_ACCUM_BUFFER_BIT GL_STENCIL_BUFFER_BIT Color Negro Rojo Verde Amarillo Azul Magenta Cian blanco

Ventana. Cada vez que llama para redibujar utilizar la funcin display() u otra definida por el usuario. Glutwindowsize(ancho,altura). Define el tamaniode la ventana en pixels Glutwindowsposition(x,y)Inicializa la posicin de la ventana en el escritorio CREAR LA VENTANA Glutcreatewindow(char*titulo) se utiliza para crear la ventana i es definida con el tamanio i la posicin declarada con los coandos anterirmente adems en ella incluye el titulo de la ventana Glutcreatewindow(titulo del programa) Glutcreatewindow(argv[]); glutMain loop() esta funcin hace que el bucle d eventos se pongan en marcha. GlutSwapBuffers Se encarga de pegar la imagen en la ventana definida glFlush()Fuerza la finalizacin de los comandos OpenGL glEnable(GL_DEPTH_TEST) Se utiliza para activar el test de buffer de profundidad glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFF ER_BIT) Se encarga de redibujar la escena, mientras borra el buffer de color y el buffer de profundidad. glColor3f() Establece el color actual con el que se va a dibujar una figura. glClearColor establece el color actual, glClear es a que realmente borra la pantalla con el color antes indicado. METODOS DE SOMBREADO Existen 3 met. GlShadeModel(GL_FLAT),para caras planas es la mas simpel e ineficiente GlShadeModel(GL_MODELSMOOTH),para cara suave presenta escenas granuladas que se hace motrar su calidad de presentacin GlShadeModel(GL_PHONG) presenta el color muy cercano a la realidad y su calidad de presentacin es mejor a las dos anteriores, pero requiere de ms proceso porque se usa una interpolacin bilineal para obtener la normal de cada punto de un polgono. glClearColor(R,G,B,A) Se utiliza para borrar el color de fondo y adems define el nuevo color, considerando los siguientes parmetros: glLoadIdentoty()Se usa para acumular operaciones de inicializacin a la identidad de rotacin, traslacin, escalado. glPushMatrix(); permite guardar la matriz actual en la pila glPopMatrix(); coge la matriz que se encuentre en el top de la pila y la asign a la matriz actual glutPostRedisplay().esta funcin se encargade redibujar la ventana actual PROPIEDADES ESCALARES GL_SPOT_EXPONENT. Define la focalizacionde la luz GL_SPOT_CUTOFF. Define el angulo de apetura de la luz y acepta valores entre 0 y 90 GL_CONSTANT_ATTENUATION,GL_LINER_ATTEAN UARTION, GL_QUADRATIC_ATTENUATION. Son los para,etros de atenuacion y deber mayor a cero PRIMITIVAS GEOMETRICAS BIDIMENCIONALES podemos definir, lneas, puntos y polgonos. Adems para definir un punto en 2D utilizaremos la siguiente funcin: gl Vertex2f(x,y), PRIMITIVAS GL_POINTS GL_LINES GL_LINE_STRIP GL__LINE_LOOP GL_TRIANGLES GL_QUADS GL_POLYGON DESCRIPCION Define un punto aislado Dos puntos definen una lnea recta Unin de segmentos de recta Unin de segmentos de recta y cerrados Cada tres puntos es un tringulo Cada cuatro puntos un cuadrado Define un polgono

Ejemplos DIBUJA PUNTOS glBegin(GL_POINTS); glVertex3f(0.0, 0.0, 0.0); glVertex3f(10.0, 10.0, 10.0); glEnd(); DIBUJA TRIANGULOS glBegin(GL_TRIANGLES); glVertex2i(0, 0,); glVertex2i(0, 0,); glVertex2i(0, 3,); glVertex2i(3, 0,); glEnd(); DIB POLI LINEA CERRADA glBegin(GL_LINE_LOOP); glVertex2i(0, 0); glVertex2i(0, 3); glVertex2i(3, 3); glVertex2i(3, 0); glEnd(); DIBUJA LINEAS: glBegin(GL_LINES); glVertex2i(0, 0,); glVertex2f(5, 5); glVertex2f(1, 1); glEnd(); UBIC DEL COLOR D RELLEN EN UNA PRIMITICA glBegin(GL_TRIANGLES); glColor3f (0.0, 1.0, 0.0); glVertex3f(0.0, 0.0, 0.0); glVertex3f(2.0, 0.0, 0.0); glVertex3f(1.0, 1.0, 0.0); glEnd(); ESTILOS DE LINEAS Grosor de lnea voidglLineWidth(GLfloatwidth); patrn de lnea voidglLineStipple(Glintfactor,Glshortpattern); ES NESESARIO ACTIVAR/DESACTIVAR glEnable(GL_LINE_STIPPLE) glDisable(GL_LINE_STIPPLE) TRANSFORMACION Traslacion.- consiste en sumar a las coordenadas de cada punto,los valores de desplazamiento en direcciones X e Y Formato: glTranslatef(GLfloat x, GLfloat y GLfloat z); glTranslatef(GLdouble x, GLdouble y GLdouble z); Rotacion.Formato: glRotatef(GLfloat angle, GLfloat y GLfloat y, GLfloat z); glRotatef(GLdouble angle, GLdouble y GLdouble y, GLdouble z); Escalado: Formato: glScalef(GLfloat x, GLfloat y GLfloat z); glScalef(GLdouble x, GLdouble y GLdouble z);