Gustavo Audi (Extraído de Cap. 16 de RTR4) Facultad de ...

42
Técnicas Poligonales Computación Gráfica Avanzada Ingeniería en Computación Facultad de Ingeniería – Universidad de la República (Extraído de Cap. 16 de RTR4) Gustavo Audi

Transcript of Gustavo Audi (Extraído de Cap. 16 de RTR4) Facultad de ...

Page 1: Gustavo Audi (Extraído de Cap. 16 de RTR4) Facultad de ...

Técnicas Poligonales

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

Facultad de Ingeniería – Universidad de la República(Extraído de Cap. 16 de RTR4)

Gustavo Audi

Page 2: Gustavo Audi (Extraído de Cap. 16 de RTR4) Facultad de ...

Introducción

• Se verán una variedad de problemas relacionados con los conjuntos de datos poligonales, junto con algunas de las correcciones y soluciones a estos.

• Se cubrirán técnicas para renderizar y almacenar de manera eficiente modelos poligonales.

• Se tratarán las siguientes áreas a lo largo de la presentación:– Fuentes de datos tridimensionales.

– Teselación y Triangulación.

– Consolidación.

– Optimización.

– Simplificación.

– Compresión.

21/9/2020 2Computación Gráfica Avanzada: <Tema, por ejemplo, Hardware Gráfico>

Page 3: Gustavo Audi (Extraído de Cap. 16 de RTR4) Facultad de ...

Fuentes de datos tridimensionales

• Existen diversas maneras de crear o generar un modelo poligonal:– Escribiendo directamente la descripción geométrica.

– Escribiendo programas que creen estos datos (Modelado procedural).

– Usando programas de modelado para construir un objeto.

– Reconstruir la superficie a partir de una o más fotografías del mismo objeto, llamado fotometría.

– Muestreo de un modelo real en varios puntos, utilizando un escáner 3D, un digitalizador u otro dispositivo sensor.

– Usar alguna combinación de estas técnicas.

21/9/2020 Computación Gráfica Avanzada: <Tema, por ejemplo, Hardware Gráfico> 3

Page 4: Gustavo Audi (Extraído de Cap. 16 de RTR4) Facultad de ...

Fuentes de datos tridimensionales

• Existen dos principales tipos de modeladores:– Basados en sólidos (Solid-based)

– Basados en superficies (Surface-based)

• Los modeladores basados en sólidos usualmente se ven en el área de diseño asistido por computadora (CAD).

• Modeladores como Blender o Maya no están basados en sólidos, sino que los objetos están definidos a partir de sus superficies.

• Para mostrar y analizar, cada modelador tiene faceters. Esto es un software que transforma la representación interna del modelo en triángulos que pueden ser desplegados.

21/9/2020 Computación Gráfica Avanzada: <Tema, por ejemplo, Hardware Gráfico> 4

Page 5: Gustavo Audi (Extraído de Cap. 16 de RTR4) Facultad de ...

Teselación y Triangulación

• Teselación es el proceso de de dividir una superficie en un conjunto de polígonos. En particular será estudiada la teselación de superficies poligonales.

• La Teselación Poligonal puede llevarse a cabo por varias razones, la más común es la optimización por triángulos.

• Existen diversos objetivos cuando se realiza el teselado poligonal. Por ejemplo, una superficie convexa necesita ser subdividida para almacenar en cada vértice el efecto de sombras o reflexiones usando técnicas de iluminación global. Esto se realiza a partir de una teselación llamada particionamiento convexo.

21/9/2020 Computación Gráfica Avanzada: <Tema, por ejemplo, Hardware Gráfico> 5

Page 6: Gustavo Audi (Extraído de Cap. 16 de RTR4) Facultad de ...

Teselación y Triangulación

21/9/2020 Computación Gráfica Avanzada: <Tema, por ejemplo, Hardware Gráfico> 6

Page 7: Gustavo Audi (Extraído de Cap. 16 de RTR4) Facultad de ...

Teselación y Triangulación

• La mayoría de los algoritmos de teselación trabajan en dos dimensiones. Asumiendo que todos los puntos del polígono se encuentran en el mismo plano.

• Algunos sistemas de creación de modelos pueden generar facetas poligonales deformadas y no planas.

• Un ejemplo de este problema es el siguiente cuadrilátero deformado

7

Page 8: Gustavo Audi (Extraído de Cap. 16 de RTR4) Facultad de ...

Teselación y Triangulación

• Cuando existen polígonos deformados, una rápida acción correctiva es proyectar los vértices en un plano que es perpendicular a la normal aproximada del polígono (Newell’s formula).

