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