【Unity娘食用技术】高清渲染管线:艺术家入门指南

 

文章来源:https://ravbuganimations.com/how-to-render-and-composite-a-zdepth-map-from-autodesk-maya/,欢迎转载,转载请注明出处。如有翻译问题欢迎批评指教。

在这篇文章中,我们将探讨如何使用Unity的高清渲染管线(也称为HDRP)创建场景。我们将开始一个新的HDRP项目,升级任何导入资产的材料,并学习如何在Material Inspector中使用新参数来创建逼真的玻璃材质。我们还将重点介绍内置管线和HDRP之间的差异。

在2018.1中,Unity引入了一个名为Scriptable Render Pipeline(SRP)的新系统,允许您根据项目的需要创建自己的渲染管线。SRP包括两个现成的管线,称为轻量级(LWRP)和高清(HDRP)。HDRP旨在实现高视觉保真度,适用于PC或控制台平台。

设置HDRP

如果您还没有,我们建议您安装Unity Hub。它可以帮助您跟踪项目以及已安装的Unity版本。在Unity Hub中创建新项目时,在模板下,您将看到选择高清RP(预览)的选项。

由于HDRP仍在预览中,因此在生产过程中切换到HDRP并不是一个好主意。但是,您可以尝试通过进入新的软件包管理器并安装它来将项目升级到HDRP。请注意,一旦将项目升级到HDRP,您将无法恢复。确保在升级之前创建项目的备份。

如上所述,HDRP仍在预览中,因此未来可能会发生变化。 要将项目从内置渲染管线升级到HDRP,请导航到Window> Package Manager 。在程序包管理器中,您可以看到Unity项目中安装的所有当前程序包。在All下,找到“HD Render Pipeline”(Render-pipelines.high)并安装最新版本。安装管线还将集成Render-pipeline核心,Shader Graph和后处理软件包。

安装HDRP软件包后,需要导航到Edit > Project Settings > Graphics ,为HDRP分配“可编写脚本的渲染管道”资产。

Inspector在“Scriptable Render Pipeline Settings”字段中显示当前安装的Render Pipeline Asset。如果从Unity Hub安装,将分配HDRP渲染管线资产。如果要从内置管线升级项目,则此字段将设置为“无”。我们可以通过单击“资源选择”框旁边的按钮或从“设置”文件夹中拖动资产来分配管线资产。

HDRP使用C#Scriptable Render Pipeline API。有了这个,您可以设置一系列不同的首选项来自定义项目的呈现。渲染设置存储在渲染管线资产中这一事实意味着您可以通过为此字段分配新的渲染管线资产来更改渲染设置。

要创建新的渲染管线资产,请在设置文件夹中右键单击,然后选择Create > Rendering > High Definition Render Pipeline Asset

升级材质

使用HDRP项目时,任何Unity内置、标准或Unlit材质都不会渲染,因此使用Unity在着色器损坏时显示的默认粉红色来表示。尝试升级现有项目或集成旧版内容(如未使用HDRP兼容着色器的资产商店资产)时,可能会发生这种情况。为了由HDRP渲染,需要升级材质。

Unity 2018.1配有内置材质转换工具。它从Unity的标准着色器获取材质属性,并将它们转换为新的HDRP材质。值得注意的是,这不适用于需要为HDRP重写的自定义着色器。

要访问材质转换工具,请导航到Edit > Render Pipeline

Unity在此菜单中提供了多个升级选项。我们将专注于前两个。“Upgrade Project Materials to High Definition Materials”,将升级项目中的所有可升级材质。“Upgrade Selected Materials to High Definition Materials”,允许您从“项目”窗口中选择要升级的材质。

在这一点上,我们建议您为项目创建单独的备份。

转换材质后,材质的着色器现在将被称为“HDRenderPipeline / Lit”。现在,您可以在Material Inspector中完全访问HDRP lit着色器的全新功能。

