Transformaciones con OpenGL

Tamaño: px
Comenzar la demostración a partir de la página:

Download "Transformaciones con OpenGL"

Transcripción

1 Transformaciones con OpenGL

2 Pipeline:Transformaciones

3 Transformaciones! Las operaciones con matrices en OpenGL glmatrixmode( GLenum mode ); mode: GL_MODELVIEW, GL_PROJECTION, GL_TEXTURE Es utilizada para definir las coordenadas de vision, se asigna una matriz de 4x4 De igual manera, se define la proyección, como la imagen es proyectada sobre la pantalla, una matriz de 4X4

4 Transformaciones! Una alternativa, podemos asignar otros valores a los elementos de una matriz glloadidentity(); La matriz inicial, una matriz identidad de 4x4 glloadmatrix{f,d}( const TYPE* m ); glmultmatrix{f,d}( const TYPE* m ); glpushmatrix(); glpopmatrix(); Las operaciones de stack son muy utiles para construir estructuras jerarquicas. Ejemplo Hacer el render de un carro con cuatro ruedas

5 ! glloadmatrix*( element16); glmatrixmode(gl_modelview); glfloat elems[16]; GLint k; for( k=0; k<16; k++) elems [k] = float (k); glloadmatrixf(elems);

6 M=

7 Composicion de Matrices! glmultmatrix*(otroelements16); M= MxM1 glmatrixmode(gl_modelview); glloadidentity( ); glmultmatrixf( elemsm2); glmultmatrixf( elemsm1); M=M2xM1

8 Transformaciones! OpenGL ofrece transformaciones preconstruidas : gltranslate{f,d}( TYPE x, TYPE, y, TYPE z ); Efecto de gltranslate()

9 Transformationes glrotate{f,d}( TYPE angle, TYPE x, TYPE y, TYPE z ); Efecto de glrotatef(45.0, 0.0, 0.0, 1.0)

10 Transformaciones glscale{f,d}( TYPE x, TYPE y, TYPE z); El efecto de glscalef(2.0, -0.5, 1.0)

11 Transformaciones! Rotando primero o Translación primero :

12 Transformaciones! Transformaciones de Visión Hay que seleccionar un sistema de Visión o de Camara Center-orientation-up system Aplicando glulookat.» glulookat( cx, cy, cz, atx, aty, atz, upx, upy, upz );» ( cx, cy, cz ) es la ubicación de la cámara» ( atx, aty, atz ) hacia donde ve la cámara» ( upx, upy, upz ) es el vector de orientación de la cámara Coordenadas Polares

13 Transformaciones! Transformaciones de Proyección: Proyección en Perspectiva glfrustum( GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble near, GLdouble far );

14 Transformaciones gluperspective( GLdouble fovy, GLdouble aspect, GLdouble near, GLdouble far );

15 Transformaciones! Transformación de Proyección: Proyección Ortogonal (Orthogonal projection) glortho( GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble near, GLdouble far ); gluortho2d( GLdouble left, GLdouble right, GLdouble bottom, GLdouble top );

16 Transformaciones! Transformación de Viewport glviewport( GLint x, GLint y, GLsizei w, GLsizei h );

17 Transformaciones! Nota: Por default, el observador esta situado en el origen, y mira hacia el eje negativo del eje-z

18 Ejemplo

19 Rotando un cubo con Interpolacion de Color #include <stdlib.h> #include <GL/glut.h> GLfloat vertices[][3] = {{-1.0,-1.0,-1.0}, {1.0,-1.0,-1.0}, {1.0,1.0,-1.0}, {-1.0,1.0,-1.0}, {-1.0,-1.0,1.0}, {1.0,-1.0,1.0}, {1.0,1.0,1.0}, {-1.0,1.0,1.0}}; GLfloat colors[][3] = {{0.0,0.0,0.0},{1.0,0.0,0.0}, {1.0,1.0,0.0}, {0.0,1.0,0.0}, {0.0,0.0,1.0}, {1.0,0.0,1.0}, {1.0,1.0,1.0}, {0.0,1.0,1.0}};

20 void polygon(int a, int b, int c, int d) { /* draw a polygon via list of vertices */ glbegin(gl_polygon); glcolor3fv(colors[a]); glvertex3fv(vertices[a]); glcolor3fv(colors[b]); glvertex3fv(vertices[b]); glcolor3fv(colors[c]); glvertex3fv(vertices[c]); glcolor3fv(colors[d]); glvertex3fv(vertices[d]); glend(); }

21 void colorcube() { /* map vertices to faces */ polygon(0,3,2,1); polygon(2,3,7,6); polygon(0,4,7,3); polygon(1,2,6,5); polygon(4,5,6,7); polygon(0,1,5,4); }

22 static GLfloat theta[] = {0.0,0.0,0.0}; static GLint axis = 2; void display() { /* display callback, clear frame buffer and z buffer, rotate cube and draw, swap buffers */ glclear(gl_color_buffer_bit GL_DEPTH_BUFFER_BIT); glloadidentity(); glrotatef(theta[0], 1.0, 0.0, 0.0); glrotatef(theta[1], 0.0, 1.0, 0.0); glrotatef(theta[2], 0.0, 0.0, 1.0); colorcube(); glflush(); glutswapbuffers(); }

23 void spincube() { /* idle callback, spin cube 2 degrees about selected axis */ theta[axis] += 2.0; if( theta[axis] > ) theta[axis] -= 360.0; /* display(); */ glutpostredisplay(); } void mouse(int btn, int state, int x, int y) { /* mouse callback, selects an axis about which to rotate */ if(btn==glut_left_button && state == GLUT_DOWN) axis = 0; if(btn==glut_middle_button && state == GLUT_DOWN) axis = 1; if(btn==glut_right_button && state == GLUT_DOWN) axis = 2; }

24 void myreshape(int w, int h) { glviewport(0, 0, w, h); } glmatrixmode(gl_projection); glloadidentity(); if (w <= h) glortho(-2.0, 2.0, -2.0 * (GLfloat) h / (GLfloat) w, 2.0 * (GLfloat) h / (GLfloat) w, -10.0, 10.0); else glortho(-2.0 * (GLfloat) w / (GLfloat) h, 2.0 * (GLfloat) w / (GLfloat) h, -2.0, 2.0, -10.0, 10.0); glmatrixmode(gl_modelview);

