viernes, 23 de enero de 2009

Evolución de los motores gráficos en los videojuegos



Como objeto de este análisis me centraré principalmente en los motores gráficos de los FPS, más específicamente en aquellos que presentan entornos tridimensionales. Elegí este género de juegos principalmente porque son los punteros en cuanto a desarrollo gráfico, no así en otros aspectos, pero estos escapan al eje central de este estudio. Existen dos tipos de entornos tridimensionales en el mundo de los videojuegos: los simulados y los “computacionalmente” reales. Los primeros basan sus motores en llevar gráficos 2D a 3D y los segundos son netamente mundos en 3D y evidentemente la evolución de los primeros; más adelante veremos las diferencias.

Primera etapa: 1973-1990 FPS tempranos.

En esta primera etapa es cuando comienzan a surgir los primeros intentos de recreación de mundos tridimensionales. Se empiezan a ver las primeras cámaras que permiten un movimiento de 360º (aunque no todas en esta época las implementan). Los escenarios de estos juegos primigenios eran muy sencillos comparados con los actuales, pero en su época fueron un hito y muy posiblemente sin ellos no existiría la calidad actual que disfrutamos en los juegos. Se basaban principalmente en polígonos sencillos como cuadrados o triángulos sin texturar, solo rellenados por un color, en el mejor de los casos, o blanco y negro. La totalidad de estas implementaciones eran tan costosas computacionalmente que el hardware de la época se rendía ante ellos. Tanto era así que en algunos casos no superaban los 2 frames por segundo. A continuación los juegos más significativos de la época.

1973 – Maze War
1980 – Battlezone
1987 – Driller (Freescape Engine)
1987 – Midi Maze

Segunda etapa: 1990-1995 La aparición de las texturas.

Quizás uno de los hitos más grandes en la historia de los videojuegos es la introducción de la tercera coordenada en el mundo virtual que nos presentan, pero si esto se hubiera detenido ahí hoy podíamos estar hablando de los mismos juegos que hace 30 o más años con millones de polígonos más, quién sabe; sin embargo el sector estaba en auge y la cantidad de compañías de diversa índole, no solo centradas en los juegos, comenzaron a interesarse por el género y a desarrollar aplicaciones más complejas que con el paso del tiempo se convertirían en verdaderas obras de arte.
Recopilando, hasta aquí, los juegos, en el mejor de los casos, nos ofrecían un mundo en pseudo-3D con entornos sólidos de colores que se asemejaban muy poco, por no decir nada a la realidad, aunque este último punto, el realismo, no era crítico en estos años, los polígonos violetas o amarillos o los escenarios alámbricos dejaban mucho que desear…fue entonces cuando surgieron las primeras texturas, para muchos el mayor hito en la historia de los videojuegos, y es que sin texturas un juego no es más que eso, un simple juego. Gracias a la genialidad de la dupla de oro de Id Software (John Carmack – John Romero), los FPS, amén de otros géneros, se convirtieron en el género por excelencia gracias a juegos como Doom y Wolfenstein3D. Pero no solo las texturas hicieron su aparición en esta época, la implementación de iluminación y sombreado surgió también para enriquecer aún más si cabía la inmersión del jugador dentro del juego, así como el uso de sprites. Los escenarios seguían siendo mundos planos en pseudo-3D implementados por software, es decir, para poder mover con fluidez cualquier título hacía falta una dupla procesador-memoria únicamente.

1990 – Hovertank3D
1991 – Catacomb3D
1992 – Wolfenstein3D
1993 – Doom (Id Tech1)
1994 – Doom2

1996 – Duke Nukem 3D (Build Engine)

Tercera etapa: 1996-1999 El auge de los modelos 3D y el hardware gráfico.

