Placas de vídeo 3D, uma introdução

Placas de vídeo 3D, uma introdução

Depois do processador, memória e HD, a placa de vídeo é provavelmente o componente mais importante do PC. Originalmente, as placas de vídeo eram dispositivos simples, que se limitavam a mostrar o conteúdo da memória de vídeo no monitor. A memória de vídeo continha um simples bitmap da imagem atual, atualizada pelo processador, e o RAMDAC (um conversor digital-analógico que faz parte da placa de vídeo) lia a imagem periodicamente e a enviava ao monitor.

A resolução máxima suportada pela placa de vídeo era limitada pela quantidade de memória de vídeo. Na época, memória era um artigo caro, de forma que as placas vinham com apenas 1 ou 2 MB. As placas de 1 MB permitiam usar no máximo 800×600 com 16 bits de cor, ou 1024×768 com 256 cores. Estavam limitadas ao que cabia na memória de vídeo.

Esta da foto a seguir é uma Trident 9440, uma placa de vídeo muito comum no início dos anos 90. Uma curiosidade é que ela foi uma das poucas placas de vídeo “atualizáveis” da história. Ela vinha com apenas dois chips de memória, totalizando 1 MB, mas era possível instalar mais dois, totalizando 2 MB. Hoje em dia, atualizar a memória da placa de vídeo é impossível, já que as placas utilizam módulos BGA, que podem ser instalados apenas em fábrica.

index_html_3fee6be2
Trident 9440

Em seguida, as placas passaram a suportar recursos de aceleração, que permitem fazer coisas como mover janelas ou processar arquivos de vídeo de forma a aliviar o processador principal. Esses recursos melhoram bastante a velocidade de atualização da tela (em 2D), tornando o sistema bem mais responsivo.

Finalmente, as placas deram o passo final, passando a suportar recursos 3D. Imagens em três dimensões são formadas por polígonos, formas geométricas como triângulos e retângulos em diversos formatos. Qualquer objeto em um game 3D é formado por um grande número destes polígonos, Cada polígono tem sua posição na imagem, um tamanho e cor específicos. O “processador” incluído na placa, responsável por todas estas funções é chamado de GPU (Graphics Processing Unit, ou unidade de processamento gráfico).

index_html_m3efeb3a
Quase todo o processamento da imagem em games 3D é feito pela placa 3D

Para tornar a imagem mais real, são também aplicadas texturas sobre o polígonos. Uma textura nada mais é do que uma imagem 2D comum, aplicada sobre um conjunto de polígonos. O uso de texturas permite que um muro realmente tenha o aspecto de um muro de pedras, por exemplo, já que podemos usar a imagem de um muro real sobre os polígonos.

O uso das texturas não está limitado apenas a superfícies planas. É perfeitamente possível moldar uma textura sobre uma esfera, por exemplo. Quanto maior o número de polígonos usados e melhor a qualidade das texturas aplicadas sobre eles, melhor será a qualidade final da imagem. Veja um exemplo de aplicação de texturas:

index_html_m704ac07e
Polígonos e imagem finalizada (cortesia da nVidia)

O processo de criação de uma imagem tridimensional é dividido em três etapas, chamadas de desenho, geometria e renderização. Na primeira etapa, é criada uma descrição dos objetos que compõem a imagem, ou seja: quais polígonos fazem parte da imagem, qual é a forma e tamanho de cada um, qual é a posição de cada polígono na imagem, quais serão as cores usadas e, finalmente, quais texturas e quais efeitos 3D serão aplicados. Depois de feito o “projeto” entramos na fase de geometria, onde a imagem é efetivamente criada e armazenada na memória da placa 3D.

Ao final da etapa de geometria, todos os elementos que compõem a imagem estão prontos. O problema é que eles estão armazenados na memória da placa de vídeo na forma de um conjunto de operações matemáticas, coordenadas e texturas, que ainda precisam ser transformadas na imagem que será exibida no monitor. É aqui que chegamos à parte mais complexa e demorada do trabalho, que é a renderização da imagem.

Essa última etapa consiste em transformar as informações armazenadas na memória em uma imagem bidimensional que será mostrada no monitor. O processo de renderização é muito mais complicado do que parece; é necessário determinar (a partir do ponto de vista do espectador) quais polígonos estão visíveis, aplicar os efeitos de iluminação adequados, etc.

