Stabilisation du processus de tramage 1 bit d’Obra Dinn (2017)
(forums.tigsource.com)-
Forum TIGSource
- TIGSource a ouvert un serveur Discord officiel.
- Le forum couvre divers sujets et discussions, avec la participation de nombreux membres.
-
Return of the Obra Dinn
- Une discussion est en cours sur le style graphique du jeu et les problèmes de tramage.
- Une tentative consiste à rendre l’image en haute résolution puis à la réduire pour résoudre le problème de scintillement.
- Une méthode visant à stabiliser le mouvement en fixant le motif de tramage est également discutée.
-
Processus de tramage
- Obra Dinn est rendu en niveaux de gris 8 bits, puis converti en 1 bit.
- Deux motifs de tramage sont utilisés pour produire divers effets visuels.
- Sur les images animées, les motifs de tramage peuvent poser problème.
-
Stabilisation du tramage
- Des recherches sont menées sur une méthode consistant à fixer le motif de tramage à la géométrie pour améliorer la stabilité.
- Des efforts sont faits pour trouver le meilleur résultat en essayant plusieurs méthodes de mapping.
-
Conclusion
- La résolution du problème de tramage a pris beaucoup de temps, mais a finalement permis de préserver le style visuel du jeu tout en corrigeant le problème.
- Le jeu final devrait proposer deux modes d’affichage.
1 commentaires
Commentaires sur Hacker News
Je fais de la programmation graphique depuis plus de 10 ans, et pourtant je ne m’en étais pas rendu compte en jouant au jeu. Vu le langage visuel global du jeu, je dirais que ces 100 heures ont été vraiment bien investies
À ce niveau, ça aurait presque pu être présenté à SIGGRAPH sur le thème de la cohérence temporelle en rendu non photoréaliste
Pour ceux qui ne connaissent pas, Return of the Obra Dinn et Papers, Please sont tous deux des jeux de Lucas Pope, considérés comme de vrais classiques multi-récompensés
Même si vous ne jouez pas habituellement, ils valent largement le détour. Aucun des deux n’est un jeu typique
Peu de jeux m’ont poussé à ce point. Je n’ai pas essayé Obra Dinn parce que son style visuel ne m’attirait pas, mais si vous aimez les jeux d’enquête, Curse of the Golden Idol vaut aussi le coup d’œil. C’est assez proche de ces jeux en termes de créativité, et très amusant
Cela dit, je l’ai quand même terminé
Le dithering 1 bit prononcé est un sujet vraiment fascinant. Il existe aussi plusieurs approches en 2D, chacune avec ses avantages, ses inconvénients et ses compromis
Il est surprenant de voir que quelque chose qui était au cœur de l’expérience informatique des années 80 devient au contraire assez délicat sur du matériel moderne. Sur mon projet[0], j’ai découvert qu’il était presque impossible de faire un mapping 1:1 entre les pixels hors écran et le canvas fourni par le navigateur
[0] https://sheep.horse/2023/1/improved_web_component_for_pixel-...
Un petit jeu que j’avais fait utilisait un affichage couleur basse résolution sur les 3/4 de l’écran, puis en bas une résolution horizontale doublée en 4 couleurs pour afficher plus de texte. On changeait donc de résolution 120 fois par seconde sans trop ralentir le CPU
Aucune des approches proposées ne semble vraiment bien fonctionner, et ce problème paraît bien plus complexe qu’il n’en a l’air
Ce qui aurait le plus de chances de marcher serait sans doute un motif de dithering « fractal » permettant un zoom fluide et invariant à l’échelle, traité en espace texel pour que les déplacements de caméra et d’objet fonctionnent tous les deux correctement, ou bien un rendu suréchantillonné avec filtrage bilinéaire ou du motif de dithering, suivi en espace écran d’une sorte de passe de diffusion d’erreur via un compute shader
Cela dit, je ne suis pas certain que ça fonctionnerait bien en pratique. Si ce n’est pas suffisant, une autre possibilité semblerait être de traiter simplement le tout en espace écran, puis de reprojeter le résultat en espace texel d’une manière préservant la résolution, d’utiliser ensuite les informations de l’espace texel à l’image suivante pour produire une solution compatible en espace écran, puis de remapper en espace texel, afin d’accumuler progressivement à l’exécution un motif fractal par texel. C’est peut-être la meilleure solution, mais elle semble extrêmement coûteuse en mémoire, en calcul et en complexité
https://x.com/dgant/status/1851840125065453894
https://x.com/dgant/status/1851835968342446576?t=kCUSWCtJEc_...
Le principe consiste à utiliser un dithering en espace monde, à appliquer un dithering 2D sur des surfaces mappées en triplanaire, à choisir l’échelle des coordonnées selon la profondeur pour maintenir le motif de dithering dans la plage [1px, 2px), puis à peindre les surfaces suffisamment lointaines en coordonnées sphériques. Il y a quelques repeints au niveau des seuils de profondeur, mais en pratique ce n’est pas très gênant
Pour ceux que ça intéresse, j’ai creusé un peu plus et retrouvé d’anciens journaux de développement qu’il avait publiés sur ce sujet [1] [2]
La partie sur l’algorithme d’upscaling Scale2X m’a particulièrement marqué, et c’est assez génial [3]
[1] https://forums.tigsource.com/index.php?topic=40832.260
[2] https://forums.tigsource.com/index.php?topic=40832.msg121719...
[3] https://www.scale2x.it
J’adore le fait que cette personne partage tout sur les forums
Je me souviens avoir vu les premiers travaux sur Papers, Please, et il y a quelque chose de formidable dans le fait de partager son processus et de l’exposer aux retours
Discussion de l’époque : https://news.ycombinator.com/item?id=15766249
C’est de loin le meilleur article sur le dithering que j’aie vu jusqu’ici. J’ai travaillé sur le dithering noir et blanc de Return to Dark Castle
Je voulais utiliser le dithering d’Atkinson, mais c’était difficile à implémenter dans un shader à cause de la façon dont les valeurs des pixels voisins se propagent entre elles, et à l’époque j’étais aussi très stressé et fatigué. Je ne crois pas avoir pensé à fixer le motif à l’offset de la scène, donc il devait probablement y avoir du scintillement dans les niveaux à défilement comme les catacombes ou le helicopter pack. Ou peut-être que si, mais je ne m’en souviens plus. Quoi qu’il en soit, c’est excellent
J’ai récemment essayé d’y jouer sur un 5K Studio Display après l’avoir téléchargé sur GOG, mais je n’ai pas réussi à obtenir un rendu où les magnifiques pixels ne deviennent pas flous. C’est vraiment dommage
J’ai parcouru tous les menus de réglages
Pour le plaisir, la bande-son du jeu est ici
https://www.youtube.com/watch?v=8qvdAWLcPyU