30 ou 60 fps sempre foi uma discussão acessa. Mas e entre ter fotogramas soltos entre os 30 e os 60 ou 30 fixos, qual o melhor?
Já se questionaram porque motivo os programadores definem sempre os fotogramas como 30 ou 60? Porque não 40 ou 50?
Bem, certamente muitos de vocês saberão responder a isso, ou pelo menos ter uma ideia. Aliás já falamos aqui em alguns dos inconvenientes de se ter fotogramas acima e abaixo do refrescamento do ecrã no nosso artigo sobre o screen tearing.
Mas o screen tearing pode ser resolvido, com o acréscimo de back buffers. A questão é que ele não é o único inconveniente que nos aparece!
Como sabem normalmente o output das consolas dá-se a 60 Hz. Um refrescamento que todos os ecrãs suportam, o que significa que na TV o ecrã é varrido 60 vezes num segundo sendo apresentada uma nova imagem.
Ora se temos um jogo a 60 fps, estamos na situação ideal. Cada varrimento do ecrã terá direito a apresentar uma imagem diferente pois o número de varrimentos e de imagens processadas coincide exatamente.
Isso quer dizer que estamos numa situação onde a fluidez é a mais perfeita, e onde a percepção da resposta dos comandos é igualmente a melhor.
Há claro situações onde podemos subir o refrescamento do ecrã para acompanhas fotogramas acima dos 60. Mas normalmente o standard do mercado é 30 e 60 fotogramas até porque os 60 Hz são um standard suportado por todos os televisores, independentemente do preço e características.
Ora quando estamos perante esta situação, com 60 Hz na TV (como já referido, o standard) e 60 fotogramas na consola, o que se passa é que temos um fotograma por cada varrimento. Ou seja:
Varrimento | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
Fotograma | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
Poderiamos continuar até aos 60, mas a ideia passa! A cada varrimento temos 1 fotograma!
Quando descemos o número de fotogramas para 30 o que se passa é algo diferente:
Varrimento | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
Fotograma | 1 | 1 | 2 | 2 | 3 | 3 | 4 | 4 | 5 |
Como se pode ver, só a cada dois varrimentos de ecrã é que temos um novo fotograma. No entanto a mudança é algo constante, ocorrendo a um intervalo de tempo fixo.
Mas o que acontece se num jogo que não é capaz de atingir os 60 fps, deixamos os fotogramas livres?
Imaginemos que estamos com 40 fps!
Ora 60/40 = 1,5. Isto quer dizer que deveriamos mudar o fotograma a cada varrimento e meio! E isso não é possível pois ele só pode ocorrer durante um varrimento e nunca a meio do mesmo.
Como consequência de tal o que teremos é o seguinte:
Varrimento | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
Fotograma | 1 | 1 | 2 | 3 | 3 | 4 | 5 | 5 | 6 |
Como podemos ver os fotogramas impares ficam no ecrã o dobro do tempo dos pares. Isto implica que se note disparidade na fluidez dos movimentos. O chamado “judder”!
Esta situação pode tambem acontecer se tivermos menos de 30 fps, e acontece sempre que ao dividirmos os 60 hz pelo numero de fotogramas o resultado não seja um número inteiro.
No entanto, dado que no caso de fotogramas não bloqueados abaixo dos 30 ou acima dos 30, o seu valor é variável apenas sentiremos esta situação quando o número de fotogramas obtido, durante algum período mais considerável, ao ser dividido por 60, não seja um valor inteiro. Aqui, ao contrário do caso de fotograma entre os 30 e 60, estamos perante uma situação onde não podemos resolver a mesma limitando os fps pois o problema é mesmo falta de capacidade de processamento!
A realidade é que os jogadores mais atentos sentem este “judder” sempre que há variações nos fotogramas, e daí que o seu número ser fixo e estável é o ideal!
Devido às emissões TV serem 24 fps, alguns televisores possuem interpolação de fotogramas (motion interpolation) para refrescamentos mais elevados que eliminam completamente essa sensação. No entanto esses compensadores são um pós processamento que normalmente está desligado nas configurações para jogos das TVs uma vez que causa atrasos na representação da imagem (lag).
Esta situação encontra-se agora resolvida pela tecnologia G-sync da Nvidia e Freesync da AMD (suportada pela PS4 e que será igualmente suportada pelo Project Morpheus), que permite na presença de monitores devidamente equipados para tal, mudar a taxa de refrescamento de forma dinâmica de forma a acompanhar os fotogramas, e mantendo assim uma imagem sempre suave (basicamente o monitor apenas refresca quando há uma nova imagem). Devidamente acompanhada de “motion interpolation” estas tecnologias permitem a obtenção de 60 ou mais fps constantes, por interpolação, e sem atrasos na representação da imagem.