11/12/07

Demasiados FPS?

Cuantos fps son necesarios para jugar al Counter Strike? 30? 60? 100? mas? existe un limite? Esta pregunta aparentemente sencilla puede resultar bastante complicada de responder.

Para empezar, una bonita definicion. Como cualquier gamer medio decente sabe, fps, frames per second o tambien fotogramas por segundo es el numero de imagenes que vemos en pantalla en cada segundo. Si un juego va a pocos fps los movimientos empiezan a resultar torpes y en algunos casos el juego puede resultar frustrante e injugable.

Los fps no son una medida lineal

Los fps se han convertido en el metodo estandar para medir la velocidad de ejecucion de los juegos. Sin embargo, hay un pequeño y sutil problema con el uso de este metodo: desde un punto de vista matematico, los fps no son una medida lineal. Que quiere decir esto? Veamoslo con un ejemplo.

Supongamos que tenemos dos tarjetas graficas distintas, y tras evaluar el rendimiento de ambas en nuestro juego con las sombras al minimo y con las sombras al maximo obtenemos los siguientes resultados:

Tarjeta 1 (Sombras al minimo) = 900 fps
Tarjeta 1 (Sombras al maximo) = 500 fps

Tarjeta 2 (Sombras al minimo) = 60 fps
Tarjeta 2 (Sombras al maximo) = 55 fps

La medida de fps es util para saber que tarjeta es mas rapida, pero no lo es tanto para evaluar las diferencias de rendimiento reales. Por ejemplo, diriamos que hay mas diferencia de rendimiento al activar las sombras de alta calidad en la tarjeta 1 o en la 2? Atendiendo unicamente a la medida de fps podriamos pensar que hay mas diferencia en tarjeta 1, ya que pierde nada menos que 400 fps, mientras que la 2 unicamente pierde 5...

Sin embargo, si pasamos los fps a milisegundos (ms), es decir, si calculamos el tiempo que tarda en pintar cada fotograma, puede que nos llevemos una sorpresa:

Tarjeta 1 (Sombras al minimo) = 900 fps = 1000 / 900 = 1.11 ms
Tarjeta 1 (Sombras al maximo) = 500 fps = 1000 / 500 = 2.00 ms

Tarjeta 2 (Sombras al minimo) = 60 fps = 1000 / 60 = 16.66 ms
Tarjeta 2 (Sombras al maximo) = 55 fps = 1000 / 55 = 18.18 ms

Es decir, activar las sombras complejas en la tarjeta 1 ha costado 0.89 ms, mientras que en la tarjeta 2 ha costado 1.52, con lo que la perdida de rendimiento ha sido mayor en esta ultima.

En el siguiente cuadro podemos ver la curva que describen los fps en relacion al tiempo que se tarda en pintar cada fotograma.
Cuantos fps puede detectar el ojo humano?

Vale, si, muy bonito, pero aun no sabemos cuantos fps hacen falta para jugar al Counter Strike no? En realidad la pregunta que deberiamos hacernos es "cuantos fps es capaz mi ojo de procesar?" Hay quien dira que en el cine se usan 24 fps, y que ya se ve de sobra... Lo cierto es que si nos ponemos quisquillosos, en realidad el cine va a 48 fps, ya que cada fotograma se repite 2 veces para minimizar el parpadeo percibido. Pero la cuestion es que no queremos saber a que numero de fps se ve aceptablemente bien, sino en que momento dejamos de percibir una mejora por aumentar el numero de fps. Hace unos años la USAF realizo un experimento con pilotos de cazas de combate que consistia en situarlos frente a una pantalla en una habitacion oscura y mostrar durante un breve instante de tiempo una foto de un avion. Los pilotos tenian que tratar de identificar el avion de la foto, y cada vez se mostraba la imagen durante menos tiempo. Los resultados demostraron que los pilotos eran capaces de identificar los aviones con tiempos de exposicion de las fotos de tan solo 4.5 ms, es decir, unos 220 fps. La realidad es que no se sabe donde se encuentra el limite real del ojo humano, pero lo que si es seguro es que es capaz de percibir mas de 200 fps.

En la practica

Asi pues, el ideal seria que nuestro juego corriese al menos a esos 200 fps. En la practica, y desde mi experiencia, el objetivo deberia ser que en ningun instante del juego estuviesemos por debajo de 100 fps. Resalto lo de "en ningun instante", ya que los fps no son siempre constantes, y en momentos de mucha intensidad de fuego, con granadas, humo y jugadores por todas partes el rendimiento baja considerablemente y el tiempo de frame puede incrementarse facil un par de ms. Y ya sabemos lo que un par de ms pueden hacerle a nuestros fps verdad?

How many frames per second can the human eye see?
FPS Versus Frame Time
Human Eye Frames Per Second

No hay comentarios: