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.

2.3 Evolução do hardware gráfico 27<br />

etapa <strong>de</strong> transformação geométrica e iluminação era pré-<strong>de</strong>terminado e à aplicação só cabia habili-<br />

tar/<strong>de</strong>sabilitar estados <strong>de</strong>sse fluxo.<br />

Com as GPUs programáveis, a aplicação passa a ser capaz <strong>de</strong> re<strong>de</strong>finir o comportamento das<br />

etapas <strong>de</strong> transformação geométrica e iluminação, tanto com relação aos vértices como aos frag-<br />

mentos, através da programação <strong>de</strong> um processador <strong>de</strong> vértices e um processador <strong>de</strong> fragmentos. O<br />

processador <strong>de</strong> vértices é responsável pela execução <strong>de</strong> um programa que modifica os atributos <strong>de</strong><br />

cada vértice da geometria submetida pela CPU. Por sua vez, o processador <strong>de</strong> fragmentos é respon-<br />

sável pela execução <strong>de</strong> um programa que processa cada fragmento <strong>de</strong> pixel gerado durante a etapa<br />

<strong>de</strong> rasterização e assim <strong>de</strong>termina atributos <strong>de</strong> cor e profundida<strong>de</strong> a serem direcionados a buffers <strong>de</strong><br />

ren<strong>de</strong>rização, também chamados <strong>de</strong> alvos <strong>de</strong> ren<strong>de</strong>rização (ren<strong>de</strong>r targets). As placas gráficas mais<br />

recentes contam ainda com uma arquitetura unificada, capaz <strong>de</strong> trabalhar tanto como um processador<br />

<strong>de</strong> vértices, <strong>de</strong> fragmentos, ou um processador <strong>de</strong> primitivas, <strong>de</strong> acordo com a <strong>de</strong>manda. Este último<br />

processador tem a capacida<strong>de</strong> <strong>de</strong> acessar as informações associadas a cada primitiva, como os vértices<br />

que compõem a primitiva, além das relações <strong>de</strong> conectivida<strong>de</strong> com as primitivas adjacentes.<br />

Ao explorar a flexibilida<strong>de</strong> do processador <strong>de</strong> vértices, fragmentos e geometria, a aplicação tem a<br />

oportunida<strong>de</strong> <strong>de</strong> implementar em hardware um número variado <strong>de</strong> mo<strong>de</strong>los <strong>de</strong> iluminação, incluindo<br />

os clássicos mo<strong>de</strong>los <strong>de</strong> Phong [Bui-Tong, 1975] e Blinn [Blinn, 1977] (para uma implementação<br />

na GPU, veja Fosner [2002]), e também mo<strong>de</strong>los mais complexos como os <strong>de</strong> Cook-Torrance [Cook<br />

and Torrance, 1982] e Oren-Nayar [Oren and Nayar, 1992] (veja também Engel [2004]), e mo<strong>de</strong>lo <strong>de</strong><br />

Kubelka-Munk [Wendlandt and Hecht, 1966, Kortun, 1969] (implementação na GPU segundo Baxter<br />

et al. [2004]). Essa flexibilida<strong>de</strong> se esten<strong>de</strong> também à possibilida<strong>de</strong> <strong>de</strong> simular mo<strong>de</strong>los <strong>de</strong> iluminação<br />

baseados em BRDF (Bidirectional Reflectance Distribution Function), calcular termos <strong>de</strong> reflexão <strong>de</strong><br />

Fresnel (razão entre a quantida<strong>de</strong> <strong>de</strong> luz refletida e luz transmitida numa superfície), implementar<br />

mo<strong>de</strong>los <strong>de</strong> iluminação anisotrópica e mo<strong>de</strong>los <strong>de</strong> iluminação para ilustrações (mo<strong>de</strong>los não fotore-<br />

alistas), entre uma pletora <strong>de</strong> outras possibilida<strong>de</strong>s.<br />

A <strong>de</strong>formação da geometria através do processador <strong>de</strong> vértices inclui a habilida<strong>de</strong> <strong>de</strong> realizar<br />

skinning <strong>de</strong> vértices em hardware [Dempski, 2002] e mapeamento <strong>de</strong> <strong>de</strong>slocamento (displacement<br />

mapping) usando texturas convencionais ou texturas procedurais criadas pelo processador <strong>de</strong> frag-<br />

mentos [Green, 2002]. No processador <strong>de</strong> fragmentos, os atributos <strong>de</strong> cor e profundida<strong>de</strong> dos pixels<br />

po<strong>de</strong>m ser modificados segundo diferentes tipos <strong>de</strong> mapeamento <strong>de</strong> texturas para simulação <strong>de</strong> <strong>de</strong>ta-<br />

lhes <strong>3D</strong> [Policarpo et al., 2005, Krishnamurthy and Levoy, 1996, Tatarchuk, 2006].<br />

Essa geração <strong>de</strong> hardware gráfico programável tem início em 2000 com o lançamento da placa<br />

gráfica NVIDIA GeForce 3 [Lindholm et al., 2001] para o computador Apple Macintosh. No início<br />

<strong>de</strong> 2001, durante o evento MacWorld Expo Tokyo sobre computadores Macintosh, é exibido o filme<br />

<strong>de</strong> curta metragem Luxo Jr., produzido originalmente pela Pixar [Pixar, 2007], mas <strong>de</strong>sta vez sendo

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

Saved successfully!

Ooh no, something went wrong!