• El polígono proyectado puede tener problemas de auto intersección donde uno o más de sus aristas se cruzan.

• Existen diferentes métodos computacionales más elaborados que resuelven este problema.

8

Page 9: Gustavo Audi (Extraído de Cap. 16 de RTR4) Facultad de ...

Teselación y Triangulación

9

• El algoritmo de triangulación más básico es examinar cada segmento de línea entre dos puntos dados en un polígono y ver si se cruza o se superpone a cualquier arista del polígono. Si es así, el segmento no se puede utilizar para dividir el polígono, por lo que se examina el siguiente par posible de puntos. De lo contrario se divide el polígono en dos partes usando este segmento y se triangulan los nuevos polígonos siguiendo el mismo método.

• Este método es muy lento.

Page 10: Gustavo Audi (Extraído de Cap. 16 de RTR4) Facultad de ...

Teselación y Triangulación

• Existen otros métodos más eficientes que el anterior, como el llamado Recorte de Orejas.

10

Page 11: Gustavo Audi (Extraído de Cap. 16 de RTR4) Facultad de ...

Teselación y Triangulación

11

Page 12: Gustavo Audi (Extraído de Cap. 16 de RTR4) Facultad de ...

Teselación y Triangulación

• A veces, los triángulos no pueden capturar adecuadamente la intención del diseñador. Si se aplica una textura a un cuadrilátero deformado, ninguna división diagonal conserva la intención.

12

Page 13: Gustavo Audi (Extraído de Cap. 16 de RTR4) Facultad de ...

Consolidación

• Una vez que el modelo ha pasado por los algoritmos de teselación necesarios, nos queda un conjunto de polígonos que representan el modelo.

• Existen varias operaciones que pueden ser de utilidad para mostrar los datos. Por ejemplo, si dos vértices en un triángulo son iguales, entonces implica que este no tiene área y puede ser descartado.

• Hay otros tipos de técnicas comunes llamadas algoritmos de consolidación:– Fusionado (Merging).– Orientación (Orientation).

13

Page 14: Gustavo Audi (Extraído de Cap. 16 de RTR4) Facultad de ...

Consolidación

• Algunos datos vienen en forma de polígonos desconectados, llamados comúnmente sopa de polígonos o sopa de triángulos.

• Almacenar polígonos separados desperdicia memoria y mostrarlos es extremadamente ineficiente.

• Los polígonos individuales usualmente se fusionan en una malla poligonal.

• Una malla consiste en una lista de vértices y un conjuntos de bordes.

• Cada vértice contiene una posición y otros datos opcionales.• Cada borde tiene una lista de índices enteros que representan los

vértices.

14

Page 15: Gustavo Audi (Extraído de Cap. 16 de RTR4) Facultad de ...

Consolidación

• La fusión de polígonos se puede realizar de varias formas. • Un método es utilizar Hashing.• Los datos del modelo a veces vienen con polígonos separadas

cuyos vértices se encuentran extremadamente cerca. El proceso de fusionar estos vértices, es denominado soldadura (welding).

15

Page 16: Gustavo Audi (Extraído de Cap. 16 de RTR4) Facultad de ...

Consolidación

• Un problema relacionado con la calidad del modelo es la orientación de la cara.

• Algunos datos vienen orientados de forma apropiada, con normales apuntando en direcciones correctas.

• Por ejemplo, en los trabajos CAD, el estándar es que los vértices en el contorno del polígono procedan en dirección antihoraria cuando el frente es visto (winding direction). En los triángulos, se utiliza la regla de la mano derecha.

16

Page 17: Gustavo Audi (Extraído de Cap. 16 de RTR4) Facultad de ...

Consolidación

17

• Orientando una malla poligonal.

Page 18: Gustavo Audi (Extraído de Cap. 16 de RTR4) Facultad de ...

Consolidación

• De manera informal, una malla poligonal forma un sólido si está orientada y si todos los polígonos que son visibles desde fuera tienen la misma orientación.

• Saber si un objeto es sólido puede servir para descartar la cara posterior y así mejorar eficiencia.

• La solidez también es una propiedad crítica para objetos que proyectan volúmenes de sombra.

• La prueba más simple de solidez es chequear si cada arista poligonal en la malla es compartida por exactamente dos polígonos.

18

Page 19: Gustavo Audi (Extraído de Cap. 16 de RTR4) Facultad de ...

Consolidación

• Algunas mallas poligonales forman superficies curvas pero los vértices no pueden ser curvados ya que no cuentan con un vector normal.

19

Page 20: Gustavo Audi (Extraído de Cap. 16 de RTR4) Facultad de ...

