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
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
130 Resultados<br />
Fig. 6.1: Mo<strong>de</strong>los utilizados no teste <strong>de</strong> <strong>de</strong>sempenho entre o método <strong>de</strong> ray picking e a arquitetura<br />
proposta.<br />
<strong>de</strong> interação. Esta tarefa <strong>de</strong> interação consistiu em realizar o posicionamento restrito <strong>de</strong> um cursor <strong>3D</strong><br />
a um ponto <strong>de</strong> uma superfície apontada pelo cursor 2D, alinhando o cursor <strong>3D</strong> com relação ao vetor<br />
normal da superfície no ponto <strong>de</strong> restrição. Os testes foram conduzidos em um computador com-<br />
putador AMD Athlon 64 3500+ <strong>de</strong> 2.2GHz e 2GB RAM, equipado com uma placa gráfica NVIDIA<br />
GeForce 8800 GTX com 768MB. A geometria utilizada foi <strong>de</strong>formada em cada quadro <strong>de</strong> exibição,<br />
<strong>de</strong> modo que os atributos geométricos necessários para realizar a interação precisaram ser calcula-<br />
dos em tempo <strong>de</strong> execução, em todos os quadros. No método <strong>de</strong> ray picking, estes cálculos foram<br />
feitos na CPU. Na arquitetura proposta, as <strong>de</strong>formações foram realizadas diretamente no processador<br />
<strong>de</strong> vértices, no estágio <strong>de</strong> modificação <strong>de</strong> atributos <strong>de</strong> vértices (estágio 1 da arquitetura segundo as<br />
figuras 5.9 e 5.10).<br />
Na implementação do método <strong>de</strong> ray picking, utilizamos a função D<strong>3D</strong>XIntersect() forne-<br />
cida pela biblioteca D<strong>3D</strong>X da API Direct<strong>3D</strong> [Microsoft, 2006]. Esta função é utilizada para testar<br />
a interseção entre um raio e um mo<strong>de</strong>lo geométrico e retornar atributos geométricos nos pontos <strong>de</strong><br />
interseção. Ao utilizar a biblioteca D<strong>3D</strong>X, as modificações dos atributos dos vértices foram reali-<br />
zadas na CPU. Além disso, não utilizamos modificações <strong>de</strong> atributos <strong>de</strong> fragmentos, pois a função<br />
<strong>de</strong> cálculo <strong>de</strong> interseção do D<strong>3D</strong>X é incapaz <strong>de</strong> trabalhar com <strong>de</strong>formações da geometria em relação<br />
aos fragmentos produzidos na rasterização. Isso ocorre porque os testes <strong>de</strong> interseção são realizados<br />
somente sobre a malha triangular da geometria.<br />
Os mo<strong>de</strong>los utilizados neste teste <strong>de</strong> <strong>de</strong>sempenho foram uma chaleira e uma esfera <strong>de</strong>formadas<br />
por funções senoidais em tempo real e exibidos como listas <strong>de</strong> triângulos não in<strong>de</strong>xados. <strong>Uma</strong> visu-<br />
alização <strong>de</strong>sses mo<strong>de</strong>los com a <strong>de</strong>formação aplicada é mostrada na figura 6.1. A esfera foi composta<br />
<strong>de</strong> 19.802 vértices. A chaleira teve duas versões <strong>de</strong> refinamento <strong>de</strong> malha. A geometria menos refi-