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.

4.4 Consi<strong>de</strong>rações finais 91<br />

mente representados por malhas irregulares e contém regiões locais que, conforme relatamos nas<br />

seções 4.1.2 e 4.1.2, são consi<strong>de</strong>radas problemáticas para essas técnicas. As técnicas <strong>de</strong> aproximação<br />

por superfícies quadráticas e aproximação pela curvatura normal produzem resultados visualmente<br />

idênticos, o que confirma a suposição <strong>de</strong> que os dois métodos sofrem dos mesmos problemas <strong>de</strong><br />

robustez.<br />

Para realizar os testes <strong>de</strong> <strong>de</strong>sempenho, comparamos nossa técnica com a técnica <strong>de</strong> Rusinkiewicz<br />

[2004] em razão da similarida<strong>de</strong> das formulações utilizadas e dos resultados <strong>de</strong> robustez obtidos.<br />

Neste caso, ambos os algoritmos foram implementados utilizando código C++ otimizado. Em parti-<br />

cular, o algoritmo <strong>de</strong> Rusinkiewicz [2004] foi obtido da biblioteca trimesh2 [Rusinkiewicz, 2006]. A<br />

plataforma dos testes <strong>de</strong> <strong>de</strong>sempenho foi a mesma utilizada nos testes dos algoritmos <strong>de</strong> estimativa<br />

<strong>de</strong> elementos <strong>de</strong> primeira or<strong>de</strong>m.<br />

A figura 4.13 mostra o <strong>de</strong>sempenho obtido para calcular o tensor <strong>de</strong> curvatura (incluindo curva-<br />

turas e direções principais) e tensor <strong>de</strong> <strong>de</strong>rivada <strong>de</strong> curvatura. O gráfico mostra os resultados obtidos<br />

com o algoritmo <strong>de</strong> Rusinkiewicz [2004], e nosso algoritmo implementado tanto na CPU como na<br />

GPU. O tempo <strong>de</strong> processamento <strong>de</strong> nosso método na GPU já inclui o tempo gasto para realizar a<br />

transferência do resultado da GPU para a CPU. Entretanto, o gráfico não exibe o tempo necessário<br />

para pré-processar as estruturas <strong>de</strong> dados utilizadas em cada técnica, uma vez que isso po<strong>de</strong> ser feito<br />

em uma etapa <strong>de</strong> pré-processamento se consi<strong>de</strong>rarmos que a topologia do mo<strong>de</strong>lo não sofrerá mo-<br />

dificações na GPU. A medição <strong>de</strong>sse tempo adicional é mostrada na figura 4.14. Em nosso método,<br />

este é o tempo necessário para gerar a lista <strong>de</strong> vizinhança <strong>de</strong> 1-anel <strong>de</strong> cada vértice e o tempo gasto<br />

para carregar esses dados à GPU. Para o método <strong>de</strong> Rusinkiewicz [2004], é o tempo necessário para<br />

pré-calcular as áreas das regiões <strong>de</strong> Voronoi em torno <strong>de</strong> cada vértice. Nesse caso, nosso método na<br />

GPU possui a maior sobrecarga <strong>de</strong> pré-processamento como resultado do carregamento das texturas<br />

para a GPU.<br />

4.4 Consi<strong>de</strong>rações finais<br />

Vimos no capítulo 3 que as proprieda<strong>de</strong>s geométricas diferenciais são suficientes para a imple-<br />

mentação <strong>de</strong> tarefas <strong>de</strong> seleção e posicionamento restrito analisadas. De acordo com a arquitetura<br />

do atual hardware gráfico programável (figura 2.3), há dois estágios <strong>de</strong> processamento programável<br />

ao longo do fluxo <strong>de</strong> ren<strong>de</strong>rização: processamento <strong>de</strong> vértices e processamento <strong>de</strong> fragmentos. A<br />

nível do processador <strong>de</strong> vértices, o atributo essencial para visualização é o atributo <strong>de</strong> posição do<br />

vértice. Atributos adicionais po<strong>de</strong>m ser <strong>de</strong>signados pela aplicação, como vetor normal e coor<strong>de</strong>nadas<br />

<strong>de</strong> textura. No processador <strong>de</strong> fragmentos, os atributos são os mesmos fornecidos ao processador<br />

<strong>de</strong> vértices, interpolados linearmente ao longo da primitiva formada pelos vértices. O algoritmo <strong>de</strong>

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

Saved successfully!

Ooh no, something went wrong!