Placas de vídeo e monitores - parte 2/2

Autor: Laércio Vasconcelos
Janeiro/2004
   

   

Parte 1

Copyright (C)
Laércio Vasconcelos Computação

Nenhuma parte deste site pode ser reproduzida sem o consentimento do autor. Apenas usuários individuais estão autorizados a fazer download ou listar as páginas e figuras para estudo e uso próprio e individual, sem fins comerciais.

Usando múltiplos monitores

A partir da versão 98, o Windows passou a apresentar um recurso bastante interessante e em certos casos extremamente útil, que é a possibilidade de instalação simultânea de várias placas de vídeo e vários monitores. Instalar, por exemplo, dois monitores, pode ser uma opção mais prática e econômica que comprar um monitor de tela grande.

Para usar este recurso temos que fazer o seguinte:

1) Uma placa de vídeo deve ser instalada e estar funcionando corretamente
2) Instalar a segunda placa de vídeo e reiniciar o computador
3) Configurar o Windows para utilizar a segunda placa de vídeo

Ambas as placas precisam ser PCI, sendo que uma delas pode ser AGP. Quando o Windows for inciali­zado, apenas o primeiro monitor funcionará. Deve ser feita a instalação do drivers da segunda placa, exatamente como fazemos para instalar uma placa única. Esta instalação poderá ocorrer de forma automática ou manual.

Devemos consultar o Gerenciador de Dispositivos para buscar informações vi­sando corrigir eventuais problemas. Na guia Geral da placa com problemas existirá uma descrição da sua causa. Algumas placas podem apresentar conflito com o gerenciador EMM386.EXE. Ao removermos este gerenciador do CONFIG.SYS, o problema será eliminado.

Depois que a segunda placa de vídeo estiver corretamente instalada, a guia Confi­gurações do quadro de propriedades de vídeo terá um aspecto completamente diferente (figura 38). Antes de definir a resolução, o número de cores e usar o botão Avançadas, temos que selecionar a placa de vídeo a ser utilizada, através do campo Vídeo (Windows XP) ou Exibir (Windows 98/ME).

Figura 38

A guia de Configurações de vídeo, quando existem duas placas de vídeo instaladas.

 

 

 

Cada uma das placas poderá operar com seu próprio modo gráfico, ou seja, com resolução e número de cores diferentes. Devemos marcar também a opção Estender a área de trabalho do Windows a este monitor. Isto faz com que a tela do segundo moni­tor funcione como continuação da tela do primeiro. Quando o cursor do mouse é mo­vimentado até a borda direita do primeiro monitor, aparecerá imediatamente na borda esquerda do segundo monitor. Ao arrastarmos uma janela no primeiro monitor para a direita, o trecho que desaparece na borda direita aparecerá entrando pela parte es­querda do segundo monitor (figura 39).

Figura 39

A área de trabalho ocupa os dois monitores.

Requisitos para o uso de múltiplos monitores

Você pode instalar mais de duas placas de vídeo, estendendo o processo aqui apresen­tado. A Microsoft afirma que este recurso foi testado com até 9 monitores. O aumento do número de monitores ficará vinculado ao número de slots livres para ex­pansão de novas placas. Apenas placas de vídeo PCI e AGP podem ser utilizadas.

Existem restrições quanto aos modelos de placas de vídeo a serem utiliza­das. Nem todos os modelos suportam a operação em conjunto. É também preciso que as placas de vídeo possuam drivers para o Windows 98 ou superiores, dotados do recurso de funcio­namento com múltiplas placas de vídeo.

Você encontrará no diretório C:\WINDOWS do seu computador (Windows 98, 98SE e XP), o arquivo DISPLAY.TXT. Nele existem várias dicas sobre monitores e placas de vídeo, e ainda uma lista com as marcas e modelos de placas de vídeo testadas pela Microsoft, que dão suporte ao funcionamento de múltiplos monitores. Para uma lista mais atualizada, acesse o site da Microsoft (www.microsoft.com.br) e faça uma busca pela expressão “múltiplos monitores”.

No Windows XP, use Iniciar / Ajuda e suporte e busque pela expressão “Instalar monitores adicionais”. Será exibida uma página com explicações sobre o uso deste recurso, bem como um link para a checagem de dispositivos compatíveis.

Placas de vídeo 3D

Placas 3D não são mais um acessório apenas para os usuários de jogos ou um item sofisticado para os profissionais de computação gráfica. Atualmente todas as placas de vídeo possuem recursos 3D, mesmo as utilizadas nos PCs mais simples. Portanto é uma boa idéia conhecer as funções dessas placas.

O que faz uma placa de vídeo 3D?

A exibição de imagens tridimensionais é muito complexa, principalmente quando é necessário um alto grau de realismo. Imagens tridimensionais são representadas internamente na memória do computador, como uma sucessão de elementos gráfi­cos: polígonos, luzes, texturas e efeitos visuais diversos. Por exemplo, para represen­tar uma casa com móveis, é preciso que o programa mantenha na memória, todos os objetos representados como grupos de polígonos, tipicamente triângulos e retân­gulos.

Qualquer polígono pode ser representado como a junção de um ou mais triângu­los ou retângulos. É preciso armazenar as coordenadas espaciais (X, Y e Z) de cada um dos vértices desses polígonos. Pontos de iluminação também preci­sam ter suas coordenadas armazenadas, pois esta informação é necessária para de­terminar se elementos gráficos aparecerão mais claros ou mais escuros, e ainda para a composição de sombras. Em cada superfície são aplicadas texturas, obtendo as­sim, maior realismo. Uma textura é uma figura bidimensional que é aplicada sobre os polígonos no espaço tridimensional. Por exemplo, o asfalto de uma pista de cor­ridas pode ter aplicado a ele, trechos de imagens obtidos por fotografias frontais de asfalto verdadeiro. Da mesma forma, tijolos podem ser representados por retângulos sobre os quais são aplicadas texturas resultantes de fotografias de tijolos verdadeiros. O principal trabalho de uma placa tridimensional é aplicar as texturas sobre os polígonos, levando em conta as suas coordenadas espaciais. A figura 40 mostra um exemplo de imagem obtida a partir da aplicação de texturas sobre os polígonos no espaço tridimensional.

Figura 40

Texturas são aplicadas sobre os polígonos, formando assim as imagens tridimensionais.

A figura 41 mostra uma tela capturada de um jogo 3D para o modo MS-DOS. Apesar de ser um jogo tridimensional, não utiliza recursos de placas tridimensionais (e por isso funciona com qualquer placa de vídeo).


Clique para ampliar

Figura 41

2D - Cena de um jogo que não possui suporte para placas tridimensionais.

 

 

A parte esquerda da figura mostra o interior de uma sala, com razoável qualidade gráfica. Podemos ver os detalhes do relógio, o banco, e até as texturas dos azulejos da parede. Na parte direita da figura temos uma pa­rede bem próxima. Como não estão sendo usados recursos tridimensionais, não é possível ter alta qualidade nas texturas aplicadas, principalmente a pequenas dis­tâncias. As texturas precisam ser ampliadas, e são representadas por uma série de quadrados de grande tamanho, o que prejudica o realismo. O problema poderia ser resolvido com o uso de texturas de maior resolução, mas aí existiria outro pro­blema mais sério, que é a grande quantidade de processamento envolvido na apli­cação dessas texturas. Para aplicar uma textura de 256x256, seria preciso um poder de processamento 16 vezes maior que o necessário para usar uma textura de 64x64. Especificamente os jogos 3D para MS-DOS foram criados para funcionar com processadores 486, portanto não podem contar com um processador veloz para manipular texturas muito complexas.

Já a figura 42 mostra uma cena do jogo Heavy Metal Fakk2, usando uma placa de vídeo 3D. A parte esquerda da figura é o canto externo de uma parede de tijolos. Podemos observar que esses tijolos, mesmo es­tando próximos do observador, não são formados por uma sucessão de quadrados de grande ta­manho, como no caso da figura 41. Além da placa de vídeo 3D ser capaz de mani­pular texturas de maior resolução, realiza filtragens que fazem com que as imagens fiquem mais realistas, não apresentando efeito de pixelização.


Clique para ampliar

Figura 42

3D - Imagem gerada em uma placa 3D.

 

Vejamos agora algumas das operações realizadas pelos chips gráficos de placas de vídeo tridimensionais. Chips mais sofisticados realizam a maioria dessas operações, enquanto outros mais simples (e mais baratos) não realizam algumas delas. Chips mais simples também podem realizar várias operações 3D, mas em baixa velocidade, o que torna inviável gerar imagens complexas em movimento com boa qualidade e alta resolução.

O papel do processador na geração de imagens 3D

Antes de existirem placas de vídeo tridimensionais, o processador da placa de CPU fazia sozi­nho todo o trabalho:

Um elevado volume de processamento é necessário para realizar todas essas tarefas. Como o processador sozinho tinha que fazer todo o trabalho, acabava sendo difícil exibir imagens tridimensionais em alta qualidade, e em tempo real. Em jogos, queremos que as imagens sejam movimentadas de forma interativa, que os gráficos sejam continuamente recalculados à medida em que os movimentos são feitos. Para que tenhamos uma boa continuidade de movimentos, é preciso ter um número elevado de quadros (frames) exibidos a cada segundo. O ideal é 30 quadros por segundo (30 fps), o que resulta em uma continuidade de movimentos equivalente às das imagens de TV. Para isto é preciso que o processador faça todos os cálcu­los, gere a figura tridimensional e a transfira para a tela, em apenas 33 milésimos de se­gundo. Para conseguir fazer este trabalho em tão pouco tempo, algumas simplifica­ções são tomadas, como o uso de resolução baixa (320x240, por exemplo) e o uso de texturas de baixa resolução (32x32).

As placas de vídeo 3D vieram para ajudar o processador na tarefa de gerar as ima­gens tridimensionais. Realizam por hardware a aplicação de texturas, levam em conta o nível de iluminação ponto a ponto, bastando saber qual é o nível de ilumi­nação em cada vértice de cada triângulo. Desta forma, o processador só precisa fazer cálculos relativos aos vértices, e todos os demais pontos são calculados pelo chip gráfico. Ainda assim o processador precisa realizar algumas tarefas muito importantes, antes de passar o restante do trabalho para o chip grá­fico:

a) Cálculo das coordenadas dos vértices

À medida em que o ponto de vista se movimenta em uma figura, é preciso recalcu­lar as coordenadas relativas para cada vértice. Esta tarefa usa intensamente o pro­cessador aritmético existente dentro do processador. Para esses cálculos, o processador deve ter uma unidade de ponto flutuante de alto desempenho, mas instruções especiais como as das tecnologias 3D Now (AMD) e SSE (Pentium III/4 e Athlon XP) aceleram bastante este trabalho.

b) Eliminação de partes ocultas

Quando um elemento está localizado na frente de outros elementos, o processador precisa determinar quais serão mostrados, e quais ficarão escondidos.

c) Cálculo de intensidade luminosa

A intensidade de luz que chega a cada polígono depende de vários fatores, como a distância ao foco de luz e os ângulos formados entre a superfície do polígono e as linhas que vão ao ponto luminoso e ao ponto de observação. Esses cálculos preci­sam ser feitos para serem depois enviados ao chip gráfico, que fará a aplicação das texturas levando em conta a luminosidade.

Como vemos, apesar do chip gráfico fazer um trabalho pesado na formação das imagens, processando pixel por pixel, ainda é importante ter um processador veloz para fazer todos os cálculos tridimensionais.

A seguir mostraremos quais são as principais funções realizadas pelos processadores 3D encontrados nas placas de vídeo modernas.

Texture Mapping

Esta é a principal função de um chip gráfico, mesmo os mais simples. A memória de vídeo armazena, além da imagem a ser exibida, imagens quadrangulares (ex: 256x256) que representam as texturas a serem aplicadas sobre os triângulos ou retângulos. A figura 43 mostra algumas das milhares de texturas utilizadas em um jogo 3D (Heavy Metal Fakk2). Este jogo usa texturas de vários tamanhos, como 256x256, 128x256 e 128x128. Note que existem texturas que representam paredes, janelas, portas, telhados, madeira, etc.


Clique para ampliar

Figura 43

Várias texturas utilizadas em um jogo 3D.

 

Esta aplicação envolve uma correspondência entre os pontos da textura e os pontos dos triângulos aplicados na tela. Nos pontos mais próximos do observador, os pixels da textura precisam ser “esticados”, e nos pontos mais afastados, precisam ser “encolhidos”. Cada pixel de uma textura poderá ser representado por um grupo de pixels na imagem final, quando está mapeado sobre um elemento muito próximo. Podemos constatar este efeito na figura 44, que mostra uma janela vista em perspectiva. Na sua parte esquerda, os pixels das tex­turas são representados por quadriláteros de maior tamanho. Nesta mesma superfí­cie, porém em pontos mais distantes, esses quadriláteros têm tamanho menor. A figura mostra ainda, à direita, o detalhe destacado.


Clique para ampliar

Figura 44

Renderização sem filtragem.

 

 

Em pontos localizados a distâncias maiores, um pixel na tela pode representar uma combinação de vários pixels da mesma textura. Em pontos mais próximos, ocorre o inverso, ou seja, um pixel da textura é mapeado em vários pixels na tela.

Antigos programas gráficos 3D para MS-DOS, que funcionavam em PCs 486 sem usar placas 3D, faziam a renderização como na figura 44. Também desta forma operavam as primeiras placas 3D, a única diferença é que eram mais rápidas e podiam usar texturas maiores e em maior número, mas o efeito de pixelização era similar ao encontrado nos programas antigos. A seguir surgiram placas 3D mais sofisticadas, capazes de eliminar este efeito visual indesejável. Elas aplicam técnicas de processamento de imagem chamadas de filtragem bidimensional. Consistem em utilizar interpolações para desfazer os efeitos de pixelização. A figura 45 mostra a mesma imagem, com aplicação de filtragem. As placas 3D modernas fazem dois tipos de filtragem: bilinear e trilinear.


Clique para ampliar

Figura 45

Imagem renderizada com filtragem.

 

 

 

Mip Mapping

Representar texturas de tamanhos variados é muito difícil. Como vimos, quando o elemento sobre o qual a textura deve ser aplicada está muito próximo do observador, a tex­tura deve ser “esticada”. Quando o elemento está muito longe, a textura deve ser “encolhida”. Essas transformações demandam cálculos, o que tende a tomar tempo do chip gráfico. Uma forma de reduzir esta quantidade de cálculos é manter arma­zenadas na memória de vídeo, várias versões da mesma textura, com tamanhos variados. Desta forma, dependendo da distância e do tamanho do objeto sobre o qual a textura deve ser aplicada, é usada uma versão de tamanho apropriado.

Bi-linear / Tri-linear Filtering

Essas técnicas utilizam cálculos para misturar as cores dos pixels das texturas, resultando em um efeito visual me­lhor. As figuras 44 e 45 mostram a diferença entre uma imagem sem filtragem e uma com filtragem. Os dois tipos de filtragem usados nas placas de vídeo são o bilinear e o trilinear. A filtragem trilinear demanda mais cálculos e produz resultados um pouco melhores. Todas as placas 3D modernas fazem filtragem bilinear, mas nem todas fazem a filtragem trilinear.