此外,在Materials Shader材质着色器选项中的“HDRenderPipeline”下,您可以选择并应用各种着色器类型,例如LitTesseleation或Unlit等。

后续部分介绍了作为HDRP的一部分添加的一些新功能。我们已经使用了一些这些新功能来增强我们厨房的外观。

HDRP照明

HDRP中的照明使用称为 Physical Light Units物理光单位(PLU)的系统。PLU意味着这些单位基于现实生活中可测量的值,就像您在商店浏览灯泡或使用摄影测光表测量光线时所看到的那样。

我们使用LUX作为定向灯,因为在现实世界中,这些是用于测量太阳光强度的值,可以使用LUX仪表轻松完成。其他真实世界的光源使用流明测量强度,可以用作我们场景中较小光发射器的参考。

实时线光灯

实时线光源灯保持无缝,恒定的光输出,从用户可定义的长度线发出。这些灯类型通常用于动画电影中以实现逼真的照明。它们为场景的照明添加了电影质量。在灯光放置在场景中后,可以通过在“检查器”中选择形状类型来创建线性灯光。

许多现代厨房使用条型灯光照亮厨房工作区,因此线光灯不仅可以产生逼真的照明,而且可以在真实的厨房中找到。

此外,Light Inspector可以确定通过温度发出的光的颜色。在1000至20000开尔文的范围内,值越低,发出的热量越少,光线就会显得更红。相反,当您增加温度值时,它看起来更蓝。

同样,Rectangle形状类型根据自定义X轴和Y轴值发出光输出。

注意:“线光”或“矩形”灯光形状类型当前不支持阴影。

灯光浏览器

作为附加提示,使用Light Explorer可以轻松管理项目中的任何类型的灯光。您可以修改值,更改灯光类型甚至操纵阴影类型,而无需在场景中找到它们。此外,还可以通过此窗口管理Reflection Probes, Light Probes和Static Emissives。

要访问Light Explorer,请导航到Window> General> Light Explorer 

体积设置

Volume Settings体积设置允许您直观地改变您的环境首选项,调整Visual Environment, Procedural Sky和HD shadow settings等元素。这还使您可以创建自定义体积配置文件并在它们之间切换。

通过创建GameObject并添加Volume组件来管理卷设置。此工作流程类似于为Post-Processing Stack v2创建体积的工作流程。在HDRP中,默认情况下,有一个层次结构的预设。

高清阴影设置

The HD shadow settings高清阴影设置允许您确定体积中阴影的整体质量。The Max Distance最大距离字段根据摄像机与阴影的距离计算阴影的质量。

视觉环境

您在Visual Environment中有两个下拉菜单。

Sky Type提供三种选择:Procedural Sky,Gradient Sky和HDRI Sky。

The Procedural sky根据您在程序天空组件中选择的数值生成环境。

HDRI Sky基于Component中的图像集构建环境贴图。默认情况下,HDRISky组件未分配到体积设置,通过单击Inspector选项卡底部的“ Add component overrides…” 并选择“ HDRI Sky ”,组件将可用。

现在,您可以指定HDRI Sky Cubemap并更改数值以实现准确,真实的照明。

您可从资源商店免费获得Unity Technologies提供的Unity HDRI Pack,包含7个预转换(1024×2014分辨率)的HDR Cubemaps,可在您的项目中使用。

对于这个场景,来自Unity HDRI Pack的“TreasureIslandWhiteBalancedNoSun”效果最好,因为它提供了足够的光照亮厨房,但没有毁掉它。当然,使用组件中提供的修改器(如Exposure和Multiplier),可以更改和调整亮度。选择一个可以补充场景的HDRI贴图非常重要。

最后,雾类型为您提供3个选项,Linear, Exponential和Volumetric。要确定数值,请重复上一个组件步骤(“Add Component Override”,将相关组件应用于Inspector)

材质查看器

