Wednesday, 9 April 2014

Studio Set Up 

Hi,
Iv been working on a premade studio set up recently  to try adn speed up my rendering and lighting workflow.


Its a basic 3 point light set up with a curved backed drop however i have always found it frustrating changing the quality settings in the render settings tab and i always forget to adjust the shadow rays from the area light so i decided to write a script. The script lists all the lights in the scene and changes there "shadow ray" values and changes the render settings depending on the level of quality the user wants.
Here are three examples of the settings,

low (20 Seconds)
Medium (1 Min)
High (40 Min)
This script should take some of the tediousness out of set up. Ill keep it up to date as i make changes

Script 
import maya.cmds as cmds

a= 0
def lowQual(a):
    #Change Render Settings
    ## AA
    cmds.setAttr("miDefaultOptions.maxSamples", 0)
    #Final Gathering
    cmds.setAttr("miDefaultOptions.finalGatherRays", 100)
    cmds.setAttr("miDefaultOptions.finalGatherPresampleDensity", 1)
    cmds.setAttr("miDefaultOptions.finalGatherPoints", 10)
    #Shadows and Raytracing
    cmds.setAttr("miDefaultOptions.maxReflectionRays", 5)
    cmds.setAttr("miDefaultOptions.maxRefractionRays", 5)
    cmds.setAttr("miDefaultOptions.maxRayDepth", 10)
    cmds.setAttr("miDefaultOptions.maxShadowRayDepth", 5)
    #Resolution
    cmds.setAttr("defaultResolution.width", 1280)
    cmds.setAttr("defaultResolution.hight", 720)

    #Lower Lights Shadow Rays
    ligList = cmds.ls(lt=True)
    for a in ligList:
        newName = a + ".shadowRays"
        cmds.setAttr(newName, 10)
       
def medQual(a):
    #Change Render Settings
    cmds.setAttr("miDefaultOptions.maxSamples", 2)
    cmds.setAttr("miDefaultOptions.finalGatherRays", 400)
    cmds.setAttr("miDefaultOptions.finalGatherPresampleDensity", 2)
    cmds.setAttr("miDefaultOptions.finalGatherPoints", 20)
    cmds.setAttr("miDefaultOptions.maxReflectionRays", 10)
    cmds.setAttr("miDefaultOptions.maxRefractionRays", 10)
    cmds.setAttr("miDefaultOptions.maxRayDepth", 20)
    cmds.setAttr("miDefaultOptions.maxShadowRayDepth", 10)
    #Resolution
    cmds.setAttr("defaultResolution.width", 1920)
    cmds.setAttr("defaultResolution.hight", 1080)

    #Lower Lights Shadow Rays
    ligList = cmds.ls(lt=True)
    for a in ligList:
        newName = a + ".shadowRays"
        cmds.setAttr(newName, 20)

def higQual(a):
    #Change Render Settings
    cmds.setAttr("miDefaultOptions.maxSamples", 4)
    cmds.setAttr("miDefaultOptions.finalGatherRays", 1000)
    cmds.setAttr("miDefaultOptions.finalGatherPresampleDensity", 3)
    cmds.setAttr("miDefaultOptions.finalGatherPoints", 30)
    cmds.setAttr("miDefaultOptions.maxReflectionRays", 20)
    cmds.setAttr("miDefaultOptions.maxRefractionRays", 20)
    cmds.setAttr("miDefaultOptions.maxRayDepth", 40)
    cmds.setAttr("miDefaultOptions.maxShadowRayDepth", 20)
    #Resolution
    cmds.setAttr("defaultResolution.width", 3840)
    cmds.setAttr("defaultResolution.hight", 2160)

    #Lower Lights Shadow Rays
    ligList = cmds.ls(lt=True)
    for a in ligList:
        newName = a + ".shadowRays"
        cmds.setAttr(newName, 50)
       

window = cmds.window( title="Studio Control", iconName='StudioCon', widthHeight=(200, 200) )
cmds.columnLayout( adjustableColumn=True )
cmds.text("Quality")
cmds.button( label='Low', command=lowQual)
cmds.button( label='Medium', command=medQual )
cmds.button( label='High', command=higQual )
cmds.text("")
cmds.button( label='Close', command=('cmds.deleteUI(\"' + window + '\", window=True)') )
cmds.setParent( '..' )
cmds.showWindow( window )