Rendering no fotorrealista

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

VIDEOJUEGOS 2 Iluminación

Sistema de Coordenadas Personales

PATG. Rosa Mª Sánchez Banderas

Tema 9: Texturas Avanzadas

MAPEO DE FOTONES PHOTON MAPPING

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

Tema 6: Realismo Visual

Introducción a OpenGL Shading Language (GLSL)

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

Capítulo 2 Silueta. Figura 2.1 Tetera capturada por la cámara con la silueta resaltada

Adobe Photoshop CS6 Efecto foto caricatura

AutoCAD 2011 Completo + 3D

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

El proceso de iluminación

Isométricos. Ing. Carlos Camacho Soto Escuela de Ingeniería Civil Universidad de Costa Rica IC-302. Setiembre 2005

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

E.T.S. ARQUITECTURA SEVILLA HISTORIA II CURSO 2017/18 GRUPO 2.06 DAMIAN FLORES LORITE SALOME MOYA RIVERO CARMEN FERNANDEZ MUÑOZ

Mapeo de Texturas. Capitulo 9 de Angel

Autocad 2011 Completo + 3D

AUTOCAD 2011 COMPLETO + 3D. ON LINE

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

Tema 1: Modelado poligonal

Sombreado Diferido (Deferred Shading) Héctor Barreiro Cabrera

Tema 1: Modelado poligonal

PRODUCCION Y DESARROLLO DE RENDER 3D

CorelDRAW reinventa la facilidad en el manejo y acceso a todas sus herramientas gráficas y prestaciones para la edición.

Mapping de texturas. Víctor Theoktisto

Iluminación Local. Prof. Fernández et al. (Universidad de la República de Uruguay) -

La configuración en VRay

TEMARIO: ADOBE ILLUSTRATOR

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

Determinación de Superficies Visibles

emara formación Curso Adobe PhotoShop CS4. Contenidos. Adobe Photoshop CS4 Básico

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

Tema 6. Tema 6. Tema 6. Modelado 3D 6.1 Introducción 6.2 Modelado plano de superficies 6.3 modelado de sólidos. 6.1 Introducción

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

Adobe Photoshop CS 4

ADOBE PHOTOSHOP CS Código: 054

El pipeline de visualización es el conjunto de

Computación Gráfica I CI4321

La L uz y el V olumen

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

Objetivo: Conocer los tipos de imágenes en photoshop

GRAPHICS PIPELINE. Computación Gráfica

CURSO PHOTOSHOP CS Conocer Photoshop. 1.1 Conceptos. 1.2 Requerimientos mínimos del sistema. 1.3 Entrar en Photoshop. 1.4 Espacio de trabajo

Existen varios modos de controlar la apariencia de las diapositivas y una de ellas es a través de la combinación de colores.

Las librerías gráficas antiguas permiten trabajar con puntos 2D (pixels)

Prof. Alexandra La Cruz ld

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

1º ESO EDUCACIÓN PLÁSTICA VISUAL Y AUDIOVISUAL ( TERCER TRIMESTRE ) Unidad 8. Igualdad, semejanza y simetría.

DE VIDEOJUEGOS CON SOFTWARE LIBRE. V JORNADAS IMAGINÁTICA 2009 (Bienvenidos a la informática del futuro) Antonio Moisés Espínola Pérez

Modelos de Iluminación

Photoshop CS6 Para PC/Mac

MAPEADO DE TEXTURAS. Computación Geométrica Luis Alberto Vivas Tejuelo

Ray Tracing y Cone Tracing. Pedro Rincón Edward Zambrano

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

UNIVERSIDAD CENTRAL FACULTAD DE INGENIERÍA

CAPAS DE AJUSTE DE LA GAMA TONAL

Geometría de las superficies

Fundamentos de POV-Ray. Computación Geométrica 2010/2011 Jorge Calvo Zaragoza

Objetivos y Temario AUTOCAD 2013_2D y 3D NIVEL AVANZADO

Unidad Didáctica 5. La Forma en el Espacio

TEMARIO CURSO PHOTOSHOP CS4 AVANZADO

Adobe Photoshop CS6. 50 horas

NOCIONES DE DIBUJO TECNICO

índice VOLUMEN I MÓDULO 1: Diseño Asistido por Ordenador Autocad 2006 Parte 1ª Diseño Asistido por Ordenador Autocad 2006 TEMA 1.

ADOBE PHOTOSHOP CS6 Avanzado

PIA Produccción de Imagen de Arquitectura

Transcripción:

Rendering no fotorrealista. Cap. 11 del RT3 y NPRRFCA Computación Gráfica Avanzada Ingeniería en Computación Facultad de Ingeniería Universidad de la República Matias Nassi

