O que é frame pacing e por que você precisa se preocupar com ele nos jogos

9 min de leitura
Imagem de: O que é frame pacing e por que você precisa se preocupar com ele nos jogos

Desde 2013, com a chegada dos consoles da nova geração, uma grande parcela do público começou a se atentar muito a alguns aspectos que nem sempre eram levados em consideração na hora da compra: a resolução e a taxa de quadros por segundo dos jogos. Em outras palavras, a performance de um game de maneira geral.

Com a popularização e a divulgação dessas informações, esses quesitos estão se tornando cada vez mais importantes para os jogadores de consoles, pois, para quem joga no PC, entender a resolução e frame rate sempre foi algo familiar. Nessa nova onda de mensurar taxa de quadros, há entrelinhas que são tão importantes quanto os demais dados, mas nem todo mundo sabe.

A taxa de quadros por segundo é a única coisa que importa para mensurar qualidade?

Primeiro o básico: o que é frames por segundo?

Os termos “fps”, “taxas de quadro por segundo” ou “taxas de frame por segundo” são quase um senso comum aos jogadores modernos. Para quem não conhece o assunto de forma aprofundada, a versão resumida do que se trata é: a quantidade de frames (imagens renderizadas pela placa de vídeo do computador ou do video game) criadas por segundo e enviados ao monitor.

Em princípios básicos de animação, você precisa de fotografias sequenciais para criar movimento em uma cena. Portanto, é necessário observar diversas imagens em sequência em um período curto para que o nosso cérebro entenda como uma cena dinâmica. Quanto mais fotos em uma mesma janela de tempo, mais fluido é o resultado. É o clássico caso dos filmes em bloquinhos de desenho, como o demonstrado abaixo.

Cada área da multimídia usa uma medida diferente. O cinema, por exemplo, adota a faixa dos 24 fps, com algumas raras exceções, como a trilogia de “O Hobbit”, que utilizou 48 fps em salas especiais. Nas telonas, a nossa percepção cerebral é outra (a mente consegue distinguir a realidade dos objetos 3D e interpreta de maneira diferente), assim como os efeitos de motion blur e interpolação de quadros. Quando o assunto é jogo, o mais comum é a taxa de 30 quadros por segundo, mas muitos títulos que necessitam de fluidez para ter respostas mais rápidas dos jogadores aderem o modelo de 60 fps.

Neste caso, o game fica muito mais pesado e precisa de mais recursos para que a taxa de quadro se mantenha constante em níveis altos. De uma maneira resumida, o hardware precisa renderizar (criar) mais imagens que o convencional.

Para ter a sensação de movimento na tela, muitos frames devem ser exibidos de maneira sequencial em um curto período

Em outras palavras, é quase o “dobro” de esforço: o simples ato de girar a câmera necessita que a GPU recalcule a posição e cores de cada pixel no monitor duas vezes mais rápido. Isso também se aplica aos efeitos gráficos, como iluminação global, partículas, anti-aliasing e muito mais. Por fim, vamos ao assunto principal: por que não é só a taxa de frames por segundo que importa?

Frame pacing: um aspecto crucial para a fluidez dos jogos

Vamos partir do seguinte pressuposto: o game “X” acabou de ser lançado para Xbox One, PlayStation 4 e PC, e você teve a oportunidade de experimentar todas as versões. Todas rodam em 60 frames por segundo, mas você teve a impressão de que a versão de computador estava mais fluida por algum motivo que você não sabe explicar – exemplo hipotético. O grande responsável pode ser o frame pacing ruim.

Afinal, o que é frame pacing? Vamos voltar ao básico: em um jogo de alta performance com 60 fps, há 60 imagens sendo renderizadas por segundo, certo? E é aí que entra a sacada: nós consideramos que estas fotos são distribuídas uniformemente durante esse período de tempo (um segundo), mas nem sempre isso acontece.

A questão não é só a quantidade de frames em um segundo, mas sim o tempo (em milissegundos) de renderização de cada um deles

O frame pacing é, basicamente, a distribuição de quadros durante um segundo. Quando ele não está bom, os renders são distribuídos fora de tempo e causam uma sensação de lentidão ao jogador. Essa inconsistência frequentemente atrasa o input de comandos e gera um desconforto, algo que pode ser crucial em algumas partidas. Compare o game Far Cry 3 abaixo e perceba as pequenas travadas que a versão da esquerda apresenta.

Um exemplo bobo, mas prático: se uma pessoa precisar ir do ponto A ao B em 60 passos ao longo de um minuto, há duas possibilidades. Na primeira opção, ela anda de maneira consistente e atinge a meta durante um minuto; na segunda, a pessoa começa a caminhar, mas acha que está atrasada e dá alguns passos mais rápidos, para em seguida achar que está adiantada demais e começar a compensar com passos mais demorados. No fim, ambos chegaram no objetivo com 60 passos, mas somente o primeiro cenário foi realizado de maneira fluida.

Tecnicamente, é como se o jogo se perdesse no momento de gerar imagens. Imagine a seguinte sequência de imagens de um jogo em 30 fps, que vamos chamar i1, i2, i3 e i4. Em um cenário ideal, a GPU renderizaria na seguinte sequência: i1, i1, i2, i2, i3, i3, i4 e i4. As imagens são duplicadas pois há 30 fotos para serem exibidas na frequência de 60 hertz dos monitores. Em vez esperar e espaçar os renders, o hardware repete a sequência.

Os frames que são renderizados com atraso geram um descompasso no ritmo de exibição de imagens e causam a sensação de lentidão ou engasgos

