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
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: