Post on 07-Apr-2016
Consistent Mesh Consistent Mesh ParameterizationsParameterizations
Emil PraunWim SweldensPeter Schröder
PrincetonBell LabsBell Labs
ACM SIGGRAPH 2001
Apresentado por: Karl Apaza Agüero
MotivaçãoMotivação
Processamento Geométrico Digital (DGP)– Construção de algoritmos para geometria ao
estilo do Processamento Digital de Sinais– Fazer para superfícies o que o DSP faz para
sons, imagens e vídeoExemplos
Eliminação de ruído Realce
MotivaçãoMotivação
Processamento Geométrico Digital (DGP)
eliminação de ruído
realce
MotivaçãoMotivação
Processamento Geométrico Digital (DGP)
– Devido à natureza da geometria de superfícies, a construção de algoritmos DGP é mais difícil
– Algoritmos DGP que envolvem diversos modelos precisam uma parametrização comum e um padrão de amostragem comum
ExemploExemplo
Computar a média
É preciso uma parametrização consistente das malhas!
...+(_1n + + )=
ParametrizaçõesParametrizações
Malha semi-regular– Consiste de um domínio base
irregular simples com muitos níveis de refinamento segundo alguma regra de subdivisão dada
irregular semi-regular
transmissão progressivaedição hierarquica
ObjetivoObjetivo
Parametrização consistente– mesmo domínio base– correspondências
vértices arestas
– triângulos exatamente traçados
Dominio Base
Malhas de entrada com
caracteristicas
MalhasSemi-
Regulares
Aplicações DGP
TerminologiaTerminologiaMalha
– Uma malha M é um par (P,K) P é um conjunto de n pontos em R3 K é um complexo simplicial abstrato que contém
toda a topologia– vértices {i}– arestas {i,j}– faces {i,j,k}
TerminologiaTerminologiaMalha
– As malhas semi-regulares são construídas por repetição de quadriseção de triângulos começando desde uma malha irregular grosseira N0=(Q0,L0)
Malha semi-regular
TerminologiaTerminologia
Domínio base– É uma malha especial
B=(P,L0) onde P é o conjunto de vértices (características) é L0 representa a conectividade
– Cada vértice bf das F características é dado pela sua localização canônica em RF
MétodoMétodo Identificar pontos característicos (usuário)
Parametrizar o interior dos traços e recomputar a malha usando uma conectividade semi-regular
Traçar a rede de curvas sobre a malha correspondentes às bordas do domínio base
Traçado de curvasTraçado de curvas
Rede topologicamente equivalente ao domínio base– Interseção de curvas só nos vértices– Mesma ordenação de vizinhos ao redor dos vértices
Traçado de curvasTraçado de curvas
Algoritmo brush fire restrito– Não cruzar outras curvas– Começar e finalizar no setor correto
firewall
Traçado de curvasTraçado de curvas
É importante a ordem em que os traços são feitos Para uma ordem aleatória, o algoritmo brush fire
restrito não garante terminação
a b
cd
e conectividade
Traçado de curvasTraçado de curvas
Problema: cercamento
a b
d c
e
cercamento
a b
cd
e
conectividade
Traçado de curvasTraçado de curvas
Solução: Não traçamos algumas curvas que poderiam
completar ciclos, até que uma árvore geradora do domínio base seja traçada
Isto garante que os vértices não sejam cercados durante a construção da árvore geradora
Uma vez que temos a árvore, completamos a topologia do domínio base sobre a malha inicial, agregando depois as curvas restantes em alguma ordem
Critérios de qualidadeCritérios de qualidade
Ainda, quando temos um mapeamento topologicamente equivalente, este poderia estar muito contorcido
Precisamos dos seguintes critérios:– Igual distribuição de superfície de área dos triângulos
traçados– Traços suaves– Triângulos exatamente traçados, em particular evitar
swirling (poderiam estar virados)
HeurísticasHeurísticas
Os pontos característicos repelem curvas que estão conectadas com outros pontos característicos
Introduzir as curvas em ordem de tamanhoPostergar inserção de triângulos “virados”
Repelir outras curvasRepelir outras curvas
Computar– If(i) = “influência” da característica f sobre o
vértice i
Diagrama de contornos
Repelir outras curvasRepelir outras curvas
Influência das características sobre outras características– Ii(i) = 1– Ii(característica j) = 0
Parametrização de outros vértices :
Π(i) = Σ{j}єV(i) λij Π(j) Diagrama de contornos
Repelir outras curvasRepelir outras curvas Mapeamento 2D
||pk-p||=||xjk-xi|| , para k = 1, ... ,di
ang(pk,p,pk+1) = 2 π ang(xjk , xi , xjk+1) / θi
θi = Σk=1 ang(xjk , xi , xjk+1) di
Repelir outras curvasRepelir outras curvasÁrea Polígono (pk+1, pk+2, ... , pk-1 , p)
(di -2) * Área Polígono (p1, p2, ... , pdi)λi,jk =
Repelir outras curvasRepelir outras curvas
Traçado de curva (a,b): brush fire com variável de velocidade de propagação
11
00
a
bc
i(0.2,0.1,0.4,…)
a(1,0,0,0,..) b(0,1,0,0,..)
c(0,0,1,..)
i
Prioridade P(i) = 1- Ia(i) - Ib(i)
0.70.7
Repelir outras curvasRepelir outras curvasi socontorno
Priorizar curvas por tamanhoPriorizar curvas por tamanho
Primeira etapa: completamos a árvore geradora do domínio base
Segunda etapa: completamos toda a rede
Para cada etapa, temos uma fila de prioridade– A fila tem as curvas candidatas– Retraçar (achar outra curva ) as curvas candidatas que
poderiam causar conflitos topológicos
Postergar inserção de triângulos Postergar inserção de triângulos viradosvirados
detector swirl
aa
bb ccaa
cc bb
aa
bb cc
OR
OK
flipped
Postergar inserção de triângulos Postergar inserção de triângulos viradosvirados
detector swirl
?aa
bb cc
flipped aa
cc bbaa
cc bb
aa
cc bb
aa
cc bb
Topologia válidaTopologia válida• Calcular a rota e o tamanho para cada uma das
curvas que correspondem ao domínio (bordas de L0) segundo o algoritmo de brush fire restrito, completando primeiro a árvore geradora do domínio base ; e ir guardando a rota e o tamanho numa fila de prioridade baseado no tamanho (a prioridade mais alta tem a curva com menor tamanho)
• Removemos o primeiro da fila e checamos se a rota guardada não viola as restrições dadas por outras curvas já inseridas na rede (não se cruza com outras curvas anteriormente traçadas)
Topologia válidaTopologia válida• Se se cruza, não é topologicamente válida, então
temos que calcular de novo outra curva entre esses 2 pontos característicos e inserir esta novamente na fila de prioridade
• Se é topologicamente valida, rodamos o detector de swirl para ambos triângulos adjacentes sobre a curva. Se ao menos um falha, pomos a curva na fila de prioridade com uma penalidade. Se ambos passam, traçamos a curva na rede
Endereçamento de bordasEndereçamento de bordas
Malha
Depois que o traço da rede é completado, temos uma rede topogicamente equivalente ao domínio base
Agora, endereçamos todas as curvas, garantindo que todos os triângulos tenham uma área aproximadamente igual
Endereçamento de bordasEndereçamento de bordas
Malha Parametrização temporal 2D
Endereçamento de bordasEndereçamento de bordas
Malha Parametrização temporal 2D
ExemplosExemplos
ExemplosExemplos
Análise de Componentes PrincipaisAnálise de Componentes Principais
Transferência de texturasTransferência de texturas
Transferência de texturasTransferência de texturas
Transferência detalhadaTransferência detalhada
MorphingMorphing
Cavalo .5Cavalo .5
Homem .25Homem .25
Vaca .25Vaca .25
Cavalo .25Cavalo .25
Homem .25Homem .25
Vaca .5Vaca .5
Cavalo .25Cavalo .25
Homem .5Homem .5
Vaca .25Vaca .25
Cavalo .33Cavalo .33
Homem .33Homem .33
Vaca .33Vaca .33
ReferênciasReferências
Floater, m. S. Parameterization and Smooth Approximation of Surface Triangulations. Computer Aided Geometric Design 1997.
Guskov, I., Vidimce K., Sweldens, W., and Schröder, P. Normal Meshes. Proceedings of SIGGRAPH 2000.