Téléchargez l'application
Tom's Hardware sur l'App Store
Toute l'actu informatique de référence sur votre iPhone
Oui Non

Un peu d’histoire…

par

Les expérimentations de Carmack avec les voxels ne datent pas de l’an dernier, en fait tout ça date d’une dizaine d’années. Entre les moteurs de Quake/Quake II et celui de Quake III,  John Carmack a réalisé plusieurs expérimentations avec de nouvelles techniques de rendu. Il a désigné  l’ensemble de ses recherches sous le nom de code Trinity que beaucoup de joueurs ont vu comme un futur produit, la nouvelle génération de moteurs 3D de chez id Software alors qu’au final le moteur de Quake III est resté assez conventionnel comme il l’a révélé lui-même dans un de ses .plan datant de 1998 :

«Voici quelques notes sur les technologies que j’ai explorées durant la mise au point du moteur de Quake III/Trinity.  J’ai consacré initialement plusieurs mois à des recherches assez ouvertes mais il s’est avéré finalement qu’aucune de ses recherches préliminaires n’ont eu de rapport avec les directions que j’ai finies par choisir. Ah tant pis, j’ai beaucoup appris au passage et cela paiera probablement dans quelques temps. »

Parmi ses expérimentations se trouvaient l’affichage d’octree de voxels. Voici ce qu’il déclarait peu de temps après la sortie de Quake III :

« J’ai écrit ces deux moteurs de rendu voxel au début du développement de Quake III et j’en suis arrivé au point où je pensais pouvoir pratiquement les faire tourner de façon logicielle mais ça aurait été à une résolution assez faible et comparé à ce que l’on pouvait faire à cette vitesse avec des triangles accélérés par le matériel, ça n’était pas rentable.

J’ai fait une analyse de ce que seraient les motifs d’accès mémoires, etc, on peut faire un raytracer de voxels en hardware avec nettement moins de matériel que ce que nous utilisons à l’heure actuelle pour les rasterizers de triangles et je pense que ça pourrait être une représentation visuelle beaucoup plus attirante dans de nombreux cas. »

Cette citation est extraite d’une interview de Firing Squad datant du début de l’an 2000, il y a prés de dix ans, on peut donc dire que cette idée trotte dans la tête de John Carmack depuis un bon moment.

Il est impossible de parler de voxels sans mentionner Outcast. Ce jeu sorti il y a plus de 10 ans (juillet 1999, voilà qui ne nous rajeunit pas) a marqué toute une génération de joueurs par ses multiples qualités mais aussi pour son moteur 3D si particulier à cette époque où les cartes 3D s’étaient imposées dans les PC des joueurs. En effet Outcast reposait sur un moteur de rendu totalement logiciel ce qui le rendait particulièrement gourmand, pour pouvoir faire tourner le jeu dans sa résolution maximale (un impressionnant 512x384 !) il fallait un processeur dernier cri (mais pas de carte d’accélération 3D). Mais la gourmandise n’est pas la seule raison qui fait que ce moteur 3D a marqué les esprits, son utilisation des voxels a également assuré au jeu un rendu véritablement unique.

Pour autant il faut relativiser quelque peu cette affirmation : si le jeu est resté (en compagnie des jeux de Novalogic) le porte étendard du rendu à base de voxels, en réalité il n’en utilisait qu’une forme assez simplifiée et uniquement pour le terrain. Tous les objets ainsi que les personnages étaient pour leur part des modèles polygonaux tout ce qu’il y a de plus classiques. Le terrain pour sa part reposait sur une heightmap (carte de hauteur), de ce fait il n’y avait qu’une seule hauteur possible pour chaque point du terrain, ce qui interdisait des structures complexes comme des arches par exemple.

Ce problème n’était pas vraiment rédhibitoire car ce type de structures reste assez rare dans la nature du fait des contraintes de la physique. L’affichage du terrain était assez simple et se faisait colonne par colonne. Pour chaque colonne une valeur maximale en Y était stockée (Y-Buffer) ensuite les pixels de la colonne en question étaient remplis du bas de l’écran vers le haut uniquement si leur valeur Y était supérieure à celle stockée dans le Y-Buffer.  Cette méthode de rendu permettait une suppression très efficace et très simple des parties non visibles de la scène.

