santiago curi facultad de ingeniería – universidad de la

46
Más allá de los polígonos Representación basada en imágenes Computación Gráfica Avanzada Ingeniería en Computación Facultad de Ingeniería – Universidad de la República Santiago Curi Capítulo 13 del “Real-Time Rendering fourth edition”

Upload: others

Post on 08-Jul-2022

15 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Santiago Curi Facultad de Ingeniería – Universidad de la

Más allá de los polígonosRepresentación basada en imágenes

Computación Gráfica AvanzadaIngeniería en Computación

Facultad de Ingeniería – Universidad de la República

Santiago Curi

Capítulo 13 del “Real-Time Rendering fourth edition”

Page 2: Santiago Curi Facultad de Ingeniería – Universidad de la

Introducción

● A diferencia de un modelo geométrico, el costo de representar

un objeto como una imagen es proporcional al número de

píxeles renderizados.

● Útil en la representación de superficies y objetos complejos.

Ej. nubes, lana, fuego, humo, explosiones, etc.

● Técnicas comunes :

– sprites,

– billboards,

– impostor,

– particles,

– point clouds,

– voxels.

24/09/2020 2Computación Gráfica Avanzada: <Representación basada en imágenes>

Page 3: Santiago Curi Facultad de Ingeniería – Universidad de la

Espectro de representación

24/09/2020 Computación Gráfica Avanzada: <Representación basada en imágenes> 3

Técnicas de nivel de detalles (level of detail techniques): Su objetivo es graficar la escena lo más rápido posible.

Page 4: Santiago Curi Facultad de Ingeniería – Universidad de la

Efecto de visión fija

24/09/2020 Computación Gráfica Avanzada: <Representación basada en imágenes> 4

Para modelos geométricos complejos puede ser muy

costoso re-renderizar una escena completa en rates

interactivos. Una posible solución es limitar la movilidad del

observador.

Ej. caballo en movimiento con una cerca estática:

● El pasto y la cerca se renderizan una única vez

guardando el color y el z-buffer para próximos frames.

● Si el caballo está detrás de la cerca, los valores de

profundidad guardados taparán al caballo.

● El caballo no generará sombra, ya que la escena es

estática. Sin embargo es posible determinar dicha

sombra y evaluar la porción de escena por encima de los

buffers guardados.

Page 5: Santiago Curi Facultad de Ingeniería – Universidad de la

Efecto de visión fija

Conceptos

• Para una vista fija, se puede reducir el tiempo de cómputo al

convertir un modelo geométrico complejo en un conjunto de

buffers reutilizables para un número de frames.

• Un concepto relacionado es el del hilo dorado(golden thread) o

también conocido como refinamiento adaptativo o progresivo.

La idea es que cuando la escena y el observador son estáticos, la

computadora puede producir una mejor imagen con el

transcurso del tiempo. Se pueden generar muestras de

diferentes localizaciones para cada pixel generado en el tiempo,

graficar el promedio y así generar un efecto de antialiasing.

24/09/2020 Computación Gráfica Avanzada: <Representación basada en imágenes> 5

Page 6: Santiago Curi Facultad de Ingeniería – Universidad de la

Skyboxes

Introducción

Un mapa de entorno representa el resplandor entrante de un

volumen espacial. Típicamente usado para simular reflexiones

pero también puede ser usado para representar el entorno.

Cualquier representación del mapa, como un cubo o un

panorama, puede ser usado.

A la malla suficientemente grande para abarcar a los objetos de

la escena la llamaremos skybox.

Dicha malla suele centrarse alrededor del observador

acompañando el movimiento del mismo.

24/09/2020 Computación Gráfica Avanzada: <Representación basada en imágenes> 6

Page 7: Santiago Curi Facultad de Ingeniería – Universidad de la

Skyboxes

724/09/2020 Computación Gráfica Avanzada: <Representación basada en imágenes>

Page 8: Santiago Curi Facultad de Ingeniería – Universidad de la

Skyboxes

Efecto Parallax:

Es un efecto visual para objetos cercanos ayudándonos a percibir profundidades relativas mientras nos movemos.

