Você está na página 1de 54

Introduo Computao Grfica

Modelagem
Claudio Esperana
Paulo Roma Cavalcanti

Histrico
Modelagem por arames (wireframes).
Representa os objetos por arestas e
pontos sobre a sua superfcie.
Gera modelos ambguos.

Modelagem por superfcies (dcada de


60).
Fornece a descrio matemtica das
superfcies que delimitam o objeto.
Poucos testes de integridade do modelo.

Histrico
Modelagem de Slidos (dcada de
70).
Implcita ou explicitamente contm
informaes do fechamento e
conectividade dos objetos.
Garante a realizao fsica.
Sistemas CAD-CAM utilizados pela
indstria.

Estado da Arte
Modelagem de dimenso mista ou
non-manifold (dcada de 80).
Permite representar objetos com
estruturas internas ou com elementos
pendentes de dimenso inferior.
Slido delimitado por superfcies no
necessariamente planas localmente.
Ex.: ACIS (Spatial Technology)
AutoCad.

Paradigmas de Abstrao
A necessidade de paradigmas (Ari
Requicha).

Paradigma dos universos.

Fsico F.
Matemtico M.
Representao R.
Implementao I.

Problemas da rea
Estudar fenmenos em F.
Definir os modelos.
Estudar as relaes entre R e M.
Definir representaes de modelos em M.
Estudar converses entre
representaes.
Definir mtodos de implementao.
Comparar estratgias em I.

Esquemas de Representao
Objetos do universo fsico: slidos
O que um slido?

Objetos do universo matemtico vm da:


Geometria diferencial
Topologia diferencial

Geometria pode Ser Complicada

Garrafa de Klein
(no orientvel)

Descrio de Slidos
Assuma que um slido um conjunto
tridimensional de pontos.
Conjuntos de pontos podem ser descritos
Por suas fronteiras
Por campos escalares

Definidos por equaes


Amostrados

Originam trs tipos de representao:


Por bordo (B-rep Boundary Representation)
Operaes de conjuntos (CSG Constructive
Solid Geometry)
Por enumerao do espao em clulas (BSPtrees, Octrees, etc)

Representao por Bordo


Slido definido indiretamente atravs da
superfcie que o delimita.
compacta (fechada e limitada)
sem bordo

Superfcies so descritas parametricamente


por um mapeamento chamado de
parametrizao:

:U
2

Parametrizao
Estabelece um sistema de coordenadas
sobre a superfcie herdado de um sistema
de coordenadas no plano.

(u , v) x (u , v), y (u, v), z (u , v) ( x, y, z )


T

Em geral, no possvel cobrir (descrever)


toda a superfcie com uma nica
parametrizao.
Usam-se vrias parametrizaes que formam
um Atlas.

Parametrizao de uma Superfcie

Parametrizaes Vlidas
Slido deve estar bem
definido.
Superfcie sem autointerseo.
Vetor normal no se
anula sobre a superfcie.
Normal usada para
determinar o interior e o
exterior do slido.

u v

Exemplo
Parametrizao da esfera de raio 1, centrada na
origem.
cos( ) sin( )
f ( , ) sin( ) sin( )

cos( )
sin( ) sin( ) cos( ) cos( )
f f
N

cos( ) sin( ) sin( ) cos( )


sin( )
0

Se = ou = 0 a normal no est definida nos


plos por esta parametrizao.

Domnio do Exemplo Anterior


Toda parametrizao
da esfera deixa pelo
menos um ponto de
fora.
impossvel mapear
continuamente a
esfera no plano sem
retirar pelo menos
um ponto.

U ( , ) 2 ;0 ;0 2

Parametrizao do Crculo
Forma implcita
y = tx + t
x2 + y2 = 1

Resolvendo esse
sistema chega-se a
uma parametrizao
alternativa do crculo.
1 t 2
2t

x(t )
; y (t )
;t ,
2
2
1 t
1 t
2 2

t=/2
t=0
t=-/2

Representao Linear por Partes


Superfcie parametrizada
com geometria complexa
pode ser aproximada por
uma superfcie linear por
partes.
Pode-se particionar o
domnio da parametrizao
por um conjunto de
polgonos.
Cada vrtice no domnio
poligonal levado para a
superfcie pela
parametrizao.
Em seguida ligado aos
vrtices adjacentes mantendo
as conectividades do domnio.

