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
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
36 Revisão bibliográfica<br />
Fig. 2.5: Diagrama do ambiente geral <strong>de</strong> execução <strong>de</strong> um modificador <strong>de</strong> fragmentos.<br />
2.4.2 Processador <strong>de</strong> fragmentos<br />
O processador <strong>de</strong> fragmentos é responsável pela execução do sha<strong>de</strong>r <strong>de</strong> fragmentos sobre cada<br />
fragmento produzido durante a etapa <strong>de</strong> rasterização. Embora o processador <strong>de</strong> fragmentos seja<br />
algumas vezes chamado simplesmente <strong>de</strong> processador <strong>de</strong> pixels, um fragmento não é necessariamente<br />
um pixel, mas um ponto em coor<strong>de</strong>nadas da tela produzido pelo rasterizador a partir da amostragem<br />
das primitivas. Desse modo, o uso <strong>de</strong> multi-amostragem po<strong>de</strong> produzir vários fragmentos para cada<br />
pixel, e a cor final do pixel po<strong>de</strong>r ser a combinação das cores <strong>de</strong>sses fragmentos.<br />
Cada fragmento contém atributos associados aos vértices da saída do processador <strong>de</strong> vértices, tais<br />
como valores <strong>de</strong> cores, coor<strong>de</strong>nadas <strong>de</strong> textura e atributos <strong>de</strong>finidos pela aplicação. Esses atributos<br />
são interpolados a partir dos vértices segundo o mo<strong>de</strong>lo <strong>de</strong> interpolação escolhido. O processador <strong>de</strong><br />
fragmentos é responsável pela <strong>de</strong>terminação da cor final do fragmento e, opcionalmente, seu valor <strong>de</strong><br />
profundida<strong>de</strong>. As tarefas do fluxo <strong>de</strong> ren<strong>de</strong>rização subseqüentes ao processadores <strong>de</strong> fragmentos são<br />
as mesmas do fluxo <strong>de</strong> função fixa.<br />
Quando um processador <strong>de</strong> fragmentos é utilizado, as etapas <strong>de</strong> amostragem e combinação <strong>de</strong> tex-<br />
turas do fluxo <strong>de</strong> função fixa são <strong>de</strong>sabilitadas. As <strong>de</strong>mais funcionalida<strong>de</strong>s permanecem habilitadas,<br />
tais como uso do mo<strong>de</strong>lo <strong>de</strong> interpolação (flat ou smooth), teste <strong>de</strong> opacida<strong>de</strong>, teste <strong>de</strong> profundida<strong>de</strong>,<br />
teste <strong>de</strong> estêncil, combinação <strong>de</strong> valores <strong>de</strong> fragmentos no frame buffer, dithering e cálculo <strong>de</strong> neblina.<br />
O ambiente <strong>de</strong> execução <strong>de</strong> um sha<strong>de</strong>r <strong>de</strong> fragmentos é aquele mostrado na figura 2.5. Assim<br />
como no ambiente utilizado pelos sha<strong>de</strong>rs <strong>de</strong> vértices, sha<strong>de</strong>rs <strong>de</strong> fragmentos trabalham com um<br />
conjunto <strong>de</strong> registradores <strong>de</strong> entrada, saída, registradores temporários e constantes. O ambiente <strong>de</strong><br />
execução em GPUs atuais também fornece um registrador <strong>de</strong> contagem <strong>de</strong> laços, um registrador <strong>de</strong>