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.3 Resultados 83<br />

utilizados em outras etapas da arquitetura <strong>de</strong> interação; em (C) o cálculo é realizado na GPU usando<br />

nossa técnica; em (D) o processamento é feito na GPU mas a valência máxima <strong>de</strong> vértices é limitada a<br />

8, tornando possível compilar o sha<strong>de</strong>r sem o uso <strong>de</strong> instruções <strong>de</strong> fluxo <strong>de</strong> controle dinâmico; em (E)<br />

o cálculo também é realizado na GPU, com valência máxima <strong>de</strong> vértices limitada a 4. Os resultados<br />

da abordagem (B) são utilizados aqui apenas para mostrar o quanto a eficiência aumenta quando não<br />

está sendo consi<strong>de</strong>rada a sobrecarga resultante da transferência <strong>de</strong> dados entre a CPU e a GPU. De<br />

qualquer forma, tanto nos casos (A) e (B), o tempo <strong>de</strong> processamento é muito maior do que o tempo<br />

obtido do cálculo na GPU.<br />

A eficiência em (D) e (E) aumenta porque o número <strong>de</strong> faces avaliadas é menor, mas também<br />

porque o laço utilizado para acumular os vetores tangentes às faces po<strong>de</strong> ser <strong>de</strong>senrolado comple-<br />

tamente pelo compilador do sha<strong>de</strong>r. Em geral, malhas triangulares têm uma valência média <strong>de</strong> 6<br />

vértices, porém com vértices isolados que po<strong>de</strong>m conter até centenas <strong>de</strong> faces adjacentes [Kälberer<br />

et al., 2004]. A diferença <strong>de</strong> <strong>de</strong>sempenho entre o algoritmo com valência arbitrária <strong>de</strong> vértices e<br />

valência <strong>de</strong> vértices limitada a 6 é <strong>de</strong> 25% (base tangente) a 30% (apenas vetor normal).<br />

Em comparação com os mesmos algoritmos executados na CPU, a robustez das estimativas <strong>de</strong>-<br />

pen<strong>de</strong> exclusivamente do formato numérico utilizado pelos registradores e texturas. Em nosso caso<br />

utilizamos o formato <strong>de</strong> ponto flutuante <strong>de</strong> 32 bits (IEEE 754, s23e8), conforme consta da especifi-<br />

cação das APIs gráficas. Assim, os resultados são equivalentes aos produzidos por um algoritmo na<br />

CPU utilizando ponto flutuante <strong>de</strong> precisão simples.<br />

4.3.2 Elementos <strong>de</strong> segunda e terceira or<strong>de</strong>m<br />

Para validar nossa proposta <strong>de</strong> estimativa <strong>de</strong> elementos <strong>de</strong> geometria diferencial <strong>de</strong> segunda e ter-<br />

ceira or<strong>de</strong>m consi<strong>de</strong>rando os requisitos apresentados na seção 4.2, realizamos testes <strong>de</strong> <strong>de</strong>sempenho<br />

e testes <strong>de</strong> robustez sobre malhas triangulares obtidas <strong>de</strong> mo<strong>de</strong>los digitalizados e malhas obtidas da<br />

amostragem <strong>de</strong> superfícies analíticas.<br />

A implementação do algoritmo foi realizada tanto com processamento na CPU como processa-<br />

mento na GPU. Na CPU, o algoritmo foi implementado em C++ usando a biblioteca LAPACK <strong>de</strong><br />

álgebra linear [An<strong>de</strong>rson et al., 1999]. Também implementamos com esta biblioteca os métodos <strong>de</strong><br />

estimativa baseados apenas na vizinhança <strong>de</strong> 1-anel <strong>de</strong> vértices, como a aproximação por superfícies<br />

quadráticas, superfícies cúbicas [Goldfeather and Interrante, 2004], aproximação pela curvatura nor-<br />

mal e média <strong>de</strong> tensores segundo Rusinkiewicz [2004]. Isto foi feito para uniformizar os métodos<br />

numéricos utilizados em comum pelos algoritmos citados e assim obter resultados mais confiáveis<br />

para os testes <strong>de</strong> robustez. Nesse caso, os métodos <strong>de</strong> resolução <strong>de</strong> sistema <strong>de</strong> equações lineares e<br />

extração <strong>de</strong> autovalores e autovetores é fornecido pela biblioteca LAPACK e é o mesmo para todos<br />

os algoritmos.

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

Saved successfully!

Ooh no, something went wrong!