32
Eliminação de Superfícies Eliminação de Superfícies Escondidas Escondidas

Eliminação de Superfícies Escondidas

Embed Size (px)

DESCRIPTION

Apresentação para o 1º International Symposium on Interactive Game and Simulation. Data: 29 de novembro de 2010. Local: Campus Marquês de Paranaguá da PUC-SP. Tema: Eliminação de Superfícies Escondidas. Aluno: José Arthur.

Citation preview

Page 1: Eliminação de Superfícies Escondidas

Eliminação de Superfícies Eliminação de Superfícies EscondidasEscondidas

Page 2: Eliminação de Superfícies Escondidas

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.

Page 3: Eliminação de Superfícies Escondidas

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.

Page 4: Eliminação de Superfícies Escondidas

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

Page 5: Eliminação de Superfícies Escondidas

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

Page 6: Eliminação de Superfícies Escondidas

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)

Page 7: Eliminação de Superfícies Escondidas

Eliminação de faces traseiras (Backface Eliminação de faces traseiras (Backface Culling)Culling)

vértices linhas Back-Face Culling

Inter-object visibility Shading

Page 8: Eliminação de Superfícies Escondidas

Eliminação de faces traseiras (Backface Eliminação de faces traseiras (Backface Culling)Culling)

Page 9: Eliminação de Superfícies Escondidas

Eliminação de faces traseiras (Backface Eliminação de faces traseiras (Backface Culling)Culling)

Page 10: Eliminação de Superfícies Escondidas

Eliminação de faces traseiras (Backface Eliminação de faces traseiras (Backface Culling)Culling)

Page 11: Eliminação de Superfícies Escondidas

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)

Page 12: Eliminação de Superfícies Escondidas

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

Page 13: Eliminação de Superfícies Escondidas

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)

Page 14: Eliminação de Superfícies Escondidas

Algoritmo do Pintor (Painter’s Algoritmo do Pintor (Painter’s Algorithm) Algorithm) (Depth-Sorting Method)(Depth-Sorting Method)

Page 15: Eliminação de Superfícies Escondidas

Algoritmo do Pintor (Painter’s Algoritmo do Pintor (Painter’s Algorithm) Algorithm) (Depth-Sorting Method)(Depth-Sorting Method)

Page 16: Eliminação de Superfícies Escondidas

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

Page 17: Eliminação de Superfícies Escondidas

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

Page 18: Eliminação de Superfícies Escondidas

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.

Page 19: Eliminação de Superfícies Escondidas

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).

Page 20: Eliminação de Superfícies Escondidas

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)

Page 21: Eliminação de Superfícies Escondidas

Algorítmo Z-bufferAlgorítmo Z-buffer

Page 22: Eliminação de Superfícies Escondidas

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

Page 23: Eliminação de Superfícies Escondidas

ComparaçãoComparação

Page 24: Eliminação de Superfícies Escondidas

Árvores BSPÁrvores BSP

Henry Fuchs, Zvi Kedem and Bruce Naylor

Schumacker, Brand, Gilliland and Sharp

Z-buffer não existia

Page 25: Eliminação de Superfícies Escondidas

Á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

Page 26: Eliminação de Superfícies Escondidas

Árvores BSPÁrvores BSPFornece ordem de renderização

Determina parte visível / escondida de polígonos (DOOM)

Planos de corte

Ordem back to front

Page 27: Eliminação de Superfícies Escondidas

Árvores BSPÁrvores BSP

Page 28: Eliminação de Superfícies Escondidas

Árvores BSPÁrvores BSP

Page 29: Eliminação de Superfícies Escondidas

Árvores BSPÁrvores BSP

Page 30: Eliminação de Superfícies Escondidas

Árvores BSPÁrvores BSP

Page 31: Eliminação de Superfícies Escondidas

Árvores BSPÁrvores BSP

Page 32: Eliminação de Superfícies Escondidas

Gabriel Estimado PozaGabriel Estimado PozaJosé Arthur Vigilante MartinsJosé Arthur Vigilante Martins

Marina Ikeda UshiroMarina Ikeda UshiroJogos DigitaisJogos Digitais4º Semestre4º Semestre