3D Temps réel Vs 3D Précalculé: Mais que fait la police?

10 comments

Posted on 10th février 2007 by Le_Poilu in Nouvelles technologies

, ,

Quand les technologies pionnères se font dépasser par les technologies de l’amusement.

Il est un domaine qui est liée à l’informatique depuis toujours c’est l’imagerie numérique, ou image de synthèse. Longtemps vecteur de développement et d’avancées technique le domaine de l’image de synthèse semble être en passe de vivre un tournant dans la longue carrière qui est sienne.

Le pourquoi de la réflexion

L’origine de cette réflexion est simple à trouver, elle ressort de mon activité professionnelle. En tant que Dessinateur/Projeteur pour un cabinet d’architectes je suis amené à monter des maquettes numériques des projets en cours, soit pour les clients, soit pour des concours, soit pour le permis de construire. Pour faire cela il existe des outils adaptés, des logiciels d’architecture nous permettent de modéliser les bâtiments à notre guise (avec plus ou moins de sueur selon les désirs de l’architecte et les possibilités du logiciel). Mais en général pour le rendu final on utilise un autre outil : un modeleur 3D. On ne l’utilise pas forcément pour ses fonctions de modélisation, mais essentiellement pour le moteur de Rendu. Parmi ce type de logiciels vous connaissez surement certains noms: 3D Studio, Lightwave, Cinema 4D, etc.
Grâce à ces logiciels nous accédons à des moteurs de rendus utilisant le Ray Tracing, ou Lancer de Rayon. Les plus récents font aussi état de traitement de la radiosité qui fait appel à l’illumination globale. Tout cela permet des rendus pouvant atteindre une qualité finale assez incroyable pour qui a le temps, les moyens et le talent (parce que ça ne se fait pas tout seul, quoi qu’on en dise).
Il suffit de faire un tour sur les sites dédiés, ou de voir les œuvres des personnes dont c’est la spécialité (Les « perspectivistes »), pour se rendre compte de ce que ces outils permettent de faire.

Seulement voilà, comme je l’ai dit cela demande du temps et des moyens. Du temps parce qu’au-delà du travail de modélisation, la durée mise pour calculer le rendu final peut augmenter exponentiellement avec la qualité souhaitée. Des moyens car pour réduire ce temps de rendu, vous devrez investir dans des machines de guerres… Mais aussi étrange que cela puisse paraître à certain, là il n’est nul question de carte vidéo dernier cri, de GPU gavé de pixel Shader, de DirectX10 et autres joyeusetés! Non, tout repose sur le système centrale, le CPU, la RAM et les transferts de données entre ces deux.
Ce n’est pas pour rien que les applications de rendus 3D furent parmi les premières à tirer parti des machines Biprocesseurs (et aujourd’hui bicœur et plus). Non seulement ce type de calcul s’y prête admirablement (on divise l’image à calculer en autant d’unité de calcul, chacune faisant son morceau), mais surtout il n’en réclame pas moins.
Pour information, la carte vidéo n’est mise à contribution que dans ce qu’on appel l’espace de travail, lors de la modélisation. Celle-ci permettra ou non de travailler avec un certain confort en fonction de la complexité du modèle travaillé.

La course à la puissance au niveau des CPU aura au moins contribuée à cela. Aujourd’hui, avec un bon moteur de rendu, si vous êtes équipés d’une machine assez récente vous n’aurez plus à attendre des dizaines de minutes, voir des heures pour calculer une image « haute-résolution » (type 2250×1700). Quelques minutes tout au plus, voir même quelques secondes si votre modèle 3D n’est pas très complexe.

Bien, mais encore ?

Dans mon métier, la nécessité de gagner du temps fait souvent que l’on recherche le meilleur compromis entre temps consacré et qualité du rendu final. Avec parfois (souvent) des concessions à faire sur cette dernière. Ce sera donc souvent la qualité de modélisation (le niveau de détail) qui en pâtira, mais aussi et surtout le temps mis à peaufiner le rendu final qui ne profitera pas toujours des possibilités offertes par les logiciels utilisés… Avec, ne nous voilons pas la face, la plupart du temps une bonne séance de Photoshop par derrière pour « rattraper » le coup.

