SlideShare uma empresa Scribd logo
1 de 32
Eliminação de SuperfíciesEliminaçã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 (BackfaceEliminaçã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 (BackfaceEliminaçã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 (BackfaceEliminação de faces traseiras (Backface
Culling)Culling)
vértices linhas Back-Face Culling
Inter-object visibility Shading
Eliminação de faces traseiras (BackfaceEliminação de faces traseiras (Backface
Culling)Culling)
Eliminação de faces traseiras (BackfaceEliminação de faces traseiras (Backface
Culling)Culling)
Eliminação de faces traseiras (BackfaceEliminaçã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’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
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)
Algoritmo do Pintor (Painter’sAlgoritmo do Pintor (Painter’s
Algorithm)Algorithm) (Depth-Sorting Method)(Depth-Sorting Method)
Algoritmo do Pintor (Painter’sAlgoritmo do Pintor (Painter’s
Algorithm)Algorithm) (Depth-Sorting Method)(Depth-Sorting Method)
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
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
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.
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).
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)
Algorítmo Z-bufferAlgorítmo Z-buffer
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
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 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
Á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
Árvores BSPÁrvores BSP
Árvores BSPÁrvores BSP
Árvores BSPÁrvores BSP
Árvores BSPÁrvores BSP
Árvores BSPÁrvores BSP
Gabriel Estimado PozaGabriel Estimado Poza
José Arthur Vigilante MartinsJosé Arthur Vigilante Martins
Marina Ikeda UshiroMarina Ikeda Ushiro
Jogos DigitaisJogos Digitais
4º Semestre4º Semestre

Mais conteúdo relacionado

Destaque

Análise e desenvolvimento de algoritmo para operação em bolsa de valores base...
Análise e desenvolvimento de algoritmo para operação em bolsa de valores base...Análise e desenvolvimento de algoritmo para operação em bolsa de valores base...
Análise e desenvolvimento de algoritmo para operação em bolsa de valores base...Rodrigo Ferreira
 
Artefatos Na Imagem Ressonância Magnética
Artefatos Na Imagem Ressonância MagnéticaArtefatos Na Imagem Ressonância Magnética
Artefatos Na Imagem Ressonância MagnéticaAlex Eduardo Ribeiro
 
mod1-algoritmia
mod1-algoritmiamod1-algoritmia
mod1-algoritmiadiogoa21
 
Processo de Desenvolvimento de Software - Design de Software, Interface, Arqu...
Processo de Desenvolvimento de Software - Design de Software, Interface, Arqu...Processo de Desenvolvimento de Software - Design de Software, Interface, Arqu...
Processo de Desenvolvimento de Software - Design de Software, Interface, Arqu...Natanael Simões
 
Apostila Algoritmos e Estrutura de Dados (AEDS)
Apostila Algoritmos e Estrutura de Dados (AEDS)Apostila Algoritmos e Estrutura de Dados (AEDS)
Apostila Algoritmos e Estrutura de Dados (AEDS)Ricardo Terra
 
Curso básico de Algoritmos com Python
Curso básico de Algoritmos com PythonCurso básico de Algoritmos com Python
Curso básico de Algoritmos com PythonGiancarlo Silva
 
Algoritmos e Técnicas de Programação - Curso Completo
Algoritmos e Técnicas de Programação - Curso CompletoAlgoritmos e Técnicas de Programação - Curso Completo
Algoritmos e Técnicas de Programação - Curso Completothomasdacosta
 
Aula 5 - Estruturas de seleção simples e composta - parte 1
Aula 5 - Estruturas de seleção simples e composta - parte 1Aula 5 - Estruturas de seleção simples e composta - parte 1
Aula 5 - Estruturas de seleção simples e composta - parte 1Pacc UAB
 
Algoritmos - Formas de Representação de Algoritmos
Algoritmos - Formas de Representação de AlgoritmosAlgoritmos - Formas de Representação de Algoritmos
Algoritmos - Formas de Representação de AlgoritmosElaine Cecília Gatto
 
Material de Apoio de Algoritmo e Lógica de Programação
Material de Apoio de Algoritmo e Lógica de ProgramaçãoMaterial de Apoio de Algoritmo e Lógica de Programação
Material de Apoio de Algoritmo e Lógica de Programaçãorodfernandes
 

Destaque (15)

Algoritmos aproximativos
Algoritmos aproximativosAlgoritmos aproximativos
Algoritmos aproximativos
 
Análise e desenvolvimento de algoritmo para operação em bolsa de valores base...
Análise e desenvolvimento de algoritmo para operação em bolsa de valores base...Análise e desenvolvimento de algoritmo para operação em bolsa de valores base...
Análise e desenvolvimento de algoritmo para operação em bolsa de valores base...
 
