前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >GDC2017: PlayStation VR Worlds中的渲染优化

GDC2017: PlayStation VR Worlds中的渲染优化

作者头像
逍遥剑客
发布2018-05-09 16:58:52
7040
发布2018-05-09 16:58:52
举报

介绍了一种很trick的优化方法: Checkerboard Rendering 这里他们称之为Resolution Gradient

这里写图片描述
这里写图片描述

主要的思想跟NVIDIA的MultiRes Shading差不多, 但是不用依赖硬件的特性才能实现. 简单一点说就是, 因为VR显示器透镜变形的原因, 边缘的渲染分辨率用不着那么高, 中心区域是全分辨率就好了. 这个优化思路来自于GDC2016上”Fast and Flexible: Technical Art and Rendering For The Unknown”.

这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述

通过4个2x2像素的Quad(这是做像素着色的基本单位)做Mask, 就能实现4个级别的分辨率

这里写图片描述
这里写图片描述

空出来的那些黑色像素使用最近有效像素的颜色填充上, 需要一个额外的Dilate Pass(当然也可以整合到后期效果里, 直接在采样时就取有效像素)

这里写图片描述
这里写图片描述

跟TemporalAA结合到一起可以解决走样的问题, 但是需要每帧使用不同的Mask

这里写图片描述
这里写图片描述

在60FPS的情况下, 结省了大约4ms!!! 但是走样的问题还是挺明显的, 特别是在高频细节或者动态的像素上

这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述

与4x4MSAA一起用, 调整MSAA的采样位置, 这样可以做到像素级的Mask, 而不是之前的Quad, 效果也就好多了

这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述

还有一个问题, 如果不能开Early Z, 那么这个优化就没意义了, 解决办法是弄个PrePass

这里写图片描述
这里写图片描述

未来可以根据画的物件类型来决定哪些像素使用低分辨率(Mask)来渲染


既然这个技术不依赖特定的显卡, 那么就可以在PC的VR游戏上用, 在PixelBound的情况下, 性能提升应该还是很可观的, 后续有时间可以尝试下

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2017年04月10日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档