Tema 1 Introducción. David Vallejo Fernández. Curso 2007/2008. Escuela Superior de Informática

Documentos relacionados
GRAPHICS PIPELINE. Computación Gráfica

El pipeline de visualización es el conjunto de

Tema 4: Viendo en 3D

Planificaciones Sistemas Gráficos. Docente responsable: ABBATE HORACIO ANTONIO. 1 de 5

INDICE 1. Introducción: Graficación por Computador 2. Programación en el Paquete SRGP 3. Algoritmos Básicos de Gráficos de Barrido para Dibujar

UNIVERSIDAD NACIONAL AUTÓNOMA DE MÉXICO FACULTAD DE ESTUDIOS SUPERIORES ACATLÁN LICENCIATURA EN MATEMÁTICAS APLICADAS Y COMPUTACIÓN

Computación Gráfica I CI4321

UNIVERSIDAD NACIONAL AUTÓNOMA DE MÉXICO FACULTAD DE INGENIERÍA PROGRAMA DE ESTUDIO

Planificaciones Sistemas Gráficos. Docente responsable: ABBATE HORACIO ANTONIO. 1 de 6

Prof. Alexandra La Cruz ld

PROGRAMA DE CURSO. CC1001 Computación I MA2601 Ecuaciones Diferenciales Ordinarias

UNIVERSIDAD CENTRAL FACULTAD DE INGENIERÍA

Volume Rendering. Francisco Morillo y Ciro Durán. 30 de noviembre de 2005

Historia de graficación

Santos Torres Fecha de elaboración: 28 de Mayo de 2010 Fecha de última actualización:

Graficación por Computadora

UNIVERSIDAD NACIONAL AUTÓNOMA DE MÉXICO FACULTAD DE ESTUDIOS SUPERIORES ACATLÁN HORAS SEMANA

Computación Gráfica = CG = Computer Graphics

GRAFICACIÓN Unidad III

Contenido. Capítulo 1. Introducción. 1. Capítulo 2. Programación en modo gráfico para Turbo C

Contenido. Aplicaciones de la infografía Arquitectura de un sistema gráfico. Modelo de Aplicación Programa de Aplicación Paquete Gráfico

INGENIERÍA INFORMÁTICA 1 INTRODUCCIÓN. Aplicaciones Evolución. Juegos por ordenador. Prof. Miguel Chover

Introducción a OpenGL Shading Language (GLSL)

Universidad Autónoma de Querétaro Facultad de Ingeniería. Curso de Verano: Computación. AutoCAD 2D, Sketch Up, 3D MAX, Photoshop

Introducción a la programación en OpenGL

Programa del Curso. Tema 1. Introducción a los Gráficos por Computador. Bibliografia Básica (6.5 horas).

7 Efectos. avanzados. Múltiples pasos de dibujo Algoritmos de varias pasadas Texturas múltiples Ejemplos de texturas múltiples. Prof.

C =[x 1,y 1,x 2,y 2,...,x n,y n ]

Representantes de la academia de sistemas y computación del I.T La Paz. Asignaturas Temas Asignaturas Temas

LABORATORIO COMPUTACIÓN GRAFICA

División Académica de Informática y Sistemas

INDICE 1. Objetivos y Procedimientos de las Gráficas por Computadoras 2. Sistemas de Gráficas por computadora: Componentes e interacción

1. Introducción a la Computación Gráca

Objetivos. Grafismo Electrónico. 1. Objetivos. José María López Valles Despacho 1.14 Ext.Tfno: 4816

PROGRAMA ANALÍTICO DE ASIGNATURA

Introducción Silvia Castro CG 2014

Métodos para detección de superficies visibles (Hearn-Baker)

Introducción a la programación en OpenGL

Mapeo de Texturas. Capitulo 9 de Angel

Asignaturas antecedentes y subsecuentes

CARTA DESCRIPTIVA (FORMATO MODELO EDUCATIVO UACJ VISIÓN 2020)

C =[x 1,y 1,x 2,y 2,...,x n,y n ]

Universidad Ricardo Palma

OpenGL 1. Visualización 3D. Cristina Cañero

CUDA + OpenGL. Alvaro Cuno 23/01/2010