Consolidación

• Una vez que la orientación de la malla es consistente, las normales de vértice se pueden generar mediante técnicas de suavizado (smoothing techniques).

• El formato del modelo puede ayudar a especificar grupos de suavizado para la malla poligonal.

• Los valores de grupo de suavizado se utilizan para definir

explícitamente qué polígonos de un grupo permanecen juntos

para formar una superficie curva.

• Los bordes entre diferentes grupos de suavizado se consideran

nítidos.

20

Page 21: Gustavo Audi (Extraído de Cap. 16 de RTR4) Facultad de ...

Consolidación

• Una vez que es encontrado un grupo de suavizado, las normales de vértice se pueden calcular para los vértices compartidos dentro del grupo.

• La solución estándar para encontrar la normal de un vértice es promediar las normales de las superficies de los polígonos que comparten el vértice. Sin embargo, este método puede conducir a resultados inconsistentes y mal ponderados.

• Existe un método alternativo, en el que la contribución de cada normal de polígono es ponderada por el ángulo que forma en el vértice. Este método tiene la propiedad deseable de proporcionar mismo resultado sin importar si el polígono que comparte el vértice está triangulado o no.

21

Page 22: Gustavo Audi (Extraído de Cap. 16 de RTR4) Facultad de ...

Consolidación

22

Page 23: Gustavo Audi (Extraído de Cap. 16 de RTR4) Facultad de ...

Optimización

• Una lista de triángulos es el más simple y usualmente eficiente camino para almacenar y mostrar un conjunto de triángulos.

• Los datos de los vértices de cada triángulo se colocan en una lista, uno tras otro.

• Una forma estándar de aumentar el rendimiento de los gráficos es enviar grupos de triángulos que comparten vértices.

• Se describen una variedad de estructuras de datos que comparten información de vértices:– Abanicos de triángulos.– Tiras de triángulos.– Otras formas más elaboradas y eficientes para renderizar superficies.

23

Page 24: Gustavo Audi (Extraído de Cap. 16 de RTR4) Facultad de ...

Optimización

• Abanicos de triángulos. Esta estructura de datos muestra cómo se pueden formar triángulos y hacer que el costo de almacenamiento sea menor que el de tres vértices por triángulo.

24

Page 25: Gustavo Audi (Extraído de Cap. 16 de RTR4) Facultad de ...

Optimización

• Un abanico de triángulos de “n” vértices se define como una lista ordenada de vértices:

• es el vértice central, y la lista anterior indica que el triángulo es:

Donde

25

Page 26: Gustavo Audi (Extraído de Cap. 16 de RTR4) Facultad de ...

Optimización

• Si un abanico de triángulos consiste de “m” triángulos, entonces, se envían tres vértices para el primero, luego uno más por cada uno de los “m-1” triángulos restantes. El promedio de los vértices, , enviados por una abanico de triángulos de longitud “m” puede expresarse como:

26

Page 27: Gustavo Audi (Extraído de Cap. 16 de RTR4) Facultad de ...

Optimización

• Las tiras son como los abanicos de triángulos en el sentido de que los vértices de los triángulos anteriores se reutilizan. En vez de reutilizar un solo punto central y el vértice anterior, son dos vértices del triángulo anterior los que ayudan a formar el siguiente triángulo.

• El promedio del número de vértices para una tira de triángulos de largo “m” es el mismo que el caso de abanicos de triángulos, ya que tienen la misma fase inicial y envían solo un vértice por cada nuevo triángulo formado.

27

Page 28: Gustavo Audi (Extraído de Cap. 16 de RTR4) Facultad de ...

Optimización

28

Page 29: Gustavo Audi (Extraído de Cap. 16 de RTR4) Facultad de ...

Optimización

• Los abanicos y las tiras de triángulos tienen sus usos, pero lo normal en las GPUs modernas es utilizar mallas de triángulos con una sola lista de índices, para modelos complejos.

• Las tiras y los abanicos permiten compartir algunos datos, pero el almacenamiento en malla permite aún más.

• En una malla, una matriz de índice adicional realiza un seguimiento de los vértices que forman los triángulos.

• Un solo vértice puede asociarse con varios triángulos.

• El orden ideal de los triángulos en una malla es aquel que

maximice el uso de la caché de vértices.

29

Page 30: Gustavo Audi (Extraído de Cap. 16 de RTR4) Facultad de ...

Optimización

• Una forma de proporcionar un acelerador de gráficos moderno

con datos de modelo es mediante el uso de lo que DirectX llama

vertex-buffer y OpenGL llama vertex-buffer objects.

