¿Qué es el compilado de shaders en juegos?

Aunque puede alargar la carga de los juegos, el procesado de los shaders es esencial para que los gráficos se muestren de manera adecuada durante la partida.

En muchos juegos actuales es habitual encontrarse con que algo llamado compilación de los shaders alarga el proceso de carga.

Esto ocurre especialmente la primera vez que ejecutamos un juego, o después de actualizar los drivers de nuestra tarjeta gráfica.

Aunque en ocasiones esta parte del arranque puede alargarse un poco y hacerse pesada, es indispensable para que los gráficos del juego funcionen correctamente. Afortunadamente si el juego está bien optimizado, es muy probable que los resultados de la compilación queden almacenados en el caché, acelerando futuras cargas.

¿Qué son los shaders?

Los shaders o sombreadores son pequeños programas informáticos que definen el comportamiento de los materiales dentro del juego. Su misión es comunicarse con la GPU y darle los protocolos sobre cómo mostrar las imágenes renderizadas.

No solo afectan a los materiales de las superficies sólidas, sino que también están implicados en la creación de efectos de fuego, niebla, rayos o de cualquier tipo.

Estas piezas de software se crean empleando lenguajes de programación específicos que pueden ser interpretados por estándares como OpenGL, Vulkan o Direct3D.

¿Entonces qué ocurre cuando el juego está compilando los shaders?

El proceso de compilación transforma el código de los shaders a un formato que la tarjeta gráfica pueda interpretar para mostrar las imágenes del juego.

De esta forma, la cantidad de materiales y su complejidad puede afectar notablemente a los tiempos de carga.

Para acelerar este proceso, es frecuente que no todos los shaders sean compilados en el arranque inicial del juego, y que el proceso vaya ocurriendo durante las pantallas de carga o en segundo plano.

Por este motivo, en ocasiones los juegos pueden sufrir breves parones. Esto se debe a que parte de los recursos del equipo pasan a interpretar sombreadores pendientes en lugar de ejecutar la propia acción dentro de la partida.

¿Por qué sólo ocurre en PC?

A diferencia de las consolas, que tienen configuraciones más o menos fijas, cada PC es un mundo. La variedad de componentes que pueden formar parte de un PC incluye una amplia gama de opciones de tarjetas gráficas, las cuales pueden diferir considerablemente entre sí.

De esta forma, al crear un juego para PlayStation 5 o Xbox Series X|S, los desarrolladores saben en todo momento el hardware que tienen estos equipos. Esto les permite dejar compilados previamente los shaders para ahorrar tiempos de carga.

En PC, sin embargo, los shaders tienen que traducirse para que nuestra GPU, sea la que sea, los comprenda. Esto se debe a que es imposible incluir las configuraciones preparadas para toda la variedad de gráficas existente.

Foto del autor

Vothrax

Tras pasar por el Spectrum y el Atari me asenté definitivamente como gamer de PC en los 90. Desde entonces he disfrutado de cientos de juegos en mi plataforma favorita.En 2020 decidí crear PCGamia.com para participar de una forma más activa en el mundo de una de mis principales aficiones.