很多人会发现《魔兽世界》这类游戏人少的时候和人多的时候帧数会有巨大差异,特别是团战,不开战还好,一开战顿时卡成幻灯片。
瞬间变成帧数只有5的渣渣!
感觉自己硬件也不差啊,不应该是这水平啊,某些人硬件比我差怎么还比我流畅啊什么的……百思不得其解。
所以这里我拿《魔兽世界》来举个列子说明一下:
《魔兽世界》为了实现一个地区内切换地图时候无缝衔接,比如你从暴风城出门走到埃尔文森林,不需要读蓝条而是直接就到了埃尔文森林,在设计上每载入一个地图的时候,也就是读蓝条载入时候是载入你所在地图以及附近一圈地图的地形贴图和模型。
比如说你从七星殿传送回暴风城,读蓝条时候系统载入的不光是暴风城的地图,而是暴风城加上附近一圈的西部荒野,艾尔文森林,燃烧平原等的地形以及贴图。这样你从暴风城出门就不用再读次蓝条才能切换到埃尔文森林了。等你到了埃尔文森林,系统又会自动在后台载入附近的闪金镇,暮色森林等地形。
这样设计的好处显而易见,但是后果就是读蓝条需要的时间比较长。所以为了减少读蓝条的时间,读蓝条时候会只载入地形数据。
而人物的贴图,模型和技能法术效果都是实时载入后演算的。比如远处过来另外一个人,系统会实时载入这个人的衣服模型贴图等,他在你身边释放了一个奥爆,系统会实时读取出奥爆的法术效果,然后演算显示出来。
所以你网络不好或者刚上线时候可能会发现主城空空的一个人没有,然后突然人就在身边一个个出现了……
5人副本里可能并不明显,但是在人多特别是40人团战/野外BOSS时系统会不停的从硬盘中十几G的文件里搜寻载入所需信息。此时CPU就需要不停地生成dma指令让硬盘去读数据。不停等待并解读硬盘数据这会占用相当大一部分系统资源。所以你一开战顿时就感觉开始卡了。
所以某些人会发现换用更高主频的CPU可以缓解卡顿!但真正问题出在CPU需要等待硬盘的反馈!
推荐资讯:
……