Consistent Mesh Parameterizations Emil Praun Wim Sweldens Peter Schröder Princeton Bell Labs ACM...

Post on 07-Apr-2016

214 views 2 download

Transcript of Consistent Mesh Parameterizations Emil Praun Wim Sweldens Peter Schröder Princeton Bell Labs ACM...

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.