zoukankan      html  css  js  c++  java
  • maya命令的运用。范例1。#举一反三

    1)创建一个平面Plane,Width和Height各45。

    2)创建一个球Sphere,Radius为1.5,TranslateY为1.5,TranslateZ为10。

    3)创建一个平行光DirLi1,RotateXYZ为-85,-35,50。ScaleXYZ为3。Use Depth Map Shadows开启。

    4)创建一个摄像机Cam1,TranslateXYZ为0,8,25。RotateX为-26

    5)创建一个blinn材质球,命名为shd_P,赋予给Plane。

      创建Checker棋盘格纹理,outColor连接到sha_P的color。

      创建place2dTexture节点,outUV连接到Checker的UvCoord。

    6)创建一个lambert材质球,命名为sha_S,改Color值为1,0,0。然后赋予给Sphere。

      创建两个ramp节点。名为Ramp1Ramp2

      创建两个multiplyDivide节点。命名为Mult1,Mult2

      创建一个samplerInfo节点,命名为SamInf,把SamInf的FacingRatio连接到ramp1的V Coord上。

      把lambert1的outColor连到ramp2的V Coord上。

      ramp1和ramp2的outColor分别连到Mult1的Input1和Input2上。

      Mult1的Output连到Mult2的Input1。改Input2的值为1,0,1。

      把Mult2的Output连接到sha_S的AmbientColor上。

    7)开启默认渲染器的光线追踪。(defaultRenderQuality.enableRaytracing" 1)

    8)在渲染面板中选择Cam,点击渲染吧。

    import maya.cmds as cmds
    Plane = cmds.polyPlane(n='Plane', w=45, h=45)
    
    Sphere = cmds.polySphere(n='Sphere', r=1.5)
    cmds.xform(Sphere,translation=[0,1.5,10])
    
    dirLi = cmds.directionalLight(n='DirLi1',rotation=(-85,-35,50))
    
    #这里得到的是shape节点。不知道怎么得到灯光的transform节点。
    cmds.setAttr('DirLi1.scaleX',3)
    cmds.setAttr('DirLi1.scaleY',3)
    cmds.setAttr('DirLi1.scaleZ',3)
    cmds.setAttr(dirLi+'.useDepthMapShadows',1)
    
    Cam = cmds.camera(n='Cam1')
    cmds.xform(Cam, translation=[0,8,25], rotation=[-26,0,0])
    
    #creat shader and SG node.先写节点类型。再写asShader。
    sha_P = cmds.shadingNode('blinn', asShader=True, n='shd_p_blinn')
    sha_P_SG = cmds.sets(renderable=True, noSurfaceShader=True, empty=True, name=sha_P+'_SG')
    cmds.connectAttr(sha_P+'.outColor', sha_P_SG+'.surfaceShader')
    #把面片添加到shader的SG集中
    cmds.select(Plane)
    cmds.sets(edit=True, forceElement=sha_P_SG)
    #creat checker texture and place2dTexture.
    CK = cmds.shadingNode('checker', asTexture=True, n=sha_P+'_checker')
    CK_2d = cmds.shadingNode('place2dTexture', asUtility=True, n=sha_P+'_place2dTexture')
    cmds.connectAttr(CK_2d+'.outUV', CK+'.uvCoord' )
    cmds.connectAttr(CK_2d+'.outUvFilterSize', CK+'.uvFilterSize' )
    cmds.setAttr(CK_2d+'.repeatU',4)
    cmds.setAttr(CK_2d+'.repeatV',4)
    #把棋盘格连到材质的颜色上。
    cmds.connectAttr(CK+'.outColor', sha_P+'.color')
    
    
    #creat lambert
    sha_S = cmds.shadingNode('lambert', asShader=True, n='shd_S_lambert',)
    sha_S_SG = cmds.sets(renderable=True, noSurfaceShader=True, empty=True, name=sha_S+'_SG')
    cmds.connectAttr(sha_S+'.outColor', sha_S_SG+'.surfaceShader', force=True)
    cmds.setAttr(sha_S+'.color', 1.0, 0.0, 0.0, type= 'double3')
    cmds.select(Sphere)
    cmds.sets(edit=True, forceElement=sha_S_SG)
    #add ambientColor.
    Ramp1 = cmds.shadingNode('ramp', asTexture=True, n=sha_S+'_Ramp1')
    Ramp1_2d = cmds.shadingNode('place2dTexture', asUtility=True, n=Ramp1+'_place2dTexture')
    cmds.connectAttr(Ramp1_2d+'.outUV', Ramp1+'.uv')
    cmds.connectAttr(Ramp1_2d+'.outUvFilterSize', Ramp1+'.uvFilterSize')
    
    Ramp2 = cmds.shadingNode('ramp', asTexture=True, n=sha_S+'_Ramp2')
    Ramp2_2d = cmds.shadingNode('place2dTexture', asUtility=True, n=Ramp2+'_place2dTexture')
    cmds.connectAttr(Ramp2_2d+'.outUV', Ramp2+'.uv')
    cmds.connectAttr(Ramp2_2d+'.outUvFilterSize', Ramp2+'.uvFilterSize')
    
    Mult1 = cmds.shadingNode('multiplyDivide', asUtility=True, n=sha_S+'_Mult1')
    Mult2 = cmds.shadingNode('multiplyDivide', asUtility=True, n=sha_S+'_Mult2')
    
    SamInf = cmds.shadingNode('samplerInfo', asUtility=True, n=sha_S+'_SamInf')
    
    cmds.connectAttr(SamInf+'.facingRatio', Ramp1+'.uvCoord.vCoord', force=True)
    cmds.connectAttr('lambert1.outColor.outColorR', Ramp2+'.uvCoord.vCoord', force=True)
    cmds.connectAttr(Ramp1+'.outColor', Mult1+'.input1')
    cmds.connectAttr(Ramp2+'.outColor', Mult1+'.input2')
    cmds.connectAttr(Mult1+'.output', Mult2+'.input1')
    cmds.setAttr(Mult2+'.input2Y',0)
    cmds.connectAttr(Mult2+'.output',sha_S+'.ambientColor')
    
    #打开反射。
    #keyword can't be an expression.这里要注意。
    cmds.setAttr('defaultRenderQuality.enableRaytracing',1)
  • 相关阅读:
    (转载)机器学习方法的PPT
    算法的力量(转李开复)
    CNKI免费帐号
    图像增强(二)
    初始化 Microsoft Visual SourceSafe 源代码管理提供程序时失败。您无法使用此提供程序执行源代码管理操作。”
    2012年"浪潮杯"山东省第三届ACM大学生程序设计竞赛 Fruit Ninja I
    hdu 3607 Traversal
    zoj 3686 A Simple Tree Problem
    hdu 3727 Jewel
    hdu 4366 Successor
  • 原文地址:https://www.cnblogs.com/3lina/p/10238726.html
Copyright © 2011-2022 走看看