在引入HDRP之前,创建玻璃材料并不是一件容易的事。除非能广泛研究和在着色器编程,或通过资源商店来使用自定义着色器,没有简单的方法来构建逼真的玻璃材质。

现在,通过Material Inspector材质查看器中提供的HDRP Lit Shader的新功能,您可以创建不仅看起来很棒而且根据可定义的设置折射光线的玻璃。

首先,我们要创建一个新的HDRenderPipeline / Lit Material。这是应用于在HDRP中创建的任何新材质的默认材质着色器。

要创建新材质,请在首选文件夹中单击鼠标右键,然后选择Create -> Material。Material Inspector材质查看器现在将显示全新的HDRP Material Inspector。在其中,有一些明显的变化。我们来回顾一下吧。

表面选项

在Surface Options表面选项里,您可以开始确定材质的表面。

表面类型

在surface type表面类型里有两种选择,Opaque或Transparent。不透明模拟完全固体材料,没有光穿透。

相比之下,透明是一种alpha混合并模拟半透明表面,虽然有用,但这种类型的表面渲染成本更高。

HDRP的一个重要特征是透明和不透明物体的统一照明。

为此示例选择Transparent。这将提供对下面讨论的参数的访问。

两面性

Double sided两面性首选项允许材质在两侧呈现。默认情况下,Normal Mode法线模式设置为Mirror镜像,,但在下拉列表中,我们可以选择Flip翻转或None无。

如果两面性未激活,Unity将仅渲染面向摄影机方向的材质。

材质种类

The Material type材质类型选项可创建允许更逼真材质的新行为。一旦激活,这些选项中的每一个都在Inspector中提供附加参数。

标准

Standard使用基本参数且是默认的材料类型。

次表面散射(SSS)

Subsurface Scattering次表面散射通过模拟光如何相互作用并穿透植物等半透明物体而起作用。它也用于渲染皮肤。如果你曾经用手指尖照射过一盏灯,你会发现光线在表面散射时会变色。这可以使用此Surface Type复制。

激活后,将出现Transmission传播度参数。使用此选项,您可以使用Thickness厚度贴图确定对象的translucency半透明度。

可以使用Diffusion Profiles扩散配置控制这两个功能。提供了两个名为Skin皮肤和Foliage叶片的默认配置文件,可用作这些类型的SSS材质的基础。可以使用下面显示的配置文件设置自定义其他13个配置文件。

相关的简短视频演示,请查看我关于SSS的Unity提示:

各向异性

Anisotropy各向异性模拟表面材料,其根据其取向改变性质,例如,模仿拉丝铝的外观。使用切线和各向异性贴图,您可以改变反射强度以及方向,而不是使用切线和各向异性贴图创建具有干净,整洁反射的金属表面。

虹色

Iridescence虹色提供参数以在材料表面上创建虹彩效果,类似于漏油上出现的光线。输出由Iridescence Map虹色贴图和Iridescence Layer Thickness Map虹色层厚度贴图确定。

镜面反射颜色

A Specular color镜面反射颜色用于控制材质中镜面反射的颜色和强度。这可以使材质呈现出除漫反射之外的不同颜色的镜面反射。

半透明

The Translucent半透明选项可以非常有效地模拟植被的光相互作用。此材质类型使用与SSS类似的轮廓,除了在这种情况下,thickness map厚度图用于确定光的传输方式。

启用贴花

Enable Decals启用贴花这个有用的参数可以轻松地使材料响应贴花材质,这适用于两个工作流程,可以通过Decal Projector贴花投射或作为object component对象组件。

输入

基色+不透明度

此时,玻璃材质仍然会显示为不透明,这是因为您需要更改输入中不透明度的值以允许光线穿透。

为此,请打开“Base Color + Opacity”基色+不透明度旁边的色样窗口。

红色,绿色和蓝色通道用作基色,alpha通道用于确定不透明度。当前材质的不透明度由0到255的值确定,255是完全不透明的,0是完全透明的。对于此示例,我们要将材质的颜色设置为浅绿色。

