GPU优化
目的:优化顶点数量,减少计算复杂度2.压缩图片,减少显卡带宽压力
一.减少顶点数量
- 保持材质的数目尽可能少。这使得Unity更容易进行批处理。
- 使用纹理图集(一张大贴图里包含了很多子贴图)来代替一系列单独的小贴图。它们可以更快地被加载,具有很少的状态转换,而且批处理更友好。
- 如果使用了纹理图集和共享材质,使用Renderer.sharedMaterial 来代替Renderer.material 。
- 使用光照纹理(lightmap)而非实时灯光。(Shader)
- 使用LOD,好处就是对那些离得远,看不清的物体的细节可以忽略。
当物体距离摄像机比较近的时候使用高模。这是一种优化游戏渲染效率的常用方法,缺点是占用大量内存。使用这个技术,一般是在解决运行时流畅度的问题,采用的是空间换时间的方式。 - 遮挡剔除(Occlusion culling)
当一个物体被其他物体遮挡住而不在摄像机的可视范围内时不对其进行渲染。 - 使用mobile版的shader。因为简单。
二.压缩图片
- OpenGL ES 2.0使用ETC1格式压缩等等,在打包设置那里都有。
- 使用mipmap。
MipMap会占用内存,但是会优化显存带宽
Mipmap中每一个层级的小图都是主图的一个特定比例的缩小细节的复制品。因为存了主图和它的那些缩小的复制品,所以内存占用会比之前大
因为可以根据实际情况,选择适合的小图来渲染。所以,虽然会消耗一些内存,但是为了图片渲染的质量(比压缩要好),这种方式也是推荐的。