Après ce retour dans le passé il est temps de voir maintenant ce que nous réservent les voxels dans le futur.

Partager:
14
Commentaires
X
Valider

Commentaires
Lire les commentaires sur le forum
Serious Gilles 31/08/2009 10:02
Masquer
-1+

"Ces premiers résultats sont extrêmement prometteurs pour le matériel qui sera disponible à la sortie des jeux exploitant cette technique. [...] il y a de grandes chances pour que nous devions encore attendre 3/4 ans pour voir ce type de rendus se démocratiser."

Un peu rapide comme conclusion je trouve... A part Carmack, personne n'a annoncé un moteur massivement basé sur du stream de voxels. Et encore, il n'a rien confirmé, juste dis vers quoi il orientait ses recherches. Et Olik a quitté sa boite.

Carmack a déjà fait des pas en arrière. Par exemple en arretant l'utilisation des stencil shadow volume (depth-fail, le fameux Carmack's Reverse sur lequel il a tellement bossé) pour se rabattre sur des shadow maps avec l'idTech5.

le_rater 31/08/2009 10:07
Masquer
-2+

Qu'en est il des éclairages? des interactions avec les shaders?

Aimame 31/08/2009 10:14
Masquer
-3+

L'article est très clair, bien expliqué... compréhensible par tous, et de surcroit très intéressant. Merci!

Zeross 31/08/2009 11:21
Masquer
-0+

serious gilles :
Un peu rapide comme conclusion je trouve... A part Carmack, personne n'a annoncé un moteur massivement basé sur du stream de voxels.



Tout à fait la phrase est mal tournée, elle devrait plutôt être comprise dans le sens "SI cette technique devait à s'imposer il faudrait encore attendre 4 à 5 ans avant de voir des jeux l'exploiter"

Mais effectivement à l'heure actuelle c'est un gros point d'interrogation. Concernant les autres sociétés qui bossent sur du streaming de voxels je crois que Crytek a fait une présentation à la GDC où ils en parlent pour le futur du CryEngine même si là encore ça reste des travaux préliminaires.

http://www.gamasutra.com/php-bin/n [...] tory=24865
Citation :He also noted ray-tracing as a possible rendering method to move towards, and particularly recommended rasterization and sparse voxel octrees for rendering. Such principles will form "the core" of future technology for Crytek's next engine, Yerli said, and the goal is to "render the entire world" with the voxel data structure.


Tim Sweeney en a parlé aussi dernièrement à la conférence High Performance Graphics de cette année même s'il a l'air de son côté plus intéressé par REYES.

le_rater :
Qu'en est il des éclairages? des interactions avec les shaders?



Il n'y a pas franchement de différence avec ce qui se passe aujourd'hui : évidemment il n'y a plus la distinction vertex/geometry/pixel shader : lorsque le rayon intersecte un voxel à ce niveau là tu peux tout à fait exécuter un shader qui prend en entrée les paramètres de ton voxel : couleur/normal et autres informations que tu juges intéressantes d'y stocker et qui va ensuite calculer l'éclairage de la manière que tu veux. Vu que la structure serait a priori totalement statique dans un premier temps du moins, il est probable que l'éclairage soit précalculé et stocké directement dans l'octree (c'est déjà ce qu'id fait avec l'idTech 5 en stockant les informations d'éclairage statique dans la MegaTexture),

Aimame :
L'article est très clair, bien expliqué... compréhensible par tous, et de surcroit très intéressant. Merci!



Merci :)

OoxpioO 31/08/2009 12:52
Masquer
-0+

Citation :Un tel système au lieu de modifier la normal map viendrait modifier directement la géométrie dans le cas de cette technologie


ça intérêt à être sacrément optimiser !

Merci pour l'article :)

Pinkuik 31/08/2009 14:35
Masquer
-0+

Merci pour l'article. D'ailleurs si on pouvait avoir un peu plus d'article de ce niveau, pas seulement pour les graphismes mais aussi pour l'audio souvent négligé - à bon entendeur... ;)

magellan 31/08/2009 14:39
Masquer
-0+

