动态批处理

最終更新: 2026年10月20日

在Cubism 5 SDK for Unity R6或更高版本中,您可以启用自定义动态批处理功能来提高性能。

概述

由于绘制处理的特性,Cubism 5 SDK for Unity R5无法利用Unity的动态批处理或SRP Batcher。
Cubism 5 SDK for Unity R6或更高版本实装了批处理功能,可以在绘制时尽可能动态地对Drawable的Mesh顶点进行分组。
这可以减少对Drawable的绘制调用次数,从而提高性能。

使用方法

要么向任意Universal Render Data资产追加CubismRenderPassFeature,要么确认检查器中的Assets/Live2D/Cubism/Rendering/URP/CubismURPRenderer.asset。

接下来,启用Enable Batching。

动态批处理有效运行的条件

动态批处理要正常运行,必须满足一些条件。

物体特定条件

  • 该物体必须是Drawable。
    • 不支持离屏绘制。
  • 未应用蒙版。
  • 未使用Cubism 5.3中追加的混合模式。

它必须与之前绘制的Drawable对象处于相同的条件下

  • CubismRenderer.DrawMaterial(如果为null,则为CubismRenderer.Material)
  • CubismRenderer.MainTexture
  • CubismRenderer.DisplayedMultiplyColor
  • CubismRenderer.DisplayedScreenColor
  • CubismRenderController.CurrentFrameBuffer
    • 无论是否使用离屏绘制,实际的绘制目标必须与之前的Drawable相同。
  • CubismRenderController.Opacity

其他条件

  • 在绘制前一个物体和绘制当前物体之间,未使用绘制中断功能。
  • 批量处理对象的Drawable数量必须大于或等于BatchThreshold中设置的数量。
  • 当跨越多个模型时,这些模型必须共享同一个Grouped Sorting Index。
请问这篇文章对您有帮助吗?
是否
关于本报道,敬请提出您的意见及要求。