POPPUR爱换

 找回密码
 注册

QQ登录

只需一步,快速开始

手机号码,快捷登录

搜索
查看: 80487|回复: 10
打印 上一主题 下一主题

垂直同步和三重缓冲是不是只开一个就可以了?

[复制链接]
跳转到指定楼层
1#
发表于 2013-3-31 09:36 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
垂直同步和三重缓冲是不是只开一个就可以了?
11#
发表于 2013-3-31 17:43 | 只看该作者
gz0921 发表于 2013-3-31 16:39
垂直同步跟n重缓冲不是一个概念!而且DX下的所谓的Triple buffer跟OpenGL下的Triple buffer也不是一回事~
...

如何开启render ahead啊
回复 支持 反对

使用道具 举报

10#
发表于 2013-3-31 16:39 | 只看该作者
本帖最后由 gz0921 于 2013-3-31 16:43 编辑

垂直同步跟n重缓冲不是一个概念!而且DX下的所谓的Triple buffer跟OpenGL下的Triple buffer也不是一回事~

垂直同步,就是让front buffer的更新跟显示器的垂直刷新同步,三重缓冲(Triple buffer)则是用两个back buffer和一个front buffer来实现互相切换。两者不是同一个概念的东西。

Vsync的时候,可以是double buffer也可以是triple buffer。

vsync+double buffer 画面不会撕裂,但是有可能引入较大渲染延迟。当显卡性能较强时,显卡开工不满的情况比较严重。
vsync+triple buffer 保证画面不撕裂的同时,能够尽量减少渲染延迟。并且在显卡性能较强,渲染能力超过显示器刷新率的时候,一定程度的让显卡渲染资源不被浪费。

DX下不能实现真正的triplr buffer,取而代之的是render ahead,render ahead可以提前渲染好几帧,存在帧缓存里,帧缓存就像一个FIFO,这样FIFO不空的话,就可以有效抹平输出每一帧之间的时间差,做到帧率平稳,减少卡顿,也不会产生tearing(撕裂),但是render ahead越多,就一定会产生更严重的渲染延迟。

所以render ahead不宜过多,有些游戏把render ahead等于3的时候,也叫做Triplr buffering,严格说这是不对的。
回复 支持 反对

使用道具 举报

9#
 楼主| 发表于 2013-3-31 11:02 | 只看该作者
ytplt 发表于 2013-3-31 10:35
我就是凭经验,理论不清楚..........[closedeyes>
理论上有输入延迟,但实际使用时就......反正我是没感觉 ...

结果:用D3Doverride强制开启生化震撼的三重缓冲而不开启垂直同步,开启游戏时有提示音证明三重缓冲已开启,游戏中快速旋转视角有画面撕裂,在游戏中锁定60帧,撕裂现象消失,依照非D3D情况下三重缓冲原理,撕裂不可能出现,证实D3D下的三重缓冲有别于通常意义上的三重缓冲。
回复 支持 反对

使用道具 举报

8#
发表于 2013-3-31 10:35 | 只看该作者
本帖最后由 ytplt 于 2013-3-31 10:37 编辑

我就是凭经验,理论不清楚..........
理论上有输入延迟,但实际使用时就......反正我是没感觉到有延迟.........
回复 支持 反对

使用道具 举报

7#
 楼主| 发表于 2013-3-31 10:21 | 只看该作者
那现在我觉得是:只要帧率高过显示器刷新率,D3D的情况下不管是双重缓冲还是三重缓冲,只要不开启垂直同步那结果都是画面撕裂,而开启的结果就是输入延迟。

望指正
回复 支持 反对

使用道具 举报

6#
 楼主| 发表于 2013-3-31 10:15 | 只看该作者
读了一下英文的维基百科,大概意思是说:三重缓冲本来不需要垂直同步也不会让画面撕裂,但是如果帧率高的话,会有一些帧被丢掉,这样会浪费系统的性能。
所以D3D用绑定垂直同步的方法避免了性能浪费和丢帧,但会造成输入延迟
回复 支持 反对

使用道具 举报

5#
发表于 2013-3-31 09:54 | 只看该作者
有个要注意的问题,显卡控制面板中的三重缓冲只对opengl程序有效,directx的无效。要开三重缓冲得用D3DOverrider
回复 支持 反对

使用道具 举报

4#
发表于 2013-3-31 09:48 | 只看该作者
本帖最后由 ytplt 于 2013-3-31 09:48 编辑
黎明前的辉煌 发表于 2013-3-31 09:39
还有怎么能判断出游戏本身是否已经开启了三重缓冲或垂直同步?
我指的是选项里没有的

垂直同步看帧数是不是60帧不就行了。。。。
如果没有三重缓冲,帧数跑到40左右的候会立即锁定到30帧。。。
回复 支持 反对

使用道具 举报

3#
发表于 2013-3-31 09:42 | 只看该作者
本帖最后由 ytplt 于 2013-3-31 09:49 编辑

不是,在垂直同步开启的情况下开三重缓冲才有效,单独开三重缓冲是不行的
回复 支持 反对

使用道具 举报

2#
 楼主| 发表于 2013-3-31 09:39 | 只看该作者
本帖最后由 黎明前的辉煌 于 2013-3-31 09:39 编辑

还有怎么能判断出游戏本身是否已经开启了三重缓冲或垂直同步?
我指的是选项里没有的
回复 支持 反对

使用道具 举报

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

本版积分规则

广告投放或合作|网站地图|处罚通告|

GMT+8, 2025-8-6 15:14

Powered by Discuz! X3.4

© 2001-2017 POPPUR.

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