Home Technical Talk

Maya low poly wireframe render on high poly mesh

Hi!
any way to render the low poly wireframe version on high poly mesh,
the one you see on Maya scene hitting the 3 button?
I tried to do it using Contour Shader, but if render the high res version, all the tassellation is displayed.

Max

post-1312-1292425059.jpg

Replies

  • malcolm
    Options
    Offline / Send Message
    malcolm polycount sponsor
    The way I do it is make the applied shader to the object pure white in the viewport, turn on wireframe on shaded and set the wireframe colour to black. Do a playblast of a single frame of the low poly wireframe, then render the high poly however you want. Composite the low poly image in photoshop and set it to multiply, below is an example of this technique on my website.

    http://www.malcolm341.com/spas12big.htm
  • PredatorGSR
    Options
    Offline / Send Message
    PredatorGSR polycounter lvl 14
    Malcom, I also use that technique, but I'd highly recommend using the "Vector Renderer" in maya to render your wireframe. That way you get very crisp non-jagged lines and you can render at any resolution and it will match your AO render perfectly. It is a renderer option like mental ray, but you have to enable the plugin first. You'll have to tweak the settings a bit to get it to look right, but the final result is way better than the playblast method. One tip is to set all your edges to hard to get an accurate wireframe. You can check out my portfolio if you want to see the results, all my wires were done with that method.

    Max, the 3 mode isn't really a true wireframe, more of a subd, so you shouldn't show it as a wireframe on your portfolio. I've found doing an AO bake composited with a vector render to give the best results, but it is limited to rendering quads and triangles, not subd lines.
  • malcolm
    Options
    Offline / Send Message
    malcolm polycount sponsor
    I'm not a fan of the smooth wireframe I find it fills in too much detail, there shouldn't be a limitation concerning resolution and playblasting. Alternatively you could just turn on smooth wireframe in the viewport if want the smoothness.
  • yangtsur
    Options
    Offline / Send Message
    it seems that vector render cannot render resolution higher than 720x480? Because maya would notify me to register for vector render if I attempt to render a higher resolution. And then Maya would crash, and so will corrupt the file (.ma). I tried to google about registering vector render but couldn't find a solution for it. Then I downloaded a plug-in called Multi-tool and used the contour shader to render, and Maya just crashed again for unknown reasons. The message says: couldn't attempt to save, for example 203921.3921.ma. In addition, the scene I was rendering will be corrupted, again. I could open that scene in maya, but if I tried to do anything in that scene, Maya will crash.

    The version of Maya I am using is 2011x32. How should I fix this problem?
  • Fingus
    Options
    Offline / Send Message
    Fingus polycounter lvl 11
    I just do a UV Snapshot and apply it as a texture. If you don't have any UV's just do an automatic mapping operation, you just need to avoid severe stretching and overlapping. Easiest thing in the world.

    I did it on this guy: http://www.vimeo.com/17869214
  • m4dcow
    Options
    Offline / Send Message
    m4dcow interpolator
    max.centra wrote: »
    Hi!
    any way to render the low poly wireframe version on high poly mesh,
    the one you see on Maya scene hitting the 3 button?
    I tried to do it using Contour Shader, but if render the high res version, all the tassellation is displayed.

    Max

    I just tried some stuff with no luck. I assume you would want to do render layers, so everything is composited into one file for ease of adjustment later on, but maybe you just duplicate your mesh and throw it into a "high poly" render layer, along with a "wireframe" layer (with a material override).

    There is probably a way to have a script switch from low poly to smooth preview when it renders a particular render layer, but I've never looked too deep into scripting for render passes so I wouldn't know.

    (You're doing the right thing with the contour shader though, better option than the vector render or UV snapshot as texture)
  • malcolm
    Options
    Offline / Send Message
    malcolm polycount sponsor
    Still not sure why you just don't playblast it, there is no resolution limit there. You can composite on top of your image set to multiply and get what you want. You can even use a render layer with a white shader applied so you don't have to save out a seperate file.
  • m4dcow
    Options
    Offline / Send Message
    m4dcow interpolator
    I didn't know you could use the playblast method with render layers, if you can I guess it saves a little time fiddling with the contour shader settings. If it can't work with render layers then I lose the convenience of having the wireframe already as a layer in a psd for me.

    On another note about rendering out construction shots, I had to do a bunch of them on many different objects and I was wondering if there is a way to override specific map channels.

    Eg: I have an object with a diffuse, spec and normal map applied. In one render layer I want to render with these maps, but in another, I want to render using the normal map, but use say a mid grey for the diffuse, and a darker grey for the specular to show off the low poly bake.

    It's easy to do this manually, but when you have to do it for 15 objects it gets a bit tedious. My solution was not elegant as I simply did the diffuse, wireframe and an AO render in one psd. Then did the low poly without diffuse by simply moving the files from their locations and breaking the link, and rendering without. The drawback there was having to bring each layer in separately.
  • malcolm
    Options
    Offline / Send Message
    malcolm polycount sponsor
    Each render layer you make stores any custom shader assignment you do to that layer only, so you could just dupe the shader and assign different maps to it and only assign that shader to objects on that layer. Is you click between the layers you'll see the shaders change, if you want to batch render it will render out both layers so you'd get both versions of your object.
  • m4dcow
    Options
    Offline / Send Message
    m4dcow interpolator
    malcolm wrote: »
    Each render layer you make stores any custom shader assignment you do to that layer only, so you could just dupe the shader and assign different maps to it and only assign that shader to objects on that layer. Is you click between the layers you'll see the shaders change, if you want to batch render it will render out both layers so you'd get both versions of your object.

    Well that works, but it doesn't really help me speed wise. I combined my objects all in one scene, keyed the visibility and a camera on each frame I wanted to render, so it rendered out 15 in one batch render. I was hoping there was some sort of channel override similar to how there is a material override in render layers.

    What you describe works well if I have 1 object per scene, but in my situation I had many different objects with different shaders. Next time I'll probably make sure everything is separate and write a script to render multiple files, it avoids having to key all the different objects and if I set it up as I go, I can render all my passes out to a single psd per asset.
Sign In or Register to comment.