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.
2.3 Evolução do hardware gráfico 25<br />
CPU para preparar os triângulos para a rasterização. As primitivas só po<strong>de</strong>riam ser processadas pelo<br />
hardware gráfico se fossem previamente convertidas em trapézios <strong>de</strong>generados, alinhados em coor-<br />
<strong>de</strong>nadas da tela. Tal processo <strong>de</strong>veria ser feito em software, o que prejudicava o <strong>de</strong>sempenho geral<br />
<strong>de</strong> ren<strong>de</strong>rização. Com exceção do fluxo <strong>de</strong> transformação e iluminação <strong>de</strong> geometria, a placa pos-<br />
suía funcionalida<strong>de</strong>s <strong>de</strong> rasterização equivalentes a um sistema SGI RealityEngine. A <strong>3D</strong>fx tornou-se<br />
rapidamente lí<strong>de</strong>r na indústria <strong>de</strong> hardware gráfico <strong>de</strong> PCs graças a sua estratégia <strong>de</strong> fornecer uma<br />
API po<strong>de</strong>rosa e ao mesmo tempo bem documentada (porém proprietária) para trabalhar em conjunto<br />
com suas placas: a API Gli<strong>de</strong> [<strong>3D</strong>fx, 1997]. As placas <strong>3D</strong>fx predominaram até 1999 quando então o<br />
OpenGL e a API Direct<strong>3D</strong> se tornaram as APIs <strong>de</strong>finitivas para as placas utilizadas por concorrentes<br />
importantes como a ATI Technologies, Inc. [ATI, 2007a], Matrox e NVIDIA.<br />
O <strong>de</strong>senvolvimento das placas gráficas para PCs segue a evolução da API Direct<strong>3D</strong>, da Microsoft.<br />
Em 1995, a Microsoft lança o Windows 95 Games SDK, um conjunto <strong>de</strong> APIs <strong>de</strong> baixo nível para<br />
o <strong>de</strong>senvolvimento <strong>de</strong> jogos e aplicações multimídia <strong>de</strong> alto <strong>de</strong>sempenho. Em 1996, seu nome é<br />
modificado para DirectX e sua segunda e terceira versões são disponibilizadas em junho e setembro<br />
<strong>de</strong>sse mesmo ano. Entre as APIs contidas no DirectX, o Direct<strong>3D</strong> é concebido como a API para<br />
uso <strong>de</strong> aceleradores gráficos <strong>3D</strong> utilizando o mesmo fluxo <strong>de</strong> ren<strong>de</strong>rização especificado no OpenGL.<br />
Embora naquela época a API da Microsoft fosse duramente criticada por sua arquitetura <strong>de</strong>masiada-<br />
mente confusa e mal projetada 1 , ela começa a se tornar a API mais utilizada para <strong>de</strong>senvolvimento <strong>de</strong><br />
jogos, uma vez que novas versões começam a ser divulgadas em intervalos mais curtos que aqueles<br />
do OpenGL, cujos aprimoramentos <strong>de</strong>pen<strong>de</strong>m da adição <strong>de</strong> novas extensões <strong>de</strong>liberadas pelo comitê<br />
ARB. Cada nova versão do Direct<strong>3D</strong> experimenta modificações profundas <strong>de</strong> projeto e vários apri-<br />
moramentos.<br />
Em 1997 é lançado o DirectX 5 (por motivos comerciais, o DirectX 4 nunca foi disponibilizado e<br />
tornou-se o próprio DirectX 5), acompanhando as primeiras placas capazes <strong>de</strong> ren<strong>de</strong>rizar triângulos<br />
em geral, tais como a NVIDIA Riva 128 e a ATI Rage Pro. A Riva 128 não atinge a mesma qualida<strong>de</strong><br />
<strong>de</strong> imagem produzida pelas placas <strong>3D</strong>fx, mas ultrapassa as placas Voodoo em várias medições <strong>de</strong> <strong>de</strong>-<br />
sempenho. Ainda assim, o fluxo <strong>de</strong> processamento <strong>de</strong> geometria é inexistente e a CPU é responsável<br />
por calcular todas as transformações geométricas e interpolações dos atributos <strong>de</strong> vértices ao longo<br />
das arestas para cada triângulo transformado. Em outras palavras, a CPU é responsável por interpolar<br />
as coor<strong>de</strong>nadas X, Y e Z (em coor<strong>de</strong>nadas da tela), a componente RHW (Reciprocal Homogeneous<br />
W: valor recíproco da coor<strong>de</strong>nada homogênea, utilizada na correção <strong>de</strong> perspectiva durante a textu-<br />
rização), as coor<strong>de</strong>nadas <strong>de</strong> textura, as componentes <strong>de</strong> cor especular, <strong>de</strong> cor da neblina e valores <strong>de</strong><br />
1 Em 1996, John Carmack, <strong>de</strong>senvolvedor do jogo Doom (id Software), criticou publicamente a arquitetura do Direct<strong>3D</strong><br />
e sugeriu que a Microsoft apoiasse o OpenGL. De forma semelhante, um artigo da revista Game Developer Magazine, <strong>de</strong><br />
abril-maio <strong>de</strong> 1997 e assinada por Chris Hecker, analisava as duas APIs e concluía que a Microsoft <strong>de</strong>veria abandonar o<br />
Direct<strong>3D</strong> e usar o OpenGL [Hecker, 1997].