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]

Aula19 visibilidade

  • 1.
    Visibilidade Instituto Superior Técnico ApontamentosCG + Edward Angel, Sec. 7.11 Instituto Superior Técnico Computação Gráfica 2009/2010 1
  • 2.
    Na últimas aulas Rasterização Discretizaçãode 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 Preenchimentode 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
  • 4.
  • 5.
    Sombreamento Métodos Principais Sombreamento Constante (FlatShading) 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 deSuperfícies OcultasRemoção de Superfícies Ocultas
  • 7.
    Precisão Imagem Para cadapixel 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 dependenteda 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çãoda 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 deSuperfícies OcultasRemoção de Superfícies Ocultas
  • 11.
    Coerência Tipicamente, propriedades dosobjectos 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 Zmin 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/ISTe Figuras Addison Wesley 14
  • 14.
    Computação Gráfica Remoção deSuperfícies OcultasRemoção de Superfícies Ocultas Algoritmos Baseados em Listas de Prioridades
  • 15.
    Algoritmos Baseados em Listade 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 Listade 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 emProfundidade 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çãoem 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çãoem 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çãoem 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çãoem 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çãoem 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çãoem 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çãoem 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 doalgoritmo 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 Listade Prioridades ©2010, CG&M/IST e Figuras Addison Wesley Algoritmo “Depth Sort”Algoritmo do Pintor
  • 27.
    Computação Gráfica Remoção deSuperfícies OcultasRemoção de Superfícies Ocultas Algoritmo Z-Buffer
  • 28.
    Algoritmo Z-Buffer Características Necessita deum 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
  • 29.
  • 30.
    Algoritmo Z-Buffer Passos doAlgoritmo 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 deZ 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 deZ 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 deZ 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 deZ 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 deZ 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 dememó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 Preenchimentode 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çãode 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 deSuperfícies OcultasRemoção de Superfícies Ocultas Algoritmo de Linha de Varrimento
  • 40.
    Estratégia Coerência de linhade 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 organizadosem 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 decada 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álculosde 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ígonosinterpenetrantes 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]