Passar para o conteúdo principal

Entrevista Tecnológica: Gestor de rácio de fotogramas da LucasArts

Digital Foundry fala detalhadamente com o criador da "milagrosa" tecnologia 60FPS.

Digital FoundryNão existe um problema de latência? Certamente vão ter uma actualização a 60FPS mas latência de controlador similar a um jogo a 30FPS? Não é lógica de jogo actualizar na mesma a 30Hz?
Dmitry Andreev

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.

Digital FoundryJogos de consola parecem ter-se ficado pelos 30FPS, mas mesmo aqui temos quedas de fotogramas e screen-tear frequente baixando o nível de performance. Fora do entusiasmante uso de 60FPS, poderia a técnica ser usada para "nivelar" a performance em jogos a 30FPS?
Dmitry Andreev

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.

Sabres de Luz não são suportados na demo do gestor de rácio de fotogramas, que obviamente estarão no jogo completo. Isto é um exemplo de como efeitos individuais in-game podem precisar de processamento especial para trabalhar com a tecnologia de interpolação.
Digital FoundryPodem prever quaisquer tipos de jogo nos quais não seria apropriado devido a demasiada alternância nos fotogramas? Iria funcionar num FPS ou jogo de condução com movimentos rápidos?
Dmitry Andreev

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.

Digital FoundryDescreve a versão SPU do seu código de motion blur como sendo de maior qualidade. Em paralelo em cinco SPUs, é também mais rápido que a solução 360. Qual é a vantagem na qualidade? Iria este aumento na qualidade e velocidade também aplicar-se ao processo de aumentar o rácio de fotogramas?
Dmitry Andreev

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.