Agenda Introducción Toon shading Silhouette edge rendering Surface Angle Silhouetting Procedural Geometry Silhouetting Silhouetting by Image Processing Silhouette Edge Detection Otros estilos 2

Introducción 3

Introducción 1. Rendering fotorrealista Se intenta que una imagen sea indistinguible de una fotografía Mediante complejos algoritmos matemáticos se simulan Efectos de luz (halos, destellos, etc) Sombras Reflejos Refracciones Y muchos otros efectos Algunos algoritmos Raytracing Radiosity Photon Mapping 4

Introducción Photorealism is like pornography, It leaves nothing to the imagination Cassidy Curtis (graphic artist) 5

Introducción 2. Rendering NO fotorrealista Se busca generar imágenes que no luzcan como una fotografía Varias utilidades Crear imágenes similares a ilustraciones técnicas, pero mostrando solo aquellos detalles relevantes Simular múltiples formas de pintura» Lápiz o tinta» Papel carbónico» Crayola» Acuarela» Cartoon style» Y más 6

Introducción 2. Rendering NO fotorrealista Utilizado tanto en películas y videojuegos como en ilustración arquitectural Hay diversos algoritmos de NPR Varian dependiendo del efecto a implementar 7

Introducción 8

Introducción 9

Introducción 10

Toon shading 11

Toon shading También llamado Toon rendering o Cel rendering Diseñado para hacer que las imágenes parezcan dibujos animados Los objetos son dibujados con líneas sólidas que separan zonas de diferentes colores Las siluetas son usualmente renderizadas en color negro para amplificar el aspecto caricaturista 12

Toon shading Se utiliza hace más de una década para integrar gráficos 3D con animaciones 2D Algunos videojuegos que lo utilizan Okami Cel Damage Valkyria Chronicles Borderlands El Shaddai Dragon Ball Z Ultimate Tenkaichi 13

Toon Shading Okami 14

Toon Shading Cel Damage 15

Toon Shading Valkyria Chronicles 16

Borderlands Toon Shading 17

Toon Shading El Shaddai 18

Toon shading Existen varios enfoques diferentes para implementar Toon Shading Para modelos con texturas pero sin iluminación, el aspecto de caricatura puede aproximarse directamente por las texturas Para modelos con iluminación hay dos alternativas 1. Solid shading: rellenar los polígonos con colores sólidos sin iluminación 2. Hard shading: utilizar dos colores (two-tone) para representar áreas iluminadas y sombreadas 1 2 19

Toon shading Solid shading es trivial Hard shading se puede realizar remapeando los elementos tradicionales de la ecuación de iluminación a diferentes paletas de colores 20

Toon shading Una posible forma de implementar tow-tone shading es Calcular la iluminación difusa para cada vértice como N*L y usar este valor para acceder a un mapa de textura unidimensional El mapa de textura contiene solo dos tonos: luz y oscuridad Cos(θ) Mapa de textura dark light 21

Toon shading Una posible forma de implementar tow-tone shading es Calcular la iluminación difusa para cada vértice como N*L y usar este valor para acceder a un mapa de textura unidimensional El mapa de textura contiene solo dos tonos: luz y oscuridad 22

Toon shading Una posible forma de implementar tow-tone shading es En suuso convencional se pueden dar dos casos» N*L <= 0: se selecciona el tono oscuro de la textura» N*L > 0: se selecciona el tono claro de la textura -1 0 1 dark light Pero se pueden utilizar valores distintos del umbral -1 0.5 1 dark light De forma similar se puede utilizar una textura unidimensional simple para incorporar brillo especular Todo el procedimiento anterior puede implementarse por CPU o mediante un Vertex Shader 23

Toon shading Comparación de los diferentes métodos Gourad-shaded Toon-shaded Solid shading Two-tone shading -1 0.5 1 Specular/diffuse three-tone shading 24

Aspectos generales Silhouette edge rendering Tipos Surface Angle Silhouetting Procedural Geometry Silhouetting Silhouetting by Image Processing Silhouette Edge Detection 25

Aspectos generales Silhouette edge rendering Tipos Surface Angle Silhouetting Procedural Geometry Silhouetting Silhouetting by Image Processing Silhouette Edge Detection 26

Silhouette edge rendering Los algoritmos utilizados para el rendering de aristas en el Toon Shading son una de las técnicas más importantes en esta área Los métodos para el trazado de siluetas se pueden caracterizar en base a Ángulo entre las superficies Geometría procedural Procesamiento de imágenes Detección de aristas de silueta Híbrido de las anteriores 27