Pinkuik :
Merci pour l'article. D'ailleurs si on pouvait avoir un peu plus d'article de ce niveau, pas seulement pour les graphismes mais aussi pour l'audio souvent négligé - à bon entendeur...


L'audio n'est pas vraiment négligé en terme d'environnement, c'est le coût qui est un frein monumental. Quand tu fais de la 3D, pas "difficile" d'octroyer une bonne machine à un développeur qui fera joujou sur Maya et consoeurs. A contrario, dès qu'on touche au son, c'est immédiatement des micros, des tables de mixages, des studios... et donc des coûts rapidement inabordables. bien sûr qu'il serait fantastique que le 5.1 et 7.1 actuel soient pris en charge et vraiment utilisés, mais combien de personnes en profiteront? C'est aussi ça, le problème: investir plusieurs millions pour 1% des joueurs cible?

anonymous 31/08/2009 14:51
Masquer
-0+

super article , et vraiment clair et comprehensible , vu la complexité du sujet

Dawnrouille 31/08/2009 17:00
Masquer
-0+

Il y a quand même un problème de taille avec la perte du calcul de rayons secondaires! Bref une belle technique mais avec un vilain défaut.
Même si l'idée d'environnements destructibles et d'une physique beaucoup plus poussée m'a enthousiasmée quand j'ai compris le fonctionnement de ce rendu. Mais comme vous l'avez dit on peut encore rêver un moment avant ça. (le jour où on arrivera à produire des puces dont la trame sera faite de simples liaisons atomiques?! :D)
I'm dreaming, mais ça fait atterrir et comprendre que dans quelques années ont pourra dire que finalement Crysis était bien loin d'un rendu photoréaliste (vidéoréaliste??), tout comme on peut penser cela quand on voit farcry qui était aussi dit photoréaliste à sa sortie.
En tout cas j'aime ces gens, ces sociétés qui travaillent vraiment à améliorer le rendu.
Merci pour l'article

anonymous 31/08/2009 17:47
Masquer
-0+

@magellan, je suis d'accord avec toi, mais ne fut-il pas un temps où 1% des jeux étaient en 3D? ;)

anonymous 31/08/2009 17:47
Masquer
-0+

@magellan, je suis d'accord avec toi, mais ne fut-il pas un temps où 1% des jeux étaient en 3D? ;)

Pinkuik 31/08/2009 19:41
Masquer
-0+

magellan :
L'audio n'est pas vraiment négligé en terme d'environnement, c'est le coût qui est un frein monumental. Quand tu fais de la 3D, pas "difficile" d'octroyer une bonne machine à un développeur qui fera joujou sur Maya et consoeurs. A contrario, dès qu'on touche au son, c'est immédiatement des micros, des tables de mixages, des studios... et donc des coûts rapidement inabordables. bien sûr qu'il serait fantastique que le 5.1 et 7.1 actuel soient pris en charge et vraiment utilisés, mais combien de personnes en profiteront? C'est aussi ça, le problème: investir plusieurs millions pour 1% des joueurs cible?


C'est dommage d'autant plus que les kits 5.1 ne coutent pas plus cher qu'une carte graphique haut de gamme.
Par exemple, le Logitech - Z-5500 Digital - 5.1 Certifié THX - 500W, le haut de gamme pourtant et un des meilleurs - qui peut, en plus, servir de home cinema -, est vendu à 216 € neuf sur Amazon. Face à une HD4870X2 à 340 € ou une GTX 295 MSI à 470 € mieux vaut prendre une "simple" 4870 avec ce kit 5.1... enfin, ce n'est que mon opinion...

anonymous 04/09/2009 14:28
Masquer
-0+

Magellan : tu as raison ,mais on change beaucoup plus souvent de carte graphique que de systeme audio ,surtout sur le haut de gamme .... (ceci n'engage que moi)

anonymous 06/09/2009 11:41
Masquer
-0+

A propos du son : perso, j'ai un kit 5.1 qui dort dans le garage, mon pc etant dans la salle a manger je ne peux pas m'en servir ... j'utilise donc un casque standard en 2.0 ... dommage car ma carte son intégré fait du 8.1 .........

les joueurs qui ont une piéce 'rien qu'a eux' et insonoriser pour jouer ne doit pas représenter bcp de monde

Les offres du moment

Newsletters


OK