2 points par GN⁺ 2024-03-01 | 1 commentaires | Partager sur WhatsApp

Comment utiliser les LUT dans les jeux vidéo, et comment vous pouvez en faire autant

  • Les jeux vidéo utilisent des LUT (look-up tables) pour mettre en œuvre des techniques créatives.
  • L’article explique comment manipuler des données vidéo en temps réel à l’aide d’un exemple avec WebGL.
  • Le lecteur peut s’exercer avec sa propre vidéo ou sa webcam.

Configuration

  • Le point de départ est une vidéo en noir et blanc filmée avec une caméra thermique.
  • La vidéo est envoyée au GPU via WebGL et affichée à l’identique à l’aide d’un shader.

Colorisation

  • La vidéo est colorisée à l’aide d’un Fragment Shader, qui détermine la couleur de chaque pixel.
  • Un exemple simple appliquant une teinte orange montre comment manipuler les couleurs.

Coût en performance : zéro

  • L’impact de la colorisation sur les performances est quasiment nul, et négligeable grâce au latency hiding du GPU.

L’utilisation de la colorisation chez Valve Software

  • Dans le jeu Left 4 Dead de Valve Software, la colorisation est appliquée aux modèles de véhicules pour générer différentes variantes.

LUT — simple mais puissant

  • L’article explique comment utiliser une LUT pour définir et transformer des plages de couleurs.

Une modeste LUT 1D

  • Une LUT 1D est un tableau de couleurs utilisé pour convertir une vidéo en niveaux de gris en RGB.
  • Des LUT 1D de différentes tailles servent à démontrer la transformation des couleurs.

Beaucoup de couleurs

  • Tous les color maps pris en charge par matplotlib sont proposés sous forme de LUT 1D.
  • Il est recommandé d’utiliser des color maps Perceptually Uniform.

Toujours aucun coût en performance ?

  • Dans le cas de petites LUT 1D, l’impact sur les performances reste minime, avec une utilisation efficace du cache du GPU.

De la variété pour les zombies

  • Dans Left 4 Dead 2, des LUT sont utilisées pour créer différentes variantes de couleur des zombies.

Pré-calculer les calculs

  • Une LUT 1D permet de mettre en cache des calculs coûteux et, par exemple, d’effectuer rapidement une correction gamma.

La puissance des LUT 3D

  • Une LUT 3D représente tout l’espace RGB sous la forme d’un cube unique afin de remapper les couleurs.

Configuration

  • Le traitement par LUT 3D est expliqué à partir d’une vidéo au profil log filmée avec un Panasonic GH6.

Corrections simples

  • L’article décrit comment appliquer une correction colorimétrique avec DaVinci Resolve puis réexporter la LUT.

L’utilisation des LUT 3D dans Left 4 Dead

  • Il s’agit d’un workflow largement connu dans l’industrie du jeu vidéo, qui utilise des outils externes pour styliser les couleurs du jeu.

Aventures avancées

  • L’article explique comment exporter en LUT des transformations colorimétriques complexes à l’aide d’outils de color grading comme DaVinci Resolve.

Autres usages

  • Parmi les autres cas d’usage des LUT, l’article présente une LUT utilisée pour porter Tomb Raider sur Game Boy Advanced.

L’avis de GN⁺

  • Les LUT sont un outil puissant pour la manipulation des couleurs et l’optimisation dans les jeux vidéo et la programmation graphique. Cette technique permet de produire divers effets visuels en rendu temps réel sans perte notable de performances, ce qui la rend utile aussi bien pour les développeurs que pour les artistes.
  • Lors de l’utilisation de LUT, il faut tenir compte de la précision des couleurs et de la représentation visuelle des données. Il est particulièrement important de comprendre l’intérêt des color maps Perceptually Uniform, notamment du point de vue du daltonisme.
  • Cette technique peut s’appliquer à de nombreux domaines, comme la correction colorimétrique, le stylisme visuel ou la visualisation de données. Par exemple, des techniques similaires aux LUT utilisées pour le color grading dans l’industrie du cinéma peuvent être appliquées au développement de jeux.
  • La taille et la précision d’une LUT peuvent varier selon l’usage visé et la plateforme, et cela demande une bonne compréhension. Par exemple, dans l’industrie du cinéma, les LUT de taille 33³px sont standard, alors que dans les jeux ou d’autres applications graphiques, d’autres tailles peuvent être nécessaires.
  • Lorsqu’on utilise cette technique, il est important de trouver un équilibre entre fidélité colorimétrique et optimisation des performances. Pour exploiter efficacement les LUT, une compréhension approfondie de la théorie des couleurs et de la programmation graphique est nécessaire.

