luces en motores de videojuegos

Las luces en los motores de videojuegos como en las animaciones. Se tienden a mover. Cosa que no sucede en la captura de una imagen mediante un render.

Es por ello que a la hora de desarrollar videojuegos es muy importante saber no solo los tipos de luces e iluminación. Que hable ayer brevemente en el capítulo 79. Muy breve sí.

Y es que al igual que la calidad de los modelos. Con la iluminación ha sucedido igual.

Ahora es posible hasta componer las luces en tiempo rea. ¿Qué quiere decir esto? Pues que se comportan como en la vida real. Al alumbrar con una linterna en una escena a oscuras. Las sombras y los comportamientos que hagan sobre los distintos materiales se producen en el momento. Y por ende consumirán muchos más recursos sobra la máquina que se esté ejecutando.

 

¿Y el movimiento de luces? ¿No es igual?

Claramente no. Por ejemplo en Unreal Engine 4, tenemos 3 tipos de luces de movimiento. No confundir con luces tipo spot, point light, luz direccional o sky light.

  • Static lights: luces estáticas (son las que menos consumen y no de vatios precisamente)
  • Stationary Light: (intermedio)
  • Movable light: los que más recursos requiere pero mejor calidad tienen.

Static light:

 

Son luces que no puede ser movidos ni cambiados mientras se ejecutan. Solo se calcula mediante lightmaps (mapas con sus uvs que cargan los brillos mediante precalculadas).

Se usó por primera vez en Quake 1.

No tiene impacto alguno sobre el rendimiento. Pero no se puede aplicar sobre objetos movibles. Por ende han de ser las sombras backeadas (es como hacerle una foto a un objeto con su material para obtener una textura de lo que se ve) previamente gracias a los light maps.

Por tanto los objetos dinámicos no van afectar sobre estas sombras. Y según la resolución de la sombra tendremos efectos más o menos detallados.

Stationary lights:

Son como las static pero pueden cambiar el brillo y el color. Pero solo está afectada mediante la luz directa. No la luz que rebota por ejemplo. Por eso es habitual en los videojuegos ver estas carencias cuando los volvemos a jugar con el paso de los años. ¡¡Las luces también envejecen!!

 

En Unreal Engine 4 tenemos el lightmasss (masa de luz) que hay que darle a calcular antes de que ejecutemos la escena. Para ver los cambios sobre las luces. Se encargan de generar los shadow maps o mapas para que se generen las sombras al exponerse a otras luces. Re requiere un unwrapping de las uvs de estas luces.

Movable lights:

son luces y sombras dinámicas. Se pueden cambiar de posición, rotar, cambiar color,brillo…

No puede ser baqueados en lightmaps y no pueden tener iluminación indirecta.

Las luces dinámicas emiten sombras por tanto requieren de un alto coste de rendimiento.

Cuanto más radio de luz y sombras sobre objetos. Mucho más complejos y costoso de mover como de calcular para la máquina.

En cada fotograma que no se mueven esas luces. Los shadow maps se rehusan para los siguientes fotogramas.

Resumiéndo los Shadow maps solo son para las luces sobre objetos dinámicos mientras que los Light maps mantienen el color de la luz y su brillo.

 

¡¡Finalmente sorteamos los 20€ de Steam por lo que muchísimas gracias por participar!!