Board logo

标题: [其他] 【纯讨论】为什么360的游戏好多都有画面撕裂问题,PS3反而好的多甚至没有? [打印本页]

作者: 盖尼茨    时间: 2012-9-20 18:09     标题: 【纯讨论】为什么360的游戏好多都有画面撕裂问题,PS3反而好的多甚至没有?

这几天没事又玩了玩360突然觉得很明显

因为之前一直玩PS3,这几天又换到玩360了,有了对比,突然开始觉得很明显,特别是同一个游戏
而且这样的例子不是一两个,很多游戏都是

不仅我自己觉得,网上一搜,这样的例子一大堆,我就不贴了,大家可以自己去看


PS3贴图模糊、帧数低点这些都知道答案了,内存小、开放麻烦和PC不互换等等....起码知道原因
问题是360不是更好开发吗,为什么PS3能很好杜绝的问题,360那性能反倒不行?

还有,觉得360有些游戏画面边缘闪烁似乎也比PS3严重。


PS3、360都是在同一台电视上





纯讨论,有理说理,想找碴进来损和骂的阮青,趁早滚出去,实在要犯贱的,奉陪!

[ 本帖最后由 盖尼茨 于 2012-9-20 18:14 编辑 ]
作者: seek    时间: 2012-9-20 18:11

360显卡自带的dram太小了,一个pass渲染不过来,共享显存又太慢..
作者: 盖尼茨    时间: 2012-9-20 18:12

引用:
原帖由 seek 于 2012-9-20 18:11 发表
360显卡自带的dram太小了,一个pass渲染不过来,共享显存又太慢..
恩,看到阁下在另外帖子回复的了
谢谢
作者: rockoma    时间: 2012-9-20 18:18

举几个例子看看呢
我遇到的情况是在黑屏的时候,360下屏幕在微微闪烁,PS3没有
作者: 盖尼茨    时间: 2012-9-20 18:20

引用:
原帖由 rockoma 于 2012-9-20 18:18 发表
举几个例子看看呢
我遇到的情况是在黑屏的时候,360下屏幕在微微闪烁,PS3没有
撕裂太多了

魔女、忍龙2、生化5.....
作者: rockoma    时间: 2012-9-20 18:27

引用:
原帖由 盖尼茨 于 2012-9-20 18:20 发表



撕裂太多了

魔女、忍龙2、生化5.....

这几个游戏我都有玩,其中忍龙2还玩了几百小时。忍龙2的确有这种现象,不过不严重,至少没到影响游戏体验的地步。另两个没怎么注意
作者: 讴歌123    时间: 2012-9-20 18:35

还有FM4,20%多的撕裂率根本没法玩:D
作者: 盖尼茨    时间: 2012-9-20 18:36

引用:
原帖由 rockoma 于 2012-9-20 18:27 发表


这几个游戏我都有玩,其中忍龙2还玩了几百小时。忍龙2的确有这种现象,不过不严重,至少没到影响游戏体验的地步。另两个没怎么注意
忍龙2最不明显,或者说最不注意的,可能游戏太好耍了吧

生化5最明显,个人觉得,因为本身就是追尾近距离视角,撕裂一下,很恶心,很容易晕

魔女是闪烁严重,很多地方栏杆边缘一直在闪,已经到了影响画面效果的地步
作者: 你老闆    时间: 2012-9-20 18:43

魔女PS3版撕裂比360版嚴重
作者: hourousha    时间: 2012-9-20 21:37

引用:
原帖由 seek 于 2012-9-20 18:11 发表
360显卡自带的dram太小了,一个pass渲染不过来,共享显存又太慢..
我说,你明白你在说什么吗?一个pass渲染不完和屏幕撕裂有啥关系?EndTiling又不会触发swap或SynchronizeToPresentationInterval
每次swap/present之前,都需要把backbuffer(本质就是一个rendertarget)从EDRAM中resolve到main mem的(front buffer存在于main mem中)。每次resolve的都必然是一个完整的frame。
造成撕裂的原因无非就是没有设置同步垂直罢了。XBOX360没有自动的tripple buffering,它的Backbuffer+2-frontbuffer mode只是不会block住CPU的fill GPU Commandbuffer(GPU还是会block住)。所以想实现类似tripplebuffer效果需要手动处理一下。要麻烦一些。
不过tripple buffer也不是一个always win的选择,比如input latency方面有副作用,还要多占显存等。因此相当部分PS3游戏宁可撕裂也不用tripple buffer。
作者: 单砍五万    时间: 2012-9-20 22:36

posted by wap, platform: BlackBerry (9700)

