1.简介
本篇主要内容为:URP如何与VRTK结合、URP需要注意的地方、VRTK的功能进行阐述。
因项目本身要求要渲染出比较好的画质,所以抛弃了Unity默认渲染管线Built-in,使用URP进行渲染,当然也可以选HDRP,但考虑到后期项目可能会以OpenGL的渲染模式发布,以防万一最终才决定使用URP。本篇不针对 VRTK 和 URP 分别介绍,具体他们的作用可自行百度哈。
版本信息:
- Unity 2019.4.10
- VRTK 3.3
- SteamVR 1.2.3
- URP 7.3.1
2.在项目中使用VRTK和URP
个人建议先导入VRTK和SteamVR包,再导入URP包,因为VRTK和SteamVR本身一起导入可能会出现BUG,单独导入URP可能也会出现一些问题,确保VR插件没问题后再导入URP包也可以很好的定位问题出在哪里。
全部导入完成后需进行URP的一些设置,如果直接在Unity Hub创建URP的工程可忽略此步。
1)创建URP渲染管线
在Assets右键—Create—Rendering—Universal Render Pipeline—Pipeline Asset(Forward Renderer),点击后在Assets中自动生成两个URP渲染管线资源。
2)使用URP渲染管线
在Editor—Project Settings—Graphics添加新建的URP管线资源。
3)升级项目材质
最后一步就是将项目所有材质升级到URP材质,在Edit—Render Pipeline—Universal Render Pipeline—Upgrade Project Mat......。
4)手柄设置
上一步已经将项目所有材质进行了升级,在Scene视图中观察没有问题,但头盔运行起来之后发现手柄材质还是无法识别。
这是因为手柄的模型是项目运行后动态加载出来的,所以需要在非运行状态下设置手柄的Shader为URP/Lit,也可以运行后写个延迟方法动态设置手柄材质。(介入了URP的项目工程所有基础材质都会从Standard替换为Lit)
5)使用 Volume 后处理
在Scene视图下右键—Volume—Global Volume创建Volume。
创建完成后就可以在Volume脚本下添加各种后处理效果了,具体这些选项都可以产生什么样的效果可参考Volume 详解,虽是HDRP,但后处理效果选项HDRP与URP几乎是一致的。
6)Camera 设置
到这一步发现后处理组件添加之后可以在Scene视图下观察到变化,但头盔运行起来还是跟没调整一样,这是因为URP导入之后会重写Camera组件,需要在Camera中的Renderer中选择URP渲染器并勾选Post Processing。
3.其他问题
在项目中要使用到高亮效果,使用之前一直用的HighlightingSystem发现有问题,应该是不支持URP,具体原因也没去找干脆就换了个支持URP的高亮插件:Highlight Plus 9.1.1,免费资源链接导入完成后还需进行一些设置
1.将插件导入之后需要运行HighlightPlus_URP_Pipeline.unitypackage导入URP包
2.导入完成后代码报错,需要修改HighlightPlusRenderPassFeature.cs脚本的代码
3.将高亮显示配置文件(Highlight Profile)添加到通用渲染管线(Universal Render Pipeline Asset)中Forward Renderer的功能列表中,到此URP可正常使用Highlight Plus高亮插件
后续如果需要新增效果类插件必须将插件对应的配置文件添加到URP的正向渲染器(Forward Renderer)中,此篇插件描述当作案例参考。