Sin embargo, para un conjunto de objetos cercanos entre sí pero suficientemente lejos del observador, el efecto es casi indetectable cuando éste cambia su posición.

824/09/2020 Computación Gráfica Avanzada: <Representación basada en imágenes>

Page 9: Santiago Curi Facultad de Ingeniería – Universidad de la

Skyboxes

Para que un skybox luzca bien, la resolución de la textura del mapa de cubos debe de ser suficiente, ej. un texel (texture pixel) por pixel de pantalla.

La siguiente fórmula aproxima la resolución necesaria:

donde “fov” es el campo de visión de la cámara.

Observación : Cuanto más bajo es el valor del campo de visión mayor debe de ser la resolución del mapa ya que una menor porción de la pared del cubo debe tener el mismo tamaño que la pantalla.

924/09/2020 Computación Gráfica Avanzada: <Representación basada en imágenes>

Page 10: Santiago Curi Facultad de Ingeniería – Universidad de la

Sprites y capas

• Un sprite es una imagen que se mueve alrededor de la pantalla, ej. cursor del mouse. No tiene necesidad de ser rectangular ya que algunos píxeles pueden graficarse de forma transparente.

• Un tipo más general de sprite es aquel renderizado como la textura de una imagen aplicada a un polígono de frente al observador. Este tipo puede tener profundidad y por lo tanto una localización en la escena misma.

• La escena se puede representar como un conjunto de capas donde cada una de ellas tiene asociada una profundidad. Graficando utilizando el “algoritmo del pintor”, podemos construir la escena sin la necesidad de un z-buffer.

• Un objeto puede ser representado por un conjunto de sprites distintos para cada vista, aun siendo un objeto animado.Es posible deformar la forma del sprite si suceden pequeños cambios de ángulo en la cámara. Sin embargo, eventualmente se necesitará generar uno nuevo.

1024/09/2020 Computación Gráfica Avanzada: <Representación basada en imágenes>

Page 11: Santiago Curi Facultad de Ingeniería – Universidad de la

Sprites y capas

1124/09/2020 Computación Gráfica Avanzada: <Representación basada en imágenes>

Page 12: Santiago Curi Facultad de Ingeniería – Universidad de la

Billboarding

1224/09/2020 Computación Gráfica Avanzada: <Representación basada en imágenes>

Introducción:

Billboarding se le denomina a la orientación de un rectángulo de textura según la dirección de la vista. El rectángulo en sí se llama billboard.

Combinado con alpha texturing(técnica para asignar transparencia) y animación se puede representar fenómenos que no poseen una superficie sólida. Ej. pasto, humo, fuego, explosiones, nubes, etc.

En este capítulo se tratarán varias formas de Billboarding: alineado a la pantalla, orientado al mundo, axial, impostor.

Page 13: Santiago Curi Facultad de Ingeniería – Universidad de la

Billboarding

1324/09/2020 Computación Gráfica Avanzada: <Representación basada en imágenes>

Page 14: Santiago Curi Facultad de Ingeniería – Universidad de la

Billboarding

1424/09/2020 Computación Gráfica Avanzada: <Representación basada en imágenes>

● En cada una de las diferentes formas de orientación del rectángulo se puede encontrar un vector normal a la superficie y una dirección “hacia arriba” . Estos 2 vectores son suficientes para formar una base ortonormal de la superficie. Es decir, describen la matriz de rotación necesaria para rotar el cuadrilátero hasta su orientación final . Luego se utiliza una “localización ancla” (ej. su centro) para establecer la posición en el espacio.

● A menudo la normal a la superficie deseada ( “n” ) y el vector dirección ( “u” ) no son perpendicular entre sí . En todas las técnicas de billboarding, se fija uno de los dos vectores y luego se hace que el otro sea perpendicular. Este proceso se hace de la siguiente manera:

Page 15: Santiago Curi Facultad de Ingeniería – Universidad de la

Billboarding

1524/09/2020 Computación Gráfica Avanzada: <Representación basada en imágenes>

● Crear un vector “r” resultante del producto vectorial entre n y u el cual llamaremos “vector derecho”. Este vector apunta hacia el borde derecho del cuadrilátero.

● Normalizar r , ya que se usará como eje de la base ortonormal para la matriz de rotación.

