SlideShare uma empresa Scribd logo
1 de 46
Baixar para ler offline
Visibilidade
Instituto Superior Técnico
Apontamentos CG + Edward Angel, Sec. 7.11
Instituto Superior Técnico
Computação Gráfica
2009/2010
1
Na últimas aulas
Rasterização
Discretização de linhas
Preenchimento de polígonos
©2010, CG&M/IST e Figuras Addison Wesley
Aliasing e Antialiasing
Sombreamento
Sumário
Rasterização
Discretização de linhas
Preenchimento de polígonos
Aliasing e Antialiasing
Sombreamento
©2010, CG&M/IST e Figuras Addison Wesley
Sombreamento
Visibilidade
Algoritmos para remoção de superfícies ocultas
Depth-Sort
Pintor
Z-Buffer
Computação Gráfica
SombreamentoSombreamento
Sombreamento
Métodos Principais
Sombreamento Constante
(Flat Shading)
Sombreamento de Gouraud
©2010, CG&M/IST e Figuras Addison Wesley
Sombreamento de Gouraud
(Gouraud Shading)
Sombreamento de Phong
(Phong Shading)
Diferente de modelo de iluminação de Phong
5
Computação Gráfica
Remoção de Superfícies OcultasRemoção de Superfícies Ocultas
Precisão Imagem
Para cada pixel da imagem
Determinar o objecto mais próximo visível através do pixel
Desenhar o pixel com a cor correcta
Estratégias algorítmicas
©2010, CG&M/IST e Figuras Addison Wesley
7
Precisão Objecto
Para cada objecto da cena
Determinar partes visíveis
Desenhar essas partes com a cor correcta
Precisão Imagem
Precisão dependente da resolução do dispositivo
Visibilidade determinada em cada pixel.
Algoritmos
Orientados para dispositivos “raster”.
©2010, CG&M/IST e Figuras Addison Wesley
Orientados para dispositivos “raster”.
Susceptíveis ao fenómeno do “aliasing”.
Para n objectos e p pixels,
complexidade algorítmica (n x p).
Operações realizadas
elementares e de baixa carga computacional
Precisão Objecto
Precisão infinita
resolução da visibilidade ao nível dos objectos
Orientadas para dispositivos vectoriais
(inicialmente)
©2010, CG&M/IST e Figuras Addison Wesley
(inicialmente)
Para n objectos
carga computacional proporcional a n2
Operações individuais
complexas
de elevada carga computacional.
Computação Gráfica
Remoção de Superfícies OcultasRemoção de Superfícies Ocultas
Coerência
Tipicamente, propriedades dos objectos variam
de forma suave ao longo da sua extensão
mantendo um certo grau de coerência
(cor, textura, profundidade, etc…)
©2010, CG&M/IST e Figuras Addison Wesley
(cor, textura, profundidade, etc…)
Isso permite distinguir objectos dentro de uma
mesma cena
11
Ordenação em 1D
X
Z min 2
©2010, CG&M/IST e Figuras Addison Wesley
13
Z
Z max1
Z min 1
Z max2
Rectângulos Envolventes
©2010, CG&M/IST e Figuras Addison Wesley
14
Computação Gráfica
Remoção de Superfícies OcultasRemoção de Superfícies Ocultas
Algoritmos Baseados em Listas de Prioridades
Algoritmos Baseados em
Lista de Prioridades
Exemplos:
Algoritmo do pintor
Algoritmo de ordenação em profundidade
©2010, CG&M/IST e Figuras Addison Wesley
Estratégia:
Desenhar polígonos na ordem (de)crescente de Z
Z indica distância ao observador
Decrescente se
referencial de câmara orientado pela regra mão esquerda
16
Algoritmos Baseados em
Lista de Prioridades
Abordagem
Desenhar os objectos na sequência correcta
Algoritmos híbridos
(precisão objecto e precisão imagem)
©2010, CG&M/IST e Figuras Addison Wesley
(precisão objecto e precisão imagem)
Diferenças:
Modo de ordenação
Modo de subdividir os polígonos
Quando ocorre a subdivisão
17
Algoritmo de
Ordenação em Profundidade
Passo 1: Ordenar polígonos da lista
por ordem decrescente da sua menor coordenada Z
Passo 2: Resolver situações ambíguas
©2010, CG&M/IST e Figuras Addison Wesley
Passo 2: Resolver situações ambíguas
intervalos de ocupação dos polígonos em Z sobrepostos
resolução de ambiguidades pode passar pela fragmentação dos polígonos
neste caso a lista de polígonos é actualizada de forma ordenada
Passo 3: Rasterizar os polígonos
por ordem em que se encontram na lista
Primeiro os “mais atrás” e depois os mais “à frente”
18
Algoritmo de Ordenação em Profundidade
Resolução de Ambiguidades
Antes de rasterizar o primeiro polígono (P) da lista
(o mais afastado do observador)
compará-lo com todos os polígonos (Qi)
cujos intervalos de ocupação segundo Z
sobreponham o intervalo Z do primeiro
©2010, CG&M/IST e Figuras Addison Wesley
19
Algoritmo de Ordenação em Profundidade
Resolução de Ambiguidades
Processo de comparação tem por objectivo
Determinar se P não obstrui a visibilidade de Q1
©2010, CG&M/IST e Figuras Addison Wesley
20
Verificam-se as 4 condições seguintes
Por ordem de complexidade
Algoritmo de Ordenação em Profundidade
Resolução de Ambiguidades (c.1)
Objectivo: P não obstrui a visibilidade de Q
Considere-se P e Q projectados sobre Z = 0.
Projecções em X ou em Y não se sobrepõem
Qualquer polígono pode ser desenhado primeiro
©2010, CG&M/IST e Figuras Addison Wesley
Qualquer polígono pode ser desenhado primeiro
21
P
Q
X
Y
P
Q
X
Y
Algoritmo de Ordenação em Profundidade
Resolução de Ambiguidades (c.2)
Objectivo: P não obstrui a visibilidade de Q
P encontra-se totalmente contido no semi-espaço
definido pelo plano de Q e oposto ao da câmara
(cálculos triviais)
©2010, CG&M/IST e Figuras Addison Wesley
(cálculos triviais)
22
X
P
Q
Z
Algoritmo de Ordenação em Profundidade
Resolução de Ambiguidades (c.3)
Objectivo: P não obstrui a visibilidade de Q
Q encontra-se totalmente contido no mesmo
semi-espaço, definido pelo plano em que se
encontra o ponto de observação da cena
©2010, CG&M/IST e Figuras Addison Wesley
encontra o ponto de observação da cena
23X
Z
P
Q
Algoritmo de Ordenação em Profundidade
Resolução de Ambiguidades (c.4)
Objectivo: P não obstrui a visibilidade de Q
Considere-se P e Q projectados sobre Z = 0
As projecções de P e Q não se sobrepõem
(mais difícil de calcular)
©2010, CG&M/IST e Figuras Addison Wesley
(mais difícil de calcular)
24
P
Q
X
Y
Algoritmo de Ordenação em Profundidade
Sub-divisão de Polígonos
Se nenhuma das condições c.1 a c.4 é válida:
Usar o plano definido pelo polígono Q
para subdividir o polígono P
©2010, CG&M/IST e Figuras Addison Wesley
Substituir P pelos dois polígonos
em que foi subdividido
Ordenar os polígonos por Z decrescente
Repetir o algoritmo
25
Algoritmo do
Pintor
Simplificação do algoritmo de Ordenação em Profundidade
Polígonos pertencem a planos com Z constante (2.5D)
Passo 1: Ordenar polígonos da cena
Z
©2010, CG&M/IST e Figuras Addison Wesley
por ordem decrescente da sua menor coordenada Z
Passo 2: Rasterizar os polígonos
pela respectiva ordem
Primeiro os “mais atrás” e depois os mais “à frente”
26
Algoritmos Baseados em
Lista de Prioridades
©2010, CG&M/IST e Figuras Addison Wesley
Algoritmo “Depth Sort”Algoritmo do Pintor
Computação Gráfica
Remoção de Superfícies OcultasRemoção de Superfícies Ocultas
Algoritmo Z-Buffer
Algoritmo Z-Buffer
Características
Necessita de um buffer
para armazenar a profundidade Z
Não necessita ordenação de polígonos mas....
(ver à frente)
©2010, CG&M/IST e Figuras Addison Wesley
(ver à frente)
Não necessita de cálculos de intersecções
Pode ser facilmente integrado com
algoritmo de rasterização de polígonos (scan-line)
29
Algoritmo Z-Buffer
Funcionamento
©2010, CG&M/IST e Figuras Addison Wesley
30
Algoritmo Z-Buffer
Passos do Algoritmo
Inicializa o Z-Buffer com a profundidade máxima
Inicializa o Frame-Buffer com a cor de fundo
Para cada polígono
Para cada ponto do polígono:
p = valor de z (x, y)
©2010, CG&M/IST e Figuras Addison Wesley
pz = valor de z (x, y)
Se pz < ReadZ (x, y):
WriteZ (x, y, pz);
WritePixel (x, y, Cor em(x,y))
31
Algoritmo Z-Buffer
Cálculo de Z num ponto
Para polígonos planares
Temos equação do plano que suporta o polígono
Ax + By + Cz + D = 0
©2010, CG&M/IST e Figuras Addison Wesley
Então:
Computacionalmente caro!
32
z = ( - D - Ax - By ) / C
Algoritmo Z-Buffer
Cálculo de Z num ponto
Y
linha de
varrimento (s)Za ZbZp
Z1
Y1
Ys
©2010, CG&M/IST e Figuras Addison Wesley
varrimento (s)Za ZbZp
Z2
Z3
Ys
Y2
Y3
Algoritmo Z-Buffer
Cálculo de Z num ponto
Interpolação bilinear
ao longo de uma linha de varrimento
tirando partido da coerência de “scan line”
Conhecendo o valor z1 do ponto P1 (x,y),
©2010, CG&M/IST e Figuras Addison Wesley
Conhecendo o valor z1 do ponto P1 (x,y),
Pode-se calcular o valor z2 do ponto P2 (x + ∆x, y)
34
z2 = z1 - A ( x)
C
z2 = z1 - A / Ccom x = 1
Algoritmo Z-Buffer
Cálculo de Z num ponto
Y
linha de
varrimento (i)Za,i Zb,i
Z1
Z2
Y1
Yi
Y2
Za,i-1 Zb,i-1
©2010, CG&M/IST e Figuras Addison Wesley
Cálculo Incremental
Conhecendo za,i para Pi (x,y)
pode obter-se za,i+1 de Pi+1 (x, y+1) pela
expressão
35
Zi+1 = zi - B / C ( y = 1 )
Z3
Y3
Algoritmo Z-Buffer
Cálculo de Z num ponto
Y
linha de
varrimento (i)Za,i Zb,iZi,j
Z1
Z2
Y1
Yi
Y2
©2010, CG&M/IST e Figuras Addison Wesley
Cálculo Incremental
Conhecendo zi,j para Pi,j (x,y)
pode obter-se zi,j+1 de Pi,j+1 (x+1,y) pela expressão
36
zi,j+1 = zi,j - A / C ( x = 1 )
Z3
Y3
Algoritmo Z-Buffer
Vantagens
Espaço de memória independente do nº de polígonos
Aplicável a qualquer forma
Realizado em hardware
©2010, CG&M/IST e Figuras Addison Wesley
Mas…
Melhora o desempenho com pré-ordenação em Z
Problemas de aliasing (solução: A-Buffer)
37
Resumo
Rasterização
Discretização de linhas
Preenchimento de polígonos
Aliasing e Antialiasing
Sombreamento
©2010, CG&M/IST e Figuras Addison Wesley
Sombreamento
Visibilidade
Algoritmos para remoção de superfícies ocultas
Depth-Sort
Pintor
Z-Buffer
Na próxima aula
Rasterização
Discretização de linhas
Preenchimento de polígonos
Aliasing e Antialiasing
Sombreamento
©2010, CG&M/IST e Figuras Addison Wesley
Sombreamento
Visibilidade
Algoritmos para remoção de superfícies ocultas
Depth-Sort
Pintor
Z-Buffer
Computação Gráfica
Remoção de Superfícies OcultasRemoção de Superfícies Ocultas
Algoritmo de Linha de Varrimento
Estratégia
Coerência de linha de varrimento e de aresta
Algoritmo
1º Construção da tabela de arestas (ET, Edge Table)
para todas as arestas não horizontais de todos os
Algoritmo de Linha de Varrimento
(Scan-Line)
©2010, CG&M/IST e Figuras Addison Wesley
41
para todas as arestas não horizontais de todos os
polígonos, projectadas no plano de visualização,
ordenadas com base na menor coordenada Y e
em cada tabela no declive, contendo:
- coordenada X do vértice com menor Y.
- coordenada Y do outro vértice.
- incremento em X (Dx é o inverso do declive).
- identificação do polígono.
2º Polígonos organizados em tabela de polígonos
(PT,PolygonTable) contendo:
- coeficiente equação do plano
- cor do polígono
Algoritmos Scan-Line (cont.)
©2010, CG&M/IST e Figuras Addison Wesley
42
- cor do polígono
- etiqueta de entrada/saída (inicialmente a falso)
3º Manipulação da tabela de arestas activas (AET).
Exemplo
B
C
D
E
F
Y
β
ϕ
ϕ + 1
ϕ + 2
©2010, CG&M/IST e Figuras Addison Wesley
43
A
F
X
α
PT: AET:
( ABC )
( DEF )
ET:
[A,B]
[F,D]
[A,C]
[D,E]
[F,E]
[C,B]
.........
scan-line β :
scan-line α:
scan-lines ϕ, ϕ+1:
scan-line ϕ+2:
[A,B] [A,C]
[A,B] [A,C] [F,D] [F,E]
[A,B] [D,E] [C,B] [F,E]
[A,B] [C,B] [D,E] [F,E]
um polígono
visivel de cada vez
polígonos sobrepostos.
testar profundidades no
ponto de transição (pt).
quebrade
coerência
B
D
EY
ϕ
ϕ + 1
ϕ + 2
P1out
P2out
P1in
P2out
P1in
P2in
P1out
P2in
P1out
P2out
pt
Exemplo (cont.)
©2010, CG&M/IST e Figuras Addison Wesley
44
O estudo de profundidade relativa em pt faz-se avaliando em z a equação de plano dos 2
polígonos, para y = ϕ e x = Xpt. Será visível o polígono para o qual fôr calculado um maior
valor de z (maior proximidade do ponto de observação).
A
C
F
X
α
β
P1out
P2out
P1in
P2out
P1out
P2out
P1out
P2in
P1out
P2out
Z
• Alguns cálculos de profundidade podem ser
evitados. Em pt, quando se abandona (ABC),
pode assumir-se que a posição relativa de (DEF)
e (GHIJ) não se alterou.
A
B
C
D
E
F
ϕ
Pt
H
I
J
Se os polígonos não se interpenetram:
CONSIDERAÇÕES FINAIS
©2010, CG&M/IST e Figuras Addison Wesley
45
G
A J
• Com base na coerência de profundidade,
se estão presentes na AET de uma linha de
varrimento (ϕ+1) os mesmos lados que estavam
na AET da linha anterior (ϕ), e pela mesma
ordem, então as relações de profundidade
entre polígonos permanecem inalteradas em
todos os intervalos da linha (“spans”).
A
B
C
D
E
F
ϕ
ϕ + 1
A
B
C
B´
C´
D
E
F
• Para polígonos interpenetrantes deve
calcular-se a intersecção entre polígonos,
criar um falso lado (B´C´), e com ele
fragmentar um dos polígonos originais
(ABC) em dois novos polígonos (ABB´C´
e B´CC´) não penetrantes.
• O plano de fundo da cena (“background”) pode ser tratado de uma das seguintes
CONSIDERAÇÕES FINAIS (cont)
©2010, CG&M/IST e Figuras Addison Wesley
46
• O plano de fundo da cena (“background”) pode ser tratado de uma das seguintes
formas:
a) Inicializar o “frame-buffer” com a cor de fundo
c) Introduzir na cena um polígono de grandes dimensões, paralelo ao plano de
projecção e mais afastado do observador que qualquer outro polígono (atribuir cor e
sombreamento desejados).
b) Modificar o algoritmo para atribuir cor de fundo a todos os pixels tratados
nas situações em que todos os polígonos estão “out”.
Exemplo
B
C
D
EY
β
ϕ
ϕ + 1
ϕ + 2
©2010, CG&M/IST e Figuras Addison Wesley
47
A
F
X
α
β
PT: AET:
( ABC )
( DEF )
ET:
[A,B]
[F,D]
[A,C]
[D,E]
[F,E]
[C,B]
.........
scan-line β :
scan-line α:
scan-lines ϕ,
ϕ+1:
scan-line
ϕ+2:
[A,B] [A,C]
[A,B] [A,C] [F,D] [F,E]
[A,B] [D,E] [C,B] [F,E]
[A,B] [C,B] [D,E] [F,E]