Los sprites fueron, son y serán un invento muy útil a la hora de generar animaciones por ordenador, tanto es así que la mayoría de juegos hasta el momento los usaban para dar vida no sólo a los personajes, si no a cualquier tipo de forma que necesitara un movimiento. Sin duda los sprites marcaron una época, pero a la hora de dar realismo en entornos que ya evolucionaron totalmente hacia las verdaderas 3D los simples sprites se quedaban cortos debido a su naturaleza bidimensional. Entonces es cuando se decide cambiar hacia los modelos tridimensionales actuales, evidentemente con un menor nivel de detalle, pero que son las bases de lo que hoy posee cualquier juego que se precie de estas características. El modelado en 3D trae consigo también el texturado, por lo tanto no solo hace falta añadirle texturas al mundo (paredes y techo) si no que también a los modelos (meshes), lo cual dificulta bastante esta faceta del desarrollo.
Los escenarios, como se mencionó antes, ya son totalmente en 3D y con una geometría arbitraria, lo que da a los diseñadores un abanico mucho más amplio a la hora de plasmar en el PC sus ideas; ahora se permiten paredes oblicuas, curvas y demás, pero sin duda uno de los avances más importantes es la posibilidad de crear mapas en los que puedan haber salas superponiéndose en los tres ejes de coordenadas, a saber, ningún juego hasta la fecha tenía una habitación encima de otra porque era imposible de controlar debido a la naturaleza 2D del mundo, mas allá de que luego se intentara conseguir un pseudo-3D.
Junto con el tamaño y la calidad de los escenarios también aumento el uso y la calidad tanto de las luces como de las sombras, lo cual requería aún más capacidad de cálculo de las CPUs de la época, ya que hasta este momento todo se hacia mediante renders implementados a nivel de software. Pero esto era prácticamente insostenible, el avance de las técnicas de visualización iba mucho más rápido que el incremento en la potencia de las CPUs y la cantidad de memoria de los equipos, debido a esto, entre mediados y finales de los 90’ surgen las primeras aceleradoras gráficas de la mano de 3dfx, ATI y nVidia (Voodoo, Rage y Riva TNT eran sus modelos respectivamente) que darán soporte exclusivo a la renderización de gráficos en los PCs.

1996 – Quake (Quake Engine)
1997 – Quake II (Id Tech2)
1998 – Unreal (UnrealEngine)
1998 – Half-Life (GoldSrc o GoldSource)

Cuarta etapa: 1999-2003 El hardware T&L y el incremento del detalle.

Juegos como Quake II o Half-Life implementaban ya entornos 3D reales con objetos también en 3D en lugar de sprites, texturas, luces y sombras, lo que incremento los requisitos mínimos hasta el punto de necesitar o bien un procesador extremadamente potente para llevar a cabo vía software todos los cálculos necesarios, o bien una tarjeta aceleradora 3D que liberara a la CPU de la carga de dichos cálculos mediante hardware. Evidentemente la primera opción con el paso del tiempo se volvió inviable como ya se dijo por el incremento en la complejidad de los juegos que culminó con la integración vía hardware del famoso T&L (transforming and lighting), lo que acabó definitivamente con las implementaciones software de los renders (y con compañias como 3dfx que nunca optaron por implementar T&L, o lo hicieron tarde). Gracias a la potencia que ofrecían las flamantes tarjetas de la época, los títulos ganaron en detalle:
- Los escenarios cuentan ahora con muchos más polígonos y vértices que antes y aparecen por primera vez mezclados entornos “indoor” y “outdoor” reales, estos últimos comienzan a tener efectos climatológicos tales como lluvia, viento, nieve…
- Las texturas son más y más grandes gracias a que ahora e guardan en la VRAM (memoria de video) dedicada de la tarjeta gráfica, lo que hace que sea mas rápido su acceso y no ocupe memoria del sistema.
- Se empiezan a implementar sistemas de partículas complejos para dar soporte a fluidos, humos, niebla, etc. Aunque en la mayoría de los casos no son más que puntos y pequeñas aristas, la cantidad de estos es tan grande que hacia imposible usarlos anteriormente.
- Se estandariza la profundidad de color en 32 Bits.
- Comienzan a aparecer luces de colores que dotan de más realismo si cabe los diferentes escenarios.
- Aparecen reflejos en algunos juegos, por ejemplo en el agua, así como también mejoran las sombras.
- Gracias a la liberación de la CPU de muchas tareas, esta está libre más tiempo para otras tareas que llevan a cabo los juegos como la física, la IA, el sonido; todo esto mejora globalmente.

El hardware medio necesario en esta época era una GeForce 2 o una ATI Radeon 7200, dejando para los más exigentes las flamantes GeForce 3 y Radeon 8500, indispensables poco tiempo después debido a la incorporación de los famosos Píxel y Vertex Shaders necesarios para la generación de efectos y animaciones de una manera mas sencilla y rápida para el ordenador, sin embargo en esta época aun no son usados en gran medida.

1999 – Quake III Arena (Id Tech3)
2001 – Max Payne (RemedyMax FX)
2001 – GTA 3 (RenderWare Engine)
2001 – Halo (Halo Engine)
2002 – Battlefield 1942 (Refractor 2)
2002 – Unreal Tournament 2003 (Unreal Engine 2)
2002 – Tron 2.0 (Lithtech Jupiter)
2003 – Max Payne 2 (RemedyMax FX)
2003 – Rainbow Six 3: Raven Shield (Unreal Engine 2)
2003 – Call of Duty (Id Tech3)

Quinta etapa: 2003-2006: Pixel y Vertex Shading