● Si el vector r es de largo cero u y n son paralelos y se puede utilizar la siguiente técnica:

Page 16: Santiago Curi Facultad de Ingeniería – Universidad de la

Billboarding

1624/09/2020 Computación Gráfica Avanzada: <Representación basada en imágenes>

● En el caso en el que n y u no son paralelos:1. Si es la normal n la que se mantiene fija (mayoría de los casos)

entonces el nuevo vector “hacia arriba” es:

u′ = n × r

2. Si es u el que se mantiene fijo entonces el nuevo vector normal es:

n´ = r × u

El nuevo vector se debe normalizar. Luego los tres vectores son usados para formar la matriz de rotación. Ejemplo para el caso 1:

M = (r, u´, n)

Page 17: Santiago Curi Facultad de Ingeniería – Universidad de la

Billboarding

1724/09/2020 Computación Gráfica Avanzada: <Representación basada en imágenes>

Ejemplo gráfico

Queremos crear un conjunto de 3 vectores perpendiculares entre sí para poder orientar el billboard. En la figura central, el vector r se halla haciendo el producto vectorial entre u y n por lo que resulta perpendicular a ambos.En la figura de la derecha, el vector fijo n es multiplicado por r para generar el vector u´ también perpendicular a ambos.

Page 18: Santiago Curi Facultad de Ingeniería – Universidad de la

Billboarding

1824/09/2020 Computación Gráfica Avanzada: <Representación basada en imágenes>

● Es la forma más simple.● Se puede comparar a un sprite de 2 dimensiones donde la imagen

es siempre paralela a la pantalla y contiene un vector “hacia arriba” constante.

● El vector normal a la superficie es la negación del vector normal al plano de visión.

● El vector “hacia arriba” se encuentra en el plano de visión de la cámara.

● Como ambos vectores son perpendiculares entre sí, sólo resta hallar r para formar la matriz de rotación del billboard. Dicha matriz es la misma para todos los billboards de este tipo ya que tanto n como u son constantes para la cámara.

● Muy útil para efectos de partícula, textos y marcadores de mapas.

Alineado a la pantalla

Page 19: Santiago Curi Facultad de Ingeniería – Universidad de la

Billboarding

1924/09/2020 Computación Gráfica Avanzada: <Representación basada en imágenes>

Introducción:

Cuando la cámara se inclina hacia un costado queremos que los objetos en la escena acompañen esa inclinación.Ej. curva en una simulación de vuelo.

Si un sprite representa a un objeto físico, suele estar orientado con respecto al vector “hacia arriba” del mundo y no el de la cámara.Queremos que lo billboards de los sprites permanezcan apuntando hacia el observador pero a su vez que roten a lo largo de sus ejes de vista para mantenerse orientados al mundo.

Orientado al mundo

Page 20: Santiago Curi Facultad de Ingeniería – Universidad de la

Billboarding

2024/09/2020 Computación Gráfica Avanzada: <Representación basada en imágenes>

● Una forma de renderizar los sprites es usando el vector “hacia arriba” del mundo para obtener la matriz de rotación. Observar que el vector normal (vector fijo) sigue siendo el opuesto del vector normal al plano de visión.La matriz de rotación puede ser reutilizable para todos los sprites ya que estos vectores no cambian durante el renderizado de la escena.

● Sin embargo, utilizar la misma matriz para todos los sprites conlleva un riesgo. Objetos a cierta distancia del eje de vista sufren una deformación incorrecta si el ojo del observador está a una distancia no apropiada de la pantalla. Es decir, si el campo de visión geométrico de la cámara virtual iguala al campo de visión del ojo entonces la deformación de los objetos será realista.

Orientado al mundo

Page 21: Santiago Curi Facultad de Ingeniería – Universidad de la

Billboarding

2124/09/2020 Computación Gráfica Avanzada: <Representación basada en imágenes>

Orientado al mundo

Page 22: Santiago Curi Facultad de Ingeniería – Universidad de la

Billboarding

2224/09/2020 Computación Gráfica Avanzada: <Representación basada en imágenes>

