[Mesh Rebelle] Le cheveu dans la soupe de polygones

Voici donc le sujet où on s’extasie devant les technologies du futur et où on s’interroge sur les technologies actuelles du jeu vidéo, et en particulier toutes les choses dont on se demande « mais comment diable ont-ils réussi à faire ça? ».

Pour rappel, le répertoire très instructif d’astuces de renard de Simon Schreibt (maintenant étendu hors des astuces purement graphiques). Le dernier truc sur les chapeaux de Mafia 2 est juste magique.

https://simonschreibt.de/

Dans l’incarnation précédente de mesh rebelle quelqu’un avait posé la question de l’utilité du raytracing et je gardais au fond de ma tête l’idée de répertorier un peu toutes les techniques plus ou moins bancales et coûteuses en performance développées au fil des ans pour faire des faux miroirs histoire d’illustrer à quel point le raytracing pourrait tout simplifier. Mais tout cela est au fond bien futile, quand on peut juste s’arranger pour que le seul miroir de la pièce soit balancé face contre mur avant qu’on puisse bouger la caméra:

On avait évoqué ça dans le passé au sujet de Dead Rising et d’un autre jeu qui m’échappe, mais voilà un article sur le bot qui parcourait tout Persona 5 au hasard. Il fut bien sûr réalisé avec zéro budget et support, en contraste direct avec son utilité.

Les imposteurs, aussi déjà mentionnés, sont l’idée de dessiner un modèle beaucoup plus simple voire juste une texture pour les objets lointains, pour économiser les polygones. Je vous propose donc de survoler cet article sur les imposteurs pour les arbres dans Fortnite. L’idée de base est simple, c’est comme les sprites de ce bon vieux Wing Commander, on fait des images du modèle 3d sous plusieurs angles et on utilise celui qui correspond le mieux à la caméra. Et à vrai dire, le fond de l’article est sur comment mieux répartir les différents angles de vue, mais au fil des vidéos, et surtout le gif en fond d’article avec le sapin, c’est l’occasion de voir à quel point le « sprite » a évolué en ajoutant un effet de profondeur et en faisant le fondu entre les trois angles les plus proches.

C’est plutôt du design que de la technique mais ce site fort sympathique répertorie un paquet d’exemples d’interfaces utilisateurs et HUDs de jeux:


Piste bonus:

Poser ses modèles en VR:

De mon temps on n’avait pas des polygones ou des shaders et on se débrouillait comme on pouvait, galopins!

6 J'aime

Du coup je t’avoue que je ne me rappelle plus un des trucs que je voulais partager mais je pensais au minimum à ① l’incroyable démonstration d’Intel pour rendre GTA5 plus photo-réaliste via une IA interprétant la colorimétrie d’une base de données de photos…

② Et peut-être à la démo HUA de Lightspeed&Quantum pour leur nouveau module de rendu d’image en temps réel (si je puis traduire realtime image processing ainsi) dans UE4 ? Le stream chinois de Tencent avait une petite explication supplémentaire qui avait l’air intéressante mais malheureusement impossible de la trouver traduite sur Youtube.

③ Ou alors c’était peut-être cette choupinette analyse du pixel art de cinq jolis jeux Game Gear. C’est vrai que Royal Stone est magnifique…

④ En tout cas ce n’était pas pour cet exposé d’une heure (!) sur les techniques d’animation de Mega Man car je n’en suis encore qu’à la moitié mais ça me rappellera de continuer le visionnage pendant la semaine qui vient. (Et si vous trouvez ça trop esthétique et pas assez mains-dans-le-cambouis, il y a aussi cette analyse de la programmation du tir chargé dans Mega Man 4.)

2 J'aime

Pour processing je dirais plutôt traitement que rendu mais c’est du détail. Le truc sur GTA est bien bluffant, je suis très curieux de voir ce qu’ils en feront dans le futur. Merci pour les points 3 et 4, il faudra que je les regarde.


D’aucuns s’en doutent, aujourd’hui je suis là pour partager ça, une preview d’UE5:

Plus que la technologie graphique c’est tous les trucs pour fluidifier les méthodes de travail que je trouve sympa, comme l’édition à plusieurs en open world ou les graphes pour les sons. Et bien sûr ils font les malins avec leur belle banque de modèles photogrammétriques via le rachat de Quixel.

Impatient de voir concrètement comment c’est plouf plouf c’est dispo en accés anticipé:

1 J'aime

Intéressant ! Je connais pas ce qu’offrait Unreal 4 en la matière, mais pour le contexte, c’est un truc qui existe depuis des années dans les moteurs des gros éditeurs spécialisés dans l’open world, notamment le fait de gérer le monde en cell que tu peux loader et éditer à plusieurs en excluant tout le reste. Pareil pour les layers, ça ressemble bcp à mes expériences passées avec un moteur de monde ouvert. Je vois aussi qu’ils mettent en avant vers le streaming basé sur ces cells. Combiné tout cet aspect avec les banques d’assets, notamment Quixel, c’est clairement un gros pas en avant pour démocratiser la création de monde ouvert à de plus petits projets.

