O Projeto SmoothVideo usa interpolação de quadros para aumentar os qps do vídeo de 24 para 60. Os resultados são impressionantes . Fiquei me perguntando se isso poderia ser aplicado, e se ficaria bem em videogames?
Ele usa muito menos recursos do que renderizar todos os quadros, de modo a permitir que plataformas de extremidade inferior renderizem com a qualidade de plataformas muito melhores em algum nível de comprometimento. Sei que não será tão preciso e aumentaria levemente a latência de entrada, pois precisa se apegar ao novo quadro para poder gerar e inserir o interpolado. Não é tão ruim quanto um quadro completo, pelo meu raciocínio, apenas o atraso seria o tempo de interpolação mais metade do tempo original de atualização de fps. Então, por 30 fps, seria 33ms / 2 + tempo de interpolação.
Talvez esse atraso o torne inadequado para jogos anteriores em primeira pessoa, mas duvido que seja um obstáculo para jogos mais lentos.
O atraso fica menor com taxas de início mais altas, então eu acho que certamente valeria a pena passar de 60fps para 100 + fps, o que melhora a experiência, embora cada vez mais marginalmente, ao mesmo tempo em que é extremamente exigente no sistema.
fonte
Respostas:
Um sistema nesse sentido foi usado em The Force Unleashed . Eu não estou ciente de outros títulos que o usaram.
fonte
Sim, é possível, mas não é sem suas complicações.
Embora a interpolação de quadros possa funcionar em tempo real nos vídeos, isso não é necessariamente o caso dos videogames. Mesmo processando vídeos em tempo real, o software é capaz de "olhar adiante" para o próximo quadro. Este é um componente bastante crítico da interpolação. É aqui que o problema entra em jogo com os jogos. Na maioria das vezes, o próximo quadro ainda não foi renderizado! Portanto, o software não sabe o próximo ponto na interpolação.
Certamente, há a possibilidade de rodar o jogo um ou dois quadros atrás, a fim de fornecer ao seu software de interpolação os quadros com os quais ele precisa trabalhar. No entanto, isso não funciona tão bem para mídias interativas. Agora, o que está sendo mostrado na tela está atrasado com a entrada recebida. Isso torna as coisas mais complicadas para processar entradas e fornecer uma boa capacidade de resposta ao jogo. É como construir um atraso de desempenho artificial. Além disso, é improvável que tenha suporte nativo em qualquer um dos principais mecanismos de jogos, o que significa escrever o seu próprio.
fonte
Sim, isso não é apenas possível, mas disponível agora: conecte o PC / console do jogo a uma TV que usa interpolação de movimento . As opiniões variam, e isso é menos adequado para jogos como o FPS devido ao atraso na interpolação, mas para aumentar as taxas de quadros de 60 a 120Hz, funciona bem.
Quanto a se isso pode ser feito no próprio jogo, ainda não há ímpeto suficiente, pois a maioria dos monitores não consegue produzir essas altas taxas de quadros. Os monitores de 120 + Hz para computadores são menos comuns, embora, a julgar pelo andamento das TVs, isso possa acontecer em breve. Ter um monitor com alta taxa de atualização tem vantagens mesmo que o jogo não atinja essas taxas de quadros: além da interpolação de movimento baseada na TV acima mencionada, ele pode oferecer quadros mais suaves se o jogo puder gerar quadros como estão prontos, em vez de sincronizados até ala v-sync. Uma vez que os monitores de 120 Hz são comuns, espero que os desenvolvedores de jogos se atualizem e comecem a usar mais truques, incluindo interpolação de movimento, para atingir essas altas taxas de quadros.
fonte
O atraso entre quando o usuário faz alguma coisa e quando o resultado aparece na tela nunca deve exceder 100 ms ou o usuário pode perceber o atraso.
O monitor do usuário pode demorar cerca de 30 ms para exibir a imagem que recebe. Monitores muito mais rápidos estão disponíveis, mas muitos usuários comuns não os possuem. Se a placa de vídeo calcular 30 quadros por segundo, são necessários 33 ms para calcular um quadro. Eu assumo 30 qps porque não precisamos de interpolação de quadros se o jogo já roda a 60 qps. Se usarmos o buffer triplo, esse número será dobrado para 66 ms. Isso é 90 ms.
Eu acho que precisamos de buffer triplo para a interpolação de quadros para fazer sentido. Portanto, se usarmos a interpolação de quadros acima disso para obter 60 qps, aumentamos o atraso em um quadro de 60Hz, que é outro 17 ms + tempo de interpolação X, levando-nos a 107 ms + X. O problema não é a interpolação, pois isso, mas o fato de já estarmos perto do ponto em que a latência é perceptível antes de introduzirmos a interpolação.
Provavelmente seria bom para um jogo que é principalmente um filme virtual, mas em um FPS os usuários notariam que algo está errado com o objetivo.
fonte