Agora imagine que durante a execução do primeiro frame da sequência i2, ele ainda não está pronto e não foi enviado ao monitor. A solução? Repetir o anterior. Quando isso ocorre, há um problema de sincronização e algumas seções ficam mais rápidas ou mais lentas do que deveriam ser (i1, i1, i1, i2, i3, i3, i3, i4). Quando o hardware tem poder de fogo para rodar tudo a 60 frames por segundo constante, tudo ocorre dentro da normalidade. A grande dificuldade é quando o framerate é inconsistente.

Um exemplo de frame pacing ruim

Destrinchando o frame pacing com exemplos

Na teoria, nem tudo é tão simples de entender. Já que o assunto são os frames por segundo e frame pacing, é mais fácil dar exemplos práticos com jogos e comentar a variação de quadros para explicar de uma forma mais clara. Vamos pegar como exemplo o Bloodborne, jogo exclusivo de PlayStation 4.

No vídeo acima, você confere uma análise de performance da DLC The Old Hunters – que já contava com um patch de estabilidade de quadro de segundos. Apesar de rodar com 30 fps praticamente cravados, o título ainda sofre com gargalos de performance e engasgos perceptíveis. Como explicar isso se não houve queda de frames? A resposta: frame pacing.

Se você observar do lado esquerdo da tela, há outro gráfico. Apesar de parecer irrelevante, a mensuração de tempo de renderização de quadros (o frame time) tem sido mais importante que a própria média de fps em jogos. Lembra do exemplo da caminhada? Toda vez que o gráfico sobe e desce, significa que uma imagem foi exibida de maneira muito rápida e outra de forma muito lenta, gerando um efeito que se assemelha à perda de performance.

Um salto ou outro pode ser imperceptível, já que durante um único segundo há muitas informações para serem processadas. Contudo, sempre que o hardware se atrapalha com esses dados por muito tempo, temos um efeito visual evidente na tela. Outro exemplo é o Need for Speed Rivals, que você confere acima.

É notável a disparidade de tempo de renderização. Esses dois títulos são apenas alguns exemplos, mas há muitos outros títulos que sofrem com esses problemas. Dark Souls, Metro: Last Light, Titanfall (versão de Xbox 360) e muito mais.

A taxa de frames por segundo tem se tornado irrelevante para algumas empresas que já adotam a análise de frame time e de frame pacing para benchmarking

Diversas empresas e canais de informática estão passando a adotar o gráfico de frame time como benchmark para placas de vídeo, pois muitas vezes a taxa de quadros por segundo não condiz com o real desempenho, umz vez que, conforme você viu nos exemplos acima, ter uma taxa estável de quadros por segundo não implica mais em boa performance.

Para entender minunciosamente cada detalhe de frame time, você pode conferir o vídeo a seguir.

Afinal, o que é melhor? 30 fps limitado ou 60 fps variável?

Quando o desempenho está em 30 fps ou 60 fps, é mais fácil falar sobre frame pacing – já que a divisão de quadros é muito mais simples. Contudo, é impossível acertar o frame time quando a taxa de quadros é variável, como acontece em muitos dos jogos de computador (o desempenho é atrelado a hardware e configurações de exibição gráfica usuário) e em alguns de consoles (InFamous: Second Son faz isso).

Nesses casos, vale a pena limitar em 30 fps ou abusar do desempenho extra, mesmo com as quedas constantes? A maioria dos especialistas afirma que ter uma taxa de quadros fixa é, muitas vezes, mais agradável visualmente do que ver o game rodando entre 30 e 45, por exemplo, pois sempre que a performance voltar ao normal (30 fps) o efeito de desaceleração é atenuado (por mais que a média de frames nunca caia para menos que 30 fps).

No computador, alguns jogos possuem uma programação que altera automaticamente os dados de display, como é o caso de Batman: Arkham Knight e Crysis 3. Por exemplo: se você não conseguir rodar em 60 fps constantes, há um algoritmo que troca instantaneamente para 30 fps com limite, tudo para deixar a experiência livre de engasgos.

Deixar em 60 fps variável ou limitar em 30 fps fixos? Há vantagens e desvantagens, mas, no final, tudo depende da preferência do jogador

Afinal: nunca é bom ter uma taxa variável? Cada caso é um caso, mas muitos técnicos dizem que, se o game rodar em 60 fps e cair para uma performance mínima de 50 ou 45 fps, é melhor manter os números variáveis. No final, vai de pessoa para pessoa escolher o que é mais agradável.

O G-Sync e o Free Sync podem ajudar

Você pode se perguntar: por que não limitar os quadros por segundo em um valor maior, como 40 ou 45 fps? Se é para ter um desempenho abaixo de 60, por que não deixar da melhor maneira possível? A resposta é simples: a taxa de atualização dos monitores é 60 Hz por segundo, que recarrega o conteúdo do monitor em um ciclo constante, diferente do que ocorre na GPU do computador ou console.

Para corrigir esses problemas, há uma nova solução que ainda está amadurecendo no mercado: o G-Sync (Nvidia) e o Free Sync (AMD). Na teoria, essas tecnologias fazem o hardware e software se comunicarem com o monitor e, dessa forma, dizer ao display em qual momento ele deve atualizar a tela. Dessa forma, seria possível limitar a 45 fps um jogo e ainda manter o frame time na medida correta, algo que alguns usuários já fizeram.

No final das contas, todas essas informações servem para ressaltar um único ponto: quadros por segundo não são a única medida que importa, pois ela nem sempre implica em uma boa performance (conforme vimos nos exemplos acima, muitos títulos a 30 fps ainda tinham desempenho ruim). A tendência é que o frame pacing seja cada vez mais levado em consideração para agradar a nós, o público gamer.

Via TecMundo Games.

Você sabia que o TecMundo está no Facebook, Instagram, Telegram, TikTok, Twitter e no Whatsapp? Siga-nos por lá.