Photoshop psd 文件在 Maya Cg 着色器中丢失 Alpha 通道

发布于 2024-12-07 23:44:28 字数 491 浏览 0 评论 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;

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

注意:(不幸的是)不能将所有纹理转换为 TGA。

For one of our 3D artists I've ported and extended a shader from Unity3D to Maya. The shader in Unity3D uses PSD files as input for textures and makes use of the alpha channel of one of the textures as a heightmap.

In Maya it seems as if the alpha channel is lost, because it's always 1. We tested this with PSD and PNG files. However, when using a TGA file, the heightmap could be used as intended and the shader functioned correctly.

Below some Cg code to illustrate what I mean:

float4 bottomColor = tex2D(RGBA_Texture2, IN.TexCoord.xy);
float4 height = float4(1.0f) - bottomColor.aaaa;

In the above code, bottomColor.aaaa is always (1.0, 1.0, 1.0, 1.0) when using a PSD texture, but not when using a TGA texture.

Note: Converting all textures to TGA is (unfortunately) NOT an option.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

霓裳挽歌倾城醉 2024-12-14 23:44:28

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

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

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

1) Double click the psd file node in the hypershader

2) In the attribute editor below the path to the psd file you will see an option called "alpha to use".

3) Open the dropdown where it says "default" and choose "Alpha 1" or what ever you called it in photoshop.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文