Las tarjetas gráficas ya están totalmente asentadas en el mundo de los videojuegos gracias a la increíble mejora que otorga un hardware dedicado especialmente a la generación de gráficos en 3D. El hardware T&L se hace totalmente necesario y los Píxel y Vertex Shaders (posteriormente unificados) se convierten en un estándar de facto en los juegos ya que proporcionan más herramientas que otorgan a los juegos calidades hasta entonces imposibles de conseguir. Las animaciones empiezan a hacer uso del Vertex Shader mientras que las texturas implementan técnicas como Bump-Mapping o Parallax-Mapping gracias a los Píxel Shader.
Sin embargo lo que caracteriza a esta etapa tiene sin duda nombre y se llama ATI Radeon 9700. Si bien en un principio 3dfx con sus tarjetas Voodoo tenia acaparado el mercado y luego nVidia siempre estaba un paso por delante de ATI, DirectX 9.0 supuso un salto de calidad en los juegos que en un principio solo supo conseguir la serie 9700 de ATI; pero no sólo esto, la tarjeta de ATI hizo posible la incorporación definitiva de dos de las técnicas más importantes de mejoramiento de la calidad de las imágenes: el FSAA (Full Screen AntiAliasing – antidentado a pantalla completa y Anisotropic Filtering – filtrado anisotropico de texturas).
Los motores gráficos de la época entonces comenzaron a contar con todos estos avances hechos durante este periodo de tiempo. Además del ya típico aumento de calidad en forma de cantidad de polígonos, resolución de texturas, vértices… se unen las luces y sombras dinámicas unificadas, los efectos climatológicos ya son un estándar y por primera vez se ven simulaciones de agua totalmente realistas. Los juegos intentan acercarse lo más posible a la realidad, más allá de si la temática que tratan sea o no realista y objetiva, algunos hasta generan las cinemáticas con el propio motor grafico y un lenguaje de script en lugar de usar películas como se hacia hasta este momento.

2004 – Painkiller (PAIN Engine)
2004 – Far Cry (CryEngine)
2004 – Doom 3 (Id Tech4)
2004 – Half-Life 2 (Source Engine)
2005 – F.E.A.R. (lithtech Júpiter EX)
2005 – Call of Duty 2
2005 – Quake 4 (Id Tech4)
2005 – Battlefield 2
2006 – S.T.A.L.K.E.R. Shadow of Chernobyl

Sexta etapa: 2006-Presente Foto realismo y elementos cinematográficos

Con la aceptación masiva del hardware T&L y sus Shaders se provoco que la mejora de los efectos visuales llegaran a cotas insospechadas. Hoy en día se trabaja tanto con Shader Model 3.0 (DirectX 9.0c) como con Shader Model 4.0 y 4.1 (DirectX 10 y 10.1, solo en Windows Vista) que están diseñados específicamente para proporcionar una calidad casi foto realista en los gráficos por ordenador.
Los juegos de esta época cuentan con las técnicas más avanzadas disponibles entre las que se encuentran:
- Utilización de focos de luces HDR (High Dynamic Range). Estas luces de gran rango dinámico permiten simular con gran fidelidad focos tales como el sol que debido a su naturaleza no debería ser representado como una luz normal.
- Además de la unificación ya mencionada de luces y sombras se añaden ahora las sombras suaves, que no es ni más ni menos que la aplicación de un AntiAliasing solo a las sombras para que parezcan más realistas. Esto es posible ahora debido a la potencia del hardware gráfico, ya que es complejo calcular el AA.
- El tamaño de las texturas se dispara en esta época debido a la cantidad de VRAM actual de las tarjetas que es realmente grande, llegando hasta 2Gb inclusive.
- Se estandarizan el uso de técnicas propias de la industria cinematográfica como el Motion Blur y el Depth of Field. El primero de ellos se usa mucho actualmente y se implementa sobre el buffer de acumulación de las tarjetas gráficas, consiste en que al movernos rápidamente por la escena las imágenes perduren unos milisegundos antes de ser tapadas por las siguientes. El Depth of Field o profundidad de campo no es más que el enfoque, es decir si estamos enfocando algo en un primer plano, todo lo que este por detrás se ve difuminado y viceversa.
- La cantidad de polígonos y vértices aumenta considerablemente como siempre.
- En la mayoría de juegos comienzan a verse los ciclos día-noche, mezclado con las técnicas de iluminación actuales hacen que sea totalmente realista.
- Los entornos empiezan a ser totalmente destructibles.

El hardware necesario hoy en día para poder jugar a una calidad media es de un procesador potente (a poder ser de doble núcleo) y una tarjeta grafica que soporte Shader Model 3.0 como mínimo.

Motores gráficos actuales:

Unreal Engine 3
-Gears of Wars
-Unreal 3
CryEngine 2
-Crysis
-Crysis Warhead
Id Tech5
-Rage
-Doom 4
Euphoria
-GTA IV
Source
-Half-Life: Episode 3
Dunia
Far Cry 2

No hay comentarios: