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.
Vous voulez les dupliquez plusieurs fois puis les rendres.
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.
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 ».
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.
Sélectionnez votre triangle, allez dans Mental ray, geometry shader, cochez « enable geometry shader », et glisser votre mip_binaryproxy dedans.
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).
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.
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.
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…..=)
Le blog de Damien BATAILLE
Christian
j’ai bien installé le SP1 justement, j’avais bien lu.