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
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
56 Atributos elementares para manipulação direta<br />
modo, discutimos nesta seção um método alternativo para controle preciso do cursor.<br />
A <strong>de</strong>terminação algébrica das interseções po<strong>de</strong> ser contornada com a estratégia relacionada à<br />
codificação <strong>de</strong> atributos em pixels da imagem. Por exemplo, a seleção po<strong>de</strong> utilizar a mesma idéia<br />
da tradicional técnica <strong>de</strong> buffer <strong>de</strong> itens (item buffer) [Weghorst et al., 1984], i.e., cada mo<strong>de</strong>lo ge-<br />
ométrico é ren<strong>de</strong>rizado com uma cor distinta em um buffer <strong>de</strong> ren<strong>de</strong>rização não visível, e a cor<br />
obtida do pixel apontado pelo cursor i<strong>de</strong>ntifica o mo<strong>de</strong>lo selecionado. Em resumo, o único atributo<br />
necessário para esta tarefa consiste em um valor i<strong>de</strong>ntificador que indica qual mo<strong>de</strong>lo foi ren<strong>de</strong>rizado<br />
em cada pixel.<br />
O procedimento <strong>de</strong> seleção <strong>de</strong> todos os mo<strong>de</strong>los intersectados pelo raio <strong>de</strong> seleção também po<strong>de</strong><br />
ser realizado através da estratégia <strong>de</strong> codificação <strong>de</strong> atributos em pixels da imagem, sem recorrer a cál-<br />
culos <strong>de</strong> interseção. Para obter o i<strong>de</strong>ntificador <strong>de</strong> todos os mo<strong>de</strong>los que teriam interseções com o raio<br />
<strong>de</strong> seleção <strong>de</strong>terminado pelo cursor 2D, sugerimos o seguinte procedimento iterativo: (1) seleciona-se<br />
o mo<strong>de</strong>lo visível segundo o método <strong>de</strong> buffer <strong>de</strong> itens; (2) ren<strong>de</strong>riza-se a cena novamente no buffer<br />
<strong>de</strong> ren<strong>de</strong>rização não visível, com exceção do(s) mo<strong>de</strong>lo(s) já selecionado(s); (3) repete-se o procedi-<br />
mento a partir do primeiro passo até que nenhum i<strong>de</strong>ntificador seja encontrado no pixel <strong>de</strong> interesse.<br />
Essa seqüência <strong>de</strong> passos resulta em um conjunto <strong>de</strong> i<strong>de</strong>ntificadores dos mo<strong>de</strong>los que teriam intersec-<br />
tado o raio <strong>de</strong> seleção segundo o método <strong>de</strong> ray picking, em uma or<strong>de</strong>m <strong>de</strong> frente para trás a partir do<br />
plano <strong>de</strong> projeção.<br />
O procedimento <strong>de</strong> seleção <strong>de</strong> todos os mo<strong>de</strong>los intersectados pelo raio <strong>de</strong> seleção po<strong>de</strong> ser es-<br />
tendido para o procedimento <strong>de</strong> selecionar todas as faces intersectadas pelo raio <strong>de</strong> seleção. Em cada<br />
iteração das etapas <strong>de</strong>scritas anteriormente, são excluídas as faces já selecionadas. Para isso, cada<br />
face precisa ter seu i<strong>de</strong>ntificador próprio (e.g., uma cor própria). Nesse caso, em um mo<strong>de</strong>lo <strong>de</strong>scrito<br />
por uma malha triangular, <strong>de</strong>ve-se utilizar geometria não in<strong>de</strong>xada, pois vértices comuns a vários<br />
triângulos terão i<strong>de</strong>ntificadores <strong>de</strong> face diferentes para cada face.<br />
Na estratégia <strong>de</strong> codificação <strong>de</strong> atributos em pixels da imagem, a restrição a superfícies po<strong>de</strong> ser<br />
realizada <strong>de</strong> forma semelhante à seleção, i.e., obtendo informações codificadas no pixel apontado<br />
pelo cursor 2D. Para posicionar e orientar o cursor <strong>3D</strong> restrito sobre a superfície, são necessários<br />
os atributos <strong>de</strong> posição <strong>3D</strong>, vetor normal e vetores tangentes à superfície no ponto <strong>de</strong> restrição. O<br />
cálculo <strong>de</strong>ssas proprieda<strong>de</strong>s po<strong>de</strong> ser realizado <strong>de</strong> forma analítica (quando a equação paramétrica da<br />
superfície é conhecida) ou estimado a partir do mo<strong>de</strong>lo discretizado. Caso o mo<strong>de</strong>lo seja transformado<br />
apenas por transformações <strong>de</strong> corpo rígido, este processamento po<strong>de</strong> ser realizado em uma etapa <strong>de</strong><br />
pré-processamento. Caso contrário, <strong>de</strong>ve ser feito em tempo <strong>de</strong> execução, o que po<strong>de</strong> ser custoso.<br />
Se consi<strong>de</strong>rarmos superfícies discretizadas cuja ren<strong>de</strong>rização é realizada com as atuais GPUs,<br />
sugerimos utilizar o próprio fluxo <strong>de</strong> visualização para calcular <strong>de</strong> forma eficiente os atributos ne-<br />
cessários à restrição a superfícies. No processador <strong>de</strong> vértices calcula-se o valor <strong>de</strong> profundida<strong>de</strong> do