极品原创教程:透明occlusion的制作 - 翻翻原创,翻录教程发布区 - CGFRIE...

来源:百度文库 编辑:神马文学网 时间:2024/10/04 03:55:42

极品原创教程:透明occlusion的制作

极品原创教程:透明occlusion的制作
http://cgdfsd.5d6d.com/thread-364-1-1.html

附批量处理脚本:
/*                                           */
/*  Procedure Name : batchFGOCC.mel          */
/*  version:1.0                              */
/*  Author:CQ1516                            */
/*  http://www.cgdfsd.com                    */
/*  武汉东方时代                             */
/*                                           */
//note:目前版本仅对所有maya材质节点。不支持折射反射,不支持mr材质//


//如果存在基本材质节点cQ1516BaseSurfaceShader,那么删掉它,再创建一个。

if (`objExists cQ1516BaseSurfaceShader` == 1 )
   {
     lockNode -lock off cQ1516BaseSurfaceShader;
     delete cQ1516BaseSurfaceShader;
   }

string $NTSGName = createNoTransparencyShader();

//求得所有材质节点。
string $allMatName[] = `ls -mat`;
string $surfaceMatName[];
clear ($surfaceMatName);
int $i = 0;


//针对每一个材质节点进行循环处理。

for ($i=0 ; $i<(size($allMatName)) ; $i++)
{
  string $nt = eval("nodeType " + $allMatName[$i]);
   select -clear;
   //如果此材质结节有透明属性
   if (eval("attributeExists \"transparency\"" + $allMatName[$i]) && ($nt != "particleCloud"))
     {

         //如果透明属性上游无节点并且透明属性是黑色,那么赋于基本材质节点。
         float $tv[]= eval("getAttr "+$allMatName[$i]+".transparency");
         string $sdf =eval("connectionInfo -sfd " + $allMatName[$i]+".transparency");
          if ($sdf =="" && $tv[0]==0 && $tv[1]==0 && $tv[2]==0 )
          {
            eval("hyperShade -objects "+$allMatName[$i]);
            eval("sets -e -forceElement "+$NTSGName);
          }
         
          else
          {
           if ($sdf =="" )
             {
                string $MRName = crateMRShader(<<$tv[0],$tv[1],$tv[2]>>);
                eval("hyperShade -objects "+$allMatName[$i]);
                 eval("sets -e -forceElement "+$MRName);

             }

           if ($sdf !="" )
             {
               string $MRTexName = crateMRTexShader($sdf);
               eval("hyperShade -objects "+$allMatName[$i]);
               eval("sets -e -forceElement "+$MRTexName);
             }
          }

     }

        

}


//创建无透明的shader;

proc string createNoTransparencyShader()
{
  string $MROCC = `mrCreateCustomNode -asUtility "" mib_fg_occlusion`;
  string $surfaceNodeName = `shadingNode -asShader surfaceShader -n cQ1516BaseSurfaceShader`;
  eval("connectAttr -f " + $MROCC  + ".outValue " + $surfaceNodeName + ".outColor;");
  string $SGName = `sets -renderable true -noSurfaceShader true -empty`;
  eval("connectAttr -f " + $surfaceNodeName + ".outColor " + $SGName + ".surfaceShader");
  return $SGName;
}

//创建有透明的MRshader;
proc string crateMRShader(vector $tv)
{

  string $MROCC = `mrCreateCustomNode -asUtility "" mib_fg_occlusion`;
  string $MRtran = `mrCreateCustomNode -asUtility "" mib_transparency`;
  eval("setAttr " + $MRtran + ".transp " + $tv);
  eval("connectAttr -f " + $MROCC  + ".outValue " + $MRtran + ".input;");
  string $SGName = `sets -renderable true -noSurfaceShader true -empty`;
  eval("connectAttr -f " + $MRtran  + ".outValue " + $SGName + ".miMaterialShader");
  return $SGName;
}


//创建有透明纹理的MRshader;
proc string crateMRTexShader(string $tex)
{

  string $MROCC = `mrCreateCustomNode -asUtility "" mib_fg_occlusion`;
  string $MRtran = `mrCreateCustomNode -asUtility "" mib_transparency`;
  eval("connectAttr -f " + $tex + " " + $MRtran +".transp" );
  eval("connectAttr -f " + $MROCC  + ".outValue " + $MRtran + ".input;");
  string $SGName = `sets -renderable true -noSurfaceShader true -empty`;
  eval("connectAttr -f " + $MRtran  + ".outValue " + $SGName + ".miMaterialShader");
  return $SGName;
}

[ 本帖最后由 cq1516 于 2009-11-29 15:20 编辑 ]

附件

透明occlusion.jpg (302.48 KB)

2009-11-26 16:24

极品原创教程:透明occlusion的制作 - 翻翻原创,翻录教程发布区 - CGFRIE... 【极品引用】 PS图文教程原创:牡丹吟 - 【超哥家园】的日志 ps制作图文辅导教程﹝沧海原创﹞ ps制作图文辅导教程﹝沧海原创﹞ 天地无忧论坛 - 图像制作 - 【ps教程】【原创】超简单的给衣服加花纹1 【U5教程】U5制作翻页动画效果<原创> - 茶绿书香的日志 - 网易博客 PS图文教程原创——另一款漂亮的动态签名制作 PS图文教程原创------另一款漂亮的动态签名制作 --- 网易博客 【技术教程】幻影粒子+FLASH8制作仙剑奇缘动画(原创教程) Drop Box 使用教程(原创) Drop Box 使用教程(原创) Photoshop在线视频教程(入门篇一) - ━━╋透明FLASH原创网╋━━ 最新photoshop教程(2008完整版) - ━━╋透明FLASH原创网╋━━ 天地无忧论坛 - 图像制作 - 【PS教程】【原创】制作火焰字 PE系统 U盘启动 100%制作成功 原创教程|集成制作交流 加载外部.swf影片的视频播放器制作[原创][本文已收录教程库] - Flash互助课堂 ... AS入门教程第7课综合练习-拼图游戏的制作[原创][本文已收录教程库] - Flash互助... Dreamweaver网页制作教程:发布网站 网友原创教程:给PS新手的一些建议 关于在uga中快速制作流动效果闪图要点 于海建原创教程教程 iSee图片专家教程 -[原创]用ISEE制作水波流动图片!- [小小原创教程]----紫色拼布钱包制作 - Effie's handwork life ... iSee图片专家教程 -[原创]用ISEE制作水波流动图片2 制作贺卡的教程