2 puntos por GN⁺ 2024-03-01 | 1 comentarios | Compartir por WhatsApp

Cómo usar LUT en videojuegos y cómo tú también puedes hacerlo

  • En los videojuegos se usan LUT (Look-up Tables) para aplicar técnicas creativas.
  • Se explica cómo manipular datos de video en tiempo real mediante un ejemplo con WebGL.
  • El usuario puede practicar usando su propio video o una webcam.

Configuración

  • Se usa como punto de partida un video en blanco y negro grabado con una cámara térmica.
  • El video se sube al GPU mediante WebGL y se muestra igual que el original usando shaders.

Colorización

  • Se colorea el video usando un Fragment Shader, que decide el color de cada píxel.
  • Se explica cómo manipular colores mediante un ejemplo sencillo que aplica un tono naranja.

Costo de rendimiento: cero

  • El impacto en rendimiento de la colorización es casi nulo y, debido al latency hiding del GPU, está en un nivel despreciable.

Uso de colorización en Valve Software

  • En el juego Left 4 Dead de Valve Software se aplica colorización a modelos de vehículos para generar distintas variantes.

LUT: simple pero potente

  • Se explica cómo usar LUT para definir y transformar rangos de color.

Un modesto LUT 1D

  • Un LUT 1D es un arreglo de colores que se usa para convertir video en escala de grises a RGB.
  • Se demuestra la conversión de color usando LUT 1D de distintos tamaños.

Muchos colores

  • Todos los mapas de color compatibles con matplotlib se ofrecen como LUT 1D.
  • Se recomienda usar mapas de color Perceptually Uniform.

¿Sigue sin costo de rendimiento?

  • En LUT 1D pequeños, el impacto en rendimiento no es significativo y se aprovecha de forma eficiente la caché del GPU.

Variedad para zombis

  • En Left 4 Dead 2 se usan LUT para generar distintas variaciones de color en los zombis.

Precálculo de cómputo

  • Los LUT 1D permiten cachear cálculos costosos y, por ejemplo, aplicar corrección gamma rápidamente.

El potente LUT 3D

  • Un LUT 3D representa todo el espacio RGB como un solo cubo para remapear colores.

Configuración

  • Se explica el procesamiento con LUT 3D usando video con perfil log grabado en una Panasonic GH6.

Ajuste simple

  • Se describe el proceso de aplicar corrección de color con DaVinci Resolve y volver a exportar el LUT.

Uso de LUT 3D en Left 4 Dead

  • Es un flujo de trabajo ampliamente conocido en la industria de los videojuegos para estilizar los colores del juego usando herramientas externas.

Aventuras avanzadas

  • Se explica cómo exportar transformaciones de color complejas a LUT usando herramientas de color grading como DaVinci Resolve.

Otros usos

  • Como otro caso de uso de LUT, se presenta un LUT utilizado para portar Tomb Raider a Game Boy Advanced.

Opinión de GN⁺

  • Los LUT son una herramienta poderosa para la manipulación y optimización del color en videojuegos y programación gráfica. Esta técnica puede ofrecer diversos efectos visuales en renderizado en tiempo real sin degradación de rendimiento, por lo que resulta útil tanto para desarrolladores como para artistas.
  • Al usar LUT, hay que considerar la precisión del color y la representación visual de los datos. En especial, es importante entender la relevancia de los mapas de color Perceptually Uniform, también desde la perspectiva de personas con daltonismo.
  • Esta técnica puede aplicarse en muchos campos, como corrección de color, estilización visual y visualización de datos. Por ejemplo, se pueden aplicar al desarrollo de videojuegos técnicas similares a las LUT usadas en la industria del cine para color grading.
  • El tamaño y la precisión de una LUT pueden variar según el propósito de uso y la plataforma, por lo que es necesario comprender esas diferencias. Por ejemplo, en la industria del cine el estándar es una LUT de tamaño 33³px, pero en videojuegos u otras aplicaciones gráficas pueden requerirse tamaños distintos.
  • Al usar esta técnica, es importante encontrar un equilibrio entre la representación precisa del color y la optimización del rendimiento. Para usar LUT de forma efectiva se necesita una comprensión profunda de la teoría del color y de la programación gráfica.