GRAFICACIÓN. DES: Programa(s) Educativo(s): Tipo de materia: Clave de la materia: Semestre:

Tema 1: Modelado poligonal

Tópicos Selectos de Programación unidad 4. Librería de Interfaz Gráfica

Tema 1: Modelado poligonal

José Ribelles Septiembre - Diciembre de 2015

Animación 3D por Computador I

PLANIFICACIÓN DE LA DOCENCIA UNIVERSITARIA GUÍA DOCENTE

Lenguaje de Programación: C++ GLUT

Capítulo 1. Introducción

2. Tecnología de Soporte para la Arquitectura

UNIVERSIDAD DE GUADALAJARA

3ds Max Design Básico 2016

Visualización y Realismo: Problemas Capítulo 2

Determinación de Superficies Visibles

glclearcolor (1.0, 0.0, 0.0, 0.0); glclear(gl_color_buffer_bit GL_DEPTH_BUFFER_BIT);

INDICE Prefacio 1 Un estudio de las graficas por computadora 2 Panorama general de los sistemas de gráficas 3 Primitivos de salida

G - Gráficos

The Universe Generator System

El pipeline gráfico Figura 3.1

Desarrollo de un interfaz inmersivo para un simulador de conducción de automóviles

Taller # 1 (OpenGL/GLUT)

Optimización de la eficiencia. Visualización II

Tema 7: Proceso de Imágenes

Introducción a 3D Transformaciones 3D

GPU - Procesadores de vértices

UNIVERSIDAD NACIONAL ABIERTA VICERRECTORADO ACADÉMICO ÁREA INGENIERÍA CARRERA INGENIERÍA DE SISTEMAS MODELO DE RESPUESTA

Superficies Visibles. Dpto. de Informática Fac. Cs. Físico-Mat. y Nat. Universidad Nacional De San Luis Argentina

Introducción a la programación en OpenGL

GUÍA DOCENTE DE LA ASIGNATURA

Síntesis y visualización interactiva de texturas con relieve. Resumen. 5 de noviembre de 2003

Computación Gráfica: visión general y conceptos

Guía docente de la asignatura

Lenguaje de Programación: C++ GLUT (como instalarlo)

Tema 2: Modelado. J.Ribelles. SIE020: Síntesis de Imagen y Animación Institute of New Imaging Technologies, Universitat Jaume I

GUÍA DE APRENDIZAJE GRAFICOS POR COMPUTADOR

Nuestro entorno de programación debe darnos una interfaz para llamar a OpenGL desde nuestro código

Desarrollo de un Prototipo de Librería Gráfica para las etapas de

Requisitos. Conceptos de graficación en 3D:

Algoritmos de Visibilidad

Tema 12. El Hardware de la Realidad Virtual

Una Aplicación Informática para la Enseñanza de las Transformaciones Geométricas 3D

Tema 2. Dibujando en el espacio

UNIVERSIDAD DE CHILE FACULTAD DE CIENCIAS FÍSICAS Y MATEMÁTICAS DEPARTAMENTO DE CIENCIAS DE LA COMPUTACIÓN

; ; ;

2. Indica cuál de las siguientes afirmaciones es cierta:

VIDEOJUEGOS 2 Iluminación

MODELADO DE OBJETOS 3D. Computación Gráfica

ANEXO XVII DE LA RESOLUCION N

º 5.3 ADAPTADORES DE VIDEO

CONCLUSIONES Y RECOMENDACIONES

9. Adaptación a la Geometría en Pantalla

Transcripción:

Tema 1 Introducción David Vallejo Fernández Curso 2007/2008 Escuela Superior de Informática

Índice de contenidos 1.Computer Graphics. 2.Principales aplicaciones. 3.APIs gráficas. 4.. 5.Resumen. 2

1 Computer Graphics 3

Computer Graphics Computer Graphics: término que describe cualquier uso de computadores para crear o manipular imágenes. Requisitos: HW específico. Formatos gráficos. APIs de programación. 4

Computer Graphics Principales áreas: Modelado: manejo de especificaciones matemáticas de formas (y sus propiedades) representables en computadores. Rendering: creación de imágenes a partir de las descripciones de modelos 3D. Animación: creación de una ilusión de movimiento a través de secuencias de imágenes (Modelado + rendering a lo largo del tiempo). 5

