Sommaire
Salut 'nal,
Aujourd'hui j'ai envie de me lancer dans quelque chose de plus ambitieux que d'habitude : une série-tutoriel sur le développement 3D, qui partirait des années 90 pour arriver à nos jours.
En tant que développeur C/C++ ayant un fort historique là-dedans, ça me tanne depuis longtemps d'en parler… mais de ton point de vue, pour quoi faire ?
Car c'est vrai que si tu fais un jeu ou une simulation 3D aujourd'hui… tu vas plutôt utiliser un moteur clés en main comme Godot, Unity ou Unreal Engine !
Cependant sans le background que je vais t'exposer, tu serais incapable de faire des choix éclairés sur les enjeux et techniques de fond : le support des différents OS et plate-formes, l'évolution des GPUs parallèle à la complexification des APIs, la compréhension de ton pipeline et tes shaders (termes consacrés = anglais oblige !), etc…
Mais d'abord je ferai "juste" un historique pas trop long ; la première démo suivra vite 😉.
Les origines : SGI (…-1992)
Au départ fut une société mythique nommée Silicon Graphics (SGI).
En plus d'avoir fourni une partie du matériel nécessaire pour le rendu des dinosaures de Jurassic Park (qui le lui a rendu en faisait explicitement apparaître une de ses machines dans une scène culte -vidéo !), ils étaient depuis longtemps le partenaire historique de Pixar -bien avant que ces derniers ne soient officiellement reconnus comme des chads.
"C'est un système UNIX. Je connais ça !" (Jurassic Park, 1993)
Les machines SGI coûtaient chacune le prix d'une Tesla, et tournaient sur un UNIX propriétaire nommé IRIX. Anecdote : leur bureau était une implémentation de X11 équipée d'une version très "pimpée" du toolkit Motif (méconnaissable, regarde ça).
Surtout, elles étaient dédiées à la modélisation 3D, et leurs cartes graphiques étaient manipulées par une API nommée la IRIS Graphics Library (IRIS GL).
Au début des années 90, la puissance des micro-ordinateurs explose et l'écart les séparant de leurs très coûteuses "stations de travail" se réduit à grande vitesse. L'apparition de compétiteurs agiles en milieu de gamme fait réaliser à SGI l'importance d'établir un standard qui, espèrent-ils, dirigera les développeurs vers leur implémentation de référence (et leurs machines) en priorité.
Ils retirent d'IRIS GL les éléments propres au système de fenêtrage d'IRIX, et standardisent en 1992 sa portion de dessin pur sous le nom d'OpenGL.
Les années jeu PC (1993-1999)
Le rôle déterminant d'id Software
En 1993, coup de tonnerre : Doom sort (vidéo).
Le jeu d'id Software succède à Wolfenstein 3D et est le premier "fast FPS" du monde. Il est rapide, provocateur, addictif et graphiquement révolutionnaire.
Surtout, il prouve que les CPU x86 des PC ont la capacité de surclasser en 3D les GPU de type "blitter" des machines centrées sur la 2D (comme l'Amiga).
Le CPU d'époque plafonne rapidement cependant, et des compétiteurs à SGI bourgeonnent pour ce nouveau marché gaming des GPUs : le leader 3dfx avec ses Voodoo, NVIDIA et ses Riva TNT… chacun avec son API propriétaire.
Plot twist : SGI ne leur survivra au final pas et s'éteindra lentement. Mais c'est là qu'id Software va à nouveau intervenir.
Voyez-vous, ceux-ci ne sont pas un studio de développement typique.
Déjà, ils sortent une version Linux de Doom dès 1994, alors que notre OS favori était encore couvert de peinture fraîche et inconnu des gamers.
Surtout, vu l'immense travail de portage de Doom sur consoles, et alors qu'ils travaillent déjà sur son successeur ; le sujet du multi-plateformes les titille furieusement.
3dfx proposait sa propre API nommée Glide, mais Id n'en veut pas et désire coder leur futur Quake en OpenGL.
Quake (1996) en rendu logiciel et accéléré MiniGL sur 3dfx Voodoo 1
De manière surprenante, 3dfx (qui désirait s'acoquiner le marché du gaming) coopère et leur demande : "OK. Bon. C'est quoi la portion d'OpenGL que vous prévoyez d'utiliser dans votre jeu ?".
Un travail commun s'engage et débouche la sortie de MiniGL, un wrapper d'environ 30% de l'API OpenGL vers Glide, que 3dfx autorise gracieusement Id à livrer avec Quake.
MiniGL se révèle très performant, et comme id Software vend désormais son moteur à d'autres développeurs, se retrouvera non seulement dans Quake mais aussi Half-Life, son mod Counter-Strike, Daikatana, Heretic, Hexen,…
Half-Life (1998) et son driver MiniGL hérité de Quake
D'autres fabricants, comme PowerVR avec ses Kyro, fourniront vite leur propre implémentation de MiniGL pour faire tourner les jeux du moment.
Le moteur concurrent Unreal, réputé pour ses grands extérieurs et d'abord centré sur Glide, finira par le supporter en 1998 -alors que 3dfx a du mal à sortir la Voodoo 3 et s'étiole. Unreal Tournament et le mythique Deus Ex sortiront ainsi avec un bon support d'OpenGL dans la version 1.1 du moteur d'Epic.
Le driver OpenGL d'Unreal Tournament (1999)
Bref, rapidement et malgré la promotion de Microsoft envers un DirectX/Direct3D pas encore sec, la popularité d'OpenGL s'établira par le feu.
Linux, Mesa et les débuts en open source
Du côté Linux, le tout nouveau projet Mesa 3D s'engage à fournir une implémentation logicielle d'OpenGL (nommée OSMesa) et des points d'entrée afin que les fabricants de GPU puissent la "surcharger" par des appels à leurs pilotes, ressortant à l'autre bout vers le système de fenêtrage XFree86 (ancêtre de notre X.Org).
Démo "glxgears" sur Linux Mandrake 6.1 (1999)
Un driver graphique Linux à cette époque se trouve en 2 ou 3 parties, contre 2 aujourd'hui. On retient juste qu'il est possible pour le couple noyau/serveur X11 d'initialiser le GPU, et pour Mesa de charger un module dialoguant ledit serveur X11.
La boucle était bouclée !
(dans l'article suivant, je passerai à la pratique, avec notre premier exemple C utilisant OpenGL 1.1 -et sentant bon l'ultime saison de DBZ 😉)
# programmation 3D... de jeux
Posté par BAud (site web personnel) . Évalué à 6 (+4/-0). Dernière modification le 24 août 2025 à 13:19.
En lisant le titre « à travers les âges », je pensais que tu allais parler de modélisation 3D ;-) Bon, avec un démarrage en 1992, ça ne remonte pas si loin que ça :D
Et c'est bien de prendre l'axe des jeux, déjà — le sujet étant vaste par ailleurs (Blender, Freecad, impression 3D éventuellement…). Rien qu'OpenGL / VRML / WebGL pourrait donner lieu à plus de 2-3 épisodes (sans te demander de trop divulgâcher la suite :p).
Rester centré sur OpenGL me semble plus raisonnable _o/
En revanche, cela risque (encore) d'être un nourjal promu en dépêche ;-)
[^] # Re: programmation 3D... de jeux
Posté par Tarnyko (site web personnel) . Évalué à 4 (+2/-0). Dernière modification le 24 août 2025 à 14:35.
C'est vrai que c'est un peu de l'hyperbole 😁.
En fait SGI existait déjà 10 ans avant, et Pixar (sous sa forme "division de LucasArts") encore plus… mais il n'y aurait rien eu d'utilisable pour nous dans la micro-informatique, et je pense que par "les âges" j'ai un peu sous-entendu le début du nôtre, celui des ordis à la maison !
Mon biais perso, tu l'as remarqué, a bien fait que ça citera parfois la modélisation MAIS restera centré sur le dév (d'où le titre, "Programmation")… là où je suis vraiment compétent quoi ;-).
(bien que note, j'ai parfois les 2 casquettes : au départ je me contentais d'importer les modèles 3D -avec assimp p.ex.- et aujourd'hui je suis bien plus fréquemment dans Blender et UE. Cela dit je m'y considère pas plus doué qu'un autre :-p)
[^] # Re: programmation 3D... de jeux
Posté par BAud (site web personnel) . Évalué à 4 (+2/-0).
moui, ça j'ai croisé une station SGI/Irix en 1993 mais on utilisait le Bull DPX à côté un peu poussif pour le rendu 3D — en fil de fer, ça le faisait — et qui avait Euclid_(logiciel) pour faire de la CFAO.
j'ai eu un Apple IIe en 1984, ça compte ? :p
bon, c'est plutôt sur PC que j'ai fait de la 3D effectivement.
mais oui, en 1992-93 j'avais un projet d'école en équipe de Raytracing sur stations HP-UX et j'avais un peu joué avec POV-Ray à l'époque sur mon PC.
[^] # Re: programmation 3D... de jeux
Posté par Tarnyko (site web personnel) . Évalué à 3 (+1/-0). Dernière modification le 24 août 2025 à 17:42.
Oh bon sang, je découvre.
Je trouve pas d'image d'Euclid, ça doit être niche. C'est je suppose plus proche de SolidWorks que de Blender (= ça gérait l'aspect "matériau/physique") ?
(PS : à titre perso, le seul Bull que j'aie vu, c'était un mainframe et il était dur à déplacer)
Nan :p
C'est-à-dire que je compte pas Elite.
Et même après, sur 16-bits par exemple, tu aurais pu avoir ce jeu-là, celui-là… ou même ce chef-d'oeuvre là.
La différence, conceptuellement pour cet article, je dirais 2 critères :
- il n'y a pas de GPU accélérateur dédié (aujourd'hui nous avons des GPU "combo" 2D/3D et même IA/etc, mais tu vois l'idée) ;
- c'est soit rapide mais en fil de fer, soit texturé mais trop lent (3-5 FPS) pour être considéré fluide de nos jours.
[^] # Re: programmation 3D... de jeux
Posté par BAud (site web personnel) . Évalué à 3 (+1/-0).
c'est surtout propriétaire :D et le rachat par Dassault (qui fait aussi Catia) n'a pas dû aider.
j'ai cherché avec les mots clefs Matra Datavision Euclid Styler documentation… mais pas d'images de l'interface (parfois cité, résultat présenté…). Même pas de doc' utilisateur en ligne :/
c'était du Motif ou du X11. On travaillait surtout par groupement de pièce (pour limiter les objets affichés) et plutôt en vue fil de fer, le rendu 3D étant un peu long à produire… de l'ordre de la minute pour peu de pièces, 4-5 min (voire 15 min) pour un mécanisme : donc tu prenais ton temps pour régler l'angle de vue pour être représentatif de ce que tu voulais afficher !
'fin bon, ça a permis de sortir CAS.CADE devenu OpenCascade sous licence libre ;-)
oui, cela permettait de calculer les degrés de liberté, le débattement d'une pièce, ajouter des contraintes de déplacement (rotule, axe de déplacement…). Un peu ce que permettait ensuite Poser pour des personnages ou MakeHuman en libre.
les Bull DPS étaient disponibles en station, avec SPIX la déclinaison de Unix System V de Bull, j'en ai vu une en 1988 avec bi-CPU 386 elle devait avoir largement 32 ou 64 Mo de RAM /o\ (et une 25-50aine de terminaux derrière), utilisée pour saisir des données INSEE.
Sinon, la série des PL avec de l'AIX, plus récente, c'était plutôt au minimum 4U voire 16U d'une armoire serveur :-)
ah nan mais Atari ST et Amiga, c'est de la triche : yavait des cartes sons avec DSP et des cartes graphiques
Dark Side c'est un précurseur de BZFlag ? :D
J'étais plutôt Choplifter!, Conan et Jeux Olympiques I & II (qui avaient tendance à favoriser la destruction du joystick).
Et il y avait la 3D isométrique avec Zaxxon ! (bon, j'y ai surtout joué sur PC).
[^] # Re: programmation 3D... de jeux
Posté par Tarnyko (site web personnel) . Évalué à 2 (+0/-0). Dernière modification le 26 août 2025 à 12:01.
C'est ça en fait. J'ai trouvé un PDF là-dessus, page 21 ça parle de "regroupement" -> il a sûrement juste été avalé par CATIA.
Tiens amusant : hier une connaissance a vu mon journal. Elle m'a demandé un truc et ça m'a incité à nettoyer & publier un code méga-vieux (ici une image).
Merci pour toutes ces références -dont je connaissais pas la moitié !
J'ai un pote qui bosse sur des AIX aujourd'hui ; y a pas d'écran par contre. Ça s'est trop s'est serveurisé ;-).
Tout de suite ! L'Amiga c'est à peine mieux que la Megadrive ou la SuperNES, plus de couleurs mais moins de sprites et d'effets… (tu dois voir que pour moi à l'époque, cette qualité de pixel art était déjà un acquis ;-) ).
De toute façon, toutes ces cartes graphiques sont conceptuellement différentes : super pour l'affichage 2D pour lequel elles avaient été conçues, elles appelaient un renouveau pour la 3D (un terrain vierge à l'époque).
Sinon : j'ai essayé Wings 3D vite fait.
Ça utilise encore OpenGL 2.1 (WTF?), mais je reconnais que plein de formats dont le glTF sont supportés, et que l'interface met bien à l'aise.
J'ai pris un tuto pour me lancer, on verra quand j'aurai le temps de jouer avec ;-).
[^] # Re: programmation 3D... de jeux
Posté par Tarnyko (site web personnel) . Évalué à 2 (+0/-0).
(PS : pour la mention "Wings 3D" en bas, c'est pas à toi que j'aurais dû répondre. Sorry !)
[^] # Re: programmation 3D... de jeux
Posté par dr191 . Évalué à 4 (+3/-0).
Souvenir de jeunesse: J'ai aussi fait de la CFAO à la fin des annees 90 sur des Octane, les grosses boites vertes / bleues. Et en parrallèle, on faisait de la CAO 3D sur PC ( bon oui, Windows NT et Solidworks ).
# Environnement de bureau
Posté par tkr (Mastodon) . Évalué à 6 (+4/-0).
Pour la capture de Mandrakesoft 6.1, il pourrait être utile de préciser l'environnement :
https://en.wikipedia.org/wiki/Common_Desktop_Environment
C'est un environnement de bureau très répandu sur certains systèmes unix (solaris, aix, etc..) bieen que longtemps propriétaire.
[^] # Re: Environnement de bureau
Posté par Tarnyko (site web personnel) . Évalué à 5 (+3/-0). Dernière modification le 24 août 2025 à 17:25.
La vache, je pensais pas que quelqu'un s'en rendrait compte… surtout aussi vite.
Pour la peine, dédicace à toi 😉 :
(Mandrake 6 fournit en fait KDE 1, mais j'ai lancé ce bon vieux CDE -le vrai, le pur, l'Ancien- pour que ça aie l'air encore plus rétro !)
[^] # Re: Environnement de bureau
Posté par tkr (Mastodon) . Évalué à 3 (+1/-0).
Merci bcp!
Je prends, et j'encadre la capture ;)
# trou-à-dés
Posté par Marotte ⛧ . Évalué à 5 (+2/-0). Dernière modification le 25 août 2025 à 11:52.
Le sujet est intéressant et j’espère pouvoir trouver le temps de lire tout ça. Ton introduction me fait plaisir à lire sur un point :
C’est peut-être une faiblesse finalement, et fort heureusement je ne suis pas développeur professionnel, mais ça m’est parfaitement inenvisageable d’utiliser un moteur, ou une bibliothèque, un framework, quel qu’il soit, sans avoir une connaissance sinon exhaustive, un minimum convenable, du fonctionnement sous-jacent.
Apprendre l’électronique relevait pour moi de l’indispensable pour l’utilisation d’un ordinateur, alors qu’en pratique ça ne sert strictement à rien. J’ai réalisé cela il y a longtemps mais je ne sais toujours pas si c’est plus pertinent de considérer ça comme une qualité ou comme un défaut. ^^ (S’en tamponner doit être la meilleure chose à faire à priori)
Je vois que tu n’en n’a pas parlé, je me demande si tu connais et éventuellement ce que tu en penses : à une époque je me suis plaisamment distrait à « faire de la 3D », à mon modeste niveau d’utilisateur, avec Wings3D et Sauerbraten. Les deux logiciels sont remarquablement intuitifs d’après-moi. J’en veux pour preuve que j’ai réussi sans trop d’effort à faire ce que je voulais.
Sauerbraten est un FPS qui dans le fond ressemble aux autres FPS libres disponibles sous Linux. Mais son mode « édition de carte » est, je trouve, super bien pensé. Je n’ai pas connaissance d’équivalent dans les autres FPS. Les rares fois où j’ai une envie de « tous les tuer » (et pas de jouer à l’architecte) c’est Nexuiz qui a ma préférence. Je n’ai pas lancé le jeu depuis un bail mais je ne crois pas qu’il possède un mode édition comparable à celui de Sauerbraten. J’irais même jusqu’à comparer Sauerbraten avec Freecraft tellement le mode édition est plus intéressant que le FPS en tant que tel :)
Wings3D, pareil, ça remonte à loin… J’ai le souvenir d’un logiciel infiniment plus intuitif que, par exemple, Blender. Sûrement moins puissant mais à mon avis au maximum de « kissitude » qu’un tel logiciel peut atteindre.
[^] # Re: trou-à-dés
Posté par Tarnyko (site web personnel) . Évalué à 4 (+2/-0). Dernière modification le 25 août 2025 à 14:53.
Toi et moi, on est pareils 😉.
D'un point de vue productif : on peut parfaitement aujourd'hui faire un jeu indépendant avec juste un moteur qui fournit une IDE, des blocs de script à glisser-déposer…
Par contre si on veut passer au commercial (ça inclut les consoles) : il faut des compétences en optimisation, pouvoir écrire ses plugins, déboguer ceux des autres, toussa.
Certains y arrivent à ce moment. Il se trouve juste que pour nous c'est la manière "logique" d'aborder un sujet : du simple au compliqué !
Je connais bien Sauerbraten, et j'avais essayé ! c'est juste qu'à l'époque la folie deathmatch (UT, Quake 3…) m'avait déjà quitté.
Pour Wings, je vois que c'est projet au long cours (2001). J'ignorais totalement son existence !?! À l'époque j'utilisais un autre outil propriétaire (3DS…), et après j'ai direct switché au complexe Blender…
Du coup c'est sûrement paradoxal, mais je vais essayer Wings maintenant 😆.
[^] # Re: trou-à-dés
Posté par Tarnyko (site web personnel) . Évalué à 3 (+1/-0).
J'ai essayé Wings 3D rapidement.
Ça utilise encore OpenGL 2.1 (WTF?), mais je reconnais que plein de formats dont le glTF sont supportés, et que l'interface met bien à l'aise.
J'ai pris un tuto pour me lancer, on verra quand j'aurai le temps de jouer avec ;-).
# Et duqueunuquèmetroadé alors ?!
Posté par Marotte ⛧ . Évalué à 5 (+2/-0).
Ça manque de Dukenukem3D non ? J’ai souvenir de ce jeu sur le PC d’un membre de ma famille à l’époque de Doom, et qu’il était bien plus abouti en terme d’exploitation du tri-dimensionnel, gameplay comme graphismes.
Le premier Doom il était pas vraiment en 3D pour ce qui est du gameplay, on pouvait tirer à droite ou à gauche mais pour ce qui était du haut/bas rien du tout. Il pouvait y avoir des cibles à différentes hauteurs mais quand on tirait ça tirait « sur toute la verticale ».
Un autre souvenir de tout premier jeu en 3D c’est Star Fox sur SNES, De nos jours ça pique violemment les yeux, et même à l’époque au niveau purement esthétique ça faisait un peu peine à voir. Je crois que c’est le tout premier jeu « vraiment en 3D » auquel j’ai eu l’occasion de jouer. Il date de 1993 si je me fie à Youtube. Je me trompe peut-être mais j’ai l’impression que techniquement, en terme de 3D, ce jeu est assez remarquable. (?)
[^] # Re: Et duqueunuquèmetroadé alors ?!
Posté par Tarnyko (site web personnel) . Évalué à 5 (+3/-0). Dernière modification le 25 août 2025 à 15:07.
Oui le moteur Build de Duke 3D était meilleur ! On pouvait nager, voler… j'adorais le jeu : un nanar volontaire.
Au niveau code (car il a fini par être open-sourcé) j'ai regardé : c'était autant un tour de force qu'illisible par le commun des mortels.
En fait je ne l'ai pas cité, car il :
- n'a pas été officiellement porté sous Linux par son équipe;
- n'a pas été utilisé comme base pour le jeu suivant (un certain Duke Nukem Forever, qui mériterait son propre article philosophique) ;
- son support OpenGL "bénévole" n'est arrivé qu'après la période de l'article (1 à 5 ans selon la référence).
En fait, Starfox qualifie techniquement : sa cartouche embarque un co-GPU dédié, ce qui lui permet de faire de la 3D shadée à une vitesse correcte.
Cette dinguerie (super chère sur le prix du jeu) sera réutilisée par Virtua Racing sur Megadrive. C'est celui-là que j'avais !
Bien sûr, c'est du fait main et probablement tout en assembleur 😉.
[^] # Re: Et duqueunuquèmetroadé alors ?!
Posté par Lutin . Évalué à 3 (+1/-0).
Et certain mur étaient destructibles, avec des niveaux qui changent complètement.
Par contre Duke3D est plus proche de la parodie que du nanar volontaire.
[^] # Re: Et duqueunuquèmetroadé alors ?!
Posté par Marotte ⛧ . Évalué à 4 (+1/-0).
Un grand merci à toi pour ces informations. Notamment en ce qui concerne la spécificité de la cartouche de ce jeu.C’est vrai que les cartouches de console de jeux, de par leur nature de circuit imprimé « générique », étaient potentiellement plus que de simple dispositif de stockage.
J’avais cette intuition que ce jeu était particulier par rapport aux avancées dans les graphismes des jeux vidéo. Maintenant je sais pourquoi.
Tout aussi impressionnant que l’effondrement de la bio-diversité mais beaucoup plus distrayant, les progrès réalisés dans le domaine des graphismes que pouvaient afficher les ordinateurs est, je trouve, fulgurant. J’ai notamment toujours à l’esprit :
"Pong" (c’était un jeu de tennis en fait. Les les autres jeux de la cartouche : Hockey, Foot, étaient tous des « jeux de simulation sportive » (je mets les guillemets parce qu’aujourd’hui je doute qu’on puisse accepter cette qualification pour ce qu’était ces jeux). C’était sur un console de jeu fabriquée in France par Thomson ou Phillips je ne sais plus. (ça aussi ça pourrait sembler être de la fake-news… quand on voit où l’on en est en matière de graphisme les ordi/consoles ! ^^)
Le choc visuel que j’ai eu, moi possesseur d’une console Sega Master System 2 (8bit), qui en arrivant chez un copain entrain de jouer à Street Fighter 2 sur SNES (aka: « Super Nintendo » dans le langage courant en France à l’époque). Quand je vois maintenant ce que c’est comparé à ce qu’il se fait maintenant je réalise qu’il en fallait peu pour m’exciter déjà l’époque.
Maintenant que j’ai du recul je peux dire que la seule et unique évolution dont je n’avais aucun doute sur l’évènement dans un futur proche c’était la téléphonie mobile (la téléphonie mobile au sens strict, mais pas le smartphone, ni que nous y trouverions des « jeux électroniques » sur ceux-ci.) Tout le reste du futur actuel, e: le futur d’hier, à aucun moment je me suis fait la réflexion : « on aura ça bientôt c’est obligé. »
Partir dans des digressions comme ça… alors là ! J’étais persuadé de ne jamais faire ça ! ^^
[^] # Re: Et duqueunuquèmetroadé alors ?!
Posté par Tarnyko (site web personnel) . Évalué à 2 (+0/-0).
Alors là je ne sais que dire… si ce n'est qu'on se motive beaucoup par comparaison, et que la 2D moche vers la belle 2D, ou encore la 3D, ça marque toujours !
PS : "jeu électronique" ça m'évoque beaucoup ça ;-)
[^] # Re: Et duqueunuquèmetroadé alors ?!
Posté par Marotte ⛧ . Évalué à 4 (+1/-0). Dernière modification le 28 août 2025 à 18:12.
On m’avait offert le Donkey Kong rapporté directement de Chine, je regrette de pas l’avoir conservé, ça se vend 150 balles de nos jours ! https://www.reepeat.fr/produits/p/console-nintendo-game-and-watch-orange-donkey-kong
Oui c’est ça que j’entends par "jeux électroniques", les premiers mobiles notamment Nokia avec son jeu "Snake" me semble plus correspondre à l’idée de jeux électronique que de jeux vidéo.
Sachant l’existence de téléphone de voiture il me semblait impossible qu’on ne finisse pas par mettre au point des téléphones mobiles pour les piétons. Qu’on les munisse de jeux électroniques par contre je ne m’y attendais pas.
# 1992, c'est le futur
Posté par devnewton 🍺 (site web personnel) . Évalué à 5 (+2/-0).
Il y avait déjà des jeux en 3d avant 1992, sur Amiga par exemple ou sur micro 8 bits avec le célèbre Elite.
Le post ci-dessus est une grosse connerie, ne le lisez pas sérieusement.
[^] # Re: 1992, c'est le futur
Posté par Tarnyko (site web personnel) . Évalué à 3 (+1/-0).
Tu as raison Newt' !
Mais c'est un peu la réponse que je faisais à @BAud ci-dessus : ces jeux ne sont pas conçus pareils, il n'utilisent pas d'accélérateur dédié 3D, et les limitations en FPS ou qualité d'affichage faisaient qu'ils n'étaient pas considérés "pratiques à jouer" par le grand public.
Je pense que le contrat est davantage rempli par les jeux console qui embarquaient un GPU sur leur cartouche, mais c'est réellement la standardisation du monde PC qui va dans le bon sens pour les développeurs AMHA.
[^] # Re: 1992, c'est le futur
Posté par devnewton 🍺 (site web personnel) . Évalué à 4 (+1/-0).
Il te faudra alors faire un léger détour par les moteurs de rendu logiciels comme celui de l'excellent MDK, car un GPU dans les années 90, ça pouvait coûter la peau du troudufux.
Le post ci-dessus est une grosse connerie, ne le lisez pas sérieusement.
[^] # Re: 1992, c'est le futur
Posté par Tarnyko (site web personnel) . Évalué à 2 (+0/-0). Dernière modification le 27 août 2025 à 14:47.
Perso j'ai successivement eu les 3 cartes Voodoo 😉.
J'aime bien MDK sans plus ; mais niveau software, les moteurs de Dungeon Keeper, Little Big Adventure 2… étaient mes favoris.
Je viens de trouver les sources de ce dernier. La partie d'affichage réel se trouve ici, et l'initialisation de l'écran plus précisément là.
Sans surprise c'est fait à bas niveau en assembleur : les instructions BIOS VESA sur les IBM PC, c'est une norme connue à cette époque ; c'est le "mode sans échec" de Windows et du boot Linux.
Après on passe la main à une lib SVGA écrite en mélange C/assembleur pour des raisons de perf (tout comme Doom sur Linux faisait appel à la SVGALib).
Et finalement pour la 3D ils font toujours de l'assembleur, là franchement je suis sûr que ça défonce mais ils étaient plus strictement obligés.
Bref, tu vois mon "point" : c'est très fort mais pas réutilisable, en tout cas pas sur d'autres profils que l'IBM PC avec droits root et/ou OS permettant l'accès direct à la mémoire vidéo.
[^] # Re: 1992, c'est le futur
Posté par Marotte ⛧ . Évalué à 4 (+1/-0).
Il me semble que c’est toujours une norme actuellement et on peut utiliser ce mode pour faire tourner X.org (avec des perf’ lamentables mais ça peut dépanner)
[^] # Re: 1992, c'est le futur
Posté par Tarnyko (site web personnel) . Évalué à 3 (+1/-0). Dernière modification le 28 août 2025 à 20:40.
Exact ! C'est bel et bien un driver installable de la dernière chance pour X.org, avec la config Driver "vesa" .
À noter que ça ne marchera pas forcément si KMS est activé, comme sur la plupart des systèmes modernes (ça peut se désactiver au boot avec -nomodeset, mais tu y gagnes : le couple KMS/DRM est bien plus efficace avec des résolutions plus hautes et un meilleur taux de rafraîchissement).
# Super, car il y a un truc que je cherche à décrypter
Posté par Luc-Skywalker . Évalué à 3 (+1/-0).
et ce depuis très longtemps … disons, depuis la fac vers 94/98 (stations Sun/Solaris, quelques SGI qui faisaient rêver + des macs et des PC sous WIN 3.1 ou win95 pour les étudiants et les allérgiques)
ça correspond aussi à l'époque ou je me suis lancé dans Linux sur x86. Ou rien que faire démarrer le bouzin -un portable en plus- en mode console était déjà une grande satisfaction, lancer Xwindow un exploit et faire marcher les premières version de KDE un Graal, quant à la 3D … ;)
Tandis que les autres étudiants avec leurs PC ou Mac passaient la moitié de la journée à jouer à Carmageddon moi je galérais comme pas possible …
Bref, les pilotes graphiques (plus ou moins libres), les extensions, les accélérations matérielles etc, ça reste toujours et encore du chinois pour moi.
Super, donc si ça pouvait faire le lien entre le matériel, les pilotes et autres bibliothèques, tout en restant accessible à un éternel Noobs dans mon genre, je t'en serais très très reconnaissant :)
"Si tous les cons volaient, il ferait nuit" F. Dard
[^] # Re: Super, car il y a un truc que je cherche à décrypter
Posté par Tarnyko (site web personnel) . Évalué à 3 (+1/-0). Dernière modification le 27 août 2025 à 15:00.
Alors là, c'est un sujet que je maîtrise assez bien, nonobstant les évols récentes
(p.ex. je crois qu'ils veulent déprécier l'OSMesa dont je parle dans l'article).
Donc j'hésite encore un peu, ta question est plutôt :
je demande à ma lib OpenGL d'afficher un triangle. Concrètement, quelles sont les bibliothèques traversées dans les 2 sens vers depuis le GPU. C'est bien ça ?
ou encore plus bas niveau : comment le serveur X/compositeur Wayland initialise-t-il mon affichage ?
[^] # Re: Super, car il y a un truc que je cherche à décrypter
Posté par Luc-Skywalker . Évalué à 3 (+1/-0).
Ah oui, Mesa, j'ai le souvenir d'expériences assez compliquées avec çà. Pour l'anecdote, je suis de près FreeCad depuis ses débuts, mais j'ai du attendre quelques années avant de m'en servir, la faute à cette fichue 3D.
C'est plutôt le bas niveau qui m'intéresse. Par exemple:
le pilote, comment tire-t-il parti des fonctionnalités des puces graphiques (avec un pilote libre c'est plus facile à comprendre, encore mieux s'il est officiellement supporté par le constructeur. J'ai entendu dire que c'était le cas pour AMD et Intel ?)
comment les libristes s'adaptent face à une API matérielle proprio (genre retro engineering => surcouche logicielle ?)
entre les premières cartes graphiques à supporter OpenGL et les monstres d'aujourd'hui, qu'est ce qui a changé dans les fonctionnalités rendues par le matériel et comment le pilote les exploite (nouvelles fonctions natives, nouvelles libs).
C'est un peu en vrac, tu en feras ta sauce. Ton premier article est très cool donc je serai content de lire la suite quoi qu'il arrive.
"Si tous les cons volaient, il ferait nuit" F. Dard
[^] # Re: Super, car il y a un truc que je cherche à décrypter
Posté par Tarnyko (site web personnel) . Évalué à 4 (+2/-0). Dernière modification le 27 août 2025 à 16:40.
Ah OK ! Alors :
Ça c'est très simple : c'est pas ma partie 😁.
Je sais comment Mesa communique avec l'interface noyau qui fait ensuite appel au driver.
Je ne sais pas comment le driver communique matériellement avec son GPU, de manière probablement spécifique à chaque fabricant… sorry !
(mais si je devais le faire, je commencerais par étudier le driver virtuel "vmwgfx" qui est en fait utilisé par plein d'implémentations VM dont VMware/VirtualBox/QEMU. Et après je regarderais un driver matériel)
Ah ça par contre, on est en plein dedans ! C'est le début puis la suite de mon tuto 😉.
Les GPU ont masse changé depuis 25 ans, et les APIs ont évolué pour en tirer parti : p.ex. y a eu le passage du traitement immédiat à celui par shaders, les VBOs, les textures compressées, le bump mapping, l'illumination statique-dynamique puis par raytracing…
Mon tuto prévoit de commencer à poil avec l'OpenGL 1.1 de 1998, puis de passer le millénaire en ajoutant les 2 premiers éléments (shaders et VBOs). Après on évoquera l'embarqué avec OpenGL ES et le contrôle total que donne Vulkan. L'étape suivante ce sera mettre du mouvement-textures-lumières, PUIS rajouter extension sur extension.
Tu peux d'ailler te spoiler un peu en regardant mon dépôt… je prévois ça semaine prochaine. Qu'en penses-tu ?
[^] # Re: Super, car il y a un truc que je cherche à décrypter
Posté par Luc-Skywalker . Évalué à 4 (+2/-0).
Mais c'est très bien, le programme me plaît et j'ai plein de trucs à découvrir à ce sujet
"Si tous les cons volaient, il ferait nuit" F. Dard
[^] # Re: Super, car il y a un truc que je cherche à décrypter
Posté par Marotte ⛧ . Évalué à 4 (+1/-0). Dernière modification le 29 août 2025 à 00:32.
Au moins tu as probablement acquis des compétences en informatique utiles de ce fait.
J’ai commencé Linux un peu plus tard que toi, vers Windows 98, j’ai utilisé XP un petit moment puis je n’ai plus utilisé que GNU/Linux (plusieurs distributions mais je me suis vite « posé » sur Debian). À cette époque recompiler le kernel était une opération tout à fait normale et souvent indispensable pour faire fonctionner tel ou telle périphérique, ou avoir telle ou telle fonctionnalité. Mon plus douloureux souvenir pour ma part ce sont les modems, RTC. Quelle joie d’apprendre l’existence des « winmodem » : des modems bas-de-gammes dont le driver dépend de fonctionnalité de l’OS Windows, ce qui rendait le développement d’un driver Linux pratiquement impossible. Voire strictement impossible, j’ai jamais creusé le sujet (ce n’est pas moi qui aurait développé un driver de toute façon !). J’ai changé de modem et j’ai compris que dorénavant la compatibilité de mon matériel avec Linux était un point crucial.
Que de chemin parcouru. Maintenant on trouve des PC vendus sous Ubuntu ou autre. Ou même simplement sans OS, ce qui était difficile à obtenir il y a 20-25 ans. Linux s’est imposé largement sur les serveurs, les super-calculateur, les objets connectés, et l’année prochaine il explosera sur le marché du desktop/laptop ! Enfin peut-être… ;)
Comme dirait El Gringo : La route est longue mais la voie est libre.
[^] # Re: Super, car il y a un truc que je cherche à décrypter
Posté par Luc-Skywalker . Évalué à 2 (+0/-0).
Tout à fait, car avant cela (depuis Pong on va dire), je me désintéressais totalement de l'informatique.
Mais Linux et les LL ont changés la donne et restent aujourd'hui encore pour moi une source inépuisable de nouvelle connaissances (disons, découvertes, c'est plus humble :))
Je te rejoins aussi sur le reste de ton propos. Aujourd'hui, on installe Linux en quelques clics sur n'importe quel ordinateur grand public et ça globalement "juste marche".
Bon, peut être que l'identification biométrique ne marchera pas, mais perso, je peux faire sans.
c'est pas le 10 septembre la fin du support de W10 ?
"Si tous les cons volaient, il ferait nuit" F. Dard
[^] # Re: Super, car il y a un truc que je cherche à décrypter
Posté par Marotte ⛧ . Évalué à 4 (+1/-0). Dernière modification le 31 août 2025 à 05:49.
Ça me surprend, en bien, je suis pour ma part passionné par les ordinateurs depuis très jeune. Par les machines en général et les ordinateurs sont les reines des machines ! ^^. Je ne pensais pas que « se mettre à Linux » puisse concerner une personne à la base pas plus passionné que ça par l’informatique. Content de découvrir que je me faisais une idée fausse. Maintenant que j’y pense c’est vrai que j’ai un pote pas du tout porté sur l’informatique et qui s’étant intéressé aux cryptomonnaies et s’était fait convaincre par je ne sais qui que pour manipuler de la cryptomonnaies il fallait être sous Linux. Sachant que je connaissais il me raconte ça et me demande de lui « installer Linux » et veut aussi s’avoir mon avis sur cette recommandation de Linux. Je lui réponds que ce n’est pas strictement obligatoire mais en effet fortement recommandée. Je passe environ deux heures avec lui, je lui installe Ubuntu devant lui en lui expliquant quelques trucs en essayant de pas le noyer d’informations. Bonne surprise là encore de le revoir quelques semaines plus tard, en lui posant la question de savoir s’il est satisfait de Linux, de s’entendre répondre, avec un peu de gêne, qu’il me dit que oui, mais que par contre, il a installé Mint à la place d’Ubuntu « parce que c’est mieux ». Je lui ai bien sûr confirmé que même si je ne connaissais pas cette distribution elle avait bonne réputation et que j’étais au contraire très heureux qu’il ait pu installer lui-même une autre distribution. Il n’avait jamais installé un Windows de sa vie… et avec de la chance ne le fera jamais! :)
Je devrais appeler ce pote tiens, pour
l’injurier et le sermonner puis couper totalement les ponts si jamais il est revenu sous Windows !prendre de ses nouvelles et savoir s’il a définitivement accroché à Linux. Dans tous les gens à qui j’ai fait découvrir Linux j’ai plus de gens qui ont continué à l’utiliser que de gens qui sont revenus à Windows.Le principe des logiciels libres, de l’open-source, dépasse le domaine de l’informatique je crois. On peut citer l’art libre avec les licences Creative Common ou le combat contre les brevets sur le vivant, au moins aussi important que celui contre les brevets logiciels. À vrai dire c’est me semble-t-il le même combat. Un combat contre l’hégémonie, contre un pouvoir qui soit assis sur la rétention d’information et l’accaparement du savoir. C’est le combat que les philosophes dits « des Lumières » ont formulés jadis, mais qui, j’en ai la conviction, existait déjà avant eux, même si le combat avait lieu dans l’ombre.
Apprendre de nouvelle connaissances je crois que c’est une nécessité vitale pour la plupart des gens. Apprendre est paraît-il la seule chose dont l’être humain ne peut se lasser…
Envoyer un commentaire
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.