我们希望将不透明度设置为30,因为这将改变材质,因此它几乎是透明的。

以下是我使用的颜色值:

RGB值:

R – 201

G – 255

B – 211

十六进制值 – C9FFD3

需要记住的重要一点是,即使将材质的alpha设置为较低的数值但将曲面类型设置为Opaque不透明,材质也不会透明并保持其不透明度。

金属度和平滑度

Metallic and Smoothness金属度和平滑度这些选项可以在滑块上更改,值为0到1.两个值和输出都是从Inspector中的Mask Maps Alpha遮罩贴图alpha和Red Channel红通道生成的。分配遮罩贴图后,滑块随后将用于重新映射最小值和最大值。

法线贴图

应用Normal Map法线贴图时,可以在0到2范围内调整参数滑块时修改强度

您可以通过应用法线(例如压痕或划痕)为玻璃材料添加其他细节和深度。

遮罩贴图

在HDRP中,Mask Map遮罩贴图是以下组合:

红色通道 – Metallic金属度范围从0到1
绿色通道 – Ambient Occlusion环境光遮蔽
蓝色通道 – Detail Map Mask细节贴图遮罩
Alpha通道 – Smoothness光滑度

默认情况下,导入Unity的纹理使用sRGB。在纹理检查器中,取消选中“sRGB (Color Texture)”将纹理转换为使用线性格式。由于Mask Map使用数学生成输出,因此该纹理必须是线性的。


涂层遮罩

The Coat Mask涂层遮罩模拟材质上的透明涂层效果,随之增加光滑度。默认情况下,Coat Mask值设置为0,但滑块可以在0到1的范围内调整参数。透明涂层遮罩可用于模拟汽车油漆或塑料等材料。

细节输入

The Detail Map细节贴图是引入HDRP的新贴图,并与其他贴图的合并,这些贴图为材质添加了细微的细节。详细贴图使用以下通道:

红色:灰度使用Overlay Blending叠加混合
绿色:Normal Map法线贴图的Y通道
蓝色:Smoothness平滑度
Alpha:Normal Map法线贴图的X通道

透明度输入

通过修改着色器的Transparency Input透明度输入属性,您可以确定整体透明效果。只有Surface Type表面类型设置为Transparent透明后,透明度输入才可用。

对于此示例,以下部分将使您能够为玻璃材质创建折射。

折射模型

The Refraction Model折射模型定义了如何模拟光线穿过材料的弯曲。有两个选项,Plane平面和Sphere球体。

选择折射模型取决于材质应用于的对象的形状和大小:

球体:对于填充的对象,请使用球体模型,其折射厚度与放置材质的对象的大小相当。

平面:对于空对象,请使用折射厚度较小的平面模式。

The Index of Refraction折射率和Refraction Thickness折射厚度选项允许您控制折射模型的行为。

折射率

Index of Refraction折射率范围为1到2.5,调整参数将提供不同的折射强度。默认情况下,该值设置为1,不会产生折射。

在1.1和1.2之间是折射翻转的区域,通过材料看到的环境是颠倒的。

现在已经制作了玻璃材质的基础,可以添加自定义调整以设置最适合您应用于对象的材质。

结论

我希望这个概述能帮助您更好地理解如何在您的项目中实际应用HDRP!虽然它仍处于实验预览阶段,但我们在GitHub上有一些初步文档,您也可以阅读这些文档以便开始使用。

HDRP是一个不断增长的,令人兴奋的创建项目的新工具,我迫不及待地想看看你将要用它做什么。如有任何问题或疑问,请随时通过Twitter @kierancolenutt与我联系。我想听听你的经历,让我知道它是怎么回事!

要一般性地关注和讨论HDRP和SRP的开发,请加入我们的实验图形论坛

发表评论

电子邮件地址不会被公开。 必填项已用*标注