0

对于我们的一位 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;

在上面的代码中,bottomColor.aaaa 在使用 PSD 纹理时始终为 (1.0, 1.0, 1.0, 1.0),但在使用 TGA 纹理时则不是。

注意:将所有纹理转换为 TGA(不幸的是)不是一种选择。

4

1 回答 1

1

1)双击hypershader中的psd文件节点

2)在psd文件路径下方的属性编辑器中,您将看到一个名为“alpha to use”的选项。

3) 打开显示“默认”的下拉菜单,然后选择“Alpha 1”或您在 Photoshop 中调用的任何名称。

于 2012-04-03T14:34:40.303 回答