Licenciatura em Engenharia Informática e de Computadores
Computação Gráfica
Pipeline de Visualização
Câmara Virtual
LEIC CG
Questão 2, exame de 20/07/11
[3.0v] Considere os polígonos “A” e “B” e o ponto “P”
representados na figura abaixo.
a) calcule a matriz final que representa a transformação a aplicar
ao polígono “A” para que este se transforme no polígono “B”.
b) Calcule as coordenadas do ponto “Q” resultante da aplicação
da transformação referida anteriormente a “P”
LEIC CG
Questão 2, exame de 20/07/11
[2.0v] (…) calcular a matriz de transformação (…)
−
−
⋅
−
⋅
−
=
−
−
−
=
1
0
0
2
1
0
2
0
1
1
0
0
0
)
º
45
cos(
)
º
45
sin(
0
)
º
45
sin(
)
º
45
cos(
1
0
0
4
1
0
3
0
1
)
2
,
2
(
)
º
45
(
)
4
,
3
(
R
T
T
M
o
o
−
−
−
=
2
2
3
2
2
2
2
?
LEIC CG
Questão 2, exame de 20/07/11
[1.0v] (…) calcular as coordenadas de “Q” (…)
+
−
=
⋅
−
−
−
=
⋅
=
1
2
2
4
3
1
4
4
1
0
0
2
2
4
2
2
2
2
3
2
2
2
2
P
M
Q
?
LEIC CG
Sumário
Câmara Virtual
LEIC CG
Sistema de Visualização Geral
© 2015 Corpo docente de Computação Gráfica / CG&M / DEI / IST / UTL
WCS
(3D)
DC
LEIC CG
Sistema de Visualização Geral
Posição da câmara
Posição e Orientação do plano de visualização
Licenciatura em Engenharia Informática e de Computadores
Computação Gráfica
Computação Gráfica
Câmara Virtual
LEIC CG
LEIC CG
Modelo da Câmara Virtual Simples
Parâmetros:
VRP: Posição da câmara
(View Reference Point)
VPN: Direcção para onde aponta a câmara
(View Plane Normal)
VUV: Rolamento da câmara
(View Up Vector)
D: Distância de VRP ao plano de projecção
VPN
VUV
VRP
VRP
D
VPN
LEIC CG
Viewing Reference Coordinates
VPN
WCS
v
n
u
y
wcs
x
wcs
z
wcs
VRP
WCSLEIC CG
© 2015 Corpo docente de Computação Gráfica / CG&M / DEI / IST / UTL
Viewing Reference Coordinates
Origem em VRP
(u, v, n) sistema ortogonal “mão esquerda”.
vpn
v
n
u
y
w
x
w
z
w
VRP
u
v
n
n “sai” da câmara
LEIC CG
Determinar VRC
Determinar u, v, n (em WCS)
(u, v, n): base ortonormada
n: vector unitário na direcção VPN
VUV:
•
projecção de VUV´ no plano perpendicular a n
VUV’ introduzido pelo utilizador
Sequência de passos:
VUV
v
=
VUV
=
VUV´
−
VPN(
VPN
•
VUV
´)
v
n
u
=
×
VPN
VPN
n
=
,
LEIC CG
Janela de Visualização
Definida sobre o Plano de Projecção,
em VRC
por indicação das suas dimensões
•
2h (altura) e 2w (largura).
•
Variante: introduzir relação de aspecto e uma dimensão
Obrigatoriamente centrada no ponto VRP
•
Centro é CW (Center of Window)
CW = (0, 0, D).
Plano de Visualização Janela de Visualizaçãou
VRP
v
VPN
h
w
LEIC CG
Modelo da Câmara Virtual Simples
Até agora introduziram-se os parâmetros:
VRP em coordenadas WCS
Vectores orientação (VPN e VUV´) em coordenadas WCS
Dimensões h e w da janela de visualização
LEIC CG
Volume de Visualização
Contém tudo o que está visível
na direcção do observador
O que “vê” a câmara?
Definição e topologia
•
dependem do tipo de projecção
Volumes cónicos
Computacionalmente pesados
Sistema de equações quadráticas
•
para fazer o recorte
LEIC CG
Projecções Geométricas Planas
Existem dois tipos principais
Projecção Perspectiva
Projecção Ortogonal
• Determinada pelo centro de projecção (CDP)
• Distância do CDP ao plano finita
A
B
B
´
A
´
CDP
Raios
Projectores
Plano de
Projecção
• Determinada por direcção de projecção
• Distância do CDP ao plano infinita.
A
B
B
´
A
´
Direcção de
Projecção
Raios
Projectores
Plano de
Projecção
LEIC CG
© 2015 Corpo docente de Computação Gráfica / CG&M / DEI / IST / UTL
Volume de Visualização
Projecção Perspectiva
Definido pelo tronco de pirâmide infinita
vértice no centro de projecção (VRP)
lados sobre a janela de visualização.
Recorte da cena sobre este volume antes da projecção
não ficam projectados objectos atrás do centro de projecção
vpn
v
n
u
y
w
x
w
z
w
z
vCW
LEIC CG
Abertura do Volume Perspectivo
FOV: Field of View
Θ
V
: abertura
vertical
tg (
Θ
V
/ 2) = h / D
VRP
Jan. Vis.
CW
v
n
h
D
Θ
W
: abertura
horizontal
tg (
Θ
W
/ 2) = w / D
VRP
Jan. Vis.
CW
u
n
w
D
Vista lateral do volume
Vista topo do volume
Y
vZ
vZ
vX
vLEIC CG
Volume de Visualização
Projecção Ortogonal
Definido pelo paralelipípedo infinito
passando pelos lados da janela de visualização
de arestas paralelas à direcção VPN.
O eixo central do paralelipípedo
•
coincide com o eixo n.
paralelepípedo (FOV = 0)
VPN
largura
altura
u
v
Projecção e
Recorte
mais Simples
LEIC CG
Limitações do
Volume de Visualização
Consequências negativas
Utilização volume de visualização infinito
•
mais evidentes no caso de Projecções em Perspectiva
Objectos muito afastados
•
depois de transformados
podem resumir-se a um pequeno “borrão”
desperdício em tempo de computação
Projecções de objectos demasiado próximos
•
podem gerar um resultado gráfico caótico.
LEIC CG
Limitações do
Volume de Visualização
Solução:
Definir planos de recorte
•
paralelos ao plano de projecção
•
através da sua distância a VRP
medida ao longo da direcção de VPN
Plano anterior
•
distância F ao centro de projecção (VRP)
Plano posterior
•
distância B ao centro de projecção (VRP)
Restrições
(Referencial VRC orientado segundo “mão esquerda”):
•
Distância F positiva;
•
Distância F < Distância B
LEIC CG
Planos de Recorte
Volume entre planos de recorte
determina o que a camara vê
Posição dos planos definida por
distância na direcção do VPN
plano recorte
anterior
plano recorte
posterior
LEIC CG
Volume de Projecção Perspectiva
(Frustum)
VRP
Pl. anterior
Jan. Vis.
Pl. Posterior
z
v
Eixo central
CW
B
F
VRP
Plano anterior
Janela de
visualização
Plano posterior
CW
B
F
Eixo
central
D
D
Θ
V
Θ
H
z
v
LEIC CG
Volume de Projecção Ortogonal
z
v
largura
altura
u
v
VRP
LEIC CG
Volumes de Visualização
Resumo das características gerais
Volume ortogonal:
•
paralelípedo definido pelos seguintes planos
-w
≤
x
v
≤
w
-h
≤
y
v
≤
h
F
≤
z
v
≤
B
Volume perspectivo:
•
frustum definido pelos seguintes planos
- (w / D) * z
v
≤
x
v
≤
(w / D) * z
v
- (h / D) * z
v
≤
y
v
≤
(h / D) * z
v
F
≤
z
v
≤
B
LEIC CG
Câmara em OpenGL
Por omissão:
Câmara na origem do referencial do mundo, aponta para –z
Volume de visualização é cubo centrado na origem c/ lado 2
LEIC CG
Câmara em OpenGL
Na vista ortográfica (por omissão)
Pontos são projectados no plano z=0
© 2015 Corpo docente de Computação Gráfica / CG&M / DEI / IST / UTL
z=0
LEIC
CG
LEIC CG
Que Visualização?
Rendering Interactivo 3D em Tempo Real
Cenas 3D
Realismo
Tempo Real
Interactividade
LEIC CG
P
ip
el
in
e
V
is
u
al
iz
aç
ão
3
D
LEIC CG
O que é um Pipeline?
Vídeo:
Modern Times (Charlie Chaplin, 1936) – The factory scene
LEIC CG
O que é um Pipeline?
Conceptualmente:
Conjunto de tarefas executadas sequencialmente
Pipeline é a base da linha de montagem industrial
Em computação:
Conjunto de elementos de processamento de dados ligados
em série
•
Os dados produzidos por um andar do pipeline são processados pelo
andar seguinte
LEIC CG
© 2015 Corpo docente de Computação Gráfica / CG&M / DEI / IST / UTL
Pipeline Visualização 3D
Input: Cena 3D
possibilidade de utilizar aplicações
de modelação
•
Autocad
•
3DStudioMax
•
Maia,
•
Blender,
•
etc…
LEIC CG
Sequência de Operações
Primeiro Andar do Pipeline
Aplicação responsável pela obtenção de tempo-real,
interactividade e incremento do realismo. Andar
implementado em software. Input: base de dados da cena.
•
Contemplar:
Suporte de periféricos de E/S
Navegação
Técnicas de aceleração
Detecção de colisões
LEIC CG
Sequência de Operações
Segundo Andar do Pipeline
•
Transformação de Visualização e Projecção
•
Back-Face Culling
•
Recorte 3D
•
Transformação Perspectiva
•
Modelo de Iluminação
•
Mapeamento no viewport.
LEIC CG
Sequência de Operações
Terceiro Andar do Pipeline
Rasterização
•
Remoção de superfícies ocultas (HSR)
•
Sombreamento
•
Texturas e outros efeitos para maior realismo
LEIC CG
Pipeline de Baixo Nível
APIs Gráficas (OpenGL, Direct3D)
realizam os andares
•
Transformações Geométricas
•
Rasterização
Input
primitivas gráficas simples
•
fundamentalmente polígonos
Pipeline de baixo nível em hardware
chipsets GeForce da NVídia e Radeon da ATI
Pipeline de baixo nível
LEIC CG
Desempenho
Complexidade da cena
número de polígonos
reflecte-se no número de cálculos a efectuar nos andares do
pipeline de baixo nível
FLOPs
no andar das transformações Geométricas
Operações inteiras e acessos a memória
no andar de Rasterização
relação com a resolução em pixels do dispositivo de saída
LEIC CG
Desempenho
Exemplo
Cena com 100K polígonos e resolução 1280 x 1024
25 FPS
•
sistema terá de processar 100K polígonos por cada 40ms
920 milhões de flops nos cálculos geométricos
1006 milhões de operações inteiras
1270 milhões de acessos à memória
Bottleneck
andar de Rasterização
LEIC CG
Definição do Problema
Objectivo
Síntese de imagem
•
com grande grau de realismo
•
em tempo real
>25 fps
•
para cenas complexas
> 500 000 polígonos
Cena 3D
Número Total de Polígonos
Hardware
Gráfico
Taxa de desenho de
polígonos
LEIC CG
© 2015 Corpo docente de Computação Gráfica / CG&M / DEI / IST / UTL