PCEVA,PC绝对领域,探寻真正的电脑知识
开启左侧

游戏高帧数需要高刷新显示器搭配才有效果

[复制链接]
kingyesx1  楼主| 发表于 2021-2-25 09:31 | 显示全部楼层
QQ图片20210225091528.png
图发这里了。按上面的话再改一下了。我的对高帧要搭配高刷才有用的想法

嗯。这帖是有点又长又臭了。讨论了个寂寞。当然,学到知识才是真的

主要是人比较佛系了。游戏很少玩了。没事就刷刷论坛之类的
CSGO之类的以前是很能打。现在是一被吊打的菜
Ivanonline 发表于 2021-2-25 22:06 | 显示全部楼层
kingyesx1 发表于 2021-2-25 09:31
图发这里了。按上面的话再改一下了。我的对高帧要搭配高刷才有用的想法

嗯。这帖是有点又长又臭了。讨论 ...

091832tl1hblblgwcikktz.png
kingyesx1  楼主| 发表于 2021-2-26 09:09 | 显示全部楼层

不会。

按上面的的缓存原理,前后缓存极限加个3重缓存,能存放帧的地方最多就3帧,旧帧会被新帧覆盖
如果将主机生成帧编上数字那绿格子应该是1的100%(或0的X%加1的X%,刚好100%)
红格子应该是4的100%(或3的x%加4的X%,刚好100%)
2,3,5,6的帧信息虽然是在前缓存或后缓存上存在过,但会被后面产生的帧覆盖掉
我上面都説了,缓存的数据变化是不会直接反映到显示器面板上的(受刷新率的限制),2,3,5,6的帧信息并没有映射到显示器面板上(就是没做0,16.7,33.4ms的发送新帧信息的动作)
而且现在0-16.7MS假设了4帧,像LOL或CSGO之类的,0-16.7MS里面肯定产生会几十到100+的帧数





Ivanonline 发表于 2021-2-26 11:29 | 显示全部楼层
kingyesx1 发表于 2021-2-26 09:09
不会。

按上面的的缓存原理,前后缓存极限加个3重缓存,能存放帧的地方最多就3帧,旧帧会被新帧覆盖

我在很努力的理解你的意思。
我最后发的那篇文章建议你再仔细看一下。

对于缓冲区的理解我是这样认为的:

只有【前缓冲区】在向显示器不断的传输数据。前、后俩缓冲区是在不断的在进行交换

什么时候交换?只要显卡(你的理解是主机)在【后缓冲区】生成好一帧,这时候【后缓冲区】和【前缓冲区】进行交换。也就是说【后缓冲区】变成【前缓冲区】,【前缓冲区】变成【后缓冲区】。

交换后,【前缓冲区】接着传输数据到显示器上。同时,显卡在【后缓冲区】渲染下一帧。

等到显卡在【后缓冲区】渲染好下一帧后。

这时的【后缓冲区】和【前缓冲区】再进行交换。此时【后缓冲区】又变成了【前缓冲区】,【前缓冲区】变成【后缓冲区】。

交换后,【前缓冲区】接着传输数据到显示器上。同时,显卡在【后缓冲区】渲染下一帧。

往复这个过程。

【前缓冲区】往显示器传输数据是不断在进行的,不受前、后俩缓冲区交换的影响。

这种技术跟我们在windows上体验的有点儿不同。例如在Windows上咱拷贝一个文件。在拷贝过程中,这个文件是被锁定的,我们是无法对这个文件进行任何操作的,比如替换这个文件,编辑这个文件,删除这个文件的。但是缓冲区可以。前缓冲区的内容,在传输到显示器的过程中,是可以被替换的(前、后俩缓冲区交换)。


然后引申来的:

然后60hz显示器,怎么在1/60秒内显示完一帧的画面的?

其实很好理解:
用时1/60秒,从【前缓冲区】拷贝所有数据到【显示器的屏幕】上(想象一下windows里面的拷贝进度条)。拷贝完成以后,显示器这一帧的整个画面就显示出来了。【前缓冲区】内完整的一帧的数据,是固定的吗?如果按照windows下拷贝的过程的,是固定的。因为就像上面我提到的,windows下拷贝文件,在拷贝过程中,文件是被锁定的。但是显卡不一样,【前缓冲区】和【后缓冲区】不断的再交换,(前变后,后变前)。这样就导致了显示器接收的数据其实是不断的从两个缓冲区里面传输的。


你理解一下。

kingyesx1  楼主| 发表于 2021-2-26 12:05 | 显示全部楼层
本帖最后由 kingyesx1 于 2021-2-26 12:58 编辑
Ivanonline 发表于 2021-2-26 11:29
我在很努力的理解你的意思。
我最后发的那篇文章建议你再仔细看一下。

