Saltar al contenido

Bajo el capó: nuevo sistema de iluminación con la Actualización 1.40

Los cambios que estamos introduciendo con la actualización 1.40 tanto para American Truck Simulator como para Euro Truck Simulator 2 han sido visibles para el público desde hace algún tiempo, en las versiones de Open Beta que aún están en curso. Con mucho, el cambio más visible es el nuevo sistema de iluminación, que ha resultado ser el mayor trabajo gráfico para nosotros en años. En la publicación del blog de hoy nos gustaría revelar más sobre lo que hemos pasado para que este cambio suceda; echemos un vistazo debajo del capó una vez más.

Actualización 1.40

El enfoque de nuestro motor 3D para representar la luz y el color en las escenas, -y en los búferes de renderizado que terminan mostrándose en la pantalla-, se estableció hace más de una década. Fue una época en la que el estado del arte consistía en representar todos los valores RGB en el rango numérico de 0-255, para caber dentro de un byte de información.

Así es como se definieron todos los valores, ya sea en un texel de un mapa de textura (la «piel» de un objeto 3D, un árbol, un vehículo o un palco), o en la codificación de la intensidad de una fuente de luz (desde las luces traseras de un vehículo hasta farolas, hasta la intensidad del sol), y combinando todo esto en la etapa de renderizado en un píxel; volvió a ser la representación en el búfer de visualización que se mostraría en la pantalla, con solo 256 tonos de cada color base.

En los últimos años, la explosión de la memoria disponible en los aceleradores 3D (GPU), el progreso en el poder computacional y la flexibilidad en los lenguajes de sombreado para programar las operaciones de las tarjetas 3D en fragmentos han abierto el camino para almacenar y calcular los valores de luz y color con una precisión y un rango mucho mayores. -con números de punto flotante. En lugar de simplemente superponer operaciones de filtro de color, que eran, esencialmente, todos los trucos que teníamos disponibles en la era de los componentes de 8 bits por color, el cambio al uso de números reales es una gran revolución en la forma en que un motor de juego puede representar realmente las fuentes de luz. en rangos y proporciones realistas.

En el mundo real, la diferencia entre la intensidad de una bombilla y la luz solar es de muchos órdenes de magnitud. Si somos capaces de almacenar los valores de intensidad de las fuentes de luz correctamente y, lo que es más importante, realizar todas las operaciones de luz frente a la superficie en sus rangos de valores adecuados, sin una pérdida importante de precisión, podemos lograr un rango dinámico (HDR) realmente alto en la canalización de gráficos.

Cuando comenzamos a experimentar con la nueva técnica hace unos 18 meses y vimos los primeros resultados, no había vuelta atrás para nosotros, sabíamos que queríamos esto en el motor.

Tuvimos que comenzar con las fuentes de luz (y por un tiempo, teníamos la esperanza de que esto fuera suficiente). Todas y cada una de las fuentes de luz se definen ahora con un valor realista obtenido a partir de mediciones del mundo real (hemos realizado un montón de muestreos con un fotómetro sobre varios ajustes de luz diurna y meteorológica) y tablas de referencia.

Tanto en la realidad como en el mundo del juego actual, decenas de miles de unidades lux ahora iluminan las escenas diurnas, mientras que por la noche el brillo ambiental se aproxima a unos pocos lux.

Basar todos los valores de la fuente de luz en la realidad nos da mucha más confianza en comparación con los viejos tiempos, cuando una nueva luz simplemente encajaba en el sistema. Ya no es una cuestión de si debe ser un 150 o 170 sin un significado real para los valores. Ahora sabemos y tenemos mesas para elegir para una farola o una luz de neón en una gasolinera.

En fórmulas de cálculo de luz, ahora podemos ir con la atenuación de caída cuadrática adecuada, para que las luces se comporten de una manera físicamente correcta. Con la mayor precisión, podemos incluso ir tan lejos como para introducir una pequeña variación aleatoria en la intensidad de la luz a fuentes de luz idénticas, para simular mejor la sensación nocturna de una calle, sin tener lámparas idénticas de forma antinatural.

Cuando se realizan todos los cálculos de luz interna, tenemos que ajustar los valores resultantes para la pantalla emulando la exposición de la cámara. Al igual que una cámara moderna en su teléfono móvil, debemos tomar todos los valores ricos y la variedad de luz entrante (sol o sombra, temprano en la mañana, mediodía, anochecer o noche profunda) y «aplastar» o «expandir» los valores en el rango apropiado para la pantalla.

Nuestro sistema de emulación de exposición tiene un impacto crítico en la apariencia final del juego: es en parte física, pero también en parte sobre un sentimiento artístico subjetivo. Debe ajustarse dinámicamente no solo en función de la luz entrante del mundo del juego, sino que también debe tener en cuenta la diferencia entre la luz dentro y fuera de la cabina de un vehículo, para permitir que los instrumentos del tablero sean legibles.

El ojo humano es una creación increíble, capaz de ajustarse y adaptarse a una amplia gama de intensidades de luz cuando el enfoque cambia entre objetos.

