Mestrado em Engenharia Informática e de Computadores Processamento de Objectos 3D Fundamentos e Conceitos Básicos Representação de Objectos 3D 2011 Corpo docente de / CG&M / DEI / IST / UTL
Sumário Representação de Objectos 3D Conceitos básicos Malhas Poligonais Representação por fronteira Representação por volume 2011 Corpo docente de / CG&M / DEI / IST / UTL
Representação de Objectos 3D Conceitos Básicos 2011 Corpo docente de / CG&M / DEI / IST / UTL
Representação de Objectos 3D Conceitos Básicos Representação de Informação Documento de texto Caracteres ASCII Imagem fotográfica Quadrículas (pixels) Faixa de Música Amostragem da amplitude do sinal Modelos tri-dimensionais?? 2011 Corpo docente de / CG&M / DEI / IST / UTL
Representação de Objectos 3D Conceitos Básicos Motivação Como se devem representar objectos 3D? Como construir essas representações? de forma rápida e automática Como manipular objectos 3D num computador? Diferentes abordagens para diferentes casos 2011 Corpo docente de / CG&M / DEI / IST / UTL
Representação de Objectos 3D Conceitos Básicos Representação de Objectos 3D Como representar este objecto num computador? 2011 Corpo docente de / CG&M / DEI / IST / UTL
Representação de Objectos 3D Conceitos Básicos Representação de Objectos 3D E este? 2011 Corpo docente de / CG&M / DEI / IST / UTL
Representação de Objectos 3D Conceitos Básicos Representação de Objectos 3D Então e esta? 2011 Corpo docente de / CG&M / DEI / IST / UTL
Representação de Objectos 3D Conceitos Básicos Abordagens de Representação Várias abordagens disponíveis Grelha de voxéis (pixéis volumétricos) Semelhante a imagem 2D Espaço Euclideano 3D Equações matemáticas (implícitas, explicítas ou paramétricas) Nuvem de pontos Conjunto de facetas (malha poligonal) Conjunto de volumes primitivos (geometria controlada) 2011 Corpo docente de / CG&M / DEI / IST / UTL
Representação de Objectos 3D Conceitos Básicos Dificuldades na Representação Diferentes formas de criar os objectos Produzem representações diferentes Ex.: TAC Laser Scan Modelação Diferentes domínios de aplicação Usam diferentes representações Ex.: Medicina CAD Alternar entre representações é complexo Por vezes problemático 2011 Corpo docente de / CG&M / DEI / IST / UTL
Representação de Objectos 3D Conceitos Básicos Laser Scan Digital Michelangelo Project 2011 Corpo docente de / CG&M / DEI / IST / UTL Imagens 1999 Marc Levoy
Representação de Objectos 3D Conceitos Básicos Laser Scan Digital Michelangelo Project Modelo de alta resolução da estátua David Resolução de 0,25mm Estátua tem 5m de altura Contém 1 bilião de polígonos Não manipulável por aplicações comerciais (em 2009) 2011 Corpo docente de / CG&M / DEI / IST / UTL
Representação de Objectos 3D Conceitos Básicos Low-cost Laser Scan DAVID Laser-scanner 2011 Corpo docente de / CG&M / DEI / IST / UTL
Representação de Objectos 3D Conceitos Básicos Low-cost Laser Scan DAVID Laser-scanner 2011 Corpo docente de / CG&M / DEI / IST / UTL
Representação de Objectos 3D Conceitos Básicos Low-cost Depth Cameras Microsoft Kinect 2011 Corpo docente de / CG&M / DEI / IST / UTL
Representação de Objectos 3D Conceitos Básicos Abordagens de Representação 2011 Corpo docente de / CG&M / DEI / IST / UTL Imagens 2003 Stanford University
Representação de Objectos 3D Conceitos Básicos Abordagens de Representação 2011 Corpo docente de / CG&M / DEI / IST / UTL Imagens 2008 John Wiley & Sons
Representação de Objectos 3D Conceitos Básicos Nuvem de Pontos Representação original Obtida através de um laser-scan Pontos representam a superfície Genericamente usada por laser-scans Ineficiente do ponto de vista computacional Geometria Física Visualização Converte-se para outra representação Vulgarmente malhas poligonais (de triângulos) 2011 Corpo docente de / CG&M / DEI / IST / UTL Imagens 2008 John Wiley & Sons
Representação de Objectos 3D Conceitos Básicos Malha Poligonal Representação por aproximação Superfície aproximada por facetas Conjunto de polígonos planares Usualmente triângulos Simplicidade de processamento Manipulação (interactiva em tempo real) Detecção de intersecções e colisões Rendering (em tempo real) Representação mais usada para Objectos 3D 2011 Corpo docente de / CG&M / DEI / IST / UTL Imagens 2008 John Wiley & Sons
Representação de Objectos 3D Conceitos Básicos Malha Poligonal Algoritmos de reconstrução de malhas Existe grande variedade Permitem converter outras representações Para malhas poligonais Qualidade da representação variável Depende do número de polígonos Limitações do uso das malhas poligonais Abordagem discreta Grande precisão só com elevado número de polígonos Definição da forma é efectuada localmente Aplicar deformações globais é difícil Criar manualmente malha faceta a faceta é inviável 2011 Corpo docente de / CG&M / DEI / IST / UTL Imagens 2008 John Wiley & Sons
Representação de Objectos 3D Conceitos Básicos Superfície Paramétrica Representação exacta da superfície Através de modelos matemático Bézier, B-Spline, NURBS Diversas aplicações práticas CAD, CAE, CAM, Não se consegue representar topologia arbitrária Usam-se conjuntos de superfícies paramétricas (patches) Exemplo Stanford Bunny tem 153 patches B-spline bicúbicos 2011 Corpo docente de / CG&M / DEI / IST / UTL Imagens 2008 John Wiley & Sons
Representação de Objectos 3D Conceitos Básicos Superfície Paramétrica Superfícies com continuidade tangencial Muito útil para modelação e design Definidas por pontos de controlo Mais compactas que malhas poligonais Mais complexas de manipular que malhas Apenas representa a superfície do objecto (B-REP) Tal como a malha poligonal Não inclui informação sobre o volume (interior) 2011 Corpo docente de / CG&M / DEI / IST / UTL Imagens 2008 John Wiley & Sons
Representação de Objectos 3D Conceitos Básicos Grelha de Voxéis Representa informação volumétrica Descreve interior do objecto Não usa espaço Euclideano Espaço 3D dividido em voxéis Podem ser boleanos (in/out) Ou podem conter informação adicional RM produz grelha de voxéis com densidade local Abordagem discreta Precisão depende da resolução Exemplo Stanford Bunny é grelha 50x50x50 2011 Corpo docente de / CG&M / DEI / IST / UTL Imagens 2008 John Wiley & Sons
Representação de Objectos 3D Conceitos Básicos Abordagens de Representação 2011 Corpo docente de / CG&M / DEI / IST / UTL Imagens 2008 John Wiley & Sons
Representação de Objectos 3D Malha Poligonal 2011 Corpo docente de / CG&M / DEI / IST / UTL
Representação de Objectos 3D Malha Poligonal Definida por um conjunto polígonos planos Contém três tipos de elementos Vértices Arestas Faces (ou Facetas) usualmente triângulos Atributos adicionais podem ser acrescentados Normais aos vértices e aos polígonos Cores dos vértices Etc 2011 Corpo docente de / CG&M / DEI / IST / UTL
Representação de Objectos 3D Malha Poligonal Conjunto de vértices, arestas e polígonos Conectados Aresta liga dois vértices Sequência fechada de arestas polígono Cada aresta é partilhada por um ou dois polígonos (manifold mesh) Representação da malha pode variar Cada representação tem vantagens e desvantagens Várias representações simultâneas Para armazenamento externo Para armazenamento interno Para manipulação interactiva 2011 Corpo docente de / CG&M / DEI / IST / UTL
Representação de Objectos 3D Malha Poligonal Técnicas de Representação Lista explícita Sem informação de conectividade explícita Contém apenas uma sopa de polígonos (polygon soup) Lista de Vértices Contém informação de conectividade explícita Mais eficiente em termos de espaço necessário Muito usada para armazenamento Lista de Arestas Contém toda a informação sobre conectividade Muito fácil analisar propriedades da malha 2011 Corpo docente de / CG&M / DEI / IST / UTL
Representação de Objectos 3D Malha Poligonal Lista Explícita Cada polígono representado por: lista ordenada das coordenadas dos seus vértices (( x y, z ), ( x, y, z ),,( x, y z )) P =, 1, 1 1 2 2 2 K Bom para um só polígono ou para sopas de polígonos n n n Ineficiente para malhas de poligonos duplicação dos vértices (memória) falta informação sobre vértices e arestas comuns esta detecção pode ser muito ineficiente desenho duplicado das arestas 2011 Corpo docente de / CG&M / DEI / IST / UTL
Representação de Objectos 3D Malha Poligonal Lista Explícita P P 1 2 = = { V1, V2, V5} { V, V, V, V } 5 2 3 4 2011 Corpo docente de / CG&M / DEI / IST / UTL
Representação de Objectos 3D Malha Poligonal Lista de Vértices Baseado numa lista de vértices (coordenadas) V = (( x, y, z ), ( x, y, z ), K, ( x, y, )) 1 1 1 2 2 2 n n zn Cada polígono descrito por lista de vértices número ou ponteiro P = ( 1,4,7 ) Lista armazenada uma única vez Fácil alterar as coordenadas dos vértices Difícil detectar que polígonos partilham uma aresta Desenho duplicado das arestas 2011 Corpo docente de / CG&M / DEI / IST / UTL
Representação de Objectos 3D Malha Poligonal Lista de Vértices V P P 1 2 = = = { V, V, V, V, V } 1 2 3 { 1,2,5} { 5,2,3,4} 4 5 2011 Corpo docente de / CG&M / DEI / IST / UTL
Representação de Objectos 3D Malha Poligonal Lista de Arestas Composta por Uma lista de vértices Uma lista de arestas, apontando para Pares de vértices que as definem Polígonos a que pertencem Uma lista de polígonos apontando para as arestas que os constituem 2011 Corpo docente de / CG&M / DEI / IST / UTL
Representação de Objectos 3D Malha Poligonal Lista de Arestas Desenham-se arestas e não polígonos evitam-se recorte, transformações, etc., redundantes Continua a não permitir Determinação de arestas concorrentes num vértice De forma explícita Tem de ser feito implicitamente 2011 Corpo docente de / CG&M / DEI / IST / UTL
2011 Corpo docente de / CG&M / DEI / IST / UTL Representação de Objectos 3D Malha Poligonal Lista de Arestas { } { } { } { } { } { } { } { } { } 3 2 6 4 1 5 6 1 2 2 1 2 5 6 1 1 5 5 2 5 4 4 2 4 3 3 2 3 2 2 1 2 1 1 5 4 3 2 1,,,,,,,,,,,,,,,,,,,,,, A A A A P A A A P P P V V A P V V A P V V A P V V A P V V A P V V A V V V V V V = = = = = = = = =
Representação de Objectos 3D Malha Poligonal Consistência da Malha Verificar se todos os polígonos (faces) fecham Polígonos finitos todas as arestas são usadas uma vez Determinar quantas arestas tem cada polígono (face) grau da face se cada vértice é referido por 2 ou mais arestas valência do vértice se nenhuma aresta é usada mais que n vezes manifold / non-manifold 2011 Corpo docente de / CG&M / DEI / IST / UTL
Representação de Objectos 3D Malha Poligonal Malha Manifold Malha é manifold se Cada aresta pertence apenas a uma ou duas faces Aresta pertence a apenas uma face representa fronteira da malha Malhas manifold têm propriedades geométricas Que permitem a aplicação segura de vários métodos Malha manifold possui característa Euler-Poincaré χ = ( v e + f ) 2011 Corpo docente de / CG&M / DEI / IST / UTL
Representação de Objectos 3D Malha Poligonal Característica Euler-Poincaré Num polyedro convexo: χ = ( v e + f ) = 2 Tetraedro Hexaedro Octaedro Dodecaedro Icosaedro 2011 Corpo docente de / CG&M / DEI / IST / UTL
Representação de Objectos 3D Malha Poligonal Característica Euler-Poincaré Num poliedro não convexo: χ = ( v e + f ) =? χ = ( 6 12 + 7 ) = 1 χ = ( 12 24 + 12 ) = 0 χ = ( 12 30 + 20 ) = 2 2011 Corpo docente de / CG&M / DEI / IST / UTL
Representação de Objectos 3D Malha Poligonal Genus (género) de uma Superfície Descreve a sua complexidade A nível da topologia (não de número de polígonos) Corresponde ao número de apêndices (handles) De que uma superfície (ou malha) contém g = 2 c b χ 2 Esfera g=0 e Torus g=1 E um cubo? 2011 Corpo docente de / CG&M / DEI / IST / UTL
Representação de Objectos 3D Malha Poligonal Genus de um cubo Como calcular? Determinar caraterística de Euler-Poicaré do cubo Usar depois esse valor para determinar Genus Vamos assumir malha definida por Seis faces de grau 4 Oito vértices de valência 3 Doze arestas 2011 Corpo docente de / CG&M / DEI / IST / UTL
Representação de Objectos 3D Malha Poligonal Genus (género) de um cubo Caraterística de Euler-Poicaré χ = ( 8 12 + 6 ) = 2 Genus (género) do cubo g = 2 *1 0 2 2 = 0 2011 Corpo docente de / CG&M / DEI / IST / UTL
Representação de Objectos 3D Malha Poligonal Consistência da Malha Verificar opcionalmente se: qualquer vértice é alcançável a partir de outro percorrendo as arestas a malha é topologicamente plana não se auto-intersecta não existe fronteira na malha (não há buracos) watertight mesh 2011 Corpo docente de / CG&M / DEI / IST / UTL
Representação de Objectos 3D Malha Poligonal Consistência da Malha Representação explícita mais difícil de verificar Lista de Arestas mais fácil Outros critérios: aresta usada duas vezes no mesmo polígono cada vértice deve pertencer a um polígono (no mínimo) comprimento não nulo da aresta bi-direccionalidade A P e P A planaridade dos polígonos 2011 Corpo docente de / CG&M / DEI / IST / UTL
Representação de Objectos 3D Malha Poligonal Equação do Plano Necessário conhecer equação do plano de que cada face Usada para Testar planaridade do polígono (face) Requisito de malhas poligonais Calcular normais Equação do plano Ax + By + Cz + D = 0 Normal ao plano [A B C] 2011 Corpo docente de / CG&M / DEI / IST / UTL
Representação de Objectos 3D Malha Poligonal Malhas de Triângulos Para evitar inconsistências Testes de planaridade Usam-se geralmente malhas triangulares (Triangle Mesh) Complexidade da malha medida em número de triângulos (polígonos) 2011 Corpo docente de / CG&M / DEI / IST / UTL
Representação de Objectos 3D Malha Poligonal Conclusões Malha poligonal é a representação mais usada Em computação gráfica Simplicidade algébrica (álgebra linear) Facilita a aplicação de algoritmos Detecção de colisões e intersecções RSO, Recorte e Rendering Qualquer objecto pode ser modelado usando malha Desde que haja memória suficiente Muitos algoritmos para geral malhas de polígonos a partir de outras representações 2011 Corpo docente de / CG&M / DEI / IST / UTL
Representação de Objectos 3D Malha Poligonal Conclusões A maior parte dos formatos usa malhas VRML, MPEG-4, STL, PLY, OFF, DAE, Malha é representação discreta Possui continuidade C 0 Não representa exactamente superfícies curvas Apenas uma aproximação destas Requer memória considerável Para uma boa representação Mas é de fácil implementação 2011 Corpo docente de / CG&M / DEI / IST / UTL
Representação de Objectos 3D Malha Poligonal Requisitos de Memória Exemplo: Cubo em malha de triângulos 12 faces (triângulos) 8 vértices (pontos 3D) 18 arestas (segmentos de recta) Qual a memória/tamanho de ficheiro necessária se Pontos representados em vírgula flutuante (float = 4 bytes) Ponteiro para vértice é inteiro (4 bytes) 2011 Corpo docente de / CG&M / DEI / IST / UTL