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

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

118 <strong>Arquitetura</strong> <strong>de</strong> interação<br />

normal serão armazenadas em três componentes distintas <strong>de</strong> cor, cada uma com 32 bits <strong>de</strong> precisão.<br />

Tal procedimento é utilizado em nossa implementação da arquitetura. Alternativamente, porém, esses<br />

valores po<strong>de</strong>m ser armazenados com menor precisão em componentes <strong>de</strong> cor <strong>de</strong> 16 e 8 bits sem sinal,<br />

diminuindo assim o consumo <strong>de</strong> memória <strong>de</strong> ví<strong>de</strong>o. Consi<strong>de</strong>rando vetores normalizados (portanto,<br />

com valores dos seus componentes situados entre -1 e 1), cada componente p do vetor po<strong>de</strong> ser<br />

convertido em uma cor c (com valores entre 0 e 1) através da fórmula c = (p + 1)/2 e <strong>de</strong>codificado<br />

na CPU usando p = 2c − 1.<br />

O procedimento <strong>de</strong> <strong>de</strong>codificação dos atributos é executado pela aplicação através da chamada do<br />

comando Deco<strong>de</strong>(). Internamente, tal comando lê o conteúdo da região <strong>de</strong> interesse <strong>de</strong> cada um<br />

dos buffers <strong>de</strong> ren<strong>de</strong>rização utilizados na codificação, <strong>de</strong>codifica os atributos <strong>de</strong> fragmentos contidos<br />

neles e retorna-os à aplicação.<br />

5.5 Procedimento <strong>de</strong> uso<br />

A interface <strong>de</strong> programação da arquitetura proposta é discutida <strong>de</strong>talhadamente no apêndice C.<br />

Nesta seção, <strong>de</strong>screvemos os passos necessários para implementar uma tarefa <strong>de</strong> manipulação direta<br />

<strong>3D</strong> segundo tal interface. Para inicializar a arquitetura, os seguintes procedimentos são realizados<br />

através <strong>de</strong> chamadas <strong>de</strong> comandos da arquitetura (a or<strong>de</strong>m <strong>de</strong> execução dos comandos não é rele-<br />

vante):<br />

• Criação do buffer <strong>de</strong> vértices <strong>de</strong> cada mo<strong>de</strong>lo. Cada vértice inclui necessariamente como atri-<br />

buto adicional o índice do vértice no buffer. A aplicação utiliza o comando SetVertex-<br />

Buffer() para informar esse buffer à arquitetura.<br />

Depen<strong>de</strong>ndo da tarefa <strong>de</strong> interação <strong>3D</strong> <strong>de</strong>sejada, atributos adicionais <strong>de</strong>vem ser incluídos. Con-<br />

si<strong>de</strong>remos, por exemplo, uma tarefa <strong>de</strong> seleção em uma cena <strong>3D</strong> constituída <strong>de</strong> n mo<strong>de</strong>los. A<br />

seleção consistirá em i<strong>de</strong>ntificar qual mo<strong>de</strong>lo está sendo apontado pelo cursor 2D. Segundo o<br />

paradigma <strong>de</strong> armazenar os atributos no espaço da imagem, isto po<strong>de</strong> ser obtido se codificarmos<br />

os i<strong>de</strong>ntificadores dos mo<strong>de</strong>los em cada pixel dos mo<strong>de</strong>los ren<strong>de</strong>rizados. Para tanto, o buffer<br />

<strong>de</strong> vértices <strong>de</strong> cada mo<strong>de</strong>lo <strong>de</strong>ve conter como atributo adicional o i<strong>de</strong>ntificador do mo<strong>de</strong>lo, i.e.,<br />

um valor entre 1 e n, on<strong>de</strong> n é o número <strong>de</strong> mo<strong>de</strong>los da cena <strong>3D</strong>.<br />

• Criação do buffer <strong>de</strong> índices <strong>de</strong> cada mo<strong>de</strong>lo, informado à arquitetura através do comando<br />

SetIn<strong>de</strong>xBuffer().<br />

• Definição dos atributos que serão codificados para cada pixel dos mo<strong>de</strong>los ren<strong>de</strong>rizados, usando<br />

o comando SetAttributes(). Se esses atributos incluírem proprieda<strong>de</strong>s <strong>de</strong> geometria<br />

diferencial, o estágio 2 será habilitado.

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

Saved successfully!

Ooh no, something went wrong!