编辑下:
嗯。你的解释没问题
我设个例子,问几问题:
CSGO也好,LOL也罢,假定某个1秒内共产生了500帧
1。用你的观点来解释,1秒前缓存向显示器发送了499次或500次的帧数据(信号),我有没有理解错?
如果我理解错,再请告诉我一下答案。
嗯。前后缓存交换的后面再讨论
Ivanonline 发表于 2021-2-26 13:09 | 显示全部楼层
本帖最后由 Ivanonline 于 2021-2-26 13:27 编辑

我感觉你理解的不太对。。

【前缓冲区】向显示器传输信号的过程,是不间断的。你不能说【前缓冲区】向显示器发送了500次帧信号。


“【前缓冲区】”这次我加了引号,每1/60秒向显示器传输一次(60HZ显示器)。

这个“【前缓冲区】”里的内容是 【前缓冲区】和【后缓冲区】不断来回切换填充的。

类似windows中的拷贝一个文件。进度条是不断在走的。在拷贝的过程中,你一直在改变这个文件中的内容。我是想表达一个这样的意思。


你图片中说看不到的帧,其实都看到了“一部分”。


Ivanonline 发表于 2021-2-26 13:23 | 显示全部楼层
“【前缓冲区】”(加引号这个),相当于一个容器。有点儿像视频封装里面的AVI,mkv。里面封装视频格式什么可以随意。
Ivanonline 发表于 2021-2-26 13:27 | 显示全部楼层
你要说你的图片中虚线内容里面的帧“完全“看不到的话,那在1/60秒显示器完整显示的那一帧,人也将完全看不到。
kingyesx1  楼主| 发表于 2021-2-26 13:42 | 显示全部楼层
本帖最后由 kingyesx1 于 2021-2-26 14:06 编辑
Ivanonline 发表于 2021-2-26 13:09
我感觉你理解的不太对。。

【前缓冲区】向显示器传输信号的过程,是不间断的。你不能说【前缓冲区】向显示 ...

嗯。编辑一下。好像算错了。
问题:
如果前缓存不停地向显示器送数据,应该会涉及一个传输率的问题(DP标准或HDMI标准,数据的传输率是不能突破这个限制的)
1920*1080*32bit单帧的数据大小是64Mbit,先不説你不设上限,如果换我上面设定的500帧每秒,那32M*500大概是33G(还不包声音数据或HDR的数据)
如果像LOL这种游戏有个6,800帧的,DP或HDMI线是支持不了。
我的观点呢,刷新率限制了前缓存发送的数据量,是不会超出DP或HDMI标准的传输率,包括4K,2K等分辨率
你我的观点谁更合理一点?


kingyesx1  楼主| 发表于 2021-2-26 13:46 | 显示全部楼层
Ivanonline 发表于 2021-2-26 13:27
你要说你的图片中虚线内容里面的帧“完全“看不到的话,那在1/60秒显示器完整显示的那一帧,人也将完全看不 ...

