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…..=)

Comments

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





Contact Information

BATAILLE Damien

Phone : + 33 6 84 17 36 78

Mail: deex@deex.info

URL: http://deex.info/

Deex

Le blog de Damien BATAILLE