|
Muitos anos atrás quando querias jogar um game tudo que você precisava se preocupar era com a dificuldade e talvez com o som. Com o passar dos anos vários recursos gráficos configuráveis foram surgindo (e alguns permanecem escondidos) , até o ponto que existem jogos com telas e mais telas apenas de configuração gráfica com recursos de nomes bem esquisitos.
Várias pessoas se perguntam se essas várias opções são vantajosas ou prejudiciais ao público, eu particularmente acho que muitos jogos possuem mais orgulho em mostrar uma absurda tela de configurações gráficas do que com o jogo em si.
Mas também há de convir que nunca houve uma variação tão grande de hardware, computadores “fechados” não existem mais, até um simples laptop é customizado. E isso faz parte da grande magia dos computadores, a capacidade de personalizar/configurar sua máquina para sua real necessidade.
Por causa disso as software houses preferiram deixar a cargo dos jogadores as decisões gráficas que antes eram tomadas pelos desenvolvedores. Cabe ao jogador de hoje achar o equilíbrio perfeito entre desempenho e qualidade e essa escolha se torna praticamente única.
Entretanto dar ao jogador tanto “poder de decisão” tem seu lado negativo, escolher um recurso sem ter real noção do papel do mesmo pode ser desastroso, e acaba prejudicando tanto o jogo quanto a própria imagem da empresa que o criou.
É isso que vou fazer nesse artigo, tentar tornar essas características menos nebulosas e facilitar sua escolha.
Notei que características como FPS, Resolution, Refresh Rate, Triple Buffering e Vertical Synchronization nunca são explicadas no velho e bom português (ou inglês). Você simplesmente não consegue achar na internet exemplos fáceis do que os diferenciam, vai sempre te empurrar explicações que deixam muito engenheiro gráfico perturbado.
Processo gráfico
Para podermos entender todos os recursos das configurações gráficas precisamos primeiro entender como uma placa de vídeo realmente funciona em conjunto com o resto da sua máquina.
Além disso ser extremamente importante te proporcionará uma ajuda valiosa na hora de avaliar não apenas os jogos mais as próprias placas de vídeo em si. E te ajudará a melhorar muito o desempenho do seu game favorito.
Como eu sei que, assim como eu, vocês odiariam vasculhar páginas e mais páginas de informação, vou tentar ser bem breve e direto nas explicações. Viso apenas a tirar as maiores dúvidas.
Nas etapas abaixo falaremos do que acontece com um jogo a partir do momento em que você clica no ícone até o momento em que você possa realmente jogar.
Primeira Etapa: O game é executado
Quando você aperta duas vezes no ícone do jogo você está dizendo para o seu Sistema Operacional (OS) que procure e execute o executável do jogo (.exe) localizado no seu HD.
Dica de desempenho: Desfragmentar seu HD acelera o processo de execução, o loading. Pois ao invés de você ter todos os arquivos relacionados espalhados pelo HD estão gravados de forma contínua, portanto podem ser lidos com maior rapidez.
Windows Vista: Se você estiver usando UAC e o jogo não iniciar corretamente, você deve escolher “executar como administrador”.
Segunda Etapa: Os arquivos são carregados para a memória RAM
O executável do jogo e os arquivos relacionados precisam ser carregados do seu HD para sua memória de acesso randômico (RAM), essa ação é coordenada pelo seu OS. Isso é feito pois obviamente a memória RAM é bem mais rápida que o HD, e por que seu processador precisa ter acesso direto a essas informações de forma contínua, é preciso que seu CPU realize cálculos onde a velocidade dos parâmetros de entrada sejam contínua, ou pelo menos perto disso, tarefa incapaz de ser realizada pelo seu HD.
A partir daí o seu processador usa suas memórias L1 e L2 para garantir que o mesmo nunca fique “esperando” por informações, as informações saem do HD, vão para a RAM, depois para o cachê L1 e L2 e finalmente para o processador.
Lembre-se que suas memórias nunca poderão carregar todo o jogo, ela sempre retornará para o HD para pegar outras informações. Não existem meios de você “forçar” que todo o conteúdo do jogo para as memórias, mesmo que você tenha uma quantidade absurda, seu OS simplesmente não permite.
Fica a cargo do OS determinar a quantidade máxima que qualquer aplicativo ocupará na sua RAM, o Windows Vista determina por default que nenhum aplicativo pode ocupar mais de 2048MBs de RAM.
A única forma de alterar esse comportamento é através do próprio jogo, se o mesmo tiver comandos específicos para essa finalidade (geralmente é um .cfg ou .ini). Que, se disponível, pode sim alterar esse padrão do OS. Podemos falar disso mais tarde, se vocês acharem relevante.
Dica de desempenho: Aumentar a quantidade de memória RAM da sua máquina geralmente não aumenta seu FPS, apenas serve para “nivelar” seu FPS, torná-lo mais constante e causar menos oscilações. Pois mais informações poderão ser armazenadas nas memórias, consequentemente seu processador “esperará” menos tempo por informações.
Lembre-se que a limitação da quantidade de RAM que uma aplicação pode ocupar é determinada pelo seu OS. Aumentar a RAM só aumentará a média do seu FPS se alguma outra aplicação (ou o OS) já estiver ocupando espaço também.
De forma geral qualquer modificação acima de 2048GB + OS é irrelevante, por isso que pessoas que possuem 3gb ou 4gb de RAM não notam diferença quando partem para 5gb ou mais.
Porém uma recomendação simples é fechar todos os outros aplicativos que estão rodando antes de executar o jogo (menos os de segurança), dessa forma você garantirá que toda memória atual será dedicada ao jogo em si.
Isso também demonstra a importância de seu HD e como ele influencia diretamente o seu desempenho. Pois é ele que alimentará as memórias que por sua vez passará as informações para o processador.
Toda vez que o HD não for capaz de passar informações para a memória a tempo causará um efeito conhecido como “congelamento” o jogo simplesmente da umas travadinhas.
Por causa disso vale a pena salientar a necessidade de ter um HD rápido e desfragmentado. Outro fator essencial para qualquer bom jogador é manter uma boa e estável configuração RAID0. Para saber como montar um sistema RAID0 basta ver o tutorial que fiz aqui.
Windows Vista: Se você tem o SuperFetch ativado no Vista é bem provável que seu jogo favorito já esteja pré-carregado na memória, isso te proporcionará um aumento no desempenho. Porém essa diferença só é realmente notada quando você tem mais de 2GB de RAM.
Terceira Etapa: Os arquivos são executados pelo processador
De forma simplificada, tudo o que uma memória faz é armazenar informações que o processador precisa acessar de forma bem rápida e constante, apenas isso.
O processador é o coração da sua máquina, tudo vai para ele. Os arquivos de um jogo não vão direto do HD para a placa de vídeo; precisa primeiro ser processador e alocado no CPU. A CPU fica constantemente lendo e escrevendo os dados na memória o tempo todo, isso acontece através dos pathways, a BUS da placa mãe.
Porém uma máquina com uma placa de vídeo reduz significativamente o uso do processador, já que o mesmo pode enviar os cálculos gráficos para a placa de vídeo processar, ao invés de fazer tudo isso só. O processador ainda pode realizar tarefas básicas de cálculo gráfico, porém faz de forma mais lenta que uma placa de vídeo, que foi feita unicamente para isso.
Um processador na verdade tem maior capacidade de trabalhar com pontos flutuantes que uma placa de vídeo, porém o CPU trabalha com muito mais casas decimais (precisão) isso torna qualquer cálculo muito mais demorado, porém mais preciso.
Como em um jogo não é necessário uma grande precisão grande parte do trabalho de uma CPU é desnecessária, tornando-a lenta. Sua utilização gráfica será muito mais necessária em cálculos científicos, físicos, construções e espaciais. Mas pontos flutuantes já é assunto para outro tópico...
Tentar rodar um game sem possuir uma placa gráfica dedicada (ou onboard) é até possível, porém ficará tão lento quanto uma apresentação de slide. Sem contar no hardware e instruções de comando que uma GPU possui capaz de processar informações em tempo real, instruções que a CPU não possui.
Dica de desempenho: Sua placa de vídeo só pode trabalhar tão rápido quanto seu processador, nunca mais rápido. Então placas de vídeo top de linha precisam de um processador bom, senão ela sofrerá de gargalo.
Existem até umas placas gráficas Top de linha que simplesmente não conseguem rodar a toda velocidade por que as CPU’s não conseguem alocar informações na mesma velocidade. Nesse caso para ter um sistema balanceado realizar um overclock é a única solução.
Entretanto quando mais exigente graficamente um jogo for, menos importante será a CPU, pois a parte gráfica poderá ser quase totalmente feita pela placa de vídeo.
Mas um processador antigo ainda pode causar gargalo em uma placa de vídeo. Porém, hoje em dia, qualquer CPU acima de um X2 4400+ (ou um E4300) já não causa mais gargalo (a não ser que você tenha um triple-sli de G280).
Quarta Etapa: O driver da placa de vídeo traduz as informações
O sistema operacional coordena a alocação de informações feita pela CPU, ele faz isso através do uso dos drivers da placa gráfica que traduz as informações vindas do CPU para que a placa de vídeo consiga entender. Caso você não possua drivers de vídeo o Windows utilizará drivers genéricos para essa ação, mas de forma bem “crua”.
Dica de desempenho: É por isso é imperativo possuir os drivers oficiais mais atuais. Muitos problemas relacionados ao game na verdade são causados por problemas na instalação do driver ou driver corrompido. Esses problemas são manifestados da mais diversas maneiras, congelamento, travamentos, erros de memória, tudo que você puder imaginar.
Quinta Etapa: Interface de comunicação gráfica transfere as informações
Após a CPU alocar uma grande quantidade de informações gráficas, e dessas informações terem sido “traduzidas” pelo OS em conjunto com os drivers, essas informações são enviadas para a placa gráfica através das portas PCI, AGP ou PCI-E. A importância da porta de comunicação se resume unicamente a velocidade de transmissão dos dados.
A antiga interface PCI transfere dada a 133MB/s; AGP 1x 266MB/s; AGP 8x 2,133MB/s; PCI-E 16x 4,000MB/s.
Lembre-se que esses valores correspondem às velocidades máximas das interfaces. Não existe garantia que toda a banda de comunicação será utilizada, segue o mesmo princípio da banda de internet. Só por que você em uma conexão de 1MB/s não quer dizer que sempre navegará a essa velocidade.
Dica de desempenho: Com o aumento dos detalhes gráficos existe também um grande aumento de informações, logicamente de tráfego de informações. Por isso que a porta AGP está morrendo, chegará um ponto em que os 2,133MB/s simplesmente não serão suficiente para a quantidade de transferência de data.
Obs: São raríssimos os jogos que utilizam mais de 2,133MB/s em sua forma básica, apenas ultrapassam esse valor se você ativar diversos filtros.
Sexta Etapa: As memórias VRAM armazenam as informações
As informações enviadas pela porta de comunicação da placa mãe (PCI,AGP ou PCI-E) são armazenadas nas próprias memórias da placa gráfica, chamadas Vídeo RAM(VRAM). São os chips circulados em vermelho no gráfico acima.
Essas memórias onboard provêem exatamente as mesmas funcionalidades que as memórias convencionais do PC. Armazenam as informações temporariamente e transferem em alta velocidade para a Unidade de Processamento Gráfico ( Graphic Processing Unit – GPU), circulados em amarelo no gráfico acima.
De forma “básica” uma placa gráfica é basicamente uma cópia em miniatura de um computador em si, placa mãe, processador e memórias próprias (sem contar na fonte de alimentação própria também).
A única diferença é que a VRAM não apenas armazena informações que serão usadas pelo GPU, ela também armazena imagens completas (os frames), para serem enviados para o monitor, veremos isso com mais detalhes na oitava etapa.
Essa é a razão do por que a VRAM é cada vez mais importante em uma placa gráfica, sempre tendo maior capacidade e velocidade. Quanto maior o número de informações ela é capaz de armazenar, maior será a velocidade em que essas informações serão computadas.
Quando os jogos utilizam resoluções bem superiores e com vários filtros, as VRAM não dão conta do recado, pois ainda são bem limitadas em quantidade. Quando isso ocorre a GPU solicita a sua máquina mais espaço, então sua máquina aloca espaço no HD e transfere para a sua RAM. Quando isso ocorre o jogo fica bem mais lento, rápidas pausas são bem notáveis. É notado com maior freqüência quando você entra em novas áreas ou um grande número de objetos novos aparece. Sua placa de vídeo pode literalmente parar e aguardar.
Dica de desempenho: Isso demonstra a importância de ter uma placa gráfica com uma grande quantidade de VRAM. Ao rodar um game em uma placa gráfica com pouco VRAM você deve baixar a qualidade da textura/resolução, caso contrário essas pausaras será notada com freqüência. Isso é ainda mais importante se você tiver um HD lento ou pouca/lenta memória RAM.
Por se tratar de uma memória que será usada com MUITA freqüência e em altas temperaturas é extremamente importante providenciar uma ótima ventilação nas VRAM, caso contrário você começará a notar defeitos na renderização, os famosos artefatos.
Outro detalhe é que o sensor de temperatura nunca fica próximo a VRAM, geralmente ficam próximo da GPU ou até dentro dela, portanto a VRAM está sempre rodando bem mais quente do que mostrado.
Essa explicação também prova o porquê muita placas gráficas possuem um ótimo desempenho até certa resolução, acima dela seu desempenho cai drasticamente. Toda e qualquer placa de vídeo é feita com uma quantidade determinada de VRAM para que seja capaz de funcionar em uma resolução específica, ou faixa de resolução específica. Qualquer configuração muito abaixo ou muito acima da sua resolução “de origem” simplesmente torna a placa um produto não-recomendado.
Por exemplo, uma placa mãe Mid-High é mais do que suficiente para um monitor de 15’-17’, uma placa Top simplesmente não trará benefício, é jogar dinheiro fora. Do mesmo jeito que não se deve comprar uma placa Mid-High para fazer “par” a um monitor de 22’ ou mais. Até pode, sacrificando a qualidade, porém não é recomendado.
Windows Vista: A arquitetura do Vista é capaz de utilizar a VRAM com muito mais competência que o XP. Portanto games que utilizam uma grande quantidade de texturas e filtros apresentam bem menos problemas no Vista. Pois o Prefetch já usa parte da sua RAM para alocar partes do jogo. Dessa forma caso sua VRAM não seja suficiente não será necessário recorrer ao HD para as informações, apenas a RAM que já está pronta.
Sétima Etapa: Os arquivos são executados pela GPU
A GPU agora acessa as informações na VRAM e começa a executar os complexos algoritmos gráficos, conhecidos também como Graphic Pipeline. O ’pipeline’ é composto de várias etapas, mas de forma geral sua função é repetidamente converter data 3D “crua” em algo que possamos visualizar/identificar em um monitor bidimensional, mas vou tentar descrever cada etapa individualmente.
1 – Transformação: Começamos por um Vertex cru. Um vertex nada mais é que um ponto 3D no espaço onde, quando juntado com outros vai criar o que chamamos de Wireframe, formas 3D, nossos amigos os polígonos. Na primeira etapa do pipeline o vertex 3D cru é transformado, posicionado e escalonado em um objeto 2D onde você é capaz de ver no monitor. Um Vertex Shader pode ser usado nessa etapa para aplicar alguns efeitos básicos ao objeto ou realizar empilhamentos (warping).
2 – Iluminação: Após a transformação onde finalmente os objetos são posicionados é levado em conta as fontes de luz e objetos reflexivos. A data ainda é um vertex, então basicamente é estipulado as diferenças de cores e reflexões.
3 – Ponto de Vista (Viewpoint): Os objetos então são ajustados de acordo com o ponto de vista, ângulo e distância do “agente” (jogador/personagem). Então objetos mais próximos terão tamanhos devidamente maiores enquanto os mais distantes serão menores. Todos os objetos são rotacionados apropriadamente.
4 – Recorte (Clipping): Os objetor que não serão vistos pois não estão dentro do campo de visão (Field of View – FOV) são devidamente removidos. Por exemplo, o campo de visão padrão da maioria dos jogos é um ângulo de 90º, todo e qualquer objeto posicionados nos 270º restantes são retirados. Isso é feito basicamente para reduzir a quantidade de cálculos realizados pela GPU, senão a mesma seria desperdiçada realizando cálculos em cima de objetos que o “agente” não poderia ver.
5 – Configuração do Triângulo (Triangle Setup): Nessa etapa todos os pontos dos vértices são unidos para criar triângulos ou polígonos, formas multi-lados dos wireframes, que seria uma aproximação do gráfico 3D que vimos em um monitor.
6 – Rasterization (não achei nenhum termo em português para isso): Um pixel nada mais é do que a menor unidade de informação gráfica exibida no seu monitor. Como tudo que compõe uma cena 3D será visualizado em um monitor 2D essa etapa é responsável por direcionar cada objeto a localização do seu pixel correspondente.
7 – Culling: Esse processo da continuidade ao Clipping, cada pixel que não deveria ser visto é removido da tela. A parte de trás dos objetos que estão a frente do “agente”, objetos cobertos por outros objetos, etc. Todos são removidos para não desperdiçar processamento de dados.
8 – Textura e Shading: Essa etapa é responsável por colorir e aplicar textura em cada um dos pixels. Texturas 2D são aplicados em objetos 3D para que pareçam mais realistas; O Pixel Shader pode ser combinado com uma array de cores, profundidade e textura para criar efeitos especiais como objetos transparentes, amassados ou brilhantes.
Dica de desempenho: Uma placa gráfica moderna possui vários pipelines executando ao mesmo tempo e essa ‘multithreading’ permite que a placa execute diversas partes das etapas acima em paralelo, gerando os gráficos de forma bem mais rápidas.
Hoje em dia as placas gráficas são capazes de realizar todas essas etapas em tempo real. Até pouco tempo eram necessárias horas e horas, como nos efeitos especiais de filmes, onde esses efeitos levam até dias para serem executados.
Não subestime um jogo, é uma das aplicações mais estressantes que você pode fazer em um PC doméstico, põe em teste tudo.
Oitava Etapa: As informações são enviadas para o Frame Buffer
Após passar por todas as etapas acima as informações se transformam em um único Frame, o frame é temporariamente alocado em uma área na VRAM chamada Frame Buffer. Como o próprio nome sugeriu serve para armazenas os frames que serão enviados para o monitor quando solicitado.
Existe geralmente duas imagens “buffered” ao mesmo tempo, esse processo é chamado Double Buffering. Um frame completo é guardado no Front Buffer ou Primary Buffer, enquanto o segundo está sendo composto no Back Buffer ou Secondary Buffer.
O Front Buffer ou Primary Buffer é o que será enviado para o monitor. Enquanto o conteúdo do primary buffer é exibido no monitor, a placa de vídeo está preparando o próximo frame no secondary buffer, quando monitor der um “refresh” os frames “pulam”, o secundário é enviado para o primeiro e recebe um novo frame em criação. Esse processo é utilizado para evitar gargalos.
Quanto maior for a resolução de um monitor maior será a complexidade de uma imagem, logicamente uma maior quantidade de informações é processada, isso resultará em um aumento de tempo para criação do frame em si. Efeitos adicionais que são aplicados sob o frame pronto também aumentam consideravelmente o tempo de criação do mesmo.
Antialiasing que é responsável pela suavização das linhas e o filtro Anisotropic responsável por melhorar a renderização de texturas de objetos distantes são os efeitos mais “fominhas”, aumentam significativamente o tempo de criação dos frames.
Dica de desempenho: Normalmente apenas 2 frames são usados no Frame Buffer. Entretanto existe uma técnica que permite criação de um terceiro chamada Tripple Buffering.
O Tripple Buffering deve ser usado em conjunto com o Vertical Synchronization, porque dá a placa gráfica mais espaço/tempo para completar a criação de frames.
Em contrapartida isso também aumenta o uso direto da VRAM. Para maiores detalhes leia a parte dedicada unicamente a Tripple Buffering, na parte 2 desse tutorial.
Nona Etapa: A imagem é enviada para o monitor
A imagem previamente preparada está finalmente pronta para ser exibida em um monitor. Então ela é enviada do Frame Buffer através do RAMDAC (Random Access Memory Digital to Analog Convertor), para o cado de vídeo até o seu monitor.
O RAMDAC é necessário para converter informações digitais (0’s e 1‘s) da sua VRAM para um sinal analógico (sinal de voltagem de vídeo) exibido na grande maioria dos monitores.
O RAMDAC é importante por que afeta tanto o máximo refresh rate de uma resolução (de acordo com o monitor) quanto a qualidade da imagem em si. Felizmente as placas de vídeo atuais possuem ótimos RAMDACs, então não isso não é mais considerado um problema. O gargalo está geralmente no monitor nunca na placa de vídeo.
É importante dizer que o RAMDAC só é utilizado quando o monitor for analógico, caso você use um monitor LCD com saída DVI a imagem simplesmente “pula” o RAMDAC. O mesmo acontece quando você usar um adaptador para transformar VGA para DVI.
Não foi constatada nenhuma degradação na imagem quando você usa múltiplos conversores.
Dica de desempenho: Monitores LCD possuem uma melhor qualidade na geração de imagens quando conectados através de cabos DVI. Entretanto existem várias razões para usar a entrada analógica em um monitor LCD. Veja a parte de Tempo de resposta na segunda parte desse tópico.
Se você tem um monitor CRT e uma placa de vídeo antiga e não acha a qualidade de imagem boa o suficiente é possível que o RAMDAC da sua placa seja bem velho, portanto incapaz de converter o sinal para analógico. Isso é notável quando você nota objetos 2D “borrados”, como os ícones do desktop do Windows. Definitivamente não é bom para a saúde dos seus olhos.
Conclusão Parte 1
Isso cobre o básico de como um gráfico 3D funciona. Espero que você tenha aprendido como funciona a arquitetura do seu PC melhor, e que esse tutorial te ajude a fazer updates mais balanceados e que te proporcione conhecimento para identificar o que é o melhor para sua configuração, ou pelo menos ajudar.
Na próxima parte desse tutorial falarei sobre qualidade de imagem, filtros e outras características para melhorar o desempenho.
Este artigo foi publicado originalmente no site ForumPCs