Silhouette edge rendering Tipos de aristas utilizados en Toon Shading Border edge Arista no compartida por 2 polígonos Por ej: el borde de una hoja de papel Un objeto sólido típicamente no posee border edges Crease edge Arista compartida por 2 polígonos, tales que el ángulo entre los polígonos (dihedral angle) es mayor a cierto valor predefinido Las normales difieren entre los 2 polígonos vecinos 28

Silhouette edge rendering Tipos de aristas utilizados en Toon Shading Material edge Aristas en las que los dos polígonos que la comparten difieren en material o causan un cambio en el sombreado También aristas que no entran en las demás categorías pero que el artista desea dibujar Línea quesepara pantalón y remera del mismo color Silhouette edge Arista en la que los dos polígonos vecinos apuntan a direcciones diferentes comparadas con algún vector dirección Usualmente el vector dirección es un vector desde el observador hacia algún punto de la arista Arista es silhouette edge si la cara de un polígono está mirando al observador y la del otro está oculta 29

Silhouette edge rendering Border edge Crease edge Material edge Silhouette edge 30

Aspectos generales Tipos Silhouette edge rendering Surface Angle Silhouetting Procedural Geometry Silhouetting Silhouetting by Image Processing Silhouette Edge Detection 31

Silhouette edge rendering Surface Angle Silhouetting Técnica basada en los ángulos de las superficies al igual que el surface shader anterior Para obtener una silhouette edge, se utiliza el producto interno entre el vector dirección hacia el observador y la normal a la superficie Si es cercano a 0, la superficie está casi de perfil al observador y por lo tanto es probable que esté cerca de una silhouette edge Se puede implementar utilizando un vertex shader 32

Silhouette edge rendering Surface Angle Silhouetting Esta técnica es equivalente a sombrear una superficie utilizando un environment map esférico con un anillo negro como contorno Lo que está alejado de una arista se mapea con el relleno del spheremap A medida que nos acercamos a las aristas comienza a mapearse con el contorno del spheremap 33

Silhouette edge rendering Surface Angle Silhouetting En la práctica puede utilizarse un texture map unidimensional en vez de uno esférico Este tipo de técnicas funciona solo para modelos que presentan una relación entre la normal a la superficie y la silhouette edge Desventaja del método: las líneas de silueta son dibujadas con ancho variable dependiendo de la curvatura de la superficie Polígonos planos muy grandes serán pintados enteramente de oscuro al estar cerca de una arista En Cel Damage esta técnica dio excelente resultados para ¼ de los modelos, pero falló para el resto 34

Aspectos generales Silhouette edge rendering Tipos Surface Angle Silhouetting Procedural Geometry Silhouetting Silhouetting by Image Processing Silhouette Edge Detection 35

Silhouette edge rendering Procedural Geometry Silhouetting Es una de las primeras técnicas de silhouette rendering en tiempo real Idea básica: renderizar las caras frontales normalmente y luego las caras traseras de forma que se hagan visibles sus silhouette edges Hay varias formas de renderizar las caras posteriores, cada una con sus ventajas y desventajas Todas ellas parten de la base que ya se dibujaron las caras frontales Luego se habilita el frontface culling y deshabilita el backface culling y se dibuja De esta forma se muestran solo las caras traseras Observar que se hacen 2 pasadas de dibujado 36

Silhouette edge rendering Procedural Geometry Silhouetting Una forma de renderizar las silhouette edges es dibujando solos las aristas (no las caras) de las backfaces Utilizando ciertas técnicas se puede asegurar que esas líneas serán dibujadas justo por delante de las frontfaces Esto hace que todas las líneas estés ocultas, excepto las silhouette edges Una forma de hacer las líneas mas gruesas es Dibujar las backfaces completamente de negro Sin ningún desplazamiento esas backfaces serán invisibles, por lo que luego se las desplaza hacia adelante en la pantalla (Z-bias) Como resultado sólo serán visibles las aristas de las backfaces 37

Silhouette edge rendering Procedural Geometry Silhouetting Existen varios métodos para realizar el desplazamiento Desplazar según una cantidad fija Desplazar según cierta cantidad dependiente de la profundidad Utilizar un desplazamiento depth-slope (glpolygonoffset en OpenGL) El problema con estos métodos es que no crean líneas con un ancho uniforme Depende de la backface, la frontface y el ángulo que forman 38