J’ai changé de boulot récemment, et mes nouveaux collègues me demandaient pourquoi Unreal ou Unity étaient pas plus utilisés que ça chez les gros éditeurs pour leurs AAA. Au delà de vouloir contrôler leur technologie et leurs investissements, une des raisons que je leur ai donnés était qu’il y avait pas d’équivalent sur le marché aux technologies open world maison.

1 J'aime

Oui! Jusque là l’open world était un truc de devs spécialisés vu les technologies nécessaires. UE avait probablement trop d’inertie pour vraiment faire le pas assez tôt, et on sentait bien le côté itératif. Donc UE était fondamentalement construit sur la notion de maps/niveaux, à partie desquels ils ont d’abord bricolé un système de streaming où tu avais une map vide chargée en permanence « par-dessus » laquelle tu chargeais une map de départ qui contenait quelque part un volume chargeant une autre map qui contenait aussi quelque part des volumes vidant ou rechargeant la première, et ainsi de suite pour un streaming de jeu en niveaux/couloirs, et là-dessus plus tard ils ont construit un système qui générait automatiquement une matrice de blocs avec les volumes de chargement correspondants et des imposteurs pour les niveaux non chargés, mais au fond derrière ça restait un bricolage du système original avec des limites sur qui pouvait bosser sur quelle map à un moment donné.

Alor qu’effectivement à côté de ça niveau streaming et travail à plusieurs tu avais déjà tout l’héritage des MUDs et meuporgs puis les devs spécialisés une fois que l’open world moderne non-procédural a pris. J’ai d’ailleurs une pensée émue pour un article sur ce genre de processus collaboratif sur un monde en streaming concernant Project Milo qui faisait partie de la discussion qui avait lancé la création du premier topic Mesh Rebelle.

1 J'aime

Ahahah ce vieux bricolage de renard.

Ca me fait penser : je relançais The Last of Us 2 l’autre soir pour voir l’update à 60fps sur PS5. L’intro avec les flashbacks du 1 tout en temps réel, est vraiment impressionnante avec justement cette gestion de multiples scènes. Alors oui c’est pas tout à fait le même problème, le contexte et ce qu’on voit dans la caméra étant maitrisé de A à Z par le réalisateur, mais c’est vraiment un beau tour de passe-passe de loader/déloader des scènes aussi complexes de manière aussi propre.

Ca me rappelle cet autre grand tour de magie, tellement complexe qu’ils ne l’ont fait qu’une seule fois dans tout le jeu :

1 J'aime

Voilà une première analyse du procédé de rendu « nanite » d’UE5. Je ne vous cacherai pas que c’est très technique et abscons pour le commun des mortels, d’autant plus que ça ne marche vraiment pas comme un pipeline d’affichage tel qu’on les connaissait jusque là.

Ceci dit c’est l’occasion de faire une grosse dédicace mesh rebelle à Renderdoc, un débuggeur graphique open source qui permet de capturer une frame d’un jeu ou programme 3D utilisant DirectX, OpenGL ou Vulkan et la désosser et rejouer commande par commande en inspectant les données envoyées et tout. En presque 9 ans c’est devenu un outil assez indispensable pour tout programmeur graphique mais aussi tous les petits rigolos qui ont envie de savoir comment marchent leurs jeux préférés et le révéler au monde dans des blogs, comme dans l’article au-dessus, donc.

3 J'aime

Pendant ce temps chez les simulacres indés : Friendship with fake PS1 games has ended now fake N64 games is my best friend. L’effort du paraître est louable même si, comme d’hab, ça triche allègrement malgré tout en se reposant sur une conception que même moi je peux démasquer comme très artificielle des limites techniques de l’architecture N64. Aucun impact sur la mémoire RAM allouée au son, par exemple.

La vidéo semble pas mal tourner dans les milieux indés depuis quelques heures donc on peut s’attendre d’ici 2024 à un paquet de faux FPS N64 creepypasta et autres jeux de plateforme Scrimblo Bimblo issus de mèmes périmés avant la sortie du bidule. Vivement qu’on passe à la nostalgie Dreamcast Blue Sky, quand même…

1 J'aime

Personnellement le truc qui me déçoit à fond dans tous les projets pseduo-N64 c’est l’absence du 3-point filtering qu’on avait déjà évoqué dans mesh rebelle avant le grand cataclysme, qui est au moins aussi essentiel pour le rendu N64 que les ondulations de polygones et les textures affines pour la PS1:

J’avais moi-même fait un shader pour ça sous blender par curiosité

Un utilisateur du forum somethingawful prépare depuis un moment un truc beaucoup plus raccord au niveau look, lissage, colorimétrie, etc mais ça avance assez lentement.


L’évoquation des creepypasta PS1 me rappelle qui si il y en a qui en font parmi nos lecteurs il reste 10 jours pour soumettre vos démos pour l’expo virtuelle annuelle EEK3 de la communauté Haunted PS1:

Il faut que je retrouve le lien mais l’autre jour j’ai vu un shader rétro pour reproduire le look de la première génération de cartes voodoo de 3DFX.

2 J'aime