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.
5.5 Procedimento <strong>de</strong> uso 119<br />
No exemplo <strong>de</strong> uma tarefa <strong>de</strong> seleção, esse comando será utilizado para informar que somente<br />
um “atributo <strong>de</strong>finido pela aplicação” será codificado. Tal atributo é o i<strong>de</strong>ntificador do mo<strong>de</strong>lo,<br />
<strong>de</strong>finido como um atributo adicional <strong>de</strong> cada vértice do buffer <strong>de</strong> vértices.<br />
• Definição do mapeamento da semântica dos atributos. Para isso a aplicação chama o comando<br />
BindSemantics() informando necessariamente qual atributo do buffer <strong>de</strong> vértices contém<br />
o índice do vértice.<br />
No exemplo <strong>de</strong> uma tarefa <strong>de</strong> seleção, esse comando <strong>de</strong>ve ser utilizado para indicar qual atributo<br />
do buffer <strong>de</strong> vértices contém o “atributo <strong>de</strong>finido pela aplicação.” Neste caso, é o atributo que<br />
contém o i<strong>de</strong>ntificador do mo<strong>de</strong>lo.<br />
• Definição dos sha<strong>de</strong>rs <strong>de</strong> modificação <strong>de</strong> atributos <strong>de</strong> vértices e fragmentos, caso eles se<br />
apliquem aos mo<strong>de</strong>los utilizados. Isto é feito através dos comandos<br />
SetPreVertexDeform(), SetPostVertexDeform() e SetPixelDeform(). Se o<br />
mo<strong>de</strong>lo não sofrer qualquer <strong>de</strong>formação, esses comandos não serão utilizados, e os estágios 1,<br />
3 e 4 da arquitetura não serão habilitados.<br />
• Definição das funções <strong>de</strong> chamada <strong>de</strong> retorno contendo as chamadas <strong>de</strong> ren<strong>de</strong>rização do mo-<br />
<strong>de</strong>lo (e.g., glDrawArrays()), empregando o buffer <strong>de</strong> vértices utilizado em SetVertex-<br />
Buffer(). Os comandos SetUpdateCallback() e SetRen<strong>de</strong>rCallback() são uti-<br />
lizados para informar à arquitetura tais funções <strong>de</strong> chamada <strong>de</strong> retorno.<br />
No laço <strong>de</strong> ren<strong>de</strong>rização, os seguintes procedimentos são executados:<br />
• Definição da região <strong>de</strong> interesse, através do comando SetROI().<br />
Em uma tarefa <strong>de</strong> seleção, a região <strong>de</strong> interesse será <strong>de</strong>finida pelas coor<strong>de</strong>nadas da posição atual<br />
do cursor 2D. Assim, somente o pixel apontado pelo cursor conterá os atributos processados<br />
pela arquitetura.<br />
• Execução do fluxo <strong>de</strong> processamento da arquitetura, através da execução dos comandos<br />
Ren<strong>de</strong>r() e Deco<strong>de</strong>() (nesta or<strong>de</strong>m). Através <strong>de</strong>sses comandos a arquitetura executa inter-<br />
namente os estágios 1 a 6. Os dados obtidos <strong>de</strong>sses procedimentos serão os atributos armazena-<br />
dos para cada pixel dos mo<strong>de</strong>los ren<strong>de</strong>rizados <strong>de</strong>ntro da região da tela especificada pela região<br />
<strong>de</strong> interesse.<br />
No exemplo <strong>de</strong> uma tarefa <strong>de</strong> seleção, o comando Deco<strong>de</strong>() retornará apenas um atributo<br />
codificado para o pixel <strong>de</strong>ntro da região <strong>de</strong> interesse: o “atributo <strong>de</strong>finido pela aplicação”, i.e.,<br />
o i<strong>de</strong>ntificador do mo<strong>de</strong>lo segundo o mapeamento da semântica dos atributos. <strong>Uma</strong> vez que a