Mais conteúdo relacionado

Mais procurados

resumo Função do 2 grau
 resumo Função do 2 grau resumo Função do 2 grau
resumo Função do 2 grauCelia Lana
 
Matematica 3 exercicios gabarito 09
Matematica 3 exercicios gabarito 09Matematica 3 exercicios gabarito 09
Matematica 3 exercicios gabarito 09comentada
 
Funçao quadratica-revisao 10º Ano
Funçao quadratica-revisao 10º AnoFunçao quadratica-revisao 10º Ano
Funçao quadratica-revisao 10º AnoAna Tapadinhas
 
Trabalho Objeto Aprendizagem
Trabalho Objeto AprendizagemTrabalho Objeto Aprendizagem
Trabalho Objeto Aprendizagem03689355826
 
Funcoes de varias variaveis calculo 2
Funcoes de varias variaveis  calculo 2Funcoes de varias variaveis  calculo 2
Funcoes de varias variaveis calculo 2Kassiane Campelo
 
Volumes de sólidos integral
Volumes de sólidos integralVolumes de sólidos integral
Volumes de sólidos integralHugoTavares82
 
Lista funcao quadratica
Lista funcao quadraticaLista funcao quadratica
Lista funcao quadraticalittlevic4
 
Slides de PDI 2009 - Raphael Update 5
Slides de PDI 2009 - Raphael Update 5Slides de PDI 2009 - Raphael Update 5
Slides de PDI 2009 - Raphael Update 5Raphael Marques
 
