Computacin Grfica Unidad I Introduccin Docentes Nstor Calvo
- Slides: 46
Computación Gráfica Unidad I: Introducción Docentes: Néstor Calvo Ángel Calegaris Walter Sotil 2008 TEMA
Computación Gráfica • No Es: • CAD • Arte • Animación • Visualización • Juegos • Sí Es: • Geometría o o Espacios 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 Open. GL (presentación gráfica) o GLUT (interacción con el usuario) Que sirve para hacer (no hacemos muebles, hacemos máquinas para hacer muebles) Introducción 2
Computación Gráfica Es una tecnología para presentar información en forma gráfica Información Comunicación Usuario Procesamiento de la Información Computación Gráfica Geometría Computación Comunicación Gráfica Introducción 3
Primeros Pasos DAC-1, El primer CAD de IBM Sketchpad, Ivan Sutherland 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 Es la transformación de una escena en una imagen Escena 3 D Rendering Imagen • Escena: • Modelo: o o o Ensambles de primitivas Superficies: Color, Textura, Normales y Normales “truchas” 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 Cristal Líquido (LCD) Panel de Plasma Introducción 12
Rendering Es la transformación de una escena en una imagen Escena 3 D Rendering Imagen • Escena: • Modelo: o o o Ensambles de primitivas Superficies: Color, Textura, Normales y Normales “truchas” 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 Bump Real Bump Falso Introducción 20
Iluminación: Color • Color 24 BPP 3 x 1 byte/píxel (0 -255) • Escala de Grises (r=g=b=l) 256 colores 1 byte/píxel luminancia=max(r, g, b) 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 Photon Map Global Introducción 25
Iluminación Bidirectional Reflectance Distribution Function Introducción 26
Non-Photorealistic Rendering(NPR) Introducción 27
Rendering Es la transformación de una escena en una imagen Escena 3 D Rendering Imagen • Escena: • Modelo: o o o Ensambles de primitivas Superficies: Color, Textura, Normales y Normales “truchas” 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 Es la transformación de una escena en una imagen o o go 2 (ran s) ale (du o (2 D) • Escena: • Modelo: ) TRANSFORMACIONES Ensambles de primitivas Superficies: Color, Textura, Normales y Normales “truchas” 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 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 Introducción 30
Sistemas de Coordenadas L M ND V Introducción 31
Rasterizado: Color, Z, y otros buffers Framebuffer (memoria de video) 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). Introducción 32
Animación Introducción 33
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 Rendering Pipeline • Vertex: Vecinos geométricos • Pixel: Vecinos gráficos Introducción 34
Rendering. Pipeline Introducción 35
“Computer ” Graphics 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…. Introducción 36
“Computer ” Graphics API´s Gráficas • Open. GL: 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). • Direct 3 D: idem pero solo para Windows. • X 11, Postscript, PDF…. Solo 2 D y por software. • HPGL: caído en desuso, pero es un ejemplo de API vectorial. GUI´s gratuitas con ventana Open. GL • AUX: para aprender Open. GL, excesivamente simple, ya no se utiliza. • GLUT: simple y estable, no cubre todas las necesidades. • QT, FLTK, wx. Widgets… muy completas (hay que estudiar para usarlas) Introducción 37
Open. GL, ¿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 Open. GL tiene copyright de Silicon Graphics Pero hay implementaciones realmente libres (Mesa) Introducción 38
Funcionamiento de Open. GL • Máquina de Estados • Procedural (Assembler de rutinas gráficas) • Open. GL 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
Open. GLUtility. Library(GLUT) • Abre ventanas de Open. GL • 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 No posee widgets (sliders, cuadros de diálogo) posee selector de archivos soporta la ruedita del ratón se actualiza desde hace mucho tiempo Introducción 40
Lineamientos de un programa gráfico • 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 • Open. GL: • 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 Introducción 41
Lineamientos de un programa gráfico Crear ventanas Definir callbacks Inicializar Open. GL Reaccionar a eventos Actualizar variables (animación) Redibujar Loop de Eventos Introducción 42
Llamada Típica a Funciones del Open. GL gl. Alguna. Funcion[234][dfis][v](. . . ); Parámetros Siempre Nombre Tipo Puntero Dimensión Ejemplos: gl. Begin(GL_LINE_LOOP); gl. Vertex 3 d(x, y, z); . . . gl. End(); gl. Lightfv(GL_LIGHT 0, GL_POSITION, lpos); Introducción 43
Secuencia típica de dibujo en Open. GL Avisar como se dibujan las cosas Dibujar algunas cosas Introducción 44
Rendering. Pipeline(simplificada) de Open. GL Introducción 45
Fin Introducción 46
- Grficas
- Primer segundo tercer y cuarto cuadrante
- Grfica
- Computacin
- Computacin
- Computacin
- Computacin
- Introduccin
- Introduccin
- Introduccin
- Introduccin
- Introduccin
- Que diferencia hay entre filosofia y ciencia
- Centenas decenas y unidades
- Faltas y sanciones del magisterio boliviano
- Cosdac perfiles docentes
- Estrategias de trabajo colaborativo entre docentes
- Como se calculan los bienios en la carrera docente
- Contribuciones docentes 1278
- Sad jose c paz actos publicos
- Docentes.sea.edu.uy
- Competencias comportamentales docentes
- Docentes y discentes
- Dimensiones compartidas de la profesión docente
- Maurice tardif
- Docentes conectados
- Estrategias de trabajo colaborativo entre docentes
- Javier calvo height
- Libardo calvo
- Sergio hoyas calvo
- Francisco rubiales
- La dissoluzione dell'impero carolingio
- Albedo calvo
- Alberto lorenzo calvo
- Fuerza en el baloncesto
- Kobetsu kaizen
- Jos l.
- Ainhoa calvo actriz
- Dr. javier e. calvo
- Ainhoa calvo
- Alvaro fernandez calvo
- Unidades de medida bit
- Partes de un transformador
- Porcentaje de electronegatividad
- Unidad 5
- Unidad de medida de densidad
- Avancemos 3 unidad 5 leccion 2