Proxy Mental Ray, tutorial + astuces.

Bonjour,

Maya 2008 SP1 (ou Extension 2) nous cache bien des choses : le mental ray proxy.

Je vais vous montrer comment l’utiliser.

1) Qu’est ce que c’est que le Mental Ray proxy ?

Le Mental Ray proxy permet de rendre des scènes lourdes en polygon en utilisant les objets « dupliqués ».

Exemple : vous voulez créer une forêt. Pour cela, vous avez fait 6 arbres différents que vous allez dupliquer, répartir et mélanger.

Problème : c’est lourd, très lourd. Vous avez que 100 arbres et Mental Ray n’a plus assez de mémoire pour rendre votre forêt.

Solution : les proxys. Vous ne dupliquez pas vos arbres dans votre scène, mais vous direz à Mental Ray de le faire en plaçant des objets moins lourd. Au rendu, Menta Ray remplacera c’est objets moins lourd en plus lourd.

2) Cas pratique :

1) La scène :

La scène : on a une scène avec 2 objets bien lourds (en polygon) qu’on aimerais dupliquer et rendre.

Ici je vais prendre 1 sphère et un cube qui représenteront mes 2 objets lourds.

powered by WordPress Multibox Plugin v1.3.5

proxy_1

Vous voulez les dupliquez plusieurs fois puis les rendres.

powered by WordPress Multibox Plugin v1.3.5

proxy_2

La vous commencer à vois la galère. Ici j’ai utiliser des simple sphères/cubes et déjà l’affichage rame. Le rendu, ben…long.

powered by WordPress Multibox Plugin v1.3.5

proxy_9

On va optimizer tout cela !

Effacer toute vos duplications.

2) L’objet léger :

Déjà, nous allons créer l’objet qui représentera les objets lourd (qui doit être un polygon)

Plus il est léger, mieux c’est. Du coup, nous allons créez juste un polygon triangle.

Allez dans « Mesh » en haut, puis, « Create polygon tool ».

powered by WordPress Multibox Plugin v1.3.5

proxy_3

Ce triangle représentera les sphères/cubes.

Maintenant, comment lui dire qu’il représente les sphères/cubes ?

Pour cela, on doit créer le node « mip_binaryproxy ».

3) Création du node :

Déjà, remercions Autodesk pour ces choses cachés (ça prends 2sc à mettre un bouton, mais non…).

Donc, reprenons. Dans la barre en bas à gauche, tapez : createNode « mip_binaryproxy ».Ce node est un Geometry Shader.

Pour le retrouver, allez dans la Outliner, diplay, et décocher : DAG objets Only.

Vous devrez voir le node mip_binaryproxy.

powered by WordPress Multibox Plugin v1.3.5

proxy_4

Sélectionnez votre triangle,  allez dans Mental ray, geometry shader, cochez « enable geometry shader », et glisser votre  mip_binaryproxy dedans.

powered by WordPress Multibox Plugin v1.3.5

proxy_5

Maintenant, il y a deux étapes.

4) Première étape : enregistrer l’objet lourd sur le HDD :

Allez dans l’atribut editor de votre mip_binaryproxy. Dans « object filename », tapez le chemin ou vous voulez que votre objet lourd soit enregistrer.

On va le faire pour la sphère jaune.

On va donc mettre : c:\sphere_jaune.mi

On active « write geometry » pour qu’il écrive le fichier sur le HDD.

Dans « Geometry », on va mettre le nom  de l’objet lourd (son tranform, pas son shape) qu’on veut enregistrer. Ici ma sphère jaune s’appelle : pSphere1

ATTENTION : bug. Pour que ça marche, dans la Outline, il faut que vous placer votre object lourd (pSphere1) AVANT votre object ou il y a le mip_binaryproxy (l’object léger, le triangle). Aucun des objets ne doit être dans un groupe ou autre.

Faite un rendu.

Vous devez voir un fichier « sphere_jaune.mi » dans votre HDD dans c:\.

Faites pareil pour le cube rouge (appelez la cube_rouge.mi).

powered by WordPress Multibox Plugin v1.3.5

proxy_6

5) Deuxième (et dernière) étape : ce servir des .MI :

Ceci est simple : tout les objets qui auront un mip_binaryproxy connecté représenteront un fichier .mi.

Vous pouvez supprimer les objets lourds (sphère et cube). Il ne vous reste que votre objet léger (le triangle).

Reprenons notre polygon triangle.

Il a déjà un mip_binaryproxy connecté. Dans « object filename », tapez l’objet que vous voulez qu’il représente

Ici :  c:\sphere_jaune.mi

Décocher « write geometry.

Faites un rendu.

Magie : ce n’est pas le triangle qui est rendu, mais la sphère ! Et en plus, vous pouvez même lui changer de shader.

Dupliquer votre triangle, mettez lui un autre node mip_binaryproxy (que vous aurez créé).

Mettez dans « object filename » : c:\cube_rouge.mi

Faites un rendu.

powered by WordPress Multibox Plugin v1.3.5

proxy_7

Voila.

Maintenant il ne vous reste plus qu’à dupliquer vos objects triangles léger. Vu que vous avez 2 mip_binaryproxy, un qui représente la sphère lourde, l’autre le cube lourd,à chaque fois que vous connecterez l’un des deux à un de vos triangles; au rendu, il apparaitra l’object représenté.

