【问题标题】:Make two layers in a material/on a Gameobject在材质/游戏对象上制作两层
【发布时间】:2021-04-15 19:52:43
【问题描述】:

我想知道是否有可能两个制作具有两层的材料。也就是说,前景中图像的所有内容都应该可见。然而,在它透明的地方,或者如果它没有填满整个平面/游戏对象,背景图像应该是可见的。

解决方法: 这包括将两种材质设置为两个平面,并将前景中的一种透明渲染,而将背景法线中的一种渲染。但是,Unity 向我显示以下警告:

我认为这是绩效成本。更不用说,我会将这个解决方案应用于我场景中的 40 个平面。

有没有办法为此创建子网格,或者我根本不应该使用这个解决方案?

可能的解决方案: 在搅拌机中添加为此解决方案创建网格。我认为这可能是解决方案。尽管如此,我更喜欢不同的解决方案,因为这会花费我很多工作

【问题讨论】:

  • 这个场景中的“背景图片”是什么?场景中的其他物体?还是这张图片中的橙色层?例如,如果灰色是透明的,您希望看到的到底是什么?
  • 在背景中应该有一种颜色(例如,绿色,红色,橙色,黑色)也就是说,它应该在同一水平/平面上
  • 我不是专家,所以我不能直接回答,但我已经看到你可以在哪里使用纹理中的多个通道 (RGBA) 编写自定义着色器,用单个通道做不同的事情图片。您可能可以制作一个自定义着色器,该着色器采用“背景颜色”,在 Alpha 通道为特定值的情况下被替换。 this 与我的意思类似。虽然我听说 Unity 中的着色器发生了变化;好久没试过了。
  • 你的意思是this
  • @ps2goat 你能告诉我如何在代码/.shader 文件中编写它吗? (我没有这方面的知识)

标签: unity3d render


【解决方案1】:

可以在以下位置找到此问题的答案: https://forum.unity.com/threads/make-two-layers-of-materials.1093474/#post-7042285

然而,cmets 中的答案同样有效,而且可能与更少的努力有关。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-10-09
    • 1970-01-01
    • 2021-03-10
    相关资源
    最近更新 更多