eliminação de superfícies escondidas
Post on 07-Jul-2015
1.150 Views
Preview:
DESCRIPTION
TRANSCRIPT
Eliminação de Superfícies Eliminação de Superfícies EscondidasEscondidas
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.
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.
Eliminação de faces traseiras (Backface Eliminação de faces traseiras (Backface Culling)Culling)Exibição por normais
Eficiente quando renderizando poucos polígonos
Objetos sólidos convexos
Eliminação de faces traseiras (Backface Eliminação de faces traseiras (Backface Culling)Culling)Inversão de normais
OpenGL
Simples
Requer capacidade computacional dependendo da implementação
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)
Eliminação de faces traseiras (Backface Eliminação de faces traseiras (Backface Culling)Culling)
vértices linhas Back-Face Culling
Inter-object visibility Shading
Eliminação de faces traseiras (Backface Eliminação de faces traseiras (Backface Culling)Culling)
Eliminação de faces traseiras (Backface Eliminação de faces traseiras (Backface Culling)Culling)
Eliminação de faces traseiras (Backface Eliminação de faces traseiras (Backface Culling)Culling)
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)
Algoritmo do Pintor (Painter’s Algoritmo 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
Algoritmo do Pintor (Painter’s Algoritmo 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)
Algoritmo do Pintor (Painter’s Algoritmo do Pintor (Painter’s Algorithm) Algorithm) (Depth-Sorting Method)(Depth-Sorting Method)
Algoritmo do Pintor (Painter’s Algoritmo do Pintor (Painter’s Algorithm) Algorithm) (Depth-Sorting Method)(Depth-Sorting Method)
Algoritmo do Pintor (Painter’s Algoritmo do Pintor (Painter’s Algorithm) Algorithm) (Depth-Sorting Method(Depth-Sorting MethodCinco 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õem2.A extensão Y dos polígonos não se sobrepõem, então os polígonos não se sobrepõem3.P está totalmente atrás de Q , então os polígonos não se sobrepõem4.Q está totalmente atrás de P, então os polígonos não se sobrepõem5.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
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_embedded
Algorítmo Z-bufferAlgorítmo Z-bufferCriado 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.
Algorítmo Z-bufferAlgorítmo Z-bufferDois 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).
Algorítmo Z-bufferAlgorítmo Z-bufferConjunto 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)
Algorítmo Z-bufferAlgorítmo Z-buffer
Algorítmo Z-bufferAlgorítmo Z-bufferLista 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
ComparaçãoComparação
Árvores BSPÁrvores BSP
Henry Fuchs, Zvi Kedem and Bruce Naylor
Schumacker, Brand, Gilliland and Sharp
Z-buffer não existia
Árvores BSPÁrvores BSPBSP = 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
Árvores BSPÁrvores BSPFornece ordem de renderização
Determina parte visível / escondida de polígonos (DOOM)
Planos de corte
Ordem back to front
Árvores BSPÁrvores BSP
Árvores BSPÁrvores BSP
Árvores BSPÁrvores BSP
Árvores BSPÁrvores BSP
Árvores BSPÁrvores BSP
Gabriel Estimado PozaGabriel Estimado PozaJosé Arthur Vigilante MartinsJosé Arthur Vigilante Martins
Marina Ikeda UshiroMarina Ikeda UshiroJogos DigitaisJogos Digitais4º Semestre4º Semestre
top related