Passar para o conteúdo principal

Demo tecnológica a 60FPS da LucasArts para Force Unleashed II

Um aumentador de rácio de fotogramas que funciona? A Digital Foundry investiga.

Uma simples forma de interpolar a imagem intermediária é pegar no anterior fotograma e filtrá-lo baseado numa rendição “metade recuado” do mapa de velocidade do próximo fotograma.

Este tipo de interpolação produz alguns artefactos. Geometria estática (ambientes, por exemplo, podem gerar isto, mas os efeitos não são tão aparentes ao olho humano. No entanto, a geometria dinâmica dos personagens e objectos pode causar problemas. A engenhosa solução de Andreev na Xbox 360 é aplicar um down-sample ao último fotograma para 640x360, e filtrá-lo em três fases para remover os personagens completamente, removendo então os artefactos mais óbvios. Na pior das hipóteses num jogo com uma câmara na terceira pessoa como The Force Unleashed II, a impressão geral vai ser a de um jogo a 60FPS a correr com animação a 30FPS (um pouco como o Halo original no PC, se ainda se lembram disso...)

À esquerda vemos um fotograma não tocado, e perto dele artefactos encontrados no protótipo do escalador de rácio de fotogramas da LucasArts A imagem à direita mostra um fotograma interpolada nas fases mais avançadas do desenvolvimento. Quaisquer elementos em baixa resolução apenas são aparentes em alguns fotogramas com o olho humano a ajudar a misturá-los.

O desafio a partir daqui é colocar em fila o código para mostrar a nova imagem no momento certo – nenhum problema para qualquer uma das consolas se o teu jogo está fixo nos 30FPS. Segundo Andreev, se o jogo desce abaixo dos 30FPS a PS3 continua a ser capaz de “virar” no momento certo entre os dois fotogramas. No entanto, na Xbox 360, os TCRs da Microsoft – as regras tecnológicas que ditam o que podes e não podes fazer com o seu equipamento – insistem que todas as chamadas ao equipamento gráfico passem pelos seus próprios APIs, não existe um sistema equivalente no DirectX.

A solução de Andreev para apresentar a imagem interpolada num cenário sub-30FPS envolve falar directamente com o equipamento e contornar o API, violando o sinistro “TCR#12” da Microsoft – colocado para assegurar que todos os jogos funcionem com todas as revisões da Xbox 360 do passado, presente e futuro. Nada impede a Microsoft de o acrescentar a futuras revisões das suas ferramentas de desenvolvimento, mas é um interessante lembrete – se não um exemplo directo – de como restrita aderência à camada DirectX optimizada para consola da 360 pode estar a bloquear programadores mais aventureiros, algo que a Digital Foundry já discutiu no passado.

Falando deste mecanismo de reserva sub-360FPS para este sistema de escalamento de rácio de fotogramas, Dmitry Andreev lamenta que o “Direct3D API providencie praticamente nenhum controlo sobre o equipamento o que realmente desanima e torna a implementação de coisas bem básicas em algo bem complicado”.

No entanto, a demonstração disponível parece bem impressionante para uma prova de conceito, e segundo Andreev, o salto de 30FPS para interpolados 60FPS é realmente “livre” na medida em que o removido código de motion blur é mais “caro”, exigindo mais recursos do sistema, do que este escalador de rácio de fotogramas.

Segundo os seus números, o motion blur de The Force Unleashed II come até 2.2ms dos recursos na Xbox 360 (mais 0.4ms, menos 0.4ms) enquanto que a versão PS3 patrocinada por 5 SPUs é muito mais rápida a 1.4ms (mais 0.5ms, menos 0.5ms). Comparem isto com o escalador de rácio de fotogramas, que corre a 1.5ms na 360, e a 1.4ms na PS3 (de novo em paralelo ao longo de cinco SPUs).

Portanto, tendo em conta o quão entusiasmante esta técnica é e o quão dramáticos os resultados são, podemos esperar ver o escalador de rácio de fotogramas em efeito em Star Wars: The Force Unleashed II?

”Quanto a TFU2, não, não vai incluído no jogo por muito que o adorássemos,” diz-nos Andreev.

”Muito cedo na engenharia de produção (pré-produção de arte) decidimos não alterar a fluidez de trabalhos que podem afectar a arte e o design. Por isso cedo decidimos seguir com 30FPS motion blur uma vez que demorou à nossa equipa de renderização de três engenheiros mais de um ano a focar na performance e no trabalho do SPU da PlayStation 3.”

Mais do que isso, enquanto a técnica parece impressionante o suficiente colocada num motor de jogo já existente, Andreev reconhece que o sistema pode surgir por si mesmo caso integrado no desenvolvimento nas fases o mais iniciais o possível.

”Esta técnica torna a produção de jogos a 60FPS muito mais fácil, mas funciona melhor quando pensas nela durante o design do jogo. Arte, VFX, animações, etc...A produção de jogos nativos a 60FPS é quase inalcançável, é o quão difícil é, mas esta coisas aproxima-o mais da produção 360FPS.”

Enquanto existe alguma desilusão por não ver esta técnica no jogo final que vai para as lojas, o que vimos do sistema de motion blur na prova de conceito Xbox 360 parece bom, e baseado na informação revelada na conversa durante o SIGGRAPH, a versão PS3 deve ter uma vantagem de qualidade significativa.

”Vale a pena dizer que o motion blur faz uma enorme diferença quando comparado a correr sem motion blur,” salienta Andreev na sua apresentação.

”Mas renderizar a 60FPS leva as coisas para um nível diferente. Quando a correr a 60FPS podemos safar-nos sem o motion blur. Pode na mesma ser usado como efeito para as coisas que se estão a mover a velocidades não registáveis pelo olho.”

Enquanto o sistema pode não ser visto imediatamente a duplicar rácios de fotogramas a 30FPS, variantes da técnica em si podem ser usadas para trazer outras melhorias à qualidade da imagem, e realmente, podemos esperar ver algo disto a funcionar no futuro Crysis 2, se a recente apresentação da Crytek servir como indicador. Aqui vemos como a diferente implementação de muito do mesmo princípio suaviza os problemas de aliasing (não apenas baseado nas arestas) na distância longínqua da cena.

Demo de anti-aliasing do CryEngine 3. Usem o botão de ecrã completo para resolução completa.

Em adição a um mais comum detector de arestas/blur para objectos aproximados, eles usam uma abordagem de reprojectar o pixel para o anti-alising para elementos distantes na cena. Eles renderizam o actual fotograma, e então usando a câmara do anterior fotograma projectam em reversão cada pixel para o espaço de ecrã do anterior fotograma. Eles comparam então o actual valor de profundidade com o valor de profundidade do último fotograma e se são similares, eles mistura os dois buffers de cor.

Combinar isto com alguns ajustes por fotograma dá-lhes a adicional camada de anti-aliasing, e é a crença da Crytek que o resultado geral é muito melhor que a extremamente impressionante solução MLAA da Sony que está agora disponível para todos os programadores inserirem nos seus jogos como parte do SDK PS3. Além desta aplicação em particular, o re-projectar de pixeis pode também ter um papel na produção de abordagens de baixo custo (em termos de recursos de sistema) ao 3D estereoscópico. Na verdade, Sebastian Aaltonen da RedLynx, membro chave na tecnologia por detrás de Trials HD, falou connosco sobre algo dentro destas linhas que experimentou no passado.

Já passaram quase cinco anos desde que a Xbox 360 chegou às mãos dos jogadores, e enquanto é improvável ver-mos muito em termos de novos paradigmas para a renderização nas máquinas da actual geração, esta técnica é ainda outro exemplo de como a tecnologia pode ser empurrada para novos níveis de performance que nunca poderiam ter sido antecipados no lançamento. Melhorias na qualidade de imagem não está a ser alcançadas por força bruta – na verdade podes quase descrever técnicas como esta e a MLAA da Sony como engenhosos “hacks” que usam a esperteza do programador para produzir resultados muitas vezes radicais.

Com os donos de plataformas, editoras e criadores a desejar todos ter pelo menos mais dois a três anos com as plataformas da actual geração, inovação como esta é enormemente bem-vinda – e igualmente, é bom ver criadores de jogos dispostos a partilhar as suas técnicas em fóruns como a GDC e SIGGRAPH, levando a um conhecimento saudável comum que melhora a qualidade base dos jogos que jogamos.

Lê também