1 commentaires

 
GN⁺ 2024-03-01
Commentaires Hacker News
  • Explication de la manière d’implémenter des effets à l’aide de tables de correspondance (LUT)

    • Une grande table de correspondance stockant les détails d’un éclairage circulaire autour du joueur, ainsi qu’une seconde table de correspondance qui randomise l’ordre des lignes de fond, sont utilisées.
    • Seul 1/20 de l’écran peut être mis à jour, mais l’ordre aléatoire permet d’obtenir un effet de bord doux et de masquer le balayage raster.
    • Les parties trop lentes à calculer en temps réel sont traitées via des tables de correspondance afin d’éviter que certaines lignes ne soient pas mises à jour.
  • Partage d’une expérience d’utilisation de tables de correspondance pour un effet de tunnel texturé

    • Une table de correspondance est utilisée pour connaître, pour chaque pixel à l’écran, l’angle et la distance par rapport au centre.
    • Cela donne l’impression de se déplacer dans un tunnel avec une géométrie 3D, mais pour un coût faible, au point d’être réalisable aussi sur Pico.
    • La personne pensait que le jeu Stardust utilisait cet effet, mais en réalité il utilisait en arrière-plan une animation répétée de 6 images.
  • Partage d’un lien vidéo expliquant comment le jeu The Legend of Zelda: Wind Waker a utilisé des tables de correspondance pour créer un rendu visuel unique

    • Breath of the Wild et Tears of the Kingdom utilisent aussi la même technique.
  • Indication que l’auteur ayant soumis l’article sur les tables de correspondance est prêt à répondre aux questions.

  • Explication de l’importance des tables de correspondance dans le développement de jeux rétro

    • À l’époque, la mémoire était rapide mais les processeurs lents, donc on plaçait autant de calculs que possible dans des tables de correspondance.
    • Mieux on exploitait les tables de correspondance, plus on pouvait créer des jeux spectaculaires.
  • Partage d’une expérience au sujet de Bobl, un jeu de la communauté homebrew NES ayant produit des effets physiques étonnants à l’aide de tables de correspondance

    • Des effets paraissant bien plus complexes que ce que le système pouvait calculer en temps réel ont été obtenus grâce aux tables de correspondance.
  • Partage d’un épisode de podcast sur la manière dont le portage SNES de Doom calculait les fonctions trigonométriques à l’aide de tables de correspondance

    • La SNES n’ayant pas de processeur graphique, les calculs étaient effectués via des tables de correspondance.
  • Expression d’un agacement face aux personnes connaissant la programmation dynamique qui confondent caching et mémoïsation

    • La mémoïsation relève d’un état partagé local, tandis que le caching relève d’un état partagé global, ce qui pose des problèmes différents.
    • Le caching consiste à anticiper ce dont on aura besoin plus tard, tandis que la mémoïsation correspond au fait de savoir qu’on en a besoin immédiatement.
    • La tabulation consiste à identifier et résoudre à l’avance les sous-problèmes communs, et une table de correspondance est une tabulation de taille fixe.
  • Partage d’informations sur Lattice, une application Mac consacrée aux tables de correspondance

  • Présentation d’une liste d’exemples variés d’effets réalisés avec des tables de correspondance

    • Diffusion atmosphérique, changement de teinte de sprites, vision nocturne, caméra thermique, effet de flux vidéo en noir et blanc, effet glitch, ombrage de heightmap, éléments de points alpha pour le panache d’échappement d’un vaisseau spatial, carte thermique du temps de survol de la souris des visiteurs d’un site web, effet de cristal, colorisation de post-traitement dans un espace colorimétrique primitif, etc.
    • Les tables de correspondance permettent de visualiser un tableau de valeurs connues, ce qui les rend extrêmement utiles.