• La idea del buffer es almacenar datos del modelo en una porción contigua de memoria.

• Un búfer de vértice es una matriz de datos de vértice en un formato particular. Este formato especifica si un vértice contiene una textura normal, coordenadas, un color u otra información específica.

30

Page 31: Gustavo Audi (Extraído de Cap. 16 de RTR4) Facultad de ...

Simplificación

• La simplificación de la malla, también conocida como reducción,

es el proceso de tomar un modelo detallado y reducir su cantidad

de triángulos mientras se intenta preservar su apariencia.

• Este proceso se realiza para reducir el número de vértices

almacenados y enviados por el pipeline.

• Puede hacer la aplicación más escalable.

• Se identifican tres tipos de simplificación de malla:– Estática.

– Dinámica.

– Dependiente de la vista.

31

Page 32: Gustavo Audi (Extraído de Cap. 16 de RTR4) Facultad de ...

Simplificación

32

Page 33: Gustavo Audi (Extraído de Cap. 16 de RTR4) Facultad de ...

Simplificación

• La simplificación estática es la idea de crear modelos nivel de

detalle (LOD) separados, antes de que comience el renderizado, y

el renderizador elige entre estos.

• La simplificación dinámica proporciona un espectro continuo de

modelos LOD en lugar de unos pocos, por lo que dichos métodos

se denominan algoritmos de nivel continuo de detalle (CLOD).

• Las técnicas dependientes de vista están pensadas para aquellos

casos en los que el nivel de detalle varía dentro del modelo. El

renderizado del terreno es un caso en el que las áreas cercanas a

la vista necesitan una representación detallada, mientras que las

lejanas tienen un nivel de detalle menor.

33

Page 34: Gustavo Audi (Extraído de Cap. 16 de RTR4) Facultad de ...

Simplificación

• Un método para reducir el conteo de triángulos es utilizar una

operación de colapso de bordes (edge collapse), donde un borde

se elimina moviendo sus dos vértices para que coincidan.

34

Page 35: Gustavo Audi (Extraído de Cap. 16 de RTR4) Facultad de ...

Simplificación

• Para un modelo sólido, un colapso de bordes elimina un total de

dos triángulos, tres aristas, y un vértice.

• El proceso de colapso de borde es reversible.

• En la figura anterior, el vértice “u” colapsa a la ubicación de “v”,

pero este podria haber colapsado a la ubicación de “u”. Esto se

logra usando la llamada estrategia de colocación de

subconjuntos.

• Con una estrategia de ubicación óptima, se examina una gama

más amplia de posibilidades, utilizando una función de costo.

• En lugar de colapsar un vértice en otro, ambos vértices de un

borde son se contraen a una nueva ubicación.

35

Page 36: Gustavo Audi (Extraído de Cap. 16 de RTR4) Facultad de ...

Simplificación

• Algunas contracciones deben evitarse independientemente del

costo, comprobando si un triángulo vecino voltea su dirección

normal debido a esta.

36

Page 37: Gustavo Audi (Extraído de Cap. 16 de RTR4) Facultad de ...

Simplificación

• La función de costo puede variar con el tipo de modelo y otros

factores.

• En un gran número de situaciones, se utiliza la función de costo

de métrica de error cuadrático (QEM).

• La función de costo QEM para mover un vértice es la suma de las

distancias al cuadrado entre cada uno de los planos de los

triángulos que lo comparten y la nueva ubicación:

Donde: es la nueva ubicación, hay planos, es la normal

del plano y es la distancia desde el origen

37

Page 38: Gustavo Audi (Extraído de Cap. 16 de RTR4) Facultad de ...

Simplificación

38

Page 39: Gustavo Audi (Extraído de Cap. 16 de RTR4) Facultad de ...

Simplificación

39

Page 40: Gustavo Audi (Extraído de Cap. 16 de RTR4) Facultad de ...

Simplificación

• Las técnicas de reducción de malla pueden ser útiles, pero los

sistemas totalmente automatizados no son una panacea.

40

Page 41: Gustavo Audi (Extraído de Cap. 16 de RTR4) Facultad de ...

Compresión

• Los datos de malla triangular pueden estar comprimidos de

varias formas y acumular beneficios similares.

• Así como los formatos de archivo de imagen PNG y JPEG utilizan

compresión sin pérdida y con pérdida para texturas, se han

desarrollado una variedad de algoritmos y formatos para la

compresión de datos de malla triangular.

41

Page 42: Gustavo Audi (Extraído de Cap. 16 de RTR4) Facultad de ...

Gracias por su atención

Gustavo Audi

[email protected]