2

我的游戏中总共有 12 种材质。然后我有各种 Gameobjects,它们附加了许多材质,例如 Gameobject1 还有 10 个 Childrens,每个 Childs 使用 2 个相同的 Materials。现在使用 Gameobject1,我有 20 个要减少的绘制调用我在 unity3d 中打开 Dynamic Batching 并将 CombineChildren.js 附加到 GameObject1 但结果仍然相同。我有 20 个绘制调用,但我想将其减少到 2 个绘制调用,因为我在 Gameobject1 中重复使用了两种材质。我哪里错了?

任何帮助将不胜感激

4

2 回答 2

0

(1) 使用 Occlusion 仅渲染场景中您的相机正在查看的内容。遮挡是减少绘图调用的一种非常有效的方法。

遮挡剔除

(2) 对物体使用相同的材​​料。

(3) 你可以对你的场景进行光照贴图。然后使用此工具将所有光照贴图压缩成一张大贴图。 在详细解释中找到的工具here

场景优化

如果您使用所有这三种方法,您的绘图调用将大大减少,而不会影响功能的图形质量。

于 2013-11-14T13:20:40.697 回答
0

在我的例子中,我能够通过将 childs 游戏对象的所有网格与unity3D附带的 CombineMeshUtility.js 组合成一个网格来解决这个问题。所以父游戏对象(Empty Gameobject)现在有 1 个游戏对象,它是所有孩子的网格,然后它有其他没有任何渲染器或材质的子游戏对象。我希望这很清楚

于 2013-11-22T21:24:24.347 回答