Il est souvent frustrant de devoir se dire qu’on va parfois devoir faire des choix sur la qualité simplement parce que le temps est compté, et qu’un rendu un tant soit peu chiadé ça demande du temps.

Seulement voilà, alors qu’on doit parfois attendre plusieurs minutes pour calculer une seule et unique image, à côté de ça on voit tourner des moteurs graphiques de jeux-vidéos toujours plus évolués. Au point que le photoréalisme se rapproche de plus en plus. Le photoréalisme a bien sûr déjà été atteint en terme de 3D Précalculée, par ceux qui s’en donnent les moyens, mais comme je viens de le dire: à quel prix? De toute façon la plupart du temps le manque de temps ne permet pas de viser un tel niveau de qualité… donc on se satisferait amplement de ce que n’importe quel jeux-vidéos récent est capable de fournir !

Et c’est là tout le problème. D’un coté nous avons des outils théoriquement puissants et capable de réaliser des images d’une qualité inouïe mais avec des temps de rendu de plusieurs secondes/minutes par images. De l’autre coté des moteurs de jeux-vidéos dont le réalisme convainc de plus en plus et capables de fournir plusieurs dizaines d’images par secondes !

Comment expliquer un tel décallage ?

Jusqu’à très récemment, cela s’expliquait simplement. Alors que le lancer de rayon et la radiosité sont de puissant et couteux (en terme de ressources) moyens de calculer une scène, pour les jeux vidéos ont fait appel a des artifices pour gérer l’illumination des objets. Par ex. pour simuler le déplacement d’un objet lumineux et donc le halo de lumière « projeté » sur les murs on applique une texture éclaircissant le mur. Ou alors on exploite la technique du Raycasting, entre autre …
Avec le lancer de rayon, on détermine pour chaque pixel de l’image la trajectoire du rayon de lumière. Donc pour chaque pixel il faut déterminer toutes les itérations de lumières, et plus la scène est complexe, plus il y a de reflets et de sources de lumières, plus il y a d’itérations.
Pour un jeu vidéo on procède autrement. Peut-être qu’un jour nos machines auront la puissance de faire du lancer de rayon en temps réel, mais peut-être cela ne sera-t-il pas nécessaire comme nous verrons plus loin. En attendant pour le rendu temps réel de nos jeux ça ne se passe pas de la même façon. Un pixel n’est pas calculé de la même manière, loin de là. Pour commencer on va déterminer la géométrie. Puis de cette géométrie on va déterminer la couleur que chaque pixel visible aura. Cette couleur sera déterminée par un ensemble de fonctions programmées (les fameux Shaders). Ainsi le développeur du jeu mettra en place des fonctions/programmes qui vont faire que suivant telles ou telles conditions, tel ou tel pixel sera de telle ou telle couleur (pour schématiser grossièrement). L’évolution des Shaders est à l’origine d’un énorme boum qualitatif au niveau des graphismes de nos jeux vidéo. Cela a commencé avec le fameux « Transform & Lightning » inauguré par les toutes première GeForce de nVidia, puis ont suivi les modèles de Shaders toujours plus évolués, toujours plus souples et toujours plus programmables. Direct3D 10 (La partie graphique de DirectX) apporte une nouvelle étape à ce niveau là en éliminant des limitations arbitraires, en simplifiant l’usage et l’implémentation des Shaders et en introduisant de nouvelles possibilités. Le fait que ces calculs soient entièrement pris en charge par une unité dédiée et totalement optimisée pour, à savoir les GPU ou processeurs graphiques, facilite aussi pas mal la chose. Si le CPU devait s’occuper de tout cela gageons que nous serions loin d’avoir les graphismes de nos derniers jeux, Shader ou pas.
Ainsi on est passé de l’usage d’artifices (Raycasting, texture éclaircissante etc.) à des fonctions préprogrammées et traitées en « hard » par une unité dédiée. Alors qu’à côté de cela, le Lancer de Rayon repose toujours entièrement sur la puissance brute du CPU. Il n’existe pas (à ma connaissance) de composant dédié au traitement d’un rendu en Lancer de Rayon.
Pour ceux que ça intéressent et que l’anglais ne rebute pas voici un article bien fichu quant à l’usage du Lancer de Rayon pour les jeux vidéos: Ray Tracing & Video Games. Si en théorie le gain qualitatif est indéniable… en pratique il va encore falloir attendre, surtout qu’à coté les techniques de rendus temps réels progressent continuellement pour des rendus toujours plus convaincants.
Chez IBM on annonce que le dernier petit bébé, le fameux CELL de la Playstation3, est capable de faire du Lancer de Rayon temps réel, preuve à l’appuie. Sauf que ce qu’on nous montre est visuellement très loin de ce qu’un jeu actuel est censé afficher.