Tuvimos que utilizar muchas matemáticas inteligentes al analizar el histograma de luz para cada fotograma y entre fotogramas para ajustar todos estos valores en el rango dinámico y la gama de colores inevitablemente limitados de la pantalla, a fin de hacer que todo lo que se representa sea creíble y discernible.

Algunas mejoras fueron una cereza en la parte superior, como el hecho de que con el rango interno de búferes de punto flotante de mapas de cubos, podemos tener reflejos mucho más brillantes en superficies brillantes, como cuerpos de agua, vidrio o pintura de automóviles. Hemos seguido este camino de desarrollo en un pequeño equipo felizmente hasta que nos dimos cuenta de que, si bien los resultados intermedios eran prometedores, no podremos lograrlo sin reequilibrar TODOS los materiales / texturas existentes en todos los objetos del juego.

Cuando un rayo de luz se proyecta sobre la superficie de cualquier objeto, lo que se refleja o refracta depende no solo de las propiedades de la luz entrante, sino en gran medida de las propiedades de la superficie del objeto.

A lo largo de los muchos años de desarrollo, hemos acumulado decenas de miles de texturas, algunas de fuentes fotográficas en varios entornos, algunas pintadas a mano, algunas a través del proceso de generación de procedimientos en varias herramientas inteligentes.

Con el paso de los años, la autoría de estas fuentes ha estado sujeta a varias escuelas de pensamiento, o diferentes canales de creación, pero el sistema de «luz vieja» se mantuvo unido por la proverbial cinta adhesiva y, en cualquier caso, fue lo suficientemente impreciso como para revelar ciertos desequilibrios que estaban presentes. El nuevo sistema de emulación de exposición es mucho más sensible y simplemente requiere valores de albedo de brillo físicamente correctos. Nuestra superficie de hormigón ya no puede ser una especie de gris, y un árbol no puede ser simplemente bonito y verde. Y fue entonces cuando una gran mayoría de nuestro equipo de arte tuvo que participar para una revisión importante.

Una vez que nuestro pequeño equipo multidisciplinario pionero implementó todos los cambios necesarios en el código y el sombreador de GPU, lo que llevó muchos meses de experimentación, tuvimos que involucrar a mucha más gente. Primero, tuvimos que reajustar todas las fuentes de luz del mundo y las luces de los vehículos a la nueva lógica. En algunos casos, fue una conversión numérica relativamente trivial en algún lugar de una tabla. En otros, es posible que haya requerido que un diseñador de mapas vuelva a visitar una ubicación en particular para realizar el ajuste manual.

En muchos casos, significaba que un objeto del juego como una fábrica completa o un patio de entrega con fuentes de luz predefinidas tenía que volver a abrirse, ajustarse y reexportarse nuevamente en una herramienta 3D como Maya. Estamos hablando de miles y miles de retoques de este tipo, en algunos casos que implican no solo unas pocas docenas de «números» que definen las luces, sino también cambios importantes en los mapas de luz de los objetos, donde se «incorporaron» sombras falsas y efectos de luz para una mejor apariencia en el antiguo sistema de iluminación.

Finalmente, durante algunas semanas, la mayoría de nuestros equipos tuvieron que dejar de trabajar en cualquier otra cosa relacionada con nuestros proyectos futuros y repasar todos los objetos del juego, vegetación, vehículos y efectos; reequilibrar las cosas, una y otra vez, para sincronizarlas en una tabla de referencia de albedo compartida y acordada. Tuvimos que revisar los fundamentos de muchos subsistemas, en particular las luces y bombillas del vehículo, que requirieron muchas iteraciones y ajustes para que se vieran bien en varias configuraciones de luz diurna. Tenemos un nuevo conjunto de skyboxes con una resolución más alta y también una variedad de clima ligeramente más rica. Al final, no se dejó piedra sin remover, ya que tuvimos que evaluar y ajustar cada elemento de los juegos.

El nuevo sistema de iluminación y el inicio de nuestro nuevo modelo de luz física es un paso crítico hacia un modelo físico completo y mejor del mundo entero en nuestros juegos. Aún no hemos llegado a ese punto con una verdadera representación basada en la física , pero la actualización 1.40 representa un gran paso en la dirección correcta. Limpiar el arte antiguo y basar todas las intensidades de luz y las operaciones en la física fundamental hacen posible finalmente el trabajo sistémico futuro en esta área. Como sucede con muchas cosas en el desarrollo a largo plazo, si bien este paso es una revolución menor, al mismo tiempo es solo un hito hacia una visión más amplia.

