03.04.2013 Views

Uma Arquitetura de Suporte a Interações 3D ... - DCA - Unicamp

Uma Arquitetura de Suporte a Interações 3D ... - DCA - Unicamp

Uma Arquitetura de Suporte a Interações 3D ... - DCA - Unicamp

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

78 Cálculo <strong>de</strong> elementos <strong>de</strong> geometria diferencial discreta na GPU<br />

Infelizmente, nenhuma das técnicas analisadas preenche simultaneamente todos os requisitos<br />

apresentados. Embora as técnicas baseadas na aproximação por superfícies analíticas ou curvatura<br />

normal sejam a<strong>de</strong>quadas para a arquitetura das atuais GPU e, portanto, sejam bastante eficientes, não<br />

produzem resultados robustos para malhas arbitrárias. Por outro lado, as técnicas <strong>de</strong> aproximação<br />

pela média pelo tensor <strong>de</strong> curvatura são robustas, mas difíceis <strong>de</strong> serem implementadas nas GPUs em<br />

razão do uso <strong>de</strong> estruturas <strong>de</strong> dados complexas ou necessida<strong>de</strong> <strong>de</strong> vários passos <strong>de</strong> ren<strong>de</strong>rização. Por<br />

exemplo, a técnica <strong>de</strong> Alliez et al. [2003], baseada na equação 4.15, requer um pré-processamento<br />

custoso para <strong>de</strong>terminar quais arestas (e em qual proporção) estão <strong>de</strong>ntro da região B em torno <strong>de</strong><br />

cada vértice. De forma semelhante, segundo o algoritmo <strong>de</strong> Rusinkiewicz [2004], a média entre os<br />

tensores das faces requer o cálculo da área <strong>de</strong> Voronoi <strong>de</strong> cada face que compartilha o vértice que<br />

está sendo calculado. Esse cálculo requer pelo menos um passo adicional <strong>de</strong> ren<strong>de</strong>rização. Como o<br />

algoritmo utiliza o mesmo princípio do cálculo <strong>de</strong> vetores normais (um passo para calcular sobre as<br />

faces e outro passo para fazer a média), um total <strong>de</strong> (no mínimo) três passos <strong>de</strong> ren<strong>de</strong>rização para<br />

calcular apenas o tensor <strong>de</strong> curvatura po<strong>de</strong>ria comprometer o <strong>de</strong>sempenho.<br />

De modo a aten<strong>de</strong>r os requisitos necessários, propomos uma nova técnica capaz <strong>de</strong> unir a robustez<br />

dos algoritmos <strong>de</strong> média pelo tensor <strong>de</strong> curvatura, e a simplicida<strong>de</strong> e eficiência dos métodos baseados<br />

na aproximação por superfícies analíticas ou por curvatura normal. Nossa proposta é uma variação<br />

do algoritmo <strong>de</strong> Rusinkiewicz [2004], tanto para calcular o tensor <strong>de</strong> curvatura como o tensor <strong>de</strong><br />

<strong>de</strong>rivada da curvatura [Batagelo and Wu, 2007b].<br />

Estimativa do tensor <strong>de</strong> curvatura<br />

Para cada vértice, estimamos IIs a partir da relação entre este tensor e a <strong>de</strong>rivada da curvatura<br />

normal numa dada direção no plano tangente em um ponto p:<br />

IIs(U) = IIsU = DUN. (4.16)<br />

Numa superfície suave, o vetor U po<strong>de</strong> assumir qualquer direção perpendicular ao vetor normal<br />

em p. Em uma malha triangular ou nuvem <strong>de</strong> pontos, essas direções po<strong>de</strong>m ser aproximadas por<br />

diferenças finitas como vetores compreendidos entre o vértice p e cada vértice da vizinhança <strong>de</strong> 1-<br />

anel. De forma semelhante, as <strong>de</strong>rivadas direcionais dos vetores normais po<strong>de</strong>m ser aproximadas pela<br />

diferença dos vetores normais previamente estimados nos vértices. As diferenças tanto <strong>de</strong> posições<br />

como <strong>de</strong> vetores normais <strong>de</strong>vem ser expressas em coor<strong>de</strong>nadas do plano tangente em p. Assim, é<br />

possível construir o seguinte sistema <strong>de</strong> equações lineares para cada vértice:

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!