Tema 6: Realismo Visual

Documentos relacionados
Tema 7: Realismo Visual

Tema 8: Realismo Visual

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

Tema 4: Modelos de Iluminación y Sombreado 1

Tema 4: Modelos de Iluminación y Sombreado 1

Sombreado Diferido (Deferred Shading) Héctor Barreiro Cabrera

Tema 4: Viendo en 3D

Tema 1: Modelado poligonal

Tema 9: Texturas Avanzadas

VIDEOJUEGOS 2 Iluminación

Tema 1: Modelado poligonal

Tema 6: Aplicación de Texturas 2D

El pipeline de visualización es el conjunto de

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

El proceso de iluminación

Tema 5: Modelos de Iluminación y Sombreado

6.1 Una primera aplicación de los cuaternios: rotación de un cuerpo rígido

Propiedades y Limitaciones del Kinect

Iluminación en GPU. Prof. Esmitt Ramírez Marzo 2011

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

Integración con Rhino V-Ray para Rhino 1.5 compatible con la versión de 32 bits de Rhino 4.0 y las versiones de 32 y 64 bits de Rhino 5.0.

Sistema de Coordenadas Personales

Contenido Semana 2 (Apropiándonos de AutoCAD 3D)

Técnicas de Iluminación empleando shaders. Prof. Esmitt Ramírez J. Septiembre 2010

LUZ Y ÓPTICA. Propagación de la luz

Técnicas avanzadas basadas en trazado de rayos

GPU - Procesadores de vértices

ILUMINACION. La luz puede ser: NATURAL EL SOL ARTIFICIAL LAMPARAS ELECTRICAS (FLASH) LUZ AMBIENTE MEZCLA DE NATURAL Y ARTIFICIAL

Visualización y Realismo: Problemas Capítulo 2

Introducción a OpenGL Shading Language (GLSL)

MAPEO DE FOTONES PHOTON MAPPING

Contenido GPU (I) Introducción Sombreadores. Operadores. Vértice Píxel Geometría. Textura Raster HDR

Seminario de Física. 2º bachillerato LOGSE. Unidad 6. Óptica

Mapping de texturas. Víctor Theoktisto

Vamos a crear una nueva imagen en GIMP. Para ello accedemos en la barra de menús de la Caja de Herramientas a archivo > nuevo.

Tema 1. Elementos de un sistema de Visión por Computador. Esquema general de un sistema de visión por computador

CREAR UNA COLINA USANDO LOS GRADIENTES DE ADOBE ILLUSTRATOR

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

Lenguaje de Programación: C++ GLUTIluminación

Gráficos tridimensionales

Detección de Colisiones. Héctor Navarro

Requisitos. Conceptos de graficación en 3D:

Tema 3: Transformaciones Geométricas

Crear un tipo de etiqueta editable cosido Tratamiento

Modelación de objetos 3D Parte I: Mallas de polígonos y triangulaciones

FACULTAD DE INGENIERÍA - DEPARTAMENTO DE FÍSICA FÍSICA II-2018 ESPECIALIDADES: BIOINGENIERÍA-CIVIL-QUÍMICA-ALIMENTOS

CURSO DE FÍSICA 1º BACHILLERATO ÓPTICA GEOMÉTRICA

Rendering no fotorrealista

Graficación. Ray-Casting. Ray-Casting Seudo-Algoritmo. Intersección con la esfera. Rayos. Trazado de Rayos de Luz

Problemas de Óptica. PAU (PAEG)

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

so de Photoshop Cur Copyleft - Jorge Sánchez 2006

INTRODUCCIÓN DEL TEMA 2 ESPACIOS VECTORIALES

Árbol Binario. Manual de usuario

Unidad Didáctica 5. La Forma en el Espacio

Óptica Geométrica. Los medios materiales pueden ser: Transparentes Opacos Translúcidos

Material extraído del libro La iluminación en Video y Cine de Albert Vidal. Profesora Silvia Rostán

TEHUACÁN EMEC 308 DESARROLLO DE DIBUJO ASISTIDO POR COMPUTADORA Tercera parte

LA LUZ. 1.- Qué es la luz?

GUÍA 6. Creando. materiales. Diseño digital IV Autodesk Maya

1. Un faro sumergido en un lago dirige un haz de luz hacia la superficie del lago con î = 40º

1. Espejo plano. Si usted se aleja corriendo de un espejo plano a 2,40 m/s, con qué rapidez se aleja de usted su imagen?

Guía Óptica. Área de Físico-Química. 4to año 2016

ESCUELA SUPERIOR POLITÉCNICA DEL LITORAL INSTITUTO DE CIENCIAS FÍSICAS II TÉRMINO PRIMERA EVALUACIÓN DE FÍSICA D.