玩生化5的時候發現撕裂嚴重,但換到電視上就好多了,在顯示器上就很嚴重。應該是垂直同步的問題。
作者: Minstrel_boy    时间: 2012-9-20 22:42

引用:
原帖由 hourousha 于 2012-9-20 21:37 发表

我说,你明白你在说什么吗?一个pass渲染不完和屏幕撕裂有啥关系?EndTiling又不会触发swap或SynchronizeToPresentationInterval
每次swap/present之前,都需要把backbuffer(本质就是一个rendertarget)从EDRAM中 ...
你还真和脑补加写轮眼的索索们讲原理啊…………认真你就输了
作者: 盖尼茨    时间: 2012-9-20 23:03

引用:
原帖由 hourousha 于 2012-9-20 21:37 发表

我说,你明白你在说什么吗?一个pass渲染不完和屏幕撕裂有啥关系?EndTiling又不会触发swap或SynchronizeToPresentationInterval
每次swap/present之前,都需要把backbuffer(本质就是一个rendertarget)从EDRAM中 ...
感谢了,这里还是有个别正常讨论的人
作者: tdka    时间: 2012-9-20 23:06

引用:
原帖由 盖尼茨 于 2012-9-20 23:03 发表

感谢了,这里还是有个别正常讨论的人
和一个引用7月新闻来证明9月demo没有改进的人正常讨论?
我觉得他没傻到这个程度吧?事实是他也完全不鸟你啊,你又不懂这些东西,谁都不会对牛弹琴的
作者: zafm0861    时间: 2012-9-20 23:08

引用:
原帖由 盖尼茨 于 2012-9-20 23:03 发表

感谢了,这里还是有个别正常讨论的人
看着你装一本正经讨论的样子太233了
作者: zoah    时间: 2012-9-20 23:08

引用:
原帖由 hourousha 于 2012-9-20 21:37 发表

我说,你明白你在说什么吗?一个pass渲染不完和屏幕撕裂有啥关系?EndTiling又不会触发swap或SynchronizeToPresentationInterval
每次swap/present之前,都需要把backbuffer(本质就是一个rendertarget)从EDRAM中 ...
完全看不懂,好专业的感觉。
作者: 盖尼茨    时间: 2012-9-20 23:13

鸟不鸟关你个屁事啊,比小媳妇还小心眼,又没和你说话,你跳出来吼干什么?简直就和八婆一样
人家都回答了,还在这里跳,服了

一个人跑进来自言自语,估计是气晕了
作者: co3    时间: 2012-9-20 23:16

引用:
原帖由 盖尼茨 于 2012-9-20 23:13 发表
鸟不鸟关你个屁事啊,比小媳妇还小心眼,又没和你说话,你跳出来吼干什么?简直就和八婆一样
人家都回答了,还在这里跳,服了

一个人跑进来自言自语,估计是气晕了
又对着2d生化sy了,快快快射了。没游戏玩只能sy生化真可怜
作者: 盖尼茨    时间: 2012-9-20 23:16

引用:
原帖由 zafm0861 于 2012-9-20 23:08 发表

看着你装一本正经讨论的样子太233了
我对正常的人,就正常
作者: co3    时间: 2012-9-21 00:35

引用:
原帖由 盖尼茨 于 2012-9-20 23:16 发表

我对正常的人,就正常
生化堕落成这样只能在论坛卖弄智商真可怜,看着没2d生化玩,是不是很难过很想哭
作者: FXCarl    时间: 2012-9-21 02:43

引用:
原帖由 hourousha 于 2012-9-20 21:37 发表

我说,你明白你在说什么吗?一个pass渲染不完和屏幕撕裂有啥关系?EndTiling又不会触发swap或SynchronizeToPresentationInterval
每次swap/present之前,都需要把backbuffer(本质就是一个rendertarget)从EDRAM中 ...
质疑,Doublebuffering 如果有垂直同步也不会有屏裂啊 …… 如果为了说避免跳帧而关闭垂直同步,很可能每帧画面都是裂的 ……

想想其实还是应该打开垂直同步才对,如果渲染负荷降低时还能降低 GPU 负担。

那么这个问题就变成了另外一个问题,为什么游戏都不爱垂直同步 ? 特别是这个前提还是家用机平台 —— 即游戏的渲染平台是可预见的情况(PC 上 GPU 性能千差万别,帧速率高低能差出一个数量级)。

想当年没有 Backbuffer 的时候,游戏逐扫描线刷新一样跑的稳稳当当。为什么现在就不能做到相对稳定的每15ms或者30ms跑一个游戏循环 ?

