使用 png 蒙版给 Material 两种不同的颜色
Giving a Material two different colors using a png Mask
我正在尝试将徽标放在我的对象上。我有一个 png 图像我想用作蒙版和两种颜色,一种用于徽标,一种用于背景。
到目前为止,我已经成功地为同一个子网格创建了两种材质,一种是透明图像,另一种是背景:
不过,徽标的颜色是不可更改的,因为它是显示的图像。
有没有办法将 png 用作蒙版,但更改使用的颜色?
我是否需要编写着色器,或者我在 material 检查器中遗漏了什么?
提前致谢:)
对同一个子网格使用两种材质是一个糟糕的主意,它的性能非常低,不像在同一个着色器中有两个通道。
您可以做的是创建一个接收两个纹理的新着色器:
- 一个纹理在徽标的 space 中只有 0,在其他地方为白色
- 另一个纹理在徽标中为白色,在其他像素中为 0
那么你将有两个颜色属性:
- 一个将与您的“背景”纹理相乘
- 另一个将与你的“Logo”纹理相乘
然后添加两个纹理并将它们分配给 Albedo 节点。
您可以使用混合蒙版执行同样的操作:
- 您将有一个遮罩贴图(基本上它是 Alpha 通道)并在除徽标像素所在的所有位置放置 0。
- 您还需要 2 个颜色属性。
然后使用 ShaderGraph 中的混合节点合并两个纹理。
使用混合遮罩,您不需要其他两个纹理,只需要遮罩,您可以在 ShaderGraph 中使用颜色属性创建贴图。
我正在尝试将徽标放在我的对象上。我有一个 png 图像我想用作蒙版和两种颜色,一种用于徽标,一种用于背景。
到目前为止,我已经成功地为同一个子网格创建了两种材质,一种是透明图像,另一种是背景:
不过,徽标的颜色是不可更改的,因为它是显示的图像。 有没有办法将 png 用作蒙版,但更改使用的颜色? 我是否需要编写着色器,或者我在 material 检查器中遗漏了什么?
提前致谢:)
对同一个子网格使用两种材质是一个糟糕的主意,它的性能非常低,不像在同一个着色器中有两个通道。 您可以做的是创建一个接收两个纹理的新着色器:
- 一个纹理在徽标的 space 中只有 0,在其他地方为白色
- 另一个纹理在徽标中为白色,在其他像素中为 0
那么你将有两个颜色属性:
- 一个将与您的“背景”纹理相乘
- 另一个将与你的“Logo”纹理相乘
然后添加两个纹理并将它们分配给 Albedo 节点。
您可以使用混合蒙版执行同样的操作:
- 您将有一个遮罩贴图(基本上它是 Alpha 通道)并在除徽标像素所在的所有位置放置 0。
- 您还需要 2 个颜色属性。
然后使用 ShaderGraph 中的混合节点合并两个纹理。 使用混合遮罩,您不需要其他两个纹理,只需要遮罩,您可以在 ShaderGraph 中使用颜色属性创建贴图。