A la hora de desarrollar juegos es necesario que los programadores tengan una serie de estándares y directrices para desarrollar los diferentes apartados del mismo de forma coherente y que les permite exprimir hasta la última gota de los PC más potentes del momento. Ya sea para conseguir los mejores gráficos y/o el mejor importante. En esto es muy importante los llamados Shader Model, pero, ¿qué son y cuál ha sido su evolución?
La complejidad de una GPU es tan alta que los viejos métodos de estudiarse la arquitectura y desarrollar a bajo nivel ya no sirven, ya que el conocimiento y las horas necesarias para ello que serían necesarias no permitirían usar las últimas tecnologías. Es por ello que es importante crear abstracciones y normas que ayuden a los desarrolladores a crear nuevos títulos y los motores gráficos que los sustentan de forma rápida y fácil.
¿Qué son los Shader Model en DirectX?
Conocemos como Shader Model a una serie de normas y especificaciones escritas por Microsoft para realizar programas Shader que se ejecuten en las tarjetas gráficas compatibles con su API Direct3D. Por lo que les proporciona, por un lado, a los desarrolladores de hardware una serie de normas para desarrollar futuras GPU, así como a los desarrolladores de motores gráficos para juegos una guía de lo que pueden hacer o no con una determinada generación de tarjetas gráficas.
Por lo que más que ser una tecnología en concreto, son más bien una serie de directrices a seguir para desarrollar hardware y software que sea compatible y permita utilizar todas las funcionalidades incluidas en cada una de las versiones de DirectX. Al mismo tiempo, son una muestra de la evolución de las capacidades de las diferentes GPU a través del tiempo.
Así es como han evolucionado las diferentes versiones con el tiempo
La primera tarjeta gráfica para PC que usaba Shaders programables fue la GeForce de NVIDIA aparecida en el 2001 y basada en el chip NV20, fue el primer hardware creado alrededor de DirectX 8. Desde entonces hemos visto la evolución con un pipeline 3D mucho más complejo y una evolución en las arquitecturas de las GPU del mismo calibre. Desde entonces hemos ido viendo una evolución, la cual no solamente hemos visto representada a nivel de hardware, sino también en los juegos que los han ido usando, consiguiendo con ello una evolución clara en los gráficos de los juegos.
Shader Model 1.0
Se introdujo con DirectX 8 y permitió por primera vez programas con aritmética sencilla para manipular los valores básicos de los vértices y los píxeles en escena. Sin embargo, solo permitía operaciones de aritmética y lógica simple y carece de cosas como poder acceder a las texturas desde la parte de proceso de la geometría en el pipeline 3D y de instrucciones de salto y control de bucles. El juego más representativo de los lanzados bajo dicha API es el clásico de Id Software, DOOM 3.
En cuanto a las tarjetas compatibles con el Shader Model 1.0, tenemos en el caso de NVIDIA tanto las GeForce 3 como las GeForce 4 a excepción de los modelos MX de estas últimas que fueron GeForce 2 renombradas. Sí, hablamos de AMD, tuvimos como primer representante a las series Radeon 8000 y Radeon 9000.
Shader Model 2.0
Shader Model 3.0
La tercera versión de los Shader Model no supuso un cambio de API, dado que es más bien una versión mejorada de la anterior. Sin embargo, fue la primera en soportar valores en coma flotante de 32 bits, forzando a las tarjetas gráficas plenamente totalmente compatibles a tener un set de registros e instrucciones, así como las ALU que resulten totalmente compatibles con dicho formato, el cual se ha mantenido como el estándar para videojuegos en PC desde entonces hasta la actualidad.
Como curiosidad, se trata del Shader Model más utilizado en la historia de los juegos para PC, mucho más que su suceso y convirtió a DirectX 9.0 en su versión más avanzada, en la API más usada para juegos durante un largo periodo de tiempo. Por lo que son muchos los juegos que usaron dicha versión, pero nosotros hemos escogido al primer BioShock como juego representativo.
En cuanto a las tarjetas gráficas que se diseñaron alrededor del Shader Model 3.0, tenemos por parte de NVIDIA las GeForce 6000 y 7000, y por parte de AMD las Radeon X1000.
Shader Model 4.0
DirectX 10 no solo trajo una nueva versión de Shader Model, sino también una bien cargada de novedades. La primera de todas, la creación de los Geometry Shaders, los cuales permiten manipular la geometría antes de su proceso de conversión a píxeles. Esto permitía hacer cosas como el añadido de nuevos vértices y la eliminación de otros, aparte de complejos sistemas de partículas, permitiendo humo y nubes volumétricas. Sin embargo, el gran cambio fue la unificación de los núcleos en un solo tipo, lo que hizo que en cuanto a GPU, la separación de las unidades de ejecución por tipo de programa shader llegará a su fin.
Si tuviéramos que escoger un título para PC que representase las capacidades de esta versión, sin duda Crysis
se lleva todos los números como demostración de sus capacidades. Y en
cuanto a los modelos de tarjetas gráficas, pues se puede decir que pese a
la mayor popularidad del Shader Model 3.0, la versión 4.0 ocupo varias
generaciones de tarjetas gráficas de NVIDIA y AMD. En el caso de la
primera, las GeForce 8, 9, GT 200 y 300 (Tesla). En el caso de AMD tuvimos las HD 2000, HD 3000 y HD 4000.
No hay comentarios:
Publicar un comentario
Por favor sé respetuoso/a y escribe adecuadamente. Gracias.