Astuce : pour connecter rapidement un mip_binaryproxy sur des objects, utiliser ce script : jhSetMultiAttr

Utilisation :  mettez ce script dans « C:\Documents and Settings\votrelogin\Mes documents\maya\2008\scripts\ »

Redémarrer Maya.

Dans la barre en bas à droite, tapez jhSetMultiAttr, selectionnez ce que vous venez de taper, et glissez le avec le clique du milieu en haut sur les shelves. pour créez un bouton/shelve.

Maintenany, comment l’utiliser : cliquez donc sur votre nouveau bouton =), en bas, dans le script éditor, vous devez voir : //jhSetMultiAttr turned on//

Cela veut dire que le script enregistre toute les « actions » que vous faites.

Prenez un  mip_binaryproxy, glissez le sur un de vos triangles (object léger).

Sélectionnez les autres triangles dans la outilner ou vous voulez avoir le même mip_binaryproxy (donc le même objet lourd représenté) connectez.

Recliquez sur votre merveillez bouton. Vous devrez voir :  //jhSetMultiAttr turned off//

Mais la c’est magique, tout les objets que vous avez représentez sont aussi connectez à un mip_binaryproxy =) ! Voilà, vous avez gagnez 3h.

powered by WordPress Multibox Plugin v1.3.5

proxy_8

Avantage de tout cela :

- ça rame pas dans le Viewporte car tout les objets sont représentés pas des petits objets (triangles)

- ça rame pas non plus dans MentalRay au rendu qui lui arrive à gérer autant de polygons grâce au proxy. Vous pouvez lui faire manger des millions voir milliards de polygons, MentalRay ne bronchera pas…

Voilà !

Maintenant, montrer moi des forêts…..=)

Share on TumblrShare on TwitterShare via email

Comments

man3d

Bonjour, je n’arrive pas à faire l’export de la géométrie en .mi sais tu d’ou cela vient

admin

Bonjour, qu’elle est l’erreur que tu as ?

man3d

je n’ai aucune erreurmaisilnemefait pas le fichier .mi

MERCI !!!!

j’ai testé avec les passContribMap, ça marche !

jean marc

en fait pas tout à fait (rien n’est jamais parfait comme dab dans ce bas monde), ça marche sauf qu’un objet dans un renderLayer mais pas dans une passContribMap est quand même rendu dans cette passcontribMap… à moins qu’il y ai un petit truc que je n’ai pas pigé

neogon

J’essaye en vain de faire fonctionner les mib_binaryproxy sous 2009 mais sans succès, je crée le node le connecte comme il faut, mais lors du rendu pr créer le *.mi j’obtiens le message d’erreur suivant :
// Warning: (Mayatomr.Custom) : mip_binaryproxy1: reference to invalid instance, ignored

et bien evidemment le *.mi n’est pas crée..

Merci d’avance pour une solution!

admin

neogon

J’ai testé ça marche nickel!
Merci beaucoup! sinon super site, il m’a dépanné plusieurs fois, et aussi la réactivité de l’admin pour la réponse c’était plutôt cool !
@+

RedSolos

bonjour, super tuto. mais j ai une ou deux questions :) , imaginons que j ai un arbre en deux parti donc deux shaders ou plus comment puis je faire pour que mental ray fasse pour appliqué mon shader tronc au tronc et l aitre au feuillage, deuxième question est til possible de faire un proxy avec plusieurs objet ? ou tout simplement d ‘édité le .mi, merci

admin

Salut,
Il y a 2 « sortes » de proxy. Pour faire simple, les proxy utilisaient avec le mip_binaryproxy sont des proxy « géométrique ». Les proxy qui sont la shapes des objets dans Maya 2009 peuvent eux avoir des shaders.
Donc, la solution pour ton arbre et d’utiliser les proxy de Maya 2009 avec déjà les shaders intégrés dans le proxy. Si tu n’as pas Maya 2009, tu es donc obligé de séparer ton arbre en 2 géométries.

Pour la 2éme question, c’est presque que la même réponse. Si tu le fais avec Maya 2009 (en exportant ta sélection en proxy), tu peux. Sinon, t’es obligé de combiner tes objets avant.

RedSolos

Merci infiniment, sa marche nickel avec le proxy maya 2009 de plus j ai l impression que c’est plus rapide après c’est peut-être qu’une impression :) mais j’ai encore une autre question :) est t’il es possible de modifier le shader du proxy directement quand il est dans la scene ?

admin

Non tu ne peux pas…
Pas contre avec Vray pour Maya oui =). Tu peux même appliquer le shader que tu veux (un ou plusieurs) sur ton proxy.

RedSolos

Ok merci beaucoup :)

Christian

Bonjour,
J’ai voulu faire le test sur Maya 2008 mais lorsque je tape createNode “mip_binaryproxy », je n’ai pas de node mip_binaryproxy mais unknown1 et donc je ne peut pas le linker ensuite. Comment cela se fait ?
Merci

admin

Bonsoir,
Comme la 2éme ligne de l’article le dit, il vous faut Maya 2008 SP1 ou Extension 2 .

Christian

j’ai bien installé le SP1 justement, j’avais bien lu.

admin

Enfaite il y a erreur, la sp1 contient bien les productions shaders, mais pas encore le binaryproxy.
Donc il faut la extension2…

Post you comment here





Deex

Le blog de Damien BATAILLE