Home Technical Talk

[MAYA HELP!!!] Rendering and Lights for Demo reel?

polycounter lvl 18
Offline / Send Message
Scott Ruggels polycounter lvl 18
I am in a serious bind. I need to complete my Demo reel before the Studio closes it's doors on the 15th of this month. The problem is, in all my years of animating and modelling in Maya, (2), it was all for games applications, and I am having a terrible time getting Maya's lightst to work, and the renders to cooperate.

It's an animation Reel, so what I need is that "WHite Room" GL sort of stage to show off the characters in motion, The latter half of the reel will be game engine footage from Unreal 3, but for the characters that predated the switchover to Unreal 3, I still need to show them, and need to either get an MB sile set up for me to use, or detailed, small word instructions, or an online tutorial on how to do this. Hopefully the GL looked can be somewhat faked, because I have a week and change to render this out, and real GL I have heard take forever to render, and I need three minutes.

Please help.

Scott

Replies

  • malcolm
    Offline / Send Message
    malcolm polycount sponsor
    Hi Scott, if all you want to do is render out a room of whiteness with nice shading to show form, there are a few ways to do this. Below are the three I know of listed in order of hassle and render time.

    Maya7 only hypershade> create mentalray node> texture tab> mid_amb_occlusion> hook this node up to the ambient channel of your maya shader> render mentalray.

    Maya6 only google dirtmap maya> follow install instructions> apply dirtmap node to ambient channel of shader> render mentalray.

    Maya6 and 7 select camera> attribute editor> environment> colour white> mentalray options> preview final gather> render.
  • scanning_factor
    Offline / Send Message
    scanning_factor polycounter lvl 18
    Hey scott, here's what i usually do for that sort of thing. It's a few steps to set up but produces some cool results.

    First select whatever camera you're using, open up the attributes, and under environment set the color to like a 50% grey or something.

    Second, go into the render globals and turn off Enable Default Light.

    Third, go to the mental ray tab, set the render quality to PreviewFinalGather, and make sure Final Gather is enabled under the Final Gather pulldown.

    Fourth, hook an mib_ambient_occlusion node to the ambient color of whatever is shading your character. Render that and you get something like this:

    fGAOTest.jpg

    This is no lights in the scene and just the texture and ambient_occlusion color. If you want more dramatic results, you can add an occluding surface into the scene, which would give you something like this:
    fGAOTest_02.jpg

    So you get a little more to the shadowing but its subtle and not crazy dark. These took me about. . .2 minutes to render on a single P4, so the castaway boxes shouldn't have any problems with em.
  • Daz
    Offline / Send Message
    Daz polycounter lvl 18
    Scott, what version of Maya are you running? To backup malcolms post, in 6.0 the absolute quickest by far way to achieve that look and render it is the excellent dirtmap plug-in shader for mental ray. Very fast ambient occlusion look. Just plug it into the ambient colour node of your material and render without FG or GI.
  • Scott Ruggels
    Offline / Send Message
    Scott Ruggels polycounter lvl 18
    Maya 6. and I think I'll look for that, but does this explain light set ups, and the like?

    Scott
  • Daz
    Offline / Send Message
    Daz polycounter lvl 18
    http://www.impresszio.hu/szabolcs/MentalRay/DirtmapMayaFiles.htm

    http://www.impresszio.hu/szabolcs/Download/Dirtmap1.2mayaFiles.zip

    You shouldn't need any lights. Unless you want harder edged shadows. Apply this to all the ambient nodes of your scene materials.
  • Scott Ruggels
    Offline / Send Message
    Scott Ruggels polycounter lvl 18
    Interesting, I seem not to have any sort of mental ray installed, and looked throught he plugin manager, and the various directories. Nope, nothing. So that's a wash. What next? This is maya 6 (Cheap) not Maya 6 unlimited.

    Scott
  • Daz
    Offline / Send Message
    Daz polycounter lvl 18
    you dont see 'mayatomr' in your plug-ins dir?
  • Scott Ruggels
    Offline / Send Message
    Scott Ruggels polycounter lvl 18
    Nope, just ActorXTool.mll.

    Scott
  • Jeff Parrott
    Offline / Send Message
    Jeff Parrott polycounter lvl 19
    Maybe try something like this

    http://www.highend3d.com/maya/downloads/mel_scripts/rendering/misc/3386.html

    or this

    http://www.highend3d.com/maya/downloads/mel_scripts/rendering/misc/1321.html

    They are pretty basic, but given you time crunch might be better than doing full blown Mental Ray renders. Malcolm's was is going to give you much better results though.
  • Scott Ruggels
    Offline / Send Message
    Scott Ruggels polycounter lvl 18
    In'ts unfortunate that BOTH of them have dead links to their documentation. What is the file extension supposed to be for "gi-joeLights"? IT has none

    Scott
  • Jeff Parrott
    Offline / Send Message
    Jeff Parrott polycounter lvl 19
    Ok, I'll do 2 posts here. This is a noobtastic GI light dome but it works. I've got another one on my work machine I can show you on Monday if this doesn't work. It's real similar though. Paste this in the script editor and hit enter:

    //PrerenderPyramid v0.7 - (c) Dmitry "Troydm" Geurkov
    int $lights;
    float $intensity;
    float $cr;
    float $cg;
    float $cb;
    float $c2r;
    float $c2g;
    float $c2b;
    float $intc;


    $lights=32; // here you can control amount of lights in pyramid
    $intensity=0.2; // the parametr controls the intensity of each light
    $rad=12; // this controls the scaling of pyramid
    $shd=1; // this is shadow controling parametr 0 for no shadows and 1 for shadows
    $shdq=2; // quality of shadows from 1-5
    $cr=0.73; // This three parametrs control the color of lights
    $cg=0.80;
    $cb=0.85;
    $c2r=1;
    $c2g=0.813;
    $c2b=0.625;
    $lights=$lights/8;
    $step=$rad/($lights-1);
    $n=0;
    for($i=1;$i<=$lights;$i++){
    defaultDirectionalLight($intensity, $cr,$cg,$cb, $shd, 0,0,0);
    setAttr ("directionalLightShape"+($i+$n*$lights)+".dmapFilterSize") $shdq;
    select -r ("directionalLight"+($i+$n*$lights));
    $x=$rad-($i-1)*$step;
    $z=0;
    $y=sqrt($rad*$rad-$x*$x-$z*$z);
    move -r $x $y $z ;
    setAttr ("directionalLight"+($i+$n*$lights)+".rotateY") 90;
    setAttr ("directionalLight"+($i+$n*$lights)+".rotateX") (-($i-1)*(90/$lights));
    }

    $n=1;
    for($i=1;$i<=$lights;$i++){
    defaultDirectionalLight($intensity, $cr,$cg,$cb, $shd, 0,0,0);
    setAttr ("directionalLightShape"+($i+$n*$lights)+".dmapFilterSize") $shdq;
    select -r ("directionalLight"+($i+$n*$lights));
    $x=($i-1)*$step-$rad;
    $z=0;
    $y=sqrt($rad*$rad-$x*$x-$z*$z);
    move -r $x $y $z ;
    setAttr ("directionalLight"+($i+$n*$lights)+".rotateY") -90;
    setAttr ("directionalLight"+($i+$n*$lights)+".rotateX") (-($i-1)*(90/$lights));
    }

    $n=2;
    for($i=1;$i<=$lights;$i++){
    defaultDirectionalLight($intensity, $cr,$cg,$cb, $shd, 0,0,0);
    setAttr ("directionalLightShape"+($i+$n*$lights)+".dmapFilterSize") $shdq;
    select -r ("directionalLight"+($i+$n*$lights));
    $z=($i-1)*$step-$rad;
    $x=0;
    $y=sqrt($rad*$rad-$z*$z-$x*$x);
    move -r $x $y $z ;
    setAttr ("directionalLight"+($i+$n*$lights)+".rotateY") -180;
    setAttr ("directionalLight"+($i+$n*$lights)+".rotateX") (-($i-1)*(90/$lights));
    }

    $n=3;
    for($i=1;$i<=$lights;$i++){
    defaultDirectionalLight($intensity, $cr,$cg,$cb, $shd, 0,0,0);
    setAttr ("directionalLightShape"+($i+$n*$lights)+".dmapFilterSize") $shdq;
    select -r ("directionalLight"+($i+$n*$lights));
    $z=$rad-($i-1)*$step;
    $x=0;
    $y=sqrt($rad*$rad-$z*$z-$x*$x);
    move -r $x $y $z ;
    setAttr ("directionalLight"+($i+$n*$lights)+".rotateY") 0;
    setAttr ("directionalLight"+($i+$n*$lights)+".rotateX") (-($i-1)*(90/$lights));
    }

    $n=4;
    for($i=1;$i<=$lights;$i++){
    defaultDirectionalLight($intensity, $cr,$cg,$cb, $shd, 0,0,0);
    setAttr ("directionalLightShape"+($i+$n*$lights)+".dmapFilterSize") $shdq;
    select -r ("directionalLight"+($i+$n*$lights));
    $z=$rad-($i-1)*$step;
    $y=sqrt($rad*$rad-$z*$z);
    $x=$rad-($i-1)*$step;
    move -r $x $y $z ;
    setAttr ("directionalLight"+($i+$n*$lights)+".rotateY") 45;
    setAttr ("directionalLight"+($i+$n*$lights)+".rotateX") (-($i-1)*(90/$lights));
    }

    $n=5;
    for($i=1;$i<=$lights;$i++){
    defaultDirectionalLight($intensity, $cr,$cg,$cb, $shd, 0,0,0);
    setAttr ("directionalLightShape"+($i+$n*$lights)+".dmapFilterSize") $shdq;
    select -r ("directionalLight"+($i+$n*$lights));
    $x=($i-1)*$step-$rad;
    $y=sqrt($rad*$rad-$x*$x);
    $z=$rad-($i-1)*$step;
    move -r $x $y $z ;
    setAttr ("directionalLight"+($i+$n*$lights)+".rotateY") -45;
    setAttr ("directionalLight"+($i+$n*$lights)+".rotateX") (-($i-1)*(90/$lights));
    }

    $n=6;
    for($i=1;$i<=$lights;$i++){
    defaultDirectionalLight($intensity, $cr,$cg,$cb, $shd, 0,0,0);
    setAttr ("directionalLightShape"+($i+$n*$lights)+".dmapFilterSize") $shdq;
    select -r ("directionalLight"+($i+$n*$lights));
    $x=($i-1)*$step-$rad;
    $y=sqrt($rad*$rad-$x*$x);
    $z=($i-1)*$step-$rad;
    move -r $x $y $z ;
    setAttr ("directionalLight"+($i+$n*$lights)+".rotateY") -135;
    setAttr ("directionalLight"+($i+$n*$lights)+".rotateX") (-($i-1)*(90/$lights));
    }

    $n=7;
    for($i=1;$i<=$lights;$i++){
    defaultDirectionalLight($intensity, $cr,$cg,$cb, $shd, 0,0,0);
    setAttr ("directionalLightShape"+($i+$n*$lights)+".dmapFilterSize") $shdq;
    select -r ("directionalLight"+($i+$n*$lights));
    $x=$rad-($i-1)*$step;
    $y=sqrt($rad*$rad-$x*$x);
    $z=($i-1)*$step-$rad;
    move -r $x $y $z ;
    setAttr ("directionalLight"+($i+$n*$lights)+".rotateY") 135;
    setAttr ("directionalLight"+($i+$n*$lights)+".rotateX") (-($i-1)*(90/$lights));
    }

    for($i=1;$i<=($lights*8);$i++){
    $d="directionalLight"+$i;
    select -add $d;
    }
    group -n Lights;
    addAttr -ln SkyColor -usedAsColor -at float3;
    addAttr -ln redBow -at "float" -p SkyColor;
    addAttr -ln greenBow -at "float" -p SkyColor;
    addAttr -ln blueBow -at "float" -p SkyColor;
    setAttr "Lights.SkyColor" -type double3 $cr $cg $cb ;
    addAttr -ln SkyIntensity -at double -min 0 -max 0.3 -dv $intensity |Lights;
    addAttr -ln SkyIntensityFalloff -at double -min -0.1 -max 0.1 -dv 0.05 |Lights;
    addAttr -ln GroundColor -usedAsColor -at float3;
    addAttr -ln redBow3 -at "float" -p GroundColor;
    addAttr -ln greenBow3 -at "float" -p GroundColor;
    addAttr -ln blueBow3 -at "float" -p GroundColor;
    setAttr "Lights.GroundColor" -type double3 $c2r $c2g $c2b ;
    addAttr -ln GroundIntensity -at double -min 0 -max 0.3 -dv ($intensity-0.1) |Lights;
    addAttr -ln EmitDiffuse -at bool |Lights;
    addAttr -ln EmitSpecular -at bool |Lights;
    setAttr Lights.EmitDiffuse 1;
    setAttr Lights.EmitSpecular 1;
    addAttr -ln ShadowColor -usedAsColor -at float3;
    addAttr -ln redBow2 -at "float" -p ShadowColor;
    addAttr -ln greenBow2 -at "float" -p ShadowColor;
    addAttr -ln blueBow2 -at "float" -p ShadowColor;
    addAttr -ln CastSkyLevel1Shadows -at bool |Lights;
    addAttr -ln CastSkyLevel2Shadows -at bool |Lights;
    addAttr -ln CastSkyLevel3Shadows -at bool |Lights;
    addAttr -ln CastGroundShadows -at bool |Lights;
    setAttr "Lights.CastSkyLevel1Shadows" $shd;
    setAttr "Lights.CastSkyLevel2Shadows" $shd;
    setAttr "Lights.CastSkyLevel3Shadows" $shd;
    setAttr "Lights.CastGroundShadows" 0;
    addAttr -ln DmapFilterSize -at long -min 1 -max 5 -dv 2 |Lights;
    addAttr -ln DmapResolution -at long -min 0 -max 2028 -dv 128 |Lights;
    addAttr -ln DmapBias -at double -min 0 -max 1 -dv 0.001 |Lights;

    for($i=1;$i<=($lights*8);$i++){
    connectAttr Lights.SkyColor ("directionalLightShape"+$i+".color");
    connectAttr Lights.EmitDiffuse ("directionalLightShape"+$i+".emitDiffuse");
    connectAttr Lights.EmitSpecular ("directionalLightShape"+$i+".emitSpecular");
    connectAttr Lights.ShadowColor ("directionalLightShape"+$i+".shadowColor");
    connectAttr Lights.DmapFilterSize ("directionalLightShape"+$i+".dmapFilterSize");
    connectAttr Lights.DmapResolution ("directionalLightShape"+$i+".dmapResolution");
    connectAttr Lights.DmapBias ("directionalLightShape"+$i+".dmapBias");
    }
    for($i=1;$i<=($lights*8);$i=$i+$lights){
    select -r ("directionalLightShape"+$i);
    move -r 0 2 0;
    connectAttr Lights.GroundIntensity ("directionalLightShape"+$i+".intensity");
    disconnectAttr Lights.SkyColor ("directionalLightShape"+$i+".color");
    connectAttr Lights.GroundColor ("directionalLightShape"+$i+".color");
    }
    for($i=1;$i<=($lights*8);$i=$i+$lights){
    connectAttr Lights.CastGroundShadows ("directionalLightShape"+$i+".useDepthMapShadows");
    }
    for($i=2;$i<=($lights*8);$i=$i+$lights){
    connectAttr Lights.CastSkyLevel1Shadows ("directionalLightShape"+$i+".useDepthMapShadows");
    }

    for($i=3;$i<=($lights*8);$i=$i+$lights){
    connectAttr Lights.CastSkyLevel2Shadows ("directionalLightShape"+$i+".useDepthMapShadows");
    expression -s ("directionalLightShape"+$i+".intensity="+"directionalLightShape2.intensity"+"-"+"Lights.SkyIntensityFalloff");
    }

    for($i=4;$i<=($lights*8);$i=$i+$lights){
    connectAttr Lights.CastSkyLevel3Shadows ("directionalLightShape"+$i+".useDepthMapShadows");
    expression -s ("directionalLightShape"+$i+".intensity="+"directionalLightShape2.intensity"+"-"+"2*Lights.SkyIntensityFalloff");
    }
    for($i=2;$i<=($lights*8);$i=$i+$lights){
    connectAttr Lights.SkyIntensity ("directionalLightShape"+$i+".intensity");
    }

    sphere -n Sphere -p 0 0 0 -ax 0 1 0 -ssw 0 -esw 360 -r 1 -d 3 -ut 0 -tol 0.01 -s 4 -nsp 4 -ch 1;
    setAttr "SphereShape.castsShadows" 0;
    setAttr "SphereShape.receiveShadows" 0;
    setAttr "SphereShape.primaryVisibility" 0;
    setAttr "SphereShape.visibleInReflections" 0;
    setAttr "SphereShape.visibleInRefractions" 0;
    setAttr "SphereShape.doubleSided" 0;
    setAttr "SphereShape.opposite" 1;
    setAttr "Sphere.scaleX" ($rad+3);
    setAttr "Sphere.scaleZ" ($rad+3);
    select -r Sphere.cv[5:6][0:7] ;
    move -r 0 ($rad+3) 0 ;
    select -r Sphere.cv[4][0:7] ;
    move -r 0 ($rad-1) 0 ;
    select -r Sphere.cv[0:3][0:7] ;
    select -r Sphere;
    move -r 0 -2.6 0 ;
    displaySmoothness -divisionsU 3 -divisionsV 3 -pointsWire 16 -pointsShaded 4;
    subdivDisplaySmoothness -smoothness 3;
    select -cl;

    shadingNode -n SurfaceShader -as surfaceShader;
    shadingNode -n ramp -asTexture ramp;
    shadingNode -n place2dTexture -asUtility place2dTexture;

    connectAttr place2dTexture.outUV ramp.uv;
    connectAttr place2dTexture.outUvFilterSize ramp.uvFilterSize;
    connectAttr -f ramp.outColor SurfaceShader.outColor;
    setAttr ramp.type 1;
    setAttr ramp.interpolation 4;
    showEditor ramp;
    removeMultiInstance -break true ramp.colorEntryList[1];
    setAttr "ramp.colorEntryList[0].position" 0.4;
    setAttr "ramp.colorEntryList[2].position" 0.7;
    select -cl;
    defaultNavigation -source SurfaceShader -destination |Sphere|SphereShape.instObjGroups[0] -connectToExisting;
    parent Sphere Lights;
    connectAttr Lights.SkyColor ramp.colorEntryList[2].color;
    connectAttr Lights.GroundColor ramp.colorEntryList[0].color;

    select -r Lights;
    print("\n\n\n\n\n###########################################################\n");
    print("###Pre render Pyramid v0.7 - (C) Dmitry \"Troydm\" Geurkov###\n");
  • Jeff Parrott
    Offline / Send Message
    Jeff Parrott polycounter lvl 19
    And then this when you want the lights deleted:

    select -r Lights;
    delete;
    select -r SurfaceShader ;
    delete;
    select -r ramp;
    delete;
    select -r place2dTexture ;
    delete;

    Hope it helps man.
  • Scott Ruggels
    Offline / Send Message
    Scott Ruggels polycounter lvl 18
    oOOOoo. *Copies to Note Pad, first, and saves*

    I think I will give this a tray, so the usage is to, in a new scen, run the script, then import the animation file, and then render?

    Scott

    Scott
  • Scott Ruggels
    Offline / Send Message
    Scott Ruggels polycounter lvl 18
    Noobtastic, but the script worked well. It rendered blazingly quick. Here is a test render, and it shows a little banding, but it's satisfactory. though it all has to be grouped and scaled up :-)
    noobtastic01.jpg

    The next shot, I pulled one of the animated assets in and rendered off one frame, this is a Mummified lion and it has incandescence maps, but they are subtle, However the lighting is quite acceptable, and it rendered quickly.
    noobtastic02.jpg

    The Final Image is the "design goal" of this excercise. with a shadow,and a light background. How would I proceed to get this effect, then?

    noobtastic03.jpg

    Otherwise this would be quite acceptable.

    Scott
  • Jeff Parrott
    Offline / Send Message
    Jeff Parrott polycounter lvl 19
    What I would do is create a plane and match the Environment color in the View>Camera Attr Editor in the camera menu set to the plane color. Might take some adjusting to get it perfect but it should work. Also if you hit r right after you run the script you shouldn't have to group it to scale it up, it should still be selected.
  • Jeff Parrott
    Offline / Send Message
    Jeff Parrott polycounter lvl 19
    No updates lately Ruggels. Everything work out ok?
  • Scott Ruggels
    Offline / Send Message
    Scott Ruggels polycounter lvl 18
    Things worked out beautifully, and thank you very much Jeffro for example this is how the animation came out.
    MummyFWalk.gif
    Looks best in Firefox, an Opera.

    The reel has been posted on "Pimping & Previews.

    Scott
  • Jeff Parrott
    Offline / Send Message
    Jeff Parrott polycounter lvl 19
    Great, glad to hear you got things done.
Sign In or Register to comment.