Home Technical Talk

Maya AO maps

2

Replies

  • xerious3d
    In your import option turn Multiple Objects to Single Object - Also when exporting from other software packages check for there options. I.E - Zbrush has options while exporting that un-merges UVS and so forth. Not sure about other packages outside of maya but chances are they could be saving extra crap that isn't necessary.

    On the AO topic - MAYA: Have you guys ever had a problem not being able to bake the AO period (Highrez > LowRes)? I am currently having this issue:

    // Warning: (Mayatomr.Custom) : surfaceSampler1: reference to invalid shape, ignored
    // Warning: (Mayatomr.Custom) : surfaceSampler1: reference to invalid shape, ignored
    // Baked 1 maps. 0 maps failed //
    // Info: (Mayatomr.Scene) : render camera: persp //

    And i get a pure white map as my AO, with in my UV space of the Lres model - Same result with the mib_illum_lambert1
  • nekked
    just forget about baking ao that way in maya if your using 8.0, it simply doesn't work right. Anything else (xnormal, topogun, xsi) is going to to a much better job much quicker. Where i work the vehicle team actually does bake ao in maya, but they create uv's for the high poly and do a proper ao bake to that, and then transfer it to the low. the rest of us just do ao in topogun. maybe this is fixed in new maya version but autodesk is the laziest bunch of fucks ever and it took them years to fix the bevel tool i wouldn't doubt we won't see this workin untill maya 2014.
  • xerious3d
    Good to know...Yeah I am using 2009 here at work. I guess baking the AO to the high res would be another option for me. Baking AOs in maya take a while in general, I usually result to xnormal anyhow...Thanks Nekked.
  • Mongrelman
    Offline / Send Message
    Mongrelman polycounter lvl 18
    That's what we do at work too. Other advantages are that you can then move apart pieces of the high poly model (if need be) to bake, whilst still retaining the exact occlusion detail. And if you are kit-bashing, you can load in old models that already have AO baked for them and just bake that to the low poly.
  • xerious3d
    Yeah color transfering the AO is what i was thinking of, Highres to low. I will sometimes bake seperate AOs and normals when i get artifacting as well, stitch em in Photoshop as well. Sweet, thanks Mongrelman. Appreciate it.
  • Whargoul
    Offline / Send Message
    Whargoul polycounter lvl 18
    I never directly transfer my AO from high to low - I always bake it to the high rez first and transfer later. You can get cleaner bakes, redo stuff later, re-use it, etc. All sorts of fakery. If there's errors, repaint it on the high first.

    Another problem with the other way, is you can't tell where the errors are coming from, the AO bake or the transfer? This splits it into two steps so each can be fixed indepandantly.
  • getSumNotAll
    Offline / Send Message
    getSumNotAll polycounter lvl 7
    not sure if anyone is still following this post, but I have had all the same problems myself, and after a lot of research and tinkering this is what I have found.>
    using transfer maps and mental ray together requires a lot of steps necessary to get mental ray to communicate properly with maya. I copied all my steps into a script I run with nothing in the scene except high res, and low res geo.
    Try this>
    in render settings >
    options>
    Translation>
    Performance> Maya derivatives must be checked on
    Then select your low res geo and run this>
    global proc SRBuberAO()
    {
    string $sel[] = `ls -sl`;
    addAttr -ln "miLabel" -at double -min 0 -max 100 -dv 99;
    setCurrentRenderer mentalRay;
    performSurfaceSampling 1;
    addMapUIFrame 6;
    //customShaderButtonCB 3;//
    mrCreateCustomNode -asShader "textFieldGrp -e -text %node surfaceSamplingCustomShader2; button -e -label \"Edit\" surfaceSamplingCustomShaderButton2" mib_illum_lambert;

    //textFieldGrp -e -text mib_illum_lambert1 surfaceSamplingCustomShader2;
    //textFieldGrp -e -text "poo" surfaceSamplingCustomShader2;
    //button -e -label "Edit" surfaceSamplingCustomShaderButton2;
    //refreshAE;
    //autoUpdateAttrEd;

    listConnections -source true -destination false "mib_illum_lambert1.outValue";
    setUITemplate -pst attributeEditorTemplate;
    mrCreateCustomNode -asTexture "" mib_amb_occlusion;
    setAttr "mib_amb_occlusion1.spread" 4;
    setAttr "mib_amb_occlusion1.id_inclexcl" -99;
    setAttr "mib_illum_lambert1.ambience" -type double3 1 1 1 ;
    setAttr "mib_illum_lambert1.diffuse" -type double3 0 0 0 ;
    connectAttr -f mib_amb_occlusion1.outValue mib_illum_lambert1.ambient;
    connectAttr -f mib_amb_occlusion1.outValueA mib_illum_lambert1.ambientA;
    CreatePointLight;
    setAttr "pointLightShape1.intensity" 0;
    disconnectAttr pointLight1.instObjGroups[0] defaultLightSet.dagSetMembers[0];
    setAttr "pointLightShape1.emitDiffuse" 0;
    setAttr "pointLightShape1.emitSpecular" 0;

    }
    SRBuberAO;

    ( this should load transfer maps and supply all settings necessary for testing quality)
    then load high res geo as the source mesh in transfer maps.
    click bake.
    after confirming that your test results in a low quality AO map....open hypershade, and adjust the settings on the mib_amb_occlusion node that resides in mib_illum_lambert
    crank your samples to 250 or so, > click bake in transfer maps and go get some coffee..
    also...just to note.
    depending on the distance between high and low res meshes (usually low res wrapping around the high res as in any normal baking process) youll need to use transform component tool in edit mesh menu( or marking menu, hotkey etc.) to move the verts of the low res to fit slightly inside of the high res mesh (this should rectify the common artifacts associated with the geo mismatch )
2
Sign In or Register to comment.