Testes Lógicos
Testes LógicosTestes Lógicos
Testes Lógicos
 
Artefatos Na Imagem Ressonância Magnética
Artefatos Na Imagem Ressonância MagnéticaArtefatos Na Imagem Ressonância Magnética
Artefatos Na Imagem Ressonância Magnética
 
Desenho e Marco Lógico para Avaliação de Programas
Desenho e Marco Lógico para Avaliação de ProgramasDesenho e Marco Lógico para Avaliação de Programas
Desenho e Marco Lógico para Avaliação de Programas
 
mod1-algoritmia
mod1-algoritmiamod1-algoritmia
mod1-algoritmia
 
Gestão de Configuração de Software
Gestão de Configuração de Software Gestão de Configuração de Software
Gestão de Configuração de Software
 
Processo de Desenvolvimento de Software - Design de Software, Interface, Arqu...
Processo de Desenvolvimento de Software - Design de Software, Interface, Arqu...Processo de Desenvolvimento de Software - Design de Software, Interface, Arqu...
Processo de Desenvolvimento de Software - Design de Software, Interface, Arqu...
 
Apostila Algoritmos e Estrutura de Dados (AEDS)
Apostila Algoritmos e Estrutura de Dados (AEDS)Apostila Algoritmos e Estrutura de Dados (AEDS)
Apostila Algoritmos e Estrutura de Dados (AEDS)
 
Curso básico de Algoritmos com Python
Curso básico de Algoritmos com PythonCurso básico de Algoritmos com Python
Curso básico de Algoritmos com Python
 
Algoritmos e Técnicas de Programação - Curso Completo
Algoritmos e Técnicas de Programação - Curso CompletoAlgoritmos e Técnicas de Programação - Curso Completo
Algoritmos e Técnicas de Programação - Curso Completo
 
Aula 5 - Estruturas de seleção simples e composta - parte 1
Aula 5 - Estruturas de seleção simples e composta - parte 1Aula 5 - Estruturas de seleção simples e composta - parte 1
Aula 5 - Estruturas de seleção simples e composta - parte 1
 
Algoritmos - Formas de Representação de Algoritmos
Algoritmos - Formas de Representação de AlgoritmosAlgoritmos - Formas de Representação de Algoritmos
Algoritmos - Formas de Representação de Algoritmos
 
Material de Apoio de Algoritmo e Lógica de Programação
Material de Apoio de Algoritmo e Lógica de ProgramaçãoMaterial de Apoio de Algoritmo e Lógica de Programação
Material de Apoio de Algoritmo e Lógica de Programação
 
Slideshare
SlideshareSlideshare
Slideshare
 

Semelhante a Eliminação de Faces Escondidas

Manual winplot
Manual winplotManual winplot
Manual winplotFranbfk
 
camera-e-viewing.pdf
camera-e-viewing.pdfcamera-e-viewing.pdf
camera-e-viewing.pdfMiltonAmaral2
 
Estudo de Funções com o Software Winplot
Estudo de Funções com o Software Winplot Estudo de Funções com o Software Winplot
Estudo de Funções com o Software Winplot Rodrigo Romais
 
Apostila Auto Cad de Comandos Básicos 1
Apostila Auto Cad de Comandos Básicos 1Apostila Auto Cad de Comandos Básicos 1
Apostila Auto Cad de Comandos Básicos 1Luiz Avelar
 
Games 2D com a ferramenta Scratch por Francisco Arlindo Alves
Games 2D com a ferramenta Scratch por Francisco Arlindo AlvesGames 2D com a ferramenta Scratch por Francisco Arlindo Alves
Games 2D com a ferramenta Scratch por Francisco Arlindo AlvesFrancisco Arlindo Alves
 
Apostila auto cad_semana_engenharia
Apostila auto cad_semana_engenhariaApostila auto cad_semana_engenharia
Apostila auto cad_semana_engenhariaRayovac
 
Portando app JavaME S40 para C# WP7: Um estudo de caso real da app CalcSphere
Portando app JavaME S40 para C# WP7:  Um estudo de caso real da app CalcSpherePortando app JavaME S40 para C# WP7:  Um estudo de caso real da app CalcSphere
Portando app JavaME S40 para C# WP7: Um estudo de caso real da app CalcSphereEloi Júnior
 
Inteligencia artificial 10
Inteligencia artificial 10Inteligencia artificial 10
Inteligencia artificial 10Nauber Gois
 
DOC-20220831.pptx
DOC-20220831.pptxDOC-20220831.pptx
DOC-20220831.pptxErickSitoe
 
(2013-05-20) [DevInSampa] AudioLazy - DSP expressivo e em tempo real para o P...
(2013-05-20) [DevInSampa] AudioLazy - DSP expressivo e em tempo real para o P...(2013-05-20) [DevInSampa] AudioLazy - DSP expressivo e em tempo real para o P...
(2013-05-20) [DevInSampa] AudioLazy - DSP expressivo e em tempo real para o P...Danilo J. S. Bellini
 

