为什么Unity Terrain的草不合批,为什么顶点动画会有莫名其妙的抖动

    最近在写草的顶点动画时,发现一个很诡异的问题,在相机上下移动的时候,草会不由自主的抖动一下,而在Scene视角,居然看的好好的.百度了一圈,没有找到合适的答案,然后看了一下UnityTerrain Grass的shader  发现他写了这么一句话 "DisableBatching" = "True" 哦 原来Unity自己的草也是禁止合批的.

   那为什么官方也会禁止合批呢,查阅官方文档,得到以下内容:

DisableBatching tag

Some shaders (mostly ones that do object-space vertex deformations) do not work when Draw Call Batching is used – that’s because batching transforms all geometry into world space, so “object space” is lost.

DisableBatching tag can be used to indicate that. There are three possible values: “True” (always disables batching for this shader), “False” (does not disable batching; this is default) and “LODFading” (disable batching when LOD fading is active; mostly used on trees).

来源:https://docs.unity3d.com/Manual/SL-SubShaderTags.html

DisableBatching tag 禁用批处理
当使用绘制调用批处理 Draw Call Batching 时,一些 shaders(主要是做对象空间顶点变形的shader)不工作 - 这是因为批处理将所有几何转换为世界空间,因此“对象空间”丢失。

DisableBatching标签可以用来消除这个问题。 有三个可能的值:
“True”(始终禁用此着色器的批处理)
“False”(不禁用批处理;这是默认值)
“LODFading”(当LOD衰减活动时禁用批处理;主要用于树)。
 

 

你可能感兴趣的:(Unity3D)