前段时间做了一个视频,画面中的一些logo,采用了贴图加透明通道的方式来建立。在使用Mentalray渲染的时候出现了一些问题。
问题一:透明部分显示背景
透明部分显示背景,把背景上原本隐藏的环境渲染了出来,仿佛产生了反射效果,如下图所示。背景上我采用了一个环境球,并让它可以反射但渲染不可见。但是如果用maya的software
渲染是正常的。
解决方法
在物体的形状节点上,关掉mental ray一栏中的Transmit
Transparency属性。这样在mentalray渲染的时候,在透明的物体背后的物体将不可见。在maya的帮助文档里这样解释的,“Transmit
Transparency:Uncheck this option so that the object is not be
visible if behind a transparent object.”
问题二:透明通道贴图失效
当材质上用一张黑白图像做透明贴图时,mentalray渲染的时候没有透明效果。如下图所示
解决方法
将透明贴图节点和材质节点间的连接,由outTransparency到transparency,改为从outColor到transparency的连接,并将图片的颜色翻转,如下所示图。 
分析一下,产生问题的原因是在直接将file拖动到材质的transparency属性的时候,maya自动建立了outTransparency到transparency的连接。而贴图本身是一张黑白的jpg图片,并没有Alpha通道来定义transparency属性,这样mentalray就不可能得到正确的透明。所以改为outColor到transparency属性。
为什么不是黑透白不透
为什么不直接采用图片的颜色,产生黑透白不透的效果,还要将颜色翻转呢?因为在maya的材质中采用的transparency属性,是指的“透明度”,而在photoshop等软件中采用的是opacity指的是“不透明度”,正好是相反的,所以要翻转一下。
也就是说,在file节点输出的“alpha”和“outTransparency”两个属性恰恰是相反的,为了方便大家的习惯,maya自动将“alpha”翻转,生成“outTransparency”属性。
在一般的情况下,采用贴图的alpha通道来定义材质的透明,在连接到材质时,maya自动采用的是“outTransparency”和“transparency”属性间的连接,这样就避免了“透明度”和“不透明度”间的转换的麻烦。这样就保持我们平常的“黑透白不透”的习惯,所以我们并没有感觉到其中的差异。
但是这次,用颜色来控制透明,在mentalray看来,file节点并没有提供正确的“outTransparency”属性,所以现在必须手动去将颜色翻转,才能得到正确的“透明度”。
这一点转来转去有点纠结,希望在这里能把这个中间的问题讲清楚 。
再给高光颜色上贴图
最后再将黑白图像复制一张,取消翻转,将图像贴到高光颜色(specularColor)属性上。效果如下图所示。
|