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.
58 Atributos elementares para manipulação direta<br />
gia <strong>de</strong> codificação <strong>de</strong> atributos em pixels se aplicaria. Para tanto, sugerimos utilizar praticamente o<br />
mesmo procedimentos empregado para a restrição a vértices ou arestas. Por exemplo, o mo<strong>de</strong>lo po<strong>de</strong><br />
ser ren<strong>de</strong>rizado com as primitivas preenchidas <strong>de</strong> modo que, em cada pixel, seja armazenado o valor<br />
<strong>de</strong> profundida<strong>de</strong> da superfície naquele ponto. Na imagem efetivamente visualizada, aplica-se o filtro<br />
<strong>de</strong> processamento <strong>de</strong> imagens <strong>de</strong>sejado (e.g., <strong>de</strong>tecção <strong>de</strong> bordas). A imagem obtida po<strong>de</strong> então ser<br />
utilizada como uma máscara sobre a imagem no buffer <strong>de</strong> ren<strong>de</strong>rização não visível. São excluídos<br />
todos os pixels que não coinci<strong>de</strong>m com as bordas <strong>de</strong>tectadas. Assim, basta <strong>de</strong>terminar, <strong>de</strong>ntro da<br />
região <strong>de</strong> pixels em torno do cursor 2D, qual o pixel mais próximo do cursor, consi<strong>de</strong>rando apenas<br />
aqueles que não foram excluídos pela máscara. O cursor 2D é <strong>de</strong>slocado para este pixel, e o cursor<br />
<strong>3D</strong> é <strong>de</strong>slocado para a posição <strong>3D</strong> correspon<strong>de</strong>nte no mo<strong>de</strong>lo.<br />
3.4 Consi<strong>de</strong>rações finais<br />
Ao utilizarmos a estratégia <strong>de</strong> interação baseada na leitura <strong>de</strong> dados a partir da imagem da cena<br />
ren<strong>de</strong>rizada em buffers <strong>de</strong> ren<strong>de</strong>rização não visíveis, os dados po<strong>de</strong>m ser divididos entre atributos ge-<br />
ométricos e atributos não geométricos. Os atributos não geométricos são valores genéricos <strong>de</strong>finidos<br />
pela própria aplicação, tais como os valores <strong>de</strong> i<strong>de</strong>ntificação <strong>de</strong> mo<strong>de</strong>los/arestas/vértices utilizados<br />
nas tarefas <strong>de</strong> seleção e posicionamento restrito. Os atributos geométricos vistos até aqui são, além<br />
da posição <strong>3D</strong>, proprieda<strong>de</strong>s <strong>de</strong> geometria diferencial tais como o vetor normal, vetores tangentes ali-<br />
nhados <strong>de</strong> acordo com a parametrização das coor<strong>de</strong>nadas <strong>de</strong> textura da superfície, direções principais,<br />
curvaturas principais e <strong>de</strong>rivadas <strong>de</strong>ssas curvaturas.<br />
Em tarefas <strong>de</strong> seleção, são necessários apenas os atributos armazenados no pixel apontado pelo<br />
cursor 2D. Para tarefas <strong>de</strong> posicionamento restrito, esses atributos <strong>de</strong>vem ser armazenados somente<br />
para uma região <strong>de</strong> pixels em torno do cursor 2D, região essa <strong>de</strong>terminada pela magnitu<strong>de</strong> do campo<br />
<strong>de</strong> gravida<strong>de</strong> que está sendo simulado. Estes atributos, relativos à geometria original submetida à<br />
GPU, po<strong>de</strong>m sofrer modificações ao longo do fluxo programável <strong>de</strong> ren<strong>de</strong>rização (figura 2.3) e gerar<br />
efeitos visuais <strong>de</strong> profundida<strong>de</strong> e <strong>de</strong> curvatura bastante distintos dos efeitos que a geometria original<br />
produziria. <strong>Uma</strong> arquitetura <strong>de</strong> interação i<strong>de</strong>al seria aquela que estima na GPU todos os atributos<br />
geométricos necessários à interação, <strong>de</strong> forma transparente à aplicação.<br />
Os atributos geométricos po<strong>de</strong>m ser empregados para aproximar a reconstrução da superfície nos<br />
pontos <strong>de</strong> seleção ou posicionamento restrito, e o uso combinado <strong>de</strong> atributos geométricos e não<br />
geométricos permite a realização <strong>de</strong> tarefas <strong>de</strong> interação mais complexas. Por exemplo, para realizar<br />
uma tarefa <strong>de</strong> pintura <strong>3D</strong> [Hanrahan and Haeberli, 1990, Carr and Hart, 2004], a arquitetura é capaz<br />
<strong>de</strong> fornecer atributos tais como o i<strong>de</strong>ntificador do mo<strong>de</strong>lo apontado (para i<strong>de</strong>ntificar qual mo<strong>de</strong>lo está<br />
sendo pintado), as coor<strong>de</strong>nadas <strong>de</strong> textura do ponto sob o cursor 2D (para que a aplicação possa