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.

1.1 Motivação 7<br />

Como então interagir <strong>de</strong> forma consistente e ao mesmo tempo eficiente com um mo<strong>de</strong>lo ge-<br />

ométrico modificado <strong>de</strong> forma arbitrária na GPU, consi<strong>de</strong>rando que essas modificações po<strong>de</strong>m ocor-<br />

rer tanto com relação aos vértices como fragmentos produzidos pelo rasterizador?<br />

A indústria <strong>de</strong> hardware gráfico, em um trabalho conjunto com os <strong>de</strong>senvolvedores das APIs,<br />

têm sinalizado como tendência para as próximas gerações <strong>de</strong> hardware gráfico uma flexibilida<strong>de</strong><br />

cada vez maior para criar ou <strong>de</strong>struir primitivas geométricas <strong>de</strong>ntro da própria GPU, sem que estas<br />

precisem necessariamente existir na memória do sistema. Indicativos <strong>de</strong>sta característica já são vistos<br />

nas atuais GPUs compatíveis com o chamado Sha<strong>de</strong>r Mo<strong>de</strong>l 4.0 1 [Blythe, 2006], e implica a não<br />

obrigatorieda<strong>de</strong> da existência <strong>de</strong> um mo<strong>de</strong>lo na CPU com a mesma topologia do mo<strong>de</strong>lo existente na<br />

memória <strong>de</strong> ví<strong>de</strong>o local. Sabendo disso, é <strong>de</strong>sejável que uma solução para o problema da realização<br />

<strong>de</strong> interações consistentes leve em consi<strong>de</strong>ração a possível inexistência da geometria na memória do<br />

sistema. Tal solução <strong>de</strong>ve ainda minimizar a duplicação <strong>de</strong> código e dados na CPU, <strong>de</strong> modo a manter<br />

os benefícios obtidos pelo uso da GPU nos casos citados.<br />

I<strong>de</strong>almente, o tratamento <strong>de</strong> eventos <strong>de</strong> entrada e saída para interação com mo<strong>de</strong>los geométricos<br />

processados na GPU não <strong>de</strong>veria <strong>de</strong>mandar qualquer tipo <strong>de</strong> processamento na CPU. Por outro lado,<br />

essa possibilida<strong>de</strong> <strong>de</strong> completo <strong>de</strong>sacoplamento do processamento entre a CPU e a GPU não po<strong>de</strong><br />

ser concretizada senão através da execução das tarefas <strong>de</strong> um sistema <strong>de</strong> janelas na placa gráfica.<br />

Como não existe no momento uma arquitetura <strong>de</strong> hardware que suporte esta possibilida<strong>de</strong>, <strong>de</strong>vemos<br />

consi<strong>de</strong>rar que a CPU ainda <strong>de</strong>sempenha um papel fundamental no tratamento dos eventos <strong>de</strong> entrada<br />

e saída através do sistema <strong>de</strong> janelas. Desse modo, o processamento na CPU continua existindo, seja<br />

para disparar o processamento <strong>de</strong> fluxo da GPU através <strong>de</strong> chamadas <strong>de</strong> funções <strong>de</strong> ren<strong>de</strong>rização, seja<br />

para utilizar os resultados produzidos na GPU para realizar a realimentação da interação.<br />

Os itens abaixo sintetizam as principais motivações <strong>de</strong>ste trabalho:<br />

• Resolução <strong>de</strong> um problema prático para o qual não há solução satisfatória atualmente, e que<br />

ten<strong>de</strong> a se tornar cada vez mais evi<strong>de</strong>nte: manipulação direta <strong>3D</strong> consistente com primitivas ge-<br />

ométricas processadas <strong>de</strong> forma arbitrária na GPU, tanto com relação aos vértices como com re-<br />

lação aos fragmentos produzidos pelo rasterizador. Deve ser ainda consi<strong>de</strong>rada a possibilida<strong>de</strong><br />

<strong>de</strong> inexistência <strong>de</strong> dados <strong>de</strong>ssas primitivas na memória do sistema, embora o processamento <strong>de</strong><br />

eventos provenientes dos periféricos seja realizado na CPU pelo sistema <strong>de</strong> janelas.<br />

• Necessida<strong>de</strong> <strong>de</strong> disponibilizar ferramentas <strong>de</strong> edição WYSIWYG (What You See Is What You<br />

Get) em aplicações <strong>de</strong> autoria <strong>de</strong> recursos gráficos, tais como aplicativos <strong>de</strong> mo<strong>de</strong>lagem <strong>de</strong><br />

cenas <strong>3D</strong> com aplicação <strong>de</strong> sha<strong>de</strong>rs <strong>de</strong> <strong>de</strong>formação <strong>de</strong> geometria em tempo real. No ambiente<br />

1 O termo Sha<strong>de</strong>r Mo<strong>de</strong>l (mo<strong>de</strong>lo <strong>de</strong> sha<strong>de</strong>r) é utilizado para <strong>de</strong>signar a versão do ambiente <strong>de</strong> execução do processador<br />

<strong>de</strong> vértices e fragmentos das GPUs programáveis. Veja a seção 2.3.4.

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

Saved successfully!

Ooh no, something went wrong!