3D: vous avez dit displacement mapping?L'univers des moteurs 3d à la fois fascinant et inaccessible pour le néophyte. Noyé par un jargon technique où il reconnaît difficilement les termes OpenGL ou Direct3d, planqués entre des englishtthings-mapping qu'on trouve dans la moitié des pages des magazines de jeux vidéo. Vous ne savez pas ce c'est? Nous non plus, et plutôt que de partir dans un dossier technique compliqué, on a trouvé un petit gars qui s'apprête à révolutionner le middleware. Un fps à 11 ans en turbo basic, des courts métrages vidéos, de la 3D, plusieurs programmes à son actif, c'est à se demander si Robin Lobel, aka Divide, à le temps de se reposer. Comment, il est dispo aujourd'hui? L'occasion idéale pour regarde d'exiger une entrevue avec ce jeune créatif qui monte, avant qu'il rejoigne les hautes sphères des leets coders carmackiens.
3D: vous avez dit displacement mapping?
regarde.org: Divide, tu fais beaucoup de choses, tu carbures à l'extasy ou bien? Plus sérieusement, dans la vraie vie, tu fais quoi?
Hehe, parfois j'aimerai pouvoir me cloner pour en faire plus ! Sinon, je suis étudiant en cinéma à Paris 7.
Tu peux nous résumer un peu ton parcours?
J'étais un élève modèle jusqu'à ce que je découvre l'informatique... Dès lors j'ai passé beaucoup plus de temps à découvrir les possibilités de cet outil qu'à reviser mes cours ! Etant touche-à-tout, j'y ai trouvé un excellent moyen de concrétiser ma passion pour la musique, le graphisme 2d et 3d, la programmation... Ce qui m'a valu 2 redoublements dans ma scolarité lycéenne! La fac est devenue une véritable libération, l'enseignement m'intéressant beaucoup plus, et je dispose de plus de temps pour me consacrer à mes projets.
Le gros de tes activités, c'est quand même le développement de ton propre moteur 3D. On peut dire que ce n'est pas ce qu'il y a de plus attrayant à programmer, comment en es tu arrivé à un tel projet?
Effectivement c'est assez chiant, si on fait ça sans objectif ! Par le passé j'avais déjà plus ou moins touché à la programmation 3d (avec entre autre ce fameux fps à 11 ans...) mais je ne m'y suis réellement interessé qu'en 2002, avec le projet Dump War, un mélange de fps et rts. Projet jamais abouti mais qui m'a permis de bien comprendre les rouages d'OpenGL. Je travaille actuellement sur le Divide Engine 2004 (toujours pas trouvé de nom définitif, et on va arriver en 2006...)
On pourrait croire qu'il s'agit d'un énième moteur amateur, pourtant tu proposes de réelles innovations. Quelles sont elles?
Lorsque je me lance dans le développement d'un moteur 3d, ce n'est pas simplement pour reproduire ce qui se fait déjà (sinon quel interet ? Autant reprendre des moteurs existants). Deja à l'époque de Dump War, j'avais mis au point une technique d'affichage de terrain et de végétation innovante, qui est toujours d'actualité (je suis en ce moment pourparler avec Guerrilla Games (ndr: développeur de Killzone) à ce sujet pour un transfert de technologie). L'innovation majeure que je propose dans le Divide Engine 2004 (qui n'est en fait qu'un support entièrement dédié à la démonstration de cette technique) est un vrai displacement mapping en temps réel, pour la première fois au monde.
Concrêtement, qu'est ce que le "displacement mapping" ?
3D: vous avez dit displacement mapping?
C'est une méthode qui permet de décrire de la géométrie en s'appuyant sur quelques triangles, et des textures spéciales ("displacement maps"). Ces "displacement maps" sont en fait des images en niveau de gris, qui décrivent un relief qui va s'appliquer sur chacun des triangles, créant ainsi une géométrie beaucoup plus complexe. Un peu comme ce que tente de faire le fameux "bump mapping" et le plus récent "normal mapping" (utilisé entre autre dans FarCry et Doom 3), mais en vrai ! Il ne s'agit plus d'une simple illusion d'éclairage. Historiquement le "displacement mapping" existe depuis 1984, mais il était jusque-là impossible de l'appliquer en temps réel ! Les utilisateurs de 3dsmax ou de Maya connaissent bien les problèmes de mémoire et de calculs inhérents à l'utilisation d'une telle technique...
Une vidéo vaut mieux qu'un long discours, cliquez ici pour télécharger un exemple tout simplement bluffant. (7mo environ, codecs divx requis)
On entend beaucoup parler "Parallax mapping" ou de "Offset bump-mapping", en quoi ta technologie est plus efficace et dans un sens révolutionnaire? Qu'est ce que ça pourrait apporter aux jeux futurs?
Cette technique est également référencée sous le nom "Virtual Displacement Mapping" chez certains éditeurs (notamment pour l'Unreal Engine 3 et Elder Scroll IV). Cependant il ne s'agit que d'un simulacre de displacement mapping. Elle est loin d'obtenir des résultats équivalents à un vrai displacement mapping, pour 2 raisons: beaucoup trop d'approximation dans le calcul du relief, et non-gestion des silhouettes (le relief vu de coté ne ressort pas comme il le devrait). La technique que j'ai mis au point prend en compte ces 2 problèmes, et de surcroit ne consomme pas plus de mémoire, contrairement aux recherches menées actuellement en ce sens...
3D: vous avez dit displacement mapping?
L'apport pour les jeux futurs (et toute industrie nécessitant l'affichage temps réel d'objets 3d complexes) est énorme, car cette technique permet de s'affranchir des couts de calculs liés à la complexité géométrique. En effet, comme cette technique utilise les pixels shaders, le cout en calcul est proportionnel à la surface d'affichage et non à la complexité de chaque "displacement map" : on peut dès lors envisager des scènes équivalentes à plusieurs centaines de millions de polygones !
Pour plus de détails sur les technologies existantes, découvrez une série de 3 articles écrits par Divide: ici, , et encore .
T'es tu appuyé sur des recherches existantes?
Toute recherche s'appuie sur des recherches précédentes, cependant le coeur de la méthode, l'algorithme de calcul du relief, est complètement nouveau.
J'ai lu sur ton blog que tu avais essayé de vendre ta technologie à plusieurs studios de développement. Comment ça s'est passé?
Les discussions sont toujours en cours, notamment avec Crytek, Quantic Dream et Virtools.
Plus tard, tu te vois coder pour IDsoftware ou alors envisages tu une tout autre voie?
Je m'oriente plutot vers le cinéma actuellement. La conception d'algorithme est une chose interessante, mais je m'amuse beaucoup plus à faire des films !
L'avenir de la 3D temps réel, tu le vois comment?
Déjà, par un passage obligé au displacement mapping, ce qui permettra de s'affranchir des limites de complexité géometrique. Ensuite par le développement des techniques d'éclairage, notamment la Global Ilumination (j'ai quelques théorie en ce sens..). Quand ces 2 choses seront monnaie courante, il n'y aura guère besoin de plus en terme d'image à mon sens... L'émergence du HDR (high definition rendering) est une bonne chose, il corrige une aberration qui existe depuis le début du jeu video. Néanmoins les utilisations actuelles ne lui rendent pas vraiment grace, les scènes sont souvent surexposés dans le but de montrer la technique... Au dela de l'image, le développement des moteurs physiques sera un plus indéniable.
Y-a t'il des figures du métier que tu respectes particulièrement?
Comment ne pas citer John Carmack? ;) Tim Sweeney a également frappé un grand coup avec l'Unreal Engine 3, mais j'attend de voir comment il se comporte, pour l'instant seul des vidéos nous sont visibles. Je l'avais d'ailleurs contacté à propos de mon "displacement mapping", il a été impressionné par les résultats!
Tu as récemment fait la une du magazine polonais Hackin9, pour qui tu as signé quelques piges. De quoi parlait ton article?
Cet article parlait de Tempest, ce qui n'a absolument aucun rapport avec la 3d. Tempest est un nom de code pour une technique mise au point pendant la guerre froide, permettant de reconstituer à distance l'affichage d'un moniteur, en exploitant les émissions electromagnetiques involontaires. A l'époque ou je me suis interessé à cette technique il n'existait aucun document officiel sur le sujet, toute publication scientifiques ayant été censurée (notamment par la NSA). J'ai donc cherché comment reconsituer un dispositif exploitant ce phénomène, en étudiant la nature de ces émissions. En avril 2003 j'ai publié un premier rapport avec le résultat de mes expérience, qui a été aussitot diffusé traduit en anglais et diffusé sur le web. A la suite de ca, le magazine Hakin9 m'a proposé d'écrire un article de 8 pages sur le sujet, traduit en 7 langues et diffusé sur toute l'Europe :o)
En plus de jouer les journalistes, Eyrolles t'as contacté pour écrire un bouquin. Tu peux nous en parler?
Il s'agit d'un ouvrage de référence consacré aux techniques de programmation 3D OpenGL, mais le projet est en stand-by pour l'instant par manque de temps. Il faut que je me clone...
Un dernier mot avant de partir?
Clickez un peu plus loin pour en savoir plus sur mes réalisations. Je m'occupe en ce moment de diffuser mon nouveau court-métrage, La Muraille (click droit pour télécharger!).
On termine avec quelques screenshots supplémentaires du moteur...
3D: vous avez dit displacement mapping?
3D: vous avez dit displacement mapping?
3D: vous avez dit displacement mapping?
3D: vous avez dit displacement mapping?