2

我正在使用 Shader Graph 创建我的第一个着色器,当我使用我创建的 Shader/Material 在场景中有多个对象时,我看到顶点位置出现奇怪的行为。

看起来 Unity 正在对对象进行批处理,尚不确定是什么意思,但看起来我必须停用批处理,以便我的着色器上的顶点位置保持相对于对象而不是对象。

一些没有解决方案的开放线程:

长话短说:如何添加标签,特别是DisableBatching使用 Shader Graph 创建的着色器中的标签?

4

1 回答 1

0

这不能回答您的问题,但我最终做了d2clon 在您发布的论坛帖子中所做的事情,即通过您添加到对象的脚本在运行时复制材料。

我将其发布为答案,以便人们可以尝试(对我而言)有用的东西,而无需阅读您发布的所有主题。我也想知道如何自己禁用批处理标志,但这就足够了。

public class MaterialDuplicator : MonoBehaviour
{
  void Awake()
  {
    Renderer renderer = gameObject.GetComponent<Renderer>();
    renderer.material = new Material(renderer.material);
  }
}
于 2021-11-07T11:41:17.180 回答