[Mesh Rebelle] Le cheveu dans la soupe de polygones

Ah, il me semble que c’est la présentation où Chris explique qu’un de leurs principes, c’est de permettre aux joueurs d’en avoir marre du jeu, d’arrêter, et de revenir après quelques temps, au lieu de miser sur l’engagement permanent et les daily active users.
Perso, j’en peux tellement plus des jeux qui exigent que je pointe tous les jours comme si c’était un boulot sinon je vais rater telle ou telle currency, ou telle ou telle skin rare, que ce genre d’attitude est une bénédiction.

1 « J'aime »

La démo UE5 de The Matrix est sans doute la première vraie baffe technique de cette génération de consoles et comme souvent l’analyse de Digitalfoundry (en dessous) est intéressante.

Par contre, en revoyant la démo à tête reposée, je ne vous cache pas que je me suis rappelé avoir été globalement assez marqué par les tronches en temps réel vues tout au long des vidéos des TGA 2021. Mis à part les humains de The Suicide Squad et les deux héroïnes (mais pas les autres persos) de Forspoken et A Plague’s Tale, c’était vraiment la convention de l’Uncanny Valley. Même problème dans la scène de la bagnole de The Matrix.

Oui alors hein, Matrix, j’étais complètement passé à côté vu que bon, les Game Awards j’en ai rien à faire mais du coup j’ai vu ça hier et au niveau de la ville c’est juste un truc de ouf, on voit beaucoup mieux le potentiel qu’avec leurs démos précédentes et en plus ça tourne chez soi sur consoles. Et puis tout ce que ça laisse entrevoir au niveau production, et puis le système de trafic et passants qui remet une couche de honte à Cyberpunk, etc. Là on commence vraiment à voir le potentiel de la dernière génération de hardware.

Real time shadows on N64 hardware

Although the Nintendo 64 console has in the minds of many been relegated to the era of ‘firmly obsolete graphics’, since its graphic processor’s (GPU’s) lineage traces directly to the best which SGI had to offer in the 1990s, it too supports a range of modern features, including dynamic shadows. In a simple demo, [lambertjamesd] demonstrates how this feature is used.

As can be seen in the demonstration video, this demo features a single dynamic light, which casts a shadow below the central object in the scene, with a monkey object floating around that casts its own shadow (rendered into an auxiliary frame buffer). This auxiliary buffer is then blended into the main buffer, as explained by [ItzWarty] over at /r/programming on Reddit.

This effectively means that the main scene uses a shadow volume, which was used extensively with Doom 3 . The primary reasons for why the N64 didn’t use shadow volumes all over the place was due to the limitations this places on the shadow caster (objects) in the scene, such as the need to be convex, and overlap is likely to lead to artifacts and glitches.

Doom 3 would fix this with the use of a stencil buffer that would further refine the basic dynamic lighting support on the N64, which ultimately would lead to the fancy video game graphics we have today. And which no doubt will look properly obsolete in another decade again, as usual.

2 « J'aime »

J’ai été super décontenancé par le bout de texte cité (qui dit que le singe utilise une shadow map, une technique différente) mais l’explication complète note justement que ça n’est que la plate-forme qui utilise un shadow volume, et du coup c’est effectivement assez épatant.

J’en remets une couche sur Matrix. J’avais parlé avant le grand cataclysme de l’interior mapping, qui consiste à mettre des fausses pièces derrière les fenêtre en donnant une illusion de profondeur à une texture plate ou cubique. La plupart des gens avaient découvert ça avec Spider-Man:

Le mobilier y était plat mais la version Matrix ajoute des parallaxes pour remédier à ça et c’est fort convaincant:

3 « J'aime »

Tout le temps! Ça n’a pas changé depuis au moins GTA3 (au bas mot mais on va prendre un jalon) et c’est, au fond, un problème de maths: combien peux-tu te permettre de charger si tu charges tout le temps?

On peut par exemple voir un extrait de cette présentation de spider-man à 16:38 pour l’approche:

  • On découpe le monde en zones, pour un monde ouvert ça sera agencé très régulièrement, genre une grille mais il mentionne qu’en plus de ça il y a des zones plus abstraites spatialement, contrôlées par des scripts. Pour un Dark Souls classique les liens entre zones ressembleront plus à une carte du métro londonien, et il y aura des petits bouts comme ça dans un monde ouvert pour les donjons spécifiquement.
  • Les zones ont une taille maximum (en octets) standardisée, et on sait qu’on garde le voisinage en mémoire plus un peu de rab. Tu sais aussi de combien de nouvelles zones tu as besoin quand tu change de voisinage
  • Le perso a une vitesse maximum (celle du cheval pour Elden Ring)
  • Tu as dans ton budget technologique un débit maximum pour tes données