A figura 46 mostra a diferença entre as filtragens bilinear e trilinear. Normalmente olhando a tela à distância, dificilmente percebemos a diferença. Apenas olhando atentamente nos detalhes das texturas podemos perceber a maior qualidade da filtragem trilinear. Esta figura mostra uma pequena área de 70x120 pixels, extraída de uma cena 3D com 1024x768.


Clique para ampliar

Figura 46

Filtragens bilinear e trilinear.

A diferença entre os dois tipos de filtragem é que a trilinear utiliza informações re­sultantes do MIP Mapping para realizar uma filtragem melhor e mais rápida. Os jogos 3D possuem comandos para escolher o tipo de filtragem a ser usada. Em alguns casos, escolher a filtragem bilinear ao invés da trilinear pode melhorar o desempenho, algo que pode ser tentado quando a movimentação está lenta.

Anti-Aliasing

Esta técnica nada mais é que a aplicação de filtragem, já explicada acima. Seu obje­tivo é acabar com o efeito de pixelização. Em todas as placas 3D modernas, este efeito de “suavização” é feito no interior das texturas, como vemos na figura 47. Para elementos próximos, a filtragem acaba com os grandes quadriláteros que se formam na imagem. Para elementos situados a médias distâncias, a filtragem acaba com efeitos que fazem retas aparecerem como escadas. A figura 47 mostra o melhoramento que a filtragem faz sobre este efeito de “escada”, visualmente indesejável, que prejudica o realismo da imagem.

Figura 47

O efeito “escadinha” (jagging) ë eliminado com a filtragem no interior de uma textura.

 

Observe que a parede inteira na figura 47 é uma só textura, portanto todo o seu interior é suavizado. Infelizmente a maioria das placas 3D não é capaz de realizar o anti-aliasing na fronteira entre duas texturas diferentes.


Clique para ampliar

Figura 48

Nesta imagem não está aplicado o anti-aliasing na fronteira entre texturas diferentes.

 

 

A figura 48 mostra uma imagem gerada pelo jogo Star Wars Rogue Squadron, sem a ativação do anti-aliasing entre texturas diferentes. Podemos ver no detalhe, o efeito indesejável de serrilhamento no contorno da asa da nave. A maioria das placas 3D apresenta efeitos semelhantes, sempre na fronteira entre dois elementos diferentes. A suavização através de filtragem é feita apenas no interior das texturas (observe que a superfície da asa está perfeita), mas nas fronteiras ocorre o problema.


Clique para ampliar

Figura 49

Mesma imagem, agora com aplicação de anti-aliasing entre texturas diferentes.

 

 

A figura 49 mostra como fica a imagem quando é usado o anti-aliasing. Funciona como uma filtragem que atua sobre a fronteira entre texturas diferentes (lembrando que cada textura está aplicada sobre um polígono). A qualidade da imagem é muito melhor. Este recurso está presente apenas nas placas mais sofisticadas (dentro de alguns anos estará presente em todas elas). É usada por chips gráficos de mais alto desempenho, já que esta suavização demanda muitos cálculos.

Figura 50

Ativando o anti-aliasing entre texturas diferentes em uma placa equipada com o chip Nvidia Gforce2 MX.

 

 

 

Os polupares chips Nvidia TNT2 e Voodoo 3 não possuem este recurso. Podemos encontrá-lo por exemplo nos chips da família Nvidia Gforce 2. A figura 50 mostra a ativação do anti-alising em uma placa com o chip Gforce 2 MX. A ajuste pode ser encontrado no quadro de propriedades de vídeo.

Dithering, imagens de 16 e 32 bits

O dithering é uma técnica bastante antiga, não usada apenas em placas 3D. Consiste em misturar pontos de diversas cores, com o objetivo de simular um número maior de cores. Este é o método usado na representação de fotos em arquivos GIF, com apenas 256 cores. Desta forma, com poucas cores disponíveis, o chip gráfico simula um número de cores muito maior. Placas 3D mais modestas operam com 16 bits por pixel, totalizando 65.536 cores. Imagens geradas neste modo apresentam superfícies com variações de cor através de faixas, e não contínuas. Também utilizam o dithering para simular um número maior de cores, usando as poucas cores disponíveis. Melhor ainda é quando a placa opera com 32 bits, possibilitando gerar cores mais reais, sem lançar mão do dithering. A figura 51 mostra um pequeno trecho de uma cena em duas situações. À esquerda temos a imagem com 16 bits e dithering, e à direita temos a imagem com 32 bits. No detalhe destacado podemos perceber na versão de 16 bits, a mistura de pixels de cores diferentes, mistura esta que não é necessária com o uso de 32 bits.


Clique para ampliar

Figura 51

Imagens com 16 bits/dithering e com 32 bits.

 

 

 

Apenas olhando mais atentamente conseguimos perceber a diferença entre imagens de 16 e de 32 bits. Os jogos normalmente permitem ao usuário escolher o modo a ser usado. Em geral usar 16 bits resulta em um desempenho duas vezes maior que usar 32 bits. Portanto usar 16 bits é uma simplificação visual aceitável para resolver problemas de baixo desempenho.

