Cubism SDK‎ > ‎多平台开发‎ > ‎Unity‎ > ‎Cs版‎ > ‎

关于 drawcall 值


drawcall 值的增加有两个原因。

  第一,由模型的绘制方法引起。
  每切换一次贴图,drawcall 值就会加1。
        Live2D 模型各部件的绘制,是从底层开始按顺序进行的。
        所以,对于先后绘制的两个部分,但它们贴图不同的时候,无法控制 drawcall 值。
        这样的切换过多,将会导致 drawcall 值增大。
        对此的解决方法:可以把所有贴图汇总在一张,这样就不再相互切换,也就能限制 drawcall 值的增加。

        第二点,Scene 视图中可能配置了多个 Camera。
        SDK 中是从 OnRenderObject() 调用的绘制语句。
        OnRenderObject 函数是在 Camera 渲染之后被调用的,调用次数将根据 Camera 个数增加。
        所以 drawcall 值会因 OnRenderObject 的多次调用而膨大。
  对此的解决方法有两个。
        第一个方法,把绘图模式改为默认,对模型建立图层,设置 Culling Mask (消隐遮罩)。
     绘图模式的切换和图层的设置方法请参照上文。
        请用模型的 Layer 值设置 Culling Mask 。
       
        第二个方法,在 OnPostRender() 函数(和 OnRenderObject() 几乎同时被调用)中绘图。
        与 OnRenderObject() 不同,OnPostRender() 是重载函数,只能从 Camera 的脚本中调用。
        把写有函数代码的脚本绑定在要绘制模型的 Camera 上,进行绘制。
        使用此方法,Unity Editor 的 Scene 视图也不再显示。


コメント