Matematica aplic economia_201101
Matematica  aplic economia_201101Matematica  aplic economia_201101
Matematica aplic economia_201101Acacio Chimenes
 
Exercícios sobre função
Exercícios sobre funçãoExercícios sobre função
Exercícios sobre funçãoDayanne Sousa
 
Exercícios - Princípio da Indução Finita (PIF)
Exercícios - Princípio da Indução Finita (PIF)Exercícios - Princípio da Indução Finita (PIF)
Exercícios - Princípio da Indução Finita (PIF)Rodrigo Thiago Passos Silva
 
Exerc relações métricas_revisado
Exerc relações métricas_revisadoExerc relações métricas_revisado
Exerc relações métricas_revisadoMarcia Roberto
 

Mais procurados (20)

resumo Função do 2 grau
 resumo Função do 2 grau resumo Função do 2 grau
resumo Função do 2 grau
 
Matematica 3 exercicios gabarito 09
Matematica 3 exercicios gabarito 09Matematica 3 exercicios gabarito 09
Matematica 3 exercicios gabarito 09
 
03 calculo diferencial-parte2
03 calculo diferencial-parte203 calculo diferencial-parte2
03 calculo diferencial-parte2
 
Funçao quadratica-revisao 10º Ano
Funçao quadratica-revisao 10º AnoFunçao quadratica-revisao 10º Ano
Funçao quadratica-revisao 10º Ano
 
