Maya教程之如何在Maya.env里设置shader_p的路径
凌雪 2018-07-30 来源 :网络 阅读 1932 评论 0

摘要:本文将带你了解Maya教程之如何在Maya.env里设置shader_p的路径,希望本文对大家学Maya有所帮助

本文将带你了解Maya教程之如何在Maya.env里设置shader_p的路径,希望本文对大家学Maya有所帮助


目的:
      把shader_p的dll,mel,mi和maya所在路径分离,不影响maya目录下的目录结构,便于开发时的更改和调试。(当你shader开发完成后,再决定合并到maya目录里也不迟)
     
     
    环境:
    maya2009 ,windowsXP x32
    依赖库:openEXR1.6.1 (vc2005.windowsXP.x32下的库官方没有,我编译后共享出来,在这里
    )
     
     
    具体步骤:
    1.假设
    shader_p的根目录为:
    E:/dev/nVidia/mentalimage/OpenProjects/shaders_p/trunk/shaders_p_3.3,
     
    openEXR1.6.1的dll目录:
    E:/dev/tools/openexr/1.6.1/Deploy/bin/Release
     
     
    2.为Maya.env添加如下内容:
    [cpp] view plain copy   print?//shaders_p  SHADERSP_ROOT = E:/dev/nVidia/mentalimage/OpenProjects/shaders_p/trunk/shaders_p_3.3  SHADERSP_AE   = $SHADERSP_ROOT/AE  SHADERSP_ATTR_PRESETS = $SHADERSP_ROOT/attrPresets/p_MegaTK  SHADERSP_DEPENDENCE_DLL = E:/dev/tools/openexr/1.6.1/Deploy/bin/Release  SHADERSP_PLUG = $SHADERSP_ROOT/Release_Maya2009  SHADERSP_MI   = $SHADERSP_ROOT/mi/Maya  SHADERSP_MEL  = $SHADERSP_ROOT/AE; $SHADERSP_ATTR_PRESETS; $SHADERSP_ROOT/mel_override/2009;  SHADERSP_ICON = $SHADERSP_ROOT/icons  //env  PATH = $SHADERSP_DEPENDENCE_DLL; $SHADERSP_PLUG; $PATH;  MAYA_SCRIPT_PATH = $SHADERSP_MEL;  //MAYA_PLUG_IN_PATH = ;  XBMLANGPATH = $SHADERSP_ICON;  MI_CUSTOM_SHADER_PATH = $SHADERSP_MI;  MI_LIBRARY_PATH = $SHADERSP_PLUG;  //shaders_p
    SHADERSP_ROOT =   E:/dev/nVidia/mentalimage/OpenProjects/shaders_p/trunk/shaders_p_3.3
    SHADERSP_AE   =   $SHADERSP_ROOT/AE
    SHADERSP_ATTR_PRESETS = $SHADERSP_ROOT/attrPresets/p_MegaTK
    SHADERSP_DEPENDENCE_DLL =   E:/dev/tools/openexr/1.6.1/Deploy/bin/Release
    SHADERSP_PLUG = $SHADERSP_ROOT/Release_Maya2009
    SHADERSP_MI   =   $SHADERSP_ROOT/mi/Maya
    SHADERSP_MEL  = $SHADERSP_ROOT/AE;   $SHADERSP_ATTR_PRESETS; $SHADERSP_ROOT/mel_override/2009;
    SHADERSP_ICON = $SHADERSP_ROOT/icons
    //env
    PATH = $SHADERSP_DEPENDENCE_DLL; $SHADERSP_PLUG; $PATH;
    MAYA_SCRIPT_PATH = $SHADERSP_MEL;
    //MAYA_PLUG_IN_PATH = ;
    XBMLANGPATH = $SHADERSP_ICON;
    MI_CUSTOM_SHADER_PATH = $SHADERSP_MI;
    MI_LIBRARY_PATH = $SHADERSP_PLUG;
     
    NOTE:
   
   
   
    MI_LIBRARY_PATH
    中如果在 $SHADERSP_PLUG
    之前又加入一些路径,则渲染时
    script editor提示:(注意:在PATH等变量里不要带空格,可能解决这个问题。 - 2010-06-07)
    [c-sharp] view plain copy   print?// Warning: (Mayatomr.Custom) : E:/dev/nVidia/mentalimage/OpenProjects/shaders_p/trunk/shaders_p_3.3/mi/Maya/shaders_p.mi: no shader library specified nor found in search path, expect manual loading  //  //   Warning: (Mayatomr.Custom) :   E:/dev/nVidia/mentalimage/OpenProjects/shaders_p/trunk/shaders_p_3.3/mi/Maya/shaders_p.mi:   no shader library specified nor found in search path, expect manual   loading
    //
     
    同时,output window提示:
    [c-sharp] view plain copy   print?API  0.0  error  301031: call to undeclared function "p_HairTK"  API  0.0  error  301036: while defining material "p_HairTK1SG": undefined shader "p_HairTK1"  API  0.0  error  301031: call to undeclared function "p_irradiance"  API  0.0  error  301036: while defining material "p_irradiance1SG": undefined shader "p_irradiance1"  API  0.0    error  301031: call to   undeclared function "p_HairTK"
    API  0.0  error    301036: while defining material "p_HairTK1SG": undefined   shader "p_HairTK1"
    API  0.0  error    301031: call to undeclared function "p_irradiance"
    API  0.0  error    301036: while defining material "p_irradiance1SG": undefined   shader "p_irradiance1"
   
    (p_HairTK,p_irradiance是场景中用到的shader_p里的shader名称。)
    这很奇怪。我花了好长时间才查出这个问题。
    所以,一个笨拙的办法就是:既然要用的dll在$SHADERSP_PLUG
    目录下,那么就让MI_LIBRARY_PATH = $SHADERSP_PLUG;
    不要在MI_LIBRARY_PATH
    再包含其他路径。
    (需要注意的是shader_p把mi文件和dll文件放在不同的目录下了)
     
     
     
    但现在出现另一个问题,如果我还有一套shader,假设是S
    ,也不想放到maya根目录下(原因和shader_p类似),那么Maya.evn中会有:
    MI_LIBRARY_PATH = $SHADERSP_PLUG; {S.dll
    所在路径};
   
    这似乎会出错。
     
    所以,可以在maya.env中删去MI_LIBRARY_PATH
    ,同时把每一套shader的mi和dll文件放在同一目录下:
    shader_p.dll 和 shader_p.mi放在一个目录下,S.dll
    和 S.mi
    在另一目录下(假设是$S_MI
    )。
    这时,maya.env里的MI_CUSTOM_SHADER_PATH = $SHADERSP_MI;$S_MI;
   
   
   
     
         

本文由职坐标整理并发布,希望对同学们有所帮助。了解更多详情请关注职坐标移动开发之Maya频道!

本文由 @凌雪 发布于职坐标。未经许可,禁止转载。
喜欢 | 0 不喜欢 | 0
看完这篇文章有何感觉?已经有0人表态,0%的人喜欢 快给朋友分享吧~
评论(0)
后参与评论

您输入的评论内容中包含违禁敏感词

我知道了

助您圆梦职场 匹配合适岗位
验证码手机号,获得海同独家IT培训资料
选择就业方向:
人工智能物联网
大数据开发/分析
人工智能Python
Java全栈开发
WEB前端+H5

请输入正确的手机号码

请输入正确的验证码

获取验证码

您今天的短信下发次数太多了,明天再试试吧!

提交

我们会在第一时间安排职业规划师联系您!

您也可以联系我们的职业规划师咨询:

小职老师的微信号:z_zhizuobiao
小职老师的微信号:z_zhizuobiao

版权所有 职坐标-一站式IT培训就业服务领导者 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
 沪公网安备 31011502005948号    

©2015 www.zhizuobiao.com All Rights Reserved

208小时内训课程