03.04.2013 Views

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

SHOW MORE
SHOW LESS

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

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!