1
Modelação Geométrica
(Cap 10.10)
Instituto Superior Técnico, 2006/2007 2 ©2006, CG&M/IST
Sumário
Modelação Modelos de arameModelos de malhas poligonais Representação de sólidos e volumes
Constructive Solid Geometry
Listas de Desenho em OpenGL
3
©2006, CG&M/IST
Objectivo
Distinguir entre interior, exterior e superfície de um volume
Poder calcular propriedades dependentes desta distinção (ex.: volume, centro de massa, etc.)
Determinar a interferência/colisão entre 2 objectos
Determinar reflexão e/ou transparência
4
©2006, CG&M/IST
Modelação - Exemplos (1)
Modelação - Exemplos (2)
Conjunto suficientemente grande de objectos físicos
Representação
não ambígua completa única
rigorosa (sem aproximações)
7
©2006, CG&M/IST
Mais Propriedades Desejáveis
Sejafácil criar uma representação válida difícil criar uma representação inválida
Permita
manter o fecho depois de quaisquer transformações representação compacta algoritmos eficientes 8 ©2006, CG&M/IST
Tipos de Representações
Modelos de Arames
Modelos de Malhas
Instanciação de Primitivas
Representação por Varrimento (Sweep)
Representação de Fronteira (Boundary
Representation)
Representação por Partição do Espaço
9 ©2006, CG&M/IST
Modelos de Arame
10 ©2006, CG&M/ISTMalhas Poligonais
Definição Operações Tipos Verificação Determinação do plano de um polígono Equação do plano: Ax + By + Cz + D = 0 Normal ao plano: [A, B, C]Com P1, P2 e P3
se o produto externo é nulo os vértices são colineares
D determina-se a partir de um dos vértices
1 2 3 2 3 1 2 1P PP PP PP P C B A
Equação do Plano
Mais de 3 Vértices
o polígono pode não pertencer a um plano (erro numérico ou do método de geração dos polígonos)
determina-se o plano mais próximo de todos os vértices
13
©2006, CG&M/IST
Equação do Plano
A, B e C são proporcionais às áreas (com sinal) projectadas nos planos (y,z), (x,z) e (x,y), resp. Se polígono paralelo a (x,y) A = B = 0
Distância do vértice ao plano
basta calcular o numerador para determinar de que lado do plano está o vértice
2 2 2 C B A D Cz By Ax d n i i n i i i x x y y C n i i i i i i 1 1 1 1 2 1 1 1 1 14 ©2006, CG&M/IST 3 3 2 1 2 1 3 1 1 3 2 3 3 2 1 2 2 1 2 1 2 1 2 1 A A A A A A x x y y x x y y x x y y 2 1 3 31 0 2 0 1 A A A BD Área A A
Áreas Projectadas
(x1, y1) y x (x2, y2) (x3, y3) A1 A2 A3 B C D 15 ©2006, CG&M/IST n i i n i i i x x y y C z z x x B y y z z A n i i i i i i n i i i i i i n i i i i i i 1 1 1 1 2 1 2 1 2 1 1 1 1 1 1 1 1 1 1Coeficientes da Equação do
Plano
16 ©2006, CG&M/IST Definiçãocolecção de arestas, vértices e polígonos interligados
cada aresta é partilhada por, pelo menos, 2 polígonos
Aresta
liga 2 vértices, é partilhada por 2 polígonos adjacentes
Modelos de Malhas Poligonais
Polígonos e Vértices
Polígonosequência fechada de vértices (mínimo=3)
Vértice
partilhado por 2 arestas (mínimo)
Avaliação dos modelos
espaço e tempo
Ineficiências
Ineficiente para mais do que um polígono
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
19
©2006, CG&M/IST
Encontrar as arestas que concorrem num vértice Encontrar os polígonos que partilham
uma aresta um vértice
Encontrar os vértices de uma aresta Identificar erros
falta de uma aresta falta de um vértice falta de um polígono
Operações em Malhas
Poligonais
20 ©2006, CG&M/ISTTipos de Malhas Poligonais
Lista ExplícitaPonteiros para a Lista de Vértices Ponteiros para Lista de Arestas
21
©2006, CG&M/IST
Cada polígono é representado pela lista ordenada das coordenadas dos seus vértices
Bom para um só polígono
n n n y z x z y x z y x P 1, 1, 1, 2, 2, 2, , , ,
Lista Explícita
22 ©2006, CG&M/ISTBaseado na construção de uma lista de vértices com as respectivas coordenadas
Cada polígono é descrito por uma lista de vértices nº ou ponteiro n n n 2 2 2 1 1 1,y,z , x ,y ,z , , x ,y ,z x V
Lista de Vértices
Características
A 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 51,,22,,53,4 , , , , 2 1 5 4 3 2 1 P P V V V V V V
Exemplo
V4 V3 V2 V1P2
P1
V525
©2006, CG&M/IST
Existe uma lista de vértices
Existe uma lista de arestas, apontando para:
respectivos vértices polígonos a que pertencem
Existe uma lista de polígonos
apontando para as arestas que os constituem
Lista de Arestas (1)
26
©2006, CG&M/IST
Lista de Arestas (2)
Desenham-se arestas e não polígonos
evitam-se recorte, transformações, etc., redundantes
Não resolve a determinação de que arestas concorrem num dado vértice
27 ©2006, CG&M/IST
Exemplo
3 2 6 4 2 5 6 1 1 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 A1 A2 A3 A4 A5 A6 V4 V3 V2 V1 P2 P1 V5 28 ©2006, CG&M/IST Verificar setodos os polígonos fecham
todas as arestas são usadas uma vez e não mais do que n vezes
cada vértice é referido por 2 arestas, pelo menos (opcional) qualquer vértice seja alcançável a partir de outro, percorrendo as arestas (opcional) a malha é topologicamente plana (opcional) existe uma única fronteira (não há buracos)
Malhas Poligonais
-Consistência
Outros Critérios
Representação explícita: mais fácil de verificar
Outros critérios:
aresta usada 2 vezes no mesmo polígono cada vértice deve pertencer a um polígono (no mínimo)
comprimento não nulo da aresta bidireccional: A->P e P->a
Instanciação de Primitivas (1)
Baseada em primitivas parametrizadasex.: pirâmide com nº de faces laterais variável empregue no CAD (group technology) engrenagens, porcas e parafusos
Hierarquizáveis Não associáveis
novos objectos têm que ser definidos não podem ser compostos
31 ©2006, CG&M/IST d a b c 6 4 10 11,5 10 7 17 19,6 a c b d
Instanciação de Primitivas (2)
32 ©2006, CG&M/ISTRepresentação por Varrimento
Obtida por translação extrusão rotação Gerais
são difíceis de modelar
É difícil aplicar operações booleanas Interface ao utilizador simples
mas a armazenagem é normalmente feita noutros tipos de representação 33 ©2006, CG&M/IST
Varrimento - Extrusão e
Rotação
34 ©2006, CG&M/ISTVarrimento
Derivam das representações vectoriais Descrevem os objectos em termos das fronteiras
vértices, arestas e faces
Podem ser restritas a fronteiras planas poligonais
adicional - as faces são polígonos convexos ou triângulos
Representação de Fronteira (1)
Representação de Fronteira (2)
Difícil determinação do que é uma face
quando as superfícies são curvas mas são aproximáveis por polígonos
2-manifolds
todos os pontos da superfície possuem um disco de vizinhança que contem todos os pontos vizinhos
37
©2006, CG&M/IST
Decomposição de células
Enumeração da ocupação espacial Árvore de octantes (ou quadrantes) Árvores binárias de decomposição do espaço
Partição do Espaço
38 ©2006, CG&M/ISTDecomposição em Células
a b cSólido a representar Representações
Primitivas 39 ©2006, CG&M/IST
Enumeração da Ocupação do
Espaço
40 ©2006, CG&M/ISTVariante da enumeração da ocupação espacial
Dividir para conquistar
Subdivisão sucessiva em octantes até:
octantes sejam homogéneos (todos cheios ou todos vazio)
nível máximo atingido
Árvore de Octantes (1)
Árvore de Octantes (2)
Octantes homogéneos filhos do mesmo pai são substituídos pelo pai
Varrimento pode ser
de cima para baixo de baixo para cima
Árvore de Quadrantes
C C C C C C C C C C C C C C C C43
©2006, CG&M/IST
Cada espaço é subdividido em dois sub-espaços
Inicialmente desenvolvido para determinar superfícies visíveis
Árvore de Partição Binária (1)
44 ©2006, CG&M/IST 2 3 4 5 9 6 7 8 1 5 6 8 2 3 1 out out out 4 in out 7 in out 9 in out out
Árvore de Partição Binária (2)
45
©2006, CG&M/IST
CSG - Constructed Solid
Geometry
Conjunto de volumes, com propriedades volumétricas (densidade, centro de massa, etc.)
Cada objecto é um lugar geométrico de pontos
São definidas operações entre objectos O objecto final é hierarquia em que as folhas sáo objectos e os nós são operações
46 ©2006, CG&M/IST A B A B A B B A A B
Operações (1)
Operações (2)
(1) (2) (3) (4) (5) (6)Operações (3)
49
©2006, CG&M/IST
Modelação no OpenGL
Desenho versus Largura de BandaCriação do Objecto uma vez (envio para o processador de desenho, onde fica guardado)
Desenho do Objecto múltiplas vezes
Mas alteração do Objecto?
50
©2006, CG&M/IST
Adequação
Objectos de Background
Objectos que só sofrem transformações
Permitem um desempenho maior
51
©2006, CG&M/IST
Lista de Desenho em OpenGL
Display Lists são criados como qualquer outro objecto:glNewList (Carro,...); glEndList ();
E o seu conteúdo é desenhado:
glCallList (Carro);
52
©2006, CG&M/IST
Criação e Desenho
Pode ser desenhado quando é criado:
glNewList (Carro, GL_COMPILE_AND_EXECUTE);
Ou só criado (GL_COMPILE)
Mas a execução é sempre igual Mas podem definir transformações
Resumo
Modelação Modelos de arameModelos de malhas poligonais Representação de sólidos e volumes
Constructive Solid Geometry