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
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
5.4 Fluxo <strong>de</strong> processamento 115<br />
três vértices <strong>de</strong> cada face. Esses valores <strong>de</strong>vem ser <strong>de</strong>finidos pela aplicação e acrescentados ao<br />
buffer <strong>de</strong> vértices da geometria original.<br />
• Buffer <strong>de</strong> índices da geometria original, idêntico ao buffer <strong>de</strong> índices aos vértices utilizado<br />
na ren<strong>de</strong>rização do mo<strong>de</strong>lo para visualização. Esses dados po<strong>de</strong>m ser fornecidos através do<br />
comando SetIn<strong>de</strong>xBuffer() que recebe o ponteiro do buffer <strong>de</strong> índices. Cada seqüência<br />
<strong>de</strong> três índices do buffer <strong>de</strong>ve correspon<strong>de</strong>r a um triângulo. Internamente, a arquitetura utiliza<br />
esses dados para <strong>de</strong>terminar a vizinhança <strong>de</strong> 1-anel <strong>de</strong> cada vértice, e armazenar esses dados<br />
em texturas que serão utilizadas no estágio 2.<br />
• Relação dos atributos que <strong>de</strong>vem ser processados pela GPU e armazenados para cada pixel<br />
do mo<strong>de</strong>lo ren<strong>de</strong>rizado. Essa relação po<strong>de</strong> ser qualquer combinação dos atributos citados na<br />
seção 5.3, e po<strong>de</strong> ser fornecida à arquitetura através do comando SetAttributes().<br />
• Mapeamento da semântica dos atributos <strong>de</strong> entrada, entre a API gráfica e a arquitetura <strong>de</strong> in-<br />
teração. Nas APIs gráficas, os atributos <strong>de</strong> cada vértice da geometria original possuem uma<br />
semântica pré-<strong>de</strong>finida, necessária para a correta interpretação <strong>de</strong> cada atributo na entrada do<br />
processador <strong>de</strong> vértices ou no fluxo <strong>de</strong> função fixa <strong>de</strong> visualização. Por exemplo, um vértice<br />
po<strong>de</strong> ser composto <strong>de</strong> valores cuja semântica, do ponto <strong>de</strong> vista da API gráfica, é uma posição<br />
<strong>3D</strong>, coor<strong>de</strong>nadas <strong>de</strong> textura 2D, um valor <strong>de</strong> cor difusa ou tamanho do ponto. Do ponto <strong>de</strong><br />
vista da arquitetura proposta, tais atributos po<strong>de</strong>m ter outra semântica. Por exemplo, valores<br />
numéricos <strong>de</strong>signados aos vértices com semântica <strong>de</strong> tamanho do ponto (do ponto <strong>de</strong> vista da<br />
API), po<strong>de</strong>m ser interpretados pela arquitetura <strong>de</strong> interação como um i<strong>de</strong>ntificador <strong>de</strong> vértice,<br />
ou como um valor genérico com semântica <strong>de</strong>finida pela aplicação.<br />
Esse mapeamento po<strong>de</strong> ser fornecido à arquitetura através do comando BindSemantics()<br />
que recebe duas listas cujos valores são mapeados biunivocamente. A primeira lista contém<br />
as semânticas dos atributos dos vértices segundo a API gráfica. A segunda lista contém as<br />
semânticas dos atributos dos vértices segundo a arquitetura <strong>de</strong> interação.<br />
• Coor<strong>de</strong>nadas da região <strong>de</strong> interesse. A extensão espacial da codificação dos atributos das ge-<br />
ometrias processadas é configurada <strong>de</strong> acordo com a <strong>de</strong>finição <strong>de</strong> uma região retangular <strong>de</strong><br />
interesse, especificada em coor<strong>de</strong>nadas da janela. Para tarefas simples <strong>de</strong> interação como se-<br />
leção e posicionamento restrito à superfície mais próxima, essa região po<strong>de</strong> envolver apenas o<br />
pixel apontado pelo cursor 2D controlado pelo dispositivo apontador. Nessas tarefas, as primiti-<br />
vas sob interação são apenas as primitivas apontadas pelo cursor 2D. Primitivas situadas fora da<br />
região <strong>de</strong> interesse são <strong>de</strong>scartadas e o processamento <strong>de</strong> fragmentos é reduzido a fragmentos<br />
<strong>de</strong>ntro <strong>de</strong>ssa região. Em tarefas <strong>de</strong> posicionamento com restrição a vértices, arestas, ou caracte-