项目优化之——加载
来源:互联网 发布:海淘用哪个软件 编辑:程序博客网 时间:2024/04/19 08:25
加载优化主要从一下几块着手:纹理、网格、shader、动画
纹理:
尽量采用硬件支持格式,安卓(ETC1、ETC2),ios(PVRTC)
对于UI和一些不必要对纹理在运行时进行处理的关闭Read/Write,打开这个会使内存占用翻倍
纹理分辨率采用2的n次方
对于UI和一些不需要远近处理的纹理关闭mipmap
纹理的分辨力率尽量小,够用就好的原则
网格:
顶点、面片数量秉持够用就好的原则
顶点属性:position、uv、normal、tangent、color。normal和tangent一样,会增加物理题及,影响加载性能、和内存占用,要尽量简化顶点属性。在使用DrawCall Batching时,切忌将拥有不同顶点属性的网格模型拼合在一起,因为在进行batching过程,只要又一个网格模型具有某种顶点属性,就会为其他每个网格加上相应的顶点属性,严重影响各种性能
如果在项目中不会对网格惊醒读写操作(比如Morphing动画等),则将Read/Write功能关闭。既可以提升加载效率,又可以大幅度降低内存占用
Shader:
降低Keywords数量:比如比较简单的shader可以去掉Fallback
将shader进行依赖打包,在游戏初始化运行的时候加载shader,对于Unity5.x版本,除执行LoadAllAssets操作外,还需要进行Shader.WarmupAllShaders操作,因为在Unity5.x版本中,Shader的解析和CreateGPUProgram操作是分离的。
对于Unity 5.x版本且正在使用Resources.Load来加载资源的研发团队,可以尝试使用ShaderVariantCollection来对Shader进行Preload,同样也可以达到避免相同Shader重复加载的效果。(尽量避免这种方式,仍存在某些不确定性问题)
动画:
对动画进行压缩:
Unity引擎对导入的AnimationClip提供三种压缩格式,Off、Keyframe Reduction和Optimal。其中,Off表示不采用压缩处理;Keyframe Reduction表示使用关键帧进行处理,Optimal则表示Unity引擎会根据动画曲线的特点来自动选择一个最优的压缩方式,可能是关键帧压缩,也可能是Dense压缩。
- 项目优化之——加载
- 项目优化——网络图片加载封装
- 项目优化之——总览
- 项目优化之——内存
- 项目优化之——CPU
- 项目优化之——UI
- 【java】itoo项目实战之hibernate 懒加载优化性能
- 项目优化之——Profiler常见项目解析
- 项目优化之路
- Hibernate之多端加载优化
- 技术优化之加载方式
- vue项目优化之按需加载组件-使用webpack require.ensure
- vue项目优化之按需加载组件-使用webpack require.ensure
- vue项目优化之按需加载组件-使用webpack require.ensure
- vue项目优化之页面的按需加载(vue+webpack)
- vue项目优化之按需加载组件-使用webpack require.ensure
- Android性能优化之:加载Bitmap优化
- APP性能优化之图片加载优化
- matlab图像调整
- Android-->打造流行的无数据空布局页面
- overflow
- 360手机权限开启方法
- spring 事务属性的种类
- 项目优化之——加载
- 栈和堆的区别
- 时间限制(烽火戏诸侯)
- 第48篇白板修复之铅笔选择三种粗细(二)
- 61. Rotate List
- redis集群实现(八)redis+twemproxy集群
- SpringMVC入门(一)
- iOS开发归档存储
- fitsSystemWindows实践