La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Computación Gráfica Unidad I: Introducción Docentes: Néstor Calvo Ángel Calegaris Walter Sotil 2008.

Presentaciones similares


Presentación del tema: "Computación Gráfica Unidad I: Introducción Docentes: Néstor Calvo Ángel Calegaris Walter Sotil 2008."— Transcripción de la presentación:

1 Computación Gráfica Unidad I: Introducción Docentes: Néstor Calvo Ángel Calegaris Walter Sotil 2008

2 Introducción 2 No Es: CAD Arte Animación Visualización Juegos Sí Es: Geometría o Espacios o Transformaciones Modelado o Curvas, Superficies, Objetos o Iluminación, Texturas, Ambiente o Mecánica – Interacciones Programación o 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

3 Introducción 3 InformaciónUsuario Comunicación Procesamiento de la Información Es una tecnología para presentar información en forma gráfica ComputaciónGeometríaComunicación Gráfica Computación Gráfica

4 Introducción 4 Sketchpad, Ivan Sutherland Primeros Pasos DAC-1, El primer CAD de IBM Douglas Engelbart 1963! !

5 Introducción 5 Hoy: Ciencia, Tecnología e Industria

6 Introducción 6 Tendencias  Futuro (??????????????)

7 Introducción 7 Sistema Gráfico Básico

8 Introducción 8 Es la transformación de una escena en una imagen Imagen Escena 3D Rendering 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.) Rendering

9 Introducción 9 Tubo de Rayos Catódicos o CRT

10 Introducción 10 CRT Vectorial

11 Introducción 11 CRT Raster

12 Introducción 12 Más Monitores Raster Cristal Líquido (LCD) Panel de Plasma

13 Introducción 13 Es la transformación de una escena en una imagen Imagen Escena 3D Rendering 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.) Rendering

14 Introducción 14 Modelo: Constructive Solid Geometry (CSG)

15 Introducción 15 Modelo: Boundary Representation (BRep)

16 Introducción 16 Modelo: Level-Sets y Marching Cubes

17 Introducción 17 Modelo: Objetos Orgánicos (Metaballs)

18 Introducción 18 Modelo y Superficie

19 Introducción 19 Superficie: Textura

20 Introducción 20 Bump-Map Textura Decal (calcomanía) Bump RealBump Falso Superficie: Imágenes y Normales

21 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

22 Introducción 22 Iluminación: Mezcla (Blending)

23 Introducción 23 Iluminación: Luz y Reflejos

24 Introducción 24 Modelo de Phong Iluminación Local

25 Introducción 25 Ray Casting Ray Tracing Radiosity Photon Map Global Iluminación Global

26 Introducción 26 Bidirectional Reflectance Distribution Function Iluminación

27 Introducción 27 Non-Photorealistic Rendering (NPR)

28 Introducción 28 Es la transformación de una escena en una imagen Imagen Escena 3D Rendering 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.) Rendering

29 Introducción 29 Es la transformación de una escena en una 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.) Rendering TRANSFORMACIONES (duales) (rango 2) (2D)

30 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: Model I: Image W: World V: Viewer ND: Normalized Device D: Device S: Screen PS: Parameter Space Sistemas de Coordenadas

31 Introducción 31 L M ND V Sistemas de Coordenadas

32 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)

33 Introducción 33 Animación

34 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

35 Introducción 35 Rendering Pipeline

36 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 Interface Es 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

37 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

38 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?

39 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

40 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)

41 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

42 Introducción 42 Crear ventanas Definir callbacks Inicializar OpenGL Reaccionar a eventos Actualizar variables (animación) Redibujar Loop de Eventos Lineamientos de un programa gráfico

43 Introducción 43 Siempre Nombre Dimensión TipoPuntero 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

44 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

45 Introducción 45 Rendering Pipeline (simplificada) de OpenGL

46 Introducción 46 Fin


Descargar ppt "Computación Gráfica Unidad I: Introducción Docentes: Néstor Calvo Ángel Calegaris Walter Sotil 2008."

Presentaciones similares


Anuncios Google