【发布时间】:2020-08-11 22:54:59
【问题描述】:
我有一个 png 图像,我想将其用作透明蒙版,它将在场景中完全透明,但不会显示其后面的 3D 对象(类似于精灵蒙版,但需要使用 3D 对象)。
所以我在我的 3D 场景中将图像添加为精灵(点 - 无滤镜),并且我已经将着色器应用于精灵材质,但它无法正常工作。看起来像素在边框中没有被“正确切割”。
我正在使用这种方法,因为统一内置的“2D 精灵蒙版”仅影响使用 Sprite Renderer 的对象(如此处所述 https://docs.unity3d.com/Manual/class-SpriteMask.html),但我希望它影响 3D 对象。
这就是着色器:
Shader "Masked/Mask" {
SubShader {
Tags {"Queue" = "Geometry+10" }
ColorMask 0
ZWrite On
Pass {}
}
}
这是用作遮罩的精灵(png 图像): sprite mask
这些是我想要的结果与我得到的结果: results compared
我不擅长着色器,所以我想知道是否可以对代码进行更改以改善结果。我已经为精灵图像尝试了不同的格式(png、tif、压缩),但结果是一样的。
【问题讨论】:
-
这是一个可能对您有帮助的资源。 docs.unity3d.com/Manual/class-SpriteRenderer.html 查看 Mask 交互部分。
-
蒙版交互部分是关于使用预先构建的“精灵蒙版”,它只影响使用 Sprite Renderer 的对象,而不影响 3d 对象。