25 int main(int argc, char **argv) { glutinit(&argc, argv); /* need both double buffering and z buffer */ } glutinitdisplaymode(glut_double GLUT_RGB GLUT_DEPTH); glutinitwindowsize(500, 500); glutcreatewindow("colorcube"); glutreshapefunc(myreshape); glutdisplayfunc(display); glutidlefunc(spincube); glutmousefunc(mouse); glenable(gl_depth_test); /* Enable hidden-surface removal */ glutmainloop();

26

27 Ejemplo! planet.c Control: d y a A ESC

28 #include <GL/glut.h> static GLfloat year=0.0f, day=0.0f; void init() { glclearcolor(0.0, 0.0, 0.0, 0.0); } void GL_reshape(GLsizei w, GLsizei h) // GLUT reshape function { glviewport(0, 0, w, h); // viewport transformation glmatrixmode(gl_projection); // projection transformation glloadidentity(); gluperspective(60.0, (GLfloat)w/(GLfloat)h, 1.0, 20.0); glmatrixmode(gl_modelview); // viewing and modeling transformation glloadidentity(); glulookat(0.0, 3.0, 5.0, // eye 0.0, 0.0, 0.0, // center 0.0, 1.0, 0.0); // up }

29 void GL_display() // GLUT display function { // clear the buffer glclear(gl_color_buffer_bit); } glcolor3f(1.0, 1.0, 1.0); glpushmatrix(); glutwiresphere(1.0, 20, 16); // the Sun glrotatef(year, 0.0, 1.0, 0.0); gltranslatef(3.0, 0.0, 0.0); glrotatef(day, 0.0, 1.0, 0.0); glutwiresphere(0.5, 10, 8); // the Planet glpopmatrix(); // swap the front and back buffers glutswapbuffers();

30 void GL_idle() // GLUT idle function { day += 10.0; if(day > 360.0) day -= 360.0; year += 1.0; if(year > 360.0) year -= 360.0; } // recall GL_display() function glutpostredisplay();

31 void GL_keyboard(unsigned char key, int x, int y) // GLUT keyboard function { switch(key) { case 'd': day += 10.0; if(day > 360.0) day -= 360.0; glutpostredisplay(); break; case 'y': year += 1.0; if(year > 360.0) year -= 360.0; glutpostredisplay(); break; case 'a': glutidlefunc(gl_idle); // assign idle function break; case 'A': glutidlefunc(0); break; case 27: exit(0); } }

32 int main(int argc, char** argv) { glutinit(&argc, argv); } glutinitwindowsize(500, 500); glutinitwindowposition(0, 0); glutinitdisplaymode(glut_double GLUT_RGB); glutcreatewindow("planet"); init(); glutdisplayfunc(gl_display); glutreshapefunc(gl_reshape); glutkeyboardfunc(gl_keyboard); glutmainloop(); return 0;

33

34 Tarea

35 ! Para poder ejecutar el código que simula un perro corriendo, el código esta en la carpeta C-Dog ubicada en el sitio del curso. Enfocarse en las transformaciones en el código proporcionado.! La tarea consiste en modificar el movimiento del perro para que pueda correr de manera mas adecuada! Fecha de entrega 30 de marzo

36 Preguntas?

Proyecciones en OpenGL

Proyecciones en OpenGL Proyecciones en OpenGL Una vez definida una escena en coordenadas del mundo, tenemos que tomar la foto. Para esto, tenemos que hacer dos cosas: colocar la cámara en el mundo (o sea, en la escena) y definir

Más detalles

Sean los vectores a = (4, -2, 3) y b = (3, 2, 1), y sean las operaciones siguientes: ( 3, 2,1) ( 33, 22,11)

Sean los vectores a = (4, -2, 3) y b = (3, 2, 1), y sean las operaciones siguientes: ( 3, 2,1) ( 33, 22,11) Betanzo Vásquez Erick Manuel. Tarea # 1. Computación Gráfica. Ejemplos matemáticos: Sean los vectores a = (4, -2, 3) y b = (3, 2, 1), y sean las operaciones siguientes: Producto punto ( 4, 2,3) i( 3, 2,1)

Más detalles

PROYECTO 2 TARJETA SPARTAN 3 ELABORADO POR MIRANDA PINEDA HECTOR DANIEL. include <openglut.h> #include <stdio.h>

PROYECTO 2 TARJETA SPARTAN 3 ELABORADO POR MIRANDA PINEDA HECTOR DANIEL. include <openglut.h> #include <stdio.h> PROYECTO 2 TARJETA SPARTAN 3 ELABORADO POR MIRANDA PINEDA HECTOR DANIEL include #include GLfloat light_ambient [4] = 0.4, 0.4, 0.4, 1.0; GLfloat light_diffuse [4] = 0.7, 0.7, 0.7,

Más detalles

Gràfics per computador

Gràfics per computador Gràfics per computador Departament de Sistemas Informàtics i Computació Escola Politècnica Superior d Alcoi Enginyeria Tècnica en Informàtica de Gestió PRÀCTICA 3 Jordi Linares i Pellicer jlinares@dsic.upv.es

Más detalles

La matriz de proyección especifica el tamaño y forma del volumen de visualización (0,100,1)

La matriz de proyección especifica el tamaño y forma del volumen de visualización (0,100,1) Proyecciones Proyecciones La matriz de proyección especifica el tamaño y forma del volumen de visualización glmatrixmode(gl_projection); // reseteamos la matriz glloadidentity(); // actualizamos la matriz

Más detalles

1. INTRODUCCIÓN A OPENGL: DIBUJANDO UNA TORTUGA CON OPENGL

1. INTRODUCCIÓN A OPENGL: DIBUJANDO UNA TORTUGA CON OPENGL 1. INTRODUCCIÓN A OPENGL: DIBUJANDO UNA TORTUGA CON OPENGL 1.1 QUÉ ES OPENGL? Qué es OpenGL? OpenGL es una interfaz software de harware gráfico, es decir define las funciones que se pueden utilizar en

Más detalles

glclearcolor (1.0, 0.0, 0.0, 0.0); glclear(gl_color_buffer_bit GL_DEPTH_BUFFER_BIT);

