|
|
Docente: Francisco Román Villatoro Machuca (despacho 2.2.B.15, Complejo Politécnico)
Horario de Clases:
Primer cuatrimestre: Martes: 18:30 - 21:30
(Aula 4, aulario L.P. y Laboratorio 1.2.2)
Tutorías (Campus del Teatinos):
Martes de 15:15 a 18:30 horas.
Objetivos: El objetivo principal de esta asignatura es introducir
al alumno a las técnicas matemáticas y algorítmicas
básicas necesarias para el trabajo en informática gráfica,
con hincapié en las técnicas gráficas necesarias para
el desarrollo de herramientas de síntesis de imágenes tridimensionales
que incluyan no sólo la geometría de los objetos, sino también
sus propiedades ópticas.
Evaluación: Se puede aprobar la asignatura con la correcta realización y presentación de las prácticas de laboratorio. Para subir nota o aprobar sin prácticas de laboratorio se preven los exámenes finales.
Créditos : Optativa de primer ciclo de 4.5 créditos (teoría+práctica)
Exámenes: Sólo se contemplan exámenes finales
(fecha 16 Febrero)
Libros de Texto:
Ningún libro de texto se adapta a todos los contenidos, ordenación
de temas y nivel de los temas que se presentarán en Técnicas
Gráficas. Por ello, presentaremos una breve lista, con los libros
de texto más significativos que pueden ser utilizados para la preparación
de la asignatura por parte de los alumnos.
[HB] Hearn, D. and M.P. Baker, "Computer Graphics (Second Edition)," Prentice-Hall, 1994. (4 Ejemplares en biblioteca. Está traducido al castellano en 1996). Fácil de leer, ampliamente ilustrado y adecuado para el correcto seguimiento de la asignatura.
[R] Rogers, D.F., "Procedural Elements for Computer Graphics," McGraw-Hill, 1985. (2 ejemplares en biblioteca). Un libro "clásico", muy bueno en cuanto a la presentación de algoritmos para gráficos por computador en 2D y en 3D, con enfásis en escenas formados por polígonos. El capítulo de clipping "chapeau".
[RA] Rogers, D.F. and J.A. Adams, "Mathematical Elements for Computer Graphics," (second edition), McGraw-Hill, 1990. (2 ejemplares en biblioteca). El complemento ideal del [R] en lo que a fundamentos matemáticos se refiere, geometría euclídea en 2D y en 3D, geometría en perspectiva, aproximación de curvas y superficies por polinomios spline (o a trozos).
[FP] Foley, J.D. and A. van Dam and S.K. Feiner and J.F. Hughes and R.L. Phillips, "Introduction to Computer Graphics," Addison-Wesley, 1994. (no disponible en biblioteca. Está "mal"-traducido al catellano por Addison-Wesley Iberoamericana en 1996). Resumen actualizado en algunos temas y adaptado para alumnos del texto [FD]. Es un buen libro de texto, bastante completo, y algo más fuerte que [HB]. La traducción al castellano, "Introducción a la graficación por computador", está regular (en mi opinión).
[FD] Foley, J.D. and A. van Dam and S.K. Feiner and J.F. Hughes, "Computer Graphics: Principles and Practice," (second edition), Addison-Wesley, 1990. (1 ejemplar en biblioteca). Hoy por hoy, la "biblia" para introducirse en los gráficos por computador. Sin embargo, es un libro excesivamente extenso por el gran número de temas que cubre.
[P] Pokorny, C., "Computer Graphics. An Object-Oriented Approach to the Art and Science. Implemented in C++", Franklin, Beedle & Associates Inc., 1994. (1 ejemplar). Buena implementación en C++ de los algoritmos básicos de los gráficos computador.
[G] A. Glassner (editor), "An Introduction to Ray Tracing," Academic Press, 1988. (2 ejemplares en biblioteca). La "biblia" para introducirse en trazado de rayos. Es un libro muy bueno, con artículos de autores de reputación indiscutible, y debe ser una referencia básica para la asignatura Técnicas Gráficas en este curso. Complemento ideal de [W].
[WW] Watt, A. and M. Watt, "Advanced Animation and Rendering Techniques, Theory and Practice, Addison-Wesley, 1992. (1 ejemplar en biblioteca). Complemento avanzado de [W], que aunque "repite" algunos temas con dicho libro, lo complementa de forma avanzada y en forma excelente. Para el que quiera continuar trabajando en gráficos por computador.
[F] Farin, G., "Curves and Surfaces for Computer Aided Graphics Design (CAGD)," (third edition), Academic Press, 1993. (1 ejemplar en biblioteca). De nivel similar a [RA] pero que incluye solamente técnicas CAGD.
[G1] Glassner, A. (editor), "Graphics Gems," Academic Press,
1990. (1 ejemplar).
[G2] Arvo, J. (editor), "Graphics Gems II," Academic Press, 1991.(1
ejemplar). Estos dos libros son recopilaciones y recetarios de algoritmos
gráficos "puntuales", algunos curiosos, otros eficientes, ... en
cualquier caso, una referencia para "de cuando en cuando".
Recomendación Bibliográfica:
Para seguir la asignatura, seguir las referencias que se indican en
cada uno de los temas del programa detallado.
En cualquier caso, "ojear" y "conocer el contenido" de los diferentes
libros indicados, con objeto de recurrir a ellos cuando sea oportuno.
Revistas de Investigación en la Hemeroteca (para los más atrevidos):
Computer Graphics (ACM - SIGGRAPH, incluye proccedings).
ACM Transactions on Graphics.
Computers and Graphics.
Graphical Models and Image Processing.
IEEE Trans. on Visualization and Computer Graphics.
The Journal of Visualization and Computer Animation.
The Visual Computer.
Autocad Magazine (Hemeroteca Industriales, Campus el Ejido).
IEEE Trans. Computer Graphics and Applications (Hemeroteca Industriales,
Campus el Ejido).
Revistas sobre programación con curiosidades y/o algoritmos gráficos:
Byte
C/C++ Users Journal
Dr. Dobb’s Journal (Hemeroteca de Industriales).
Programa Detallado de la Asignatura para el Curso 1996/1997
Se especifican los capítulos y apartados de los libros de texto
que conforman la materia objeto de examen.
Notación: <libro> : <capitulo>.<apartado>{-<apartado>},
donde el guión indica varios apartados consecutivos.
Los apartados que se consideran como lectura recomendada se encuentra
precedidos por las siglas (l.r.) y no entran en examen.
1. Introducción a los gráficos por ordenador
1.1. Técnicas para la representación de escenas
basadas en polígonos (ejemplos de Renderman).
FP: 12 (ver las figuras en color Shutterbug progression)
1.2. Trazado de rayos (SIGGRAPH education slide set).
1.3. Historia y aplicaciones fundamentales.
HB: (l.r.) 1 // RA: (l.r.) 1.1-4 // FP: (l.r.) 1 // P: (l.r.)
1.1-2
2. Fundamentos geométricos: transformaciones homogéneas y en perspectiva
2.1. Álgebra lineal. Vectores y matrices. Geometrías
lineal, afín y euclídea en 2D.
HB: Apéndices A.2-4 // RA: Apéndice B. // FP: 5.1
// P: 1.4, A.1 // W: 1.5
2.2. Transformaciones homogéneas bidimensionales (lineales,
afines y euclídeas).
HB: 5.1-7 // RA: 2.1-17, 2.19-20 // FP: 5.2-4 // P: 4.3, A.3-4,
A.6-8
2.3. Transformaciones lineales tridimensionales (reescalados,
rotaciones, cizalladuras, etc.).
HB: 11 // RA: 3.1-11 // FP: 5.7-5.9 // P: 5.1 // W: 1.2-3
2.4. Otras representaciones del grupo de rotaciones: vectorial,
con cuaterniones y exponencial.
HB: A.6, 11.2 // WW: 15.3.8
2.5. Tipos de proyecciones en perspectiva. Transformaciones en
perspectiva.
HB: 12.3-4 // RA: 3.11-18 // FP: 6.2, 6.5 // P: 5.2
2.6. Representaciones de curvas y superficies. Explícita,
implícita y paramétrica.
HB: A.7, A.8 // RA: 4.1-5 (l.r.) 4.6-8
2.7. Cónicas y cuádricas. Superficies de revolución.
HB: 10.3, 10.14, (l.r.) 10.4 // RA: 6.1-4 // FP: 9.4 // P: B.1-3,
B.11, B.13
3. Trazado de rayos como algoritmo de eliminación de caras ocultas (ray casting)
3.1. Conceptos básicos de trazado de rayos.
HB: 13.10 // R: 4.13 // FP: 13.4 // P: 14.1-2 // W: 8.1-2, (l.r.)
8.3 // G: 1.1-2, 2.1, 3.1
3.2. Intersección entre rayos y esferas. Determinación
del vector normal a una esfera.
HB: 14.6 // R: 4.13 // FP: 13.4 // P: 14.2 // W: 8.5 // G: 2.2
// WW: 8.3
3.3. Intersección entre rayos y polígonos planos.
R: 5.2 // P: B.5-7, (l.r.) B.8-10 // W: 8.5 // G: 2.3-4, 3.3
// WW: 8.3
3.4. Otras cuádricas: elipsoides, cilindros, conos y toros.
R: 5.12 // WW: 8.3 // P: 14.4, B.1-3, B.11 // G: 2.5, 3.3 //
WW: 8.3
3.5. Objetos compuestos CSG (Constructive Solid Geometry).
HB: 10.15 // FP: 10.2, 10.7 // P: 14.5 // W: 2.4, 2.6 // G: (l.r.)
6.10
3.6. Estructuras de datos para gráficos en 3D. Representación
jerárquica de escenas.
HB: 11.7, (l.r.) 7 // FP: 7.1 (l.r.) 7 // P: 14.3 // G: (l.r.)
7
4. Modelos del color y dispositivos de salida gráfica
4.1. Propiedades de la luz y del color.
HB: 15.1 // R: 5.15 // FP: 11.1 // P: 8.0-2 // W: 14.1 // G:
4.1
4.2. Modelos del color y colorimetría. Modelos CIE xy,
RGB, CMYK, HLS y HSV.
HB: 15.2-10 // R: 5.15 // FP: 11.2-3, (l.r.) 11.4 // P: 8.3 //
W: 14.2-3
4.3. Dispositivos de salida gráfica. Tarjetas gráficas.
Memoria de video (frame buffer).
HB: 2.1-4, 2.6 // RA: 1.6-9, 1.10-21 // R: 1.5-8, 2.11 // FP:
4.2, (l.r.) 4.3-4 // P: 2.0, 8.2 //
W: (l.r.) 14.4
4.4. Formatos de ficheros gráficos: PBM, BMP, GIF, JPEG,
PS y Targa.
RA: 1.9, R: 2.11
4.5. Simulación de colores ("halftoning" y "dithering").
HB: 14.3-4 // R: 2.28 // FP: 11.1 // P: 18.3
4.6. Cuantización de colores: algoritmo de corte por las medianas y el basado en un octree.
5. Trazado de rayos y el modelo de iluminación de Whitted
5.1. Modelos de iluminación locales.
HB: 14.1 // R: 5.1 // FP: 14.1 // P: 8.4, 15.0 // W: 4.1 // G:
4.1 // WW: 2.1
5.2. Iluminación difusa y reflejos especulares. Modelo
de Phong.
HB: 14.2 // R: 5.2 // FP: 14.1 // P: 8.4, 15.1-2 // W: 4. 3-6
// G: 4.2-3 // WW: 2.1-3
5.3. Modelos de iluminación globales.
HB: 14.1 // R: 5.12 // WW: 1.2 // FP: 14.6 // W: 1.3 // WW: 8.1
5.4. Trazado de rayos: rayos reflejado y refractado, árbol
de rayos. Modelo de Whitted.
HB: 14.6 // R: 5.4, 5.9 5.12-13 // FP: 14.7, 14.4-5 // P: 15.4
// W: 4.9, 8.4, 8.6 // G: 4.2 // WW: 8.1-2
5.5. Tratamiento de las luces (modelo de Warn) y generación
de sombras.
HB: 14.6 // R: 5.7, 5.10 // FP: 14.1 // W: 4.11, (l.r.) 7.2-4
// WW: 8.4, 8.7, (l.r.) 5.1
5.6. Programas de trazado de rayos: POV-Ray.
G: (l.r.) 7 // WW: 8.5
6. Técnicas de aceleración para trazado de rayos
6.1. Técnicas de aceleración: reducción del
número de intersecciones rayo-primitiva.
P: 15.5 // W: 8.10 // G: 6.1-3 // WW: 9.1, 9.3
6.2. Volumenes contenedores (bounding volumes): esferas, cajas
y slabs.
W: 2.5, 8.10 // G: 2.4, 6.4 // WW: 9.2
6.3. Subdivisión adaptativa del espacio: árboles
octree y partición binaria del espacio (BSP).
FP: 10.6 // W: 2.5, 8.10 // G: 6.5 // WW: 9.6
6.4. Subdivisión uniforme del espacio: SEADS y el algoritmo
de Bresenham tridimensional 3DDDA.
W: 8.10 // G: 6.5 // WW: 9.6
6.5. Combinación de técnicas y técnicas avanzadas
de aceleración
G: (l.r.) 6.6-9, 6.12-13 // WW: (l.r.) 9.5, 9.7
7. Generación y eliminación de "alias" (antialiasing).
7.1. ¿Qué es el aliasing? Tipos de defectos
y porqué se producen.
HB: 4.8 // R: 2.25 // W: 11.1 // G: 1.4
7.2. Bases del análisis de señales mediante transformada
de Fourier.
W: 11.2 // WW: 4.1-2
7.3. Técnicas de anti-aliasing: prefiltrado, sobremuestreo
y muestreo estocástico.
HB: 4.8 // R: 2.26-27 // FP: 3.14 // W:11.3-4, 11.6 //
G: 1.4 // WW: 4.3-5
7.4. Antialiasing en trazado de rayos. Discos de Poisson y jittering.
HB: 14.6 // P: 15.6 // W: 8.9 // G: 5.1-4 // WW: 4.6, (l.r.)
5.2
8. Trazado de rayos distribuido o estocástico.
8.1. Función de reflectancia bidireccional. Modelo de iluminación
de Torrance-Sparrow.
R: 5.8 // W: 4.2, 4.10, 8.8 // G: 4.4, (l.r.) 4.5 // WW: 2.1,
2.4 (l.r.) 2.5
8.2. Brillos realistas, materiales traslúcidos y sombras
con penumbra.
HB: 14.6 // G: 5.5 // WW: 10.4
8.3. Efectos de profundidad de campo en el modelo de la cámara.
G: 5.5 // WW: 10.4
8.4. Estelas de objetos en movimiento (motion blur) en animaciones.
G: 5.5 // WW: 10.4, (l.r.) 4.10
8.5. Implantación de trazado de rayos distribuido. Generación
de distribuciones aleatorias.
G: 5.6-8, (l.r.) 7 // WW: 10.4
9. Generación y aplicación de texturas.
9.1 Aplicación de texturas bidimensionales en trazado de
rayos.
HB: 14.9 // R: 5.11 // FP: 14.3 // P: 16.1 // W: 7.5-6, (l.r.)
7.10 // G: 2.5 // WW: 6.1, (l.r.) 6.2-3
9.2. Antialiasing de texturas. Mipmaps.
W: 7.9 // WW: 4.7, (l.r.) 4.8
9.3. Rugosidades (bump mapping) y otros tipos de texturas.
HB: 14.9 // P: 16.2 // W: 7.8 // WW: 6.4
9.4. Texturas tridimensionales, sólidas y/o hipertexturas.
P: 16.3 // W: 7.7 // WW: 7.2
9.5. Generación de texturas. Funciones de ruido y algoritmo
de Perlin.
W: 12.4 // WW: 7.2
9.6. Síntesis de Fourier para la generación de texturas.
W: 12.4 // WW: 7.3
10. Ecuación de rendering de Kajiya. Radiosity como modelo de iluminación global.
10.1. Ecuación del transporte de radiación. Ecuación integro-diferencial de la radiancia.
10.2. Ecuación integral de rendering de Kajiya. Ecuación
de la radiosidad.
WW: 12.2-3
10.3. Formulación numérica matricial de la transferencia
de energía térmica.
HB: 14.7 // FP: 14.8 // W:10.1-2 // WW: 11.1
10.4. Cálculo de factores de forma: algoritmo del hemicubo
y trazado de rayos.
FP: 14.8 // W:10.3-4 // WW: 11.2
10.5. Radiosidad progresiva. Algoritmos mixtos con trazado de
rayos. Algoritmos de Montecarlo
W: 10.5-6 // WW: 11.1, (l.r.) 12.1
11. Técnicas de rendering de escenas poligonales. "Viewing pipeline"
tridimensional.
11.1. El concepto de "Viewing pipeline". Estándares gráficos:
GKS, PostScript, PHIGS+ y OpenGL.
HB: 12.1, 6.1, 2.7, (l.r.) 9 // FP: 6.1, 14.9, (l.r.) 6.7, 7
// P: 18.2 // W: 2.6, 5.1
11.2. Viewing pipeline bidimensional. Manejo de coordenadas ("windows"
y "viewports").
HB: 6.1-4, (l.r.) A.1// RA: (l.r.) Apéndices A.2-4 //
FP: 3.1, 5.5 // P: 4.0-1
11.3. La cámara, el "viewpoint" y el "frustum". Especificación
de cámaras en PHIGS.
HB: 12.4 // FP: 6.3, 6.6 (l.r.) 6.4 // P: 5.3 // W: 3,
(l.r.) Ap. A // WW: 1.2
11.4. "Clipping" en 3D. Algoritmos de Sutherland-Cohen y de Sutherland-Hodgman.
HB: 12.5 // R: 3.1-2, 3.7-9, 3.15-16 (l.r.) 3.3-6, 3.10-14, 3.17-18
// FP: 3.8-9, 3.11, 6.6 // P: 4.2, 5.4
11.5. Representación de polígonos. Escenas poligonales
(B-rep).
HB: 10.1 // FP: 9.1, 10.5 // P: 10.1 // W: 2.2 // WW: 1.1
11.6. Sombreado de mallas de polígonos: constante, Gouraud
y Phong.
HB: 14.5 // R: 5.3, 5.5-6 // FP: 14.2 // P: 13.0-3 // W: 5.3
// WW: 1.6
12. Algoritmos de eliminación de superficies ocultas
12.1. Algoritmos de eliminación de líneas y superficies
ocultas. Algoritmos continuos y discretos.
HB: 13-1 // R: 4.1 // FP: 13.1 // P: 10.0 // W: 5.5 //
WW: 1.5
12.2. Detección de caras ocultas de poliedros ("back-face
culling"). (l.r.) Algoritmo de Warnock.
HB: 13-2, 13.8 // R: 4.3, 4.4, (l.r.) 4.5 // FP: (l.r.) 13.5
// P: 10.2, 11.1 // W: 5.2 // WW: 1.2
12.3. Algoritmo del pintor ("Painter’s" o "Depth-sorting" o "List
Priority").
HB: 13.6-7, (l.r.) 13.9 // R: 4.8 // FP: 13.5 // P: 10.3
12.4. Algoritmo "Z-buffer" o "Depth-buffer".
HB: 13.3 (l.r.) 13.4 // R: 4.7 // FP: 13.2 // P: 11.2 //
W: 5.5
12.5. Algoritmo "Scan-line".
HB: 13.5 // R: 4.9-10 (l.r.) 4.11 // FP: 13.3 // P: 11.2
12.6. Otras algoritmos y variantes.
HB: (l.r.) 13.11-13 // R: (l.r.) 4.6, 4.12 // P: (l.r.) 12
13. Técnicas de dibujo en pantalla de primitivas gráficas bidimensionales
13.1. Impresión de puntos ("pixels").
HB: 3.1, 3.3 // R: 2.12 // P: 2.1 // WW: 1.3
13.2. Dibujo de segmentos de línea (algoritmos DDA y de
Bresenham).
HB: 3.2, 3.4, 3.10 // R: 2.1-5, 2.13 // FP: 3.2 // P: 2.1 //
W: 5.4
13.3. Dibujo de circunferencias y de otras curvas.
HB: (l.r.) 3.5-7, 3.10 // R: (l.r.) 2.6-7 // FP: (l.r.) 3.3 //
P: (l.r.) 3
13.5. "Scan conversion" de polígonos. Rellenado con semilla
("seed filling").
HB: 3.11-12 // R: 2.15-17, 2.19, 2.22-24 (l.r.) 2.8-10, 2.18,
2.20-21 // FP: 3.4-5, (l.r.) 3.6 //
P: 2.1-3 // W: 5.4 // WW: 1.4
13.6. Generación de caracteres. Atributos de objetos en
2D.
HB: (l.r.) 3.14, 4 // R: (l.r.) 2.14, 3.7 // FP: (l.r.) 3.12
14. Curvas y Superficies. Aproximación "spline", de Bézier y "B-spline"
14.1. Interpolación polinómica. Curvas "spline"
cúbicas.
HB: 10.6-7, 10.13 // RA: 5.1-5 // FP: 9.2 // P: 6.0-1 // W: 6.1
// WW: 3.1
14.2. Curvas de Bézier.
HB: 10.8 // RA: 5.8 // FP: 9.2 // P: 6.5 // W: 6.2 // WW: 3.3
14.3. Curvas "B-spline". Propiedades de las curvas "B-spline".
HB: 10-9, 10.12 // RA: 5.9-10 (l.r.) 5.11-12 // FP: 9.2 // P:
6.2-3 // W: 6.3 // WW: 3.5, (l.r.) 3.6
14.4. B-splines racionales no uniformes: NURBS.
HB: 10.11, (l.r.) 10.10 // RA: (l.r.) 5.13 // WW: 3.8, (l.r.)
3.9-11
14.5. Representación de superficies a trozos ("patches"¨).
HB: 10.8-9 // RA: 6.5 (l.r.) 6.6-7 // FP:9.3 // P: 7.1 // WW:
3.2, 3.5, (l.r.) 3.7
14.6. "Patches" bicúbicos, de Bézier y "B-splines".
HB: 10.8-9 // RA: 6.11-12 (l.r.) 6.13-14, 6.16 // FP:9.3 // P:
7.2-3, 7.5, (l.r.) 7.6 //
W: 2.3, 6.4, (l.r.) 6.7-9 // WW: 3.3, (l.r.) 3.4
14.7. Intersección entre rayos y "patches". Métodos
numéricos elementales.
W: (l.r.) 6.5-6 // G: 3.3
15. Técnicas de animación y simulación dinámica.
15.1 Técnicas de animación clásica: keyframes,
sprites y animación convencional 2½D.
HB: 16.1-3 // P: 17.0-4 // W: 13.1-2 // WW: (l.r.) 15
15.2. Técnicas de metamorfosis (morpho y warping)
HB: 16.5 // WW: (l.r.) 17.8
15.3. Animación paramétrica y de objetos articulados.
Simulación dinámica.
HB: 10.20, 16.4, 16.6 // P: 17.2 // W:13.3-4 (l.r.) 13.5 // WW:
(l.r.) 16
15.5. Animación de objetos etéreos (soft). Sistemas
de partículas.
HB: 10.21 // W: 12.2 // WW: (l.r.) 17, 18
16. Técnicas de visualización científica.
16.1. Técnicas de visualizacón científica.
Objetos abstractos de visualización (AVO).
HB: 10.22 // R: /// WW: 13
16.3. Rendering de objetos volumétricos: algoritmo de colocación
de cubos (marching cubes).
W: 9.1-3, (l.r.) 9.4-5 // WW: (l.r.) 13
16.4. Ejemplos de uso de técnicas de visualización
(visual cues) en diferentes aplicaciones.
Epílogo
Las tendencias actuales en una enseñanza universitaria de calidad
dan menos importancia que antes a la transmisión de unos contenidos,
por lo demás en continuo cambio y revisión, y expresan, en
cambio, mayor interés por la adquisición, por parte del alumno,
de técnicas y hábitos de estudio, de capacidad de análisis
crítico, de inventar y descubrir, etc. En suma, ponen el énfasis
en que el estudiante aprenda a aprender. Esta es la meta del docente de
la asignatura de Técnicas Gráficas.
R.N. Delgado, C. B. González
UNED, Ciencias Físicas, Guía del curso 92/93