67 lines
2.2 KiB
Markdown
67 lines
2.2 KiB
Markdown
---
|
||
front: https://nie.res.netease.com/r/pic/20210727/82dd4b1e-04e1-4a90-a4c5-1a4d5cec462a.png
|
||
hard: 进阶
|
||
time: 20分钟
|
||
---
|
||
|
||
# 内存优化
|
||
|
||
## 前言
|
||
|
||
内存的优化对中低端机型极其敏感与有意义,随着MC内容的增长,和开发者上架MOD的越来越多。玩家在游戏中可能装载的MOD,能体验的内容也越来越多。中低端设备内存的瓶颈变得越来越明显。所以很有必要做内存上面的优化。
|
||
|
||
## 资源大小优化
|
||
|
||
### 贴图分辨率
|
||
|
||
#### 意义
|
||
|
||
贴图的分辨率控制非常重要。首先会直接决定贴图加载的速度和占用的内存。其次因为内部实现会把方块,物品的多张贴图打成一张图集,单张贴图分辨率大也会造成整体这个图集分辨率太大,在使用图集的时候性能也会有所下降,所以不要觉得我有一个物品,用了非常高清分辨率很高的贴图,但只要我不使用这个物品,对游戏性能就没有影响。
|
||
|
||
#### 两个原则
|
||
|
||
1. 贴图清晰的基础上尽量小:
|
||
比如500 * 500的贴图如果缩小为100 * 100之后效果相差不大,则建议直接缩小到100 * 100
|
||
|
||
2. 贴图尽量为2次幂,尺寸为2次幂的贴图在加载和渲染时比较友好:
|
||
例如:1200 * 1200的贴图建议缩小到1024 * 1024;
|
||
20 * 20的贴图建议缩小到16 * 16。
|
||
|
||
#### PNG贴图压缩
|
||
|
||
使用到PNG贴图的时候,可以用pngquant工具先进行压缩,接近于无损压缩
|
||
|
||
### 音频
|
||
|
||
音效的资源格式尽可能使用ogg格式的文件,wav格式文件压缩率较低
|
||
|
||
## 动态加载
|
||
|
||
资源如果不是频繁使用的,尽量不要预加载,应该在使用到的时候再进行加载
|
||
|
||
骨骼模型系统(不常用的骨骼模型应该声明dy_load字段为true)
|
||
netease_models.json:
|
||
```json
|
||
{
|
||
"datiangou" : {
|
||
"skeleton" : "skeleton/datiangou_skeleton.json",
|
||
"mesh" : "mesh/datiangou_mesh.json",
|
||
"animation":{
|
||
"fengxi":"animation/datiangou_animation_fengxi.json",
|
||
"run": "animation/datiangou_animation_run.json"
|
||
},
|
||
"dy_load": true
|
||
}
|
||
}
|
||
```
|
||
|
||
音频系统(不常用的音频应该声明在dy_load_list中)
|
||
sound_definitions.json:
|
||
```json
|
||
{
|
||
"dy_load_list":[
|
||
"sounds/testaudio/test",
|
||
"sounds/music/game/test/test1",
|
||
]
|
||
}
|
||
``` |