JUNIO 2000 (CUESTIONES)...

13. Por qué no se observa dispersión cuando la luz blanca atraviesa una lámina de vidrio de caras planas y paralelas? 14. Sobre una lámina de vidrio,

Modelo de negocio para mi Tienda web

Computación Gráfica. Unidad IV: Modelado de la terminación superficial. Docentes: Néstor Calvo Ángel Calegaris Walter Sotil

Programación de Videojuegos Tema 15 Tipos de Dato I. 15. Tipos de Dato I

ÓPTICA GEOMÉTRICA. Teniendo en cuenta que se trata de ángulos paraxiales, la expresión se puede simplificar a: En el triángulo APC:

Ejercicio 1 - La primera imagen

Física basada en Álgebra

Problemas de Óptica. PAU (PAEG)

HERRAMIENTAS INTERACTIVAS: DISEÑO Y MAQUETACIÓN DE AVISOS PUBLICITARIOS. Sombra Interactiva

Grafismo Electrónico Tema 3. fi Analizar los elementos disponibles para la configuración de una escena tridimensional

Visión por Computador: Introducción

Técnicas de inteligencia artificial. Visión Artificial Visión 3D

MODELOS DE KRIPKE. Lógicas para la Informática y la Inteligencia Artificial

Paso 1. Icono medidor de carga.

2- Describa y deduzca las expresiones matemáticas correspondientes al experimento de la doble rendija de Young.

Universidad Autónoma de Madrid Probabilidad y Estadística

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

Transcripción:

Tema 6: Realismo Visual José Ribelles VJ1221 Informática Gráfica Departamento de Lenguajes y Sistemas Informáticos, Universitat Jaume I Tema 6: Realismo Visual 1

Contenido 1 Introducción 2 Transparencia 3 Sombras Sombras proyectivas Shadow Mapping Shadow Mapping 4 Espejos 5 Ambient occlusion Tema 6: Realismo Visual 2

Hoy veremos... 1 Introducción 2 Transparencia 3 Sombras 4 Espejos 5 Ambient occlusion Introducción Tema 6: Realismo Visual 3

Introducción Qué podemos hacer aún para mejorar la calidad visual? Introducción Tema 6: Realismo Visual 4

Hoy veremos... 1 Introducción 2 Transparencia 3 Sombras 4 Espejos 5 Ambient occlusion Transparencia Tema 6: Realismo Visual 5

Transparencia Descripción Los objetos transparentes son muy habituales. Es un problema complejo. Suelen ir asociados con un efecto de refracción de la luz (agua, vidrio, etc.). Pueden cambiar el color de la luz al atravesarlos. Transparencia Tema 6: Realismo Visual 6

Transparencia Qué podemos hacer nosotros? Nos vamos a centrar en el caso de objetos trasparentes: delgados, con superficies muy finas, y en cómo afectan a los objetos que se ven a través de ellos. Es simplificar mucho el problema? Sin duda, pero aún así la ganancia visual que vamos a obtener va a ser muy alta. Aleksandar Rodic, http://aleksandarrodic.com/p/jellyfish/ Transparencia Tema 6: Realismo Visual 7

Transparencia Cómo procedemos? Si hay algún objeto trasparente, el color de los píxeles cubiertos por dicho objeto depende de sus propiedades y las de los objetos que hayan detrás de él. Hay que mezclar el color del objeto transparente con lo que haya detrás. Alpha Blending: el grado de trasparencia se suministra a la GPU como cuarta componente en las propiedades de material, conocida como componente alpha. Si alpha es 1 el objeto es totalmente opaco, y 0 significa que es trasparente: C final = alpha C fragment + (1 alpha) C framebuffer (1) Para que esto funcione, hay que dibujar en primer lugar los objetos que sean opacos para después dibujar los trasparentes. Transparencia Tema 6: Realismo Visual 8

Ejemplo de transparencia Alpha: 0.3, 0.5, 0.7 Transparencia Tema 6: Realismo Visual 9

Transparencia Y si se ve un objeto transparente a través de otro transparente? El resultado depende del orden. Hay que pintar de atrás hacia delante los objetos transparentes. Y desactivar la actualización del buffer de profundidad. Transparencia Tema 6: Realismo Visual 10

Transparencia Y qué pasa con los objetos cerrados? Deberían verse las caras traseras? Tenemos tres posibilidades No hacer nada (izqda). Que se eliminen las caras traseras (centro). Que se eliminen las caras delanteras, pintar, que se eliminen las caras traseras y pintar de nuevo (derecha). Transparencia Tema 6: Realismo Visual 11

