O documento discute técnicas para eliminação de superfícies ocultas em computação gráfica, incluindo eliminação de faces escondidas, backface culling, algoritmo do pintor, z-buffer e árvores BSP. Estas técnicas removem superfícies que não podem ser vistas para melhorar a performance e precisão da renderização gráfica.
2. Eliminação de faces escondidasEliminação de faces escondidas
Uma das necessidades de eliminar superfícies
escondidas está na interpretação feita pelas
vistas.
Esta ambiguidade pode ser eliminada
removendo as linhas ou superfícies que são
invisíveis a partir das duas visões.
3. Eliminação de faces escondidasEliminação de faces escondidas
Alguns objetos podem ocultar outros.
Linhas e faces são ocultas pelo próprio
objeto ou por outros.
4. Eliminação de faces traseiras (BackfaceEliminação de faces traseiras (Backface
Culling)Culling)
Exibição por normais
Eficiente quando renderizando poucos
polígonos
Objetos sólidos convexos
5. Eliminação de faces traseiras (BackfaceEliminação de faces traseiras (Backface
Culling)Culling)
Inversão de normais
OpenGL
Simples
Requer capacidade computacional
dependendo da implementação
6. Eliminação de faces traseirasEliminação de faces traseiras
(Backface Culling)(Backface Culling)
Determina-se o ângulo entre a direção do observador e
o vetor normal de cada face.
As faces ques estão ao lado oposto do observador são
determinadas como faces traseiras.
Elimina-se estas faces do desenho (backface culling)
7. Eliminação de faces traseiras (BackfaceEliminação de faces traseiras (Backface
Culling)Culling)
vértices linhas Back-Face Culling
Inter-object visibility Shading
8. Eliminação de faces traseiras (BackfaceEliminação de faces traseiras (Backface
Culling)Culling)
9. Eliminação de faces traseiras (BackfaceEliminação de faces traseiras (Backface
Culling)Culling)
10. Eliminação de faces traseiras (BackfaceEliminação de faces traseiras (Backface
Culling)Culling)
11. Eliminação de faces traseirasEliminação de faces traseiras
(Backface Culling)(Backface Culling)
Executa-se o cálculo do produto escalar
Positivo para um polígono de face traseira (vetores com ângulo menor que
90º, face virada para trás)
Negativo para um polígono de face frontal (vetores com ângulo maior que
90º, face vira para frente)
Igual a zero para um polígono da face “lateral” (vetores perpendiculares,
face não-visível)
12. Algoritmo do Pintor (Painter’sAlgoritmo do Pintor (Painter’s
Algorithm)Algorithm) (Depth-Sorting Method)(Depth-Sorting Method)
André LaMothe (AI hardware/software
research)
Instituto de Pesquisa de Ciência da
Computação Avançada da NASA
XGameStation
Série Black Art
13. Algoritmo do Pintor (Painter’sAlgoritmo do Pintor (Painter’s
Algorithm)Algorithm) (Depth-Sorting Method)(Depth-Sorting Method)
Criado por André LaMothe(1995)
Surgiu por ser inspirado na maneira que quadros
são pintados
Ordena polígonos de acordo com a
profundidade (extensão Z)
Ambiguidade na sobreposição (intersecção)
14. Algoritmo do Pintor (Painter’sAlgoritmo do Pintor (Painter’s
Algorithm)Algorithm) (Depth-Sorting Method)(Depth-Sorting Method)
15. Algoritmo do Pintor (Painter’sAlgoritmo do Pintor (Painter’s
Algorithm)Algorithm) (Depth-Sorting Method)(Depth-Sorting Method)
16. Algoritmo do Pintor (Painter’sAlgoritmo do Pintor (Painter’s
Algorithm)Algorithm) (Depth-Sorting Method(Depth-Sorting Method
Cinco testes para consertar ambiguidade:
1.A extensão X dos polígonos não se sobrepõem, então os polígonos não
se sobrepõem
2.A extensão Y dos polígonos não se sobrepõem, então os polígonos não
se sobrepõem
3.P está totalmente atrás de Q , então os polígonos não se sobrepõem
4.Q está totalmente atrás de P, então os polígonos não se sobrepõem
5.As projeções dos polígonos no plano XY (tela) não se sobrepõem, então
os polígonos não se sobrepõem
17. Algorítmo Z-bufferAlgorítmo Z-buffer
Edwin Catmull
Co-fundador e presidente do Pixar
Animation Studio
Pai do Texture Mapping (Ph.D. thesis of
1974.)
http://www.youtube.com/watch?
v=iizL2iCMe28&feature=player_embedde
18. Algorítmo Z-bufferAlgorítmo Z-buffer
Criado por Edwin Catmull em 1974
Procedimento de preenchimento de polígonos (scan-line Z-Buffer):
◦ Z-Buffer e scan-line Z-Buffer faz a varredura do polígono a ser exibido, linha a
linha.
19. Algorítmo Z-bufferAlgorítmo Z-buffer
Dois buffers :
◦ Color/frame Buffer (armazena cor atual de cada pixel);
◦ Z-Buffer - profundidade máxima (armazena para cada pixel, a profundidade
do objeto mais próximo).
20. Algorítmo Z-bufferAlgorítmo Z-buffer
Conjunto de pares (x, y) com o valor de z mais
próximo do ponto de visão
OpenGL (Hardware/Software)
Exige memória
Desempenho constante
Não trata transparência facilmente (precisaria guardar
informação sobre polígonos parcialmente cobertos)
22. Algorítmo Z-bufferAlgorítmo Z-buffer
Lista of polígonos {P1, P2, ..., Pn}
Matriz z-buffer[x,y] inicializado com -8
Matriz Intensidade[x,y]
Início
para cada polígono P na lista de polígonos faça {
para cada pixel (x,y) que intercepta P faça {
calcule profundidade-z de P na posição (x,y)
se prof-z < z-buffer[x,y] então {
Intensidade[x,y] = intensidade de P em (x,y)
z-buffer[x,y] = prof-z
}
}
}
Desenhe Intensidade
fim
24. Árvores BSPÁrvores BSP
Henry Fuchs, Zvi Kedem and Bruce
Naylor
Schumacker, Brand, Gilliland and Sharp
Z-buffer não existia
25. Árvores BSPÁrvores BSP
BSP = Binary Space-Partitioning (Partição
Binária do Espaço)
Criada por Fuchs, Kedem e Naylor em
1980
Permite a ordenação correta dos
segmentos de retas, ou polígonos, a partir
de qualquer ponto de visão
26. Árvores BSPÁrvores BSP
Fornece ordem de renderização
Determina parte visível / escondida de
polígonos (DOOM)
Planos de corte
Ordem back to front
32. Gabriel Estimado PozaGabriel Estimado Poza
José Arthur Vigilante MartinsJosé Arthur Vigilante Martins
Marina Ikeda UshiroMarina Ikeda Ushiro
Jogos DigitaisJogos Digitais
4º Semestre4º Semestre