A figura 50 mostra ainda mais um efeito indesejável, que é a pixelização que ocorre na transição entre texturas diferentes. O contorno da personagem é claramente apresentado na forma de escada, problema que a filtragem normal (que atua apenas no interior das texturas) não resolve, por melhor que seja a placa de vídeo. As filtragens bilinear e trilinear ocorrem apenas no interior de cada textura, mas não é feita nas suas extremidades. O efeito é melhorado quando usamos uma resolução mais elevada, mas isto só pode ser feito quando a placa e o processador são de alto desempenho. Como já discutimos, as placas de vídeo mais sofisticadas possuem o recurso anti-aliasing, que faz a suavização nas fronteiras entre texturas diferentes.


Clique para ampliar

Figura 52

A mesma cena da figura 51, agora usando anti-aliasing.

 

 

 

Na figura 52 vemos dois melhoramentos que podem ser feitos para melhorar o efeito de serrilhamento já mostrado na figura 51. Na imagem da esquerda ainda existe serrilhamento, mas menos perceptível, pois foi usada uma resolução maior (1024x768, ao invés de 640x480). Na imagem da direita foi usado também o anti-aliasing. Observe ainda as ampliações das duas imagens, nesta mesma figura. A divisão entre a roupa e a pela da personagem é suavizada em ambos os casos, já que faz parte do interior da textura. Já a divisão entre o braço e o chão aparece serrilhada no detalhe da esquerda e suavizada no detalhe da direita, pois está sendo usando o anti-aliasing, que suaviza a transição entre texturas diferentes. Como vemos, a qualidade da imagem pode ser melhor com o uso desses recursos, mas também é preciso usar uma placa 3D mais sofisticada.

Z-Buffer

Aqui está uma outra função que está presente em todos os chips gráficos, mesmo os mais simples. Trata-se de uma área da memória de vídeo que é usada para manter as coordenadas Z (profundidade) dos elementos gráficos que serão apresentados na tela. Essas informações são calculadas e preenchidas pelo processador, que é o responsável por determinar o posicionamento dos polígonos. Com essas informa­ções, o chip gráfico pode realizar diversas funções que dependem da informação de distância do observador. O chip gráfico pode também ajudar o processador na ta­refa de determinar quais são os elementos visíveis e quais têm visão obstruída por outros elementos.

Figura 53

O papel do z-buffer.

 

 

 

Na figura 53 vemos a mesma imagem em duas versões: sem e com o z-buffer. Quando o z-buffer está desativado, o posicionamento de imagens pode não funcionar corretamente, fazendo com que elementos que deveriam estar atrás aparecem na frente. Na versão sem o uso do z-buffer na figura 53, parece que a carro está dentro da cerca, quando na verdade a cerca passa à esquerda do carro.

Double Buffering

O buffer aqui referido é a área de memória de vídeo que é representada na tela. Placas que não possuem este recurso fazem as alterações na própria imagem que aparece na tela. Desta forma, modifica­ções intermediárias podem ser vistas momentaneamente à medida em que a figura é redesenhada, o que é uma imperfeição visual. Com o uso do buffer duplo, este problema não ocorre. Enquanto um buffer está sendo exibido na tela, o outro está sendo calculado e preenchido com a nova posição da figura. Terminado o preen­chimento, este segundo buffer passa a ser exibido na tela, já pronto. O primeiro buffer será agora usado para um novo preenchimento. Dessa forma, os dois buffers ficam se alternando na tela, um sendo exibido enquanto o outro está sendo recalcu­lado.

Alpha Blending

Este recuso serve para criar objetos transparentes, como água vidros coloridos, etc. Também pode ser usado para criar efeito de ne­blina. Em jogos de corridas nos quais existe grande realismo na representação dos carros, a pintura pode ser cromada com a aplicação desta técnica. Também pode ser usado para criar efeitos visuais de ofuscamento por luzes, como as de holofotes, faróis de carros e do sol, como mostra a figura 54.


Clique para ampliar

Figura 54

Um dos vários efeitos que podem ser criados com o Alpha Blending.

 

 

 

Gourad Shading

A figura 55 mostra esta técnica. Uma das etapas da criação de gráficos 3D é o preenchimento de tonalidades sobre os polígonos que formam as figuras, com o objetivo de criar diferentes graus de luminosidade. Isto dá à imagem, o aspecto de tridimensionalidade. A técnica de sombreamento mais simples consiste em preencher um polígono inteiro com uma tonalidade. Isso é o que chamamos de flat shading. O problema é que apesar de simples e de rápida aplicação, este processo deixa transparecer que o sólido é formado por uma série de polígonos, que ficam visivelmente destacados.

Figura 55

Flat shading e Gourad shading.

 

 

 

Uma técnica mais avançada, utilizada pelas placas 3D modernas, é a chamada Gourad shading. Consiste em utilizar os valores nos vértices como referência para interpolar os valores de todos os pixels no interior do polígono. A tonalidade varia linearmente, e assim não notamos mais a presença dos diversos polígonos, temos a sensação de que os objetos são sólidos com curvatura própria.

Perspective Correction