Apesar de o processador também ser capaz de criar imagens tridimensionais, trabalhando sozinho ele não é capaz de gerar imagens de qualidade a grandes velocidades (como as demandadas por jogos complexos), pois tais imagens exigem um número absurdo de cálculos e processamento. Para piorar ainda mais a situação, o processador tem que ao mesmo tempo executar várias outras tarefas relacionadas com o aplicativo.

As placas aceleradoras 3D, por sua vez, possuem processadores dedicados, cuja função é unicamente processar as imagens, o que podem fazer com uma velocidade incrível, deixando o processador livre para executar outras tarefas. Com elas, é possível construir imagens tridimensionais com uma velocidade suficiente para criar jogos complexos a um alto frame-rate.

index_html_7aa67019
GeForce 8800 GTS

Depois dos jogos e aplicativos profissionais, os próximos a aproveitarem as funções 3D das placas de vídeo foram os próprios sistemas operacionais. A idéia fundamental é que, apesar de toda a evolução do hardware, continuamos usando interfaces muito similares às dos sistemas operacionais do final da década de 80, com janelas, ícones e menus em 2D. Embora o monitor continue sendo uma tela bidimensional, é possível criar a ilusão de um ambiente 3D, da mesma forma que nos jogos, permitindo criar todo tipo de efeitos interessantes e, em alguns casos, até mesmo úteis ;).

No caso do Windows Vista temos o Aero, enquanto no Linux a solução mais usada é o AIGLX, disponível na maioria das distribuições atuais:

index_html_m753796b2
Efeito de cubo do AIGLX, que permite alternar entre diversos desktops virtuais

Com a evolução das placas 3D, os games passaram a utilizar gráficos cada vez mais elaborados, explorando os recursos das placas recentes. Isso criou um círculo vicioso, que faz com que você precise de uma placa razoavelmente recente para jogar qualquer game atual.

As placas 3D atuais são praticamente um computador à parte, pois além da qualidade generosa de memória RAM, acessada através de um barramento muito mais rápido que a do sistema, o chipset de vídeo é muito mais complexo e absurdamente mais rápido que o processador principal no processamento de gráficos. O chipset de uma GeForce 7800 GT, por exemplo, é composto por 302 milhões de transistores, mais do que qualquer processador da época em que foi lançada.

As placas 3D offboard também incluem uma quantidade generosa de memória de vídeo (512 MB ou mais nos modelos mais recentes), acessada através de um barramento muito rápido. O GPU (o chipset da placa) é também muito poderoso, de forma que as duas coisas se combinam para oferecer um desempenho monstruoso.

Com a introdução do PCI Express, surgiu também a possibilidade de instalar duas, ou até mesmo quatro placas, ligadas em SLI (no caso das placas nVidia) ou CrossFire (no caso das placas AMD/ATI), o que oferece um desempenho próximo do dobro (ou do quádruplo) obtido por uma placa isolada. Aqui, por exemplo, temos duas placas AMD/ATI X1950 em modo CrossFire:

index_html_77ab3c9f
Duas placas AMD/ATI X1950 em modo CrossFire

Longe do mundo brilhante das placas de alto desempenho, temos as placas onboard, que são de longe as mais comuns. Elas são soluções bem mais simples, onde o GPU é integrado ao próprio chipset da placa-mãe e, em vez de utilizar memória dedicada, como nas placas offboard, utiliza parte da memória RAM principal, que é “roubada” do sistema.

Mesmo uma placa antiga, como a GeForce 4 Ti4600, tem 10.4 GB/s de barramento com a memória de vídeo, enquanto ao usar um pente de memória DDR PC 3200, temos apenas 3.2 GB/s de barramento na memória principal, que ainda por cima precisa ser compartilhado entre o vídeo e o processador principal. O processador lida bem com isso, graças aos caches L1 e L2, mas a placa de vídeo realmente não tem para onde correr. É por isso que os chipsets de vídeo onboard são normalmente bem mais simples: mesmo um chip caro e complexo não ofereceria um desempenho muito melhor, pois o grande limitante é o acesso à memória.

De uma forma geral, as placas de vídeo onboard (pelo menos os modelos que dispõem de drivers adequados) atuais atendem bem às tarefas do dia-a-dia, com a grande vantagem do custo. Elas também permitem rodar os games mais antigos, apesar de, naturalmente, ficarem devendo nos lançamentos recentes. As placas mais caras são reservadas a quem realmente faz questão de rodar os games recentes com uma boa qualidade. Existem ainda modelos de placas 3D específicos para uso profissional, como as nVidia Quadro.

Sobre o Autor

Redes Sociais:

Deixe seu comentário

X