O computador costuma armazenar e ler dados em uma memória temporária, chamada buffer. Sendo assim, existe o Double Buffering — ou Buffer Duplo, em português — que é quando se usam dois buffers.
A vantagem de se usar dois buffers ao invés de um só é muito simples: enquanto o computador armazena dados em um dos buffers, ele pode ler no outro. É como se fosse um revezamento, o PC grava dados no Buffer A e lê no Buffer B; depois, lê no Buffer A e grava no B. Dessa forma ele nunca para e simplesmente corta pela metade o tempo que gastaria.
Como isso funciona nos games?
Na computação gráfica, o Double Buffering evita que acabemos vendo o que não está pronto passar na tela. Ou seja, a placa de vídeo deve processar de maneira extremamente rápida os dados gráficos para que, ao tempo que nós vemos algo na tela, tudo esteja como devia ser.
Em um jogo, quando isso acontece, elementos piscam no cenário e algumas formas até mesmo ficam pela metade e sem texturas — acontecem os chamados pop-in. Isso pode ser visto em jogos que têm muitos elementos na tela, como Grand Theft Auto, SimCity e até mesmo Spore.
Um buffer, dois buffers; três buffers!
O Buffer Triplo (Triple Buffering) é uma variação do Duplo. Ele garante que a velocidade melhore em relação ao Buffer Duplo, e procura deixar a taxa de quadros por segundo menor que a taxa de atualização do monitor. Resumindo: o Buffer Triplo ajuda o computador a garantir mais ainda que você não veja o que não está pronto (muito mais rápido do que o Duplo).
Isso porque, por ter um Buffer a mais, é como se fosse mais um reservatório de dados para o PC usar. Pois mesmo que haja revezamento entre dois Buffers, é preciso esperar um deles ser limpado para poder gravar de novo. Com três Buffers você garante trabalho contínuo, sem parar. É como se o terceiro Buffer fosse o reserva. Dessa forma, não há motivos para se utilizar mais do que três, pois o PC não precisaria de um quarto ou quinto.
Veja um exemplo em Grand Theft Auto IV, quando um prédio supostamente não existia e de repente ganhou forma e texturas.
No exemplo acima ocorreu um atraso na leitura de buffers. Ele pode ser visto no artigo sobre pop-in, assim como uma explicação melhor sobre o problema.
Categorias