O aspecto de uma textura não deve ser uniforme em toda a extensão do polígono sobre o qual é aplicada. Deve ser reduzido para as partes localizadas a distâncias maiores. O processador, responsável pelo cálculo das coordenadas dos vérti­ces dos polígonos, tem condições de desenhar cada um deles em perspectiva, mas cabe ao chip gráfico realizar as transformações adequadas também sobre a textura. Imagine que a parede retangular mostrada na figura 56 é um polígono, sobre o qual será apli­cada uma textura formada por tijolos. Graças ao cálculo correto das coordenadas dos vértices, feito pelo processador, a parede aparece com o formato correto. Se a textura fosse aplicada de maneira uniforme, sem levar em conta a perspectiva, o resultado seria ruim, com pouco realismo, como mostra a parte direita da fi­gura. Todos os tijolos apareceriam com o mesmo tamanho, o que não corresponde à realidade. A parte esquerda da figura utiliza correção de perspectiva. Toda a textura é remanejada, sendo comprimida nas partes mais distantes, resultando em maior realismo. A correção de perspectiva está presente em praticamente todas as placas de vídeo 3D (exceto em alguns modelos antigos), e sem ela, a qualidade dos gráficos é muito prejudicada.

Figura 56

Correção de perspectiva.

 

 

 

APIs gráficas: Direct3D, OpenGL e Glide

As primeiras placas 3D tinham um sério problema: falta de uma interface de software padrão. Quando comprávamos uma placa 3D, eram fornecidos alguns programas configurados especificamente para utilizar os recursos desta placa. Eram programas que não funcionavam com outros modelos de placas 3D, placas estas que não eram compatíveis com outros programas 3D. Não existia portanto uma “linguagem” comum entre os programas e as placas, assim o seu uso era muito restrito. Na medida do possível, os fabricantes de placas 3D ajudavam os produtores de software a adaptarem seus programas às suas placas, mas era uma tarefa bastante complexa. Um grande destaque teve a 3DFx, fabricante de chips gráficos de alto desempenho. Criaram um padrão chamado Glide, um conjunto de funções através das quais os programas poderiam ter acesso às funções das suas placas de vídeo. Este tipo de padrão de acesso é o que chamamos de API (Application programming interface). Vários produtores de programas gráficos, sobretudo de jogos, produziram softwares utilizando o Glide, sendo assim as placas equipadas com chips 3DFx fizeram muito sucesso.

Atualmente existem, além da Glide, duas outras APIs bastante difundidas: a Direct3D e a OpenGL. A Direct3D faz parte do pacote DirectX, da Microsoft, e é mais utilizada para jogos. A OpenGL é uma API mais utilizada por programas 3D profissionais, mas recentemente tem sido também muito utilizada também por jogos.

Podemos então encontrar programas 3D específicos para uma dessas três APIs. A maioria dos programas pode operar com pelo menos duas, e alguns podem funcionar com as três. As APIs presentes em um determinado computador dependem da placa de vídeo e dos drivers instalados:

a) Direct3D

Todas as placas de vídeo 3D podem utilizar esta API. Placas de vídeo compatíveis com o Windows devem ter suporte para o Direct3D, a Microsoft obriga que isto ocorra para que o produto possa exibir o logotipo “Designed for Windows”.

b) OpenGL

A maioria das placas de vídeo 3D possuem juntamente com seus drivers, a API OpenGL. Ela é instalada automaticamente durante o processo de instalação da placa de vídeo. Existem algumas placas 3D que não são acompanhadas do OpenGL. Neste caso podemos obter o OpenGL a partir de fabricantes de software especializados. Eles produzem versões compatíveis do OpenGL, capazes de funcionar com a maioria das placas de vídeo do mercado.

c) Glide

Esta API só está presente nas placas de vídeo que utilizam os chips da 3DFx (Voodoo). Tende a desaparecer, já que este fabricante não existe mais. Continuará sendo usada apenas se a Nvidia, que comprou o que sobrou da 3DFx, adotar esta tecnologia, apesar da existência do OpenGL e do Direct3D.

DirectX

Durante o reinado do Windows 3.x e até do Windows 95, criar jogos para o ambiente Windows era uma tarefa bastante ingrata. O Windows não era muito receptivo aos jogos, graças à sua lenta interface gráfica. Era mais rápido movimentar dados na memória de vídeo em baixa resolução, no modo MS-DOS. Até aproximadamente 1997, a maioria dos jogos de ação operavam sob o MS-DOS. A situação começou a mudar quando a Microsoft criou o DirectX, um método padronizado para acesso direto e rápido aos recursos de hardware. Com ele é possível acessar em alta velocidade a memória de vídeo, bem como ter acesso às funções 3D da placa de vídeo. Graças a este padrão, foi possível a criação de milhares de jogos para o ambiente Windows, compatíveis com a maioria das placas 3D do mercado. DirectX é composto de 5 grupos de funções:

a) Direct Draw

É usado para acesso direto à placa de vídeo, em modo bidimensional.

b) Direct 3D

Usado para acesso direto aos recursos tridimensionais das placas de vídeo.

c) Direct Sound

Usado para acesso direto ao hardware da placa de som.

d) Direct Input

Permite acesso direto a dispositivos de entrada, como joystick, teclado e mouse.

e) Direct Play

Usado para acesso direto ao hardware em jogos por modem, rede ou portas seriais.

Periodicamente são lançadas novas versões do DirectX, que são distribuídas pela Microsoft por diversos meios. Um desses meios de distribuição é a Internet, através do endereço http://www.microsoft.com/directx. O próprio Windows é fornecido com o DirectX, e através do recurso Windows Update, você pode obter versões mais novas através da Internet, à medida em que se tornam disponíveis.