或者是不是可以更进一步的,我们可以认为 idTech 5 的优秀之处就在于这里 ?

[ 本帖最后由 FXCarl 于 2012-9-21 02:58 编辑 ]
作者: solbadguy    时间: 2012-9-21 03:07

posted by wap, platform: SonyEricsson

喷了,就ps3魔女开头那20帧画面加十步一读盘,还好意思谈画面撕裂?印象中厂商道歉加一开始就承诺加画面补丁的就这游戏了吧?拿这例子真心看不懂索青还是索黑。
作者: west2046    时间: 2012-9-21 03:27

看了LZ上一个帖子
作者: tdka    时间: 2012-9-21 07:33

posted by wap, platform: Android
引用:
原帖由 @FXCarl  于 2012-9-21 02:43 发表
质疑,Doublebuffering 如果有垂直同步也不会有屏裂啊 …… 如果为了说避免跳帧而关闭垂直同步,很可能每帧画面都是裂的 ……

想想其实还是应该打开垂直同步才对,如果渲染负荷降低时还能降低 GPU 负担。

那么 ...
稳?2d游戏拖慢
作者: lsn    时间: 2012-9-21 07:51

我只想举一个例子, 就是RDR, 双版本差别太大了
作者: tntforbrain    时间: 2012-9-21 08:20

撕裂么……我觉得如果能接受GT5的画面撕裂度的话,那其他游戏接受起来问题不大,所以说这玩意最终还是看游戏用没用垂直同步,此外要是帧数都严重不足,可能你就注意不到撕裂了或体现不明显了。

360游戏有画面撕裂的确实不少,不过好在撕裂对游戏影响没丢帧那么严重。不过现在WIIU要出了,看看效果先吧。

为这俩老机器还研究机能区别没啥劲了,游戏都摆在那里。

此外360的架构更易开发,但不能说这玩意就和PC同架构(见过有人这么认为的),实际上360也是power(powerpc),PS3是Cell,全都是IBM非X86的东西,RISC指令集,和X86本质不是一回事。

[ 本帖最后由 tntforbrain 于 2012-9-21 08:43 编辑 ]
作者: zhangjingy2008    时间: 2012-9-21 08:21

跨平台最强画面应该是战地3,PS3版本各方面完胜。
作者: tntforbrain    时间: 2012-9-21 08:30

引用:
原帖由 solbadguy 于 2012-9-21 03:07 发表
posted by wap, platform: SonyEricsson

喷了,就ps3魔女开头那20帧画面加十步一读盘,还好意思谈画面撕裂?印象中厂商道歉加一开始就承诺加画面补丁的就这游戏了吧?拿这例子真心看不懂索青还是索黑。
确实,PS3版又丢帧又撕裂,补丁过后才好了些……
作者: zhangjingy2008    时间: 2012-9-21 08:35

XO游戏用三重缓冲的确实比PS3要少很多,这是事实,没什么好质疑的。
作者: hourousha    时间: 2012-9-21 08:40

引用:
原帖由 FXCarl 于 2012-9-21 02:43 发表
质疑,Doublebuffering 如果有垂直同步也不会有屏裂啊 …… 如果为了说避免跳帧而关闭垂直同步,很可能每帧画面都是裂的 ……
想想其实还是应该打开垂直同步才对,如果渲染负荷降低时还能降低 GPU 负担。
...
double buffer的问题在于SynchronizeToPresentationInterval会让CPU和GPU都wait到下一个VBlank
这样没有充分利用性能。在rendertime微小浮动时可能会造成帧数较大波动并降低流畅度(把CPU/GPU cycle给sleep了嘛),而且画面显示和操作之间的延迟也是存在的,尤其是在帧数较低的情况下。
当然如果每帧负载比较小,比如基本是恒小于16ms,那么用double buffer显然是没问题的。
现在的一些做法是手动处理,也就是根据渲染时间决定是否同步垂直,超过33ms就不使用,这也就是经常见到的‘低于30fps时出现撕裂’的原因。

[ 本帖最后由 hourousha 于 2012-9-21 09:43 编辑 ]
作者: Minstrel_boy    时间: 2012-9-21 08:51

引用:
原帖由 zhangjingy2008 于 2012-9-21 08:21 发表
跨平台最强画面应该是战地3,PS3版本各方面完胜。
天师这么多年了还是这幅傻样啊
作者: zhangjingy2008    时间: 2012-9-21 09:25

引用:
原帖由 Minstrel_boy 于 2012-9-21 08:51 发表