Propriedades
Gera uma malha poligonal, definida
por um conjunto de vrtices, arestas e
faces.
Cada aresta compartilhada por no
mximo duas faces.
A interseo de duas faces uma aresta,
um vrtice ou vazia.

Adjacncia de vrtices, arestas e faces


chamada de topologia da superfcie.

Decomposio Poligonal

Operaes sobre Malhas


Poligonais
Achar todas as
arestas que incidem
em um vrtice.
Achar as faces que
incidem numa aresta
ou vrtice.
Achar as arestas na
fronteira de uma face.
Desenhar a malha.

Codificao
Explcita.
Ponteiros para lista de vrtices.
Ponteiros para lista de arestas.
Winged-Edge (Half-Edge, Face-Edge).
Quad-Edge (Guibas-Stolfi).
Radial-Edge.

Codificao Explcita
A mais simples.
Cada face armazena explicitamente a lista
ordenada das coordenadas dos seus
vrtices:

P ( x1 , y1 , z1 ), ( x2 , y2 , z 2 ),..., ( xn , yn , z n )

Muita redundncia de informao.


Consultas so complicadas.
Obriga a execuo de algoritmos geomtricos
para determinar adjacncias.

Desenho da Malha
Cada aresta
desenhada duas
vezes, pelos duas
faces que a
compartilham.
No bom para
plotadoras ou filmes.

Ponteiros para Lista de Vrtices


Vrtices so armazenados
separadamente.
H uma lista de vrtices.
Faces referenciam seus vrtices atravs
de ponteiros.
Proporciona maior economia de memria.
Achar adjacncias ainda complicado.
Arestas ainda so desenhadas duas
vezes.

Exemplo

Ponteiros para Lista de Arestas


H tambm uma lista de arestas.
Faces referenciam as suas arestas
atravs de ponteiros.
Arestas so desenhadas percorrendose a lista de arestas.
Introduzem-se referncias para as duas
faces que compartilham uma aresta.
Facilita a determinao das duas faces
incidentes na aresta.

Exemplo

Winged-Edge

Winged-Edge
Criada em 1974 por Baumgart.
Foi um marco na representao por fronteira.
Armazena informao na estrutura associada
s arestas (nmero de campos fixo).
Todos os 9 tipos de adjacncia entre vrtices,
arestas e faces so determinados em tempo
constante.
Atualizada com o uso de operadores de Euler,
que garantem: V A + F = 2.

9 tipos de Relacionamentos de
Adjacncia

Face-Edge

Radial-Edge
Criada em 1986 por Weiler.
Representa objetos non-manifold (no
variedades).
Armazena a lista ordenada de faces
incidentes em uma aresta.
Muito mais complicada que a Winged-Edge.

Radial-Edge

Representao Implcita
Slido definido por um conjunto de
valores que caracterizam seus pontos.
Descreve a superfcie dos objetos,
implicitamente, por uma equao:

F ( x) c; X , c .
n

F : de classe C
n

F chamada de funo implcita.

Funes Implcitas
Uma superfcie definida de forma
implcita pode apresentar autointerseo.
Pergunta: F(x,y,z) define
implicitamente z = f(x,y) em algum
y
domnio razovel? x = f(y) ou y = f(x) ?

Teorema da Funo Implcita


Seja F : n definida num
conjunto aberto U.
Se F possui derivadas parciais
contnuas em U e F 0 em U, ento
F uma subvariedade de dimenso n
- 1 do n.
Superfcie sem auto-interseo.

Valores Regulares
Um valor c dito regular se F-1(c) no
contm pontos onde F = 0 (pontos
singulares).

F F F
| p 0.
p F (c) Fp
,
,
x y z
1

Neste curso interessam apenas os casos


em que n = 2 ou 3 (curvas e superfcies
implcitas).

Exemplo 1
Seja F(x,y) = x2 + y2 que
define um parabolide no
3.
Curvas de nvel so
crculos.
F = (2x, 2y) se anula na
origem.
0 no valor regular de
F. Logo F(x,y) = 0 no
define uma funo
implcita.

