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.

Na Terça-feira, o Digital Foundry cobriu a apresentação no SIGGRAPH 2010 do artista da LucasArts, Dmitry Andreev, sobre o processo de aumentar o rácio de fotogramas. Este intrigante conceito potencialmente oferece todas as vantagens de renderizar um jogo de consola a 30FPS, juntamente com as suavidades visuais e potencialmente até mesmo a mais apurada resposta de jogos a 60FPS.

Quase cinco anos no ciclo de vida da Xbox 360, é uma visão fascinante sobre o tipo de truques, técnicas e pensamento que os programadores estão a empregar para produzir títulos de consola ainda mais impressionantes.

Se não descarregaram o vídeo da demonstração esclarecedora de Andreev mostrando a técnica em curso no motor de Star Wars: The Force Unleashed II, vale bem a pena, com ambas as versões HD e standard def disponíveis para serem descarregadas, e também com a apresentação original online para ser vista pelo público. Não se esqueçam de ter instalado um descodificador h264 nas vossas máquinas para que possam ver os ficheiros AVI (o Windows 7 tem um instalado por predefinição).

Nesta entrevista tecnológica de acompanhamento com Dmity, cobrimos as bases, discutimos a implementação na demonstração tecnológica em maior detalhe e falámos sobre o potencial da técnica em futuros títulos para consolas.

Digital FoundryPodes dar-nos um resumo básico sobre a tua técnica em termos de leigos? Estamos mesmos a ver uns efectivos 60FPS com todas as vantagens de renderizar a 30FPS?
Dmitry Andreev

A ideia básica é construir um fotograma extra baseado no anterior [usando] nova informação disponível para o actual, novo fotograma, e apresenta-lo no meio da renderização 30FPS enquanto ainda a trabalhar no actual fotograma. Desta forma, tecnicamente, estamos a ver efectivamente um 60FPS com todas as vantagens de renderizar a 30FPS.

Digital FoundryO seu discurso na sua apresentação sobre pontos cegos no olho humano – como os estão a usar para vossa vantagem com esta técnica?
Dmitry Andreev

Bem, um dos pontos que estava a tentar fazer com esta apresentação é que coisas bem complexas podem na verdade ser muito simples assim que começares a pensar sobre elas. Resolver as coisas pela analogia, pelo tentar ver o porquê de algo acontecer. Todos eles tem influência indirecta e é por isso que é mais difícil ver uma solução mais simples. Frequentemente as pessoas perguntam, "Porque estás a fazer isto ou aquilo? Não tem nada haver com o problema."A finalidade é que tem. Podes não encontrar a solução para o problema original, mas frequentemente encontras outras coisas interessantes que levam a tua curiosidade mais além, e desta forma podes encontrar soluções inesperadas para vários problemas.

O olho humano e todo o sistema visual é uma grande inspiração para mim. Faz-te pensar, faz-te imaginar. Há algum tempo atrás, após ler um livro chamado "On Intelligence" por Jeff Hawkins, criei protótipos para algumas redes neurais com conexões de feedback, estimulado a inserção em falta do ponto cego. De facto, a rede pode prever o que irias ver assim como responder a certas ilusões ópticas da forma que o sistema visual real faz.

Também fiz muitas experiências, tentando inserir diferentes padrões em redor do ponto cego e tentando observar o que acontecia. Isso deu uma ideia de que é definitivamente baseado em padrões, é localizado mas não em redor do "limiar" e não é muito largo. Então pensei sobre como se pareceria em movimento e o facto é que não viola as previsões que o nosso cérebro faz em redor da imagem. Teríamos tendência para notar coisas que mudam ao invés de coisas que não mudam.

É um conjunto de ideias como esta que são usadas para nossa vantagem.

Renderização a 30FPS tornou-se a norma no desenvolvimento para consolas uma vez que ter o dobro do tempo por fotograma permite técnicas de renderização mais avançadas. O gestor de rácio de fotogramas permite as vantagens de uma actualização a 60Hz combinado com visuais mais impressionantes.
Digital FoundryPode falar sobre o processo no qual você remove as personagens da cena? Porque é que isto é necessário? É para reduzir o artefacto no processo de interpolação nos personagens?
Dmitry Andreev

Isto não é necessário no geral. Como discuti em comentários, todos os personagens poderiam ser renderizados novamente a 60FPS, ou poderiam ser renderizados em separado do cenário. Acontece que eles podem-se mover de qualquer forma que quiserem. Por isso a forma mais fácil é ter uma versão do cenário sem os personagens, e usas essa versão sempre que detectámos um artefacto.

Agora, com renderização avançada é fácil renderizar o ambiente primeiro, guardar algures e então renderizar os personagens por cima dele. Mas torna-se difícil fazer a mesma coisa com o uso de técnicas diferidas. Por isso quando estava a trabalhar numa implementação para consola não queria sequer pensar sobre refazer muita da nossa linha de trabalho de renderização diferida. Já está loucamente optimizado com diferentes tipos de truques. É por isso que pensei que seria melhor simplesmente remove-los de alguma forma do existente fotograma e então usar isso para remover os artefactos.

Mas devo dizer que é mais do que o remover de um personagem. É também remover todas as outras regiões problemáticas. Na demo que viram é apenas usado para as personagens. É isto a que me refiro ao dizer que a conversa não deve ser compreendida literalmente.