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.
6 Introdução<br />
Fig. 1.4: Deformação <strong>de</strong> fragmentos na GPU usando a técnica <strong>de</strong> relief mapping. Esquerda: geometria<br />
original submetida pela CPU, em wireframe. Direita: imagem obtida após processamento na<br />
GPU.<br />
samento <strong>de</strong> <strong>de</strong>formação é realizado duas vezes, exigindo duplicação <strong>de</strong> código. Além disso, requer a<br />
manutenção dos dados da geometria original na memória do sistema, gerando duplicação <strong>de</strong> dados.<br />
É cada vez mais comum o uso <strong>de</strong> técnicas <strong>de</strong> mapeamento <strong>de</strong> <strong>de</strong>talhes <strong>3D</strong> para aumentar <strong>de</strong><br />
forma eficiente o aparente nível <strong>de</strong> <strong>de</strong>talhes dos mo<strong>de</strong>los geométricos. Nessas técnicas, mo<strong>de</strong>los sim-<br />
ples compostos a partir <strong>de</strong> apenas um triângulo po<strong>de</strong>m simular a aparência <strong>de</strong> geometrias complexas<br />
compostas <strong>de</strong> vários milhões <strong>de</strong> triângulos. Isso é obtido através da modificação dos fragmentos <strong>de</strong><br />
pixels gerados pelo rasterizador, em oposição à modificação ou adição <strong>de</strong> vértices. Técnicas como<br />
normal mapping [Krishnamurthy and Levoy, 1996], parallax occlusion mapping [Tatarchuk, 2006]<br />
e relief mapping [Policarpo et al., 2005] modificam os atributos <strong>de</strong> cada fragmento no processador<br />
<strong>de</strong> fragmentos e, <strong>de</strong>pen<strong>de</strong>ndo da sofisticação <strong>de</strong> cada técnica, po<strong>de</strong>m gerar <strong>de</strong>talhes <strong>3D</strong> com para-<br />
laxe, oclusão e silhuetas corretas. O resultado visual geralmente aparenta ser muito mais complexo e<br />
diverso da geometria original submetida à GPU pela CPU (Figura 1.4).<br />
Da mesma forma que na <strong>de</strong>formação com base nos vértices citada anteriormente, se o processa-<br />
mento <strong>de</strong> interação é realizado com o mo<strong>de</strong>lo original na CPU, as modificações dos fragmentos não<br />
serão levadas em conta, novamente gerando inconsistências. Transformações <strong>de</strong>correntes do mapea-<br />
mento <strong>de</strong> <strong>de</strong>talhes também po<strong>de</strong>riam ser simuladas no mo<strong>de</strong>lo armazenado na memória do sistema.<br />
Porém, nesse caso seria necessário simular na CPU todo o fluxo <strong>de</strong> processamento <strong>de</strong> fragmentos<br />
da GPU, o que é impraticável como solução eficiente para o problema exposto, além <strong>de</strong> anular os<br />
benefícios do uso da GPU para processamento paralelo, como já citado para o caso da modificação<br />
<strong>de</strong> atributos dos vértices.