在 Unity 中 Combine Meshes Vs Instance Objects 的区别
In Unity Combine Meshes Vs Instance Objects the Difference
我非常需要优化我的一些 Unity 项目,而且我有很多来自 3DsMax 的对象,所以我想知道 合并网格 是否会有任何对 memory/performance 的影响,或者我应该将对象 实例留给彼此 ,因为这样可以节省一些 space.
这就产生了一个问题,即组合网格对象或实例对象之间的区别是什么,因为如果人们真正知道它们之间的区别和区别,它将节省大量内存和麻烦更好
期待关于两者的一些简要信息
谢谢
如果您有很多只在一个场景中出现一次或两次的独特资产,例如 3D FPS 中的独特建筑,而不是模拟城市风格游戏中的克隆房屋,则组合很有用。如果您的模型在一个场景中多次出现,那么使用 Unity(自动)会更高效 batch them, this is Unity's default behaviour. e.g lets say your scene is in an art gallery; if the gallery contains a dozen distinct sculptures then combine them. If it contains a dozen of the same sculpture don't bother, Unity will batch them for you.
但是,您应该谨慎使用 different materials,每个 material 都会增加抽奖次数。因此,如果您有 10 个相同型号但使用 5 个不同的 material,那将会很昂贵。解决这个问题的方法是使用带有单个 material 的纹理图集,每个模型都有不同的 UV 贴图。这意味着您有很多不同的模型,但由于单个 material 可以节省渲染时间。
此外,请注意透明着色器比不透明着色器昂贵得多,如果三个半透明对象彼此相邻,则至少需要 4 个渲染通道。
正如您可能知道的那样,这是一个复杂的主题,有很多变数(比我在这里描述的要多得多),最好使用分析器来判断。
以下是我在创建自然对性能至关重要的移动游戏时学到的一些一般经验法则:
- 尽可能少地使用 material
- 使用尽可能少的纹理,在 materials
之间共享纹理
- 尽可能多地回收模型。通常,以不同角度或不同 material 定向的模型对玩家来说可能看起来像是一个全新的模型,尤其是当他们的注意力在游戏的其他地方时
- 广泛使用LODS
- 确保您的模型是干净的,在导入之前删除所有不必要的顶点
- 导入后想想模型是否有任何可以用更少的顶点表示的地方
- 根据平台的不同,正确使用法线贴图可以带来回报。如果你可以用 1000 verts 换取 256 px 的法线贴图和 50 verts 那就去做吧,否则不要为了节省几个 verts 而打扰法线贴图
我创建了一个教程来解释绘图调用、静态批处理、光照贴图等
我非常需要优化我的一些 Unity 项目,而且我有很多来自 3DsMax 的对象,所以我想知道 合并网格 是否会有任何对 memory/performance 的影响,或者我应该将对象 实例留给彼此 ,因为这样可以节省一些 space.
这就产生了一个问题,即组合网格对象或实例对象之间的区别是什么,因为如果人们真正知道它们之间的区别和区别,它将节省大量内存和麻烦更好
期待关于两者的一些简要信息
谢谢
如果您有很多只在一个场景中出现一次或两次的独特资产,例如 3D FPS 中的独特建筑,而不是模拟城市风格游戏中的克隆房屋,则组合很有用。如果您的模型在一个场景中多次出现,那么使用 Unity(自动)会更高效 batch them, this is Unity's default behaviour. e.g lets say your scene is in an art gallery; if the gallery contains a dozen distinct sculptures then combine them. If it contains a dozen of the same sculpture don't bother, Unity will batch them for you.
但是,您应该谨慎使用 different materials,每个 material 都会增加抽奖次数。因此,如果您有 10 个相同型号但使用 5 个不同的 material,那将会很昂贵。解决这个问题的方法是使用带有单个 material 的纹理图集,每个模型都有不同的 UV 贴图。这意味着您有很多不同的模型,但由于单个 material 可以节省渲染时间。
此外,请注意透明着色器比不透明着色器昂贵得多,如果三个半透明对象彼此相邻,则至少需要 4 个渲染通道。
正如您可能知道的那样,这是一个复杂的主题,有很多变数(比我在这里描述的要多得多),最好使用分析器来判断。
以下是我在创建自然对性能至关重要的移动游戏时学到的一些一般经验法则:
- 尽可能少地使用 material
- 使用尽可能少的纹理,在 materials 之间共享纹理
- 尽可能多地回收模型。通常,以不同角度或不同 material 定向的模型对玩家来说可能看起来像是一个全新的模型,尤其是当他们的注意力在游戏的其他地方时
- 广泛使用LODS
- 确保您的模型是干净的,在导入之前删除所有不必要的顶点
- 导入后想想模型是否有任何可以用更少的顶点表示的地方
- 根据平台的不同,正确使用法线贴图可以带来回报。如果你可以用 1000 verts 换取 256 px 的法线贴图和 50 verts 那就去做吧,否则不要为了节省几个 verts 而打扰法线贴图
我创建了一个教程来解释绘图调用、静态批处理、光照贴图等