● Cuando el campo de visión o los sprites son muy pequeños, la deformación es ignorada y se utiliza una única orientación alineada al campo de visión del plano. De otra manera, la normal deseada precisa igualar al vector que parte del centro del billboard hacia la posición del observador.Esto es a lo que llamamos un billboard orientado al punto de vista.

Orientado al mundo

Page 23: Santiago Curi Facultad de Ingeniería – Universidad de la

Billboarding

2324/09/2020 Computación Gráfica Avanzada: <Representación basada en imágenes>

Orientado al mundo

Page 24: Santiago Curi Facultad de Ingeniería – Universidad de la

Billboarding

2424/09/2020 Computación Gráfica Avanzada: <Representación basada en imágenes>

Un complejo modelo puede representarse por una colección de billboards recortados y superpuestos, a esa idea la llamaremos:“nubes de billboards”.

Orientado al mundo

Page 25: Santiago Curi Facultad de Ingeniería – Universidad de la

Billboarding

2524/09/2020 Computación Gráfica Avanzada: <Representación basada en imágenes>

● Billboarding orientado al mundo es muy útil para renderizar distintos fenómenos como por ejemplo: llamas, humo, explosiones.Una técnica es agrupar y superponer sprites animados de manera aleatoria y caótica.

● Durante una animación, un billboard podría pasar de estar detrás de un objeto hacia adelante surgiendo de forma abrupta si este pasa de ser totalmente invisible a totalmente visible. Una posible solución es hacer que los billboard se conviertan más o menos transparentes según la distancia.

Orientado al mundo

Page 26: Santiago Curi Facultad de Ingeniería – Universidad de la

Billboarding

2624/09/2020 Computación Gráfica Avanzada: <Representación basada en imágenes>

● La forma menos común.● El objeto texturizado envés de enfrentar directamente al

observador, rota alrededor de un eje fijo del mundo y luego se alinea (lo máximo posible según su rango) con el observador.Ej. árboles distantes.

Axial

Page 27: Santiago Curi Facultad de Ingeniería – Universidad de la

Billboarding

2724/09/2020 Computación Gráfica Avanzada: <Representación basada en imágenes>

● Se define el vector “hacia arriba” del mundo como eje fijo y el billboard rota a su alrededor para que se muestre al observador lo mejor posible.Difiere del esquema orientado al mundo donde el billboard apunta directamente al observador y puede rotar a lo largo de este eje de visión. Rota de forma que el vector “hacia arriba” del billboard se aline lo mejor posible con el del mundo.

● Problema: Si el observador mira desde una posición por encima del objeto, la ilusión se arruina y se observará solo el borde.Solución:

a. Agregar una sección horizontal de textura.b. Usar técnicas para cambiar de un modelo basado en

imágenes a un modelo basado en mallas

Axial

Page 28: Santiago Curi Facultad de Ingeniería – Universidad de la

Billboarding

2824/09/2020 Computación Gráfica Avanzada: <Representación basada en imágenes>

Page 29: Santiago Curi Facultad de Ingeniería – Universidad de la

Billboarding

2924/09/2020 Computación Gráfica Avanzada: <Representación basada en imágenes>

● Un impostor es un billboard creado al renderizar un objeto complejo del punto de vista a una imagen de textura mapeado a un billboard. Se utiliza en algunas instancias del objeto, o algunos frames, para amortizar el costo de generación.

● Muy útil para renderizar objetos distantes de forma rápida. También se utiliza para aquellos cercanos que muestran un único lado mientras el observador se mueve.

● Antes de renderizar el objeto para crear la imagen impostora, el observador es colocado al centro del cuadro delimitador de dicho objeto y el rectángulo del impostor es elegido.

Impostores

Page 30: Santiago Curi Facultad de Ingeniería – Universidad de la

Billboarding

3024/09/2020 Computación Gráfica Avanzada: <Representación basada en imágenes>

La imagen es usada como un billboard orientado al punto de vista.

Impostores

Page 31: Santiago Curi Facultad de Ingeniería – Universidad de la

Billboarding

3124/09/2020 Computación Gráfica Avanzada: <Representación basada en imágenes>

