Unity-Sense-5
1.4 Unity HDRP项目设置
4.HDRP配置文件(HDRP Asset)
HDRP得全称是High Definition Render Pipeline(高清渲染管线)。它是基于Scriptable Render Pipeline(简称 SRP,中文翻译为 ”可编程渲染管线“ )实现的一个模板,目前的目标平台是支持 Compute Shader的带独立下i安卡的台式机和家庭游戏机,比如PlayStation4 和 Xbox One.基本上可以把Unity传统的内置渲染管线理解为一个黑盒子,几乎没有什么手段可以控制它的各个渲染姐u的那。 SRP的出现让这一情况完全改变。你甚至可以用SRP创造自己的渲染管线。也就是说,即使Unity提供的渲染管线无法满足我们的渲染需求,也可以使用SRP自定义渲染管线。
当然,SRP的出现也增加了一些额外的设置步骤,这些步骤用于配置你想使用的渲染管线。不过无需担心,设置方法都很简单。下面我们来看一下在各种情况下的设置方法。因为在设置渲染管线时我们要用到Project Settings (项目设置)界面,所以先通过菜单Edit->Project Setting…打开项目设置界面。
可以把渲染管线的设置分成一下集中情况。
-
使用默认的内置渲染管线
-
使用HDRP
-
使用URP(UniversalRender Pipeline,中文翻译为 ”通用渲染管线“):因为设置URP和设置HDRP的步骤几乎相同。
如果在项目设置界面中将Graphics(如图1.38所示)的Scriptable Render Pipeline Setting参数设置为None,那么Unity使用的就是内置渲染管线。
要将渲染管线设置为HDRP,需要给Scriptable Render Pipeline Settings 关联一个HDRP配置文件(在Project窗口中)。这里关联的时以HDRP模板为基础自动创建HDRenderPipelineAsset(可以将其重命名为其他的名字),如图1.39所示。
如果项目中不存在这个资源,则可以在Project窗口中右击空白处,通过打开的Create菜单生成一个HDRP配置资源(如图1.40 所示)。然后将它拖动到Graphics设置界面的Scriptable Render Pipeline Setting属性输入框中。
我们可以使用HDRenderPipelineAsset中提供的各种选项,对当前项目中使用的 HDRP进行全方位的设置。可以在Project窗口中选中HDRenderPipelineAsset条目,然后再 Hierarchy窗口中查看它提供的所有配置信息,如图1.41所示。
由图1.41可以看到, HDRP的设置信息分为一下及部分
- Rendering(渲染)
- Lighting(光照)
- Lighting Quality Setting(光照质量设置)
- Material (材质)
- Post-processing(后处理)
- Post-processing Quality Setting(后处理质量设置)
- XR ( XR相关设置)
注:可以创建多个拥有不同配置信息的HDRP配置文件,然后再不同的平台上使用它们。比如为PC、Xbox One和PlayStation 4分别创建对应的HDRP配置文件,然后再构建不同哦那个平台应用时,手动关联 相应的HDRP配置文件。当然也可以通过脚本来动态判断和设置,所需要脚本 为API为GarphicsSetting。renderPipelineAsset。
下面我们来了解一下迹象基本的配置信息。首先了解Rendering下的Lit Shader Mode选项,其下由Forward Only、Deferred Only和Both三种模式。这个选项控制Lit Shader使用的渲染模式。
Forword模式可以提供更多的 高级材质,但是相应 性能消耗较大(比如使用内存通常较大)。
如果选择Both模式,那么HDRP会预先生成针对Forward和 Deferred两种模式的Lit Shader variants (Lit 着色器变体),这样就可以再运行时(Runtime)中针对不同的相机再者两种模式切换。当然,如果选择Both,内存的占用会变大,因为内存中包含更多的Lit在着色器变体。
大家可以看到,图1.42中设置决定了HDRP渲染的基本设置
接着来看案 Lighting里面的设置。
如图1.43所示,其中Volumetrics选项为 勾选状态,下面的Screen Space Reflection选项为不勾选状态。那么这两个选项的状态会影响场景中的什么呢。
我们用一张图(图1.44)来说明。如果在 配置文件中勾选了Volumetrics选项,那么在Sky and Fog Volume 的Fog中Volumetric配置就会生效。因为关闭了Screen Space Reflecttion 这个Volume Override,该界面也会提醒此功能不可用。
通过以上描述,你应该能给偶理解HDRP配置文件在HDRP项目中所处的中心地位,以及它于单独的Volume组件之间的父子关系。后面会在专门的章节中完整介绍HDRP配置文件的具体作用。
5.HDRP材质和着色器
想要通过 HDRP制作写实 、逼真的场景,材质制作时很重要的一环。我们通过下面两张图( 见图1.45、图1.46)来了解Mesh(网格)、Material(材质)、Shader(着色器)和Texture(纹理)之间的关系。
要渲染图1.45 中左侧的Jigsaw(电锯)模型,需要将Mesh、Material、Shader和Texture组合在一起才行。在图1.45中右侧的Inspector窗口中,可以看到Mesh、Material和 Shader分别所处的位置。在图1.46中可以看到多个Texture在Jigsaw_Mat这个Material中的位置。总结如下:
(1)Mesh代表的时电锯模型本身,用于表现形状
(2)一个Mesh可以关联多个Material,用于控制模型不同部分的材质表现。比如我们的电锯上由塑料的部分(黄色),也有金属的部分。只用一种材质来表现者两种完全不同的材料表面时不可能的,因此需要两种材质来表现塑料和金属这两种表面
(3)每种Material都与一个指定的Shader相关联。Shader进行计算的时候会考虑当前场景的光照信息以及在Material 上提供的具体配置信息。
在HDRP中常用的一个Shader时Lit Shader。Lit Shader可以模拟非常多的材质表面,比如金属、玻璃、木材等。所以虽然不同的Material使用的都是Lit Shader ,但是 我们可以通过控制Material的各项参数创造出完全不一样的材质(稍后会详细解释)。
(4)在图1.46中,在Surface Inputs参数集合中可以指定各种Map。这些Map所关联的就是Texture(通过PhotoShop、Substance Painter等工具生成的Bitmap 图片),其用于为模型添加各种细节。其中标号为1,2,3的 贴图为常见的贴图,解释如下。
- Base Map:用于 为模型提供 Albedo颜色信息。
- Mask Map:通过使用一张将信息储存到RGBA四个通道中的纹理,来一并控制Metallic(金属饭光-Red通道)、Ambient Occlusion(环境光泽比-Green通道)、DetailMask(细节遮罩-Blue通道)和Smoothness(光滑度-Alpha通道)。使用一张纹理控制四种属性 可以降低内存的占用。
- Normal Map:发现贴图用于为模型表面添加更多模型不存在的细节。
(5)除了Lit Shader,HDRP还提供了很多其他类型的Shader你可以从两个地方获取者些Shader:
- 通过Material的Shader选项,选择 Unity内置的适配HDRP的Shader,如图1.47所示。可以通过这个菜单切换当前 Material关联的SHader
- 通过顶部菜单Assets->Create->Shader->HDRP进行创建,如图1.48所示。在这里创建的Shader实际上是一个预先配置好的机与Shader Graph(Unity内置的可视化着色器编程工具)的Shader。可以看到,在HDRP中除了可以创建Lit Shader(基于Lit Shader的ShaderGraph),还可以创建Decal Graph(贴画)、 Eye Graph(用于模拟眼球得各种效果) 、Fabric Graph(用于模拟布料)和Hair Graph(用于模拟毛发)等。
如果现在创建一个Lit Graph,然后再Project窗口中双击新建得这个Lit Graph ,Unity会打开Shader Graph的可视化编程界面,如图1.49所示。可以通过Shader Graph的可视化编程界面添加各种功能,而无需编写任何Shader代码。
接下来我们来了解一下关于材质的一些参数的具体含义,这 将有卒于理解之后的示例讲解。
如图1.50所示,第一个参数时Surface Type(表面类型),它由两个选项:Opaque(不透明的)和 Transparent(透明的) 。这是一个机于选项,再设置其他参数之前,你首先要决定你的物体是不是透明的,按照所选择的表面类型,其他选项会相应显示或隐藏。
选择透明类型会出现更多参数,如图1.51所示。
在之后的实例中,会详细讲解玻璃材质的参数。
最后我们来看 Material Type(材质类型)这个选项。如图1.52 所示,不管选择哪种表面类型,都会显示6种材质类型:Subsurface Scattering(次表面散射)、 Standard(标准)、Anisotropy(各向异性)、Iridescence(彩虹色)、Specular Color(高光颜色)和 Translucent(半透明)。默认选择的时Standard材质类型。
可以根据物体表面的特性来选择不同的材质类型。以下列出了部分课应用上述6种材质类型的物体。文章来源:https://www.toymoban.com/news/detail-841128.html
- Subsurface Scattering(此表面散射):用于模拟光纤与半透明物体交互时产生的现象,俗称SSS。光线进入物体以后,有部分会发生散射并模糊,然后再次返回物体外面(初设角度与入射角度不同)。可用于模拟皮肤、树叶、蜡烛、玉器及瓷器釉面等。
- Standard(标准):可用于表现大部分材质,属于PBR材质制作流程种的Metallic Workflow(详情请参考Unity文档:http://docs.unity3d.com/Manual/StandardShaderMetallicVsSpecular.html)。此工作流把物体分为金属和非金属两类。
- Anisotropy(各向异性):各向异性材质使用与模拟拉丝金属表面或者天鹅绒。这类材质表面,从不同角度看过去,会有不同的高光现象。
- Iridescence(彩虹色):彩虹色材质的特性是,当你的观察角度或者光照角度变化时,物体表面的颜色会发生渐变(渐变色)。这非常使用与模拟肥皂泡、彩虹泡金属表面和昆虫的翅膀等。
- Specular Color(高光颜色):可用于表现大部分材质,属于PBR材质制作流程中的Specular Workflow(详情请参考Unity文档:http://docs.unity3d.com/Manual/StandardShaderMetallicVsSpecular.html)。此工作流类似内置渲染管线种的Standard (Specular setup)
- Translucent(半透明):半透明材质可以和一张Thickness Map配合使用,用于模拟半透明物体。它和此表面散射材质的区别时,出射光线再射出物体之前不会变模糊。
可以通过HDRP文档中的一张对比图来看一下彩色(Iridescence)、半透明(Translucency)、和此表面散射(Subsurface Scattering,简称 SSS 或者 3S)这三者之间的区别,如图1.35所示文章来源地址https://www.toymoban.com/news/detail-841128.html
到了这里,关于Unity-HDRP-Sense-5的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!