Home Technical Talk

3DS Model Organisation and RTT Workflow

polycounter lvl 9
Offline / Send Message
r_fletch_r polycounter lvl 9
I'd love to know how you guys organise your models for a complex RTT bake.
To put this in context I've found it extremely useful to try and get as much info out of a RTT bake as possible.

Assigning colour coded materials to a model and baking out the diffuse information to create masks is something I find extremely usefull. Its so easy to make these into layer masks in photoshop and they make general painting much neater and creation of spec/gloss maps a million times easier.

It is however something you cant always do. When you get lots of closely packed detail I've found i have to use the 'hit only matching Mat ID's' option to stop bad baking from happening. meaning i cant meaningfully assign different materials to the model anymore.

Now I could explode my meshes but it ruins ambient occlusion calculation.

I found 1 solution was to assign vertex colours to the mesh, sorting the mesh into meaninfull colour coded groups and baking this out in the diffuse channel. This obviously increses the footprint of the model in ram but it works really well.

Another speedbump I've hit is not being able to RTT my whole model at once, my last model was very complex and max just ground to a halt if I told it to bake everything. to this end i had to split the model into groups which i then baked out seprately. This was fine, I added some overlapping areas to the bakes to preserve AO baking and the individual bakes worked well. Comping it all together was a bit of a pain though.

I got round this problem in some small way by rendering as PNG's with alpha and using the max composite node to combine all the baked maps together into 1 tile. It was a little slow to setup but it only had to be done once and it meant I didn't have to keep photoshop open in order to update my normal maps. I think im going to write a script to automate this process, it should be pretty easy to get all the RTT maps from a group of objects and create a comp map of all the different passes.




So how do you approach this sort of thing? Any sage advice for someone trying to streamline their workflow

