对于我们的一位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 (不幸的是)不是一个选项。
发布于 2012-04-03 22:34:40
1)双击hypershader中的psd文件节点
2)在psd文件路径下的属性编辑器中,您将看到一个名为"alpha to use“的选项。
3)打开显示为“默认”的下拉列表,然后选择"Alpha 1“或任何你在photoshop中使用的名称。
https://stackoverflow.com/questions/7610932
复制相似问题