Voilà pour la théorie, mais en pratique aujourd’hui …

Avant de poursuivre je vais donner une petite comparaison du domaine pratique.

Voici un rendu fait par moi : Rendu exemple. En dehors du temps mis à modéliser, ce rendu exploitant la radiosité a réclamé deux bonnes minutes sur ma machine (AthlonXP 1800+ @ 2.4Ghz) pour une sortie finale en 1280*960. Le moteur de rendu était celui de 3D Studio (plus exactement le module Viz Render de Autodesk Architectural Desktop). Comme vous pouvez le constater la scène est loin d’être d’une complexité digne d’un prix Nobel de mathématique.
Maintenant je vous invite à visionner ceci : IMAGTP à Imagina 07. Il s’agit d’une vidéo calculée en temps réel grâce au moteur CryEngine 2 de Crytek. Ce même moteur qui va faire tourner le très (très très) attendu jeux nommé Crysis. La page Youtube vous donnera accès à moult autres vidéos de ce jeu. Si vous ne connaissiez pas encore, vous n’avez alors que pu constater une chose: mon petit rendu précédent fait franchement pitié à coté de ça ! Or je rappel que l’un est en temps réel avec un frame rate de plusieurs dizaines d’images par secondes, alors que l’autre a mis de longues secondes pour une seule image.
Cette vidéo est l’œuvre d’une société, à savoir IMAGTP, qui semble avoir eut la bonne idée de réunir (enfin) un puissant moteur de jeu vidéo à une exploitation toute autre. Ce n’est qu’à l’état de projet, mais je dois avouer que je suis impatient de le voir aboutir car peut-être verra-t-on enfin une réelle évolution, voir même une révolution, dans ce domaine! Car il faut bien se rendre compte qu’actuellement ça ne sert à rien de taper dans la carte graphique dernier cri si c’est pour faire du rendu avec un modeleur comme 3DStudio ou Cinema4D, alors que pour quelques centaines d’€uros (pour les modèles les plus véloces) avec un outil adapté on pourrait obtenir des rendus d’une qualité tout à fait satisfaisante comparé à ceux que l’ont fait faute de temps et de moyens pour les peaufiner et tirer réellement parti de la qualité d’un rendu en lancer de rayon.