● Problema: Al no poseer grosor puede presentar problemas al combinarse con geometría real.Sugerencia: Proyectar la textura a lo largo de la dirección de vista en el cuadro delimitador del objeto. Genera una pequeña presencia geométrica.

● Si bien impostores puede ser utilizado para objetos dinámicos, la mejor opción es renderizarlos con geometría y cambiar a impostores cuando sean estáticos.

Impostores

Page 32: Santiago Curi Facultad de Ingeniería – Universidad de la

Billboarding

3224/09/2020 Computación Gráfica Avanzada: <Representación basada en imágenes>

polypostors

Impostores

Page 33: Santiago Curi Facultad de Ingeniería – Universidad de la

Sistema de partículas

3324/09/2020 Computación Gráfica Avanzada: <Representación basada en imágenes>

Introducción

Es una colección de pequeños objetos puestos en movimiento mediante algún algoritmo para representar un fenómeno.Ej. explosiones, flujo de agua, galaxias girando, humo, fuego, etc.Además el sistema contiene controles para crear, mover, cambiar y eliminar partículas durante su tiempo de vida.Cada partícula puede ser representada como un pixel, una línea continua o un billboard .

Page 34: Santiago Curi Facultad de Ingeniería – Universidad de la

Sistema de partículas

3424/09/2020 Computación Gráfica Avanzada: <Representación basada en imágenes>

● Si la partícula es redonda entonces solo es necesaria su posición para poder orientarse ya que el vector “hacia arriba” es irrelevante.

● Lista de sugerencias para renderizar partículas de forma eficiente:○ Evitar semitransparencia significa no necesitar ordenamiento y

mezcla.○ Usar pocas partículas animadas envés de muchas estáticas.○ Usar un tope dinámico de número de partículas renderizadas

para mantener la cantidad de cuadros/segundo (frame rate).○ Un atlas de textura o un array conteniendo todas las imágenes

de las partículas.○ Dibujar, suavemente variadas, partículas en un buffer de baja

resolucion o dibujar luego de MSAA (Multisample anti-aliasing).

Page 35: Santiago Curi Facultad de Ingeniería – Universidad de la

Sistema de partículas

3524/09/2020 Computación Gráfica Avanzada: <Representación basada en imágenes>

● Proporcionar un mapa de normales para las partículas brinda normales de superficies apropiadas para iluminarlas. Sin embargo, genera un costo adicional al acceso de texturas.

● Es posible evaluar la iluminación por cada vértice e interpolar sobre el cuadrilátero de la partícula. Esto es rapido pero para partículas muy grandes genera un resultado de baja calidad.Una solución es sombrear la partícula en base a cada pixel pero a una resolución más baja que la usada en la imagen final.Para esto, cada partícula aloja una baldosa en un mapa-ligero de texturas. La resolución de cada baldosa puede ser ajustada según el tamaño de la partícula en la pantalla.

Partículas sombreadas

Page 36: Santiago Curi Facultad de Ingeniería – Universidad de la

Sistema de partículas

3624/09/2020 Computación Gráfica Avanzada: <Representación basada en imágenes>

● Para recibir sombra de otros elementos, las partículas pueden ser testeadas contra un mapa de sombras en sus vértices (no en cada píxel).

● Para poder lograr un auto-sombreado se necesitan técnicas avanzadas, como es el caso del mapeo de opacidad de Fourier.

Partículas sombreadas

Page 37: Santiago Curi Facultad de Ingeniería – Universidad de la

Representación de puntos

3724/09/2020 Computación Gráfica Avanzada: <Representación basada en imágenes>

● La idea general es representar una superficie como un conjunto de puntos y renderizarlos. A su vez, utilizar un filtrado Gaussiano con la intención de rellenar los espacios vacíos entre los puntos renderizados.

● QSplat fue un renderizador influyente basado en puntos.Utiliza una herencia de esferas para representar un modelo. Cada punto es representado como una forma con radio llamado splat. Dentro de los distintos splats podemos encontrar cuadrados, círculos opacos y borrosos, es decir partículas con la intención de representar una superficie continua.

● En teoría, a cada splat se le podría asignar normales y un radio individualmente. En la práctica esto no es posible por la inmensa memoria requerida, por lo que comúnmente se suele usar billboards con radio fijo.

