Unity3D:Lazy Dynamic Batching&为什么Instanced材料永远保持实例化

时间:2015-12-14 00:15:08

标签: unity3d material batching

我需要减少批量计数。 Unity的精彩功能“Dynamic Batching”正在杀死我:D 我的游戏包含许多较小的物体,当玩家互动时它们会不断变化。

  1. 即使我将所需数量的材料中的一个分配给对象,动态批处理也不能正常工作。游戏以批量计数“3”开始,81个对象使用相同的材​​料。如果我更改了一个对象,它会显示'4'批次的材料,这是正常的,因为有80(mat01)和1(mat02)。当我将另一个对象更改为mat02时,计数应保持为“4”对吗?但它不!它一直在增加,直到mat02成为多数,当所有内容都改为mat02时,批次计数达到'3'。你为什么要等人群Unity?
  2. 无论Unity的习惯如何,我决定在材质中使用一些lerp。然后明显的事情发生。如果我更改了对象材质的属性,则该材质将变为“mat01(instanced)”并永远实例化成本。如果我指定mat02,则显示“mat02(instanced)”。
  3. 感觉就像是一种惩罚。 “别碰我的材料..我会花你永远!”问题是什么?是的......我改变了那个材料。现在我指定一个全新的材料,你很难将这个可怜的家伙(gameobject)分配给同伴(批量)???

    我也读过动态批处理不能通过脚本修改。

    我会不断更新故事直到达到我想要的状态。伙计们请指出我在做错的地方。

    更新:  1. An Awesome explanation about coloring materials这个链接教会了我很好的东西,这些线条给我留下了更深刻的印象,“对材料的任何改变,例如设置材料的颜色,都会产生新的材质实例,因此该对象将不再但是使用顶点颜色可以改变对象的颜色,而不会破坏批处理。“我会尝试这个并更新。

    1. 我通过使用顶点着色解决了这个问题。性能看起来不错。我完成了我所需要的。

0 个答案:

没有答案