Sección de Computación

Departamento de Ingeniería Eléctrica

CINVESTAV

Curso: Graficación
Periodo:  Agosto-Diciembre 2004
Prof: Dr. Luis Gerardo de la Fraga

Este es el contenido del curso:  graficacion.html


Un libro recomendado para aprender OpenGL:
    OpenGL Programming Guide. Addison-Wesley

Código fuente de programas vistos en clase:

05/11/2004 El artículo sobre X-splines (que usa Xfig) sig1.ps.gz
29/10/2004 Los ejemplos vistos en clase de las curvas Bézier y las funciones básicas Bézier: Bezier.tar.gz
29/10/2004 El programa para iluminación por sombreado: Cone.tar.gz
29/10/2004 El programa de prueba de la proyección en perspectiva: CuboProyeccion.tar.gz
28/10/2004 Los apuntes sobre continudad y bsplines: bsplines.pdf
28/10/2004 Los archivos para generar las curvas Hermite con gnuplot: Hermite.tar.gz
15/10/2004 El programa básico modificado en clase (incluye el archivo quad.pro para usarse con qmake): Gl-Qt2.tar.gz
15/10/2004 El programa para rotar un cubo en su diagonal principal: 3DCube.tar.gz
15/10/2004 El programa básico para trabajar en Qt y OpenGL: Gl-Qt.tar.gz
01/10/2004 Varias funciones en C vistas en clase: U1.tar.gz
22/09/2004 La función para hacer el cortado con el algoritmo de Cohen Sutherland: clipping.txt
17/09/2004 El programa para probar el código del trazo de la línea:   linestest.tar.gz
17/09/2004 El programa básico para trabajar con Qt:  canvas.tar.gz



Tareas

Tarea 7: Fecha de entrega , miércoles 15/12/2004

Animación en 3D

Una esfera rebotando
- Se realizará un programa para animar un cuadric chocando contra las
paredes.
- Las paredes deben contener texturas.
- El cuadric puede ser una esfera o un elipsoide.
- Se deben de contemplar los tres modos de iluminación: color, suave y con luces.
- Debe mostrarse la escena en perspectiva.
- La escena puede verse desde cualquier ángulo moviendo el ratón. Se puede acercar y alejar de
algún detalle.
- No es necesario pero podría añadirse que las paredes sean translúcidas usando el canal alfa
para el color.

Algunas lecciones sobre como poner texturas y usar la mezcla de colores en http://nehe.gamedev.net/lesson.asp?index=02
Al manual de GLU (la biblioteca de utilerías para OpenGL) aquí: glu1.3.pdf
Una lección sobre detección de colisiones: http://nehe.gamedev.net/data/lessons/lesson.asp?lesson=30
El código para trazar una línea en 3D (en el código original se realiza una búsqueda en una matriz
tridimensional, pero se puede adaptar fácilmente para otros propósitos).



Tarea 6: Fecha de entrega  lunes 15/11/2004
NURBS

Realizar un programa para interactuar con tres o más NURBS unidos,
bidimensionales. El programa debe ser capaz de poner proyección en perspectiva.
Aquí dos programas, uno para realizar curvas Bézier con "evaluadores" y otro
para dibujar NURBS en tres dimensiones: Curvas.tar.gz
La línea de comandos para compilarlos es:
gcc -o prog prog.c -lGL -lGLU -lglut -lm
donde prog es el nombre del ejecutable y prog.c el fuente.

Tarea 5:  Fecha de entrega: 05/11/2004
Proyección en perspectiva e iluminación básica.

Agregar la opción de visión en proyección en perspectiva a la tarea 4.
Agregar la iluminación básica.

Tarea 4: Fecha de entrega 27/10/2004
Transformaciones geométricas en 3D

Realizar la figura asignada en clase en 3D. Realizar la interfaz gráfica para probar
las transformaciones geométricas: translación, escalamiento, rotación y sesgado.

Tarea 3: Fecha de entrega 06/10/2004
Investigar comor resuelve Xfig el problema de dibujar dos polígonos que comparten un borde.
También como resuelve Xfig el problema del dibujado de la unión de segmentos de línea.

Tarea 2: Fecha de entrega 29/09/2004
Programar las primitivas principales de LOGO en el programa básico de Qt
Realizar una composición (un dibujo con varias figuras geométricas) donde se pruebe el funcionamiento de las primitivas de LOGO
Realizar dos composiciones de fractales, a partir del código en LOGO de la tarea 1.
Agregar en alguna de las composiciones el cortado (clipping) por un rectángulo. Checar el
código del día 22/09/2004

-- Para capturar en Linux la imagen de una ventana, hay que ejecutar los comandos siguientes:
$ xwd -xy -out imagen.xwd
$ convert -colors 256 imagen.xwd imagen1.tif
$ convert -compress Zip imagen1.tif imagen1.png

y la imagen "imagen1.png" ya se puede poner en la página WEB.

Tarea 1: Fecha de entrega 15/09/2004
Investigar qué es LOGO
Las principales primitivas de LOGO.
El código en LOGO de una función para trazar un polígono de n lados de tamaño l
El código en LOGO para trazar al menos dos fractales.
 
Comentarios: fraga@cs.cinvestav.mx