Page 38: Santiago Curi Facultad de Ingeniería – Universidad de la

Representación de puntos

3824/09/2020 Computación Gráfica Avanzada: <Representación basada en imágenes>

Page 39: Santiago Curi Facultad de Ingeniería – Universidad de la

Representación de puntos

3924/09/2020 Computación Gráfica Avanzada: <Representación basada en imágenes>

Page 40: Santiago Curi Facultad de Ingeniería – Universidad de la

Voxels

4024/09/2020 Computación Gráfica Avanzada: <Representación basada en imágenes>

● Definición: Es un elemento de volumen. Representa un volumen, típicamente un cubo, en la cuadrícula tridimensional del espacio.

● Es la forma tradicional de guardar información volumétrica y puede representar objetos. Algunos datos que puede guardar para facilitar el renderizado son color,normal, distancia, etc.

● Se puede construir modelos elaborados al colocar un modelo poligonal dentro de la cuadrícula y determinar cuales voxels se solapan. Estas operaciones constructivas comparadas con un método poligonal tradicional son más eficientes, predecibles y con mayor garantía de funcionamiento .

● Sistemas basados en voxels como por ejemplo OpenVDB y NVIDIA GVDB Voxels son utilizados en producción de películas, visualizaciones científicas, impresiones 3D, etc.

Page 41: Santiago Curi Facultad de Ingeniería – Universidad de la

Voxels

4124/09/2020 Computación Gráfica Avanzada: <Representación basada en imágenes>

● Se precisan grandes requerimientos de memoria para almacenamiento ya que la información crece O(n3) con la resolución del voxel.

● La información guardada en la cuadrícula voxel suele tener coherencia. Es decir, es probable que las localizaciones de los vecinos contengan valores similares o hasta iguales.Además es muy probable que la gran mayoría de la cuadrícula se encuentre vacía.Estos dos conceptos sugieren la existencia de una representación más compacta. Un equivalente tridimensional del mipmap.

Almacenamiento de voxels

Page 42: Santiago Curi Facultad de Ingeniería – Universidad de la

Voxels

4224/09/2020 Computación Gráfica Avanzada: <Representación basada en imágenes>

● Un método propuesto por Karabassi para mallas:○ renderizar al objeto desde 6 distintas vistas(arriba, abajo,

costados)○ cada vista genera un buffer de profundidad ○ si la ubicación del voxel es más allá de la profundidad guardada

para cada uno de los 6 buffers, entonces no es visible y es marcado como si estuviese dentro del objeto.

● Método para encerrar en voxels a personas en el mundo real:○ crear un conjunto de imágenes de la persona y extraer la silueta ○ cada silueta se utiliza para tallar un conjunto de voxels según la

ubicación de la cámara. Solo los pixeles donde puedes ver a la persona tendrán un voxel asociado.

Generación de voxels

Page 43: Santiago Curi Facultad de Ingeniería – Universidad de la

Voxels

4324/09/2020 Computación Gráfica Avanzada: <Representación basada en imágenes>

Generación de voxels

Page 44: Santiago Curi Facultad de Ingeniería – Universidad de la

Voxels

4424/09/2020 Computación Gráfica Avanzada: <Representación basada en imágenes>

Imaginemos la más simple representación de un volumen, donde cada voxel contiene un solo bit indicando si está dentro o fuera del objeto.

1. Un método es aplicar casteo de rayos (ray-cast) directamente para determinar la cara más cercana del cubo.

2. Otra técnica es convertir los cubos de voxel en un conjunto de polígonos. Si bien renderizar usando una malla es bastante rápido, implica adicionar un costo durante la generación de voxels y es mejor usarla en volúmenes estáticos.

Renderizado

Page 45: Santiago Curi Facultad de Ingeniería – Universidad de la

Voxels

4524/09/2020 Computación Gráfica Avanzada: <Representación basada en imágenes>

Técnicas de simplificación pueden utilizarse para reducir la cantidad de polígonos. Ejemplo:

Renderizado

Page 46: Santiago Curi Facultad de Ingeniería – Universidad de la

Gracias por su atención

Santiago Curi

[email protected]