码迷,mamicode.com
首页 > 其他好文 > 详细

maya命令的运用。范例1。#举一反三

时间:2019-01-10 20:25:46      阅读:167      评论:0      收藏:0      [点我收藏+]

标签:平行光   颜色   ext   key   node   sample   cti   aci   摄像机   

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)

 

maya命令的运用。范例1。#举一反三

标签:平行光   颜色   ext   key   node   sample   cti   aci   摄像机   

原文地址:https://www.cnblogs.com/3lina/p/10238726.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!