Apostila matematica
Apostila matematicaApostila matematica
Apostila matematica
 
Calculo1 aula07
Calculo1 aula07Calculo1 aula07
Calculo1 aula07
 
Trabalho Objeto Aprendizagem
Trabalho Objeto AprendizagemTrabalho Objeto Aprendizagem
Trabalho Objeto Aprendizagem
 
03 calculo diferencial-parte1
03 calculo diferencial-parte103 calculo diferencial-parte1
03 calculo diferencial-parte1
 
Funcoes de varias variaveis calculo 2
Funcoes de varias variaveis  calculo 2Funcoes de varias variaveis  calculo 2
Funcoes de varias variaveis calculo 2
 
Volumes de sólidos integral
Volumes de sólidos integralVolumes de sólidos integral
Volumes de sólidos integral
 
Lista funcao quadratica
Lista funcao quadraticaLista funcao quadratica
Lista funcao quadratica
 
Tensão média e tensão eficaz
Tensão média e tensão eficazTensão média e tensão eficaz
Tensão média e tensão eficaz
 
Slides de PDI 2009 - Raphael Update 5
Slides de PDI 2009 - Raphael Update 5Slides de PDI 2009 - Raphael Update 5
Slides de PDI 2009 - Raphael Update 5
 
Matematica aplic economia_201101
Matematica  aplic economia_201101Matematica  aplic economia_201101
Matematica aplic economia_201101
 
