Maya中多通道信息的导出

在MAYA中要获得通道信息,必须先连接到shader node上,也就是编辑环境中的材质球这个概念。
然后通过findPlug这个接口去访问color这个属性,一般这里放的是diffuse map,具体可以参考SDK里的fileFindTextures例子。
但是很奇怪的是,SDK里的例子没有介绍如何访问其他通道的方法,而且一些开源的插件也仅仅导出一层图。

那么,先看一下diffuse map导出的过程:
在访问到color属性后,SDK的例子是通过调用MItDependencyGraph得到对应的MFnDependencyNode,
然后询问ftn属性取得结点所包含的纹理名称。
我们不妨从现有的基础上出发,做一下尝试。

Test1:
用shaderNode作为根结点构造MItDependencyGraph,遍立整个Graph,输出每个结点包含的纹理信息。
Result:
所有被使用的材质信息都可以导出,但是具体是属于哪个通道是无法确定的。

Test2:
还是使用findPlug这个接口,但是需要填入attribute,其他通道的attribute都是些什么呢?
window->General  Editors->Connection Editor...
load之后会显示任何选种物体的可连接对象,所以,我们需要的attribute就全在这里了。
原来bump channel用的是normalCamera,谁会猜得到呢。。
接下来的步骤就和导diffuse map一样了,而且同时还可以知道对应的通道 :)

Maya的文档中缺少FAQ,而且例子代码也很久没更新。使得开发人员在碰到问题时感到束手无策。
这点Max做的还行,Discreet提供了一个专门的BBS,并且在SDK中还有帮助文档。
实在找不到文档的时候,可以试着学习一下工具的使用流程,或许可以从中得到一点启发。

posted on 2006-08-11 23:59  chaz  阅读(1400)  评论(0编辑  收藏  举报