Upload
buihanh
View
217
Download
0
Embed Size (px)
Citation preview
TriangulaçãoMapeamento em Viewport
Modelação Geométrica
Instituto Superior Técnico
Apontamentos CG + Edward Angel, Cap 10
Instituto Superior Técnico Computação Gráfica
2009/2010
1
Na última aula...
� Iluminação e Reflexão
� Modelo de Iluminação de Phong
©2010, CG&M/IST e Figuras Addison Wesley
� Aproximação de Blinn
� Modelo de Iluminação de Blinn-Phong
Sumário
� Pipeline de Visualização 3D
� Triangulação
� Mapeamento em coordenadas de Viewport
©2010, CG&M/IST e Figuras Addison Wesley
� Mapeamento em coordenadas de Viewport
� Transformação Janela-Viewport
� Modelação Geométrica
Computação Gráfica
Pipeline de Visualização 3DPipeline de Visualização 3D
Pipeline de Visualização 3D
©2010, CG&M/IST e Figuras Addison Wesley5
Pipeline de Visualização 3D
©2010, CG&M/IST e Figuras Addison Wesley6
Pipeline de Visualização 3D
©2010, CG&M/IST e Figuras Addison Wesley7
Pipeline de Visualização 3D
©2010, CG&M/IST e Figuras Addison Wesley8
Pipeline de Visualização 3D
©2010, CG&M/IST e Figuras Addison Wesley9
Computação Gráfica
TriangulaçãoTriangulação
Triangulação
� Algum hardware gráfico � apenas suporta malhas triangulares
� Nesses casos
©2010, CG&M/IST e Figuras Addison Wesley
� Nesses casos� Malhas poligonais devem ser transformadas em
� Malhas triangulares“Triangle Mesh”
11
Triangulação
� Genericamente� Subdivisão de um plano em triângulos
� No “Pipeline 3D”
©2010, CG&M/IST e Figuras Addison Wesley
� Subdivide polígonos em conjuntos de triângulos
12
Triangulação de
Malha Poligonal
� Existem vários algoritmos para o fazer� Não são focados nesta cadeira de CG
� Aplicados quando necessário � Requisito do hardware gráfico
©2010, CG&M/IST e Figuras Addison Wesley
� Requisito do hardware gráfico
13
Pipeline de Visualização 3D
©2010, CG&M/IST e Figuras Addison Wesley14
Pipeline de Visualização 3D
©2010, CG&M/IST e Figuras Addison Wesley15
Computação Gráfica
Transformação Janela ViewportTransformação Janela Viewport
Visualização� São necessárias transformações
� para mapear vistas da cena num dispositivo 2D
©2010, CG&M/IST e Figuras Addison Wesley17
Viewport versus Janelas
Viewport
©2010, CG&M/IST e Figuras Addison Wesley18
Janela Gráfica
Janela ou Janela de Recorte
Viewport versus JanelasViewport
Viewport
©2010, CG&M/IST e Figuras Addison Wesley19
Janela Gráfica
Viewport
Viewport
Volume de Visualização
©2010, CG&M/IST e Figuras Addison Wesley20
Mapeamento em
Coordenadas de Viewport
©2010, CG&M/IST e Figuras Addison Wesley21
Mapeamento em
Coordenadas de Viewport
??
©2010, CG&M/IST e Figuras Addison Wesley22
Mapeamento em
Coordenadas de Viewport
12 TSTM ••=
©2010, CG&M/IST e Figuras Addison Wesley23
Mapeamento em
Coordenadas de Viewport� Realizada pela transformação:
� Onde:12 TSTM ••=
=2/010
2/001
h
w
T
=010
001
v
v
y
x
T
©2010, CG&M/IST e Figuras Addison Wesley24
=
1000
0100
2/0101
hT
=
1000
01002vT
=
1000
0100
00/0
000
hh
ww
S v
v
Mapeamento em
Coordenadas de Viewport
� Realizada pela transformação:
2001000001 wwwx vv
12 TSTM ••=
©2010, CG&M/IST e Figuras Addison Wesley25
⋅
⋅
=
1000
0100
2010
2001
1000
0100
000
000
1000
0100
010
001
h
w
hh
ww
y
x
M v
v
v
v
Mapeamento em
Coordenadas de Viewport
++
=
1000
0100
200
200
vvv
vvv
hyhh
wxww
M
©2010, CG&M/IST e Figuras Addison Wesley26
Mapeamento em
Coordenadas de Viewport
+
+
=
1000
01002
02
0
200
2v
vv
vv
v
hy
h
wx
w
M
©2010, CG&M/IST e Figuras Addison Wesley27
Pipeline de Visualização 3D
©2010, CG&M/IST e Figuras Addison Wesley28
Computação Gráfica
Transformação Janela-ViewportTransformação Janela-Viewport
29
Visualização 2D
Transformação Janela -Viewport
??
©2010, CG&M/IST e Figuras Addison Wesley
Visualização 2D
Transformação Janela -Viewport
12 TSTM ••=
©2010, CG&M/IST e Figuras Addison Wesley
Visualização 2D
Transformação Janela -Viewport
� Realizada pela transformação:
w
12 TSTM ••=
©2010, CG&M/IST e Figuras Addison Wesley32
−−
⋅
−
−
⋅
=100
10
01
100
00
00
100
10
01
min
min
minmax
minmax
y
x
yy
hxx
w
y
x
M v
v
v
v
Visualização 2D
Transformação Janela -Viewport
−−
−
−−
−
=
100
0
0
minminmaxminmax
minminmaxminmax
yyy
hy
yy
h
xxx
wx
xx
w
M vv
v
vv
v
©2010, CG&M/IST e Figuras Addison Wesley33
Visualização 2D
Transformação Janela -Viewport
� Exemplo OpenGL:
� gluOrtho2D(left, right, bottom, top)
� Define janela de visualização ortogonal 2D
xmin xmax ymin ymax
©2010, CG&M/IST e Figuras Addison Wesley
� Define janela de visualização ortogonal 2D
� glViewport(x, y, width, height)
� Define o viewport no dispositivo
34
xv yv w h
Operações Janela -Viewport (1/4)Panning
� Deslocação da Janela sobre o mundo� Permite visualizar diferentes porções da cena
©2010, CG&M/IST e Figuras Addison Wesley
Operações Janela -Viewport (2/4)Zooming
� Alteração das dimensões da janela� Mantendo a relação de aspecto� Ampliação ou redução da vista sobre a cena
� Variar escala de visualização
©2010, CG&M/IST e Figuras Addison Wesley
Operações Janela -Viewport (3/4)Stretching
� Janela/viewport com diferente relação de aspecto� Pode gerar vista distorcida da cena
� Horizontal ou Vertical
©2010, CG&M/IST e Figuras Addison Wesley
Operações Janela -Viewport (4/4)Múltiplos Pares
� Vários pares janela-viewport para uma cena� Várias vistas da mesma cena� Representadas no mesmo dispositivo
� Ou em dispositivos distintos
©2010, CG&M/IST e Figuras Addison Wesley
Computação Gráfica
Modelação GeométricaModelação Geométrica
Motivação
� Objectos reais são compostos geralmente por� Superfícies e Curvas Suaves
� Quando se modelam estes objectos em CGÉ necessário representar essas curvas e superfícies
©2010, CG&M/IST e Figuras Addison Wesley
� É necessário representar essas curvas e superfícies
� Como se poderá fazer isso?� Eficazmente� Com fidelidade suficiente
Modelação de uma cena
©2010, CG&M/IST e Figuras Addison Wesley
GlassesPor Giles TranUsando POV-RayModelado com Rhino
Tipos de Modelação
� Existem dois casos distintos:� Modelação de objectos existentes
� Por digitalização do objecto� Uma estátua
©2010, CG&M/IST e Figuras Addison Wesley
� Uma estátua� Uma cara� Um terreno
� Modelação “de raiz”� Sem recorrer a objecto físico existente
ModelaçãoObjectos Existentes� Abordagem Contínua
� Modelar usando uma infinidade de coordenadas� Representando “todos” os pontos do objectoInviável
©2010, CG&M/IST e Figuras Addison Wesley
� Abordagem Discreta� Aproximar objecto a conjunto de pontos no modelo
� “Nuvens de Pontos”
ModelaçãoObjectos Existentes
� Nuvem de pontos para o “Stanford Bunny”� Digitalizado usando scanner 3D
©2010, CG&M/IST e Figuras Addison Wesley44
Modelação “de raiz”
� Representação exacta do objecto é conhecida
� Reprodução pode ser tão fiel quanto se desejar
©2010, CG&M/IST e Figuras Addison Wesley
� Definição pode ser feita de várias formas� Descrição matemática � Descrição aproximada
� Depois “completada” por aplicação
� Escultura / Composição
Modelação “de raiz”
©2010, CG&M/IST e Figuras Addison Wesley
Desert SunriseUsando Terragen
Modelação “de raiz” (CAD)
©2010, CG&M/IST e Figuras Addison Wesley
ShoeLast 3DSistema de CAD paraIndústria de CalçadoCCG / FCT / UC
Modelação “de raiz” (VRML)
©2010, CG&M/IST e Figuras Addison Wesley
Praça da SéPor J. C.MirandaModelação em VRMLInst. Politécnico da Guarda
Modelação Geométrica
Malhas PoligonaisMalhas Poligonais
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 dois polígonos
©2010, CG&M/IST e Figuras Addison Wesley
� 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
Representação de Malhas Poligonais
� Técnicas de Representação
� Lista explícita
©2010, CG&M/IST e Figuras Addison Wesley
� Lista de Vértices
� Lista de Arestas
� Cada polígono representado por:� lista ordenada das coordenadas dos seus vértices
Lista Explícita
( ) ( ) ( )( )nnn zyxzyxzyxP ,,,,,,,,, 222111 K=
©2010, CG&M/IST e Figuras Addison Wesley
� Bom para um só polígono
� 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
Lista Explícita
{ }{ }
5211
,,,
,,
VVVVP
VVVP
==
©2010, CG&M/IST e Figuras Addison Wesley53
{ }43252 ,,, VVVVP =
Lista de Vértices (1/2)
� Baseado numa lista de vértices � com as respectivas coordenadas
� Cada polígono descrito por lista de vértices
( ) ( ) ( )( )nnn222111 z,y,x,,z,y,x,z,y,xV K=
©2010, CG&M/IST e Figuras Addison Wesley
� Cada polígono descrito por lista de vértices� número ou ponteiro
� 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
( )7,4,1=P
Lista de Vértices (2/2)
{ }
{ }
,,,, 54321= VVVVVV
©2010, CG&M/IST e Figuras Addison Wesley
{ }{ }4,3,2,5
5,2,1
2
1
==
P
P
Lista de Arestas (1/2)
� 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
©2010, CG&M/IST e Figuras Addison Wesley
� Existe uma lista de polígonos
� apontando para as arestas que os constituem
� Desenham-se arestas e não polígonos
� evitam-se recorte, transformações, etc., redundantes
� Não permite determinação de arestas concorrentes num vértice
� De forma explícita
Lista de Arestas (2/2)
{ }{ }{ }{ }{ }
2433
2322
1211
54321
,,
,,
,,
,,,,
PVVA
PVVA
PVVA
VVVVVV
====
©2010, CG&M/IST e Figuras Addison Wesley
{ }{ }{ }{ }{ }{ }32642
5611
21256
1155
2544
2433
,,,
,,
,,,
,,
,,
,,
AAAAP
AAAP
PPVVA
PVVA
PVVA
=====
Consistência de Malhas Poligonais (1/2)
� Verificar se� todos os polígonos fecham� todas as arestas são
� usadas uma vez � não mais do que n vezes
©2010, CG&M/IST e Figuras Addison Wesley
� não mais do que n vezes
� cada vértice é referido por 2 arestas, pelo menos
� Opcionalmente:� qualquer vértice é alcançável a partir de outro
� percorrendo as arestas
� a malha é topologicamente plana� existe uma única fronteira (não há buracos)
Consistência de Malhas Poligonais (2/2)
� Representação explícita� mais difícil de verificar
� Lista de Arestas� mais fácil
©2010, CG&M/IST e Figuras Addison Wesley
� 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� bidireccionalidade
� A→P e P→A
Equação do Plano
� Utilização de malhas poligonais� Necessário conhecer a equação do plano de que cada polígono
� Usada para� Testar planaridade do polígono
©2010, CG&M/IST e Figuras Addison Wesley
� Testar planaridade do polígono� Calcular normais
� Equação do plano Ax + By + Cz + D = 0
� Normal ao plano [A B C]
Malhas Triangulares� Para evitar inconsistências
� Testes de planaridade
� Usam-se geralmente malhas triangulares(Triangle Mesh)� Complexidade medida em número de triângulos (polígonos)
©2010, CG&M/IST e Figuras Addison Wesley
61
Modelação Geométrica
Representação de sólidos e Representação de sólidos e volumes
Tipos de Representações
� Instanciação de Primitivas
� Representação por Varrimento “Sweep”
©2010, CG&M/IST e Figuras Addison Wesley
“Sweep”
� Representação de Fronteira “Boundary Representation” (B-reps)
� Representação por Partição do Espaço
Instanciação de Primitivas (1/2)
� Baseada em primitivas parametrizadas
� Exemplo: � pirâmide com número de faces laterais variável
� empregue em � CAD: engrenagens, porcas e parafusos
©2010, CG&M/IST e Figuras Addison Wesley
� CAD: engrenagens, porcas e parafusos� VRML: caixas, esferas, cones, etc… paremeterizáveis
� Hierarquizáveis
� Não associáveis
� novos objectos� têm que ser definidos� não podem ser compostos
Instanciação de Primitivas (2/2)
d a b c
6 4 10 11,5
10 7 17 19,6
a
©2010, CG&M/IST e Figuras Addison Wesley
c
b
d
Representação por Varrimento
� Obtida por extrusão ou rotacão� De uma secção
©2010, CG&M/IST e Figuras Addison Wesley
Representação por Varrimento
Extrusão
©2010, CG&M/IST e Figuras Addison Wesley
Representação por Varrimento
Rotação
©2010, CG&M/IST e Figuras Addison Wesley
Representação de Fronteira (1/3)
� Derivam das representações vectoriais
� Descrevem os objectos
� Em termos das suas fronteiras
©2010, CG&M/IST e Figuras Addison Wesley
� vértices, arestas e faces
� Podem ser restritas a � fronteiras planas poligonais
� Simplificação adicional� as faces são polígonos convexos ou triângulos
Representação de Fronteira (2/3)
� Difícil determinação do que é uma face� quando as superfícies são curvas� mas são aproximáveis por polígonos
©2010, CG&M/IST e Figuras Addison Wesley
� Geralmente, sistemas usam sólidos� Cujas fronteiras são 2-manifolds
� todos os pontos da superfície � possuem um disco de vizinhança que contém todos os pontos
vizinhos
Representação de Fronteira (3/3)
©2010, CG&M/IST e Figuras Addison Wesley
Representação por Partição do Espaço
� Decomposição de células
� Enumeração da ocupação espacial
� Árvore de octantes (ou quadrantes)
©2010, CG&M/IST e Figuras Addison Wesley
� Árvore de octantes (ou quadrantes)
� Árvores binárias de decomposição do espaço
Decomposição em Células
a
Sólido a representar Representações
©2010, CG&M/IST e Figuras Addison Wesley
b
c
Primitivas
Enumeração da Ocupação do Espaço
� Caso especial da decomposição em células� Células são idênticas
� Dispostas numa grelha fixa e regular
©2010, CG&M/IST e Figuras Addison Wesley
Árvore de Octantes
� Variante de� enumeração da ocupação espacial� e das “quadtrees”
� Dividir para conquistar� Subdivisão sucessiva em octantes
até que octantes sejam homogéneos
©2010, CG&M/IST e Figuras Addison Wesley
� até que octantes sejam homogéneos � todos cheios ou todos vazios
� Até nível máximo atingido
� Octantes homogéneos filhos do mesmo pai� substituídos pelo pai
� Varrimento pode ser� de cima para baixo� de baixo para cima
Árvore de Quadrantes “ quadtree ”
©2010, CG&M/IST e Figuras Addison Wesley
P
P P P
CCC V
P
V
CC V
P
V
C
VC V
P
V C CV
P
V V C V
P
V V C V
P
V
C C C CC
Árvore de Partição Binária (1/2)
� Cada espaço é subdividido em dois sub-espaços� Inicialmente criado para determinar superfícies visíveis
©2010, CG&M/IST e Figuras Addison Wesley
Árvore de Partição Binária (2/2)
2
4
71
5
6
2
3
1
out out
©2010, CG&M/IST e Figuras Addison Wesley
3
5
9
6
8
8out
out
4
in out
7
in out 9
in out
Modelação Geométrica
Constructive Solid GeometryConstructive Solid Geometry(CSG)
CSG
� Combinam-se primitivas simples� Usando operações booleanas
� Para representar objectos complexos
©2010, CG&M/IST e Figuras Addison Wesley
Para representar objectos complexos
CSGOperações básicas
A
A∪∪∪∪B A∩∩∩∩B
©2010, CG&M/IST e Figuras Addison Wesley
B
A−−−−B B−−−−A
Operações CSG
Intersecção
©2010, CG&M/IST e Figuras Addison Wesley
� Resultados� Sólido, superfície, aresta, ponto e vazio
CSGArmazenamento por Árvore Binária
©2010, CG&M/IST e Figuras Addison Wesley
Construindo com CSGExemplo
� Três primitivas simples:� Ring: torus; Inside: cylinder; Outside: cylinder
©2010, CG&M/IST e Figuras Addison Wesley