Mes impressions sur mental ray et son futur
Par Narann le dimanche, 17 juillet 2011, 20:50 - Infographie 3D - Boulot - Lien permanent
J'utilise mental ray depuis 2004 et il est rapidement devenu mon moteur de prédilection. J'ai assisté, comme pas mal d'entre vous, à son lent déclin au fil des années... J'ai l'occasion de bosser sous Vray pour les vfx d'un long métrage. Le pipeline tourne autour de Vray et utilise un certain nombre des nouvelles features très orientées prod qui nous facilitent pas mal la vie.
C'était ma première expérience sur ce moteur et je dois malheureusement admettre qu'elle m'a fait prendre conscience que mental ray ne pourra jamais remonter la pente... :neutral:
Je vous propose ma petite impression sur tout ça dans ce billet.
Des illusions...
Au début, j’étais plutôt confiant quand à l'avenir de mental ray. Chaque nouvelle version intégrait des petites features intéressantes et l'ennemi à abattre était Autodesk qui était incapable de faire une intégration correcte de ce moteur dans ses softs. Il fallait souvent bricoler pour pouvoir utiliser les dernières nouveautés mais on pouvait s'en sortir. (A lire, l'histoire, très instructive, de l'intégration de mental ray dans Maya par un de ses devs).
Je voyais pas mal de threads animés sur CGTalk concernant le départ de telle ou telle "tête" du projet ou l'avenir de mental ray suite au rachat de Nvidia.
Nvidia avait Gelato et, les différentes personnes s'occupant du projet l'ayant quitté, se retrouvaient sans aucune solution de rendu GPU sous la main, d’où le rachat de mental image pour récupérer des membres du développement de mental ray et les faire travailler sur CUDA. :bete:
Au début, tout le monde à pensé, les yeux pleins d'étoiles, que mental ray allé être "CUDA accelerated" mais il suffit de réfléchir deux secondes pour bien se rendre compte que le problème était en fait plus compliqué... :tuComprendRien:
Paolo Berto (jupiterjazz), un membre influent de CGTalk travaillant notamment pour le groupe jupiter jazz (un LE collectif de développeurs vfx), et visiblement bien informé écrivait ceci:
No, mental ray won't be ever ported on cuda, there is no intention and it simply can't. Only some parts could, and if so it will be done just for marketing reasons.
Un membre le relance et il rentre un peu plus dans les détails:
So, to make things work on cuda you need to have a lot of *coherent* computations to perform: the problem of mental ray is that it is casting one ray then calling a native C shader to shade the intersection then maybe the shader casts another batch of rays and so on. Very non coherent.
This is just not suited for gpu computation unless if a massive rewrite/refactoring of the pipeline is done by mental images, which will not happen soon enough (I am speaking about years).
Some specific task like fast AO could be definitely done though (and also this won't happen soon).
Also another problem of mental ray is that the codebase is 15 years old (and it's not a Whiskey), native C for the CPU, full of pointers mem alloc and other shit, so to use an euphemism is a fcking mess.
C'est assez clair:
- Pas pensé GPU.
- Trop vieux.
- "Arrêtez de rêver!"
Tout me monde se demandait ce qu'Nvidia allait bien pouvoir foutre d'un moteur full CPU qui n'avait pas l'air de pouvoir en changer...
Tous se laissait aller à ces spéculations mais jusque là, rien ne permettait de deviner ce qui allait ce passer.
Mes doutes ont réellement commencé durant l'année 2009, lors de la GPU Technology Conference de Nvidia. J'y vis l'un des seul et unique "ancien membre" de mental ray et j'y ai appris qu'il avait travaillé depuis "quelques années" sur le truc que nous attendions tous: iRay et son Reality Server. (super... :septic: )
Et bien j'étais peut être le seul, mais j'ai tout de suite pensé que mettre les dernières têtes sur un projet full CUDA qui servira à vendre des installations entières qui sont plus destiné à de "l'Arch and Viz" qu'à de l'anim/fx n'augurait rien de bon pour mental ray. :gne:
...aux désillusions
Et c'est ce qui arriva. Nvidia annonça, très poliment, qu'il démantelait réorganisait mental image pour, je cite:
integrating it into our other activities focused on software solutions for design professionals
S'en suit:
The combined group brings together mental images with related efforts in the Quadro group focused on the world’s most demanding design professionals, from feature film artists to architects and product designers.
En gros, ils rapprochent mental image du "Quadro Group" pour se "focuser" sur les besoins des film artists... :septic:
Mouai mouai... Personnellement, plus on se tient éloigné des Quadro, CUDA et autres techno proprios qui sont une misère à déployer et coutent très cher, plus je suis satisfait...
Donc pour le coup, c'est complètement raté... Je vois bien des grosses entreprises de CAD investir là dedans. Mais un studio de VFX? Sérieusement?
Nvidia à laissé mental image tranquille pendant quelques temps (quatre années environ durant lesquelles j'ai gardé espoir :pasClasse: ), sûrement pour les laisser tenir leurs engagements (c'est souvent ce qui arrive lors de grosses acquisitions) mais là ils reprennent les rennes et ça fait mal:
Mental images is gone. Rumor has it ~30 people were laid off, management was dispersed. The corporate bullshit version: http://blogs.nvidia.com/2011/05/nvi...
Tant qu'on est dans la rumeur, il semble que l'équipe de mental ray n'ait pas été démantelé (mais qu'il y a eu quelques départs volontaires).
Après, je serais de mauvaise foi si je disais que la dernière liste des features de mental ray était vide, loin de là!
Mental ray est un très bon moteur (je le soupçonne d’être plus rapide que Vray en raytracing pur..) mais les gros studios ne font pas des prods sur un "très bon moteur" mais plutôt "le moteur qu'il estime être le meilleur". Et mental ray n'en fait clairement pas plus parti. :lanceUnePierre:
Si vous avez un peu de temps, lisez ce court thread de quatre messages... Il résume parfaitement le n'importe quoi dans lequel est en trains de sombrer mental image. :grenadelauncher:
Pour résumer, une personne pose une question simple et argumentée aux devs de iray concernant OpenCL (il fera notamment référence à Chaos Group). Pas un seul dev ne répondra (c'est assez rare, ils prennent souvent la peine de répondre, même brièvement à ce genre de questions) mais une personne qui semble être plus un commercial de Nvidia qu'un dev répondra un baratin marketing faisant la promotion de CUDA face à OpenCL:
iray uses C for CUDA because it needs the highest performance and greatest capabilities available to it.
While NVIDIA leads the industry in the broadest OpenCL support, the language is several years behind C in both capabilities and tools, and it advances at the speed of open standards. A CPU fallback is unnecessary for iray as it supports x86 directly - far more efficiently than a fallback could. In using C for CUDA, iray ensures you have the very latest GPU capabilities as soon as they come online, while having direct influence on its evolution.
With C for CUDA, there are over 1/2billion NVIDIA GPUs that can increase iray performance. I believe you would find the %increase from AMD to be quite small as their OpenCL support is limited to their latest offerings.
As for CPUs, iray runs as well on AMD as Intel, taking full advantage of multiple cores and sockets.
- Phil NVIDIA
Je trouve que pour un forum de support, ça fait tache. D'autant que des défenseurs de CUDA sur le forum de Chaos Group (inscription nécessaire) débitaient le même genre d’âneries pour finalement se prendre un gros revers de la part de vlado, membre principal sur le forum de Chaos Group (merci Deex pour l'info):
- (Membre): I had a feeling CUDA is gonna kick OpenCL in the ass and it is ! I hope that OpenCL will be able to share memory too at some point...
- (vlado): We do have a CUDA version of V-Ray RT that we use internally, so if we see that there are significant benefits of going this way, it is certainly something that we would do without too much hesitation.
- (Membre): Wow... Release it ploxxxxxxxxx, isn't it a lot more responsive(refresh speed) then opencl btw?
- (vlado): No, not really. In some of the last tests, OpenCL was a tad bit faster.
Donc voilà, d'après Chaos Group, sortir une version CUDA de V-Ray RT n'est pas utile car il est moins performant... :pasClasse:
Et puisqu'on en parle: L'arrivée de Vray sous Maya aurait pu se faire sans trop de bruit... Elle était attendu par beaucoup mais on ne parlait pas nécessairement de faire du VFX à ce moment là. Chaos Group semble cependant avoir bien compris que les besoins des utilisateurs de Maya ne sont pas tout à fait les mêmes que les utilisateurs de 3dsMax ou Vray était considéré comme le moteur de rendu "pour l'archi"...
Qui aurait pu penser, lors de la sortie de Vray for Maya qu'il servirait Digital Domain pour sortir les plans de Tron Legacy:
En effet, cette version est très orienté prod. Ils n'ont pas essayé de "copier" leur moteur depuis 3dsMax dans Maya. Ils l'ont adapté. Et adapté très intelligemment...
Conclusion
Bref, le but de ce billet n'était pas de faire l'éloge de Vray mais d'expliquer pourquoi je ne crois plus à mental ray...
Le fait qu'il reste un excellent moteur et qu'il soit intégré à Maya et 3dsMax lui laisse de beaux jours devant lui et il ne va pas disparaître d'un coup. Mais je pense que les studios vont s'en détourner petit à petit, comme, bien que fidèle depuis des années, j'ai commencé à le faire. :pasClasse:
Dorian
Commentaires
Merci pour cette analyse Dorian, sur laquelle je te suis avec un grand désarroi. J'ai commencé à utiliser Mental Ray à l'époque de Softimage 3D, avant XSI (c'est dire si ça fait un paye) et j'ai vu au fil des années son évolution ... et sa déchéance. J'ai même programmé des shaders Menta Rays pour une boite pendant deux ans, mais aujourd'hui je n'y crois plus.
Je viens de lire sur le blog de Master Zap (qui est quand même une référence dans le domaine) qu'il se casse de chez Mental Images pour aller bosser chez Autodesk !
http://mentalraytips.blogspot.com/2...
Utilisateur de Maya, Max et bien d'autres, je me suis mis à Blender depuis à peu prêt 5 ans et je dois dire que l'arrivée de Cycles, son nouveau moteur de rendu me met bien plus en joie que la dernière version de Mental Ray. D'ailleurs, je commence même à préférer Blender à Maya. Tout y est tellement plus simple.
J'ai par exemple regardé ton script pour l'instancing des objets sur les particules. J'ai fait quasiment le même en MEL il y a 10 ans. Et voir qu'aujourd'hui, 10 ans après, on à encore besoin de se taper des scripts à la main pour faire ça (au pris où coute le soft, on doit bosser à leur place). Je trouve que c'est une honte. Dans Blender, il suffit de grouper les 4 ou 5 objets, de passer les particules en mode Groups et de cocher la case Random !
Je connais bien la puissance de Maya, l'utilisant depuis la version 1 Beta 3 et franchement, il y a encore 7 ou 8 ans, je ne jurais que par lui. Mais l'immobilisme de toute cette corporation face à des softs aussi dynamique que Blender m'a fait faire de ce dernier mon soft de 3D principal, bien que j'ai dans mon placard les boites officielles de Maya, 3DS Max et XSI (les joies de faire des tutos pour la presse). D'ailleurs, Chaos Group l'a compris également puisque la passerelle Blender -> VRay est vraiment d'une grande qualité, sans compté les exports vers les moteurs Renderman Compliant via RIB Mosaic qui me semble bien au dessus du RAT pour PRMan.
Je suis content en tout cas de voir que ma déception est partagé. Mais bon, ton métier t'as surement habitué, tout comme moi, à te remettre en question tous les 3 ou 4 ans. Alors voilà ... la page Mental Ray va surement se tourner, plus doucement qu'on ne le pense c'est sur, notamment de par le cycle de release de 3 ans d'Autodesk entre le moment de la prise de décision et la sortie de la release. Mais le rachat par NVdia me faisait déjà peur dès le départ. Il est temps de se remettre en question et de voir comment surfer sur une nouvelle vague, en ayant peut-être cette fois un rôle à jouer dans le choix de ce qui sera le nouveau moteur vedette.
Encore merci pour ce témoignage. ;o)
:D Merci pour le tiens.
Je ne savais pas que master zap avait été embauche par Autodesk (info que je me suis précipité de tweeter).
C'est une bonne chose je pense. Il explique bien le soucis sous-jacent (que tout le monde devinait):
> Integration of mental ray and iray into Autodesk products have always been.. problematic. Integration work was done by Autodesk, but there was never a dedicated person with enough precise know-how of the nitty-gritty details to handle it (or sometimes simply not enough priority put on it). Well...... now I will be working there. 'nuff said :)
En gros, l’intégration était faite par des devs qui ne savent pas comment sont utilisé les outils (en voyant la gestion des passes de Maya, je vois pas comment une personne qui se sert de passes au quotidien aurait pu imagine un truc aussi tordu)...
Blender est un soft que je suis de près. J'adore lire leur release note. On y apprend des choses et on a surtout l'impression qu'il y a eu du boulot de fait et une vrai roadmap.
Avant la version 2.5, j’étais super septique. Blender restait un truc pour indépendants/petites équipes (rien de péjoratif la dedans, mais je voyais pas une grosse production se faire dessus). Mais depuis qu'ils ont revu toute la structure interne je pense qu'il faudrait s'y pencher et voir si il tiens la charge (Il ne faut pas oublier le nombre de soucis qu'ils ont rencontre sur Syntel).
http://www.blender.org/development/...
http://wiki.blender.org/index.php/D...
http://wiki.blender.org/index.php/D...
Un des gros point noir aussi reste le nombre de seniors disponible sur ce soft (faut être pragmatique, quand tu lance une prod, il ne faut pas que les gens perdent du temps en formation). Je suis sur qu'il y en a mais ils ne courent pas les rues... Il faut ajouter à ça que le nombre de seniors superviseur ayant fait des grosses prod sous Blender est nul (vu que Blender n'a pas fait de grosses prods). Mais les choses évoluent (rapidement?).
Je pense que faire un pipeline autour de Blender doit être super intéressant.
Concernant Maya, je suis aussi le premier a pester sur le fait que des trucs de base soit si compliqué à faire, mais je me rend compte que sur des grosses prods, on s'en fout complètement car les problématiques sont beaucoup plus large (comment je vais pouvoir les rendres mes partoches, comment je fais pour avoir un système de cache fiable qui marchera quand le rendu sera distribué, etc..), et la dessus, Maya a une énorme expérience... Il n'est pas pensé comme un soft entier (même si la politique depuis le rachat de Autodesk tant vers cette nouvelle approche ce qui est, selon moi, une connerie) mais comme une sorte de "boite vide" qui s’intègre partout.
Ce n'est pas un logiciels pour bosser avec vingt, trente graphistes (enfin on peu mais a ce moment la il n'y a pas de raisons de ne pas en utiliser un autre), c'est un soft qui s'imbrique parfaitement dans une structure de 100 personnes (voir beaucoup plus). Encore une fois, le soucis ne vient pas uniquement de savoir si il tient la charge mais de gérer des problématiques de flux facilement.
Je ne dis pas que Blender ne peut pas le faire. J’attends juste de le voir a l’œuvre la dessus.
Bref, même si comme beaucoup, je déteste un peu Maya et que j'ai beaucoup de sympathie pour Blender (lire les changelog de Maya me fait toujours doucement rigole tellement c'est minable), je continue de le considérer comme une référence. Je disais a un collègue un jour: "Le seul avantage de Maya, c'est qu'il est prod proof. Tu lui enlève ça il tient pas la comparaison avec ce qui se fait...".
De même que la politique de Blender concernant la rétrocompatibilité n'est pas toujours très clair (même si je dois avouer que depuis quelques années, ce n'est plus un facteur déterminant tant les MAJ sont fréquentes ce qui impose une certaine modularité dans les pipelines).
Concernant CG, pour avoir bosser "avec eux" (le support est tellement bon que tu a l'impression qu'ils bossent dans tes locaux et c'est très rassurant) je ne peu que dire que l’expérience est positive.
Mais tout n'est pas tout rose. VRay commence a montrer quelques faiblesses quand on sort des sentier battus. En général il suffit de faire un rapport de bug et c'est souvent corrige le lendemain (d’où le support qui est excellent) mais c'est une approche qui est un peu glissante quand on a pas l'habitude (faut avoir une personne qui soit capable de soumettre les bugs rapidement). C'est vraiment comme si ils étaient dans les locaux et que vous travailliez avec eux, en même temps qu'ils développent. Mais ce n'est pas une approche qui est toujours favorable (IMHO). Voir même ce n'est pas le genre de discours qui va rassurer un superviseur qui imagine déjà gérer des problématiques supplémentaires.
CG fournie un moteur + une intégration dans le soft (très bonne et très pousse, ça c'est clair). Mais, pour certaines productions, la dernière partie n'est pas nécessaire, au contraire, elles nécessitent un standalone + faire leur propre intégration (d’où le succès de renderman pro server qui est souvent utilise avec une passerelle maison). Et c'est exactement dans cette situation qu'est mental ray. L’intégration n'est pas faite par eux, ils ne se charge que du moteur (que je continue de trouver excellent). Cela ne gène pas nécessairement les grosses productions ayant intégré standalone dans leur pipeline. Mais j'ai le sentiment que ça va freiner son entrée dans des nouvelles boites a long terme...
Bref, oui, mental ray bien que toujours excellent est sur un pente descendante. Non pas parce qu'il est mauvais (c'est plutôt l'inverse, il est robuste et fiable), mais parce qu'il n'a pas de politique d'avenir (hormis celle de Nvidia qui n'est pas du tout oriente VFX mais plus ArchViz Design).
Bon, je me suis lâché, j'ai sûrement dis un paquet de bêtises mais on va dire que je suis fatigué...
A bientôt en tout cas! :)
Merci beaucoup pour ta réponse à ma réponse ... ;o)
Je clarifie juste deux trois trucs car moi aussi j'ai écrit ça très tard ... ou très tôt, ça dépend de où on se place. :o)
Je n'accuse en aucun cas MR d'ètre sur le déclin techniquement parlant. Je considère Mental Ray comme l'un des meilleurs moteurs qui soit. Le fait d'avoir développer des shaders sur ce moteur m'a vraiment apporté une bonne compréhension de son fonctionnement et je le trouve très .... intelligent. Mais effectivement, on sait tous que le marketing et la technique ne font pas bon ménage et nVidia, c'est avant tout le marketing. J'ai d'ailleurs toujours eu du mal avec VRay de par, comme tu le dis, sa difficulté à faire autre chose que ce qu'il fait de mieux lors de ses démos. Historiquement, c'est qui a fait du mal à Brazzil ou Final Render. Sur le papier c'était génial ... et puis une fois que tu les avais dans les mains ... bof.
Pour ce qui est de Blender ,il est évident qu'il y a encore fort à faire. Je pense que techniquement, il a tout ce qu'il faut et est assez ouvert pour satisfaire les besoins de beaucoup de monde. Le seul truc qui lui manque, c'est la réflexion que peut avoir une équipe autour de ce soft, en se demandant ... "bon, comment on va s'en servir ?". Blender est actuellement devant une sorte de spirale qui mettra du temps à se dérouler. Pas assez de users expérimentés pour monter une prod avec, pas assez de prod pour prouver de quoi il est capable. Il a fallu à Maya plusieurs années avant qu'on ne lâche vraiment Power Animator (la version 1.0 n'avait pas le smooth skin, quand même) et jusqu'à la version 5 de XSI, les gens de Softimage conseillaient de garder la veille version 3D en même temps.
Blender devra donc en passer par là également, faire son chemin de croix ... le marketing d'Autodesk en moins. Bien que je continue à travailler avec les softs Autodesk, j'essaye de faire ma part pour développer ce genre d'outils Libres, en mettant de temps en temps les mains dans le code, en faisant des tutos ou des conférences, afin de faire avancer la machine un peu plus vite, à mon niveau.
Blender 2.6 peut-être considéré d'un point de vue des nouveaux utilisateurs comme une sorte de Maya 1.0 en son temps. Je suis trs content en tout cas que tu portes un intérêt à ce soft, là où beaucoup de TD le rejette un peu trop vite sans même ouvrir la dernière version.
Si tu as le temps, tu peux trouver ma dernière conférence sur Blender (environ 5h30 ... faut prévoir un bon paquet de chips) sur le site de Forma CD (voir encadré Événement / reportage) :
http://www.formacd.com/
Comme tu pourras le voir, c'était une sorte de grosse démo qui visait à présenter bon nombre de nouvelles fonctionnalités qui sont maintenant quasiment toutes intégrés, ou le seront dans un avenir très proche. Rien de bien impressionnant donc, mais quand j'en ai l'occasion, je prend un peu de temps pour faire ce genre de choses (la prochaine sera à Toulouse en Novembre).
Si nous avons l'occasion de nous rencontrer, ce sera en tout cas un plaisir de passer un peu de temps devant une machine à discute Pipeline avec toi sur ce genre de soft. Au plaisir .... ;o)
Blender devra donc en passer par là également, faire son chemin de croix... << L'image est parfaitement trouvée. Il ne fait que commencer! :D
... j'essaye de faire ma part pour développer ce genre d'outils Libres, en mettant de temps en temps les mains dans le code, en faisant des tutos ou des conférences, afin de faire avancer la machine un peu plus vite, à mon niveau. << A ce propos, ton tuto sur la création de node de compo m'avait beaucoup servi lors de mes débuts en code. C'est le genre d'infos très rare (même en anglais).
Blender 2.6 peut-être considéré d'un point de vue des nouveaux utilisateurs comme une sorte de Maya 1.0 en son temps << Carrément? o_O Pourquoi cette version en particulier?
Si tu as le temps, tu peux trouver ma dernière conférence sur Blender << Tu va rire mais je l'ai sur mon bureau depuis peut être le jour de sa sortie et je n'ai jamais eu le courage (le temps surtout) de la lancer... -_- De même que je voulais assister a la conférence et pareil: Je n'ai pas eu le temps...
Si nous avons l'occasion de nous rencontrer, ce sera en tout cas un plaisir de passer un peu de temps devant une machine à discute Pipeline avec toi sur ce genre de soft. Au plaisir .... ;o) << Idem! ;)