Silhouette edge rendering Procedural Geometry Silhouetting Triangle fattening: una posible solución al problema anterior consistente de expandir cada triángulo de backface a lo largo de sus aristas una cantidad necesaria para que se vea una línea uniformemente gruesa La inclinación del triángulo y la distancia al observador determinan qué tanto expandirlo Dos formas de realizar el desplazamiento 1. Se desplaza cada vértice en el plano donde se encuentra y luego se los une para formar un nuevo triángulo 2. Se desplaza cada arista y luego se las une formando un triángulo truncado 39

Silhouette edge rendering Procedural Geometry Silhouetting Comparación de los métodos de backfacing edge Thick lines Z-bias Fattened triangle 40

Aspectos generales Silhouette edge rendering Tipos Surface Angle Silhouetting Procedural Geometry Silhouetting Silhouetting by Image Processing Silhouette Edge Detection 41

Silhouette edge rendering Silhouetting by Image Processing Se extiende la utilización de G-buffers para realizar toon rendering Se opera con datos almacenados en buffers, sin modificar (e incluso concer) la geometría de la escena La idea básica es implementar NPR aplicando técnicas de procesamiento de imágenes sobre varios buffers de información Discontinuidades en valores vecinos del Z-buffer permiten identificar la mayoría de las silhouette edges Discontinuidades en valores vecinos de normales a la superficie permiten encontrar border edges 42

Silhouette edge rendering Silhouetting by Image Processing Para hacer esto en tiempo real Se renderiza la escena en una textura del tamaño de la pantalla Utilizando vertex shaders se renderizan las normales y z-depths de la escena en nuevas texturas del tamaño de la pantalla El próximo paso es encontrar las silhouette, border y crease edges Para encontrarlas se toman varias muestras de las texturas anteriores y se les aplica un filtro de Sobel para detección de aristas De la composición de las anteriores se obtiene una textura de aristas Finalmente se componen las imágenes resultantes, es decir, la textura original de color y la textura de aristas 43

Silhouette edge rendering Silhouetting by Image Processing Ejemplo 1. Se renderiza la escena en una textura del tamaño de la pantalla 2. Se renderiza la información de z-depth en una textura del tamaño de la pantalla 44

Silhouette edge rendering Silhouetting by Image Processing 3. Se renderiza la información de normales a la superficie en una textura del tamaño de la pantalla 4. Se aplica un filtro de Sobel para detección de aristas en las texturas anteriores para obtener una textura de aristas 45

Silhouette edge rendering Silhouetting by Image Processing x = 5. Finalmente, se componen las texturas de color y aristas para obtener el render final 46

Aspectos generales Silhouette edge rendering Tipos Surface Angle Silhouetting Procedural Geometry Silhouetting Silhouetting by Image Processing Silhouette Edge Detection 47

Silhouette edge rendering Silhouette Edge Detection Las técnicas anteriores tienen el defecto de tener que realizar varias pasadas para el renderizado de las silhouette edges Una mejor forma de encarar el problema es detectando las silhouette edges y renderizándolas directamente Esto proporciona un mejor control de cómo se dibujan las líneas Debido a que de esta forma las aristas son independientes del modelo, se pueden crear diversos efectos Por ej: hacer que la silueta salte sorpresivamente mientras la malla se mantiene 48

Silhouette edge rendering Silhouette Edge Detection Existe una silhouette edge cuando uno de los polígonos está de frente hacia el observador y el otro de espalda Por lo tanto, el test a realizar es (N0*V > 0) <> (N1*V > 0) N0 y N1 son las normales a ambos polígonos V es la dirección desde el observador hacia la arista El método estándar es iterar todas las aristas y realizar el test anterior para cada una Una vez que las aristas son encontradas se dibujan con line drawning, texture impostors u otro método 49

Silhouette edge rendering Silhouette Edge Detection Problema Eficiencia! Realizar el test para todas las aristas es poco performante Algunas soluciones Culling de aristas de polígonos coplanares Si los 2 polígonos vecinos para una arista caen en el mismo plano, no se agrega esa arista a la lista de aristas a testear Reusar los cálculos del producto entre vectores 50

Otros estilos 09/11/2011 Computación Gráfica Avanzada: Rendering basado en imágenes 51

Otros estilos NPR agrupa una gran variedad de estilos mas allá del toon shading Praun presenta un método en tiempo real consistente en generar stroke-texture mipmaps y aplicarlas a las superficies Estos mapas se denominan TAM (Tonal Art Maps) 09/11/2011 Computación Gráfica Avanzada: Rendering basado en imágenes 52

Otros estilos Ejemplo de modelos renderizados de esta forma: 09/11/2011 Computación Gráfica Avanzada: Rendering basado en imágenes 53

Preguntas? 09/11/2011 Computación Gráfica Avanzada: Rendering basado en imágenes 54

FIN Matias Nassi