Também é possível obter o DirectX juntamente com as placas de vídeo. Essas pla­cas são fornecidas com seus drivers, e ainda com o DirectX. Muitos jogos também são acompanhados do DirectX. Ao final da instalação do jogo ou dos drivers da placa de vídeo, é perguntado se desejamos instalar o DirectX. Em caso de dúvida podemos responder que SIM, pois caso já esteja instalada uma versão mais nova, a instalação de uma versão mais antiga não terá efeito. De qualquer forma, para não perder tempo, é bom saber a versão do DirectX existente no seu computador. Para isso basta executar o programa dxdiag.exe (Iniciar / Executar / dxdiag.exe). Será apresentado um quadro como o da figura 57, no qual podemos conferir a versão do DirectX. Neste exemplo, trata-se da versão 8.1.

Figura 57

Checando a versão do DirectX instalada no computador.

 

 

 

Porque DirectX?

O DirectX é um conjunto de drivers que fazem com que programas possam fazer acessos diretos a dispositivos de hardware, mas de uma forma padronizada, de modo que funcione com qualquer hardware. Jogos para MS-DOS fazem acesso direto ao hardware, mas antes precisam ser configurados, sendo informado o modelo da placa de vídeo e o modelo da placa de som. Os módulos do DirectX permitem o acesso direto ao hardware, sem que para isto os programas precisem saber quais são os modelos das placas instaladas.

Dizemos que os módulos do DirectX são APIs (Application Program Interface). Por exemplo, o Direct3D é uma API através da qual programas podem fazer acessos aos recursos tridimensionais das placas de vídeo. Os jogos, por exemplo, não preci­sam saber qual é o modelo da placa de vídeo instalada, e nem serem configurados em função disso. Esta configuração é deixada para o Direct3D.

Expansão da placa de vídeo

A cada nova safra de placas de vídeo, novos recursos avançados são introduzidos, seduzindo os usuários a realizarem este upgrade. Ao longo dos últimos anos, esses recursos avançados foram:

Muitas vezes temos um PC com um processador veloz, mas o desempenho gráfico deixa a desejar pelo fato de estar sendo usada uma placa de vídeo muito simples.

As placas de video produzidas em meados dos anos 90 em geral permitem fazer a expansão da memória de vídeo, operação que será ensinada no capítulo 27. As placas mais novas, produzidas a partir de 1997, já não oferecem mais este tipo de expansão. O único upgrade que pode ser feito nos sistemas mais novos é mesmo a instalação de uma nova placa de vídeo.

Trocando a placa SVGA

Existem 3 formas de substituir uma placa de vídeo. Mais adiante detalharemos os procedimentos.

1) Simplesmente retirar a placa antiga e conectar a nova. Deixar o Windows detectar a placa nova e instalar seus drivers. Este é o método menos trabalhoso, e quase sempre funciona, mas em certos casos o Windows pode ficar “perdido” com a placa nova.

2) Antes de retirar a placa antiga, mudar sua configuração para VGA padrão. A seguir fazemos a substituição. A nova placa, caso tenha problemas com seus drivers, funcionará como VGA padrão. Pelo menos teremos uma imagem estável na tela, e podemos a seguir providenciar a instalação dos drivers corretos, fornecidos pelo fabricante da placa de vídeo.

3) Podemos desativar a placa antiga através do Gerenciador de Dispositivos, desligar o computador e instalar a placa nova.

Verifique no manual da placa de vídeo se o fabricante recomenda um desses métodos. Se não existir uma recomendação específica, você pode partir para o método 1, que funciona quase sempre. Em caso de problemas, reinstale a placa antiga e utilize os métodos 2 ou 3. Note que no Windows XP o método 2 não é aceito, já que o sistema se recusará a ativar o driver VGA. Use então o método 3 se tiver problemas com o método 1 no Windows XP.

Desativando o vídeo onboard

É possível que ao instalar uma placa de vídeo em um computador com vídeo onboard, a nova placa não funcione. Devemos desativar o vídeo onboard, o que em alguns casos é feito por um jumper da placa de CPU, em outros pelo CMOS Setup. Existem modelos nos quais o vídeo onboard não pode ser desabilitado, e sim configurado como secundário. Isto permitirá o funcionamento correto da nova placa de vídeo. Para isso procure no CMOS Setup um item que indica qual vídeo é o primário e qual é o secundário.

Ativando o driver VGA

Se for necessário utilizar este método, proceda da seguinte forma:

1. Ainda com a placa antiga, ativar o driver de vídeo VGA Standard, através do Gerenciador de Dispositivos, usando o método “Atualizar Driver”.

2. Desligar o computador, retirar a placa antiga e colocar a placa nova. 

3. Executar um boot normal, já com a placa nova, que por enquanto es­tará ope­rando no modo VGA Standard.   

4. Fazer a instalação dos drivers da nova placa.

O driver VGA Standard é universal, podendo operar com qualquer modelo de placa SVGA, apesar de usar a resolução de 640x480 com 16 cores.

Quando a nova placa estiver conectada e o computador for ligado, es­tará em uso o driver VGA Standard, que sendo universal, não apresentará proble­mas com a nova placa. Podemos então passar para os procedimentos de instalação dos drivers SVGA da nova placa, como explicaremos mais adiante.