glclearcolor (1.0, 0.0, 0.0, 0.0); glclear(gl_color_buffer_bit GL_DEPTH_BUFFER_BIT); 10. EL MAPEADO DE TEXTURAS Hasta ahora las primitivas se han dibujado en OpenGL con un solo color o interpolando varios colores entre los vértices de una primitiva. OpenGL dispone de funciones específicas

Más detalles

Introducción. Los principales conceptos que se utilizaran con mayor frecuencia:

Introducción. Los principales conceptos que se utilizaran con mayor frecuencia: Mini Manual de OpenAL Por Daniel Barrero (dbarrero@cable.net.co) - 22/4/2002 Basado en los excelentes tutoriales de: Jorge bernal Martinez (lordloki@users.berlios.de, http://worldspace.berlios.de/openal/index.html)

Más detalles

OpenGL 1. Visualización 3D. Cristina Cañero

OpenGL 1. Visualización 3D. Cristina Cañero OpenGL 1. Visualización 3D Cristina Cañero Introducción OpenGL es una librería de funciones, y se puede llamar desde C. Es transparente al hardware de gráficos disponible. Tres librerías: OpenGL GLU GLUT

Más detalles

3.- Vista Tridimensional.

3.- Vista Tridimensional. 3.- Vista Tridimensional. 3.1.- Proceso de vista 3D 3.2.- Comandos de transformaciones de propósito general 3.3.- Transformaciones de modelo y vista 3.4.- Transformaciones de proyección 3.5.- Transformaciones

Más detalles

Ejemplos de aplicaciones 3D interactivas con OpenGL

Ejemplos de aplicaciones 3D interactivas con OpenGL Ejemplos de aplicaciones 3D interactivas con OpenGL Apellidos, nombre Departamento Centro Agustí i Melchor, Manuel (magusti@disca.upv.es) Departamento de Informática de Sistemas y Computadores (DISCA)

Más detalles

UNIVERSIDAD NACIONAL AUTÓNOMA DE MÉXICO FACULTAD DE INGENIERÍA POZAS MONTOYA KARLA JOSSAVET PROYECTO EFECTO COMPTON

UNIVERSIDAD NACIONAL AUTÓNOMA DE MÉXICO FACULTAD DE INGENIERÍA POZAS MONTOYA KARLA JOSSAVET PROYECTO EFECTO COMPTON EFECTO COMPTON OBJETIVO: QUE EL ALUMNO PUEDA IMPLEMENTAR TODOS LOS CONOCIMIENTOS APRENDIDOS DURANTE EL CURSO PARA PODER REALIZAR UNA ANIMACIÓN QUE CONLLEVE TODO LO VISTO DURANTE EL CURSO. OBJETIVO 1: ACOPLAR

Más detalles

OpenGL. Domingo Martín Perandrés

OpenGL. Domingo Martín Perandrés Domingo Martín Perandrés Qué es? Open Graphics Library Una interfaz con el hardware gráfico Arquitectura cliente/servidor Independiente del hardware Un conjunto de funciones que permiten definir, crear

Más detalles

TECNUNLOGO: UN LOGO EN TRES DIMENSIONES

TECNUNLOGO: UN LOGO EN TRES DIMENSIONES tecnunlogo: un logo en tres dimensiones 1 TECNUNLOGO: UN LOGO EN TRES DIMENSIONES Tutorial de OpenGL y manual de las prácticas de OpenGL de la asignatura de Gráficos por Computador y Multimedia http://www.tecnun.es/graficos

Más detalles

TAREA EXAMEN 1 ANIMADO. Alumna: Roldán Serrato Karen Lucero Computación Gráfica Grupo: 1

TAREA EXAMEN 1 ANIMADO. Alumna: Roldán Serrato Karen Lucero Computación Gráfica Grupo: 1 TAREA EXAMEN 1 ANIMADO Alumna: Roldán Serrato Karen Lucero Computación Gráfica Grupo: 1 // arananimada.cpp: define el punto de entrada de la aplicación de consola. // // exarana.cpp: define el punto de

Más detalles

2. TRANSFORMACIONES: DANDO ÓRDENES A LA TORTUGA (FORWARD, RIGHT, LEFT, UP Y DOWN)

2. TRANSFORMACIONES: DANDO ÓRDENES A LA TORTUGA (FORWARD, RIGHT, LEFT, UP Y DOWN) Capítulo 2 1 2. TRANSFORMACIONES: DANDO ÓRDENES A LA TORTUGA (FORWARD, RIGHT, LEFT, UP Y DOWN) En el presente capítulo se introduce el concepto de transformación y de las matrices que las definen, tanto

Más detalles

Lenguaje de Programación: C++ GLUTTransformaciones

Lenguaje de Programación: C++ GLUTTransformaciones UG Lenguaje de Programación: C++ GLUT Universidad de Guanajuato Noviembre 2010 Lenguaje de Programación: C++ GLUT Como se convierte un vértice en un pixel La cámara desde que visualizaremos el mundo siempre

Más detalles

Librerías gráficas que facilitan el interfaz con el Hw gráfico

Librerías gráficas que facilitan el interfaz con el Hw gráfico Introducción a OpenGL Qué es OpenGL Librerías gráficas que facilitan el interfaz con el Hw gráfico Independiente del Hardware API sencilla, estable y compacta. Primitivas geométricas básicas No incluye

Más detalles

Gráficos Avanzados. Repaso de Gráficos I

Gráficos Avanzados. Repaso de Gráficos I Gráficos Avanzados Repaso de Gráficos I Introducción Veremos los conceptos fundamentales de gráficos con OpenGL aplicado a: Imágenes 2D Sistemas 3D Temas a tratar Términos. Sistemas Gráficos. OpenGL. Pipeline.

Más detalles

Transformaciones geométricas en 2D y 3D (Parte II)

Transformaciones geométricas en 2D y 3D (Parte II) Transformaciones geométricas en 2D y 3D (Parte II) Contenido Conmutatividad en transformaciones geométricas Tranformaciones básicas en 3D: rotación, traslación y escalamiento Otras tranformaciones 3D:

Más detalles

Lenguaje de Programación: C++ GLUT (como instalarlo)

Lenguaje de Programación: C++ GLUT (como instalarlo) UG C++ Lenguaje de Programación: C++ GLUT (como instalarlo) Universidad de Guanajuato Noviembre 2010 Inicializar GLUT Lo primero que debemos mandar llamar en un proyecto con la librería GLUT es: void glutinit(int

Más detalles

OPENGL. Qué es OpenGL? Desarrollo de Aplicaciones Interactivas. API gráfica

OPENGL. Qué es OpenGL? Desarrollo de Aplicaciones Interactivas. API gráfica OPENGL Desarrollo de Aplicaciones Interactivas Qué es OpenGL? API gráfica Imágenes color de alta calidad compuesta de primitivas geométricas e imágenes Independiente de Sistema de ventanas Sistema operativo

Más detalles

Mini Manual de OpenGL Por Daniel Barrero (dbarrero@cable.net.co) - 11/6/2002

Mini Manual de OpenGL Por Daniel Barrero (dbarrero@cable.net.co) - 11/6/2002 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

Más detalles

Funciones GLUT para Eventos y Menús

Funciones GLUT para Eventos y Menús Funciones GLUT para Eventos y Menús Facultad de Cs. de la Computación Juan Carlos Conde Ramírez Computer Graphics Contenido 1 Eventos 2 El Mouse 3 El Teclado 4 Tamaño de Ventana 5 Menús 1 / 23 Contenido

Más detalles

Tutorial de uso de HAPTIK bajo Windows

Tutorial de uso de HAPTIK bajo Windows Tutorial de uso de HAPTIK bajo Windows Este tutorial ha sido generado gracias al trabajo de María Luisa Pinto Salamanca, de la Universidad Nacional de Colombia Resumen. Se distinguen dos partes: una primera

Más detalles

Apuntes de OpenGL y GLUT Cristina Cañero Morales

Apuntes de OpenGL y GLUT Cristina Cañero Morales Apuntes de OpenGL y GLUT Cristina Cañero Morales Introducción... 2 Librerías añadidas... 2 De vértices a píxeles... 2 Formato de las funciones... 3 Funciones básicas para definir objetos... 3 Primitivas

Más detalles

Tutorial de uso de OHAE sobre windows

Tutorial de uso de OHAE sobre windows Tutorial de uso de OHAE sobre windows Este tutorial ha sido generado gracias al trabajo de María Luisa Pinto Salamanca, de la Universidad Nacional de Colombia Resumen. Se distinguen dos partes: una primera

Más detalles

Guía resumida de referencia para exámenes

Guía resumida de referencia para exámenes Guía resumida de referencia para exámenes Tabla de referencia de operadores La siguiente tabla contiene algunos operadores que pueden ser sobrecargados (el símbolo # representa a la ubicación del operador

Más detalles

3. OPERACIONES CON MATRICES: DIBUJANDO EL CAMINO

3. OPERACIONES CON MATRICES: DIBUJANDO EL CAMINO 3. OPERACIONES CON MATRICES: DIBUJANDO EL CAMINO La transforación de las coordenadas se realiza internaente en OpenGL a partir de las atrices de transforación y de las coordenadas de odelado del objeto.

Más detalles

Transformaciones en OpenGL

Transformaciones en OpenGL Transformaciones en OpenGL 1 OpenGL y las bibliotecas asociadas componen por nosotros las transformaciones necesarias para posicionar los objetos, las luces y la cámara en la escena, para luego proyectarlos

Más detalles

Tema 2. Dibujando en el espacio

Tema 2. Dibujando en el espacio Departamento de Tecnologías de la Información Tema 2 Dibujando Ciencias de la Computación e Inteligencia Artificial Índice 2.1 Primitivas geométricas 2.2 Transformaciones geométricas 2.3 Proyecciones 2

Más detalles

Coordenadas Homogéneas y Transformaciones

Coordenadas Homogéneas y Transformaciones Computación Gráfica I Coordenadas Homogéneas y Transformaciones Daniel Fariña 06-39509 Laura Libretti 06-39796 Transformaciones Las transformaciones se usan para: o Posicionar objetos en escena o Cambiar

Más detalles

Graficación por Computadora

Graficación por Computadora Graficación por Computadora Dr. Roberto Núñez González 1 1 Departamento de Matemáticas Ciencias de la Computación Universidad de Sonora 22 de mayo de 2014 Introducción a la Graficación por Computadora

Más detalles

Curso de introducción a OpenGL (v1.0)

Curso de introducción a OpenGL (v1.0) Por Jorge García (Bardok) Este manual ha sido realizado para el e-ghost, por Jorge García, está sujeto a la licencia FDL (GNU Free Document License), y confiere los derechos y obligaciones pertinentes.

Más detalles

Nuestro entorno de programación debe darnos una interfaz para llamar a OpenGL desde nuestro código

Nuestro entorno de programación debe darnos una interfaz para llamar a OpenGL desde nuestro código OpenGL en Windows OpenGL en Windows El sistema operativo debe asumir la interacción con el usuario la gestión de la ventana Nuestro entorno de programación debe darnos una interfaz para llamar a OpenGL

Más detalles

Una aproximación a OpenGL

Una aproximación a OpenGL Una aproximación a OpenGL Alberto Jaspe Villanueva Julián Dorado de la Calle 1 Introducción... 4 1.1 Qué es OpenGL?... 4 1.2 OpenGL como una máquina de estados... 4 1.3 El Pipeline de renderizado de OpenGL...

Más detalles

1. Introducción--------------------------------------------------------------------------- PAG 1

1. Introducción--------------------------------------------------------------------------- PAG 1 1. Introducción--------------------------------------------------------------------------- PAG 1 2. Estructura principal del programa: -------------------------------------------- PAG 2 3. Funciones relevantes:

Más detalles

INTRODUCCIÓN A OpenGL

INTRODUCCIÓN A OpenGL INTRODUCCIÓN A OpenGL 1. Introducción...2 2. Abriendo una ventana gráfica para dibujar...2 3. Dibujo de primitivas gráficas...3 4. Tipo de datos de OpenGL...4 5. Estado de OpenGL...5 6. Sistema de Coordenadas...6

Más detalles

Proyecciones en 3D. Facultad de Cs. de la Computación. Juan Carlos Conde Ramírez. Computer Graphics

Proyecciones en 3D. Facultad de Cs. de la Computación. Juan Carlos Conde Ramírez. Computer Graphics Proyecciones en 3D Facultad de Cs. de la Computación Juan Carlos Conde Ramírez Computer Graphics Contenido 1 Introducción 2 Proyecciones 3 Tipos de Proyección 1 / 21 Contenido 1 Introducción 2 Proyecciones

Más detalles

Lenguaje de Programación: C++ GLUT

Lenguaje de Programación: C++ GLUT UG Lenguaje de Programación: C++ GLUT Universidad de Guanajuato Noviembre 2010 GLUT Se trata de una librería diseñada para facilitar el manejo de ventanas y eventos en aplicaciones que pretenden mostrar

Más detalles

GRÁFICOS APUNTES DE OPENGL CURSO Rafael Molina Carmona Juan Antonio Puchol García

GRÁFICOS APUNTES DE OPENGL CURSO Rafael Molina Carmona Juan Antonio Puchol García GRÁFICOS 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 modelado y gráficos 3D. Fue desarrollada inicialmente

Más detalles

Curso de introducción a OpenGL (v1.1)

Curso de introducción a OpenGL (v1.1) Curso de introducción a OpenGL (v1.1) Por Jorge García -aka Bardok (2004)- bardok@telefonica.net - shadow@bardok.net http://www.bardok.net This work is licensed under the Creative Commons Attribution-NonCommercial-ShareAlike

Más detalles

Tema 1 Introducción. David Vallejo Fernández. Curso 2007/2008. Escuela Superior de Informática

Tema 1 Introducción. David Vallejo Fernández. Curso 2007/2008. Escuela Superior de Informática Tema 1 Introducción David Vallejo Fernández Curso 2007/2008 Escuela Superior de Informática Índice de contenidos 1.Computer Graphics. 2.Principales aplicaciones. 3.APIs gráficas. 4.. 5.Resumen. 2 1 Computer

Más detalles

Practica 3. Cámara. Objetivo: conocer e utilizar adecuadamente la cámara, mediante glulookat.

Practica 3. Cámara. Objetivo: conocer e utilizar adecuadamente la cámara, mediante glulookat. Cadena Ramírez Miguel Ángel Grupo 4 Practica 3 Cámara Objetivo: conocer e utilizar adecuadamente la cámara, mediante glulookat. Su forma de expresarse es: void glulookat(gldouble eyex, GLdouble eyey, GLdouble

Más detalles

Cómo saldremos. De aquí saldremos: O de plano es que que no entendimos nada

Cómo saldremos. De aquí saldremos: O de plano es que que no entendimos nada Cómo saldremos De aquí saldremos: Flipando Alucinando Con la mirada perdida en el infinito Queriendo simular o graficar todo O de plano es que que no entendimos nada Objetivos En este curso se introducirá

Más detalles

6. TIPOS DE FUENTES DE LUZ

6. TIPOS DE FUENTES DE LUZ 6. TIPOS DE FUENTES DE LUZ Se puede decidir tener una fuente de luz que sea tratada como si estuviera localizada en infinitamente lejos de la escena o una que sea cercana a la escena. 6.1.1.1. Direccional

Más detalles

1. Historia. Introducción a OpenGL

1. Historia. Introducción a OpenGL 1. Historia OpenGL es un estándar sobre gráficos por computadora. Hoy día es uno de los estándares gráficos más conocido del mundo. En 1982 nació en la Universidad de Standford el concepto de "graphics

Más detalles

Sistemas de referencia Introducción a OpenGL

Sistemas de referencia Introducción a OpenGL Sistemas de referencia Introducción a OpenGL Introducción a la Computación Gráfica Andrea Rueda Pontificia Universidad Javeriana Departamento de Ingeniería de Sistemas The implementation principle: If

Más detalles

Programación 3D con OpenGL bajo GNU/Linux. Roberto Garrido Martín (Ro) e-ghost ESIDE's GNU Hi-tech and Open Source Team

Programación 3D con OpenGL bajo GNU/Linux. Roberto Garrido Martín (Ro) e-ghost ESIDE's GNU Hi-tech and Open Source Team Programación 3D con OpenGL bajo GNU/Linux Roberto Garrido Martín (Ro) e-ghost ESIDE's GNU Hi-tech and Open Source Team Índice 1. Introducción 2. OpenGL y GNU/Linux 3. Conceptos básicos sobre OpenGL 4.

Más detalles

OpenAL y OpenGL: escuchar y ver el sonido

OpenAL y OpenGL: escuchar y ver el sonido OpenAL y OpenGL: escuchar y ver el sonido Apellidos, nombre Departamento Centro Agustí i Melchor, Manuel (magusti@disca.upv.es) Departamento de Informática de Sistemas y Computadores (DISCA) Escola Tècnica

Más detalles

4. VIENDO LA ESCENA DESDE OTRO PUNTO DE VISTA: CÁMARAS

4. VIENDO LA ESCENA DESDE OTRO PUNTO DE VISTA: CÁMARAS 4. VIENDO LA ESCENA DESDE OTRO PUNTO DE VISTA: CÁMARAS En este capítulo se profundiza en los conceptos de transformaciones de vista y de proyección y se explica con más detalle las funciones de que dispone

Más detalles

Transformaciones en OpenGL

Transformaciones en OpenGL Transformaciones en OpenGL Aquí se explican las transformaciones en OpenGL. Se incluyen algunas nociones básicas con la única intención de entender la práctica y de qué estamos hablando. En otro documento

Más detalles

Escenarios 3D en OpenGL. Ivan Olmos Pineda

Escenarios 3D en OpenGL. Ivan Olmos Pineda Escenarios 3D en OpenGL Ivan Olmos Pineda Introducción Qué es OpenGL? Estándar creado por Silicon Graphics en 1992 para el diseño de librerias 2D/3D Qué se requiere para programar en OpenGL? Obtener las

Más detalles

Es un SW (en forma de librería C) que permite la comunicación entre el programador y el HW de la máquina para el diseño de gráficos.

Es un SW (en forma de librería C) que permite la comunicación entre el programador y el HW de la máquina para el diseño de gráficos. Qué es Open GL? Es un SW (en forma de librería C) que permite la comunicación entre el programador y el HW de la máquina para el diseño de gráficos. Es portable. Consta de unos 150 comandos muy básicos.

Más detalles

Mi primera aplicación OpenGL con MFC. Con esta guía rápida, escribiremos nuestra primera aplicación OpenGL con MFC (Microsoft Foundations Class).

Mi primera aplicación OpenGL con MFC. Con esta guía rápida, escribiremos nuestra primera aplicación OpenGL con MFC (Microsoft Foundations Class). Mi primera aplicación OpenGL con MFC Con esta guía rápida, escribiremos nuestra primera aplicación OpenGL con MFC (Microsoft Foundations Class). Ejecutar Visual C++ 6.0 Elegir la opción File del menú para

Más detalles

Gràfics per computador (Curs 04-05)

Gràfics per computador (Curs 04-05) Gràfics per computador (Curs 04-05) Departament de Sistemas Informàtics i Computació Escola Politècnica Superior d Alcoi Enginyeria Tècnica en Informàtica de Gestió PRÀCTICA 2 Jordi Linares i Pellicer

Más detalles

Tema 4: Viendo en 3D

Tema 4: Viendo en 3D J. Ribelles SIE020: Síntesis de Imagen y Animación Institute of New Imaging Technologies, Universitat Jaume I Contenido Introducción 1 Introducción 2 3 Proyección Paralela Proyección Perspectiva 4 5 6

Más detalles

Cámara y Proyecciones Paralelas: Ortogonales, Axonométricas y Oblicuas. Integrantes: Fernández, Kevin # Manzanares, Javier #

Cámara y Proyecciones Paralelas: Ortogonales, Axonométricas y Oblicuas. Integrantes: Fernández, Kevin # Manzanares, Javier # Cámara y Proyecciones Paralelas: Ortogonales, Axonométricas y Oblicuas. Integrantes: Fernández, Kevin #06-39521 Manzanares, Javier #06-39843 La Cámara La cámara son nuestros ojos virtuales. Todo lo que

Más detalles

5.1. AÑADIENDO ILUMINACIÓN A LA ESCENA Los pasos requeridos para añadir iluminación a la escena son los siguientes:

5.1. AÑADIENDO ILUMINACIÓN A LA ESCENA Los pasos requeridos para añadir iluminación a la escena son los siguientes: 5. ILUMINANDO LA ESCENA En este capítulo se explican las funciones que OpenGL pone a disposición para manejar la iluminación de la escena y a crear, posicionar y dar propiedades a diferentes tipos de luces.

Más detalles

Viewports e Interacción con el Mouse CG 2014.

Viewports e Interacción con el Mouse CG 2014. Viewports e Interacción con el Mouse CG 2014. Introducción Los vértices sufren transformaciones para pasar del mundo a la pantalla. Estas transformaciones, las especificamos mediante matrices. Ventana

Más detalles

Introducción a la Programación Gráfica con OpenGL

Introducción a la Programación Gráfica con OpenGL Introducción a la Programación Gráfica con OpenGL Oscar García Alex Guevara Escola Tècnica Superior d Enginyeria Electrònica i Informàtica La Salle Enero 2004 Oscar García - Alex Guevara La Salle 2004

Más detalles

LABORATORIO COMPUTACIÓN GRAFICA

LABORATORIO COMPUTACIÓN GRAFICA UNIVERSIDAD NACIONAL AUTONOMA DE MÉXICO FACULTAD DE INGENIERIA PRACTICA 5. INTERACTIVIDAD LABORATORIO COMPUTACIÓN GRAFICA PROFESORA: M.I. ELIZABETH FONSECA CHAVEZ GRUPO: 4 VAZQUEZ TOUNGATE REYNA CATALINA

Más detalles

GRAFICACIÓN OpenGL. Profr. Hilario Salazar Martínez

GRAFICACIÓN OpenGL. Profr. Hilario Salazar Martínez GRAFICACIÓN OpenGL Profr. Hilario Salazar Martínez librería GLUT Visual C++ 6.0 Introducción La librería GLUT nos permite crear una interfície de ventanas tipo X-Windows. Los programas se pueden compilar

Más detalles

DESARROLLO E IMPLEMENTACIÓN DE UNA ARQUITECTURA SOFTWARE DE UN AYUDANTE VIRTUAL

DESARROLLO E IMPLEMENTACIÓN DE UNA ARQUITECTURA SOFTWARE DE UN AYUDANTE VIRTUAL ESCUELA TÉCNICA SUPERIOR DE INGENIEROS INDUSTRIALES DESARROLLO E IMPLEMENTACIÓN DE UNA ARQUITECTURA SOFTWARE DE UN AYUDANTE VIRTUAL TRABAJO DE FIN DE GRADO Juan Ruiz García Tutor 1: Fernando Matía Espada

Más detalles

FCC-BUAP GLUT INTRODUCCIÓN

FCC-BUAP GLUT INTRODUCCIÓN GLUT INTRODUCCIÓN Como paso previo al estudio de OpenGL, vamos a ver los fundamentos de la programación con GLUT. Puesto que el estudio de GLUT no es el objetivo de este curso, veremos solamente los conceptos

Más detalles

Geometría Proyectiva. Héctor Navarro

Geometría Proyectiva. Héctor Navarro Geometría Proyectiva Héctor Navarro Geometría Proyectiva Es el estudio de propiedades geométricas que son invariantes bajo transformaciones proyectivas Plano proyectivo Si consideramos en el modelo de

Más detalles

Laboratorio de Graficación. Garibaldi Pineda García

Laboratorio de Graficación. Garibaldi Pineda García Laboratorio de Graficación Garibaldi Pineda García chanokin@gmail.com OpenGL API Máquina de estados Implementa un pipeline de visualización 3D OpenGL Básicamente transforma modelos a pixeles Evita que

Más detalles

INTRODUCCIÓN A OPENGL. Computación Gráfica

INTRODUCCIÓN A OPENGL. Computación Gráfica INTRODUCCIÓN A OPENGL Computación Gráfica Introducción a OpenGL OpenGL GLUT - registrar funciones de callback (freeglut o glut) código asociado a eventos en las ventanas. sirven para administrar lo que

Más detalles

Vertex Arrays (VAs) Vertex Buffer Objects (VBOs), Vertex Array Objects (VAOs) C. Andujar, A. Vinacua Nov 2015

Vertex Arrays (VAs) Vertex Buffer Objects (VBOs), Vertex Array Objects (VAOs) C. Andujar, A. Vinacua Nov 2015 Vertex Arrays (VAs) Vertex Buffer Objects (VBOs), Vertex Array Objects (VAOs) C. Andujar, A. Vinacua Nov 2015 Formes de pintar geometria Mode immediat (glbegin,glend) Compatibility Usant Vertex Arrays

Más detalles

Laboratorio de Computación Gráfica.

Laboratorio de Computación Gráfica. Practica: Modelado EFCH 2007 Laboratorio de Computación Gráfica. Objetivo 1: Que el alumno comprenda de manera general como se construye un programa básico de opengl. Objetivo 2: Que el alumno sea capaz

Más detalles

Graduado en Ingeniería Informática Universidad Politécnica de Madrid Escuela Técnica Superior de Ingenieros Informáticos TRABAJO FIN DE GRADO

Graduado en Ingeniería Informática Universidad Politécnica de Madrid Escuela Técnica Superior de Ingenieros Informáticos TRABAJO FIN DE GRADO Graduado en Ingeniería Informática Universidad Politécnica de Madrid Escuela Técnica Superior de Ingenieros Informáticos TRABAJO FIN DE GRADO ANCAS (AUTOMATIC NAVIGATION AND COLLISION AVOIDANCE SYSTEM)

Más detalles

Manipulación del Espacio: Transformaciones y Proyecciones

Manipulación del Espacio: Transformaciones y Proyecciones Manipulación del Espacio: Transformaciones y Proyecciones Facultad de Cs. de la Computación Juan Carlos Conde Ramírez Computer Graphics Contenido 1 Introducción 2 Transformaciones 3 Concatenación 4 Proyecciones

Más detalles

SOFTWARE PARA REPRESENTACIÓN VIRTUAL DE DUCTOS E IDENTIFICACION DE DEFECTOS. Tesis QUE PARA OBTENER EL GRADO ACADÉMICO DE

SOFTWARE PARA REPRESENTACIÓN VIRTUAL DE DUCTOS E IDENTIFICACION DE DEFECTOS. Tesis QUE PARA OBTENER EL GRADO ACADÉMICO DE SOFTWARE PARA REPRESENTACIÓN VIRTUAL DE DUCTOS E IDENTIFICACION DE DEFECTOS Tesis QUE PARA OBTENER EL GRADO ACADÉMICO DE Maestro en Ciencia y Tecnología en la Especialidad de Mecatrónica PRESENTA Ing.

Más detalles

Rodríguez-Losada & Hernando. Diseño y programación Orientados a Objetos. Una Visión Aplicada 2

Rodríguez-Losada & Hernando. Diseño y programación Orientados a Objetos. Una Visión Aplicada 2 Diseño y programación Orientados a Objetos. Una Visión Aplicada 2 Diego RODRÍGUEZ LOSADA, Miguel HERNANDO Diseño y Programación Orientados a Objetos. Una Visión Aplicada. ISBN: 978-84-96737-51-8 Formato:

Más detalles

Formato: 210 x 290 mm Páginas: 198 Editorial: FUNDACIÓN GENERAL DE LA UNIVERSIDAD POLITÉCNICA DE MADRID C/Pastor nº MADRID.

Formato: 210 x 290 mm Páginas: 198 Editorial: FUNDACIÓN GENERAL DE LA UNIVERSIDAD POLITÉCNICA DE MADRID C/Pastor nº MADRID. Diseño y programación Orientados a Objetos. Una Visión Aplicada 2 Diego RODRÍGUEZ LOSADA, Miguel HERNANDO Diseño y Programación Orientados a Objetos. Una Visión Aplicada. ISBN: 978 84 96737 51 8 Formato:

Más detalles

UNIVERSIDAD NACIONAL AUTÓNOMA DE MÉXICO FACULTAD DE INGENIERÍA LAB DE COMPUTACIÓN GRAFICA PRACTICA 3 MODELADO JERARQUICO

UNIVERSIDAD NACIONAL AUTÓNOMA DE MÉXICO FACULTAD DE INGENIERÍA LAB DE COMPUTACIÓN GRAFICA PRACTICA 3 MODELADO JERARQUICO UNIVERSIDAD NACIONAL AUTÓNOMA DE MÉXICO FACULTAD DE INGENIERÍA LAB DE COMPUTACIÓN GRAFICA PRACTICA 3 MODELADO JERARQUICO PROFRA: ING ELIZABETH FONSECA CHAVEZ GRUPO:4 COLIN ALEJANDRO ANABEL PÁCTICA 3 MODELADO

Más detalles

Modelado Jerárquico FI UNAM 2007

Modelado Jerárquico FI UNAM 2007 Modelado Jerárquico FI UNAM 2007 En gran cantidad de aplicaciones, es conveniente poder crear y manejar partes individuales de una imagen sin afectar otras partes de las mismas. Definir cada objeto con

Más detalles

Rodríguez Losada & Hernando. Diseño y programación Orientados a Objetos. Una Visión Aplicada 2

Rodríguez Losada & Hernando. Diseño y programación Orientados a Objetos. Una Visión Aplicada 2 Diseño y programación Orientados a Objetos. Una Visión Aplicada 2 Diego RODRÍGUEZ LOSADA, Miguel HERNANDO Diseño y Programación Orientados a Objetos. Una Visión Aplicada. ISBN: 978 84 96737 51 8 Formato:

Más detalles

Laboratorio 2: Viewports e Interacción con el Mouse (en 2D) Seleccionar un área de la figura para hacer zoom.

Laboratorio 2: Viewports e Interacción con el Mouse (en 2D) Seleccionar un área de la figura para hacer zoom. Laboratorio 2: Viewports e Interacción con el Mouse (en 2D) Seleccionar un área de la figura para hacer zoom. Introducción Los vértices sufren transformaciones para pasar del mundo a la pantalla. Estas

Más detalles

GRAFICACIÓN Unidad I. Catedrático: tico: Hilario Salazar OBJETIVO ESPECIFICO:

GRAFICACIÓN Unidad I. Catedrático: tico: Hilario Salazar OBJETIVO ESPECIFICO: GRAFICACIÓN Unidad I Catedrático: tico: Hilario Salazar Martínez OBJETIVO ESPECIFICO: El alumno aprenderá a relacionar los conceptos básicos de geometría analítica con los conceptos iniciales de graficado

Más detalles

Construcción de Sólidos 3D

Construcción de Sólidos 3D Construcción de Sólidos 3D Introducción a la Computación Gráfica Andrea Rueda Pontificia Universidad Javeriana Departamento de Ingeniería de Sistemas Generación de sólidos y objetos 3D: Superficies de

Más detalles

TRABAJOGRAFICOS POR COMPUTADOR Samuel Marín Calvo

TRABAJOGRAFICOS POR COMPUTADOR Samuel Marín Calvo TRABAJOGRAFICOS POR COMPUTADOR Samuel Marín Calvo 900719 1. EJES... 2 2. Función SETCIRCLE... 2 3. Función LOAD... 3 4. Función HI... 4 5. SETTRACE i... 5 6. Rastro con colores del arco iris... 11 7. Rastro

Más detalles

Una Aplicación Informática para la Enseñanza de las Transformaciones Geométricas 3D

Una Aplicación Informática para la Enseñanza de las Transformaciones Geométricas 3D Una Aplicación Informática para la Enseñanza de las Transformaciones Geométricas 3D Claire Lastennet 1 ENST Bretagne F-29285 Brest cedex José Ribelles 2 Departamento de Lenguajes y Sistemas Informáticos

Más detalles

Practica 4: Eventos y Menús GLUT

Practica 4: Eventos y Menús GLUT Practica 4: Eventos y Menús GLUT JUAN CARLOS CONDE RAMÍREZ COMPUTER GRAPHICS Volver a aplicar las principales transformaciones geométricas de OpenGL. Objetivos: Utilizar las funciones de la librería GLUT

Más detalles

Métodos para detección de superficies visibles (Hearn-Baker)

Métodos para detección de superficies visibles (Hearn-Baker) Métodos para detección de superficies visibles (Hearn-Baker) Contenido Clasificación de métodos Eliminación de caras posteriores Método depth buffer Método A-buffer Qué provee OpenGl. Clasificación de

Más detalles

Monroy Torres Josué Joel

Monroy Torres Josué Joel Monroy Torres Josué Joel Parte 1. Programa principal. Main a) Cambie la VENTANA a una posición de 100,150, el tamaño de la ventana de 500, 700 y escribe el nombre prueba1. void ventana() { glutinitwindowsize(500,500);

Más detalles

Prácticas de informática gráfica (Version 3)

Prácticas de informática gráfica (Version 3) Prácticas de informática gráfica (Version 3) Dr. Arno Formella http://www.ei.uvigo.es/ formella M Victoria Luzón García Universidad de Vigo Departamento de Informática E-32004 Ourense 30 de marzo de 2001

Más detalles

GL_RED, GL_RGB, GL_LUMINANCE

GL_RED, GL_RGB, GL_LUMINANCE Mapeo de Texturas Mapeo de texturas Texturas 1D Para definir la textura: void glteximage1d (GLenum objetivo, GLint nivel, GLint componentes, GLsizei ancho, GLint borde, GLenum formato, GLenum tipo, const

Más detalles

El lenguaje de Programación C. Fernando J. Pereda <ferdy@gentoo.org>

El lenguaje de Programación C. Fernando J. Pereda <ferdy@gentoo.org> El lenguaje de Programación C Fernando J. Pereda Por qué aprender C? Portable y muy extendido Estándar (C89, C99) El lenguaje de los sistemas Un lenguaje fácil (no, no es broma) Por

Más detalles

Introducción a 3D Transformaciones 3D

Introducción a 3D Transformaciones 3D Introducción a 3D Transformaciones 3D Introducción a la Computación Gráfica Andrea Rueda Pontificia Universidad Javeriana Departamento de Ingeniería de Sistemas Transformaciones 2D Traslación Rotación

Más detalles

PROGRAMACIÓN EN JAVA. { una línea para definir, crear o ejecutar ; }

PROGRAMACIÓN EN JAVA. { una línea para definir, crear o ejecutar ; } PROGRAMACIÓN EN JAVA { una línea para definir, crear o ejecutar ; } JFC Y API SPECIFICATIONS OBJECT INTERFACE ABSTRACT IMPLEMENTS EXTENDS NEW EXTENDS (Hasta que una clase derivada deje de ser ABSTRACT)

Más detalles

GRAFICACIÓN Unidad II

GRAFICACIÓN Unidad II GRAFICACIÓN Unidad II Profr.. Hilario Salazar Martínez OBJETIVO ESPECIFICO: El estudiante conocerá los algoritmos y técnicas de graficado en dos dimensiones 2.1 Recorte El recorte es el proceso

Más detalles

Instalación de Software GNU/Linux en Entornos Industriales

Instalación de Software GNU/Linux en Entornos Industriales Portada Instalación de Software GNU/Linux en Entornos Industriales Manuel Espeleta García ETIS Miquel Àngel Senar 12/01/2011 Manuel Espeleta 05.122 TFC Plataforma GNU/Linux 2/61 Dedicatoria y agradecimientos

Más detalles

Capítulo I.- Ambiente de desarrollo y bibliotecas gráficas

Capítulo I.- Ambiente de desarrollo y bibliotecas gráficas 10 Capítulo I.- Ambiente de desarrollo y bibliotecas gráficas 1.1.- Software de dominio público 1.1.1.- C++ El lenguaje en C++ es la más adecuada para la programación gráfica debido a su flexibilidad en

Más detalles

Transformación de vista

Transformación de vista (X1,Y1, Z1) (X2, Y2, Z2) (X3,Y3, Z3) geometría Coordenadas del objeto (en punto flotante) Transformación de vista T. Afines T. Vista Recorte y T. Proyección Coordenadas de Vista Dibujado de primitivas

Más detalles

Introducción general al Lenguaje C (2010/2011)

Introducción general al Lenguaje C (2010/2011) Luis Valencia Cabrera lvalencia@us.es (http://www.cs.us.es/~lvalencia) Ciencias de la Computacion e IA (http://www.cs.us.es/) Introducción general al Lenguaje C (2010/2011) Universidad de Sevilla Índice

Más detalles

Tema 5 Lenguajes de programación

Tema 5 Lenguajes de programación Tema 5 Lenguajes de programación David Vallejo Fernández Curso 2007/2008 Escuela Superior de Informática 1 Índice de contenidos 1.. 2.. 3. Programming Language. 4.DirectX High-Level Shader Language. 5.Resumen.

Más detalles

Mallas poligonales y curvas cuádricas en OpenGL

Mallas poligonales y curvas cuádricas en OpenGL Mallas poligonales y curvas cuádricas en OpenGL Introducción Las aplicaciones opengl están construidas sobre un loop principal que se verá más adelante en las clases de opengl. El loop principal es donde

Más detalles