|
Vamos dar continuidade ao tutorial que iniciei no na semana passada que fala sobre a arquitetura de um PC ao executar um jogo.
Tudo o que acontece no PC desde o momento em que você clica no executável até o momento em que a imagem é exibida no monitor foi abordado no tópico passado.
Nesse tutorial vamos examinar o que acontece com o monitor, como o mesmo influência na qualidade da imagem e como agem os famosos filtros e palavrões como Triple Buffering, Response Time, Refresh Rate, VSync, AA e AF.
Vou seguir o mesmo padrão da Parte 1, deixando os nomes técnicos em inglês, pois será mais fácil de identificar em jogos, sem contar que todos os livros sobre o assunto preferem abortar esses nomes em inglês.
Chega de conversa e vamos logo meter a mão na massa.
Frames Por Segundo (Frames Per Second – FPS)
Frames Por Segundo, também chamado de Framerate, ou simplesmente FPS, é o termo mais usado no mundo dos games, e é também o termo mais complexo e facilmente entendido de forma errada.
A maioria das pessoas acreditam que quando maior o FPS melhor, mas além disso existem diversos outros fatores que precisam ser levados em consideração. Entender FPS é o passo mais importante para entender toda essa sessão, não deixe de ler isso.
A imagem de um computador é feita de vários indivíduos chamados Pixels, a quantidade vai variar de acordo com a resolução do seu monitor, quanto maior a resolução maior o número de pixels.
Ao olhar para o monitor a uma distância razoável seu cérebro consegue ver todos esses pontos, juntos, como se fosse uma única e limpa imagem. Essa única imagem estática é chamada Frame e foi abordada melhor na Oitava Etapa da primeira parte desse tutorial, um jogo 3D simplesmente torna sua máquina em uma fábrica rápida de frames, produzindo vários a cada segundo.
Entretanto esses frames são apenas imagens, como fotografias. Para uma cena aparentar fluída e animada no seu monitor é necessário uma quantidade enorme de frames, que são mostrados rapidamente um após o outro.
Esse é exatamente o mesmo processo usado na TV e em filmes, sobreposição de imagens em alta velocidade. A única razão de esse método funcionar é por que o seu olho tem uma “característica” chamada “visão persistente”, ele mantém a imagem por uma fração mínima de segundos mesmo quando a imagem já desapareceu.
É exatamente aqui que encontramos nosso equívoco: a tremulação visível em alguns monitores não é relacionada ao FPS, é relacionada ao Refresh Rate; FPS e Refresh Rate são duas coisas completamente diferentes. É possível ter 20 FPS sendo executado em um monitor com 85Hz refresh rate, ou (nominalmente) ter 100 FPS sendo mostrado em um monitor com 60HZ refresh rate.
É possível ter um game rodando a 5 FPS sem qualquer tremulação ou noção de lentidão. Vamos falar mais sobre isso na parte de Refresh Rate e Response Time , mas no momento tenha em mente que FPS não tem nada haver com refresh rate, FPS baixo não necessariamente causa lentidão.
Medindo o Framerate
O FPS não é fácil de ser avaliado a olho nu. Felizmente nos podemos medir facilmente o FPS de um jogo. A maiorias dos jogos possuem um avaliador de FPS embutido, e mesmo que não tenham podemos usar o software livre, chamado FRAPS, para realizar essa conta. Essa ferramenta não afeta a desempenho e funciona com qualquer jogo.
Assim que as pessoas tomam conhecimento do seu próprio FPS as perguntas mais freqüentes são: “Meu FPS está bom?” e a maioria das respostas se resumem a: “Qualquer coisa acima de 30FPS é desperdício” ou “Você precisa de pelo menos 30FPS para jogar bem”. Sinceramente, isso é completamente arbitrário e sem qualquer embaçamento, cada caso é um caso. Vou tentar explicar melhor como funciona abaixo.
FPS mínimo
É óbvio que existe um ponto em que o FPS de jogo se torna tão baixo que seu olho e cérebro conseguem notar pausas na animação. Como se fosse uma apresentação de slides.
Entretanto o número mínimo exato de frames requeridos para manter a animação suave não é um valor absoluto ou científico, como grande parte envolve o olho humano, vai variar de pessoa pra pessoa. E o mais importante, de acordo com o tipo do jogo.
Por experiência própria eu acho que a linha base para ter um jogo fluído seja 25 frames per second, se forem renderizados sem interrupções ou variação de velocidade. Mas isso é apenas a minha opinião, não uma definição. Conforme falei existem um grande número de variáveis quando nos falamos de FPS mínimo, vamos abordar algumas.
1 - Variação de Framerate:
Se o FPS do game flutua com freqüência ao ponto de você notar, pode-se dizer que você não está com um valor “suficiente” de FPS. Para manter a impressão de fluidez o FPS precisa se manter relativamente estável, não interessando a situação. Por exemplo, a grande e esmagadora maioria dos jogos de console possuem uma trava limite de 30 FPS, quer dizer que alguns jogos só conseguiram ir até 30, não mais.
Isso pode parecer pouco para um FPS máximo, porém como o valor mínimo também gira muito próximo do máximo, mantendo uma variação bem pequena, o jogo mantém sua fluidez. Infelizmente são poucos os jogos de PC que são capazes de “travar” qualquer valor específico de framerate.
2 – Tipo do jogo:
Jogos que possuem movimentação bem rápida, agitada, particularmente deathmatch em primeira pessoa, os first person shooters como Quake e Counter Strike, precisam de FPS bem altos (de 35 a 50) para passarem a sensação de fluidez e resposta rápida.
Parte da razão disso deve-se a grande quantidade de dados que cada individuo precisa. Quanto maior o nível de atividade/ação maior será o tráfego de dados e a diferença de FPS entre os próprios jogadores crescerá.
Do mesmo jeito que jogos menos agitados, os mais lentos precisam de bem menos FPS, como jogos de RPG ou estratégia (RTS). Para dar um exemplo extremo, se você ficar olhando para uma parede, não interessa que seu FPS caia para 1, você não notará.
Resumindo o FPS depende do jogo.
3 – Controle do Lag:
Ao contrário da TV ou de um filme você é capaz de controlar a câmera no jogo, geralmente você vê pelos olhos do personagem. Quando menor um FPS mais lag você notará, principalmente o tempo de resposta do mouse e teclado, junte isso com a percepção de lentidão da animação e você logo desistirá de jogar.
Tipicamente por volta de 15 FPS ou menos, praticamente qualquer jogo apresenta um lag notável na sensibilidade do mouse/teclado, independente da configuração de sensibilidade que você tenha feito, isso torna o framerate inadequado. Dê uma olhada na sessão Triple Buferring para ajudar a corrigir esse problema. É óbvio que isso é apenas um “jeitinho” a forma ideal é aumentar mesmo seu framerate.
De forma geral qualquer jogo com FPS abaixo de 15 já torna bem notável o lag no mouse/teclado independente de qualquer configuração de sensibilidade que você tenha feito.
O simples fato de seus controles apresentarem lag graças ao baixo FPS quer dizer que sua placa gráfica está lutando ferozmente na tentativa de sincronizar os frames com os comandos de entrada.
O real motivo desse tópico sobre FPS é deixar claro que não existe um valor cientifico, uma regra geral sobre FPS mínimo. Seu cérebro e olhos simplesmente não possuem nenhum gatilho que diga 23 FPS é pouco ou 24 FPS são suficientes, varia de pessoa pra pessoa. É largamente uma questão de perspectiva, se o jogo parece fluído para você, então está bom, mas pode ser que não seja suficiente para outra pessoa.
FPS máximo
O conceito que dizem é que existe um FPS máximo que o olho humano simplesmente não consegue mais notar mais nenhuma variação, de forma geral isso está errado.
Muitos dizem: “O olho humano não consegue notar mais de 24 (25, 30 ou 60) em um game shooter”. Isso é mentira, baseada no fato de que tanto a TV quanto os filmes são feitos da mesma forma. Na verdade isso é uma desculpa para baixo framerate.
É verdade que TV e filmes apenas usam 24 ou 30 FPS, dependendo da parte em que você está no globo (aqui no Brasil é 24 FPS). Mas existem três importantes diferenças entre filmes, TV e jogos que veremos logo abaixo:
1 – Filmes e TV usam Motion Blur, quando você está assistindo TV e aperta em pausa, você notará que grande parte dos objetos estão embaçados. E o contorno de nenhum objeto é tão cristalino assim.
Entretanto em um jogo você pode tirar um screenshot ou pausar a qualquer momento e notará que tudo estará do mesmo jeito, os objetos não estão embaçados e possuem os contornos bem detalhados, independente de quão rápido estavam se movendo.
Alien vs Predador – Filme (DVD):
Alien vs Predador 2 – Jogo:
Para caráter de comparação olhem as fotos acima, a primeira é a foto do filme Alien vs Predador, a de baixo é do jogo Alien vs Predador 2. Os 24 frames do filme estão completamente embaçados porém em movimento aparentam serem bem mais bem feitos que os 30 ou mais frames do jogo.
Então por que os games não usam motion blur? Bem, alguns jogos recentes possuem esses efeitos. Isso pode realmente ajudar a reduzir o impacto sobre framerates mais baixos. Porém além de motion blur não ser comum nos games, existem fatores que o motion blur acaba até mesmo prejudicando, como veremos mais abaixo.
Os gráficos do PC podem são bem mais afiados, quadrados mesmo, e só com efeitos como HDR e Antialiasing podem reduzir, porém isso acarreta em baixar o FPS ainda mais.
2 – Tempo de responsividade também é bem diferente. Em um filme ou TV, o ponto de visão não é controlável; é geralmente estático ou com poucos movimentos. Entretanto em um game você controla seu campo de visão, portanto ao mover a câmera rapidamente você poderá notar a sensação de baixa de FPS, mesmo que você esteja com uma média de 24 ou até mesmo 30.
3 – Os jogos não possuem um framerates rock-solid, estáveis e imutáveis; TV e filmes tem. Enquanto alguns jogos possuem um limite de framerates entre 30 a 60, pouquíssimos podem realmente serem “travados” em constantes 24 ou 30 FPS, eles variam, sempre.
Filmes e TV não variam, eles sempre mostram o tempo todo a mesma quantidade de FPS. Então a variação dos framerates de um jogo, mesmo que seja para o lado positivo, o prejudica. Seu jogo pode rodar o tempo todo na faixa de 24-30 FPS, você não notará nenhum problema, mas se em certo ponto ele pular para 60 FPS você notará, mesmo sendo 60 FPS um valor “melhor”.
Um exemplo clássico é um jogo que adoro, o Oblivion: se você estiver em uma ambiente aberto com 25~30 FPS e entrar em um ambiente fechado e seu FPS pular para 80, você notará a diferença claramente.
Existe um programa chamado FPS Compare que faz exatamente isso, é uma pequena cena de um jogo onde ele fica alternando direto o FPS em duas telas, mesmo em valores altíssimos você notará a diferença. Infelizmente não consegui entrar em contato com o criador do programa, Andreas Gustafsson, para colocar o link de download aqui.
Já li em um artigo da superinteressante que o olho humano é capaz de notar a diferença em até 200 FPS, quando achar a matéria colocarei o trecho aqui. Mas a mesma matéria deixa claro que isso varia de pessoa para pessoa, como já deixamos isso claro aqui.
Como FPS máximo é correto afirmar que 60 é mais do que suficiente para qualquer coisa que você precise fazer no PC. Até mesmo 30 FPS como FPS máximo resolve, dependendo do jogo.
Mas de forma geral é, se o FPS está constante e na faixa dos 24 ~ 30 você não notará “engasgos” algum. Se variar, mesmo que seja para mais, você notará.
A única forma de melhorar isso seria criarem alguma forma que mantivesse o FPS sempre fixo. Porém por causa da grande possibilidade de configuração, isso é praticamente impossível.
Resolução
A resolução do monitor, ou apenas resolução, refere-se ao total de informações disponibilizadas na tela. No gráfico de um computador, a menor unidade gráfica que contém informação é chamada Pixel – um simples ponto de luz ou cor.
Toda imagem exibida pelo seu monitor é uma versão “pixelada” de um objeto gerado pela sua placa de vídeo. Quando você muda a resolução de um monitor você está dizendo que precisará de mais ou menos pixels, conseqüentemente mais ou menos exemplos daquele objeto 3D gerado pela placa.
De forma geral, quanto maior a resolução mais detalhada e limpa será o frame, em contrapartida você está forçando sua máquina a trabalhar mais, resultando em redução de FPS.
A resolução definida em um game ou no Windows diz precisamente a quantidade de pixels que será usado pelo seu monitor. A resolução é normalmente definida no seguinte formato pixels largura x pixels altura. Um jogo rodando a uma resolução de “1280x1024” quer dizer que está gerando 1.280x1024 = 1.310.720 pixels. Esse valor também pode ser formado para o padrão de Megapixels (1 milhão de pixels), o que daria 1.3 megapixels.
Típico celular com 1.3 Megapixels:
Conforme já dito anteriormente o olho humano, a uma distancia considerável enxerga tudo como uma única imagem, para fazer um teste basta pegar uma foto de jornal e olhar bem perto e depois de longe.
Para entendermos melhor os aspectos práticos da resolução precisamos abortar um pouco da estrutura de tipos de um monitor/TV, vamos falar sobre isso mais abaixo.
Dot Pitch
A tela de um monitor CRT é composto por minúsculos Phosphors (fótons). E são esses fótons que brilham quando são atingidos pelo canhão de electrons do monitor, produzindo a imagem que vemos. Geralmente são divididos em vermelho, verde e azul.
Um pixel pode ser a menor unidade gráfica, porém um único pixel é composto por vários fótons. Na resolução máxima de um monitor CRT um único pixel é composto por uma “tríade” de fótons: um vermelho, um verde e um azul. Com eles é possível gerar qualquer cor.
Dot Pitch não é nada mais que a distancia milimétrica entre fótons da mesma cor. Isso determina o tamanho que o pixel terá no monitor CRT. Quanto menor o Dot Pitch mais bem feito será. Geralmente o tamanho gira em torno de 0.28mm a 0.25mm em um CRT.
Isso junto com o canhão de elétrons do monitor é capaz de fazer escalas, diferentes resoluções, sem sofrer com uma grande diferença na qualidade. Por causa disso existe uma diferença entre a resolução de um CRT de um LCD.
Monitores LCD diferem dos CRT pois eles não possuem um canhão de elétrons ou pequenos fótons que acendem. No lugar disso eles criam as imagens usando uma tabela retangular de células de cristal líquido (Liquid Crystal Cells) que permitem alterar a quantidade de luz que passam por elas.
Assim como a “tríade” de fótons do CRT, a célula LCD também é composta por componentes vermelhos, verdes e azuis. Muitos monitores LCD agora estarem se aproximando ao ponto em que a distancia entre suas células – o Pixel Pitch – é similar ao Dot Pitch do CRT. Por causa da forma com que o LCD trabalha só é possível produzir uma imagem de qualidade quando a resolução máxima é utilizada. Qualquer resolução tirando a nativa aparentará embaçada e sem foco.
Analógico ou digital
A diferença fundamental entre CRT e LCD é que o CRT é baseado na tecnologia analógica e LCD digital. No analógico existe uma infinidade de variáveis no processo que podem prejudicar uma imagem, enquanto o LCD possui um processo bem mais simplificado e mais “estável”.
O monitor CRT só aceita sinal analógico então o RAMDAC (para entender o que é RAMDAC olhe a primeira parte do tutorial) da placa de vídeo tem que trabalhar para converter tudo. Pois internamente o monitor só trabalha de forma analógica, é uma forma similar a um projetor que projeta a imagem na parede.
Um monitor LCD recebe o sinal analógico ou digital (dependendo da conexão), mas sempre trabalha de forma digital. Qualquer resolução abaixo da resolução nativa será rescalonada digitalmente, como se fosse o zoom digital de uma máquina fotográfica, prejudicando a qualidade da imagem em si.
De forma geral podem dizer que enquanto o formato analógico existe diversos processos e variáveis o processo digital é bem mais simples e sofre menos alterações.
Aspect Ratio
Aspect Ratio nada mais é que a divisão da largura pela altura de uma resolução. Por exemplo: 1.280/1.024 = 1.25 = 5/4 = 5:4. O Aspect Ratio mais comum nos monitores é o de 4:3 enquanto os monitores com formato ‘widescreen’ são 16:9 e 16:10.
Imagens que não correspondem exatamente ao Aspect Ratio do monitor serão exibidas com certas distorções.
Dicas Sobre Resolução
Depois desse bla bla bla todo você pode muito bem se perguntar: “Sim, Hugo falou falou falou e não disse nada sobre o que isso impacta nos jogos.”. Na verdade impacta sim, vamos ver como.
Pra começar agora sabemos que resoluções mais altas deixam os jogos incrivelmente mais bem feitos, principalmente o contorno. Isso é exatamente o que o Antialiasing tenta fazer.
Então é extremante sábio para pessoas que possuem uma boa placa de vídeo e uma máquina não tão nova aumentar a resolução e desligar o Antialiasing, ganhando desempenho sem perder qualidade.
Para aqueles que usam LCD existe um simples truque que permite um aumento considerável de desempenho e ainda ganhar ‘de graça’ o Antialiasing. Basta rodar o jogo em uma resolução abaixo da nativa.
Como vimos acima rodar um jogo em um LCD abaixo da resolução nativa fará com que ele seja re-escalonado, e ficará com os contornos mais embaçados, que fará quase a mesma coisa que o Antialiasing, você sofre uma perda pequena de qualidade, mas ganha muito em FPS.
Finalmente para conseguir ajustar corretamente a imagem de uma resolução não-nativa a um monitor LCD basta usar a propriedade ‘Digital Flat Panel Scaling’, no menu de propriedades de vídeo da sua placa, no caso o Nvidia Forceware ou o ATI Catalyst. Com isso quem fará o re-escalonamento da imagem será sua placa de vídeo e não o monitor, ela trabalhará mais “folgada” já mandará a imagem correta para seu monitor.
Atenção, isso só funciona se você estiver conectado ao seu monitor pela entrada DVI, VGA não funcionará pois esse é um processo 100% digital.
Refresh Rate
Não vamos confundir Refresh Rate com FPS, são completamente distintos.
Refresh Rate é a propriedade de um monitor CRT que determina a quantidade de vezes que ele é capaz de fazer um “refresh” na imagem, independente do FPS.
Grande parte dessa sessão é destinada para aos proprietários de monitores CRT, mas é bem parecida com o Tempo de resposta de monitores LCD.
De forma simples um monitor CRT funciona do mesmo jeito que uma TV. O canhão atira na tela cheia de fótons que brilham que começam a criar a imagem. Isso começa do canto superior esquerdo e vai até o canto direito, e depois pra baixo. O tempo em que o canhão leva para varrer toda a tela e começar a varrer denovo é chamado Vertical Blanking Interval.
Um monitor faz isso várias vezes por segundo. Apesar de que em um ponto o monitor estará completamente sem imagem, nossa visão nos faz pensar que a imagem ainda está lá. É a “visão persistente” que vimos no começo desse tutorial.
O tempo que o monitor leva para re-gerar a imagem é medido em Hertz (Hz). Portanto um monitor de 60Hz consegue re-gerar uma imagem 60 vezes por segundo.
FPS vs. Refresh Rate
Como falei previamente são duas coisas completamente diferentes.
Se o seu FPS for menor que o Refresh Rate do seu monitor, o monitor simplesmente desenha a mesma imagem várias vezes.
Entretanto, se o seu FPS for maior, seu monitor não conseguirá o ritmo e não será capaz de exibir todos os frames, as imagens sairão com falhas e com efeitos de corte, chamados Tearing. Para evitar isso você tem que ativar o recurso chamado Vertical Synchronization (VSync). Cabendo a ele “frear” seu FPS de forma a trabalhar em sincronia com seu monitor.
Então, conforme nos já estudamos acima podemos também notar que o refresh rate será influenciado pela resolução, quando maior a resolução menor o refresh rate, pois demorará mais tempo para “desenhar” toda a tela. É por isso que 60Hz é suficiente para monitores de 15 polegadas, para 17-19 o ideal é partir para maiores freqüências.
Refresh Rate recomendado
Se você já leu até aqui já sabe que eu não gosto de estipular uma regra, um valor fixo, tudo depende da pessoa. Mas lendo a parte de resolução podemos chegar a algumas conclusões.
Quanto maior a resolução de seu monitor, maior deverá ser a freqüência dele, para monitores de 17 polegadas o ideal seria uma freqüência de pelo menos 70-72Hz. Enquanto para 19 o recomendado é 85Hz. Mas tudo depende da resolução.
Dica de saúde: O mais importante é se lembrar que uma freqüência baixa causa sérios problemas para a visão. Então se seu monitor não possui uma freqüência acima de 70Hz evite qualquer resolução acima de 1024x768. Os mais viciados talvez prefiram lembrar que o preço de um óculos é bem menor que o de um monitor em si :).
Tempo de resposta
Diferentemente dos monitores CRT os monitores LCD não possuem um canhão de elétrons. São feitos por uma matriz de cristal líquido que fica entre pedaços de vidro polarizados. A luz é então enviada para a parte de trás do vidro, e a forma dos cristais é alterada para que apenas certa quantidade de luz passe. Dessa forma o monitor LCD não precisa recriar toda a tela.
Toda vez que uma imagem é alterada apenas os cristais relacionados aquela imagem são alterados e não todos. O tempo em que um cristal leva para gerar uma imagem nova é chamada tempo de resposta do monitor LCD.
Tempo de resposta recomendado
Obviamente quanto menor o tempo de resposta melhor é o monitor para jogos. Monitores com o tempo de resposta muito alto causará imagens embaçadas, sem contornos, objetos em movimento deixando “vestígios” e você notará a sensação de slideshow, é o efeito conhecido como Ghosting. É a prova que o monitor não está conseguindo acompanhar a placa de vídeo.
De forma geral um monitor com tempo de resposta abaixo de 25ms já é suficiente para jogos, porém para jogos bem rápidos o ideal são monitores com tempo de resposta abaixo de 16ms ou até mesmo 8ms. Novamente isso tudo é bem relativo depende muito da pessoa.
Lembre-se que os fabricantes nunca informam o tempo de resposta real do monitor é sempre bem mais alto que o informado.
Isso não quer dizer que os fabricantes estão mentindo ou que é propaganda enganosa, eles simplesmente testam os monitores em um aspecto de tela preto e branco, e não em jogos.
Tempo de resposta vs Refresh Rate
“Hugo acabou de dizer que LCD não tem Refresh Rate mas o meu Windows diz que tem sim, que cara mentiroso!”
Bem, posso até gostar de uma mentirinha aqui e ali mas dessa vez eu estou certo, deixa eu explicar melhor.
O monitor LCD precisa emular um refresh rate no Windows primariamente por questões de compatibilidade entre os jogos e o hardware em si. Os jogos, o Windows e sua fabricante de placas de vídeo ainda são feitas de forma que cada frame é individualmente feito e lançado para seu monitor. Portanto o monitor de LCD é forçado a trabalhar da mesma forma que monitores CRT, conseqüentemente são forçados a emular características do CRT.
Mas vamos tentar fazer uma pequena comparação entre os dois. Vamos pegar como exemplo um monitor LCD com tempo de resposta de 8ms = 8/1000 do segundo. Se em um segundo todos os pixels (se preciso) podem ser redesenhados 1000/8 = 125 vezes, o que seria equivalente a uma freqüência de 125Hz.
Entretanto nenhum monitor LCD será capaz de reproduzir essa freqüência no Windows basicamente por dois motivos:
1 – Limitação da conexão: Uma saída DVI é como se fosse uma conexão a internet, possui um limite de banda de comunicação. Todas as freqüências de um LCD são limitadas a 60Hz. Apesar de que em alguns casos o limite sobre pra 85Hz.
2 – Limitações do monitor: Os fabricantes de LCD querem garantir que seus monitores funcionem satisfatoriamente bem em todas as possíveis situações, principalmente por que eles “mentem” no tempo de resposta. Então eles mesmo colocam um limite máximo de refresh rate.
Como vocês podem notar a velocidade de resposta de um monitor não só depende dele mais de uma série de fatores que também devem ser considerados.
Problemas de Refresh Rate em LCD
Ao contrário de um monitor, LCD não tremula na geração da imagem não existe problema em relação à freqüência em si. O default de 60Hz do Windows é mais do que suficiente independente da resolução.
Entretanto um monitor conectado pela entrada VGA dará opções de aumentar a freqüência, porém o recomendado é manter a de fábrica, geralmente 60Hz.
A principal razão que ”Refresh Rate” de um LCD pode influenciar no jogo é por causa do VSync. Como o LCD trabalha de forma bem diferente do CRT e não precisa renderizar a imagem por completo, ao desativar o Vsync a placa de vídeo pode enviar mais frames que o monitor é capaz de exibir.
Ativando o Vsync resolverá esse problema, porém reduzirá seu FPS, então quanto menor a freqüência maior será a queda de desempenho ao ativar o Vsync.
Resumindo, apesar do LCD ser bem melhor e trabalhar de forma completamente diferente que os CRT, eles ainda possuem alguns problemas por conta da compatibilidade.
Vertical Synchronization (VSync)
Vertical Synchronization ou simplesmente Vsync é inicialmente requerido por causas das limitações físicas dos monitores CRT. Eles simplesmente podem trabalhar em uma velocidade inferior a placa de vídeo. Eles começaram a construir um novo frame mesmo quando o antigo ainda está sendo exibido causando o que chamamos de Tearing.
Ativando o Vsync você está dizendo para sua placa gráfica sincronizar com a mesma velocidade do seu monitor.
Exemplo de Tearing:
FPS e VSync
Quando você desativa o Vsync você está dizendo que sua placa gráfica e seu monitor podem trabalhar cada um na sua própria velocidade.
De forma geral não faz sentido ativar o Vsync se o seu monitor é rápido o suficiente para suportar frames altos, ou se o jogo for tão pesado que sua placa de vídeo não será capaz de produzir uma quantidade de FPS acima de 70.
Mas se você for jogar jogos mais antigos onde sua placa pode facilmente trabalhar acima de 70 FPS. Mas lembre-se que você deve levar em consideração a velocidade do seu monitor, não apenas o FPS produzido, se seu monitor for rápido não terá problema algum.
Dica de Vsync:
Existe um caso em particular que ativar o Vsync acaba com você. É basicamente a “perfeita” mistura de um monitor muito antigo com um jogo que varie muito o FPS, nesse cenário o Vsync pode reduzir até em 50% seu FPS. Deixa eu explicar melhor.
Se sua placa de vídeo produz frames muito mais rápido que seu monitor é capaz de exibir então você precisa ativar o Vsync para evitar o Tearing, isso torna sua placa de vídeo escrava de seu monitor. Mas se em algum momento seu FPS cair abaixo da freqüência do seu monitor, cada frame demorará duas vezes o tempo necessário para ser gerado, isso causará um engarrafamento enorme no seu Frame Buffer.
Resumindo, se sua placa de vídeo é capaz de produzir frames sempre mais rápido que seu monitor, basta ativar o Vsync e ser feliz. Ou então pegue um monitor rápido para ele trabalhar sempre mais rápido que sua placa de vídeo e desative oVsync. Em toda situação diferente dessa você poderá sofrer de Tearing, mas existem alguns truques que falarei logo abaixo.
O que é melhor ativar ou desativar o VSync?
Como vimos acima o VSync é um real dilema. Desligando pode causar Tearing e ativando pode reduzir até 50% do seu FPS, mas isso pode ser resolvido ativando outra característica Triple Buffering (para entender como funciona por trás, veja a parte 1 do tutorial).
De forma geral eu parto do seguinte ponto: Começo o jogo com o VSyncdesligado e vejo como ele se comporta, caso o jogo tenha FPS bem alto, não terá problema algum. Caso o jogo apresente Tearing frequentemente eu ativo o VSync e o Triple Buffering.
Se você tiver VRAM suficiente o Triple Buffering resolverá o problema de redução de FPS do VSync. Para entender como funciona o VRAM veja a parte 1 do tutorial.
Não existe uma forma única, geral. Depende de jogo pra jogo.
Triple Buffering
Na oitava etapa do processo gráfico do tutorial 1/2 falamos sobre o Triple Buffering e o seu relacionamento amoroso com o Frame Buffer. Portanto não vou me repetir e falar apenas de alguns outros detalhes também relevantes.
Se você ainda não sabe o que é e como funciona o Triple Buffering, veja a primeira parte do tutorial, mais precisamente a oitava etapa do tópico Processo Gráfico, é importante.
Lembre-se apenas que mesmo se o jogo não tiver a opção Triple Buffering, você pode ativar através de programas de terceiros como DXTweaker, RivaTuner ou ATI Tray Tools. Sinceramente não sei porque a Nvidia e a ATI não colocam isso nos seus Forceware e Catalyst.
Mas só pra dar uma pincelada, o Triple Buffering cria uma nova etapa gráfica sendo capaz de produzir 3 frames ao mesmo tempo, o que melhora significativamente seu FPS se você tiver VRAM suficiente.
Problemas com Triple Buffering
:Apesar de que Triple Buffering geralmente resolve os problemas de baixo framerate quando você ativar o VSync, existem três cuidados que você precisa ter:
- Se o jogo não suporta essa tecnologia, pode causar problemas. Ironicamente do mesmo jeito que acontece com o Tearing.
- Usa VRAM adicional, então se sua placa de vídeo tem pouco VRAM poderá ocasionar em baixo FPS. Se você pretende usar Antialiasing ou filtro Anisotropic é melhor desativar o Triple Buffering, muito provavelmente você não terá VRAM suficiente para os três, pelo menos para rodar altas resoluções.
- Isso pode ocasionar em um pouco de lag, se você estivar com o VSync e tiver pouca VRAM.
Felizmente a grande maioria dos jogos atuais sabem utilizar Triple Buffering com grande competência, sem ocasionar problemas.
Antialiasing
O maior problema dos jogos hoje em dia é que os ângulos e curvas aparentam bem retalhados, quadrados mesmo. Esse “retalhamento” é conhecido no mundo 3D como “jagged” ou “jaggies” também é conhecido como Aliasing.
A razão de isso ocorrer é que sua tela simplesmente não consegue criar com perfeição exemplos 3D gerados pela sua placa de vídeo calculou. Grande resoluções usam mais pixels portanto os Gráficos ficaram mais detalhados e isso deixa de ocorrer. Porém você perde um absurdo em desempenho.
E foi por causa disso que a técnica originalmente chamada de Full Scene Anti-Aliasing (FSAA), ou simplesmente Antialiasing (AA) foi criada. Em sua essência ela simplesmente recalcula e redesenha as linhas na tentativa de suavizar os gráficos.
Níveis de Antialiasing
A primeira escolha é entre usar ou não AA, depois escolher entre 2x, 4x, 6x, 8x ou 16x. Esses números indicam a quantidade de pixels ao redor da área que o seu hardware redesenhará. Quanto maior o número maior a chance de que a imagem ficará mais suave e uniforme. É óbvio que para isso existe um custo no processamento, logicamente custo no desempenho.
Dica de AA
Vale também lembrar que a resolução afeta a quantidade de pixels na tela, portanto afeta também a necessidade de usar o AA. Por exemplo, não existe motivo para usar mais do que 4x AA em uma resolução de 1280x1024, enquanto 2x AA é o suficiente para resolução 1600x1200.
O ideal é você experimentar entre AA e aumentar a resolução. Na maioria dos casos aumentar a resolução e baixar o AA melhora a qualidade gráfica e ainda o desempenho do que simplesmente aumentar o AA.
Uma dica para usuários LCD, como falei acima, é usar o “fake AA”, que é usar uma resolução não-nativa, que deixará a imagem mais “embaçada”, dando uma falsa sensação de AA.
Existem várias formas de AA, como Supersampling e Multisampling, porém prefiro falar sobre isso em outra ocasião, o tutorial já está ficando grande demais.
Filtro Anisotropic
Apesar de que AA resolve e suaviza os ângulos e linhas de um objeto 3D ele não resolve o problema de objetos 3D embaçados que estão distantes.
Qualquer objeto a uma distancia considerável apresenta problemas de textura que o fazem parecer falsos, não realistas. Fica nítida a visualização de uma textura 2D em um objeto 3D, como se tivessem colado um papel de parede.
Dependendo do objeto sua textura deveria aparentar ser reflexiva, enrugada ou qualquer outra coisa, a distancia esses efeitos simplesmente não são mostrados.
É exatamente onde a técnica chamada Texture Filtering entra em ação, para melhorar o nível de detalhes em objetos que estão longe. Para começar existem dois tipos básicos de texture filtering chamados Bilinear Filtering e Trilinear Filtering. Esses métodos de filtragem são considerados métodos “isotrópicos”, quer dizer que usam um padrão de texturas diferente e objetos pré-selecionados para realizar essas correções, mas isso basicamente só funciona com objetos quadrados.
Quando esses objetos são retangulares ou trapezoidais eles aparentaram embaçados.Para resolver isso existe o Anisotropic Filtering (AF) que é exatamente um fitro não-isotrópico.
Lembre-se que esses filtros representam um custo no desempenho do jogo, sendo esse o único motivo dos engenheiros não “acoplarem” dentro do próprio jogo o mesmo serve para AA.
Níveis de Anisotropic
Você pode escolher níveis de 1x a 16x dependendo da sua placa de vídeo. Quanto maior o número mais nítido será a imagem, e maior será o custo no desempenho. Entretanto tanto a Nvidia quanto a ATI chegaram a tal ponto que eles conseguem oferecer um AF de 8x com um impacto mínimo no FPS, na maioria dos casos sem impacto algum, mesmo em resoluções altas. Palmas para eles.
Tipos de Anisotropic
De forma geral existem dois tipos de AF – Performance e Quality. A diferença entre a qualidade da imagem entre os dois é praticamente nula, então para a grande maioria das pessoas o modo Performance é mais do que suficiente. Performance Mode usa o sistema bilinear filtering como base, enquanto o Quality usa o modo trilinear filtering como base.
Filtros de textura como AA e AF sofrem impacto dependendo da resolução. Quanto maior a resolução menor a necessidade de usar esses filtros. Mas se você não se importa em ter objetos distantes um pouco embaçados, pode desligar o filtro.
Conclusão
Primeiramente eu gostaria de me desculpar por não ter conseguido ser mais conciso no tutorial, eu achei que ficou grande demais, tanto a parte 1 quanto a parte 2.
O objetivo principal era passar para o pessoal uma idéia de como as coisas acontecem por trás dos jogos, seja em nível de programação seja nível de hardware mesmo. Com essas informações eu espero que vocês consigam extrair o máximo de seu hardware e desabilitar recursos que não tem a menor utilidade para sua situação.
Sempre quis escrever algo sobre isso pois, ao contrário de que muitos pensam, existem situações de AAx16 ou AFx8 simplesmente não fazem nada além de prejudicar seu desempenho.
Pelo menos agora eu sei que vocês não tentaram fazer loucuras como colocar AAx16 em uma resolução como 1280x1024 ou ativar o VSync em um monitor topo de linha :).
Este artigo foi publicado originalmente no site ForumPCs










