sexta-feira, 1 de abril de 2011

Termos Técnicos: FPS, Slowdown e Anti-Aliasing

Vamos aprender mais alguns termos para enriquecer nosso vocabulário de criadores de jogos. Vamos começar com um simples, e certamente, quem costuma jogar jogos de PC já deve ter se deparado com ele, os FPS, não o do tiro em primeira pessoa, esse é o referente a velocidade do jogo.

FPS significa Frames per second, ou para o português, Quadros por segundo. Quem já comprou um jogo que tinha um desempenho lento na sua modesta placa de vídeo deve já conhecer esse termo na prática. O número de frames por segundo que nossos jogos podem exibir está ligado ao desempenho, se você tentar executar um jogo muito pesado em uma placa de vídeo simples, certamente obterá poucos FPS, e poderá sentir isso ao ver uma certa lentidão no decorrer do jogo.

O termo na verdade não nasceu no mundo dos games, na verdade ele é um termo que já era usado já no inicio do cinema mudo. Por exemplo, o filme da Disney A Branca de neve e o sete Anões de 1937 é um marco na história da animação por ser um dos primeiros longas animado a ter 24 FPS, imagina na aquela época, sem computador algum, desenhara e pintar a mão 24 quadros para cada segundo do filme.

Mas voltado para os jogos, hoje os jogos se limitam a 60 FPS, um número suficiente de frames para não deixar nossa visão perceber qualquer parada entre um frame e outro. Porém nem sempre os jogos conseguem atingir 100% desses 60 FPS. Para os jogos de PCS isso normalmente está relacionado ao baixo desempenho do computador e da placa de vídeo, porém esses baixos desempenhos podem ser encontrados em alguns caso nos consoles, é mais raro de fato, pois os jogos de consoles são produzidos para uma configuração especifica enquanto os de PC são produzidos para atender sempre a ultima linha de placa de vídeo existente. Quando isso ocorre em um jogo que está em um PC de ótimas configurações ou mesmo em um console, usamos o termo Slowdown.

Os Slowdown, que pode ser traduzido para lentidão, ocorrem normalmente quando há muitos elementos gráficos na tela ao mesmo tempo, por isso nem sempre é possível prever que eles ocorram em um jogo. Pegamos um exemplo conhecido, GTA San Andreas, se você une uns 20 carros em um local que tem diversos pedestres passando e começar a atirar para todos os lados até a policia aparecer, isso tudo somado a um efeito de tempo como chuva, na maioria dos computadores ou mesmo no PS2, teremos uma queda no número de FPS, então teremos um slowdown.

Nem sempre é possível evitar esses casos, as chances são maiores quando estamos tratando de jogos com uma diversidade de opções como GTA. Porém existem muitas formas de tentar evitar isso, muito programadores optam por programar uma espécie de medidor de FPS, caso ele comece e se mostrar baixo são desativados ou minimizados certos efeitos temporariamente que talvez não sejam notados em cenas tão complexas. Um desses efeitos pode ser o Anti-Aliasing.

O Anti-Aliasing ou Anti-Serrilhado se trata de um efeito para disfarçar serrilhados gerados pela utilização de pixels na renderização. Um exemplo clássico, você conhece o Mario? Certamente já deve ter visto o primeiro jogo do Mario ou mesmo o boneco em algum lugar por ai mesmo que de relance. Se notarmos ele é feito de poucos pixels, isso logo causa um enorme serrilhado em sua forma, ao invés de deixá-lo redondo.
Da época em que  o primeiro Mario foi lançado até hoje os processadores evoluíram e hoje podemos exibir um número maior de pixels na tela, porém ainda estamos limitados aos pixels, logo também estamos limitados aos serrilhados, afinal para os pixels não existem nem uma forma perfeitamente arredondada. Para evitar esses serrilhados então foi criado o Anti-Aliasing, que nada mas faz do que pegar as formas geradas pelo pixels e gerar uma linha de pixels que contorne as formas e o plano de fundo da imagem, essa linha  misturaram as cores das formas e do plano de fundo até deixar o contorno mais suave e desfocado.

Para criar o efeito Anti-Aliansing, é necessário que o processador e placa de vídeo faça muitos cálculos que envolvem cores, distancia dos objetos, textura, etc. Logo o efeito Antia-Aliasing pode ser um efeito muito pesado para o processador e como ele normalmente só é notado em cenas menos movimentadas, ele pode ser desativado em cenas mais complexas de se gerar em pró da produtividade do processador e sem afetar drasticamente o visual de um jogo. Existem outras técnicas para se atingir um ótimo desempenho e evitar slowdown nos jogos, e se possível futuramente falarei sobre eles.

2 comentários: