Unity3d 场景大小和drawcall优化
2015-05-09 15:49
423 查看
在unity3d开发中,为了降低场景的运行消耗,通常要利用Unity3d的静态合批和动态合批。因为动态合批要求的条件比较苛刻。所以大部分用的都是静态核批。
利用静态核批就需要尽量的合并场景的贴图,用相同的材质。并把场景物件设置成静态的。这样unity在运行的时候就会自动进行合批,从而降低drawcall。
这样的静态设置在打包的时候就有问题了。因为当你把预设设置成静态之后,在打包的时候是不会进行去重打包的。也就是同样的两个预设只要设置成静态的,就会被打成两份,最终占用两份的包空间。这在游戏项目的空间浪费是很客观的。因为目前游戏的关卡基本都是分章节的。每章用的基本都是一样的模型,只是位置不同。
如果不设置成静态,drawcall又会很多。为了两者都兼备,这里可以利用unity提供的一个api。在打包的时候所以的场景预设都取消静态设置,在运行的时候调用StaticBatchingUtility.Combine(gameObject);gameobject就是场景预设。这样就可以进行静态合批,无论你有没有设置预设为静态。这样就既减少了drawcall又节省了包体空间。
利用静态核批就需要尽量的合并场景的贴图,用相同的材质。并把场景物件设置成静态的。这样unity在运行的时候就会自动进行合批,从而降低drawcall。
这样的静态设置在打包的时候就有问题了。因为当你把预设设置成静态之后,在打包的时候是不会进行去重打包的。也就是同样的两个预设只要设置成静态的,就会被打成两份,最终占用两份的包空间。这在游戏项目的空间浪费是很客观的。因为目前游戏的关卡基本都是分章节的。每章用的基本都是一样的模型,只是位置不同。
如果不设置成静态,drawcall又会很多。为了两者都兼备,这里可以利用unity提供的一个api。在打包的时候所以的场景预设都取消静态设置,在运行的时候调用StaticBatchingUtility.Combine(gameObject);gameobject就是场景预设。这样就可以进行静态合批,无论你有没有设置预设为静态。这样就既减少了drawcall又节省了包体空间。
相关文章推荐
- unity项目优化--绘制调用批处理unity3d Draw Call Batching
- Unity3D - 性能优化之Draw Call
- Unity3D性能优化之Draw Call Batching
- Unity3d特效DrawCall优化介绍
- 各种 基于Unity3d 引擎的Android游戏优化 (drawcall)
- Unity3D - 性能优化之Draw Call
- 【转】 各种 基于Unity3d 引擎的Android游戏优化 (drawcall)
- Unity3D性能优化之Draw Call Batching
- Unity3D优化之Draw Call Batching
- 【风宇冲】Unity3D性能优化:DrawCall优化
- Unity3D性能优化:DrawCall优化
- Unity3d特效DrawCall优化介绍
- Unity3D中UGUI及3D模型渲染的DrawCall优化
- (转)Unity3D - 性能优化之Draw Call
- Unity3D优化之Draw Call Batching
- Unity3D性能优化:DrawCall优化
- Unity3D游戏游戏化之DrawCall优化过程分析详解
- Unity3D游戏游戏化之DrawCall优化过程分析详解
- draw call 理解和优化
- Unity3d开发(十一)编辑器DrawCall参数解析