Upload
others
View
11
Download
0
Embed Size (px)
Citation preview
Introdução ao processamento e síntese de imagens – Júlio Kiyoshi Hasegawa
Introdução ao Processamento e
Síntese de imagens - Linhas e superfícies
escondidas
Fontes:
Rogers, D. F. – Procedural Elements for Computer Graphics
Fontes:
Rogers, D. F. – Procedural Elements for Computer Graphics
Júlio Kiyoshi Hasegawa2016
Introdução ao processamento e síntese de imagens – Júlio Kiyoshi Hasegawa
� Linhas e superfícies escondidas/ocultas
� Algoritmos que determinam linhas, arestas,superfícies ou volumes que são visíveis ouinvisíveis a um observador numdeterminado ponto.
� depende do ponto de vista.
Introdução
Introdução ao processamento e síntese de imagens – Júlio Kiyoshi Hasegawa
� Linhas e superfícies escondidas/ocultas
� A visualização wire frame de um objeto 3D pode ser ambígua, nem sempre permitindo a clara identificação de qual face está na frente de outra.
� Os algoritmos de Remoção de Linhas Escondidas (hidden line) procuram eliminar esta ambigüidade, removendo as linhas que se encontram escondidas por outras faces
� Fonte: Ting e Martino - 2009
Introdução
Introdução ao processamento e síntese de imagens – Júlio Kiyoshi Hasegawa
� Linhas e superfícies escondidas/ocultas
� Os algoritmos de Remoção de Superfícies Escondidas (hidden surface) procuram remover faces que se encontram atrás de outras.
� Fonte: Ting e Martino - 2009
Introdução
Introdução ao processamento e síntese de imagens – Júlio Kiyoshi Hasegawa
� Linhas e superfícies escondidas/ocultas� Exemplo de visualização
Introdução
Introdução ao processamento e síntese de imagens – Júlio Kiyoshi Hasegawa
� Algoritmos podem ser classificados em dois
modos:
� os que são implementados no sistema de
coordenadas real, são + precisos.
� Os que são implementados no espaço imagem,
menor precisão.
� Custo computacional:
� 1o caso: se há n objetos faz n2 comparações.
� 2o caso: faz nN comparações, onde n número de
objetos e N é o número de pixels.
� 2o caso é menos trabalhoso que o 1o caso
se:
� n < N
Introdução
Introdução ao processamento e síntese de imagens – Júlio Kiyoshi Hasegawa
� Condição que quase sempre isto não ocorre,
pois geralmente (N = 5122).
� Mas, na prática, geralmente, as
implementações são realizadas no espaço
imagem a fim de aproveitar as facilidades
das coerências no modo raster.
Introdução
Introdução ao processamento e síntese de imagens – Júlio Kiyoshi Hasegawa
Descrição Geométrica
Superfícies paramétricas (funções
matemáticas)
Introdução ao processamento e síntese de imagens – Júlio Kiyoshi Hasegawa
� converte o problema 3D em 2D,
� usa função → F(x, y, z) = 0;
� O algoritmo é relativamente fácil de ser
implementado, bastando gerar um vetor com
tamanho da janela de visualização
(denominado de Floating Horizon).
� Implementado, no espaço imagem;
� interceptando a superfície ou linhas com uma
série de planos paralelos em constantes
valores de x, y e z.
� F(x, y, z) → y = f(x,z) ou x = f(y,z)
Floating Horizon Algorithm: Funções paramétricas
Introdução ao processamento e síntese de imagens – Júlio Kiyoshi Hasegawa
� Algoritmo (p/ z = cte + próximo do obs.)
� A curva será visível para um dado valor de x
se o y calculado é maior que y anterior
calculado no ponto x (para o plano anterior).
Floating Horizon Algorithm: Funções paramétricas
Introdução ao processamento e síntese de imagens – Júlio Kiyoshi Hasegawa
Floating Horizon Algorithm: Vetor auxiliar
Y1
Y1
Y1
Y1
Y1
Y1
Y1
Y1
Y1
Y1
Y1
Y1
Y1
Y1
Y1
Y1
Y1
Y1
Y1
Z1
Z1
Z2
Y2
Y2
Y2
Y2
Y2
Y2
Y2
Y2
Y2
Y2
Y2
Y2
Y2
Y2
Y2
Y2
Y2
Y2
Y2
X Y = f(X, Z)
Y
X Y = f(X, Z)
Y
Introdução ao processamento e síntese de imagens – Júlio Kiyoshi Hasegawa
Floating Horizon Algorithm: Vetor auxiliar
Y3
Y3
Y3
Y3
Y3
Y3
Y3
Y3
Y3
Y3
Y3
Y3
Y3
Y3
Y3
Y3
Y3
Y3
Y3
Z1
Z2
Z3
X Y = f(X, Z)
Y
Introdução ao processamento e síntese de imagens – Júlio Kiyoshi Hasegawa
Floating Horizon Algorithm: Vetor auxiliar
Y4
Y4
Y4
Y3
Y3
Y3
Y3
Y4
Y4
Y3
Y4
Y4
Y4
Y4
Y3
Y3
Y4
Y4
Y4
Z1
Z2
Z3
Z4
X Y = f(X, Z)
Y
Introdução ao processamento e síntese de imagens – Júlio Kiyoshi Hasegawa
Floating Horizon Algorithm: Vetor auxiliar
Z1
Z2
Z3
Z4
Z5
Y5
Y5
Y5
Y3
Y3
Y3
Y5
Y5
Y5
Y3
Y5
Y5
Y5
Y5
Y5
Y5
Y5
Y5
Y5
X Y = f(X, Z)
Y
Introdução ao processamento e síntese de imagens – Júlio Kiyoshi Hasegawa
� O algoritmo tem problema, na depressão da curva.Coord. z menor em relação as anteriores.
� Neste caso o algoritmo declara como invisível aextensão da curva, que é visível, que está abaixodas outras.
� Um vetor de dimensão igual a resolução dadimensão x é gerado para armazenar o valormínimo de y para cada ponto x.
Floating Horizon Algorithm: Funções paramétricas
Introdução ao processamento e síntese de imagens – Júlio Kiyoshi Hasegawa
Assim o algoritmo tem a seguinte característica:
� O procedimento adotado no caso anterior.
� O teste deve ser realizado verificando oslimites superior e inferior no ponto analisadoarmazenando os extremos nos vetores.
� A implementação é realizada usando umsegundo vetor igual a resolução da imagem(x).
Floating Horizon Algorithm: Funções paramétricas
Introdução ao processamento e síntese de imagens – Júlio Kiyoshi Hasegawa
Floating Horizon Algorithm: 2 Vetores auxiliares
Introdução ao processamento e síntese de imagens – Júlio Kiyoshi Hasegawa
Floating Horizon Algorithm: 2 Vetores auxiliares
Introdução ao processamento e síntese de imagens – Júlio Kiyoshi Hasegawa
Floating Horizon Algorithm: 2 Vetores auxiliares
Introdução ao processamento e síntese de imagens – Júlio Kiyoshi Hasegawa
Representações
B-rep
Descrição Geométrica
Introdução ao processamento e síntese de imagens – Júlio Kiyoshi Hasegawa
� Equação do plano:
� ax + by + cz + d = 0
� Equação do plano:
� ax + by + cz + d = 0
[ ] 01 =
d
c
b
a
zyxVetor normal ao plano:
→→→
++= kcjbian
Eliminar as superfícies escondidas:Produto interno - Vetor observação (V) com o vetor normal (N) à superfície.
Equação do plano e normal ao plano
N V
θ
0)cos( ≥••
=VN
VNθ
Introdução ao processamento e síntese de imagens – Júlio Kiyoshi Hasegawa
Utilizando três pontos:
a´x + b´y + c´z = 1
d = -(a´x + b´y + c´z)
Técnica de Newell:
1sen
1
:
))((
))((
))((
1
1
1
+=
==
+−=
+−=
+−=
∑
∑
∑
=
=
=
ijão
jentãonise
onde
yyxxc
xxzzb
zzyya
n
i
jiji
n
i
jiji
n
i
jiji
Equação do plano e normal ao plano
Métodos Alternativos:
Introdução ao processamento e síntese de imagens – Júlio Kiyoshi Hasegawa
(0,0,0)
(0,0,1) (1,0,1)
(1,0,0)
(1,1,1)(0,1,1)
(0,1,0)(1,1,0)
Posição do observador – (0.5, -10.0, 10.0)
Faces visíveis ? 1 – Frontal; 2 – Lateral direita;
3 – Lateral esquerda; 4 – Inferior;
5 – Superior; 6 – Posterior.
(0,0,0)
(0,0,1) (1,0,1)
(1,0,0)
(1,1,1)(0,1,1)
(0,1,0)(1,1,0)
Posição do observador – (0.5, -10.0, 10.0)
Faces visíveis ? 1 – Frontal; 2 – Lateral direita;
3 – Lateral esquerda; 4 – Inferior;
5 – Superior; 6 – Posterior.
Equação do plano e normal ao plano - exemplo
Introdução ao processamento e síntese de imagens – Júlio Kiyoshi Hasegawa
Face 1:
Vetor Normal – sentido horário
1sen
1
:
))((
))((
))((
1
1
1
+=
==
+−=
+−=
+−=
∑
∑
∑
=
=
=
ijão
jentãonise
onde
yyxxc
xxzzb
zzyya
n
i
jiji
n
i
jiji
n
i
jiji
=
0
0
0
0
1001
1101
1100
1000
d
c
b
a
b = (0-1)(0+0) + (1 -1)(0+1)+(1-0)(1+1)+(0-0)(1+0) = 2
Face 1:
Vetor Normal – sentido anti-horário
b = (0-0)(0+1) + (0 -1)(1+1)+(1-1)(1+0)+(1-0)(0+0) = -2
=
0
0
0
0
1100
1101
1001
1000
d
c
b
a
Equação do plano e normal ao plano - exemplo
Introdução ao processamento e síntese de imagens – Júlio Kiyoshi Hasegawa
Observador
α
Superfície é visível se:
0)cos( >⋅
=ln
lnα
n
l
Introdução ao processamento e síntese de imagens – Júlio Kiyoshi Hasegawa
Algoritmo de Visibilidade por Prioridade ou
Algoritmo do Pintor
“se um objeto A bloqueia a visão de um objetoB e ambos os objetos encontram-se na mesmalinha de visão do observador, então o objeto B
está mais distante do observador que o objeto A,é possível criar um algoritmo que calcule adistância dos objetos ao observador, e que dêprioridade à visualização dos objetos maispróximos ao observador” - (Gomes e Velho, 2008)
Introdução ao processamento e síntese de imagens – Júlio Kiyoshi Hasegawa
Algoritmo de Visibilidade por Prioridade ou
Algoritmo do Pintor
•Algoritmo (Gomes e Velho, 2008):• Calcula-se a distância ao observador de todas as faces
poligonais;• Ordenam-se todos os polígonos pelo valor da sua
distância ao observador;• Resolvem-se as ambigüidades nos casos em que as
distâncias entre o observador e dois polígonos foremiguais (verificando se ocupam as mesmas posiçõesrasterizadas ou não);
• Desenham-se primeiro os polígonos que tiverem maisdistantes ao observador.
Introdução ao processamento e síntese de imagens – Júlio Kiyoshi Hasegawa
Algoritmo de Visibilidade por Prioridade ou
Algoritmo do Pintor
Problemas na
ordenação de faces e
linhas.
Solução:
subdividi-las segundo uma interseção.
Faces – segundo as linhas de
interseção
Linhas – segundo o ponto de
interseção
Criam-se novos objetos – faces ou
linhas
Introdução ao processamento e síntese de imagens – Júlio Kiyoshi Hasegawa
Algoritmo Z-Buffer (Superfícies Escondidas)
� O algoritmo Z-Buffer define uma estratégia para aeliminação de superfícies escondidas de fácilimplementação em hardware.
� O Z-Buffer é uma extensão do Frame buffer.
� O Frame buffer é uma memória que contém para cada pixelo valor de sua cor/intensidade.
� O Z-Buffer, além do valor da cor/intensidade, permite oarmazenamento também da informação de profundidade(distância ao observador localizado no eixo Z) do elementovisível naquele pixel.
� O algoritmo Z-Buffer define uma estratégia para aeliminação de superfícies escondidas de fácilimplementação em hardware.
� O Z-Buffer é uma extensão do Frame buffer.
� O Frame buffer é uma memória que contém para cada pixelo valor de sua cor/intensidade.
� O Z-Buffer, além do valor da cor/intensidade, permite oarmazenamento também da informação de profundidade(distância ao observador localizado no eixo Z) do elementovisível naquele pixel.
�Fonte: Ting e Martino - 2009
Introdução ao processamento e síntese de imagens – Júlio Kiyoshi Hasegawa
Remoção de Superfícies Escondidas
� Z-Buffer� Z-Buffer
Introdução ao processamento e síntese de imagens – Júlio Kiyoshi Hasegawa
Remoção de Superfícies Escondidas
� Z-Buffer
– “buffer de profundidade”:» 1) inicia com Y=0 (plano de fundo da cena) para todos os pixels
» 2) inicia com 0,0,0 (cor de fundo) todas as cores RGB
» 3) os polígonos são projetados no plano de projeção, se o pixel tiver um z maior ou igual que o do buffer então substitui no z-buffer
» 4) o maior valor de z que pode ser armazenado é o do plano da frente (projeção)
» 5) depois de percorrer todos os objetos (em qualquer ordem), mostrar o z-buffer na tela
� Z-Buffer
– “buffer de profundidade”:» 1) inicia com Y=0 (plano de fundo da cena) para todos os pixels
» 2) inicia com 0,0,0 (cor de fundo) todas as cores RGB
» 3) os polígonos são projetados no plano de projeção, se o pixel tiver um z maior ou igual que o do buffer então substitui no z-buffer
» 4) o maior valor de z que pode ser armazenado é o do plano da frente (projeção)
» 5) depois de percorrer todos os objetos (em qualquer ordem), mostrar o z-buffer na tela
Introdução ao processamento e síntese de imagens – Júlio Kiyoshi Hasegawa
Remoção de Superfícies Escondidas
� Observação finais:– Vantagens:
» Simplicidade - fácil implementação em hardware.
» Trata interseções complexas.
» Não há limitação à complexidade da cena.
» Não há necessidade de ordenação.
– Desvantagens:» Tamanho da memória.
» Não trata transparência.
» Força bruta -não é aconselhável a implementação em software.
� Observação finais:– Vantagens:
» Simplicidade - fácil implementação em hardware.
» Trata interseções complexas.
» Não há limitação à complexidade da cena.
» Não há necessidade de ordenação.
– Desvantagens:» Tamanho da memória.
» Não trata transparência.
» Força bruta -não é aconselhável a implementação em software.
�Fonte: Ting e Martino - 2009
Introdução ao processamento e síntese de imagens – Júlio Kiyoshi Hasegawa
Algoritmo de Warnock - subdivisão
� Baseia-se em como o olho/cérebro humano processa informações contidas em uma cena
Exemplo: Mesa com uma fruteira� Área de interesse se estreita, nível de detalhes
aumenta.� Se determinada questão não pode ser respondida
em um nível particular, ela é temporariamentecolocada de lado para futuras considerações.
� Baseia-se em como o olho/cérebro humano processa informações contidas em uma cena
Exemplo: Mesa com uma fruteira� Área de interesse se estreita, nível de detalhes
aumenta.� Se determinada questão não pode ser respondida
em um nível particular, ela é temporariamentecolocada de lado para futuras considerações.
Introdução ao processamento e síntese de imagens – Júlio Kiyoshi Hasegawa
Algoritmo de subdivisão recursiva� Faz uma subdivisão da tela virtual utilizando
estrutura quadtree
Linha escondida/oculta:
� sub-divisão ⇒ pixel pertence à aresta do polígono pintar com a cor do polígono (verificação pela profundidade).
Superfície escondida/oculta
� pixel é envolto pelo polígono – pixel é pintado como cor do polígono
Algoritmo de subdivisão recursiva� Faz uma subdivisão da tela virtual utilizando
estrutura quadtree
Linha escondida/oculta:
� sub-divisão ⇒ pixel pertence à aresta do polígono pintar com a cor do polígono (verificação pela profundidade).
Superfície escondida/oculta
� pixel é envolto pelo polígono – pixel é pintado como cor do polígono
Subdivisão Algoritmo Warnock
Introdução ao processamento e síntese de imagens – Júlio Kiyoshi Hasegawa
Algoritmo de Warnock
• Casos na imagem acima:1) Um polígono à frente2) Vazia3) Um polígono dentro, aoredor ou cortando a área
Vantagens:
– Não ocorre over-rendering– Bom anti-aliasing: basta fazer mais uma subdivisão para obter informação de sub-pixel• Desvantagem:
– Testes são complexos e lentos
Introdução ao processamento e síntese de imagens – Júlio Kiyoshi Hasegawa
Representação em árvore
Nó ativo indicado pela linha mais grossa
Introdução ao processamento e síntese de imagens – Júlio Kiyoshi Hasegawa
Descrição Geométrica
� Modelos implícitos – CSG (Constructive Solid Geometry)
� Modelos implícitos – CSG (Constructive Solid Geometry)
Introdução ao processamento e síntese de imagens – Júlio Kiyoshi Hasegawa
Traçado de raios
“Dado um conjunto finito de objetos O1, O2, .....,On
do espaço euclidiano e um vetor v, determinar, seexistir, o ponto de interseção de v com os objetosque está mais próximo da origem do vetor” (Gomes e
Velho, 2008)
• Vetor v – vetor (raio) de visão• Vetor v – definido pelo centro de projeção e pelo
centro de cada pixel.
Introdução ao processamento e síntese de imagens – Júlio Kiyoshi Hasegawa
Traçado de raios
• Calcula-se a interseção do vetor v com todos osobjetos da cena – seleciona-se o mais próximo dacâmara.
- Interseção tem alto custo computacional
Introdução ao processamento e síntese de imagens – Júlio Kiyoshi Hasegawa
Traçado de raios em modelos CSG
• Raio é modelado como uma reta em forma
paramétrica: R (t) = P0 + t (P1 – P0) = P0 + t
• Calcula-se para quais valores do parâmetro t
a reta intercepta o objeto
Fonte: (Esperança e Cavalcanti. Introdução à Computação Gráfica Ray Tracing)http://www.google.com.br/search?q=tra%C3%A7ado+de+raios+em+modelos+csg&hl=pt-BR&ei=PZ_ZTOSNMcH98AbvsIz4CA&start=10&sa=N (09/11/2010)
Introdução ao processamento e síntese de imagens – Júlio Kiyoshi Hasegawa
Exemplo: Interseção com Esfera
Δ > 0
Δ = 0
Δ < 0
� Esfera de raio 1 centrada na origem:
x2 + y2 + z2 – 1 = 0
� Raio parametrizado como:
[Vxt+Px Vyt+Py Vzt+Pz]T
� Logo,
(Vxt+Px)2+(Vyt+Py)
2+(Vzt+Pz)2-1=0
ou
at2 + bt + c = 0
onde
a = Vx2 +Vy
2 + Vz2
b = 2 (VxPx+ VyPy+ VzPz)
c = Px2 +Py
2 + Pz2 – 1
� Seja Δ = b2 – 4 ac, então
� Esfera de raio 1 centrada na origem:
x2 + y2 + z2 – 1 = 0
� Raio parametrizado como:
[Vxt+Px Vyt+Py Vzt+Pz]T
� Logo,
(Vxt+Px)2+(Vyt+Py)
2+(Vzt+Pz)2-1=0
ou
at2 + bt + c = 0
onde
a = Vx2 +Vy
2 + Vz2
b = 2 (VxPx+ VyPy+ VzPz)
c = Px2 +Py
2 + Pz2 – 1
� Seja Δ = b2 – 4 ac, então
a2
b ∆±−=t
Fonte: (Esperança e Cavalcanti. Introdução à Computação Gráfica Ray Tracing)http://www.google.com.br/search?q=tra%C3%A7ado+de+raios+em+modelos+csg&hl=pt-BR&ei=PZ_ZTOSNMcH98AbvsIz4CA&start=10&sa=N (09/11/2010)