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:

Nvidia_Cuda_logo.jpg

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

mental_image_logo.png

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