Board logo

标题: [新闻] PlayStation VR120帧的秘密? [打印本页]

作者: madrista7    时间: 2016-3-21 16:35     标题: PlayStation VR120帧的秘密?

在A9看到这个新闻链接,说是韩媒爆出PSVR的120帧完全靠算法实现:
PLAYSTATION VR实现120帧的秘密,在于索尼开发了一套“暂存再投射”算法。这套算法集成在PS4游戏的开发套件中。而该算法在VR之前曾应用于《杀戮地带暗影坠落》的多人部分。根据索尼在《暗影坠落》时期公开的资料。这套算法能够让CPU帮助主机GPU和APU找出上下两帧图像中重复的部分,将第二帧中与上一帧完全重复的部分直接投射上去,而GPU和APU腾出机能渲染第二帧中与上一帧发生差异的部分。这样一来就节约了渲染时间,让主机把机能用在刀刃上。

有业内能解惑一下难道真的纯靠算法实现120帧吗?这个算法有这么牛逼吗?为什么不用在PS4所有游戏上?
作者: BeastMa    时间: 2016-3-21 16:38

posted by wap, platform: Chrome
一点都不牛逼啊

最早公布的时候我就说了,这个120F应该就是SONY电视机那个插帧算法,完全猜中。
作者: rainsaga    时间: 2016-3-21 16:42

用cpu减轻gpu负担 ,提高GPU效率。感觉不错啊
貌似原理和抗锯齿挺像
只渲染边缘部分
作者: zhouaa    时间: 2016-3-21 16:46

PS4的CPU本身就不富余吧
作者: Viewtifuldai    时间: 2016-3-21 16:47

技术的骚尼~!
作者: signup    时间: 2016-3-21 16:49

有本事别外挂黑盒子啊。。。
作者: Nemo_theCaptain    时间: 2016-3-21 16:49

索尼早就就承认了,还用得着韩媒“爆”?
PSVR原生帧数底线一开始是120,后来降低到90,现在降低到60
但是原生60可以插帧插到120
当然原生120帧的游戏还是会有的,只不过画面好的大概也就75-90左右这种
作者: ngw39    时间: 2016-3-21 16:49

引用:
原帖由 BeastMa 于 2016-3-21 16:38 发表
posted by wap, platform: Chrome
一点都不牛逼啊

最早公布的时候我就说了,这个120F应该就是SONY电视机那个插帧算法,完全猜中。
插帧不是会增大输入延迟吗
作者: madrista7    时间: 2016-3-21 16:50

引用:
原帖由 BeastMa 于 2016-3-21 16:38 发表
posted by wap, platform: Chrome
一点都不牛逼啊

最早公布的时候我就说了,这个120F应该就是SONY电视机那个插帧算法,完全猜中。
不对啊,sony电视机那个插帧算法会大幅增加输入延迟。估计不是同一个算法,如果这个算法用在VR游戏中,隔夜饭都得吐出来
作者: endrollex    时间: 2016-3-21 16:53

引用:
原帖由 ngw39 于 2016-3-21 16:49 发表


插帧不是会增大输入延迟吗
输入还是保持60帧吧,这个又不需要120帧
作者: madrista7    时间: 2016-3-21 16:54

引用:
原帖由 zhouaa 于 2016-3-21 16:46 发表
PS4的CPU本身就不富余吧
是的,所以PSVR有个外置处理单元负责接管CPU的3d音频计算,解放了部分CPU的资源,估计就是为了这个投射算法,sony用了个词叫reprojected。
作者: ngw39    时间: 2016-3-21 16:56

引用:
原帖由 endrollex 于 2016-3-21 16:53 发表

输入还是保持60帧吧,这个又不需要120帧
你没明白输入延迟是什么

正常情况下,生成一帧,显示一帧
插帧要把前后两帧都生成好,才能算出中间一帧,然后再显示中间一帧
作者: momou    时间: 2016-3-21 16:59

我记得当年以色列开发过一款主板支持的优化图形的技术 叫什么Vir什么的 是不是那个意思?
作者: rollpard    时间: 2016-3-21 17:02