Computer Graphics Modelado 6

Computer Graphics Rendering 7

Computer Graphics Otras áreas... Interacción con el usuario. Realidad virtual. Procesamiento de imágenes. Escaneo 3D. 8

2 Principales aplicaciones 9

Principales aplicaciones Videojuegos. Dibujos animados. Efectos especiales. CAD. Simulación. Medicina. 10

Principales aplicaciones Animatrix (Hermanos Wachowski) -2003 Shenmue (Yu Suzuki) - 2000 Gollum (J. R. R. Tolkien) -1954 11

3 APIs gráficas 12

APIs gráficas API: interfaz software que proporciona un modelo sobre cómo un programa puede acceder a la funcionalidad del sistema. Ej: dibujar una imagen en una ventana. interface Agent { idempotent void setstate(estate state); idempotent EState getstate(); void inform(agent* proxy, ServiceDescriptionSeq services); ["ami"] void receivemessage(aclrepresentation encoding, Payload content); void destroy(); }; 13

APIs gráficas Dos temas clave al tratar con gráficos. Tratar con llamadas gráficas. Ej: dibujar un triángulo. glbegin(gl_polygon); glvertex2f(0.0, 0.0); glvertex2f(0.0, 3.0); glvertex2f(4.0, 3.0); glvertex2f(6.0, 1.5); glvertex2f(4.0, 0.0); glend(); Tratar con interacciones del usuario. Ej: presionar un botón. void glutkeyboardfunc( void (*func)(unsigned char key, int x, int y)); 14

APIs gráficas Retrollamadas (callbacks). Código que se pasa como argumento a otro código. Ej: contenido de una ventana a mostrar. void glutdisplayfunc(void (*func)(void)); void display (void) { // Dibujar. // Dibujar más. }... int main (int argc, char **argv) { // Inicialización. glutdisplayfunc(display); // Finalización. return 0; } 15

APIs gráficas Dos paradigmas predominantes. Java. Herramientas para gráficos e interfaces de usuarios integradas. Paquetes portables estandarizados y soportados como parte del lenguaje. java.lang.object extended byjava.awt.component extended byjava.awt.container extended byjavax.swing.jcomponent extended byjavax.swing.abstractbutton extended byjavax.swing.jbutton 16

APIs gráficos Dos paradigmas predominantes. Direct3D y OpenGL. Los comandos gráficos forman parte de una biblioteca software ligada a un lenguaje. El software de la interfaz de usuario es una entidad independiente que puede cambiar de un sistema a otro. La portabilidad puede suponer un problema. 17

4 18

El pipeline es el motor capaz de crear imágenes a partir de escenas 3D. Principal función: generar (renderizar) una imagen 2D a partir de... Cámara virtual. Objetos tridimensionales. Fuentes de luz. Modelos de luz. Texturas.... 19

Tres etapas conceptuales: Aplicación. Geometría. Rasterización. 20

Aplicación: Implementada en SW. Detección de colisiones, algoritmos de aceleración, animaciones... Geometría: Implementada en SW o HW. Trata con transformaciones, proyecciones... Qué ha de dibujarse? Cómo? Dónde? Rasterización: Dibujar (renderizar) la imagen final. 21

Ejecutada en la CPU. Implica que el programador tiene el control. Ejemplos. Detección de colisiones. Técnicas de aceleración. Animación. Tarea más importante. Enviar las primitivas de renderizado (puntos, líneas y triángulos) al hardware gráfico. 22

Detección de colisiones. Generación de una respuesta a los objetos. Posible dispositivo de retroalimentación. Gestión de otros dispositivos. Ante una colisión entre dos objetos... Teclado, ratón, casco de realidad virtual... Otros procesos... Animación de texturas. Algoritmos de aceleración. 23

Responsable de la mayoría de operaciones a nivel de polígono o de vértice. División funcional. Puede o no haber equivalencia con etapas de un pipeline (implementación). Etapa de alto cómputo. En torno a 100 operaciones PF por vértice. 24

Qué ocurre en esta etapa? Movimiento de objetos. Movimiento de cámara. Calculo de la luz en los vértices de un triángulo. Proyecciones en la pantalla (3D a 2D). Clipping. Traslación a la pantalla. 25

Objetivo: asignar los colores correctos a los píxeles para renderizar una escena correctamente. Toma la salida de la etapa de geometría. Añade texturas y otras operaciones por píxel. 26

En resumen... El programador envía primitivas a renderizar a través del pipeline (uso de APIs). La etapa de geometría lleva a cabo las operaciones a nivel de vértice. La etapa de rasterización lleva a cabo las operaciones a nivel de píxel. 27

Originalmente, un modelo reside en su propio espacio. Cada modelo tiene asociado una transformación (matriz 4x4). Distintas transformaciones (localización, orientación, tamaño...) con el mismo modelo. Coordenadas del modelo --> Espacio global de 28 coordenadas.

Para facilitar la proyección y el clipping, la cámara y los modelos se transforman con la transformación de vista (matriz 4x4). z x 29

Color (o textura) asociada a cada vértice. Calculado en función de... Localización y propiedades de las fuentes de luz. Posición y vector normal del vértice. Propiedades del material perteneciente al vértice. 30

Simular el comportamiento real de la luz. Técnicas de interpolación (Gouraud shading). Más efectos de luz (pixel shading). 31

Dos métodos: Ortogonal (poco usado). Perspectiva (más común). 32

Perspectiva... A mayor distancia, menor tamaño. Simula cómo percibimos el tamaño de los objetos. Uso de matrices 4x4 (de nuevo). Modelos en un espacio de coordenadas normalizado. 33

Recorta las primitivas en relación al cubo obtenido de la proyección. 34

Las coordenadas x e y de cada primitiva se transforman en coordenadas de pantalla. Operación de escalado. Dichas coordenadas, más la z, pasan a la etapa de rasterización. 35

36

Objetivo: asignar los colores correctos a los píxeles para renderizar una escena correctamente. Scan conversion. Texturizado. Interpolación sobre un triángulo. Z-buffering. Double buffering.... 37

Scan conversion. Vértices de los triángulos como entrada de la etapa de geometría. Conversión de vértices bidimensionales en píxeles. Operación a nivel de píxel sobre dichos píxeles: Interpolación. Texturizado. Z-buffering.... 38

Texturizado. Pegar imágenes sobre objetos geométricos. Usos y otras aplicaciones. Más realismo. Bump mapping. Store lighting.... 39

Interpolación. De colores sobre el triángulo. Interpolación Gouraud. 40

Z-buffering. El HW gráfico sólo pinta triángulos. Sin embargo, un triángulo cubierto por otro más cercano no debería ser visible. Renderizado en orden? 41

Z-buffering. Soluciona el problema del orden. Almacena la coordenada z (profundidad) de cada píxel (depth buffer). Cuando se trata con un triángulo, se calcula la coordenada z de cada píxel del triángulo. Comparación de z con el valor z del Z-buffer. Si z es menor que el z del Z-buffer... Si no... Actualizar el valor del Z-buffer y del color buffer. No hacer nada. Se puede renderizar en casi cualquier orden. 42

Double buffering. El monitor muestra una imagen en un momento. Efecto pop up (siguiente imagen a mostrar). Dos buffers: Front buffer (el mostrado). Back buffer (el renderizado). Swap entre buffers. 43

Aplicación: Implementada en SW. Detección de colisiones, algoritmos de aceleración, animaciones... Geometría: Implementada en SW o HW. Trata con transformaciones, proyecciones... Qué ha de dibujarse? Cómo? Dónde? Rasterización: Dibujar (renderizar) la imagen final. 44

5 Resumen 45

Resumen Importancia de la informática gráfica. APIs gráficas. Gran cantidad de aplicaciones. Dos paradigmas.. Núcleo del rendering en tiempo real. 46

Resumen Referencias. Fundamentals of Computer Graphics (2nd Ed). Real-Time Rendering (2nd Ed). Capítulo 1. Introduction. Capítulo 2. The graphics rendering pipeline. Transparencias Tomas Akenine-Moller. http://www.realtimerendering.com. 47