Observe que por este processo, ativamos o driver VGA Standard ainda com a an­tiga placa instalada. Existem entretanto casos em que isto não pode ser feito. Imagine por exemplo que a antiga placa simplesmente deixou de funcionar, o que impede o uso do computador. Teremos que ativar o driver VGA Standard já com a nova placa instalada, da seguinte forma:

1. Desligamos o PC, retiramos a placa SVGA antiga e instala­mos a nova.

2. Executamos um boot em modo de segurança.

3. No modo de segurança, é provisoriamente ativado o driver VGA Standard, por isto a placa nova poderá funcionar, mesmo não tendo ainda os seus drivers instalados. Podemos agora ativar o modo gráfico VGA Standard.          

4. Executamos um boot normal, e agora podemos proceder à etapa de instalação do driver SVGA da nova placa.          

Desativando a placa de vídeo antiga

Para remover uma placa de vídeo (logicamente, e não fisicamente), usamos o Gerenciador de Dispositivos. No Windows 9x/ME basta clicar sobre a placa e usar o botão Remover. No Windows 2000/XP, aplicamos um clique com o botão direito e no menu apresentado usamos a opção Desinstalar (figura 58).

Figura 58

Desativando uma placa de vídeo no Windows XP.

 

 

 

A remoção dos drivers estará efetivada quando o computador for desligado. Podemos agora desligá-lo (retire-o da tomada), desconectar a placa antiga e conectar a placa nova.

Instalando os drivers da nova placa de vídeo

Normalmente o Windows detectará a nova placa e instalará automaticamente seus drivers. Dependendo do modelo, poderá ser preciso fazer esta instalação manualmente. Certas placas poderão neste ponto ser indicadas simplesmente como VGA padrão. Usamos o comando de atualização de driver, ou então um programa de instalação fornecido pelo fabricante da placa de vídeo.

Note que no Windows XP a detecção e a instalação automática dos drivers é feita alguns segundos após o logon. Antes desses drivers entrarem em ação, o Windows XP utiliza drivers SVGA universais, sem aceleração gráfica. Podemos portanto notar a lentidão da tela. O Windows XP instalará os drivers, mas as alterações só terão efeito depois que o computador for reiniciado. A instalação automática pode ser feita até mesmo quando é executado login como usuário comum, mas para fazer a instalação manual é preciso efetuar o login como usuário administrador.

O processo de atualização manual de driver nas diversas versões do Windows é o seguinte:

1. Clique com o botão direito do mouse em uma parte vazia da área de trabalho do Windows e no menu que é apresentado, escolha a op­ção Propriedades.

2. Será mostrado o quadro de Propriedades de vídeo, no qual devemos selecio­nar a guia Configurações.

3a. No Windows 95, clicamos no botão Alterar tipo de Monitor, e no quadro seguinte usamos o botão Alterar existente a lado do nome da placa de vídeo.

3b. No Windows 98/ME, usamos o botão Avançadas, selecionamos a guia Adaptador e usamos o botão Alterar. No Windows 2000/XP usamos o mesmo processo, chegando à guia Adaptador e clicando no botão Propriedades. Podemos entretanto chegar ao mesmo ponto através do Gerenciador de Dispositivos.

4a. No caso do Windows 95, será apresentada uma lista de marcas e modelos de placas de vídeo. Através dessa lista podemos usar um dos drivers nativos do Windows. Se quisermos instalar o driver existente em um disquete ou CD, usamos o botão Com disco e especificamos o local onde está o driver.

4b. No caso do Windows 98/ME aparece neste momento o Assistente para atualização de driver. A partir daí a atualização do driver da placa de vídeo é similar à de qualquer outro tipo de driver. Podemos neste ponto deixar que o Windows procure o driver automaticamente, ou podemos especificar o local do driver. No caso do Windows 2000/XP, chegamos a quadro de propriedades da placa de vídeo, no qual selecionamos a guia Driver e clicamos em Atualizar Driver.

Figura 59

Assistente para atualização de drivers no Windows ME.

 

 

 

5. Terminada a instalação devemos reiniciar o computador.

Usando um programa de instalação do fabricante

Podemos encontrar ainda processos de instalação de drivers SVGA base­ados na execução de um programa fornecido pelo fabricante. Consulte sempre o manual da placa de vídeo para obter informações precisas a respeito da instalação. Quando o computador é ligado pela primeira vez e nova placa de vídeo é detectada ela pode aparecer como VGA Standard. Depois executamos o software de configuração do fabricante da placa. Este software é responsável pela instalação dos drivers e utilitários que acompanham a nova  placa de vídeo.

A execução de programas de configuração de placas de vídeo é uma operação simples. Normalmente esses programas são chamados de SETUP.EXE e são encontrados em algum diretório do CD-ROM que acompanha a placa. Consulte o manual da placa de vídeo para maiores detalhes.

Exemplos de placas de vídeo e seus desempenhos

Deixamos este capítulo mais para apresentar tecnicamente as placas de vídeo e monitores. Não deixe de ver o capítulo 24, “Melhorando um PC com tudo onboard”. Lá daremos exemplos da instalação de várias placas de vídeo, e compararemos os desempenhos obtidos com cada uma delas. Daremos então destaque maior às operações de upgrade.

Parte 1