Derivadas
DerivadasDerivadas
Derivadas
 
Matemática I - Tópico 04: Equações do 1º e 2º graus e Inequações
Matemática I - Tópico 04: Equações do 1º e 2º graus e InequaçõesMatemática I - Tópico 04: Equações do 1º e 2º graus e Inequações
Matemática I - Tópico 04: Equações do 1º e 2º graus e Inequações
 
Exercícios sobre função
Exercícios sobre funçãoExercícios sobre função
Exercícios sobre função
 
Exercícios - Princípio da Indução Finita (PIF)
Exercícios - Princípio da Indução Finita (PIF)Exercícios - Princípio da Indução Finita (PIF)
Exercícios - Princípio da Indução Finita (PIF)
 
Exerc relações métricas_revisado
Exerc relações métricas_revisadoExerc relações métricas_revisado
Exerc relações métricas_revisado
 
Cursocalc1ead
Cursocalc1eadCursocalc1ead
Cursocalc1ead
 

Semelhante a Aula19 visibilidade

Semelhante a Aula19 visibilidade (7)

Eliminação de Superfícies Escondidas
Eliminação de Superfícies EscondidasEliminação de Superfícies Escondidas
Eliminação de Superfícies Escondidas
 
Cg 03 primitivas_graficas
Cg 03 primitivas_graficasCg 03 primitivas_graficas
Cg 03 primitivas_graficas
 
Complexos
ComplexosComplexos
Complexos
 
Complexos
ComplexosComplexos
Complexos
 
Complexos
ComplexosComplexos
Complexos
 
Números Complexos_IME ITA
Números Complexos_IME ITANúmeros Complexos_IME ITA
Números Complexos_IME ITA
 
PLANOS
PLANOSPLANOS
PLANOS
 

