Computación Gráfica Unidad I: Introducción Docentes: Néstor Calvo Ángel Calegaris Walter Sotil...
-
Upload
eutimio-orantes -
Category
Documents
-
view
113 -
download
0
Transcript of Computación Gráfica Unidad I: Introducción Docentes: Néstor Calvo Ángel Calegaris Walter Sotil...
![Page 1: Computación Gráfica Unidad I: Introducción Docentes: Néstor Calvo Ángel Calegaris Walter Sotil 2008.](https://reader036.fdocument.pub/reader036/viewer/2022062303/551ce7625503463a7a8b4ead/html5/thumbnails/1.jpg)
Computación Gráfica
Unidad I: Introducción
Docentes:
Néstor CalvoÁngel Calegaris
Walter Sotil
2008
![Page 2: Computación Gráfica Unidad I: Introducción Docentes: Néstor Calvo Ángel Calegaris Walter Sotil 2008.](https://reader036.fdocument.pub/reader036/viewer/2022062303/551ce7625503463a7a8b4ead/html5/thumbnails/2.jpg)
Introducción 2
• No Es:• CAD• Arte• Animación• Visualización• Juegos
• Sí Es:• Geometría
o Espacioso Transformaciones
• Modeladoo Curvas, Superficies, Objetoso Iluminación, Texturas, Ambienteo Mecánica – Interacciones
• Programacióno C++ (lógica y flujo del programa)o OpenGL (presentación gráfica)o GLUT (interacción con el usuario)
Que sirve para hacer(no hacemos muebles, hacemos máquinas para hacer muebles)
Computación Gráfica
![Page 3: Computación Gráfica Unidad I: Introducción Docentes: Néstor Calvo Ángel Calegaris Walter Sotil 2008.](https://reader036.fdocument.pub/reader036/viewer/2022062303/551ce7625503463a7a8b4ead/html5/thumbnails/3.jpg)
Introducción 3
Información UsuarioComunicación
Procesamiento de la Información
Es una tecnología para presentar información en forma gráfica
ComputaciónGeometría Comunicación Gráfica
Computación Gráfica
Computación Gráfica
![Page 4: Computación Gráfica Unidad I: Introducción Docentes: Néstor Calvo Ángel Calegaris Walter Sotil 2008.](https://reader036.fdocument.pub/reader036/viewer/2022062303/551ce7625503463a7a8b4ead/html5/thumbnails/4.jpg)
Introducción 4
Sketchpad, Ivan Sutherland
Primeros Pasos
DAC-1, El primer CAD de IBM
Douglas Engelbart
1963!!
![Page 5: Computación Gráfica Unidad I: Introducción Docentes: Néstor Calvo Ángel Calegaris Walter Sotil 2008.](https://reader036.fdocument.pub/reader036/viewer/2022062303/551ce7625503463a7a8b4ead/html5/thumbnails/5.jpg)
Introducción 5
Hoy: Ciencia, Tecnología e Industria
![Page 6: Computación Gráfica Unidad I: Introducción Docentes: Néstor Calvo Ángel Calegaris Walter Sotil 2008.](https://reader036.fdocument.pub/reader036/viewer/2022062303/551ce7625503463a7a8b4ead/html5/thumbnails/6.jpg)
Introducción 6
Tendencias Futuro (??????????????)
![Page 7: Computación Gráfica Unidad I: Introducción Docentes: Néstor Calvo Ángel Calegaris Walter Sotil 2008.](https://reader036.fdocument.pub/reader036/viewer/2022062303/551ce7625503463a7a8b4ead/html5/thumbnails/7.jpg)
Introducción 7
Sistema Gráfico Básico
![Page 8: Computación Gráfica Unidad I: Introducción Docentes: Néstor Calvo Ángel Calegaris Walter Sotil 2008.](https://reader036.fdocument.pub/reader036/viewer/2022062303/551ce7625503463a7a8b4ead/html5/thumbnails/8.jpg)
Introducción 8
Es la transformación de una escena en una imagen
ImagenEscena 3DRendering
• Escena: • Modelo:
o Ensambles de primitivaso 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.)
Rendering
![Page 9: Computación Gráfica Unidad I: Introducción Docentes: Néstor Calvo Ángel Calegaris Walter Sotil 2008.](https://reader036.fdocument.pub/reader036/viewer/2022062303/551ce7625503463a7a8b4ead/html5/thumbnails/9.jpg)
Introducción 9
Tubo de Rayos Catódicos o CRT
![Page 10: Computación Gráfica Unidad I: Introducción Docentes: Néstor Calvo Ángel Calegaris Walter Sotil 2008.](https://reader036.fdocument.pub/reader036/viewer/2022062303/551ce7625503463a7a8b4ead/html5/thumbnails/10.jpg)
Introducción 10
CRT Vectorial
![Page 11: Computación Gráfica Unidad I: Introducción Docentes: Néstor Calvo Ángel Calegaris Walter Sotil 2008.](https://reader036.fdocument.pub/reader036/viewer/2022062303/551ce7625503463a7a8b4ead/html5/thumbnails/11.jpg)
Introducción 11
CRT Raster
![Page 12: Computación Gráfica Unidad I: Introducción Docentes: Néstor Calvo Ángel Calegaris Walter Sotil 2008.](https://reader036.fdocument.pub/reader036/viewer/2022062303/551ce7625503463a7a8b4ead/html5/thumbnails/12.jpg)
Introducción 12
Más Monitores Raster
Cristal Líquido (LCD)
Panel de Plasma
![Page 13: Computación Gráfica Unidad I: Introducción Docentes: Néstor Calvo Ángel Calegaris Walter Sotil 2008.](https://reader036.fdocument.pub/reader036/viewer/2022062303/551ce7625503463a7a8b4ead/html5/thumbnails/13.jpg)
Introducción 13
Es la transformación de una escena en una imagen
ImagenEscena 3DRendering
• Escena: • Modelo:
o Ensambles de primitivaso 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.)
Rendering
![Page 14: Computación Gráfica Unidad I: Introducción Docentes: Néstor Calvo Ángel Calegaris Walter Sotil 2008.](https://reader036.fdocument.pub/reader036/viewer/2022062303/551ce7625503463a7a8b4ead/html5/thumbnails/14.jpg)
Introducción 14
Modelo: Constructive Solid Geometry (CSG)
![Page 15: Computación Gráfica Unidad I: Introducción Docentes: Néstor Calvo Ángel Calegaris Walter Sotil 2008.](https://reader036.fdocument.pub/reader036/viewer/2022062303/551ce7625503463a7a8b4ead/html5/thumbnails/15.jpg)
Introducción 15
Modelo: Boundary Representation (BRep)
![Page 16: Computación Gráfica Unidad I: Introducción Docentes: Néstor Calvo Ángel Calegaris Walter Sotil 2008.](https://reader036.fdocument.pub/reader036/viewer/2022062303/551ce7625503463a7a8b4ead/html5/thumbnails/16.jpg)
Introducción 16
Modelo: Level-Sets y Marching Cubes
![Page 17: Computación Gráfica Unidad I: Introducción Docentes: Néstor Calvo Ángel Calegaris Walter Sotil 2008.](https://reader036.fdocument.pub/reader036/viewer/2022062303/551ce7625503463a7a8b4ead/html5/thumbnails/17.jpg)
Introducción 17
Modelo: Objetos Orgánicos (Metaballs)
![Page 18: Computación Gráfica Unidad I: Introducción Docentes: Néstor Calvo Ángel Calegaris Walter Sotil 2008.](https://reader036.fdocument.pub/reader036/viewer/2022062303/551ce7625503463a7a8b4ead/html5/thumbnails/18.jpg)
Introducción 18
Modelo y Superficie
![Page 19: Computación Gráfica Unidad I: Introducción Docentes: Néstor Calvo Ángel Calegaris Walter Sotil 2008.](https://reader036.fdocument.pub/reader036/viewer/2022062303/551ce7625503463a7a8b4ead/html5/thumbnails/19.jpg)
Introducción 19
Superficie: Textura
![Page 20: Computación Gráfica Unidad I: Introducción Docentes: Néstor Calvo Ángel Calegaris Walter Sotil 2008.](https://reader036.fdocument.pub/reader036/viewer/2022062303/551ce7625503463a7a8b4ead/html5/thumbnails/20.jpg)
Introducción 20
Bump-Map
TexturaDecal (calcomanía)
Bump Real Bump Falso
Superficie: Imágenes y Normales
![Page 21: Computación Gráfica Unidad I: Introducción Docentes: Néstor Calvo Ángel Calegaris Walter Sotil 2008.](https://reader036.fdocument.pub/reader036/viewer/2022062303/551ce7625503463a7a8b4ead/html5/thumbnails/21.jpg)
Introducción 21
• Color 24 BPP 3x1byte/píxel (0-255)• Escala de Grises (r=g=b=l) 256 colores 1byte/píxel luminancia=max(r,g,b)
Iluminación: Color
![Page 22: Computación Gráfica Unidad I: Introducción Docentes: Néstor Calvo Ángel Calegaris Walter Sotil 2008.](https://reader036.fdocument.pub/reader036/viewer/2022062303/551ce7625503463a7a8b4ead/html5/thumbnails/22.jpg)
Introducción 22
Iluminación: Mezcla (Blending)
![Page 23: Computación Gráfica Unidad I: Introducción Docentes: Néstor Calvo Ángel Calegaris Walter Sotil 2008.](https://reader036.fdocument.pub/reader036/viewer/2022062303/551ce7625503463a7a8b4ead/html5/thumbnails/23.jpg)
Introducción 23
Iluminación: Luz y Reflejos
![Page 24: Computación Gráfica Unidad I: Introducción Docentes: Néstor Calvo Ángel Calegaris Walter Sotil 2008.](https://reader036.fdocument.pub/reader036/viewer/2022062303/551ce7625503463a7a8b4ead/html5/thumbnails/24.jpg)
Introducción 24
Modelo de Phong
Iluminación Local
![Page 25: Computación Gráfica Unidad I: Introducción Docentes: Néstor Calvo Ángel Calegaris Walter Sotil 2008.](https://reader036.fdocument.pub/reader036/viewer/2022062303/551ce7625503463a7a8b4ead/html5/thumbnails/25.jpg)
Introducción 25
Ray CastingRay TracingRadiosityPhoton Map
Global
Iluminación Global
![Page 26: Computación Gráfica Unidad I: Introducción Docentes: Néstor Calvo Ángel Calegaris Walter Sotil 2008.](https://reader036.fdocument.pub/reader036/viewer/2022062303/551ce7625503463a7a8b4ead/html5/thumbnails/26.jpg)
Introducción 26
Bidirectional Reflectance Distribution Function
Iluminación
![Page 27: Computación Gráfica Unidad I: Introducción Docentes: Néstor Calvo Ángel Calegaris Walter Sotil 2008.](https://reader036.fdocument.pub/reader036/viewer/2022062303/551ce7625503463a7a8b4ead/html5/thumbnails/27.jpg)
Introducción 27
Non-Photorealistic Rendering (NPR)
![Page 28: Computación Gráfica Unidad I: Introducción Docentes: Néstor Calvo Ángel Calegaris Walter Sotil 2008.](https://reader036.fdocument.pub/reader036/viewer/2022062303/551ce7625503463a7a8b4ead/html5/thumbnails/28.jpg)
Introducción 28
Es la transformación de una escena en una imagen
ImagenEscena 3DRendering
• Escena: • Modelo:
o Ensambles de primitivaso 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.)
Rendering
![Page 29: Computación Gráfica Unidad I: Introducción Docentes: Néstor Calvo Ángel Calegaris Walter Sotil 2008.](https://reader036.fdocument.pub/reader036/viewer/2022062303/551ce7625503463a7a8b4ead/html5/thumbnails/29.jpg)
Introducción 29
Es la transformación de una escena en una imagen
• Escena: • Modelo:
o Ensambles de primitivaso 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.)
Rendering
TRANSFORMACIONES
(dua
les)
(ran
go 2
) (2D)
![Page 30: Computación Gráfica Unidad I: Introducción Docentes: Néstor Calvo Ángel Calegaris Walter Sotil 2008.](https://reader036.fdocument.pub/reader036/viewer/2022062303/551ce7625503463a7a8b4ead/html5/thumbnails/30.jpg)
Introducción 30
Ensamble: Primitivas (LCS) Modelo (MCS)Textura: Imagen (ICS) Superficie del modelo (PS: u,v)Escena: Modelos (MCS) Universo (WCS)Iluminación: Luces (LCS) Universo (WCS)Proyección: Universo (WCS) Observador (VCS)Normalización: Observador (VCS) Dispositivo Universal (NDCS)Rasterización: Dispositivo Universal (NDCS) Dispositivo (DCS) Pantalla (SCS) Imagen (ICS)
L: Local M: ModelI: Image W: WorldV: Viewer ND: Normalized DeviceD: Device S: ScreenPS: Parameter Space
Sistemas de Coordenadas
![Page 31: Computación Gráfica Unidad I: Introducción Docentes: Néstor Calvo Ángel Calegaris Walter Sotil 2008.](https://reader036.fdocument.pub/reader036/viewer/2022062303/551ce7625503463a7a8b4ead/html5/thumbnails/31.jpg)
Introducción 31
L
M
ND
V
Sistemas de Coordenadas
![Page 32: Computación Gráfica Unidad I: Introducción Docentes: Néstor Calvo Ángel Calegaris Walter Sotil 2008.](https://reader036.fdocument.pub/reader036/viewer/2022062303/551ce7625503463a7a8b4ead/html5/thumbnails/32.jpg)
Introducción 32
Color: Display (front, back, layers)Z o Depth: Oclusión de superficies.Stencil: Restricción del área de dibujo. Reflejos y Sombras.Accumulation: Movimiento, Antialiasing, Prof. de Campo.Stereo: Visión estereoscópica (left/right color buffers).
Rasterizado: Color, Z, y otros buffers
Framebuffer (memoria de video)
![Page 33: Computación Gráfica Unidad I: Introducción Docentes: Néstor Calvo Ángel Calegaris Walter Sotil 2008.](https://reader036.fdocument.pub/reader036/viewer/2022062303/551ce7625503463a7a8b4ead/html5/thumbnails/33.jpg)
Introducción 33
Animación
![Page 34: Computación Gráfica Unidad I: Introducción Docentes: Néstor Calvo Ángel Calegaris Walter Sotil 2008.](https://reader036.fdocument.pub/reader036/viewer/2022062303/551ce7625503463a7a8b4ead/html5/thumbnails/34.jpg)
Introducción 34
Rendering Pipeline
• Programa: La CPU, por si sola o interactuando con el usuario alimenta de datos al sistema geométrico
• Sistema Geométrico: recibe los datos y realiza las operaciones per-vertex sobre los objetos geométricos: transformaciones, clipping, iluminación. Suele estar acelerado por hardware (implementada en la GPU)
• Sistema Gráfico: Recibe los datos vectoriales proyectados (NDC) y con ellos procesa o arma los distintos buffers; realiza operaciones per-pixel como rasterizado, mapeo de la textura, alpha-blending (mezcla de capas) y z-buffering (ocultamiento de objetos) para luego enviar el framebuffer al dispositivo gráfico y, posiblemente, realimentar el programa. También suele estar implementado en la GPU
Pipeline
•Vertex: Vecinos geométricos•Pixel: Vecinos gráficos
![Page 35: Computación Gráfica Unidad I: Introducción Docentes: Néstor Calvo Ángel Calegaris Walter Sotil 2008.](https://reader036.fdocument.pub/reader036/viewer/2022062303/551ce7625503463a7a8b4ead/html5/thumbnails/35.jpg)
Introducción 35
Rendering Pipeline
![Page 36: Computación Gráfica Unidad I: Introducción Docentes: Néstor Calvo Ángel Calegaris Walter Sotil 2008.](https://reader036.fdocument.pub/reader036/viewer/2022062303/551ce7625503463a7a8b4ead/html5/thumbnails/36.jpg)
Introducción 36
API: Application Programming Interface Es un programa para programar. Provee piezas de alto nivel (lenguaje, bibliotecas) que se ensamblan para armar una aplicación.En otra acepción es una biblioteca de rutinas para interactuar con el hardware.
GUI: Graphical User InterfaceEs una biblioteca para programar la interacción del usuario con el programa mediante dispositivos de entrada y utilizando ventanas y otras metáforas gráficas. Normalmente proveen funciones tipo callback para reaccionar a la entrada de datos a través de:
• Teclado• Mouse: Botones y Cursor• Menú: texto, iconos• Widgets (artilugios) gráficos: slider, dial, cuadros de diálogo …• Otros: Joystick, Tablero Digitalizador, Trackball….
“Computer” Graphics
![Page 37: Computación Gráfica Unidad I: Introducción Docentes: Néstor Calvo Ángel Calegaris Walter Sotil 2008.](https://reader036.fdocument.pub/reader036/viewer/2022062303/551ce7625503463a7a8b4ead/html5/thumbnails/37.jpg)
Introducción 37
• 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.
API´s Gráficas
• AUX: para aprender OpenGL, excesivamente simple, ya no se utiliza.• GLUT: simple y estable, no cubre todas las necesidades.• QT, FLTK, wxWidgets… muy completas (hay que estudiar para usarlas)
GUI´s gratuitas con ventana OpenGL
“Computer” Graphics
![Page 38: Computación Gráfica Unidad I: Introducción Docentes: Néstor Calvo Ángel Calegaris Walter Sotil 2008.](https://reader036.fdocument.pub/reader036/viewer/2022062303/551ce7625503463a7a8b4ead/html5/thumbnails/38.jpg)
Introducción 38
• 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)
OpenGL, ¿Por que?
![Page 39: Computación Gráfica Unidad I: Introducción Docentes: Néstor Calvo Ángel Calegaris Walter Sotil 2008.](https://reader036.fdocument.pub/reader036/viewer/2022062303/551ce7625503463a7a8b4ead/html5/thumbnails/39.jpg)
Introducción 39
• 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)
Funcionamiento de OpenGL
![Page 40: Computación Gráfica Unidad I: Introducción Docentes: Néstor Calvo Ángel Calegaris Walter Sotil 2008.](https://reader036.fdocument.pub/reader036/viewer/2022062303/551ce7625503463a7a8b4ead/html5/thumbnails/40.jpg)
Introducción 40
• Abre ventanas de OpenGL• Callbacks para interacción con hardware
• Recibir input del teclado y mouse• Temporizador (idle callback)• Resize y Redraw (render)
• Menús (muy modestos)
• Estable, sencillo y eficiente
• No posee widgets (sliders, cuadros de diálogo)• No posee selector de archivos• No soporta la ruedita del ratón• No se actualiza desde hace mucho tiempo
OpenGL Utility Library (GLUT)
![Page 41: Computación Gráfica Unidad I: Introducción Docentes: Néstor Calvo Ángel Calegaris Walter Sotil 2008.](https://reader036.fdocument.pub/reader036/viewer/2022062303/551ce7625503463a7a8b4ead/html5/thumbnails/41.jpg)
Introducción 41
• Creación de la ventana de aplicación• Creación de ventanas de dibujo e interacción
• GUI:• Declaración de callbacks
• Funciones del mouse• Funciones de los menús• Funciones del teclado
• OpenGL:• Variables de estado usuales• Sistema de coordenadas estándar• Iluminación inicial • Cámara y sistema de proyección usual
• loop de ejecución• Dibujar• Reaccionar a los eventos • Alterar el contenido o los métodos
Lineamientos de un programa gráfico
![Page 42: Computación Gráfica Unidad I: Introducción Docentes: Néstor Calvo Ángel Calegaris Walter Sotil 2008.](https://reader036.fdocument.pub/reader036/viewer/2022062303/551ce7625503463a7a8b4ead/html5/thumbnails/42.jpg)
Introducción 42
Crear ventanasDefinir callbacks
Inicializar OpenGL
Reaccionar a eventos
Actualizar variables(animación)
RedibujarLoop de Eventos
Lineamientos de un programa gráfico
![Page 43: Computación Gráfica Unidad I: Introducción Docentes: Néstor Calvo Ángel Calegaris Walter Sotil 2008.](https://reader036.fdocument.pub/reader036/viewer/2022062303/551ce7625503463a7a8b4ead/html5/thumbnails/43.jpg)
Introducción 43
Siempre
Nombre
Dimensión
Tipo Puntero
Parámetros
Ejemplos: glBegin(GL_LINE_LOOP); glVertex3d(x,y,z); ........... glEnd(); glLightfv(GL_LIGHT0,GL_POSITION,lpos);
glAlgunaFuncion[234][dfis][v](.....);
Llamada Típica a Funciones del OpenGL
![Page 44: Computación Gráfica Unidad I: Introducción Docentes: Néstor Calvo Ángel Calegaris Walter Sotil 2008.](https://reader036.fdocument.pub/reader036/viewer/2022062303/551ce7625503463a7a8b4ead/html5/thumbnails/44.jpg)
Introducción 44
Avisar como se dibujan las cosas
Dibujar algunas cosas
Avisar como se dibujan las cosas
Dibujar algunas cosas
Secuencia típica de dibujo en OpenGL
![Page 45: Computación Gráfica Unidad I: Introducción Docentes: Néstor Calvo Ángel Calegaris Walter Sotil 2008.](https://reader036.fdocument.pub/reader036/viewer/2022062303/551ce7625503463a7a8b4ead/html5/thumbnails/45.jpg)
Introducción 45
Rendering Pipeline (simplificada) de OpenGL
![Page 46: Computación Gráfica Unidad I: Introducción Docentes: Néstor Calvo Ángel Calegaris Walter Sotil 2008.](https://reader036.fdocument.pub/reader036/viewer/2022062303/551ce7625503463a7a8b4ead/html5/thumbnails/46.jpg)
Introducción 46
Fin