SteamVR开发笔记-01怎样消去VR中的锯齿(Dismiss flickering edges in your vr scene)
目标
- 解决Unity VR场景中的锯齿和阴影抖动问题
工具
- Unity2019.4.9
- SteamVR Unity Plugin 2.7.3
- Post Processing 2.3.0
操作步骤
新建Unity工程导入SteamVR Unity Plugin,按照向导进行配置,我选择Accept All,当弹出对话框询问是否使用XR时,选择Legacy VR。
打开Package Manager安装Post Processing
新建一个层,命名为Post Processing
打开Project Settings/Quality面板,设置Anti Aliasing 为2x Multi Sampling,注意这个值在较低的SteamVR Unity Plugin版本中可以设置为Disabled,建议不要设置为4x或8x
继续在Project Settings/Quality面板上,找到Shadows Projection 选项,设置为Stable Fit,Shadowmask Mode选择Distance Shadowmask
打开Project Settings/Player面板,在XR Settings中设置Stereo Rendering Mode 为Multi Pass,注意这一步非常重要
在VR场景中找到主相机(在我的项目中采用了SteamVR Unity Plugin的Player预设体,主相机为VRCamera),添加Post-process layer 组件,并做如下设置
现在可以运行了,可以通过激活Post-process layer组件和关闭该组件进行效果对比
要点
- 在Quality设置面板中,Anti Aliasing是指硬件的抗锯齿,即使设置到8x仍然很难满足VR项目的需要,尤其当场景中有栏杆、网等由很多线条构成的几何体时会出现大量的闪烁边缘(Flickering edges),因此没有必要设置很高,我采用的是后处理抗锯齿。在早期的SteamVR Unity Plugin 版本中这个选项要求设置为Disabled,因为Valve本身的输出会进行抗锯齿处理。新版本的要求设置成2x以上,否则会提示报错。
- 在Quality设置面板中,Shadows Projection选项设置了阴影的投影方式,一般来讲Close Fit可以使阴影与模型间贴合的更加紧密显得更加真实,但是在VR场景中,Close Fit投影的阴影会出现抖动闪烁的问题,因此要设置为Stable Fit。
- 在XR Settings中,Stereo Rendering Mode必须设置为Multi Pass,这是因为该模式支持后处理抗锯齿,其他模式下采用后处理抗锯齿会出现显示错误:比如重影、锯齿闪等。
- 后处理抗锯齿的三种方式中,我采用了TAA方式,这种方式对于动态过程的抗锯齿有很好的效果。三种抗锯齿方式的详细对比可以查阅相关的文档。
SteamVR开发笔记-01怎样消去VR中的锯齿(Dismiss flickering edges in your vr scene)相关推荐
- 微信公众号Java开发-笔记01【微信公众号介绍、开发环境搭建】
学习网址:哔哩哔哩网站 微信公众号开发-Java版 微信公众号Java开发-笔记01[微信公众号介绍.开发环境搭建] 微信公众号Java开发-笔记02[] 微信公众号Java开发-笔记03[] 微信公 ...
- Bootstrap响应式Web开发笔记01——基础入门
Bootstrap响应式Web开发笔记01--基础入门 Bootstrap响应式Web开发笔记02--移动端页面布局 Bootstrap响应式Web开发笔记03--Bootstrap栅格系统 Boot ...
- 【unity 保卫星城】--- 开发笔记01(飞机移动)
[unity 保卫星城]--- 开发笔记 一.在UnityHub中创建2D项目,取名Defend_Star_City 二.导入MangerOfManger框架 三.在打包中,切换安卓开发模式 四.创建 ...
- Unity+C#开发笔记(六)| unity中单例模式的使用 | ╭(●`∀´●)╯╰(●’◡’●)╮
首先单例模式是做什么用的呢?对于我一个萌新来说,目前我用到的就是方便别的类调用!,所以在不继承MonoBehavior的类,我都喜欢加个单例模式方便调用(我知道好像正确原因不是这个0.0但主要是妹看懂 ...
- Unity+C#开发笔记(七)| unity中继承MonoBehaviour类的脚本里的函数怎么调用 | ╭(●`∀´●)╯╰(●’◡’●)╮
继上文,有个蠢货单例模式只是用来引用,突然遇到了一个继承了MonoBehaviour的类,然后unity跟你讲:不!你不可以在我这里这么用! 啊这--吓得我当场百度... ************** ...
- 【转】C#开发笔记之05-迭代器中的状态机(State Machine)到底是什么?
C#开发笔记概述 该文章的最新版本已迁移至个人博客[比特飞],单击链接 https://www.byteflying.com/archives/961 访问. 状态机可以理解为实现了备忘录模式(仅作为 ...
- C#开发笔记之05-迭代器中的状态机(State Machine)到底是什么?
C#开发笔记概述 该文章的最新版本已迁移至个人博客[比特飞],单击链接 https://www.byteflying.com/archives/961 访问. 状态机可以理解为实现了备忘录模式(仅作为 ...
- 【汇编实战开发笔记】从汇编代码中找出一段普通的for循环变成“死循环”的根本原因(RT-Thread技术论坛优秀文章)
文章目录 1 前言 2 问题描述 3 简单分析 4 场景再现 5 柳暗花明 6 找到证据 6.1 究竟是不是警告 6.2 盘根问底 6.3 解除风险 7 扩展延伸 7.1 RISC-V架构 7.2 8 ...
- ESP32-IDF开发笔记 | 01 - ESP-IDF开发环境搭建(2023.04.08更新)
更新内容 更新时间 2021.05.01 基于ESP32+IDF 4.4完成初稿 2023.03.12 基于IDF 5.0.1添加VScode IDF扩展安装.配置.使用方法 2023.04.07 增 ...
最新文章
- 实验6 触发器的使用
- 【ICML2021】计算机视觉中的自注意力机制教程,谷歌伯克利出品
- python3.x中如何实现print不换行
- SVM分类器原理详解
- 网易游戏2011.10.15校园招聘会笔试题
- 计算机组成原理笔记——存储器分类、层次结构、技术指标、存储单元地址分配
- helm安装postgres_Helm 入门介绍 Kubernetes 上的包管理软件
- jupyter notebook和python有什么区别_如何在Jupyter Notebook中使用Python虚拟环境?
- 熬夜整理了10个行业的40份可视化大屏模板,可直接拿走套用
- Android模拟器——Windows上比较适合王者荣耀的是腾讯手游助手
- python-视频抽帧、数据集命名
- MVC+angularjs
- html平面图绘制,如何利用Word绘制校园平面图?
- Fate Decision剧本
- 树莓派 摄像头mjpg-streamer视频推流+开机自启动
- hackbar小插件
- Oracle Flashback之flashback table
- 打开anaconda prompt 出错 import ctypes
- 冠铭机器人_创新时代 智造引领|众为兴总冠名支持 2019富友会年会圆满落幕
- 求正整数n所有可能的和式的组合「百度凤巢」
热门文章
- Python 最好大学网大学排名爬取(2020年)
- 研究c语言必须的软件,为什么必须学习C语言
- 泰勒一维阵列天线matlab
- matlab 读二值图片,二值图像
- 第五人格服务器维修到几点,第五人格1月10日更新几点结束 第五人格1月10日更新维护公告...
- linux下centos生成火车动画sl命令
- 奥拉星手游怎么用电脑玩 奥拉星手游模拟器教程
- 数据工程思想与R语言认知
- MnistData的读取
- navicat 阿里云 服务器 mysql_阿里云服务器优惠券领取 可以便宜购买阿里云服务器...