Faire un rendu en wireframe dans Maya
Par Narann le samedi, 1 octobre 2011, 22:14 - Infographie 3D - Boulot - Lien permanent
Je sais pas pour vous, j'ai toujours galéré pour faire un rendu correct en wireframe.
Oui, vous vous dite que tout le monde s'en fout des wireframes, c'est juste pour faire une zolie demoreel de modeleur. :dentcasse:
C'est pas faux! Mais n’empêche que j'ai toujours galéré.
La technique que je vous présente dans ce billet express n'est pas la meilleur mais je viens de la découvrir et elle est tellement simple/efficace que je voulais vous en faire part! :hehe:
Il était une fois...
Tout commence donc par une réponse de bart sur le forum de mental image suite à mon article sur l'avenir de mental ray.
Il me propose de lister les trucs que je pense intéressants pour les prods.
Je commence donc une petite liste chez moi qui commençait à être bien fournies et que je m'apprêtais a poster sur le forum.
Mais bien entendu, avant de passer pour le dernier des nigots, je vérifie une bonne fois pour toutes que ce que je demande n'est pas déjà faisable. (Histoire de pas perdre trop de crédibilité après les avoir un peu lynché dans mon billet...).
Le premier point que je cherche est: Un vrai shader pour faire du wireframe, avec moult options et tout, sans passer par les contours.
Notez que ce n'est pas le premier point de la liste sinon je suis vraiment a coté de la plaque. C'était aussi pour comprendre comment un raytracer, aux vues de son fonctionnement, était capable de sortir les edges d'un mesh (c'est le nerd qui parle là...).
Et je tombe sur ça:
Assign Surface shader to the mesh, feed it with a ramp (type: box), go to UVs:Unitize.
C'est quoi son affaire là? :gne2:
Unitize, c'est quoi ce truc?
Et bien figurez vous que Edit Uvs/Unitize permet tout simplement de mettre les uvs par face! C'est ça le secret!
Démonstration!
Prenez n'importe quel objet géométrique:
Voici les UVs par défaut:
Et bien faitesEdit Uvs/Unitize:
Et...
Le shading graph est aussi simple que ça:
Avec un surface shader:
Avec la ramp en Box:
Donc vous voyez, c'est loin d’être un truc de prod (c'est franchement limité), mais vu le nombre de cliques nécessaires pour obtenir le truc, je ne pouvais pas ne pas vous en parler. :banaeyouhou:
Si vous avez d'autres techniques de la mort n'hésitez pas! :sauteJoie:
A bientôt!
PS: Oui je sais, pas mal de moteurs proposent des shaders tout prêts (VRay, Final Render, et sûrement d'autres).
Commentaires
les contours shaders de mental Ray sont très puissants pour ce genre de rendu, avec contrôle d'épaisseur, de tolérance...etc.... et sont deja dans Maya.
mais merci pour le post!
Oui en effet mais je n'ai jamais retrouvée la solution simple pour avoir un anti aliasing correct. :(
Il y en avait une mais elle faisait planter mon Maya.
Si tu a une solution je suis preneur! :)
EDIT: En fait si ça marche: http://forums.cgsociety.org/showthread.php?t=392955
Mais comment afficher le wireframe en transparence?
D'autres solutions ici: http://blog.ayanray.com/2010/01/the-best-way-to-render-wireframe-in-maya/
J'ai également utilisé cette méthode pendant très longtemps jusqu'à ce que découvre la technique utilisant le renderer Maya Vector. Il suffit de passer les Edges en Hard Edges et de demandé l'Outline.
Seule limitation de la technique, le rendu est limité à 3200x3200, ce qui peut poser problème pour les rendus 4k.
Franchement pas mal comme article , je ne connaissais pas la fonction Unitize. La dernière fois que j'ai fait du rendu en wireframe avec Maya , je l'ai fais sur des objects texturer et rendu avec wireframe par dessus par le biais de leur Shading Group en activant Enable Contour Rendering de Mental Ray (Méthode Basic quoi ).Il faudrait que j'essaie avec ta technique du Unitize.
Merci @+
Comme je le précise, le problème des contours mental ray c'est qu'on ne vois pas la partie arrière du wireframe. :(
Ils ne sont pas transparent.
Cette technique n'est pas parfaite (face à 3 cotés) mais elle permet d'avoir de la transparence... :hehe:
j'utilise le toon shader pour ca , car la texture a un default c'est que des que tu zoom c'est moche. en revanche avec le toon tu geres ton epaisseur et ta couleur comme tu veux. en plus tu rends en software et ca va super vite avec un bon aliasing. avec le vector render il met ton mesh en triangle j'arrive pas a avoir un truc en quad.
Je ne sais pas si vous connaissez déjà la méthode que je vais expliquer mais elle me semble être la meilleur, parce qu'elle permet d'avoir un wireframe de très bonne qualité au rendu. (Tout en donnant accès à pas mal d'option.)
Tout d'abord, lorsque je veux afficher mon wireframe, je vais dans l'hypershade, là, je sélectionne le Shader qui est appliqué à l'objet sur lequel je veux afficher le maillage.
Une fois selectionné, je fais afficher les "Inpout and output connections, là, dans le GraphNetwork apparait "initialShadingGroup", je le sélectionne, et dans l'Attribute Editor apparait donc ses paramètres, et dans le sous-onglet "Contours" je coche "Enable Contour Rendering".
(Vous pouvez modifier la couleur, l'Alpha et l'épaisseur du maillage grace aux paramètres "Color, Alpha, Width")
(Perso, je met souvent Width à 0.3)
Ensuite je m'occupe des paramètres du Rendu :
- Dans le "RenderSettings", je choisi comme moteur de rendu MentalRay
- Je vais dans l'onglet "Features" et je cherche le sous-onglet "Contours"
- Je coche "Enable Contour Rendering"
- Et je modifie "Box Filter" du champ "Filter Type" en "Triangle Filter" (Malheureusement, je ne sais plus se que change cette option =/ )
- Je modifie aussi la valeur du champ "Over-Sample" (Perso je met 8) (Pour ceux qui ne savent pas, cette option permet d'augmenter/diminuer le "bruit" sur le maillage au rendu)
- Pour finir, je "déroule" le sous-onglet "Draw By Property Difference" et je coche "Around silhouette (coverage)" et "Around all poly faces" (J'explique un peu : "Around silhouette" permet d'afficher les justes les contours du mesh, "Aroung all poly faces" affiche tout le maillage)
- Voilà, je fais un rendu, et j'ai mon image avec son wireframe.
(Afin d'avoir une bonne qualité au rendu, je modifie la résolution en 720 ou 1080p)
Je trouve cette technique excellente parce qu'elle permet de modifier l'épaisseur, la couleur et l'opacité du maillage. Elle fonctionne avec tout type de Shader (Blin, Lambert, ...)
Et comme elle est "fixé" à un Shader, il est possible au rendu de n'afficher que le maillage d'un objet souhaité, en plus de pouvoir configurer son Shader comme bon vous sembles (texture, couleur, bump, transparence...)
Et je précise aussi que vu la date du dernier commentaire, chacun de vous doit avoir trouvé sa propre méthode mais si jamais ce post peut aider... =)
Merci pour le commentaire détaillé. :)
Je connaissais déjà cette méthode mais je ne crois pas qu'elle permette de faire des wireframe transparent (comme un simple maillage de viewport Maya). :)
C'est ça justement que j'ai du mal a faire. ^^'