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.

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

sistema e <strong>de</strong>codifica os atributos contidos em cada pixel. Esses atributos são então retornados<br />

à aplicação. Ao contrário dos estágios anteriores, que <strong>de</strong>vem ser executadas uma vez para cada<br />

mo<strong>de</strong>lo geométrico sob interação, esse procedimento só precisa ser executado uma vez em cada<br />

iteração do laço <strong>de</strong> ren<strong>de</strong>rização.<br />

Auxiliada pelo sistema <strong>de</strong> janelas, os atributos <strong>de</strong>codificados po<strong>de</strong>m ser utilizados pela apli-<br />

cação para concluir a tarefa <strong>de</strong> interação e fornecer alguma realimentação ao sistema, em geral<br />

um retorno visual (e.g., atualizando a posição e orientação do cursor <strong>3D</strong>). As ações <strong>de</strong> manipu-<br />

lação, <strong>de</strong>finidas pela aplicação, também po<strong>de</strong>m resultar em modificações da geometria original<br />

(e.g., mudança da posição dos vértices ou faces), modificações da conectivida<strong>de</strong> da geometria<br />

(e.g., em uma operação <strong>de</strong> recorte e costura <strong>de</strong> superfícies), modificações do conteúdo das tex-<br />

turas utilizadas pelo mo<strong>de</strong>lo (e.g., <strong>de</strong>correntes <strong>de</strong> uma tarefa <strong>de</strong> pintura <strong>3D</strong>) ou modificações<br />

dos parâmetros das funções <strong>de</strong> <strong>de</strong>formação. Em tais casos, a aplicação é responsável por infor-<br />

mar essas mudanças à arquitetura <strong>de</strong> interação <strong>de</strong> acordo com a interface <strong>de</strong> entrada <strong>de</strong>scrita na<br />

seção 5.4.2.<br />

5.4.2 Interface <strong>de</strong> entrada (CPU-GPU)<br />

Para iniciar o processamento <strong>de</strong> atributos na GPU, a arquitetura requer que a aplicação forneça a<br />

seguinte seqüência <strong>de</strong> dados <strong>de</strong> entrada para cada mo<strong>de</strong>lo geométrico a ser processado:<br />

• Buffer <strong>de</strong> vértices da geometria original, idêntico ao buffer <strong>de</strong> vértices utilizado na ren<strong>de</strong>rização<br />

do mo<strong>de</strong>lo para visualização, porém com um atributo adicional contendo o índice do vértice no<br />

buffer. Esse índice é utilizado pela arquitetura durante os estágios <strong>de</strong> processamento 1, 2 e 3<br />

para calcular o índice 2D <strong>de</strong> acesso das texturas que contém dados da geometria e topologia do<br />

mo<strong>de</strong>lo. O procedimento <strong>de</strong> conversão do índice 1D para 2D é <strong>de</strong>talhado na seção 4.1.1.<br />

Cada vértice <strong>de</strong>ve conter também os atributos <strong>de</strong>finidos na aplicação (atributos <strong>de</strong> entrada)<br />

necessários para calcular os atributos que serão processados na GPU e armazenados nos buffers<br />

<strong>de</strong> ren<strong>de</strong>rização não visíveis (atributos <strong>de</strong> saída). Esses dados po<strong>de</strong>m ser fornecidos através do<br />

comando SetVertexBuffer() que recebe o ponteiro do buffer <strong>de</strong> vértices. Internamente, a<br />

arquitetura utiliza esse buffer <strong>de</strong> vértices para criar as texturas que serão utilizadas nos estágios<br />

1, 2 e 3.<br />

Os atributos <strong>de</strong> entrada exigidos para o cálculo <strong>de</strong> cada atributo <strong>de</strong> saída são citados na seção 5.3.<br />

Por exemplo, o cálculo do valor <strong>de</strong> profundida<strong>de</strong> requer apenas a existência da posição <strong>3D</strong> como<br />

atributo <strong>de</strong> entrada <strong>de</strong> cada vértice no buffer <strong>de</strong> vértices. O cálculo dos pesos das coor<strong>de</strong>nadas<br />

baricêntricas requer, como atributo <strong>de</strong> entrada, os valores 0, 1 e 2 <strong>de</strong>signados para cada um dos

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

Saved successfully!

Ooh no, something went wrong!