""" Snow Shader Author:Sunique Plante """ import maya.cmds as mc import os mc.file(new = True, force = True) home = os.getenv("HOME") polyModel = mc.polyPlane(name="snowplane") mc.scale(100,100,100) #make displacement node displaceNode = mc.shadingNode("displacementShader", asUtility = True) mc.setAttr("displacementShader1.displacement", 0.05) mc.setAttr("displacementShader1.vectorSpace",2) #make aiMixShader and connect to displacement node mixNode = mc.shadingNode("aiMixShader", asShader = True) mc.setAttr("aiMixShader1.mode", 1) mc.setAttr("aiMixShader1.mix",0.503) mc.connectAttr(mixNode+".outColor",displaceNode+".vectorDisplacement") #make snow aiStandardSurface and SG snowmat= mc.shadingNode("aiStandardSurface", asShader = True) standardg= mc.sets(n=standardsurf+"SG", empty=True,renderable=True,noSurfaceShader=True) mc.connectAttr(displaceNode+".displacement",standardg+".displacementShader") mc.connectAttr(snowmat+".outColor",standardg+".surfaceShader") #fractal noise 1&2 fracno1= mc.shadingNode("fractal", asUtility = True) mc.setAttr("fractal1.amplitude", 0.155) mc.setAttr("fractal1.ratio",0.706) mc.setAttr("fractal1.frequencyRatio",2.0) placeTex1 = mc.shadingNode("place2dTexture", asUtility = True) mc.defaultNavigation(connectToExisting = True, source = placeTex1, destination = fracno1) mc.connectAttr(fracno1+".outColor",mixNode+".shader2") fracno2= mc.shadingNode("fractal", asUtility = True,amplitude=0.161,ratio=0.707,frequencyRatio=1.378) mc.setAttr("fractal1.amplitude", 0.161) mc.setAttr("fractal1.ratio",0.707) mc.setAttr("fractal1.frequencyRatio",1.378) placeTex2 = mc.shadingNode("place2dTexture", asUtility = True) mc.defaultNavigation(connectToExisting = True, source = placeTex2, destination = fracno2) mc.connectAttr(fracno2+".outColor",mixNode+".shader1") #normal map fileTex1 = mc.shadingNode("file", asTexture = True) colorFilePath1 = os.path.join(home,"ProgramMod&ShadFinal","finalpro","sourceimages","normal_snow.jpg") mc.setAttr(fileTex1+".fileTextureName",colorFilePath1,type = "string") placeTex3 = mc.shadingNode("place2dTexture", asUtility = True) mc.defaultNavigation(connectToExisting = True, source = placeTex3, destination = fileTex1) mc.connectAttr(fileTex1+".outColor",snowmat+".normalCamera") mc.select("snowplane") mc.hyperShade(assign = snowmat)