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.

2.4 <strong>Arquitetura</strong> das GPUs programáveis 35<br />

Fig. 2.4: Diagrama do ambiente geral <strong>de</strong> execução <strong>de</strong> um modificador <strong>de</strong> vértices.<br />

trada (geralmente um registrador para cada atributo do vértice) com valores fornecidos pela etapa<br />

<strong>de</strong> montagem <strong>de</strong> vértices. O sha<strong>de</strong>r executa seus cálculos através da leitura <strong>de</strong>sses registradores,<br />

usando registradores temporários para armazenar resultados intermediários do processamento. O<br />

sha<strong>de</strong>r também po<strong>de</strong> acessar registradores constantes para obter valores <strong>de</strong>finidos pela aplicação e<br />

que não variam entre os vértices da geometria. Exemplos <strong>de</strong> valores usualmente armazenados em<br />

registradores constantes incluem a combinação das matrizes <strong>de</strong> transformação, o vetor <strong>de</strong> direção ou<br />

posição <strong>de</strong> uma fonte <strong>de</strong> luz, paletas <strong>de</strong> matrizes utilizadas para <strong>de</strong>formação <strong>de</strong> vértices, entre outros.<br />

Registradores <strong>de</strong> en<strong>de</strong>reçamento po<strong>de</strong>m ser utilizados pelo sha<strong>de</strong>r para realizar en<strong>de</strong>reçamento<br />

relativo <strong>de</strong> índices no conjunto <strong>de</strong> registradores <strong>de</strong> constantes. Esses registradores geralmente não<br />

po<strong>de</strong>m ser lidos diretamente <strong>de</strong>ntro do sha<strong>de</strong>r, mas usados apenas para en<strong>de</strong>reçamento relativo.<br />

Ambientes <strong>de</strong> execução mais recentes, como o especificado pelo mo<strong>de</strong>lo <strong>de</strong> sha<strong>de</strong>r 3.0 e utilizado<br />

em nossa arquitetura <strong>de</strong> interação, utilizam registradores especiais para realizar fluxo <strong>de</strong> controle<br />

dinâmico, permitindo a implementação <strong>de</strong> procedimentos mais complexos na GPU. <strong>Uma</strong> caracterís-<br />

tica especialmente útil neste mo<strong>de</strong>lo <strong>de</strong> sha<strong>de</strong>r é a disponibilida<strong>de</strong>, no processdor <strong>de</strong> vértices, dos<br />

estágios <strong>de</strong> amostragem <strong>de</strong> texturas exibidos na figura 2.5. Essa característica permite a realização <strong>de</strong><br />

amostragem <strong>de</strong> texturas durante o processamento <strong>de</strong> vértices.<br />

O sha<strong>de</strong>r <strong>de</strong> vértices armazena seus resultados em um conjunto <strong>de</strong> registradores <strong>de</strong> saída. Os<br />

registradores <strong>de</strong> saída possuem uma semântica pré-<strong>de</strong>finida, tal como a posição do vértice transfor-<br />

mado em espaço homogêneo, as coor<strong>de</strong>nadas <strong>de</strong> textura e a cor do vértice. Esses resultados são<br />

transferidos para os próximos estágios do fluxo <strong>de</strong> função fixa ou utilizados como entrada do sha<strong>de</strong>r<br />

<strong>de</strong> fragmentos, e são interpolados ao longo da primitiva segundo o mo<strong>de</strong>lo <strong>de</strong> interpolação <strong>de</strong>finido<br />

na API.

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

Saved successfully!

Ooh no, something went wrong!