VR延迟优化方法(二)

xiaozhu12371237 2016-10-09 07:49:11
加精

驱动层面的优化

假设垂直同步时, 当前帧还没有渲染完毕, 这时如果要进行Timewarp的话, 就需要驱动提供一种高优先级的异步调用, 这就是异步Timewarp的由来: Timewarp操作与场景渲染并行执行, 如果没有新的渲染画面, 就继续使用上一帧的画面进行Timewarp.



这可以在一定程度上补偿FPS不达标造成的延迟问题, GearVR中正是应用了这项技术, 保证了手机VR的体验.

当然, PC上使用项技术还是有一些限制:
必须是Fermi, Kepler, Maxwell(或更新)核心的GPU
GPU是以DrawCall为单位调度的, 所以耗时太长的DrawCall是插入不了Timewarp绘制操作的
需要最新的Oculus和NVIDIA驱动支持
异步Timewarp并不是说FPS低于标准还能流畅跑, 这只是一种补救措施, 所以优化仍然要好好做-_-

驱动方面还有一些其它的优化空间, 比如强制提交渲染队列:



如果驱动中缓存了3帧, 那延迟优化就白做了



另外就是大家耳熟能详的Back Buffer(Double Buffer Rendering), 其实也会增加一点延迟, 不如省掉这一步, 即Front Buffer Rendering, 或者叫Direct Mode:

...全文
3800 5 打赏 收藏 举报
写回复
5 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
DreamLife. 2016-10-13
  • 打赏
  • 举报
回复
棒棒的,好好学习,天天向上
细水长流- 2016-10-12
  • 打赏
  • 举报
回复
棒!
qq_27223559 2016-10-11
  • 打赏
  • 举报
回复
学习了 感谢楼主
鱼弦 2016-10-11
  • 打赏
  • 举报
回复
业余草 2016-10-10
  • 打赏
  • 举报
回复
厉害,非常的厉害!!! www.codedq.net
发帖
Qualcomm开发

700

社区成员

为移动开发者提供丰富的解决方案、全面的技术下载。本版以游戏、多媒体、高效能等三个技术为核心,为开发者营造一个轻松、高效的学习交流平台。
社区管理员
  • Qualcomm开发
  • 霍大神
加入社区
帖子事件
创建了帖子
2016-10-09 07:49
社区公告
暂无公告