肯定不会啦,你不能这样找碴吧。我不是作了0,16.7,33.4MS发帧信号的向上箭头了吗?真的还要我在虚线框上开个口吗?
Ivanonline 发表于 2021-2-26 13:55 | 显示全部楼层
本帖最后由 Ivanonline 于 2021-2-26 13:59 编辑
kingyesx1 发表于 2021-2-26 13:42
嗯。
问题:
如果前缓存不停地向显示器送数据,应该会涉及一个传输率的问题(DP标准或HDMI标准,数据的传 ...

你还没看懂我的回答

【前缓冲区】向显示器传输信号的过程,是不间断的。你不能说【前缓冲区】向显示器发送了500次帧信号。


“【前缓冲区】”这次我加了引号,每1/60秒向显示器传输一次(60HZ显示器)。

这个“【前缓冲区】”里的内容是 【前缓冲区】和【后缓冲区】不断来回切换填充的。
Ivanonline 发表于 2021-2-26 13:58 | 显示全部楼层
这会儿在公司,回头回到家我把我那个表格再一个时间段一个时间段编辑一下。再给你发出来。
Ivanonline 发表于 2021-2-26 14:04 | 显示全部楼层
kingyesx1 发表于 2021-2-26 13:46
肯定不会啦,你不能这样找碴吧。我不是作了0,16.7,33.4MS发帧信号的向上箭头了吗?真的还要我在虚线框上 ...

说实在的,你的图我真的没有看懂。。

就是说0秒主机生成的绿色的某一帧,直接显示到了显示器上?然后过了N秒,人眼看到了?

然后在1/60秒主机生成的红色的某一帧,直接显示到了显示器上?然后过了N秒,人眼看到了?
kingyesx1  楼主| 发表于 2021-2-26 14:08 | 显示全部楼层
本帖最后由 kingyesx1 于 2021-2-26 14:11 编辑
Ivanonline 发表于 2021-2-26 14:04
说实在的,你的图我真的没有看懂。。

就是说0秒主机生成的绿色的某一帧,直接显示到了显示器上?然后过 ...

不是。是0秒,主机将前缓存的数据(也就是绿格子)向显示器发送一次,0-16.7MS里面,显示器面板上显示的一直是前缓存的数据(绿格子)
16.7ms主机将当前前缓存的数据(也就是红格子)向显示器发送一次,16.7ms-33.4ms里面,显示器面板上显示的就是新的前缓存数据(红格子)
kingyesx1  楼主| 发表于 2021-2-26 14:30 | 显示全部楼层
本帖最后由 kingyesx1 于 2021-2-26 19:50 编辑
Ivanonline 发表于 2021-2-26 13:23
“【前缓冲区】”(加引号这个),相当于一个容器。有点儿像视频封装里面的AVI,mkv。里面封装视频格式什么 ...

嗯。
你要思考一下传输率的问题,像我上面説的
我説的缓存区只是单纯的1帧(你做视频应该知道,1帧就是一个图片,尺寸是192*1080*32BIT或2K,4K等)

印第安纳琼斯 发表于 2021-2-26 16:03 | 显示全部楼层
画了一张抽象图,别太认真,仅供思维实验。

扫描抽象图.png
kingyesx1  楼主| 发表于 2021-2-26 18:35 | 显示全部楼层
印第安纳琼斯 发表于 2021-2-26 16:03
画了一张抽象图,别太认真,仅供思维实验。

嗯。差不多吧
你的观点是前缓存区是不停地向显示器发信号还是按刷新率的间隔向显示器发信号?
StormBolt 发表于 2021-2-26 19:21 | 显示全部楼层
本帖最后由 StormBolt 于 2021-2-26 20:45 编辑

怎么越说越回去了呢。。。怎么会每一帧都看到呢?其实楼主114楼已经理解对了,但是115楼动态并不是指视频一样的动态,而是固定大小、内容不停改变的图片,每一行的内容不停改变,显示器按刷新间隔提取一次,每次提取的内容是静态,相当于在缓存上截屏

这页内的彩色格子,和上一页的彩色格子,不是同一个概念,这一页的彩色格子是指显示器实际显示内容,内容是下方最后一个完整无色格子或跨线的两个无色小格子一个一半。

前面我已经指出,上一页那些彩色小格子是替换关系,后面的会替换前面的,由于上述动态内容变化,大格子内最后一个不跨格完整小格子或说这页顶楼说的虚线时间点到来时,内容就已经完全变成最后一帧的内容了

重申一次:流畅与否的原理是人眼所看到内容,与现实运动过程的一致性问题,差得小就流畅,差得多就不流畅,极端例子是静态画面一样流畅。这个原理适用于60/60,120/60,120/120,240/240。
60/60的系统上,确实有60fps,显示器也确实刷新60次,但是刷新60次内容不能保证没有重复,高帧低刷同样不能保证不重复,只是重复的概率性降低,在上述原理上内容更连贯了,更高帧的系统无须多说就是更流畅。

60/60+垂直同步的系统上,确实和120/60+同步一样(仅假设,由于浪费实际不会存在),视觉延迟最低都一样都是1/刷新率,但是高帧系统的操作滞后性明显弱很多,这是游戏机制和性能所限,实际上延迟不是最低的情况,可以出现更大延迟,比如总体延迟了半秒
印第安纳琼斯 发表于 2021-2-26 19:25 | 显示全部楼层
本帖最后由 印第安纳琼斯 于 2021-2-26 19:28 编辑
kingyesx1 发表于 2021-2-26 18:35
嗯。差不多吧
你的观点是前缓存区是不停地向显示器发信号还是按刷新率的间隔向显示器发信号?
...

缓存区是由“装置”不断循环读取的。再来第二图。
“装置”按照要求的频率,依次读取缓存上每个对应像素的数据。
“装置”不在乎缓存是否被更新,只会按照扫描频率顺序读取。如果前端卡死,缓存区停止更新,“装置”依然会按照预定的工作循环。这时画面就会定格在“当机”的画面。

扫描抽象图2.png



kingyesx1  楼主| 发表于 2021-2-26 19:36 | 显示全部楼层
本帖最后由 kingyesx1 于 2021-2-26 19:39 编辑
StormBolt 发表于 2021-2-26 19:21
怎么越说越回去了呢。。。怎么会每一帧都看到呢?其实楼主114楼已经理解对了,但是115楼动态并不是指视频一 ...

已经编辑掉了。
继续吧。很高兴你看懂了我的图
我的图已经説了我的观点了。
不知道我这个观点是不是符合“高帧需要高刷”的一个理由?

至于你们説的延时这个。我可以用另外一个观点跟你们讨论一下。嗯。都是我自己的观点。边聊边学习

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

本版积分规则

快速回复 返回顶部