Admettons qu’un tel outil sorte et permette des rendus type Crysis … voir mieux, pour peu qu’il soit adapté à l’usage pour lequel il sera destiné. On me dira: « Ouai mais pour en arriver là, il faut une machine de course! Un monstre de puissance avec carte vidéo dernier cri type GeForce8. A cela je répondrais que le problème n’est pas le même à l’échelle d’une entreprise. Si vous avez la possibilité de gagner un temps incroyable sur chaque rendu, les quelques 500€ que vous coûtera la carte vidéo seront très vite rentabilisés. Pour donner un ordre d’idée 500€ ce n’est même pas ce que cela coute de faire appel à un perspectiviste, qui mettra minimum 2 jours à faire le rendu (une fois que vous aurez fait le travail de modélisation pour lui, bien sûr). Peut-être que ce dernier arrivera toujours à proposer quelque chose d’un peu plus abouti, voir même de plus artistique (car on ne cherche pas toujours le photoréalisme) mais vous conviendrez que dans la majeure partie des cas le gain est sans appel.
De toute façon aujourd’hui aussi il faut mettre les moyens pour gagner du temps sur les rendus, sauf que l’on se concentre sur la partie CPU. Or mettre à jour un CPU c’est souvent changer la carte mère, parfois même la RAM et si vous n’avez pas de chance, la carte vidéo (genre passage de l’AGP au PCI-Express). Cela entrainant bien souvent une réinstallation du système (même si ce n’est pas souvent nécessaire). Alors qu’autrement il suffirait de mettre à niveau la carte vidéo pour gagner en performances.

Bien que j’ai toujours du mal à comprendre pourquoi ça n’a pas été fait avant, j’ai hate de voir si le projet d’IMAGTP aboutira et sur quoi il aboutira. Car ce n’est pas tout d’avoir un moteur de rendu puissant, encore faut-il qu’il soit exploitable. Si vous perdez du temps lors de la modélisation, le gain sur le temps de rendu n’est pas forcément suffisant pour justifier le changement. C’est peut-être là la principale raison de l’inexistance de telles solution: il faut pouvoir adapter ce type de moteur à un modeleur efficace, ou vice-versa. Donc le cas qui me concerne le problème de la modélisation se pose moins car de toute façon nous utilisons des outils specifiques adaptés à l’architecture. De ces outils nous explortons un modèle 3D dans le format du modeleur utilisé pour le rendu (Cinema4D en ce qui me concerne, mais ça pourrait être 3DStudio ou un autre). Donc tout ce qu’il faudrait ce serait qu’un tel moteur de rendu soit capable de lire le modèle 3D provenant du logiciel d’architecture. Je ne pense pas que ce soit si compliqué (tout est relatif) en soit. Après tout la modlisation des objets et personnages de jeux-vidéo est bien souvent faite avec les modeleurs les plus connus, donc le lien entre les deux mondes existe déjà.

Tout cela n’est qu’affaire de volonté, car aujourd’hui il existe au moins un moteur de rendu temps réel capable de fournir des images d’une qualité approchant un rendu en Lancer de Rayons.