Replies

  • Joao Sapiro
    Offline / Send Message
    Joao Sapiro sublime tool
    hey man , the way i do it is to explode the mesh without problem , and make the HP one mesh if it is "heavy" with a meshsmooth modifier that only shows while rendering. Then you copy your lowpoly and also "explode" it ( dont alter uvws besides offsetting uvw parts by one unit if you have to ).

    this way you can render everything in 1 pass , its much faster and when you do testbakes you can imediately see what areas need fixing ( support geo , etc )


    Then for the ao , you just need a self oclusion ao bake, exporting the non exploded lowpoly to xnormal simple ao generator does the trick and its super fast :D

    Hope this helps !
  • glynnsmith
    Offline / Send Message
    glynnsmith polycounter lvl 17
    2 things that I do with my workflow that're nice little tricks:

    If I have to explode your meshes for baking, set them to keyframes, so you can scrub back and forth on your timeline, and not have to dick about with multiple versions of meshes.

    I apply materials to my HP mesh that represent materials it'll end up with. I bake these out, with diffuse, spec and gloss and use those as bases to add to, rather than using your masking material method and having to start from scratch with defining materials.
  • r_fletch_r
    Offline / Send Message
    r_fletch_r polycounter lvl 9
    Thanks Guys :)

    Johny: thanks man, i tried the render itterations trick with Turbosmooth but it still crashed out. im using a system with more ram now tho so ill give it a go.

    That Self occlusion trick is damn clever! thanks for sharing :)

    glynn: may i ask how you bake out the gloss values? i don't get a gloss element in RTT
  • Racer445
    Offline / Send Message
    Racer445 polycounter lvl 12
    glynnsmith wrote: »
    If I have to explode your meshes for baking, set them to keyframes, so you can scrub back and forth on your timeline, and not have to dick about with multiple versions of meshes.

    I do this too. It's extremely helpful and doesn't take a whole lot of time at all. Making the cage is easier too.
  • cw
    Offline / Send Message
    cw polycounter lvl 17
    r_fletch_r wrote: »
    Thanks Guys :)

    Johny: thanks man, i tried the render itterations trick with Turbosmooth but it still crashed out. im using a system with more ram now tho so ill give it a go.

    That Self occlusion trick is damn clever! thanks for sharing :)

    glynn: may i ask how you bake out the gloss values? i don't get a gloss element in RTT

    you've seen this page? the eq ao method sounds like what you're after.
    http://wiki.polycount.com/Ambient%20Occlusion%20Map?highlight=%28ambient%29|%28occlusion%29

    hope it helps.
  • r_fletch_r
    Offline / Send Message
    r_fletch_r polycounter lvl 9
    indeed it is :), id read it but didnt precisely get it until Johny put it in context for me. Im interested in the whole process to be honest.
  • Moosey_G
    This thread just made me realize I've been using completely unnecessary unwrapping practices :poly127:
  • EarthQuake
    glynnsmith wrote: »
    I apply materials to my HP mesh that represent materials it'll end up with. I bake these out, with diffuse, spec and gloss and use those as bases to add to, rather than using your masking material method and having to start from scratch with defining materials.

    While this may be a good way to start, i feel like you'de do even better if you baked a RGB mask to go along with these base mats, as unless you always create perfect basemats and have no need to tweak, ever, you'll end up re-creating layer masks manually in the texturing processes. Which would be much slower than simply doing the RGB thing in the first place i would think.
  • Moosey_G
    So if when you guys explode your mesh and bake the pieces, are they still apart of the same editable poly/mesh or do you attach the detached pieces back together after? I'm so confused, can anyone explain this to me?
  • r_fletch_r
    Offline / Send Message
    r_fletch_r polycounter lvl 9
    like Glynn said, key move the pieces apart within the mesh and key it.(autokey should handle it for you)

    frame 0 = original element positions
    frame 1 = exploded element positions

    you may need to select 'All' within the keyfilters to key the mesh. I think Autokey should know what to do regardless

    the reason i like the layer mask approach myself is the quick tweaking. its more like offline rendering, change a value and press render :) theres no selecting to be done you just drag the mask onto an adjustment layer and you get localised control
  • EarthQuake
    Mossey: you can do it either way(depending on app), in Maya i generally use mutliple objects, because you can have multiple objects loaded as your lowpoly, but in max you need keyframe sub-objects, because of the limitations with only one lowpoly mesh in RTT.
  • Eric Chadwick
    Actually you can bake multiple meshes at once in RTT; you get auto-named bitmaps (MeshnameElementname.tga).

    If you want to use a cage you have to set up the Projection modifiers individually though, because Pick makes the modifier an instance, which makes it grab all the targets at once (a total mess).
  • Racer445
    Offline / Send Message
    Racer445 polycounter lvl 12
    In max I prefer to use keyframes for exploding the high poly, then attach the low poly together and apply an edit poly modifier to them and explode them. I find it to be more reliable than trying to do subobject keyframing.
  • glynnsmith
    Offline / Send Message
    glynnsmith polycounter lvl 17
    r_fletch_r wrote: »
    glynn: may i ask how you bake out the gloss values? i don't get a gloss element in RTT
    Sorry man. My fingers got away from me, there.

    There's no gloss. Really, if all you need is a greyscale value, you could assign that to alpha/self-illum, if you're not using those.
    EarthQuake wrote: »
    While this may be a good way to start, i feel like you'de do even better if you baked a RGB mask to go along with these base mats, as unless you always create perfect basemats and have no need to tweak, ever, you'll end up re-creating layer masks manually in the texturing processes. Which would be much slower than simply doing the RGB thing in the first place i would think.
    Actually, yeah. I've always hand made my masks, which is a bit silly, thinking about it.

    It never takes that long, but I guess every minute saved faffing about with something is a minute you can spend on something else.
  • Moosey_G
  • r_fletch_r
    Offline / Send Message
    r_fletch_r polycounter lvl 9
    Eric: Why is it a total mess? because of the shitty cage calculation? I got so sick of it that i commented out the code that triggers it.

    its only 1 line in the RTT macroscript and no more waiting ages for a crappy cage.

    if you do the following:
    in the listender:
    macros.edit "Render" "BakeDialog"
    
    backup the script
    go to line: 4785 which reads
    pmodInterface.autowrapCage()
    comment that out and save, then evaluate the script.

    Now you can do the cage yourself.
  • Eric Chadwick
    Cool tip. Yeah it's the craptastic cage. Doesn't prevent the Projection mods from being an instance, but that's easy to fix (Make Unique button).
  • StefanH
    Offline / Send Message
    StefanH polycounter lvl 12
    well i just split up the object in multiple objects for baking and recomposite in photoshop. That way i can have full AO from highpoly which is a bit difficult if the mesh is exploded. I guess you guys are combining High and Lowpoly AO to counteract this?
Sign In or Register to comment.