Aula19 visibilidade

  • 1. Visibilidade Instituto Superior Técnico Apontamentos CG + Edward Angel, Sec. 7.11 Instituto Superior Técnico Computação Gráfica 2009/2010 1
  • 2. Na últimas aulas Rasterização Discretização de linhas Preenchimento de polígonos ©2010, CG&M/IST e Figuras Addison Wesley Aliasing e Antialiasing Sombreamento
  • 3. Sumário Rasterização Discretização de linhas Preenchimento de polígonos Aliasing e Antialiasing Sombreamento ©2010, CG&M/IST e Figuras Addison Wesley Sombreamento Visibilidade Algoritmos para remoção de superfícies ocultas Depth-Sort Pintor Z-Buffer
  • 5. Sombreamento Métodos Principais Sombreamento Constante (Flat Shading) Sombreamento de Gouraud ©2010, CG&M/IST e Figuras Addison Wesley Sombreamento de Gouraud (Gouraud Shading) Sombreamento de Phong (Phong Shading) Diferente de modelo de iluminação de Phong 5
  • 6. Computação Gráfica Remoção de Superfícies OcultasRemoção de Superfícies Ocultas
  • 7. Precisão Imagem Para cada pixel da imagem Determinar o objecto mais próximo visível através do pixel Desenhar o pixel com a cor correcta Estratégias algorítmicas ©2010, CG&M/IST e Figuras Addison Wesley 7 Precisão Objecto Para cada objecto da cena Determinar partes visíveis Desenhar essas partes com a cor correcta
  • 8. Precisão Imagem Precisão dependente da resolução do dispositivo Visibilidade determinada em cada pixel. Algoritmos Orientados para dispositivos “raster”. ©2010, CG&M/IST e Figuras Addison Wesley Orientados para dispositivos “raster”. Susceptíveis ao fenómeno do “aliasing”. Para n objectos e p pixels, complexidade algorítmica (n x p). Operações realizadas elementares e de baixa carga computacional
  • 9. Precisão Objecto Precisão infinita resolução da visibilidade ao nível dos objectos Orientadas para dispositivos vectoriais (inicialmente) ©2010, CG&M/IST e Figuras Addison Wesley (inicialmente) Para n objectos carga computacional proporcional a n2 Operações individuais complexas de elevada carga computacional.
  • 10. Computação Gráfica Remoção de Superfícies OcultasRemoção de Superfícies Ocultas
  • 11. Coerência Tipicamente, propriedades dos objectos variam de forma suave ao longo da sua extensão mantendo um certo grau de coerência (cor, textura, profundidade, etc…) ©2010, CG&M/IST e Figuras Addison Wesley (cor, textura, profundidade, etc…) Isso permite distinguir objectos dentro de uma mesma cena 11
  • 12. Ordenação em 1D X Z min 2 ©2010, CG&M/IST e Figuras Addison Wesley 13 Z Z max1 Z min 1 Z max2
  • 13. Rectângulos Envolventes ©2010, CG&M/IST e Figuras Addison Wesley 14
  • 14. Computação Gráfica Remoção de Superfícies OcultasRemoção de Superfícies Ocultas Algoritmos Baseados em Listas de Prioridades
  • 15. Algoritmos Baseados em Lista de Prioridades Exemplos: Algoritmo do pintor Algoritmo de ordenação em profundidade ©2010, CG&M/IST e Figuras Addison Wesley Estratégia: Desenhar polígonos na ordem (de)crescente de Z Z indica distância ao observador Decrescente se referencial de câmara orientado pela regra mão esquerda 16
  • 16. Algoritmos Baseados em Lista de Prioridades Abordagem Desenhar os objectos na sequência correcta Algoritmos híbridos (precisão objecto e precisão imagem) ©2010, CG&M/IST e Figuras Addison Wesley (precisão objecto e precisão imagem) Diferenças: Modo de ordenação Modo de subdividir os polígonos Quando ocorre a subdivisão 17
  • 17. Algoritmo de Ordenação em Profundidade Passo 1: Ordenar polígonos da lista por ordem decrescente da sua menor coordenada Z Passo 2: Resolver situações ambíguas ©2010, CG&M/IST e Figuras Addison Wesley Passo 2: Resolver situações ambíguas intervalos de ocupação dos polígonos em Z sobrepostos resolução de ambiguidades pode passar pela fragmentação dos polígonos neste caso a lista de polígonos é actualizada de forma ordenada Passo 3: Rasterizar os polígonos por ordem em que se encontram na lista Primeiro os “mais atrás” e depois os mais “à frente” 18
  • 18. Algoritmo de Ordenação em Profundidade Resolução de Ambiguidades Antes de rasterizar o primeiro polígono (P) da lista (o mais afastado do observador) compará-lo com todos os polígonos (Qi) cujos intervalos de ocupação segundo Z sobreponham o intervalo Z do primeiro ©2010, CG&M/IST e Figuras Addison Wesley 19
  • 19. Algoritmo de Ordenação em Profundidade Resolução de Ambiguidades Processo de comparação tem por objectivo Determinar se P não obstrui a visibilidade de Q1 ©2010, CG&M/IST e Figuras Addison Wesley 20 Verificam-se as 4 condições seguintes Por ordem de complexidade
  • 20. Algoritmo de Ordenação em Profundidade Resolução de Ambiguidades (c.1) Objectivo: P não obstrui a visibilidade de Q Considere-se P e Q projectados sobre Z = 0. Projecções em X ou em Y não se sobrepõem Qualquer polígono pode ser desenhado primeiro ©2010, CG&M/IST e Figuras Addison Wesley Qualquer polígono pode ser desenhado primeiro 21 P Q X Y P Q X Y
  • 21. Algoritmo de Ordenação em Profundidade Resolução de Ambiguidades (c.2) Objectivo: P não obstrui a visibilidade de Q P encontra-se totalmente contido no semi-espaço definido pelo plano de Q e oposto ao da câmara (cálculos triviais) ©2010, CG&M/IST e Figuras Addison Wesley (cálculos triviais) 22 X P Q Z
  • 22. Algoritmo de Ordenação em Profundidade Resolução de Ambiguidades (c.3) Objectivo: P não obstrui a visibilidade de Q Q encontra-se totalmente contido no mesmo semi-espaço, definido pelo plano em que se encontra o ponto de observação da cena ©2010, CG&M/IST e Figuras Addison Wesley encontra o ponto de observação da cena 23X Z P Q
  • 23. Algoritmo de Ordenação em Profundidade Resolução de Ambiguidades (c.4) Objectivo: P não obstrui a visibilidade de Q Considere-se P e Q projectados sobre Z = 0 As projecções de P e Q não se sobrepõem (mais difícil de calcular) ©2010, CG&M/IST e Figuras Addison Wesley (mais difícil de calcular) 24 P Q X Y
  • 24. Algoritmo de Ordenação em Profundidade Sub-divisão de Polígonos Se nenhuma das condições c.1 a c.4 é válida: Usar o plano definido pelo polígono Q para subdividir o polígono P ©2010, CG&M/IST e Figuras Addison Wesley Substituir P pelos dois polígonos em que foi subdividido Ordenar os polígonos por Z decrescente Repetir o algoritmo 25
  • 25. Algoritmo do Pintor Simplificação do algoritmo de Ordenação em Profundidade Polígonos pertencem a planos com Z constante (2.5D) Passo 1: Ordenar polígonos da cena Z ©2010, CG&M/IST e Figuras Addison Wesley por ordem decrescente da sua menor coordenada Z Passo 2: Rasterizar os polígonos pela respectiva ordem Primeiro os “mais atrás” e depois os mais “à frente” 26
  • 26. Algoritmos Baseados em Lista de Prioridades ©2010, CG&M/IST e Figuras Addison Wesley Algoritmo “Depth Sort”Algoritmo do Pintor
  • 27. Computação Gráfica Remoção de Superfícies OcultasRemoção de Superfícies Ocultas Algoritmo Z-Buffer
  • 28. Algoritmo Z-Buffer Características Necessita de um buffer para armazenar a profundidade Z Não necessita ordenação de polígonos mas.... (ver à frente) ©2010, CG&M/IST e Figuras Addison Wesley (ver à frente) Não necessita de cálculos de intersecções Pode ser facilmente integrado com algoritmo de rasterização de polígonos (scan-line) 29
  • 30. Algoritmo Z-Buffer Passos do Algoritmo Inicializa o Z-Buffer com a profundidade máxima Inicializa o Frame-Buffer com a cor de fundo Para cada polígono Para cada ponto do polígono: p = valor de z (x, y) ©2010, CG&M/IST e Figuras Addison Wesley pz = valor de z (x, y) Se pz < ReadZ (x, y): WriteZ (x, y, pz); WritePixel (x, y, Cor em(x,y)) 31
  • 31. Algoritmo Z-Buffer Cálculo de Z num ponto Para polígonos planares Temos equação do plano que suporta o polígono Ax + By + Cz + D = 0 ©2010, CG&M/IST e Figuras Addison Wesley Então: Computacionalmente caro! 32 z = ( - D - Ax - By ) / C
  • 32. Algoritmo Z-Buffer Cálculo de Z num ponto Y linha de varrimento (s)Za ZbZp Z1 Y1 Ys ©2010, CG&M/IST e Figuras Addison Wesley varrimento (s)Za ZbZp Z2 Z3 Ys Y2 Y3
  • 33. Algoritmo Z-Buffer Cálculo de Z num ponto Interpolação bilinear ao longo de uma linha de varrimento tirando partido da coerência de “scan line” Conhecendo o valor z1 do ponto P1 (x,y), ©2010, CG&M/IST e Figuras Addison Wesley Conhecendo o valor z1 do ponto P1 (x,y), Pode-se calcular o valor z2 do ponto P2 (x + ∆x, y) 34 z2 = z1 - A ( x) C z2 = z1 - A / Ccom x = 1
  • 34. Algoritmo Z-Buffer Cálculo de Z num ponto Y linha de varrimento (i)Za,i Zb,i Z1 Z2 Y1 Yi Y2 Za,i-1 Zb,i-1 ©2010, CG&M/IST e Figuras Addison Wesley Cálculo Incremental Conhecendo za,i para Pi (x,y) pode obter-se za,i+1 de Pi+1 (x, y+1) pela expressão 35 Zi+1 = zi - B / C ( y = 1 ) Z3 Y3
  • 35. Algoritmo Z-Buffer Cálculo de Z num ponto Y linha de varrimento (i)Za,i Zb,iZi,j Z1 Z2 Y1 Yi Y2 ©2010, CG&M/IST e Figuras Addison Wesley Cálculo Incremental Conhecendo zi,j para Pi,j (x,y) pode obter-se zi,j+1 de Pi,j+1 (x+1,y) pela expressão 36 zi,j+1 = zi,j - A / C ( x = 1 ) Z3 Y3
  • 36. Algoritmo Z-Buffer Vantagens Espaço de memória independente do nº de polígonos Aplicável a qualquer forma Realizado em hardware ©2010, CG&M/IST e Figuras Addison Wesley Mas… Melhora o desempenho com pré-ordenação em Z Problemas de aliasing (solução: A-Buffer) 37
  • 37. Resumo Rasterização Discretização de linhas Preenchimento de polígonos Aliasing e Antialiasing Sombreamento ©2010, CG&M/IST e Figuras Addison Wesley Sombreamento Visibilidade Algoritmos para remoção de superfícies ocultas Depth-Sort Pintor Z-Buffer
  • 38. Na próxima aula Rasterização Discretização de linhas Preenchimento de polígonos Aliasing e Antialiasing Sombreamento ©2010, CG&M/IST e Figuras Addison Wesley Sombreamento Visibilidade Algoritmos para remoção de superfícies ocultas Depth-Sort Pintor Z-Buffer
  • 39. Computação Gráfica Remoção de Superfícies OcultasRemoção de Superfícies Ocultas Algoritmo de Linha de Varrimento
  • 40. Estratégia Coerência de linha de varrimento e de aresta Algoritmo 1º Construção da tabela de arestas (ET, Edge Table) para todas as arestas não horizontais de todos os Algoritmo de Linha de Varrimento (Scan-Line) ©2010, CG&M/IST e Figuras Addison Wesley 41 para todas as arestas não horizontais de todos os polígonos, projectadas no plano de visualização, ordenadas com base na menor coordenada Y e em cada tabela no declive, contendo: - coordenada X do vértice com menor Y. - coordenada Y do outro vértice. - incremento em X (Dx é o inverso do declive). - identificação do polígono.
  • 41. 2º Polígonos organizados em tabela de polígonos (PT,PolygonTable) contendo: - coeficiente equação do plano - cor do polígono Algoritmos Scan-Line (cont.) ©2010, CG&M/IST e Figuras Addison Wesley 42 - cor do polígono - etiqueta de entrada/saída (inicialmente a falso) 3º Manipulação da tabela de arestas activas (AET).
  • 42. Exemplo B C D E F Y β ϕ ϕ + 1 ϕ + 2 ©2010, CG&M/IST e Figuras Addison Wesley 43 A F X α PT: AET: ( ABC ) ( DEF ) ET: [A,B] [F,D] [A,C] [D,E] [F,E] [C,B] ......... scan-line β : scan-line α: scan-lines ϕ, ϕ+1: scan-line ϕ+2: [A,B] [A,C] [A,B] [A,C] [F,D] [F,E] [A,B] [D,E] [C,B] [F,E] [A,B] [C,B] [D,E] [F,E]
  • 43. um polígono visivel de cada vez polígonos sobrepostos. testar profundidades no ponto de transição (pt). quebrade coerência B D EY ϕ ϕ + 1 ϕ + 2 P1out P2out P1in P2out P1in P2in P1out P2in P1out P2out pt Exemplo (cont.) ©2010, CG&M/IST e Figuras Addison Wesley 44 O estudo de profundidade relativa em pt faz-se avaliando em z a equação de plano dos 2 polígonos, para y = ϕ e x = Xpt. Será visível o polígono para o qual fôr calculado um maior valor de z (maior proximidade do ponto de observação). A C F X α β P1out P2out P1in P2out P1out P2out P1out P2in P1out P2out Z
  • 44. • Alguns cálculos de profundidade podem ser evitados. Em pt, quando se abandona (ABC), pode assumir-se que a posição relativa de (DEF) e (GHIJ) não se alterou. A B C D E F ϕ Pt H I J Se os polígonos não se interpenetram: CONSIDERAÇÕES FINAIS ©2010, CG&M/IST e Figuras Addison Wesley 45 G A J • Com base na coerência de profundidade, se estão presentes na AET de uma linha de varrimento (ϕ+1) os mesmos lados que estavam na AET da linha anterior (ϕ), e pela mesma ordem, então as relações de profundidade entre polígonos permanecem inalteradas em todos os intervalos da linha (“spans”). A B C D E F ϕ ϕ + 1
  • 45. A B C B´ C´ D E F • Para polígonos interpenetrantes deve calcular-se a intersecção entre polígonos, criar um falso lado (B´C´), e com ele fragmentar um dos polígonos originais (ABC) em dois novos polígonos (ABB´C´ e B´CC´) não penetrantes. • O plano de fundo da cena (“background”) pode ser tratado de uma das seguintes CONSIDERAÇÕES FINAIS (cont) ©2010, CG&M/IST e Figuras Addison Wesley 46 • O plano de fundo da cena (“background”) pode ser tratado de uma das seguintes formas: a) Inicializar o “frame-buffer” com a cor de fundo c) Introduzir na cena um polígono de grandes dimensões, paralelo ao plano de projecção e mais afastado do observador que qualquer outro polígono (atribuir cor e sombreamento desejados). b) Modificar o algoritmo para atribuir cor de fundo a todos os pixels tratados nas situações em que todos os polígonos estão “out”.
  • 46. Exemplo B C D EY β ϕ ϕ + 1 ϕ + 2 ©2010, CG&M/IST e Figuras Addison Wesley 47 A F X α β PT: AET: ( ABC ) ( DEF ) ET: [A,B] [F,D] [A,C] [D,E] [F,E] [C,B] ......... scan-line β : scan-line α: scan-lines ϕ, ϕ+1: scan-line ϕ+2: [A,B] [A,C] [A,B] [A,C] [F,D] [F,E] [A,B] [D,E] [C,B] [F,E] [A,B] [C,B] [D,E] [F,E]