10 Comments
  1. Anar says:

    Tres bon article clair et precis

    Petite precision sur IMAGTP.
    Cette societe fonctionne bel et bien et leur outils est exploitable au meme titre que n importe quel autre (le moteur de jeu utilisé est aussi utilisé en production pour un jeu video prevu pour septembre)
    Leur projet est donc abouti et la production existe dors et deja (ils ont deja quelques projets a leur actif (meme avec la version precedente du moteur utilisé pour le jeu Farcry, un stade de 32000 places et bout de ville il me semble)

    Pour ce qui te concerne plus precisement, il me semble que leur chaine de production est deja en place Autocad/Allplan -> 3dsmax -> cryengine2

    l interet de la chose est que les modification sont egalement faisable en temps reel !
    Quand ton client voit ta pers et qu il te demande de changer de position tel ou tel objet, ou bien, de modifier les couleurs, tu reprends 3 4 jours pour les modifications et les rendus. Eux font les modifications devant le client !

    Si tu es interessé par cette demarche je t invite a les contacter directement, ca serait peut etre plus interessant pour repondre a tes questions, ils ont fait une conference a Imagina qui etait assez convaincante. esperons avoir la video de celle ci d ici quelque temps !!

    Anar

    10th février 2007 at 0 h 07 min

  2. gogol.ad says:

    Article très interressant!
    Je me permets de te conseiller ce site: 3dtr.ifrance.com/
    Il traite également de ce sujet… L’avenir de la 3D temps-réel à néanmoins de beaux jours devant lui!

    10th février 2007 at 3 h 49 min

  3. Terence says:

    Attention, je crois que la solution d’IMAGTP est dûe a un partenariat qui leur donne le droit exclusif d’utiliser le Cryengine 2, donc a part eux personne ne peux le faire professionnallement dans le monde de l’urbanisme et de l’architecture. Je crois mais je peux me tromper, que ca a été affirmé par le pdg de Crytek en personne. Comme le dit gogol.ad, on verra bien si ils sortent une vidéo de la conférence.

    10th février 2007 at 14 h 10 min

  4. anar says:

    Effectivement, Imagtp ne vend pas de logiciel, contrairement à tous ses autres conccurents, mais un service et c est un atout.

    Pas de developpement interne (surcouts), leur moteur est constamment mis à jour par crytek (plus de 150 developpeurs) donc à la pointe de la technologie.
    Ils ont un soutien technique qui leur permet de repondre à n importe quelle demande de leur client (confirmé par le CEO crytek lors de leur conference à Imagina).

    Et le fait que la partie technique soit traitée par crytek leur permet de se concentrer sur les desirs memes de leur clients ! Et c est, je pense, le point primordiale de leur solution.

    10th février 2007 at 10 h 51 min

  5. Lord W says:

    Très bon article, comme d’habitude.

    Je suis étonné de ce retard technologique dans le domaine de la modélisation architecturale…
    Pourtant, il me semblait que de tels mélanges moteur3D-architecture existaient déjà, notamment grâce à l’Unreal Engine…

    Il est vrai que l’utilisation d’un moteur 3D temps-réel de grande qualité (CryEngine 2, Unreal Engine 3) permettra aux architectes de voir directement, avec effets de lumière (à n’importe quelle heure du jour), etc…, les plans qu’ils ont conçus, et de voir leur impact dans l’environnement immédiat.

    Finalement, les levels designers et les Dessinateurs/Projeteurs comme toi ne vont-ils pas devenir collègues ? 8-)

    10th février 2007 at 17 h 29 min

  6. Le_Poilu says:

    Finalement, les levels designers et les Dessinateurs/Projeteurs comme toi ne vont-ils pas devenir collègues ? 8-) Considérant l’approche complétement différente et la finalité de la chose qui n’à pas grand chose à voir j’en doute fortement ;) Il faut se dire que dans mon cas l’idéal serait qu’une fois le projet validé les modèles 3D servent de base à la mise en place des plans de fabrication. C’est dejà un peu le cas avec les outils actuels. Sous Allplan ou Architectural Desktop (ou Revit… ou Archicad) tu peux monter une 3D qui sera la meme base que tes vues en plan (donc en modifiant un tu modifie l’autre automatiquement. Mais il arrivera à un moment où soit tu seras limité dans ta 3D, soit tu sera bloqué sur ta mise en plan. C’est pourquoi on se retrouve assez vite à faire les choses de manière séparées, car utiliser la meme base pour les plans et pour la 3D demande une énorme rigueur dans le travail (et grosse maitrise du logiciel) et les outils offerts par les logiciels (style outils de murs, toitures etc) avouent assez vite leurs limites.

    10th février 2007 at 18 h 22 min

  7. p-R says:

    Tres bon article qui m’a éclairé ( sans jeux de mot ;) ) sur la 3D temps réel. On voit de plus en plus d’article et de publi sur le sujet depuis plusieurs mois/année. Cependant, la montée en puissance impressionnante des processeurs récents permettra peut etre de vraiment utiliser les techniques plus exacte ( ray tracing entre autre) plutot que les astuces de jeux video ( dont le résultat est bleuffant !!)… De toute facon, tout cela augure que du bon pour l’avenir :)

    10th février 2007 at 10 h 13 min

  8. Olivier says:

    Tout d’abord bien le bonjour et bonne article très intéressant. A l’heure actuelle on voit très bien que le monde du jeu vidéo à une bonne longueur d’avance sur le monde de l’image d’architecture et d’urbanisme, ce qui manque peu être, ce sont les passerelles entre les deux.
    Aujourd’hui ImagTP est donc la première passerelle entre ces deux « mondes » qui laisse entrevoir bon nombre de possibilité, malheureusement comme la dit anar plus haut « Imagtp ne vend pas de logiciel, contrairement a tous ses autres concurrents, mais un service et c’est un atout » certes c’est un atout certain pour imagtp car étant utilisateur exclusif du cry engine il ni à qu’eux !
    Cependant est-il un atout pour sont client de devoir forcement faire appel à eux pour faire des modifications sur leur maquette 3d ? Est-ce un atout d’avoir un format de fichier utilisable que par un seul logiciel ?
    Personnellement j’apprécie de pouvoir utiliser un format t-elle que le .dwg sur d’autre logiciel qu’Autocad (ou logiciel autodesk).
    Après on ne peu pas leur enlever le fait que ce soit beau il que malgré tout il font avancer le monde de l’architecture ! Nous ne sommes pas dans un forum mais bon j’essai quand même quelqu’un connaîtrait d’autre moteur de jeux ainsi que la société qui est propriétaire telle que le cryengine2 de crytech ? Cordialement olivier.

    10th février 2007 at 15 h 53 min

  9. Le_Poilu says:

    Voici un topic sur un forum qui parle du même sujet dans lequel certaines solutions existantes sont evoquées:   http://www.frenchcinema4d.fr/forum/index.php?topic=21359.0   :)

    10th février 2007 at 17 h 16 min

  10. Anar says:

    Bon, je vais être honnête, je bosse chez Imagtp, mais je ne voulais être mis dans la case « prosélytisme », (oui ça vire à la profession de foi ;) , je vais tenter de répondre en toute honnêteté comme je l’ai fait jusqu’à maintenant « Cependant est-il un atout pour son client de devoir forcement faire appel à eux pour faire des modifications sur leur maquette 3d ? »
    - Oui car ce n’est pas juste un travail de modélisation, et c’est là, où tout le monde se trompe. Nous ne vendons pas le moteur mais notre démarche vis à vis des projets. Peu importe la sortie finale (perspectives, films 3D, temps réel). Il arrive même que nous refusions d’utiliser le temps réel! Et évidemment, le cryengine2 nous permet d’aller très loin dans nos réponses, ce qui nous démarque de nos conccurents. De plus, nous ne sommes pas hermétiques ni au partenariat ni à la franchise qui permettra à toute société d’utiliser le cryengine2 pour ses clients, nous le souhaitons même ! Mais cela entre dans une démarche plus poussée que de la simple vente de logiciel qui n’intéresse ni Imagtp boite de comm, ni Crytek boite de jeu vidéo Est-ce un atout d’avoir un format de fichier utilisable que par un seul logiciel ?  »
    - Un fichier 3D est utilisable dans n’importe quel logiciel. Tout le travail que nous faisons (sous max) est tout à fait récupérable dans d’autres soft et même dans d’autres moteurs de jeu si on possède le plugin d’export adéquate. TOUS les softs ont un format propriétaire, mais dans la chaîne de production, il y a toujours des passerelles qui existent. On bosse bien sous max à partir de fichiers Allplan, Autocad, Microstation etc. C’est un faux problème . Le cryengine n’est pas un outils de Conception, juste un outils de visualisation donc en fin de chaîne. Pour les autres moteurs next gen, il faut probablement acheter une licence complète, et la ça n est plus le même prix !
    Sinon tu as des solutions plus légères : virtools, nova, quest3D etc etc qui demandent tous du développement interne mais faciles d’utilisation (et ont tous un format propriétaires ;) ) Anar

    10th février 2007 at 10 h 15 min

Laisser un commentaire

Vous devez être connecté pour rédiger un commentaire.