1 comentarios

 
GN⁺ 2024-03-01
Opiniones de Hacker News
  • Explicación de cómo usar tablas de búsqueda (LUT) para implementar efectos

    • Se usa una tabla de búsqueda grande para guardar los detalles de la iluminación circular alrededor del jugador, y una segunda tabla de búsqueda para aleatorizar el orden de las filas del fondo.
    • Solo se puede actualizar 1/20 de la pantalla, pero con un orden aleatorio se logra un efecto de bordes suaves y se oculta el barrido raster.
    • Las partes demasiado lentas para calcularse en tiempo real se resuelven con tablas de búsqueda para evitar que haya filas sin actualizar.
  • Experiencia compartida sobre el uso de tablas de búsqueda para un efecto de túnel con textura

    • Se usa una tabla de búsqueda que permite conocer, para cada píxel en pantalla, el ángulo y la distancia desde el centro.
    • Parece que uno se mueve por un túnel con geometría 3D, pero cuesta poco y puede implementarse incluso en Pico.
    • Se pensaba que el juego Stardust usaba este efecto, pero en realidad usaba como fondo una animación repetida de 6 cuadros.
  • Se comparte un enlace a un video sobre cómo el juego The Legend of Zelda: Wind Waker usó tablas de búsqueda para lograr sus visuales distintivos

    • Breath of the Wild y Tears of the Kingdom también usan la misma técnica.
  • Se avisa que el autor que publicó el artículo sobre tablas de búsqueda está listo para responder preguntas.

  • Explicación sobre la importancia de las tablas de búsqueda en el desarrollo de juegos retro

    • Antes, la memoria era rápida pero los procesadores eran lentos, así que se metía en tablas de búsqueda la mayor cantidad posible de cálculos.
    • Cuanto mejor se aprovechaban las tablas de búsqueda, más vistosos podían hacerse los juegos.
  • Experiencia compartida sobre Bobl, un juego de la comunidad homebrew de NES que logró efectos físicos sorprendentes usando tablas de búsqueda

    • Con tablas de búsqueda se consiguieron efectos que parecían mucho más complejos de lo que el sistema podía calcular en tiempo real.
  • Se comparte un episodio de pódcast sobre cómo el port de Doom para SNES calculaba funciones trigonométricas usando tablas de búsqueda

    • La SNES no tenía procesador gráfico, así que hacía los cálculos con tablas de búsqueda.
  • Queja sobre que personas con conocimientos de programación dinámica confunden caché y memoización

    • La memoización implica estado compartido local, mientras que la caché implica estado compartido global, por lo que presentan problemas distintos.
    • La caché anticipa lo que se va a necesitar en el futuro, mientras que la memoización sabe que se necesita de inmediato.
    • La tabulación consiste en encontrar y resolver de antemano subproblemas comunes; una tabla de búsqueda es una tabulación de tamaño fijo.
  • Se comparte información sobre Lattice, una app para Mac que trabaja con tablas de búsqueda

  • Se ofrece una lista de ejemplos de distintos efectos logrados con tablas de búsqueda

    • Dispersión atmosférica, cambio de tono en sprites, visión nocturna, cámara térmica, efecto de señal de video en blanco y negro, efecto glitch, sombreado de heightmaps, elementos de puntos alfa en la pluma de escape de una nave espacial, mapa de calor de permanencia del mouse de visitantes de un sitio web, efecto de cristal y colorización de posprocesado en espacio de color primitivo, entre otros.
    • Las tablas de búsqueda permiten visualizar arreglos de valores conocidos y resultan muy útiles.