Transparencias con WebGL Listado 1: Objetos transparentes // Primero p i n t a r l o s o b j e t o s opacos.... // Despues l o s t r a n s p a r e n t e s g l. blendfunc ( g l. SRC ALPHA, g l. ONE MINUS SRC ALPHA) ; // o p e r a d o r o v e r g l. e n a b l e ( g l. BLEND) ; // h a b i l i t a l a t r a n s p a r e n c i a g l. e n a b l e ( g l. CULL FACE ) ; // h a b i l i t a e l f a c e c u l l i n g g l. d i s a b l e ( g l. DEPTH TEST) ; g l. c u l l F a c e ( g l.front) ; // s e e l i m i n a r a n l o s t r i a n g u l o s c a r a a l o b s e r v a d o r drawsolid ( examplecube ) ; // s e han o m i t i d o s u s t r a n s f o r m a c i o n e s por c l a r i d a d g l. c u l l F a c e ( g l.back) ; // s e e l i m i n a r a n l o s t r i a n g u l o s de l a p a r t e t r a s e r a d e l o b j e t o drawsolid ( examplecube ) ; g l. d i s a b l e ( g l. CULL FACE ) ; g l. d i s a b l e ( g l. BLEND) ; g l. e n a b l e ( g l. DEPTH TEST) ; Transparencia Tema 6: Realismo Visual 12

WebGL, dónde ocurren las cosas? Transparencia Tema 6: Realismo Visual 13

Transparencia Algunas pegas... La ordenación no siempre es trivial, por ejemplo, si un objeto transparente cruza a otro transparente... Hay soluciones más complejas, pero también mucho más caras y no libres de problemas. No es un tema resuelto completamente en la GPU. Transparencia Tema 6: Realismo Visual 14

Hoy veremos... 1 Introducción 2 Transparencia 3 Sombras Sombras proyectivas Shadow Mapping Shadow Mapping 4 Espejos 5 Ambient occlusion Sombras Tema 6: Realismo Visual 15

Sombras Introducción La ausencia de sombras en la escena es algo que, además de incidir negativamente en el realismo visual de la imagen sintética, nos dificulta de manera importante su comprensión. Prácticamente cualquier método que nos permita añadir sombras, por sencillo que sea, puede ser más que suficiente para aumentar el realismo y que el usuario se sienta cómodo al observar el mundo 3D. Sombras Tema 6: Realismo Visual 16

Introduccio n Transparencia Sombras Espejos Ambient occlusion Sombras proyectivas Descripcio n Consiste en obtener la proyeccio n del objeto situando la ca mara en el punto de luz y estableciendo como plano de proyeccio n aquel en el que queramos que aparezca su sombra. El resultado de la proyeccio n, al que llamamos objeto sombra, se dibuja como un elemento ma s de la escena pero sin propiedades de material ni iluminacio n, simplemente de color oscuro. Sombras Tema 6: Realismo Visual 17

Sombras proyectivas Dada una fuente de luz, L P, y un plano de proyección, N x + d = 0, la matriz de proyección M es la siguiente. N L P + d L Px N x L Px N y L Px N z L Px d M = L Py N x N L P + d L Py N y L Py N z L Py d L Pz N x L Pz N y N L P + d L Pz N z L Pz d N x N y N z N L P (2) Sombras Tema 6: Realismo Visual 18

Sombras proyectivas Este método presenta una serie de problemas Hay que controlar que el objeto sombra no vaya más allá de la superficie sobre la que recae, por ejemplo, usando el buffer de plantilla. Las sombras son muy oscuras, pero utilizando trasparencia se puede conseguir un resultado mucho más agradable al dejar entrever el plano sobre el que se asientan. Muy complicado para superficies curvas o sombras de un objeto sobre él mismo. Como el objeto sombra es coplanar con el plano que se ha utilizado para el cálculo de la proyección, habría que añadir un pequeño desplazamiento a uno de ellos para evitar el efecto conocido como stitching. WebGL proporciona la orden gl.polygonoffset para especificar el desplazamiento que se sumará a la profundidad de cada fagmento siempre y cuando se haya habilitado con gl.enable(gl.polygon OFFSET FILL). Sombras Tema 6: Realismo Visual 19

Shadow Mapping Descripción Dibujar la escena desde el punto de luz. Lo que la luz ve es lo que se ilumina. Si la luz no ve la superficie, es que está en sombra. La profundidad se almacena en una textura. La escena se vuelve a dibujar desde el punto de vista de la cámara y se consulta la textura para saber si está o no en sombra. Sombras Tema 6: Realismo Visual 20

Almacena el buffer de profundidad en una textura Framebuffer Object Un FBO permite crear framebuffers definidos por el usuario. La GPU puede dibujar pero su contenido no aparece en pantalla (off-screen rendering). Necesitas crear un buffer para almacenar la profundidad al pintar la escena. Y crear un objeto textura. Al dibujar, en el fragment shader, accedes al valor de profundidad de cada fragmento y lo asignas a gl FragColor (que resulta ser el objeto textura). gl FragColor = packdepth(gl FragCoord.z); Sombras Tema 6: Realismo Visual 21