Semelhante a Eliminação de Faces Escondidas (20)

Manual winplot
Manual winplotManual winplot
Manual winplot
 
camera-e-viewing.pdf
camera-e-viewing.pdfcamera-e-viewing.pdf
camera-e-viewing.pdf
 
Estudo de Funções com o Software Winplot
Estudo de Funções com o Software Winplot Estudo de Funções com o Software Winplot
Estudo de Funções com o Software Winplot
 
Apostila Auto Cad de Comandos Básicos 1
Apostila Auto Cad de Comandos Básicos 1Apostila Auto Cad de Comandos Básicos 1
Apostila Auto Cad de Comandos Básicos 1
 
Programação para Atari 2600
Programação para Atari 2600Programação para Atari 2600
Programação para Atari 2600
 
Apostila de autcad
Apostila de autcadApostila de autcad
Apostila de autcad
 
Games 2D com a ferramenta Scratch por Francisco Arlindo Alves
Games 2D com a ferramenta Scratch por Francisco Arlindo AlvesGames 2D com a ferramenta Scratch por Francisco Arlindo Alves
Games 2D com a ferramenta Scratch por Francisco Arlindo Alves
 
Usando o winplot
Usando o winplotUsando o winplot
Usando o winplot
 
Programação para Atari 2600
Programação para Atari 2600Programação para Atari 2600
Programação para Atari 2600
 
Game programming
Game programmingGame programming
Game programming
 
Apostila auto cad_semana_engenharia
Apostila auto cad_semana_engenhariaApostila auto cad_semana_engenharia
Apostila auto cad_semana_engenharia
 
Tutorial slide
Tutorial slideTutorial slide
Tutorial slide
 
Algoritmo Z-Buffer e Árvores BSP
Algoritmo Z-Buffer e Árvores BSPAlgoritmo Z-Buffer e Árvores BSP
Algoritmo Z-Buffer e Árvores BSP
 
Utilizandoo winplot
Utilizandoo winplotUtilizandoo winplot
Utilizandoo winplot
 
Portando app JavaME S40 para C# WP7: Um estudo de caso real da app CalcSphere
Portando app JavaME S40 para C# WP7:  Um estudo de caso real da app CalcSpherePortando app JavaME S40 para C# WP7:  Um estudo de caso real da app CalcSphere
Portando app JavaME S40 para C# WP7: Um estudo de caso real da app CalcSphere
 
Apostila de dicas
Apostila de dicasApostila de dicas
Apostila de dicas
 
Inteligencia artificial 10
Inteligencia artificial 10Inteligencia artificial 10
Inteligencia artificial 10
 
DOC-20220831.pptx
DOC-20220831.pptxDOC-20220831.pptx
DOC-20220831.pptx
 
(2013-05-20) [DevInSampa] AudioLazy - DSP expressivo e em tempo real para o P...
(2013-05-20) [DevInSampa] AudioLazy - DSP expressivo e em tempo real para o P...(2013-05-20) [DevInSampa] AudioLazy - DSP expressivo e em tempo real para o P...
(2013-05-20) [DevInSampa] AudioLazy - DSP expressivo e em tempo real para o P...
 
Game programming
Game programmingGame programming
Game programming
 

Mais de Jogos Digitais, PUC - SP

Desenvolvimento de jogos para smart phones
Desenvolvimento de jogos para smart phonesDesenvolvimento de jogos para smart phones
Desenvolvimento de jogos para smart phonesJogos Digitais, PUC - SP
 
"Do Joystick ao Peão – O que acontece nas mesas da luderia"
"Do Joystick ao Peão – O que acontece nas mesas da luderia""Do Joystick ao Peão – O que acontece nas mesas da luderia"
"Do Joystick ao Peão – O que acontece nas mesas da luderia"Jogos Digitais, PUC - SP
 
"Do Joystick ao Peão – O que acontece nas mesas da luderia"
"Do Joystick ao Peão – O que acontece nas mesas da luderia""Do Joystick ao Peão – O que acontece nas mesas da luderia"
"Do Joystick ao Peão – O que acontece nas mesas da luderia"Jogos Digitais, PUC - SP
 
Games Open Source: experiências na comunidade KDE
Games Open Source: experiências na comunidade KDEGames Open Source: experiências na comunidade KDE
Games Open Source: experiências na comunidade KDEJogos Digitais, PUC - SP
 
Problemas na produção de jogos - Bounty Hunters
Problemas na produção de jogos - Bounty HuntersProblemas na produção de jogos - Bounty Hunters
Problemas na produção de jogos - Bounty HuntersJogos Digitais, PUC - SP
 