天师这么多年了还是这幅傻样啊
好无力的反驳。
作者: Minstrel_boy    时间: 2012-9-21 09:31

引用:
原帖由 zhangjingy2008 于 2012-9-21 09:25 发表


好无力的反驳。
这不是反驳
这是陈述你多年以来一直傻逼的事实
作者: zhangjingy2008    时间: 2012-9-21 10:14

引用:
原帖由 Minstrel_boy 于 2012-9-21 09:31 发表

这不是反驳
这是陈述你多年以来一直傻逼的事实
好无力的陈述,现实中的卢瑟也只能在论坛里骂骂人找精神胜利了,好可怜。
作者: 模拟器高手    时间: 2012-9-21 11:05

技术帝无法改变战区的下限,哎
作者: mapledot    时间: 2012-9-21 11:53

唉,这就是TG的现状。版主的不作为导致满屏的骂人。即使LZ大声疾呼也没人管,导致不喜欢看骂街帖的人都离开了。也怪得不VOODOO要开始到处筹钱才能续费了
作者: tdka    时间: 2012-9-21 11:56

引用:
原帖由 mapledot 于 2012-9-21 11:53 发表
唉,这就是TG的现状。版主的不作为导致满屏的骂人。即使LZ大声疾呼也没人管,导致不喜欢看骂街帖的人都离开了。也怪得不VOODOO要开始到处筹钱才能续费了
纯讨论,有理说理,想找碴进来损和骂的阮青,趁早滚出去,实在要犯贱的,奉陪!

好个大声疾呼

另外楼主根本不懂,和他讲一点用没有,有什么意义?
作者: madobenanami    时间: 2012-9-21 12:01

杠神终于作为阮青出头了!加JS!
作者: tdka    时间: 2012-9-21 12:02

引用:
原帖由 madobenanami 于 2012-9-21 12:01 发表
杠神终于作为阮青出头了!加JS!
有病别在这里发,谢谢
作者: BeastMa    时间: 2012-9-21 12:14

引用:
原帖由 mapledot 于 2012-9-21 11:53 发表
唉,这就是TG的现状。版主的不作为导致满屏的骂人。即使LZ大声疾呼也没人管,导致不喜欢看骂街帖的人都离开了。也怪得不VOODOO要开始到处筹钱才能续费了
你还是去A9做版主吧

在这里让你做个一天帖子不到100条板块的版主,真的委屈你了
作者: seek    时间: 2012-9-21 12:19

引用:
原帖由 hourousha 于 2012-9-20 21:37 发表

我说,你明白你在说什么吗?一个pass渲染不完和屏幕撕裂有啥关系?EndTiling又不会触发swap或SynchronizeToPresentationInterval
每次swap/present之前,都需要把backbuffer(本质就是一个rendertarget)从EDRAM中 ...
学习~
我是普通码农,不是游戏程序员(当年一入职就被调岗了),确实不懂这个,我2楼的发言完全是臆测~
怪不得以前西善镇司说ps3上的bio5用的是三缓冲,360用的是双缓冲..
确实缓冲层数高了,会带来延迟..
作者: mapledot    时间: 2012-9-21 12:22

引用:
原帖由 BeastMa 于 2012-9-21 12:14 发表

你还是去A9做版主吧

在这里让你做个一天帖子不到100条板块的版主,真的委屈你了
还不是拜你们所赐?TG的游戏区整个完蛋了
作者: tdka    时间: 2012-9-21 12:26

引用:
原帖由 seek 于 2012-9-21 12:19 发表


学习~
我是普通码农,不是游戏程序员(当年一入职就被调岗了),确实不懂这个,我2楼的发言完全是臆测~
怪不得以前西善镇司说ps3上的bio5用的是三缓冲,360用的是双缓冲..
确实缓冲层数高了,会带来延迟..
并没有,三重缓冲延迟比双重低
作者: 阿弄    时间: 2012-9-21 12:29

引用:
原帖由 mapledot 于 2012-9-21 11:53 发表
唉,这就是TG的现状。版主的不作为导致满屏的骂人。即使LZ大声疾呼也没人管,导致不喜欢看骂街帖的人都离开了。也怪得不VOODOO要开始到处筹钱才能续费了
别人说满屏骂人骂街也还好说,只研究游戏的版主这么说么就只有233了
作者: 海腹川背    时间: 2012-9-21 12:32

这几个游戏都玩了360版,没有任何撕裂,很完美。
作者: qazwsxqwer    时间: 2012-9-21 12:38

