【问题标题】:Unity: Hide material in specific areaunity:隐藏特定区域的材质
【发布时间】:2020-02-05 15:43:28
【问题描述】:

我正在为 ios 和 Android 制作一个 3D 应用程序。

下图中的每个对象都具有与其他对象不同的材质。

我想让对象 3 与对象 2 相交的部分出现,而与对象 1 相交的部分消失。

注意事项:

对象 3 上下移动。

这 3 个物体与相机的深度相同(相同的 z)。

【问题讨论】:

  • “对象 x 的一部分”是什么意思?几何学 ?子对象?
  • 每个对象都没有子对象。我认为是几何学
  • 可能使用模板缓冲区或着色器,
  • 您是否有与我正在搜索的内容相似的示例?
  • 您使用的是 Sprite 还是 3D 模型?使用 Sprites 时,请查看 SpriteMasks

标签: unity3d shader shaderlab


【解决方案1】:

您必须使用 Cg/HLSL 在 Unity 的 ShaderLab 中编写自己的着色器并使用模板缓冲区。 Unity's manual 为您提供基础知识,同时可以在 here 找到很好的实用介绍。

简而言之,模板允许您根据其他着色器通道的参考值启用/禁用剪辑空间中的渲染。需要注意的是,这些值是全局的,所有着色器都可以在缓冲区中读取和写入,因此您应该谨慎选择参考值。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-09-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多