posted by wap, platform: iPhone
索尼赶紧让第三方把30帧插到60,我感觉比原生30好
作者: endrollex    时间: 2016-3-21 17:14

引用:
原帖由 ngw39 于 2016-3-21 16:56 发表


你没明白输入延迟是什么

正常情况下,生成一帧,显示一帧
插帧要把前后两帧都生成好,才能算出中间一帧,然后再显示中间一帧
那应该不是单纯插帧,估计跟延迟渲染差不多
第1帧算好,中间一帧其实在算后面第2帧差异,然后2-1修正输出插帧

[ 本帖最后由 endrollex 于 2016-3-21 17:17 编辑 ]
作者: 泡泡嘴    时间: 2016-3-21 17:28

posted by wap, platform: Android
不是什么牛b技术,很多电视都有插帧倍频功能
作者: Chameleon    时间: 2016-3-21 17:39

电视为了弥补计算不过来,是插一两帧之后再插一帧黑帧的吧,插完之后暗的一逼,而且即便这样还是会让人感觉到有延迟,这个要要完全考计算来插,而且保证操作,SONY又黑科技了吗

[ 本帖最后由 Chameleon 于 2016-3-21 17:55 编辑 ]
作者: LTFYH    时间: 2016-3-21 17:55

插帧怎么可能是插黑帧,是根据两帧之间得差别动态计算生成一副中间的图像,所以插帧这种一般需要缓存画面,玩游戏会感觉到明显的延迟。
作者: 最后的守护者    时间: 2016-3-21 18:02

posted by wap, platform: iPhone
肯定有延迟啊!第二帧不出来1.5帧就出不来,然后第二帧又要等1.5帧播放后才能显示,这还只是最理想状态了,可能vr体验对帧数的敏感性大于响应速度才会这么搞!
作者: abracadabra949    时间: 2016-3-21 18:03

你们都没看懂吧,插帧是插帧,这个是把下一帧要渲染的内容去对应上一帧内容,没变化的的部分就不渲染了(原来帧缓存里对应的像素保留)。前者是完全在帧缓存里操作,后者主要是GPU的渲染方式。
作者: 狂风007    时间: 2016-3-21 18:12

肯定不是电视那个插帧技术,电视那个插帧是造成输入延迟的第一元凶,随便那个电视牌子,做的游戏模式来减轻输入延迟,游戏模式里面第一个关掉也是必须关掉的就是插帧。

PSVR这个肯定是另外的算法
作者: madrista7    时间: 2016-3-21 18:19

posted by wap, platform: Lenovo
引用:
原帖由 @最后的守护者  于 2016-3-21 18:02 发表
肯定有延迟啊!第二帧不出来1.5帧就出不来,然后第二帧又要等1.5帧播放后才能显示,这还只是最理想状态了,可能vr体验对帧数的敏感性大于响应速度才会这么搞!
vr游戏对帧数和响应时间都要求非常高,否则玩家立即会感到不适
作者: sceic    时间: 2016-3-21 18:41

引用:
原帖由 BeastMa 于 2016-3-21 16:38 发表
posted by wap, platform: Chrome
一点都不牛逼啊

最早公布的时候我就说了,这个120F应该就是SONY电视机那个插帧算法,完全猜中。
插针的话,延迟得特么大多少啊。
作者: 查理王    时间: 2016-3-21 18:48

posted by wap, platform: 红米Note3
看介绍是可以不渲染画面重复的部分,这很神啊,能节约大量资源
作者: 腻水染花腥    时间: 2016-3-21 21:20

posted by wap, platform: Chrome
pipeline不同

电视是:
a=render_full(1f); // 18ms
b=render_full(2f); // 18ms
c=diff(1f,2f); // 50 ms
output(a, c, b); // total = 18ms+18ms+[50ms(delay)]

shadow fall是:
a=render_odd_half(1f); //0.5*18ms
b=render_even_half(2f); //0.5*18ms
output((a&&b)); // total = 18ms