引用:
原帖由 mapledot 于 2012-9-21 12:22 发表
还不是拜你们所赐?TG的游戏区整个完蛋了
要是只有你就更完蛋
作者: hourousha    时间: 2012-9-21 14:12

引用:
原帖由 tdka 于 2012-9-21 12:26 发表

并没有,三重缓冲延迟比双重低
事情不是这样。我们可以做一个简单的理想化的假设。
假设游戏主逻辑循环形如
read input->gamelogic->render->present。最后一步和同步垂直相关。屏幕刷新率60。只采用double buffer或tripple buffer,没有额外的Timer控制。
我们把read input->gamelogic->render的总时间叫做processtime,延迟Latency的定义为read input和最后present之间的差值。
对于processtime<16ms的情况,无论是D-Buffer还是T-Buffer这个latency是恒定的16ms,即刷新的时间间隔。
当processtime = 20ms时会怎样呢,我们来计算一下。设某时刻的时间为0,第n帧的read input时间表示为In,Render finish时间表示为Rn,Present时间表示为Pn
D-Buffer的情况简单如下
I1 = 0,R1 = 20,P1 = 33; I2 = 33,R2 = 53,P2 = 66……
因此延迟为33ms
TBuffer情况如下
I1 = 0,R1 = 20,P1 = 33;I2 = 20,R2 = 40,P2 = 50;I3=40,R3=60,P3=67;I4=60,R4=80,P4=83;I5=80,R5=100,P5=100
延迟基本在20-33ms之间浮动,总体比D-Buffer时低。
当Processtime = 30时
D-Buffer的延迟依然为33不变
T-Buffer情况如下
I1 = 0,R1 = 30,P1 = 33;I2 = 30,R2 = 60,P2 = 67;I3=60,R3=90,P3=100;I4=90,R4=120,P4=133;I5=120,R4=150,P4=150
可见此时的延迟在30-40之间浮动,总体比D-Buffer时高。

而实际情况则要更复杂,因为processtime每帧都是变动的。但结论就是T-Buffer会给input latency带来更多的不确定性。

[ 本帖最后由 hourousha 于 2012-9-21 14:19 编辑 ]
作者: zafm0861    时间: 2012-9-21 15:19

posted by wap, platform: iPhone
引用:
原帖由 @mapledot  于 2012-9-21 12:22 发表
还不是拜你们所赐?TG的游戏区整个完蛋了
噗,你看不惯就继续跨区封人呗
又不是没干过,对吧?
作者: tommyshy    时间: 2012-9-21 16:37

posted by wap, platform: SAMSUNG (i917)
引用:
原帖由 @阿弄  于 2012-9-21 12:29 发表
别人说满屏骂人骂街也还好说,只研究游戏的版主这么说么就只有233了
psv抵抗大于战争机器3的神论,确实是振聋发聩
作者: austin17    时间: 2012-9-21 17:01

引用:
原帖由 tommyshy 于 2012-9-21 18:37 发表
posted by wap, platform: SAMSUNG (i917)

psv抵抗大于战争机器3的神论,确实是振聋发聩
头顶青天两眼泪,耳边响起驼铃声
作者: 昵称无效    时间: 2012-9-22 11:27

posted by wap, platform: Android

d3d不管ani都没提供过3重缓冲的驱动,只在opgl下有选项,难道在360上反而对此不做限制?
第三方工具提供win下的d3d三重缓冲,但是对底层d3d9.dll有改动。
作者: Minstrel_boy    时间: 2012-9-22 20:29

引用:
原帖由 tommyshy 于 2012-9-21 16:37 发表
posted by wap, platform: SAMSUNG (i917)

psv抵抗大于战争机器3的神论,确实是振聋发聩
其实吧,我面对这样的神论,很有智商上的优越感
作者: zyx1235    时间: 2012-9-22 21:21

可能是PS3的浮点运算能力强一点吧
作者: seek    时间: 2012-9-23 00:12

引用:
原帖由 tdka 于 2012-9-21 12:26 发表

并没有,三重缓冲延迟比双重低
不是吧..缓冲级数越多,延迟越严重,但是帧率会提高..
同理,cpu流水线级数越多,延迟也越严重,但是频率会提高
作者: tdka    时间: 2012-9-23 00:14

引用:
原帖由 seek 于 2012-9-23 00:12 发表

不是吧..缓冲级数越多,延迟越严重,但是帧率会提高..
同理,cpu流水线级数越多,延迟也越严重,但是频率会提高
看楼上的分析
并不存在这种关系




欢迎光临 TGFC Lifestyle (http://bbs.tgfcer.com/) Powered by Discuz! 6.0.0