赞
踩
Urp
全称为Universal Render Pipeline
,即通用渲染管线
在开始学习Urp
之前,需要了解一下,什么是Render PipeLine
(渲染管线),渲染管线也称为渲染流水线或像素流水线或像素管线,是显示芯片内部处理图形信号相互独立的的并行处理单元
在最开始之前,Unity
使用的是固定渲染管线,这样对于游戏开发者就没有个性化的调整空间,有一定的限制,所以后来出现了可编程渲染管线Srp
关于可编程渲染管线:
- 在
Unity
中,可编程渲染管线底层使用C++
封装一些接口来提供给C#
去调用,帮助游戏开发者可以在脚本中使用这些接口- 可编程渲染管线有
Urp
和Hdrp
两者,而Urp
主要是面向低性能终端的一种渲染方式- 最开始
Urp
名字是Lwrp
,后来改名为Urp
,未来也许会作为Unity
的默认渲染管线
Urp
是一种SRP
(可编程渲染管线),相比于默认渲染管线,在提升画面表现的同时,也可以通过一定的优化提升游戏的性能表现
1、 开始升级前准备
在开始之前,需要你备份你的项目,确保在升级过程中出现问题还有挽回的空间
关于项目的备份:
- 可以打包成
Package
来导出项目
在你做好备份后,就可以正式开始项目的升级工作,我们可以在导航栏中的Window
选项中找到Package Manager
,点击进去,找到Universal RP
,然后点击安装即可完成安装
2,将默认渲染管线替换为Urp渲染管线
导入Urp
插件后,在Project
面板右键选择Create -> Rendering - >Universal Render Pipeline -> Pipeline Asset
创建一个Urp的Asset命名为UrpTest
接下来在Edit
中打开Project Setting
面板,选择Graphics
,然后再其中的Scriptable Render Pipeline settings
中选择UrpTest
完成上面的设置,就完成了将默认渲染管线替换为Urp
渲染管线的步骤。
返回场景,这个时候你就会“惊喜”的发现,你的场景变成一片粉色:
项目升级到Urp产生的几个负面效果:
- 第一:就是标准材质失效,可以通过一键修改回来
- 第二:自己创建地形Tarren所刷的树同样丢失,而且很难一键改回
- 第三:就是自己编写的大多Shader也会失效,只能够重新编写
此时的你无助,彷徨,怎么办?怎么办?脑袋中不停的回想,产生这种现象的原因,是因为材质之前的Shader
无法被Urp
所识别渲染,所以需要我们去改变其材质的Shader
类型
关于材质
Shader
类型:
在默认渲染管线中模型的Material的默认
shader
为Standard
,而当我们将项目升级为Urp
时,这中Shader
类型不能被Urp
所识别渲染而
Urp
有其可以支持的Shader
类型,我们可以手动把材质Shader
调整为Urp
支持的类型
虽然可以一个个的手动调整,但是场景中模型太多的话,也是会消耗大量的时间精力的,有没有好的方法来快速替换呢,还真有,我们点击Edit -> Render Pipeline -> Universal Render Pipeline -> 看图(太长的英文)
点击该选项后,我们就会发现场景中的一部分模型显示正常,还有一部分不是很正常,这是因为某些材质的Shader
是手动编写的,或者是某些特定的Shader
,没法自动替换为默认材质,需要我们手动去调整, 具体调整的细节可以自行百度
3,项目升级为Urp出现的问题:
3.1、 自己编写的Shader
不兼容
Shader Graph
创建一个Shader
3.2、关于多相机问题
Camera
组件上的Rander Type
改为Overlay
,同时在主相机上的Camera
组件中的Stack
功能区添加上需要混合的相机3.3、关于Terrain
首先第一条,刷在地形上的植物没法自动调整Shader
,需要手动调整,树叶材质Shader可以调整为:SpeedTree8
,而树干调整为SpeedTree7
即可
第二条,对于地形的材质也需要自己进行更改,在Terrian
组件中有一个齿轮的按钮里面找到Material并替换成下面这样正确的材质即可:
-
第三条,发现在相机在渲染远距离用刷子刷出的植物颜色都是蓝色,这是因为Terrain
的设置选项中Fade Length
参数的印象,调大这个参数,这种情况就会发生在更远的地方
3.4、关于预制体问题
Project
面板预制体图标显示依旧是粉色,这个时候不方面编辑场景,可以先把预制体的Mesh Rander
隐藏然后在显示,就可以正常加载出来了3.5、关于场景中物体最大受光影响数量问题
Player Setting
中的Quality
中调整,但是升级到Urp后,需要在Urp
的配置文件(即之前创建的UrpTest
)中来调整一、首先对于Urp的配置文件进行参数调整
1,调整物体阴影:
在Urp配置文件中,即之前创建的`UrpTest文件中找到Shadows,调整其中的参数,就可以获得不同效果的一个阴影,但是请注意,显示效果是和性能成反比的,不要一味的追求显示效果而消耗大量的性能:
关于这些参数的具体含义为,如果你想了解就可以看看下面的:
Distance
:显示阴影的最大距离Cascades
:可以通过分级来在不同的距离显示不同的阴影效果Depth Bias
:深度偏移,保证阴影正常在其他物体上显示的一种技术Normal Bias
:用来调整阴影的虚实效果,数值越大,阴影越虚另外阴影的质量和Lighting
中的haow Resolution
同样有关系,其数值越大,阴影的质量越好:
2,调整游戏画面质量
同样在配置文件中找到Quality
,既可调整游戏画面质量,首先就是HDR
,可以很大程度的提升游戏的对比度,使得游戏细节更加丰富,接下来就是Anti Aliasing
,即锯齿,调整数值越大,画面越干净清晰,最后的Render Scale
数值越大,游戏细节越多,为零时就接近马赛克的效果
二、游戏画面后处理
终于来到了重头戏,Urp
画面表现的关键,即游戏的后处理,这一环节主要是在游戏的后期进行,可以进行一些风格化的画面调整,也可以为游戏画面加上一些高级的效果,比如说景深,滤镜等等东西
操作步骤:
首先在Hierarchy
面板右键,选择创建Volume
,然后选择Global Volume
,即全局效果的后处理
接下来就可以点击New
创建一个Profile
,这样就可以添加一些后处理的效果:
需要什么样的效果,可以通过点击Add Override添加,类似于Unity的对象添加组件,这里面列出几个关键的后处理效果:
Bloom:
关于Bloom
的几个参数:
Threshold
:设置URP
应用Bloom
的伽玛空间亮度值。URP
不会应用于场景中亮度低于此值的任何像素。最小值为0,不过滤任何内容。默认值为0.9。没有最大值
Intensity
:设置Bloom
滤镜的强度,范围为0到1。默认值为0,这表示Bloom
效果被禁用
Scatter
:将光晕效果的半径设置在0到1的范围内。值越大,半径越大。默认值为0.7
Tink
:使用颜色选择器选择要使用的Bloom
效果的颜色
High Quality Fittering
:高质量
Deir Testure
:分配一个纹理,以将灰尘(例如污迹或灰尘)的效果施加到镜头上
Dirt Intensity
:设置镜头污垢效果的强度
通过对于一些参数调整就可以获得风格化的画面,下面是一个简单的对比前后的效果:
Depth Of Field:
另外一个可以显著提升游戏质感的后处理方案是Depth Of Field
,即画面的景深效果,可以通过对于焦距和光圈的调整来得到一个比较好的景深效果,但是它不是那么智能,没有自动对焦的功能,所以只能在特定的距离获得一个背景虚化的效果,如果追求动态的背景需要是比较难的:
下面依旧列出几个关键参数:
Mode
:有Bokeh
和Gaussian
,即焦外虚化和高斯模糊
Focuse Distance
:设置到摄像机的距离,在此距离远场开始模糊
Focuse Length
:设置相机传感器和相机镜头之间的距离(以毫米为单位)值越大,景深越浅
Aperture
:设置光圈比(称为光圈值或f值),值越小,景深越浅
通过调整光圈和焦距就会获得一个比骄傲好的显示虚化效果:
Channel Mixer
通道混合器效果可修改每个输入颜色通道对输出通道整体混合的影响。例如,如果增加绿色通道对红色通道的整体混合的影响,则最终图像中所有绿色(包括中性/单色)的区域都会变得偏红色
可以通过该技术来实现下面的效果:
项目升级Urp
主要遇到是Material
显示不出来问题,需要修改Material
的Shader
来解决,Unity
提供一键解决方案,但是对于某些特殊情形并不起效,需要我们通过手动调节来更改其显示效果
而升级Urp
主要的优势在于其强大的后处理能力,可以为我们游戏画面表现提供更多风格化的表现形式,所以多花些心思在你的画面表现上面的,会很有成就感的
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。