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.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].

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

Saved successfully!

Ooh no, something went wrong!