Du coup:

Temps dispo pour charger une zone = taille géographique d’une zone / (vitesse max du perso * nombre de nouvelles zone potentielles) = taille en octets d’une zone / débit

Dans le cas de Spider-man ils finissent par arrive à 20 mégas par zone et après toutes les décisions sont prises autour de ça, en rendant les fichiers aussi compacts que possible (même avec un SSD c’est toujours charger depuis le disque qui prend le plus de temps) et en coupant quand c’est trop gros.

Il y a des astuces en plus comme ne charger les textures les plus détaillées que si le perso ralentit (du coup elles peuvent être au-dessus de la limite) ou avoir des zones où, au hasard, tu ne peux pas utiliser ton cheval (vitesse max inférieure → plus grande taille maximum donc plus de trucs au mètre carré, selon la formule) et/ou la connectivité est moindre (genre un donjon). Si tu as besoin de changer tout le voisinage d’un coup et tu n’as pas envie d’un écran de chargement tu vas le déguiser en moyen de transport très long genre un ascenseur qui dure.

Note aussi que c’est pour charger des nouveaux trucs, mais si tu as plus de mémoire que de débit tu peux te permettre de garder les choses longtemps en mémoire, comme un dragon ou un runebear qui te course à travers une bonne partie de la map (note qu’ils finissent finit par dépopper si ils s’éloignent trop longtmeps de leur point de départ).

Pour que le joueur ne réalise pas que les zones distantes ne sont pas là elles sont remplacées par des versions inertes et moins détaillées. Spider-man a toujours une version low-poly de tout manhattan en mémoire par exemple. Souvent il y a un niveau de détail intermédiaire (genre dans SotC le monde est divisé en zones de 600m qui sont divisées en zones de 100m, donc il y a trois niveaux possibles), parfois plus dans les très grands mondes.

9 « J'aime »

Merci pour l’explication ! :bowing_man:

Une très bonne synthèse de ce qui peut être fait en terme d’effets visuels sur Megadrive, avec pas mal de vidéos à l’appui: A Guide to the Graphics of the Sega Mega Drive / Genesis – Raster Scroll Books

1 « J'aime »
1 « J'aime »

Un thread intéressant qui rentre dans les méandres de la PS1 (la console qui a essayé de faire aussi bien que la Saturn, si la mémoire vous fait défaut).

3 « J'aime »

Les sources du SDK de la dreamcast, ça vous dit?

2 « J'aime »

Entre ce photoréalimse troublant et cette parfaite humanisation de la cam, je compte les jours avant d’être officiellement incapable de distinguer le vrai du faux.

My latest environment, freely based on a real-life train station in Toyama, Japan.
The environment is running in Unreal Engine 5, lit with Lumen. I didn’t use Nanite.
I worked on all modeling, texturing, lighting and animation for this video.
The only exception is foliage, which is from Quixel Megascans.

Vivement les passagers MetaHuman + deepfake.

3 « J'aime »

Je serais curieux de savoir à quoi ça resemble et quelle performance ça aurait avec Nanite, vu que les docs et papiers d’Epic sont assez clairs sur le fait que ça booste massivement l’efficacité de tous les systèmes relatifs à l’éclairage.

Je sais qu’il y avait des portails dans le tout premier Unreal mais quoi la baise quand même !

1 « J'aime »

Hé ben, Another World en route sur GBC, si on m’avait dit ça à l’époque…

1 « J'aime »

Je ne sais pas si ça avait déjà été évoqué ici mais pour les curieux qui voudraient comprendre mieux les spécificités d’affichage du X68000, Upsilandre avait fait un exposé intéressant ici :

Une version plus complète est disponible ici et expose notamment les différences significatives avec le CPS-1 :

PS : ne pas tenir compte des affirmations péremptoires de l’un des intervenants dans le second lien

Dernière chance de choper la démo The Matrix sur UE5 pour votre chatoyante PS5, Xbox Series ou Casio Loopy.

L’article sur cette cartouche démo Nintendo DSP1 de la Super Famicom vaut le coup.


Inspirée par le taf d’Upsilandre, une étude approfondie des masques de collision tout pétés du niveau sous-marin de Teenage Mutant Ninja Turtles sur NES.


Et, très honnêtement, j’ai fini par trouver ça un peu long et chiant pour ce que c’était (littéralement du navel gazing !) mais longue plongée dans les sprites du portage Commodore 64 de Double Dragon, et leur étrange scission au niveau du bide.