Exemplo 2
Cascas esfricas: F(x,y,z) = x2 + y2 +
z2.
Para todo k > 0, F-1 (k) representa a
superfcie de uma esfera no 3.
0 no valor regular de F.
F-1(0) = (0,0,0) e F=(2x, 2y, 2z) se
anula na origem.

Exemplo 3
F(x,y) = y2 x2 x3, F = (2y, -3x2
2x).
Na forma paramtrica:
x(t) = t2 - 1 e y(t) = t (t2 - 1).

Curva de nvel 0 um lao, com uma


singularidade na origem:
z = F(x,y) = y2 - x2
x3 = 0

Grfico do Exemplo 3

Observao
Olhando F(x,y) como
superfcie de nvel 0 da
funo H : 3 ,
H(x,y,z) = -z + y2 - x2 x3 ,
H = (-3 x2 - 2x, 2y, -1);
H(0,0,0) = (0,0,-1).
Todos os pontos so
regulares.
Grfico de F no 3
realmente o grfico de
uma funo!

Objeto Implcito
Um subconjunto O n
chamado de objeto implcito
se existe F : U , O U, e
existe um subconjunto V
/
O = F-1(V) ou O =
{p U, F(p) V}.
Um objeto implcito dito
regular se F satisfaz a
condio de regularidade.
Um objeto implcito vlido se
define uma superfcie no n.

Interior x Exterior
A funo F faz a classificao dos
pontos do espao.
Permite decidir se o ponto est no
interior, na fronteira ou no exterior.
F > 0 p exterior de O.
F = 0 p fronteira de O.
F < 0 p interior de O.

Esquema de Representao CSG


Operaes CSG definem objetos
atravs de operaes regularizadas
de conjuntos de pontos.
Unio, Interseo e Diferena.

Um objeto regular se o fecho do


interior do seu conjunto de pontos
igual ao prprio conjunto de pontos.

rvore CSG
Um modelo CSG
codificado por uma
rvore.
Os ns internos contm
operaes de conjunto
ou transformaes
lineares afim.
Folhas contm objetos
primitivos (tipicamente,
qudricas).

CSG com Objetos Implcitos


Primitivas CSG so definidas por Fi(X)
0.
Operaes booleanas so definidas
nesse caso por:
F1 F2 = min (F1, F2 ).
F1 F2 = max (F1, F2 ).
F1 / F2 = F1 F2 = max (F1, -F2 ).

Prs e Contras de Representaes


Representaes por fronteira e por campos
escalares apresentam vantagens e
desvantagens.
Numa B-rep as intersees esto
representadas explicitamente e mais fcil
exibir um ponto sobre a superfcie do objeto.
Porm difcil determinar, dado um ponto, se
ele est no interior, fronteira ou exterior do
objeto.
Operaes booleanas so complicadas.

Representaes por Campos


Escalares
Em tais representaes a classificao
de um ponto imediata, bastando
avaliar o sinal do valor do campo no
ponto.
Exibir um ponto sobre a superfcie do
objeto requer a soluo de uma
equao, que pode ser complicada.
Operaes booleanas so avaliadas
facilmente.

Representaes por Clulas


Dividem o espao em sub-regies convexas.
Grades: Cubos de tamanho igual
Octrees: Cubos cujos lados so potncias de 2
BSP-trees: Poliedros convexos

s clulas so atribudas valores de um


campo escalar F(x, y, z).
Campo assumido constante dentro de cada
clula.

Slido definido como o conjunto de pontos


tais que A < F(x, y, z) < B para valores A e B
estipulados.

Octrees

BSP-Trees

Ambigidade e Unicidade
Uma representao nica
quando o modelo associado
possui uma nica
representao.
Uma representao
ambgua quando pode
representar mais de um
modelo.
Representao ambgua
catastrfica (wireframe).
Inviabiliza mquinas de
controle numrico.

Converso entre Representaes


Converso CSG B-rep denominada
avaliao do bordo.
Converso B-rep CSG muito mais
complicada.
Converso B-rep Clulas simples.
Converso Clulas B-rep
relativamente simples (marching cubes).
Converso CSG Clulas simples.
Converso Clulas CSG complicado.

Você também pode gostar