Modelagem
Transcrição
Modelagem
Modelagem Frederico Damasceno Bortoloti Adaptado de: Donghoon Yang Anselmo Montenegro Claudio Esperança Paulo Roma Cavalcanti Computação Gráfica e Áreas Correlatas processamento de imagens Imagem digital computação gráfica (síntese de imagens) visão computacional Modelos modelagem geométrica Estrutura de aplicação gráfica interativa tradicional Modelagem vs vs. Visualização • Modelagem: • Interessada na descrição de uma cena • Externamente: representação na forma de arquivo contendo as informações geométricas (e outras) • Internamente (na execução do programa): representação em estrutura de dados residente em memória • Visualização: ç • Interessada na visualização (display) da cena a partir (posição ç do observador)) de uma dada câmera (p • A princípio, são conceitos independentes. Espaços de Coordenadas • Plano ou R² (2D) Espaços de Coordenadas • Espaço ou R³ (3D) Paradigmas de Abstração • A necessidade de paradigmas (Ari Requicha). • Paradigma dos universos. universos • • • • Físico F. Matemático M. M Representação R. Implementação I. I Problemas da Área • Estudar fenômenos em F. • Definir os modelos. • Estudar as relações entre R e M. • Definir representações de modelos em M. • Estudar conversões entre representações. representações • Definir métodos de implementação. • Comparar estratégias em I. Esquemas de Representação • Objetos do universo físico: “sólidos” • O que é um sólido? • Objetos do universo matemático vêm da: • Geometria diferencial • Topologia diferencial Geometria pode Ser Complicada Nó Garrafa de Klein (não orientável) Toro x Garrafa de Klein Superfícies Não Orientáveis • F Faixa i d de Möbius Möbi só ó tem t um lado l d e uma borda. b d • Superfície Romana é obtida costurando-se uma faixa de Möbius à borda de um disco ((representação p ç de RP2 no R3)). Superfície Romana Faixa de Möbius Histórico • Modelagem por arames (wireframes). • Representa p os objetos j por p arestas e p pontos sobre a sua superfície. ambíguos • Gera modelos ambíguos. • Modelagem por superfícies (década de 60). • Fornece a descrição matemática das superfícies que delimitam o objeto. • Poucos testes de integridade do modelo. Histórico • Modelagem de Sólidos (década de 70). • Implícita p ou explicitamente p contém informações do fechamento e conectividade dos objetos. j • Garante a realização física. • Sistemas CAD-CAM CAD CAM utilizados pela indústria. indústria Estado da Arte • Modelagem de dimensão mista ou non) manifold ((década de 80). • Permite representar objetos com estruturas internas ou com elementos pendentes de dimensão inferior. • Sólido delimitado por superfícies não necessariamente planas localmente. • Ex.: E ACIS (Spatial (S ti l T Technology) h l ) – AutoCad. A t C d Histórico • Início dos anos 70 • Ian Braid : Ph.D. thesis at the University of Cambridge in England introduced the BUILD system • ROMULUS, ROMULUS Parasolid, Parasolid ACIS • the Compac system : U of Berlin, Germany • Proren : U of Ruhr, Germany • Brun’s B ’ Euclid E lid system : France F • Engeli’s Euklid system : Switzerland • TIPS-1 : Hokkaido University, Japan • GeoMap : University of Tokyo, Japan • Shapes : Draper Labs, US • Synthavision y system y : US • GLIDE : Chuck Eastman, Carnegie-Mellon, Architectural application and database y of Rochester • PADL : University Aristides A. G. Requicha, GEOMETRIC MODELING: A First Course Sólido • Adjetivo d • • • • • Não macio Não oco Não adulterado ou não misturado ç forte e segura g De construção … • Substantivo • Algo sólido • Uma figura geométrica tridimensional de um objeto • Uma U substância b â i que resiste i a stress moderado d d e deformação, d f diferente de um líquido ou gás… Encarta Dictionary Descrição de Sólidos • Assuma-se que um sólido é um conjunto p tridimensional de pontos. • Conjuntos de pontos podem ser descritos • P Por suas fronteiras f t i • Por campos escalares • Definidos por equações • Amostrados Objetivos da Modelagem de Sólidos • Problemas bl d de modelos d l gráficos: f f l de falta d robustez, b imcompletude, aplicabilidade limitada. • Completa C l t representação t ã d de objetos bj t sólidos ólid que são ã adequados para responder a quaisquer questões geométricas (de robôs) sem ajuda do usuário humano. humano • Duas maiores questões; integridade e complexidade Soonh ng Han Soonhung Han, Kaist Propriedades da modelagem de sólidos • Poder P d expressivo; i • Validade: manufacturabilidade; • Desambigüidade e unicidade; • Languagens de Descrição: operações para construção • Concisão: C i requerimento i d de armazenamento • Facilidade computacional e aplicabilidade: q de p poder computacional p requerimentos Soonhung Han, Kaist Modelo sólido • Criação apenas de representações completas de objetos sólidos • Representações desambígüas para sólidos eque e tos para pa a p propriedades op edades matemáticas ate át cas • Requerimentos para um modelo sólido • • • • • • Rigidez Finitude Solidez Fechamento sob operação Booleana Descrição finita Determinismo de Fronteira Propriedades matemáticas requeridas • Rigidez d • Distância e ângulo fixos no espaço Euclidiano • Preservação de distâncias e ângulos • Finitude • Extensões finitas de objetos físicos • Solidez • Se Sem faces aces ou aarestas estas pe penduradas du adas • Fechamento sob operação Booleana • Operações p Booleanas aplicadas p a sólidos devem p produzir outro sólido • Resultado de operação Booleana pode ser usado como entrada para outras operações Booleanas • Subtração e adição de sólido são garantem a produção de sólidos Propriedades matemáticas requeridas • Descrição finita • Quantidade Q finita de dados deve ser apta p a descrever conjuntos de pontos usados em modelos sólidos • Determinismo de fronteira • F Fronteira t i d de um sólido ólid deve d definir d fi i o sólido ólid desambigüamente Tipos de modelos sólidos • • • • Modelos M d l d de Decomposição D i ã (BSP-trees, (BSP t O t Octrees, etc.) t ) Modelos de Arame (Wireframe) Modelos de Superfície (Surface Modeling) Modelos de Sólido (Solid Modeling) • • • • • Modelos Construtivos (CSG – Constructive Solid Geometry) Modelos de Fronteira (B-rep – Boundary Representation) Modelos Híbridos (CSG e B-rep) M d l Baseados Modelos B d em Features F (F (Feature-Based B d Modeling) M d li ) Modelos de Dimensão Mista (Non manifold) Representação de Sólidos • As duas formas, de descrever conjuntos de pontos, dão origem p g a três tipos p de representação: • Por bordo (B-rep – Boundary Representation) • Implícita (CSG – Constructive Solid G Geometry) t ) • Por enumeração do espaço em células (BSPtrees, Octrees, etc.)) Modelo de Decomposição • Representa um conjunto de pontos como ç de objetos j simples p a partir p de uma coleção uma coleção fixa de tipos de objetos primitivos combinada com uma única primitivos, operação de “colagem” Tipos de modelos de decomposição • Enumeração exaustiva • Todo espaço é igualmente dividido em blocos e uma matriz 3D armazena informações sobre o material (ou a falta dele) em cada bloco • Voxel V l • Decomposição celular • Células irregulares dividem o objeto em blocos • FEM (Finite Element Meshes) para FEA (Finite Element Analysis) – análise estrutural por elementos finitos • Subdivisão de espaço p • Divide o espaço em blocos recursivamente • Representação em Quadtree, Octree Enumeração Exaustiva • Caso especial de decomposição onde primitivas são cúbicas em suas formas • Elementos de volume de tamanho uniforme chamados voxels • Usado extensivamente em computação gráfica e na CG p para medicina • Eficiente mas requer armazenamento significativo • Acurácia limitada a menos que os voxels sejam extremamente pequenos Voxel Voxel Estruturas da cabeça e do cérebro ( (ocultas) ) extraídas í de 150 1 0 ffatias Decomposição Celular • Variedade de tipos de células básicas e um p de combinação ç “colar” único operador • Células individuais são geralmente criadas como instâncias parametrizadas de tipos de células • Células podem ser qualquer objeto que seja topologicamente equivalente a uma esfera (sem buracos) FEM Subdivisão de Espaço • Inventado para superar o grande consumo de memória da enumeração exaustiva • Esquema de subdivisão adaptativa baseado na grade tridimensional de uma enumeração exaustiva Subdivisão de Espaço Representações por Células • Dividem Di id o espaço em sub-regiões b iõ convexas. • Exaustiva (Voxels): Cubos de tamanho igual • Octrees: O t Cubos C b cujos j lados l d são ã potências tê i de d 2 • BSP-trees: Poliedros convexos •À Às células él l são ã atribuídas t ib íd valores l d de um campo escalar F(x, y, z). • Campo é assumido constante dentro de cada célula. célula • Sólido é definido como o conjunto de pontos tais que A < F(x, F(x yy, z) < B para valores A e B estipulados. Quadtrees (2D) / Octrees (3D) • Estruturas de dados (árvores) para p ç hierárquica q do plano p decomposição (quadtrees) / espaço (octrees) • Podem ser usadas para guardar diferentes tipos de dados, por ex. • Conjunto de pontos p g • Malhas poligonais Quadtree Quadtrees • Todo d nó representa um quadrado d d no plano. l • Todo nó interno possui exatamente quatro filhos, os quais i representam t os quatro t quadrantes d t d do nó ó pai: i noroeste, nordeste, sudoeste e sudeste. • A subdivisão continua conforme algum critério de parada. http://www.tecgraf.puc‐rio.br/~hermann/gc/ Quadtree – Critério de Parada • Exemplo: E l 1. 2. Começa com quadrado envolvendo todo o objeto, que em seguida é dividido em 4 quadrados menores. Cada um é classificado em • Cheio: o quadrado está totalmente dentro do objeto • Vazio: o q quadrado está totalmente fora do objeto j • Cheio-Vazio: apenas parte do quadrado é ocupada pelo objeto 3. • Para cada quadrado cheio-vazio, repetir os procedimentos 1 e 2. O procedimento encerra quando só existirem quadrados cheios e vazios Pinho, PUCRS Quadtree - Exemplo http://lcp lcad icmc usp br/~nonato/ED/Quadtree/quadtree http://lcp.lcad.icmc.usp.br/ nonato/ED/Quadtree/quadtree.htm htm Quadtree – Programa Exemplo Autores: Patrícia Zottis e Rodrigo Fehse Alterações: Leonardo Langie ‐ PUCRS Octree • Idêntica à Quadtree, mas considerando o p ç 3D espaço • Cubo é dividido em 8 sub-cubos Octree Octrees Octrees FlipCode.com Octrees Uso de Octrees e Quadtrees • Exemplos: • Frustum culling, g, detecção ç de colisão, operações de união e interseção ç • Se pai (não) é importante, todos os filhos também (não) ( ) são • Desvantagem: • Trabalhosas para manipular FlipCode.com BSP Trees BSP-Trees Malhas de Polígonos • Construção de d modelos d l 3D usando d grupos de d polígonos. l • Como cada polígono é planar, necessita-se grande quantidade de polígonos para dar a impressão de superfícies curvas 10K polígonos 1K polígonos www.gamesfaction.com Mesh Tesselation • Construção de malhas poligonais • A partir de representações abstratas http://www.cs.lth.se/Education/ Courses/EDA221/ • A partir de nuvens de pontos http://www.ticam.utexas.edu/CCV/ projects/VisualEyes/visualization/ geomod/cloud/cloud.html Malhas de triângulos • Costuma-se usar triângulos l como o polígono l d malhas das lh • • • • O polígono é gerado com exatamente 3 vértices por face Um vértice pode pertencer a qualquer número de faces Adjacência calculada em tempo constante Triângulos g são sempre p p planares Giambruno, 2003 , Alguns tipos de malhas de triângulos • O primeiro triangulo é desenhado com três vértices vértices, e os demais com apenas um. Strip Fan • Muitos dos vértices são comuns a vários polígonos que o constituem. A i a organização Assim, i ã dos d polígonos lí com vista i t o compartilhamento tilh t dos d vértices comuns traduz-se num envio e processamento únicos destes vértices [Möller 2003]. Problema Geral • Quantos mais polígonos, l menos ffacetada d fica f a superfície f curva • Mais polígonos, polígonos significa mais tempo de processamento!!! LOD – Level of Detail • À medida did que à distância di â i da d câmera â a um modelo d l aumenta, o espaço por este ocupado na janela diminui e, conseqüentemente, o detalhe com que é visualizado também diminui. • O LOD permite definir d f representações alternativas l para um objeto b gráfico, f cada uma sendo ativada de acordo com a distância ao observador. LOD • T Torna-se desnecessário d ái e ineficiente definir o objeto com todo detalhe. O objetivo bj ti principal i i l é o de d utilizar diferentes representações de um modelo, d l normalmente l de d resoluções distintas, que serão selecionadas de acordo d com um critério de d decisão pré-determinado. Um dos critérios de decisão mais utilizado é à distância do modelo à câmera. Tipos de LOD • Discreto • A construção ç das diferentes representações p ç do modelo é realizada numa fase de préprocessamento,, sendo associada a cada uma p delas um intervalo de distâncias à câmera dentro do q qual o nível de detalhe deve ser utilizado. execução o algoritmo calcula a • Durante a execução, distância da câmera ao objeto e avalia qual dos diferentes níveis de detalhe deve ser utilizado. Tipos de LOD • Contínuo • Os níveis de detalhe são g gerados em tempo p de execução. • View dependent LOD • Extensão de LOD contínuo usando posição do observador para definir o nível de detalhe. Exemplo de LOD Discreto • VRML: nó LOD LOD • Exemplo de LOD • X3D LOD Contínuo Vi d View dependent LOD d t LOD LOD Contínuo observador View dependent LOD LOD Contínuo Visualização de Terrenos • http://www.llnl.gov/icc/sdd/img/images.shtml h // ll l /i / dd/i /i h l Modelo de Arame (Wireframe) • Representação de arestas (pontos + p ) conexões entre pontos) Modelo de Arame (Wireframe) Modelo de Arame (Wireframe) • Vantagens • Simplicidade e velocidade na visualização dos modelos (geramse apenas linhas) • Problemas • Dificuldade de realizar operações p ç com sólidos (cálculo ( de massa,, volume, determinação de inclusão, sem geração de caminho para ferramentas para NC...) • Representação ambígüa (sujeita a interpretações diferentes) As duas representações abaixo são válidas para o modelo em wireframe abaixo Márcio Pinho, PUCRS Modelo de Arame (Wireframe) Ambigüidade e Unicidade • Uma representação é única quando o modelo associado possui uma única representação. • Uma representação é ambígua quando pode representar mais de um modelo. • Representação ambígua é catastrófica (wireframe). • Inviabiliza máquinas de controle numérico. Modelos de Superfície • Mais poderosos d que simples l modeladores d l d baseados b d em wireframe por prover descrições matemáticas da forma das superfícies dos objetos • Pode representar uma superfície fechada (volume) ou aberta Modelos de Superfície • Armazena equações de d superfícies • Maioria M i i dos d pacotes t 3D usam modelagem de superfície • Boa para visualização de complexas p superfícies p e geração de caminho para NC de superfícies complexas • Informações sobre o volume l são ã ambigüas bi ü e difíceis de calcular Modelos de Superfície • Superfícies f não estão adequadamente conectadas • Nenhuma informação de conectividade é armazenada. • Propriedades p de massa não fazem sentido Modelos de Sólido • Sistemas que são capazes de realizar a g sólida são muito mais modelagem poderosos que simples modeladores baseados em wireframe. wireframe • Esses programas são usados para construir i componentes que são objetos bj sólidos, e não simplesmente p uma malha de linhas trançadas. Modelo Construtivo • R Representa t um conjunto j t d de pontos t como combinação bi ã d de um conjunto de pontos de primitivas. • Cada uma das primitivas é representada como uma instância de um tipo de sólido primitivo p p para combinar p primitivas • Operações • União • Interseção • Diferença • Muito eficiente em termos de armazenamento • Visualização requer que curvas e superfícies individuais sejam combinadas e avaliadas • Muito caro computacionalmente Tipos de modelos construtivos • Modelo Half-space Funções f(x,y,z) dividem o espaço em 2 metades (f<0 ou f>0 @( @(x,y,z)) )) Metades podem ser delimitadas (esfera) ou não delimitadas (cilindro infinito) • Modelo CSG(Constructive Solid Geometry) Usuário apenas interage com objetos sólidos delimitados Computador p modela sólidos delimitados como uma combinação de meios espaços (half-space) Quase todas modelagens construtivas usam CSG pois é mais i fácil fá il para o usuário. ái Modelo Half-space Half space Cilindro Infinito Planos Cilindro Finito z<b 2 2 x 2+ y < r z>a Department of Mechanical Engineering, The Ohio State University Modelo CSG • Operações CSG definem objetos através de p ç regularizadas g de conjuntos j de operações pontos. • União, União Interseção e Diferença Diferença. • Um objeto é regular se o fechamento do interior do seu conjunto de pontos é igual próprio p conjunto j de p pontos. ao p Modelo CSG • Primitivas Operações Booleanas União Interseção Diferença Árvore CSG • Um modelo CSG é codificado por uma árvore. • Os nós internos contêm operações de d conjunto ou transformações lineares afim. afim • Folhas contêm objetos primitivos (tipicamente, quádricas). Modelo CSG • Árvore Á CSG Modelo CSG • Árvore Á CSG Modelo CSG • Árvore Á CSG Modelo CSG Modelo CSG Modelo CSG Modelo CSG Modelo de Fronteira • • • • • Representa R t um conjunto j t d de pontos t em ttermos d de sua ffronteira. t i Fronteira de sólido : surperfícies Fronteira de superfície p : faces Fronteira de face : curva (ou aresta) A maioria dos pacotes de modelagem de sólido usam a representação de fronteira (B (B-rep) rep) para armazenar modelos • Sólido é considerado como delimitado por um conjunto de faces • Faces tem uma representação matemática compacta • • • • Plano l Toróide Cilíndro Superfície paramétrica como uma superfície de Bezier Modelo de Fronteira aresta face vértice Boundary Representation (BRep) • Define-se o modelo 3D a partir de conjunto de polígonos que delimitam uma região fechada no espaço • Esses polígonos são as faces do objeto 3D (poliedro) Boundary Representation (BRep) • Representações R • 1 lista de vértices explícita: FACE: (x1, y1, z1)-(x2, y2, z2)- .... - (xn, yn, zn); • 2 listas: lista de vértices e lista das topologias p g das faces VÉRTICES: 1 - (x1, (x1 y1 y1, z1) 2 - (x2, y2, z2) .... .... .... n - (xn, (xn yn yn, zn) FACES: 1 - v1, v1 v2 v2, v3 v3, ...., vn 2 - v3, v5, ..., vn .... .... .... n – vn, vn v4 v4, ..., v1 • 3 listas: vértices, arestas e faces Exemplo de 3 listas http://gbdi.icmc.usp.br/documentacao/ apostilas/cg/downloads/modpoliedrais pdf apostilas/cg/downloads/modpoliedrais.pdf Grafo B-Rep B Rep Topology Geometry Modelos Híbridos de Sólido •O Os métodos ét d d de modelagem d l sólida ólid CSG e B-rep B são freqüentemente combinados para gerar modelos de componentes. componentes • Cada um desses métodos possui suas limitações, e componentes de difícil criação fazendo uso de um ou outro, podem ser gerados mais facilmente usando uma combinação de ambos os métodos. • A maioria dos sistemas modeladores sólido comerciais são híbridos utilizando tanto o método CSG q quanto o B-rep. p Modelos Híbridos de Sólido Sólido B-Rep Boundary y Representation: •Extrusão •Revolução •Varredura •Mesclagem de perfis 2-D CSG Constructive Solid Geometry: •Usa primitivas sólidas (cilindro, cone, etc.) como building blocks •Construção de sólido combinando primitivas usando operadores Booleanos de união, interseção e diferença Modelos Híbridos de Sólido • M Modelos d l sólidos ólid são ã conhecidos h id por serem representações completas, válidas, e não ambíguas de objetos. • Um sólido completo é aquele que permite um ponto no espaço ser classificado relativo ao objeto, se está dentro ou fora ou sobre o objeto. j • Essa classificação é chamada de endereçabilidade espacial ou classificação de pertinência a conjunto. • Um sólido válido não deve ter arestas ou faces penduradas, só assim permitirá análise de interferência, cálculos das propriedades de massa, modelagem e análise áli estrutural t t l de d elementos l t finitos, fi it CAPP, CAPP machine hi vision, e programação de NC. Modelos Híbridos de Sólido Funções de Modelagem Sólida • Diferentes Dif maneiras i que um usuário á i pode d criar formas sólidas: Criação de primitivas p ç Booleanas Operações Operações de revolução Operações de superfície Modelagem baseada em Features de Engenharia • Modelagem paramétrica • • • • • Criação de Primitivas •P Primitivas i iti são ã fformas sólidas simples com superfícies matemáticas simples • Pode ser controlada por um número pequeno de parâmetros e posicionada usando p uma matriz de transformação Operações Booleanas •O Operações õ B Booleanas l são usadas para fazer formas mais complicadas combinando formas mais simples • 3 tipos de operações são possíveis: • União • Interseção • Diferença Operações de Revolução • Usa seções em wireframe 2D para gera sólido l d 3D p • Inclui operações como: • • • • Extrusão Revolução Varredura Formar por Seções Operações de Superfície •O Opera di diretamente t t nas superfícies, arestas e vértices do modelo sólido, para criar uma modificação desejada • Exemplos: • • • • Chanfro Arredondamento edo da e to Rascunho Casca Constructive Solid Geometry (CSG) • Objetos são construídos a partir das Primitivas Sólidas • Junção ou União • Corte ou Diferença • Interseção ou Material Comum Constructive Solid Geometry (CSG) Modelos Baseados em Features • Um U feature f pode d se definido d fi id como um elemento físico de uma peça que tem algum l significado i ifi d para a engenharia. h i Ele l deve satisfazer as seguintes condições: • ser um constituinte físico de uma peça; p p para uma forma g geométrica • ser mapeável genérica; g , sob o p ponto de • ser tecnicamente significante, vista da engenharia; e propriedades p q que p podem ser p previstas. • ter p Modelos Baseados em Features • O significado técnico de feature pode ç à qual q um ffeature serve, envolver a função como ele pode ser produzido, que ações a sua presença deve iniciar iniciar, etc etc. • Features podem ser pensados como ' i ii 'primitivas d de engenharia' h i ' relevantes l a alguma g tarefa de engenharia. g Modelos Baseados em Features • O método ét d permite it criar i ffuros, chanfros, h f rasgos, etc, para serem associados com outras entidades ou faces. • A modelagem por features é baseada na idéia de se desenhar utilizando buildingg blocks - blocos de construção. • Ao invés de se usar formas analíticas como paralelepípedos, l l í d cilindros, ili d esferas f e cones como primitivos, o usuário cria modelo do produto usando primitivos de maior nível que são mais relevantes para sua aplicação específica. Modelos Baseados em Features • O conjunto j t fixo fi d de features f t oferecido f id pelos l atuais t i modeladores ainda é muito limitada para uso industrial, o que limita as possibilidades do projetista. • Os ffeatures devem ser adaptáveis p aos usuários e que a biblioteca de features deve ser extensível. Modelos Baseados em Features • Exemplos • • • • • Furo Slot Cubo Chanfro Rasgo Modelos Paramétricos • A modelagem sólida paramétrica permite que se crie modelos de p q produtos com dimensões variacionais. • Ligações bidirecionais entre o modelo e o esquema de dimensionamento permite a regeneração automática i d de modelos d l depois p de mudanças nas dimensões e atualização automática das dimensões relacionadas. Modelos Paramétricos • Parâmetros vêm de: • dimensões em esboços ç 2D • dimensões em geometria 3D (sistemas avançados) • parâmetros de operação de modelagem • variáveis iá i em equações õ do d usuário ái •Ag geometria inteira da p parte p pode ser controlada por um pequeno número de parâmetros chave! Modelos Paramétricos Modelagem Paramétrica Modelagem Dirigida à Dimensão Modelagem Baseada em Restrições Usa parâmetros para especificar dimensões de entidades Usa restrições geométricas tais como paralelismo, concentricidade, etc. t Modelos Non-manifold Non manifold • Transferência de calor de uma parte tocando outra: faces tocantes • Propagação de rachadura: elementos 1D e 2D dentro de uma p parte sólida • Material híbrido: painel sanduíche • 2 tipos de modeladores non-manifold; • Inclui entidades de dimensões mais baixas em uma estrutura de dados de modelo sólido • Concentra em modelos compostos => modelo celular Soonh ng Han Soonhung Han, Kaist Estrutura de dados Non-manifold Non manifold Modelo Non-manifold Non manifold A B Codificação • Explícita. • Ponteiros para lista de vértices. • Ponteiros para lista de arestas. • Winged-Edge (Half-Edge, Face-Edge). • Quad Quad-Edge Edge (Guibas (Guibas-Stolfi) Stolfi). • Radial-Edge. Codificação Explícita • A mais simples. p a lista • Cada face armazena explicitamente ordenada das coordenadas dos seus vértices: P = {( x1 , y1 , z1 ), ) ( x2 , y2 , z 2 ),..., ) ( xn , yn , z n )} • Muita redundância de informação. informação • Consultas são complicadas. • Obriga a execução de algoritmos geométricos para determinar adjacências. Desenho da Malha •C Cada d aresta t é desenhada duas vezes pelos duas vezes, faces que a compartilham. compartilham • Não é bom para plotadoras ou filmes. filmes Ponteiros para Lista de Vértices • Vértices são armazenados separadamente. • Há uma lista de vértices. • Faces referenciam seus vértices através de ponteiros. i • Proporciona p maior economia de memória. • Achar adjacências ainda é complicado. • Arestas ainda d são desenhadas d h d duas d vezes. Exemplo Ponteiros para Lista de Arestas • Há também bé uma li lista d de arestas. • Faces referenciam as suas arestas através de ponteiros. • Arestas são desenhadas percorrendo percorrendo-se se a lista de arestas. • Introduzem-se Introduzem se referências para as duas faces que compartilham uma aresta. • F Facilita ili a d determinação i d das d duas ffaces incidentes na aresta. Exemplo Winged Edge Winged-Edge Winged Edge Winged-Edge • Criada em 1974 por Baumgart. p p por fronteira. • Foi um marco na representação • Armazena informação na estrutura associada às aarestas estas ((número ú e o de campos ca pos é fixo). xo). • Todos os 9 tipos de adjacência entre vértices, arestas e faces são determinados em tempo constante. • Atualizada com o uso de operadores de Euler, Euler que garantem: V – A + F = 2. 9 tipos de Relacionamentos de Adjacência Face Edge Face-Edge Radial Edge Radial-Edge • Criada em 1986 por Weiler. • Representa p objetos j non-manifold. f • Armazena a lista ordenada de faces incidentes em umaa aresta. u a esta. • Muito mais complicada que a Winged-Edge. Radial Edge Radial-Edge Prós e Contras de Representações • N Na CSG pode-se d f il facilmente t assegurar que objetos bj t são ã “sólidos” se todas as formas primitivas forem sólidas. Isso pode ser importante para algumas aplicações de engenharia ou manufatura. f t • Por comparação, ao criar representações baseadas em B-rep, p g adicionais são necessários,, ou checagens g dados topológicos de consistência devem ser realizadas para assegurar que a dada descrição de fronteira especifica um objeto sólido válido. • Porém é fácil determinar, dado um ponto, se ele está no interior, fronteira ou exterior do objeto. • Operações O õ booleanas b l são ã ab base d do CSG. CSG • Boa para detecção de colisão (collision detection) Prós e Contras de Representações •N Numa B-rep B as interseções i t õ estão tã representadas t d explicitamente e é mais fácil exibir um ponto sobre a superfície do objeto. • Porém é difícil determinar, dado um ponto, se ele está no interior, fronteira ou exterior do objeto. j • Operações booleanas são complicadas. • Mais flexível e tem um conjunto j mais rico de operações. • Escolha mais apropriada para sistemas CAD – CSG f i usado foi d inicialmente i i i l t por muitos it sistemas i t comerciais pois é mais fácil de se implementar. Prós e Contras de Representações • Em E representações por decomposição d i / células a classificação de um ponto é imediata, d bastando b d avaliar l o sinall d do valor l do campo no ponto. • Exibir um ponto sobre a superfície do j requer q a solução ç de uma equação, q ç , objeto que pode ser complicada. • Operações booleanas são avaliadas facilmente. Conversão entre Representações • Conversão C CSG → B-rep B é denominada d i d avaliação do fronteira. • Conversão B-rep → CSG é muito mais complicada. p • Conversão B-rep → Células é simples. • Conversão Células → B-rep B rep é relativamente simples (marching cubes). • Conversão CSG → Células é simples. • Conversão Células → CSG é complicado. p