3DMGAME 3DM首页 新闻中心 前瞻 | 评测 游戏库 热门 | 最新 攻略中心 攻略 | 秘籍 下载中心 游戏 | 汉化 购买正版 论坛

注册 登录

QQ登录

只需一步,快速开始

楼主: 123132132132131
打印 上一主题 下一主题

[游戏讨论] 惊魂4 1.5升级补丁越玩越卡顿的根本原因

  [复制链接]

53

主题

1509

帖子

1821

积分

游戏狂人

Rank: 6Rank: 6

贡献度
46
金元
16266
积分
1821
精华
1
注册时间
2012-2-29
跳转到指定楼层
主题
发表于 2014-12-11 20:28 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 123132132132131 于 2014-12-11 20:33 编辑

刚升级1.5的时候,玩起来那叫一个高兴啊
2g显存的显卡卡顿大幅减少了有木有,再也不用mip0了有木有!
但才高兴一会,问题就来了:越玩越卡,尤其是死过重来以后,半小时后打开进程管理器一看,好家伙,8g内存只剩20%可用
啥原因呢到底?为毛突然吃内存了呢?
有耐心的朋友可以去重新禁用mip0试一下,你会发现禁用mip0以后(也就是disablemip0=1)
不只显存消耗少了,内存消耗也少了,打几个小时都吃不过4g内存
mip0不是纹理过滤么,不是在显存中进行的么,怎么会影响到内存占用呢?且听我说来
首先,1.5版升级补丁改善卡顿的方式是优化texture steam来实现的
这个steam到底是什么?
它其实就是纹理流
使用纹理流技术的游戏会将多重贴图按照从粗糙贴图到精细贴图的顺序来把纹理贴图覆盖到模型表面
因为需要按顺序贴,所以就有一个纹理队列
游戏程序会使用多条线程来载入纹理队列
每个线程里有一个“叫号“的,就像医院里的护士:xxx号病人过来看医生~~~xxx号纹理过来贴到模型上!
然后被叫号的就是那些排队等着贴上图的纹理
如果这个排队上纹理的过程优化不好
可能出现
1.纹理队列太少了,几万个贴图,才分成两个队列载入。。。。这就会出现进游戏后,玩家明显感觉到周围的物体是很模糊的,然后过了几秒,才渐渐的清晰起来
2.叫号的同学脑子不好使,也就是程序员对叫号的过程没有编排好,于是叫号的效率很低下,当玩家奔跑,高速运动载入大量新场景时,前面的纹理还没贴上模型,后面的就吵着要来贴了。叫号的手无足错,出现了混乱,甚至罢工----叫号程序失去响应。。。。这会造成gpu的资源被大量浪费,产生巨大延迟,当叫号崩溃罢工的时候,也就是卡顿的出现。

不论是上面哪种情况,贴图的载入都是极为缓慢的,这会导致大量的等待载入的贴图占用着显存通道,霸占显存带宽,并使gpu不堪负荷(叫号同学隶属于gpu核心)
而如果你禁用了mip0,那游戏就会禁止载入最大规格的过滤贴图,这些贴图只出现在距离玩家最近的模型上,而当模型远的时候会用分辨率比较低的中小规格贴图,也就是说禁用了mipo以后,你贴着模型,距离不到半米时看到的贴图是比较模糊的,因为它不是mip0,而可能是分辨率比较低的mip1\mip2之流(到底叫什么,看程序员给它什么id)
禁用了mip0,mip0就不用过来排队了
那么拥堵在”显存大厅“里的都是一些比较干瘦的小个子。。。于是显存的压力就小了,载入速度就快了,叫号员罢工的几率就小的多了


那么育碧是怎么在1.5里,不用禁用mip0,而优化这个纹理流排队的呢?
它实际上是安排了一个”休息区“或者叫”待命区“
这情况就好像
过去你在医院挂号排队看医生,都是在诊室门口排长龙
现在不用了,你可以再外面的长椅上坐着等叫号的,这样就比较有秩序
叫到你了,你再从椅子上起来,不用去堵诊室门口了
那么这些长椅是什么呢?
它们就是你的内存
游戏会安排一些载入优先级比较低的贴图到内存里等候载入,优先级高的先来
这样显存的压力就会小很多,载入更有效率,叫号不容易崩溃

副作用呢?
副作用就是看你的消息区,也就是内存够不够大了!
换句话说,1.5的纹理流优化就是把过去的显存压力部分转移到内存去了,你的内存必须够大
如果你内存,你的休息区被贴图占满了,内存不够的机器当然啊也会卡!

不仅如此!
实际上,游戏中玩家死了以后,场景就消失了,但还有一些还在休息区等候,之前没来得及载入的贴图怎么办呢?
按照正常人的思维逻辑,这些贴图应该被刷新,删除
但是育碧不是正常人啊
这些没来得及载入的贴图阴魂不散啊!他们还停留在你的内存休息区里
好家伙
这样旧的贴图没删掉,新的贴图继续进休息区,你的内存不爆才有轨
如果你有内存读取工具,读取farcry4.exe的进程,会发现它的内存斩块地址里,有很多命名相同的贴图文件。。。。一个是之前没来得及载入的,一个是现在需要载入的
所以你懂的
如果育碧有脸,你,应该好好的抽他们,嫌你内存太大啊咋的?

而使用了mip0指令,不用载入mip0大规格贴图,就算休息区里都是同名同性的双胞胎兄弟,反正都是矮个子,小瘦逼,也不怎么占空间,就让你占去吧。。。。当然,就算是矮个子。数量多了,也不得了。。。只是不像没用mip0指令时候,会那么快把你的内存休息区挤爆

评分

12

查看全部评分

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|3DMGAME ( 京ICP备14006952号-1  沪公网安备 31011202006753号

GMT+8, 2026-4-14 22:59 , Processed in 0.034811 second(s), 16 queries , Memcached On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表