简单来说就是一帧1080p时间(18ms, 60fps)我draw两帧1080i(120fps)
作者: madrista7    时间: 2016-3-21 22:51

posted by wap, platform: Lenovo
引用:
原帖由 @腻水染花腥  于 2016-3-21 21:20 发表
pipeline不同

电视是:
a=render_full(1f); // 18ms
b=render_full(2f); // 18ms
c=diff(1f,2f); // 50 ms
output(a, c, b); // total = 18ms+18ms+

shadow fall是:
a=render_odd_half(1f); //0.5*18ms
b=render_even_half(2f); //0.5*18ms
output((a&&b)); // total = 18ms

简单来说就是一帧1080p时间(18ms, 60fps)我draw两帧1080i(120fps)
明白了,电视是渲染前帧和后帧,再根据前后帧推测一帧中间帧,这个把这三帧都处理完在输出显示时延迟很大。
sf是渲染半幅前后帧,再通过某种像素填充技术来达到近似原生效果。
不知道用在psvr时的算法是否也进化了,执行效率会更好更高?
作者: 腻水染花腥    时间: 2016-3-22 01:17

posted by wap, platform: Chrome
引用:
原帖由 @madrista7  于 2016-3-21 14:51 发表
明白了,电视是渲染前帧和后帧,再根据前后帧推测一帧中间帧,这个把这三帧都处理完在输出显示时延迟很大。
sf是渲染半幅前后帧,再通过某种像素填充技术来达到近似原生效果。
不知道用在psvr时的算法是否也进化了,执行效率会更好更高?
那个只是个简化思路,实际情况要更复杂,效率上一般画面越简单越有效(比如PS4上的垃圾INDIE VR),如果画面复杂到500ms/f一样还是幻灯片,因为人眼速度有极限,只要把帧延迟控制到人眼识别之外就没问题

这种办法的一个缺点就是锯齿感,在显示器上明显但在头戴上并不明显,所以现在也是VR开发里对应低端市场如960/970的主流思路之一,因为现阶段跑高帧数比什么都重要

与这个相反的思路也有,比如对应高端市场的如4xTTX的可以跑到240fps,每四帧合成一帧输出,效果令人泪流满面
作者: 倍舒爽    时间: 2016-3-22 01:34

posted by wap, platform: 小米 4
我想起来了,kz4多人是960*2*1080,但这个960是奇偶行交替显示的…
也就是说1920i??
画质损失不算太大,最大的问题在于半透明层会出现难看的横纹…
也就是说凡是120fps的游戏都会以这个方式出现?那蛮不错的啊…
作者: madrista7    时间: 2016-3-22 01:44

posted by wap, platform: Lenovo
引用:
原帖由 @腻水染花腥  于 2016-3-22 01:17 发表
那个只是个简化思路,实际情况要更复杂,效率上一般画面越简单越有效(比如PS4上的垃圾INDIE VR),如果画面复杂到500ms/f一样还是幻灯片,因为人眼速度有极限,只要把帧延迟控制到人眼识别之外就没问题

这种办法的一个缺点就是锯齿感,在显示器上明显但在头戴上并不明显,所以现在也是VR开发里对应低端市场如960/970的主流思路之一,因为现阶段跑高帧数比什么都重要

与这个相反的思路也有,比如对应高端市场的如4xTTX的可以跑到240fps,每四帧合成一帧输出,效果令人泪流满面
ttx四帧合成一帧,听着就很泪流满面……
看来sony这个所谓投射算法大家都在用类似的东西,只是sony宣传比较多些,或者目前它的算法更成熟一些?
作者: madrista7    时间: 2016-3-22 01:46

posted by wap, platform: Lenovo
引用:
原帖由 @倍舒爽  于 2016-3-22 01:34 发表
我想起来了,kz4多人是960*2*1080,但这个960是奇偶行交替显示的…
也就是说1920i??
画质损失不算太大,最大的问题在于半透明层会出现难看的横纹…
也就是说凡是120fps的游戏都会以这个方式出现?那蛮不错的啊…
应该说原生60帧的会以这种方式,原生90和120的不会吧




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