Entrevista Tecnológica: Gestor de rácio de fotogramas da LucasArts
Digital Foundry fala detalhadamente com o criador da "milagrosa" tecnologia 60FPS.
Com a solução baseada num fotograma, que podem ver na demo Xbox 360, não existe nenhuma latência extra adicionada. Tecnicamente falando, a latência é reduzida consoante obtens o novo resultado mesmo antes de ter sido construído.
Outra coisa é que eu apenas falei sobre o aspecto visual da renderização a 60FPS. Ir mais além disso tornaria isso muito mais confuso. Além do mais, todo o timing e atrasos são relativos ao GPU, entre a renderização e a jogabilidade. Existem formas para ajudar com isso. Jogos de corrida, por exemplo, correm a simulação e a jogabilidade a rácios de fotogramas ainda maiores como 120FPS mas renderizam apenas a 30FPS.
O importante é que a técnica não introduz latência extra em cima da que já tens. Solução baseada em dois fotogramas iria introduzir um fotograma extra de latência, mas não a nossa actual implementação em tempo real.
Estás absolutamente certo. Fazer um jogo a 60FPS é realmente difícil e podes pensar que um a 30FPs é mais fácil. Mas acontece que mesmo os jogos a 30FPS não são assim tão fáceis de fazer mantendo uns sólidos 30FPS. Porquê? Bem, isso seria outra boa pergunta. E isto é uma das dificuldades que eu espero.
Se alguém me tivesse dito de que temos um jogo sólido a 30FPs, podes torna-lo 60? Sim, "facilmente". Porque quando o rácio de fotogramas baixa a 30 parece mau, mas quando ele desce de 60 parece ainda mais notório, principalmente por causa do screen tearing. Realmente não queres isso. Mas como um mecanismo de prevenção tive que o discutir de qualquer forma. Novamente, depende da cena. Se o rácio de fotogramas baixa durante a explosão ou algo, quando a câmara não se move muito, o screen-tearing vai ser menos notório. Portanto é na mesma algo bom de fazer. Mas apenas mantém-no a sólidos 30.
Dos testes iniciais que fiz, os first-person shooters foram o caso mais fácil de lidar, porque a câmara está maioritariamente a rodar à volta de si mesma. Então vem um título na terceira pessoa com uma câmara mais ou menos fixa, como um jogo de corrida. Geralmente não a controlas por isso as coisas movem-se mais ou menos iguais. Depois vem uma câmara livre na terceira pessoa sem os objectos quase alpha. As personagens causam mais uns problemas, mas continua a ser fácil de gerir.
Finalmente em termos de dificuldade existe o jogo na terceira pessoa com câmara livre com muito alpha blending em redor do ponto de rotação. É este alpha que causa muitos problemas a não ser que o interpoles em separado e faças muitos outros truques.
Mas todas estas coisas são fáceis de gerir quer pelo lado da renderização, pelo lado da arte ou pelo lado da jogabilidade.
A chave principal da implementação do GPU é o número de amostras que estás a processar, nem sequer a largura de banda em si, especialmente na Xbox 360. Mas o facto da qualidade adicional usar os SPUs seria verdade no caso da interpolação também. Poderias fazer muitas mais verificações e correcções com os dados actuais no SPU como fazíamos para a nossa solução de motion blur.
Por exemplo, no caso da interpolação dos SPUs, a actual computação demora cerca de 0.3ms em 1.2ms. Esses 0.3ms estão em paralelo com 1.2ms. Por isso a complexidade do algoritmo poderia ser aumentada quatro vezes sem afectar a performance extra, uma vez que é destinada à transferência de memória de qualquer forma.
No caso do motion blur, a qualidade de vantagem é....a qualidade. O número de amostras e outros pontos extra permitem-te ganhar um blur mais suave. No caso da interpolação isso iria traduzir-se no menos o possível de artefactos uma vez que podes perder mais tempo a corrigi-los.