10 cc compgraf remoção de superficies linhas.ppt [modo de … · computação gráfica remoção...
TRANSCRIPT
1
Computação Gráfica
Remoção de Linhas e Superfícies Escondidas
Prof. Rodrigo [email protected] http://www.bolinhabolinha.com
Entendendo Remoção de Superfícies Escondidas
• Objetos são opacos• Quais faces devem aparecer na cena• SituaçõesFaces do mesmo objeto estão “escondidas” do
observadorOutros objetos estão atrás do objeto
• ProblemasEficiência
– Quantos objetos são realmente vistos» Perca de tempo renderizando objetos que não são visíveis
2
Questão??? Dois pontos
• P1(x1,y1,z1) e P2(x1,y2,z2)• Algum deles oculta o outro????
Estando na mesma reta projetante “sim”
Barreiras Mostrar/Pintar somente os objetos válidos Mostrar/Pintar com velocidade
• Mudança de cena• Movimentação dos objetos
É necessário aceleração por hardware ? Qualidade
• Antialising
3
Algoritmos Remoção de linhas (hidden-lines)
Remoção de superfícies (hidden surfaces)
Back face Culling Remoção de faces que estão de costas para o observador Em objetos sólidos
• Faces têm “uma normal”• Sentido horário ou anti-horário
Se a visão da camera com a normal for• < 90 graus – face visível• Caso contrário, a face não está visível
4
BackFace Culling n.v<0
BackFace Culling Onde falha ?
• Objetos côncavos não temos certeza se as outras faces estão visíveis
• Já em objetos convexos, todas as demais faces estão visíveis
5
Z-buffer Duas matrizes
• Cores e medida “z” do pixel (x,y,z)
Antes desenhar cada pixel, verifica se o novo pixel têm o valor “z” menor que o anterior, se sim, ele está na frente e deverá ser desenhado e a matriz de cores é atualizada
Z-Buffer Exemplo
6
Z-buffer Algoritmo
• Dados:Lista de polígonos {P1, P2, ..., Pn}Matriz z-buffer[x,y] inicializado com -∞Matriz Intensidade[x,y]
iníciopara 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
Z-Buffer Vantagens
• Objetos podem ser desenhados em qualquer ordem
• Facilmente implementado em hardware Desvantagens
• Quanto mais polígonos mais lento o algoritmo• Dificulta as técnicas de:TransparênciaAntiAlising
7
Paint Algoritmo do “Pintor” Baseado em lista de prioridades Faz a ordenação, conforme a distância do
observador, dos polígonos a serem desenhados. Desenha os polígonos na ordem do mais
distante para o mais perto Observação:
• Os polígonos devem estar em planos paralelos xy
Paint Exemplo
8
Questões 1-) Qual o problema do z-buffer com transparência? E como
podemos resolvê-lo?
2-) No método de backface culling, quando ele pode falhar? Desenhe um exemplo.
3-) Implemente em Java ou C um programa que simule o z-buffer.
4-) Qual(is) o(s) problema(s)/desvantagem(ens) do algoritmo do pintor?
5-) Qual a diferença entre os algoritmos de z-buffer e scanline z-buffer?
Bibliografia Livro texto (Programa do Livro texto - PLT)
• AZEVEDO, Eduardo; CONCI, Aura. Computação Gráfica: teoria e prática. 1.ed. Rio de Janeiro: CAMPUS, 2003.
• CONCI, Aura; AZEVEDO, Eduardo; LETA, F.. Computação Gráfica. 1.ed. Rio de Janeiro: CAMPUS, 2007. v.2
• GOMES, P.. Computação Gráfica. 1.ed. Rio de Janeiro: LTC, 1998
Complementar• HETTEM JUNIOR, Annibal. Fundamentos de
Informática Computação Gráfica . 1.ed. São Paulo: LTC, 2006.
• HEARN, Donald; BAKER, M. Pauline. Computer Graphics: C version. 2.ed. New Jersey: Prentice - Hall, 1997.