Resultado de la textura Los valores más oscuros son los más cercanos. Sombras Tema 6: Realismo Visual 22

Dibujado En drawscene() Se establece como destino el FBO creado para la ocasión. Se dibuja la escena vista desde la posición de la fuente de luz. El shader que necesito únicamente almacena la profundidad en la textura. Se establece como destino el framebuffer por defecto. Se pinta la escena con tu shader preferido, pero además: En el vertex shader, necesitas otra variable que almacene el resultado de multiplicar cada vértice por la matriz de transformación correspondiente a la fuente de luz. En el fragment shader, para cada fragmento, has de: división perspectiva, normalizar el resultado entre 0 y 1, acceder a la textura, y comparar la profundidad del fragmento con la almacenada en la textura. Sombras Tema 6: Realismo Visual 23

Ejemplo de resultado Sombras Tema 6: Realismo Visual 24

Problemas - depth bias Sombras Tema 6: Realismo Visual 25

Problemas - texture resolution Sombras Tema 6: Realismo Visual 26

Percentage-closer filtering Muestrea el área de la textura alrededor del fragmento, cuánto?. Qué porcentaje de texeles están en sombra? Utilizar el resultado como valor de atenuación de la luz. Se emborronan los ĺımites de las sombras. Sombras Tema 6: Realismo Visual 27

Hoy veremos... 1 Introducción 2 Transparencia 3 Sombras 4 Espejos 5 Ambient occlusion Espejos Tema 6: Realismo Visual 28

Espejos Introducción Transparencia Sombras Espejos Ambient occlusion Descripción Ya vimos como simular reflejos sobre superficies curvas. Para una superficie plana, lo puedes obtener así: Coloca tu espejo en la escena. Sitúa una cámara detrás de tu espejo y dibuja la escena a una textura como ya viste antes. La dirección de la cámara del espejo es el vector de reflexión de la cámara de la escena respecto a la normal del plano del espejo. Dibuja tu escena desde tu cámara y utiliza la textura obtenida para el objeto espejo. Espejos Tema 6: Realismo Visual 29

Espejo por simetría Descripción El método consiste en dibujar la escena de forma simétrica respecto al plano que contiene al objeto reflejante. Conlleva dos tareas extra: Obtener la transformación de simetría. Evitar que la escena simétrica se observe fuera de los ĺımites del objeto reflejante. Espejos Tema 6: Realismo Visual 30

Límites Introducción Transparencia Sombras Espejos Ambient occlusion Espejos Tema 6: Realismo Visual 31

Espejo por simetría Procedimiento Utiliza un buffer de plantilla y dibuja sobre él el espejo. Con el test de plantilla activado, dibuja la escena reflejada. Desactiva el test de plantilla. Dibuja la escena normal. Dibuja el espejo con transparencia. Espejos Tema 6: Realismo Visual 32

Hoy veremos... 1 Introducción 2 Transparencia 3 Sombras 4 Espejos 5 Ambient occlusion Ambient occlusion Tema 6: Realismo Visual 33

Ambient Occlusion Descripción El modelo de Phong utiliza un valor constante para la iluminación ambiente. La cantidad de luz ambiente que alcanza un punto de una superficie depende de su entorno. Por ejemplo, un punto de una pared cerca de una esquina recibe menos iluminación que uno de enmedio. Ambient occlusion Tema 6: Realismo Visual 34

Ambient Occlusion Descripción Ambient Occlusion simula ese efecto. La idea es calcular la accesibilidad de cada punto de la superficie y atenuar su iluminación. La accesibilidad es una medida de cuánta luz ambiente puede alcanzar un punto sin ser bloqueada por superficies cercanas. Se puede calcular lanzando rayos desde el punto y comprobar si intersectan en una distancia próxima. Ambient occlusion Tema 6: Realismo Visual 35

Ambient Occlusion Screen Space Ambient Occlusion Ideal para ser implementada en tiempo real. Para un pixel, la cantidad de oclusión producida por sus vecinos se obtiene a partir de las diferencias de profundidad. En primer lugar, se dibuja la escena y en un FBO se almacena normal y profundidad por píxel. Entonces se calcula la oclusión por píxel: max(0, dot(n, v)) (1,0/(1,0 + d)) Los vecinos se muestrean de forma aleatoria. El resultado se almacena en un nuevo FBO para ser suavizado. Ambient occlusion Tema 6: Realismo Visual 36

Ambient Occlusion http://alteredqualia.com/three/examples/webgl postprocessing ssao.html Ambient occlusion Tema 6: Realismo Visual 37