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.
1.1 Motivação 3<br />
tataram que a or<strong>de</strong>nação <strong>de</strong> 16 milhões <strong>de</strong> registros <strong>de</strong> um banco <strong>de</strong> dados po<strong>de</strong>ria ser realizada em<br />
apenas 2 segundos em uma placa gráfica NVIDIA GeForce 7800 GTX. O mesmo processamento era<br />
realizado em no mínimo 15 segundos usando a função qsort (ANSI C) otimizada no compilador<br />
Intel C++ com instruções SSE (Streaming SIMD Extensions), e sendo executado numa CPU Intel<br />
Pentium 4 <strong>de</strong> 3.2 GHz utilizando a tecnologia Hyper-Threading.<br />
Hoje, o maior mercado consumidor <strong>de</strong> hardware gráfico programável e principal responsável<br />
pelo impulso do <strong>de</strong>senvolvimento <strong>de</strong> novas tecnologias é o mercado <strong>de</strong> entretenimento digital (e.g.,<br />
jogos para computadores e vi<strong>de</strong>o games). Para essas aplicações, o uso não convencional das GPUs<br />
tem sido comumente concentrado na realização <strong>de</strong> tarefas <strong>de</strong> animação e mo<strong>de</strong>lagem geométrica em<br />
malhas triangulares. Embora anteriormente a GPU fosse utilizada apenas para a aceleração das eta-<br />
pas <strong>de</strong> transformação geométrica, cálculo <strong>de</strong> iluminação e rasterização, verificou-se que tarefas mais<br />
complexas <strong>de</strong> processamento <strong>de</strong> geometria tais como mesh skinning [Dempski, 2002], simulação <strong>de</strong><br />
ondas no oceano [Isidoro et al., 2002], mo<strong>de</strong>lagem procedural <strong>de</strong> terrenos [Green, 2002], simulação<br />
<strong>de</strong> tecidos [Zeller, 2005] e mapeamento <strong>de</strong> <strong>de</strong>slocamento [Kryachko, 2005] po<strong>de</strong>riam ser realiza-<br />
das totalmente na GPU. Essa estratégia, além <strong>de</strong> aproveitar melhor o paralelismo entre a CPU e a<br />
GPU, também se beneficia da ampla largura <strong>de</strong> banda existente no acesso a recursos armazenados<br />
em memória <strong>de</strong> ví<strong>de</strong>o local: <strong>de</strong> 8 GB/s do barramento PCI Express 16X para mais <strong>de</strong> 50 GB/s da<br />
memória <strong>de</strong> ví<strong>de</strong>o local em uma placa NVIDIA GeForce 7900 GTX [Kilgariff and Fernando, 2005].<br />
Atualmente, o barramento <strong>de</strong> uma placa NVIDIA GeForce 8800 Ultra tem uma largura <strong>de</strong> banda <strong>de</strong><br />
103.7 GB/s.<br />
<strong>Uma</strong> ilustração do acesso a recursos da memória <strong>de</strong> ví<strong>de</strong>o e memória do sistema é mostrada na<br />
figura 1.1. Nas técnicas citadas, a CPU envia apenas uma vez um mo<strong>de</strong>lo geométrico estático para a<br />
GPU. Este mo<strong>de</strong>lo é armazenado em memória <strong>de</strong> ví<strong>de</strong>o local e, para cada quadro <strong>de</strong> exibição, ele é<br />
lido, processado e ren<strong>de</strong>rizado pelo hardware gráfico sem intervenção da CPU.<br />
A capacida<strong>de</strong> <strong>de</strong> <strong>de</strong>formar geometria na GPU sem intervenção da CPU introduz sérias com-<br />
plicações para a implementação <strong>de</strong> algoritmos <strong>de</strong> interação <strong>3D</strong> que trabalham com tais mo<strong>de</strong>los.<br />
Tradicionalmente, o processamento necessário para executar tarefas <strong>de</strong> manipulação direta tais como<br />
seleção (picking) e posicionamento com restrição (snapping) usando dispositivos apontadores, é re-<br />
alizado inteiramente na CPU. Esse processamento é feito com base em informações fornecidas pelo<br />
sistema <strong>de</strong> janelas (e.g., eventos dos dispositivos <strong>de</strong> entrada sobre os controles <strong>de</strong> interface 2D) e<br />
com base no mo<strong>de</strong>lo geométrico armazenado em um banco <strong>de</strong> dados sobre a cena <strong>3D</strong> na memória do<br />
sistema. Um diagrama conceitual ilustrando essas relações é mostrado na figura 1.2.<br />
Se a GPU é utilizada para executar técnicas <strong>de</strong> animação e mo<strong>de</strong>lagem geométrica, instâncias dos<br />
mo<strong>de</strong>los geométricos <strong>de</strong>vem ser armazenadas em memória <strong>de</strong> ví<strong>de</strong>o local. Porém, se as instâncias<br />
<strong>de</strong>formadas na GPU não são propagadas para o mo<strong>de</strong>lo original armazenado na memória do sistema,