对于我们的3D艺术家之一,我已将Unity3D中的着色器移植并扩展到Maya。 Unity3D中的着色器使用PSD文件作为纹理的输入,并使用其中一个纹理的alpha通道作为高度图。
在Maya中,似乎alpha通道丢失了,因为它始终是1.我们使用PSD和PNG文件对此进行了测试。但是,使用TGA文件时,可以按预期使用高度图,并且着色器功能正常。
下面是一些Cg代码来说明我的意思:
float4 bottomColor = tex2D(RGBA_Texture2, IN.TexCoord.xy);
float4 height = float4(1.0f) - bottomColor.aaaa;
在上面的代码中,使用PSD纹理时,bottomColor.aaaa始终为(1.0,1.0,1.0,1.0),但在使用TGA纹理时则不然。
注意:(遗憾的是)将所有纹理转换为TGA不是一种选择。
答案 0 :(得分:1)
1)双击hypershader中的psd文件节点
2)在psd文件路径下方的属性编辑器中,您将看到一个名为“alpha to use”的选项。
3)打开显示“默认”的下拉列表,然后选择“Alpha 1”或者你在photoshop中调用的内容。