Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Unidad I: Introducción
Docentes:
Néstor Calvo
Ángel Calegaris
Walter Sotil
2008
Computación Gráfica
• No Es: • Sí Es:
• CAD • Geometría
• Arte o Espacios
• Animación o Transformaciones
• Visualización • Modelado
o Curvas, Superficies, Objetos
• Juegos
o Iluminación, Texturas, Ambiente
o Mecánica – Interacciones
• Programación
o C++ (lógica y flujo del programa)
Introducción 2
Computación Gráfica
Comunicación
Información Usuario
Procesamiento de la Información
Computación Gráfica
Introducción 3
Primeros Pasos
1963!
!
Douglas Engelbart
Introducción 4
Hoy: Ciencia, Tecnología e Industria
Introducción 5
Tendencias Futuro (??????????????)
Introducción 6
Sistema Gráfico Básico
Introducción 7
Rendering
Rendering
Escena 3D Imagen
• Escena:
• Modelo:
o Ensambles de primitivas
o Superficies: Color, Textura, Normales y Normales “truchas”
o Fondo o Ambiente
• Luces: Modelos de iluminación
• Cámara: Proyección
• Animación: sucesión de escenas.
• Imagen:
• Puede realizarse en varios medios (device independence)
• Vector: secuencia de comandos select_pen(1); goto (x,y); pen_down();...
• Raster: framebuffer (array de pixels) (W x H x C) (& cia.)
Introducción 8
Tubo de Rayos Catódicos o CRT
Introducción 9
CRT Vectorial
Introducción 10
CRT Raster
Introducción 11
Más Monitores Raster
Panel de Plasma
Introducción 12
Rendering
Rendering
Escena 3D Imagen
• Escena:
• Modelo:
o Ensambles de primitivas
o Superficies: Color, Textura, Normales y Normales “truchas”
o Fondo o Ambiente
• Luces: Modelos de iluminación
• Cámara: Proyección
• Animación: sucesión de escenas.
• Imagen:
• Puede realizarse en varios medios (device independence)
• Vector: secuencia de comandos select_pen(1); goto (x,y); pen_down();...
• Raster: framebuffer (array de pixels) (W x H x C) (& cia.)
Introducción 13
Modelo: Constructive Solid Geometry (CSG)
Introducción 14
Modelo: Boundary Representation (BRep)
Introducción 15
Modelo: Level-Sets y Marching Cubes
Introducción 16
Modelo: Objetos Orgánicos (Metaballs)
Introducción 17
Modelo y Superficie
Introducción 18
Superficie: Textura
Introducción 19
Superficie: Imágenes y Normales
Textura
Decal (calcomanía)
Bump-Map
Introducción 20
Iluminación: Color
Introducción 21
Iluminación: Mezcla (Blending)
Introducción 22
Iluminación: Luz y Reflejos
Introducción 23
Iluminación Local
Modelo de Phong
Introducción 24
Iluminación Global
Ray Casting
Ray Tracing
Radiosity
Global
Photon Map
Introducción 25
Iluminación
Introducción 26
Non-Photorealistic Rendering (NPR)
Introducción 27
Rendering
Rendering
Escena 3D Imagen
• Escena:
• Modelo:
o Ensambles de primitivas
o Superficies: Color, Textura, Normales y Normales “truchas”
o Fondo o Ambiente
• Luces: Modelos de iluminación
• Cámara: Proyección
• Animación: sucesión de escenas.
• Imagen:
• Puede realizarse en varios medios (device independence)
• Vector: secuencia de comandos select_pen(1); goto (x,y); pen_down();...
• Raster: framebuffer (array de pixels) (W x H x C) (& cia.)
Introducción 28
Rendering
TRANSFORMACIONES
• Escena:
)
go 2
s)
(2D)
ale
• Modelo:
(ran
(du
o Ensambles de primitivas
o Superficies: Color, Textura, Normales y Normales “truchas”
o Fondo o Ambiente
• Luces: Modelos de iluminación
• Cámara: Proyección
• Animación: sucesión de escenas.
• Imagen:
• Puede realizarse en varios medios (device independence)
• Vector: secuencia de comandos select_pen(1); goto (x,y); pen_down();...
• Raster: framebuffer (array de pixels) (W x H x C) (& cia.)
Introducción 29
Sistemas de Coordenadas
L: Local M: Model
I: Image W: World
V: Viewer ND: Normalized Device
D: Device S: Screen
PS: Parameter Space
Introducción 30
Sistemas de Coordenadas
ND
Introducción 31
Rasterizado: Color, Z, y otros buffers
Introducción 32
Animación
Introducción 33
Pipeline
Rendering
•Vertex: Vecinos geométricos
Pipeline •Pixel: Vecinos gráficos
Introducción 34
Rendering Pipeline
Introducción 35
“Computer” Graphics
Introducción 36
“Computer” Graphics
API´s Gráficas
• OpenGL: Provee funciones para casi todo el pipeline y es soportado por casi
todos los sistemas operativos. Está implementado en hardware en casi todas
las placas gráficas (la GPU se encarga de hacer las operaciones).
• Direct3D: idem pero solo para Windows.
• X11, Postscript, PDF…. Solo 2D y por software.
• HPGL: caído en desuso, pero es un ejemplo de API vectorial.
Introducción 37
OpenGL, ¿Por que?
• ESTABLE
El trabajo hecho perdura y se puede reutilizar
¡Cuidado con las extensiones! (en lo posible no usar)
• PORTABLE
Exactamente el mismo código en cualquier sistema
• EFICIENTE
Casi todo el trabajo lo hace la GPU
Implementado en cualquier placa gráfica estándar
Aun por software es eficiente
• GRATUITO
OpenGL tiene copyright de Silicon Graphics
Pero hay implementaciones realmente libres (Mesa)
Introducción 38
Funcionamiento de OpenGL
• Máquina de Estados
• Procedural (Assembler de rutinas gráficas)
• OpenGL es un renderizador, no es modelador
ni GUI (Las bibliotecas asociadas GLU y GLUT
tienen algo de modelado y algo de GUI)
Introducción 39
OpenGL Utility Library (GLUT)
Introducción 40
Lineamientos de un programa gráfico
• Iluminación inicial
• loop de ejecución
• Dibujar
• Reaccionar a los eventos
• Alterar el contenido o los métodos
Introducción 41
Lineamientos de un programa gráfico
Crear ventanas
Definir callbacks
Inicializar OpenGL
Reaccionar a eventos
Actualizar variables
(animación)
Redibujar
Loop de Eventos
Introducción 42
Llamada Típica a Funciones del OpenGL
glAlgunaFuncion[234][dfis][v](.....);
Siempre Parámetros
Dimensión
Ejemplos:
glBegin(GL_LINE_LOOP);
glVertex3d(x,y,z);
...........
glEnd();
glLightfv(GL_LIGHT0,GL_POSITION,lpos);
Introducción 43
Secuencia típica de dibujo en OpenGL
Introducción 44
Rendering Pipeline (simplificada) de OpenGL
Introducción 45
Fin
Introducción 46