Problemas na produção de jogos - Projeto Vates (Conceitual)
Problemas na produção de jogos - Projeto Vates (Conceitual)Problemas na produção de jogos - Projeto Vates (Conceitual)
Problemas na produção de jogos - Projeto Vates (Conceitual)Jogos Digitais, PUC - SP
 
Problemas na produção de jogos - Dirty Control
Problemas na produção de jogos - Dirty ControlProblemas na produção de jogos - Dirty Control
Problemas na produção de jogos - Dirty ControlJogos Digitais, PUC - SP
 
Desmistificando o desenvolvimento de jogos no Brasil
Desmistificando o desenvolvimento de jogos no BrasilDesmistificando o desenvolvimento de jogos no Brasil
Desmistificando o desenvolvimento de jogos no BrasilJogos Digitais, PUC - SP
 
As múltiplas faces de um desenvolvedor de jogos
As múltiplas faces de um desenvolvedor de jogosAs múltiplas faces de um desenvolvedor de jogos
As múltiplas faces de um desenvolvedor de jogosJogos Digitais, PUC - SP
 

Mais de Jogos Digitais, PUC - SP (20)

Desenvolvimento de jogos para smart phones
Desenvolvimento de jogos para smart phonesDesenvolvimento de jogos para smart phones
Desenvolvimento de jogos para smart phones
 
"Do Joystick ao Peão – O que acontece nas mesas da luderia"
"Do Joystick ao Peão – O que acontece nas mesas da luderia""Do Joystick ao Peão – O que acontece nas mesas da luderia"
"Do Joystick ao Peão – O que acontece nas mesas da luderia"
 
"Do Joystick ao Peão – O que acontece nas mesas da luderia"
"Do Joystick ao Peão – O que acontece nas mesas da luderia""Do Joystick ao Peão – O que acontece nas mesas da luderia"
"Do Joystick ao Peão – O que acontece nas mesas da luderia"
 
Workshops de Unity
Workshops de UnityWorkshops de Unity
Workshops de Unity
 
Games Open Source: experiências na comunidade KDE
Games Open Source: experiências na comunidade KDEGames Open Source: experiências na comunidade KDE
Games Open Source: experiências na comunidade KDE
 
Ray Tracing
Ray TracingRay Tracing
Ray Tracing
 
Problemas na produção de jogos - Bounty Hunters
Problemas na produção de jogos - Bounty HuntersProblemas na produção de jogos - Bounty Hunters
Problemas na produção de jogos - Bounty Hunters
 
Problemas na produção de jogos - Projeto Vates (Conceitual)
Problemas na produção de jogos - Projeto Vates (Conceitual)Problemas na produção de jogos - Projeto Vates (Conceitual)
Problemas na produção de jogos - Projeto Vates (Conceitual)
 
Mapeamento de Textura
Mapeamento de TexturaMapeamento de Textura
Mapeamento de Textura
 
Rendering e Placas Graficas
Rendering e Placas GraficasRendering e Placas Graficas
Rendering e Placas Graficas
 
Modelos de Iluminação e Reflexão
Modelos de Iluminação e ReflexãoModelos de Iluminação e Reflexão
Modelos de Iluminação e Reflexão
 
Problemas na produção de jogos - Dirty Control
Problemas na produção de jogos - Dirty ControlProblemas na produção de jogos - Dirty Control
Problemas na produção de jogos - Dirty Control
 
Pesquisa em Games
Pesquisa em GamesPesquisa em Games
Pesquisa em Games
 
Templates para roteiro
Templates para roteiroTemplates para roteiro
Templates para roteiro
 
Mini-curso XNA
Mini-curso XNAMini-curso XNA
Mini-curso XNA
 
Game Engine Unity 3D | Workshop
Game Engine Unity 3D | WorkshopGame Engine Unity 3D | Workshop
Game Engine Unity 3D | Workshop
 
Roteiro para Games
Roteiro para GamesRoteiro para Games
Roteiro para Games
 
Desmistificando o desenvolvimento de jogos no Brasil
Desmistificando o desenvolvimento de jogos no BrasilDesmistificando o desenvolvimento de jogos no Brasil
Desmistificando o desenvolvimento de jogos no Brasil
 
Games: uma mídia de expressão
Games: uma mídia de expressãoGames: uma mídia de expressão
Games: uma mídia de expressão
 
As múltiplas faces de um desenvolvedor de jogos
As múltiplas faces de um desenvolvedor de jogosAs múltiplas faces de um desenvolvedor de jogos
As múltiplas faces de um desenvolvedor de jogos
 

Eliminação de Faces Escondidas

  • 1. Eliminação de SuperfíciesEliminação de Superfícies EscondidasEscondidas
  • 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