Desde el punto de vista de los artistas gráficos (¡pero esto también se aplica a los autores de mod!), Estamos introduciendo un nuevo concepto de crear y mantener todo el arte del juego «bajo control» y en equilibrio con el resto del arte. Los materiales basados ​​en fotos, que se utilizan con frecuencia como fuentes de arte en el juego, ahora tienen que pasar por un proceso de calibración antes de que sean aplicables; de lo contrario, uno puede terminar con una superficie demasiado oscura o demasiado brillante, lo que afecta la exposición y percepción de la escena general. A menudo, vale la pena explorar métodos alternativos de creación de materiales, como la generación de procedimientos de alta resolución en herramientas como Substance Designer. Ahora se deposita más confianza en el sistema de renderizado del motor; en lugar de falsificar y hornear sombras sutiles y efectos de luz en modelos. Entre la nueva luz y SSAO, nuestro código de sombreado ahora juega un papel más importante en la creación del aspecto final; esto resulta en un poco menos de responsabilidad, control y posiblemente trabajo por parte del artista. Esto puede ser tanto bueno como malo dependiendo de lo que se esté tratando de lograr en cada caso particular.

Al igual que con cada cambio importante, hubo un montón de problemas iniciales, muchos callejones sin salida a los que dar marcha atrás, y la cantidad de esfuerzo que hemos atravesado superó con creces las expectativas que teníamos hace un año. Todavía tenemos un poco de Open Beta por delante para solucionar las últimas arrugas. Pero incluso ahora, estamos muy seguros de que los cambios merecen todo el trabajo duro. Solo espere hasta que conduzca su camión en las primeras horas de la mañana junto con la costa de Italia, o en una agradable tarde en Suecia, en una llovizna en el estado de Washington, durante el mediodía abrasador en España o en una parada de camiones bien iluminada. en lo profundo de la noche. A lo largo de todo el proceso de cambios, hicimos todo lo posible para no causar ningún aumento importante en la carga de la CPU o GPU. Algunos de los nuevos efectos tienen un costo de rendimiento ligeramente más alto, pero en general creemos que los cambios están muy bien equilibrados, o permiten compensaciones sensibles en las opciones del juego, para mantener el rendimiento aceptable. Definitivamente no queremos perder jugadores y fanáticos que juegan nuestros juegos sin el hardware más nuevo presionando demasiado en los efectos gráficos. Esperamos poder ofrecerle más mejoras y nuevas funciones, ¡así que agárrese al volante!

Los principales cambios internos

  • La escena se ilumina con intensidades de la vida real (iluminación: decenas de miles de lux durante el día, decenas de lux durante la noche) 
    • Para poner en juego las proporciones de luz: el sol naciente domina las luces de las farolas y los faros de los camiones, etc. Esto significa que tuvimos que ajustar todas las fuentes de luz y también reajustar todos los materiales emisores del juego.
  • Tenemos una nueva función de mapeo de pantalla para un mejor control artístico (exposición, contraste, dedo del pie, hombro) 
    • Necesitábamos llevar esas intensidades de la vida real a la pantalla de la computadora de una manera similar a como funciona la exposición de una cámara. 
  • Histograma mejorado y más sensible para la selección de exposición
    • Esto se debe a que la exposición real se selecciona de manera diferente en cada escena, y esto también varía con los diferentes niveles de luz y el tipo de clima actual. 
  • Cambios en la fuente de luz (farolas, luces de vehículos). 
    • Hemos cambiado las fuentes de luz a una atenuación más física (‘caída del cuadrado inverso’). 
    • Estamos en el proceso de cambiar a una configuración basada en unidades físicas para reducir las conjeturas. 

Pero también muchos ajustes visuales más pequeños. 

  • Reflexión relámpago 
    • Los reflejos en los escaparates y las superficies lisas se adaptan mejor a la hora del día y al clima 
  • Comportamiento de reflexión mejorado 
    • En pintura de camiones, escaparates y vidrio en general. 
  • Sombra del horizonte del sol
    • Visible cuando sale o se pone el sol 

Y un trillón de otros pequeños ajustes, correcciones y cambios.

Como se puede imaginar a estas alturas, todo esto ha sido una enorme cantidad de trabajo para nuestro equipo. La chispa brillante inicial (juego de palabras intencionado) que hizo que todo esto fuera posible provino de un pequeño equipo de programadores y un artista de efectos visuales (en la foto de abajo). Continuaron pirateando, iterando y trazando planes hasta que todo el equipo lo tuvo » fácil «, y todo lo que quedaba por hacer era agregar muchos años de horas de trabajo adicionales para ajustar todo a la nueva lógica.

El nuevo sistema de iluminación, al igual que la implementación del soporte FMOD para la parte SFX de nuestros juegos, aún está en desarrollo, puliendose y ajustes. Y todavía queda mucho trabajo por delante. En este momento, sentimos que ya está más o menos en una forma presentable, y es posible que también lo experimente si decide probarlo en una versión beta abierta ahora mismo en Steam.

Así que, por favor, si quieres ayudarnos, ponte tus gafas de sol favoritas y ayúdanos a ver el amanecer perfecto. Esperamos leer sus pensamientos y opiniones sobre el nuevo sistema de iluminación. ¡Muchos gracias!

Fuente: https://blog.scssoft.com/2021/03/under-hood-new-lighting-system.html

1 comentario en «Bajo el capó: nuevo sistema de iluminación con la Actualización 1.40»

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *