找回密码
 立即注册
查看: 453|回复: 0

[笔记] Unity官方TA手册《Unity关键工具集和工作流程》Part 2

[复制链接]
发表于 2023-3-22 14:00 | 显示全部楼层 |阅读模式


近日,Unity官方发布了一本名为《关键工具集和工作流程》的免费电子书,该手册整合了“所有Unity系统、功能和工作流程的详细摘要”。这份91页的指南汇集了经验丰富的技术美术师的意见,包括《Enemies》、《The Heretic》、《Book of the Dead》以及其他创作者的演示。
本书介绍了渲染管线、世界构建、着色、照明、动画、视觉特效、过场动画。以及还有一些章节讨论了脚本编写、分析和调试项目以及 2D 游戏开发。
而本篇连载将以中文翻译的形式分享给大家,英文阅读能力不错的同学可以直接去官方下载原版文档。(地址在文章末端)
由于个人能力有限,如有纰漏之处欢迎留言指出。



渲染管线
Unity中的图形模块,可以为你提供一个更加精准的控制体系,并在一系列的平台上,制作出优质的视觉效果,比如,从移动到桌面和高端游戏机。渲染管线执行的是一系列的操作,来获取场景的内容,并将其显示在屏幕上。在一个较高的平台上,这些这些操作是culling, rendering, and post-processing。
Unity为不同的目标平台,提供了三种渲染管道:较早的内置渲染管线,以及两个较新的可编写脚本的渲染管线 Scriptable Render Pipelines (SRPs)以及通用渲染管线Universal Render Pipeline (URP)。通用渲染管线Universal Render Pipeline (URP)和高清渲染管线High Definition Render Pipeline(HDRP),它是目前默认的渲染管道。你还可以创建定制的SRPs。渲染管线的选择,取决于你的目标平台,以及你所寻求的视觉保真度和定制化程度。

1渲染管线

渲染管线是用于渲染灯光和阴影的一系列操作。不同的管线具有不同的功能和性能特征。以下是Unity渲染管线常用的的生产管线:

2Forward rendering正向渲染管线

Forward rendering正向渲染是Built-in Render Pipeline 和通用渲染管线URP 中的默认渲染管线。它是一种通用默认的渲染管线,它限制了可能影响对象像素的实时光的数量。
每个影响物体的光照都是有成本开销的。当它们超过一定数量时,灯光将以一种近似的方式影响物体(在URP中,所有光线都是按像素计算的,并且可以更改限制)。如果你的项目没有使用大量的实时灯光(移动或VR项目),那么这个渲染管线可能是一个很好的选择,因为,它不会为整个场景中的每一盏灯都计算一遍,这对于tile-based GPUs来说是昂贵的
然而,HDRP中的tile/cluster architecture集群架构,仍然允许若干灯光影响正向渲染中的每个对象,并且通常在两个渲染管线之间提供相似的功能。它还提供了比延迟渲染 G-buffer更精确的渲染质量,使其适合于视觉保真度高于性能的HDRP项目。




正向渲染管线

3Deferred Shading rendering延迟着色渲染

Deferred Shading rendering延迟着色渲染需要更高级别的GPU特性支持,通常是台式机、控制台和高端移动设备上的功能(但对某些渲染功能有限制)。如果您的项目需要几个实时灯光和高水平的照明保真度,同时针对高端手机、PC或控制台平台,当使用内置渲染管道或URP时,这种渲染管线可能是正确的选择。



延迟着色渲染

4Universal Render Pipeline通用渲染管线

URP通用渲染管道管线在包括手机、PC、主机、WebGL和VR在内的广泛平台上,提供了最优化的图形性能。这是由于围绕光照和阴影的一些权衡而实现的。应用了某些限制,并禁用了低端设备不支持的功能。这样,开发人员可以不用过多担心如何优化他们的工作,而更多地专注于开发能够接触到更多受众的项目。
另一个好处是URP是可扩展的。高级开发人员可以自定义它,用来控制项目中特定的效果。如前所述,URP将取代内置渲染管道作为Unity的默认渲染管道。





URP在Unity中的演示
默认情况下,灯光在URP流程中是循环渲染,从而可以在单个过程中执行正向渲染。相比之下,内置渲染管道中的正向渲染,是在一定的范围内计算每像素灯光过程。这意味着使用URP会使用较少的draw调用。
URP是Unity中2D游戏开发的最佳解决方案,因为它提供了2D渲染器、2D灯光和照明效果,以及2D像素摄像机,用于在项目中实现像素化的视觉风格。要开始使用URP,请查看文档并访问Unity 2021 LTS或更新版本的Unity Hub。

5High Definition Render Pipeline高清渲染管线

HDRP是一种高保真SRP,用于针对现代平台的计算着色器。它的功能使艺术家和开发人员能够快速实现高清视觉效果。主要应用在AAA质量级别的游戏、汽车演示、建筑应用、虚拟生产、电影或任何其他需要高保真图像的内容中使用HDRP。




I Am Fish,由Bossa工作室有限公司,在Steam和Xbox上创建HDRP
HDRP遵循三个主要原则:基于物理的渲染(PBR)、统一连贯独立的照明和渲染管线。它建立在所有这些新的渲染工作流和着色器的基础上,并对场景中的照明进行了巨大的改进。
该管线使用了一个hybrid Deferred / Forward – Tile / Cluster 渲染器,因此,照明的扩展性比任何其他渲染管道都好。在HDRP中,延迟渲染和向前渲染在HDRP中有相同的功能,只是在效果的质量和准确性上有微小的变化。可以使用自定义过程和自定义后处理效果来自定义HDRP。
HDRP是专门为那些追求3D PC和主机图像,最高质量视觉保真度的小型开发团队而设计的。它不适合移动平台。阅读文档并观看此演示,以深入介绍HDRP。



LEGO Builder’s Journey by Light Brick Studios,是用HDRP和光线跟踪与NVIDIA DLSS的PC和控制台版本开发制作的。
阅读文档并观看此演示,以深入介绍HDRP。

6创建一个自定义渲染管线

为了在你的项目中,对各种渲染单元进行更多的控制,你可以创建一个自定义的SRP或者URP和HDRP的版本。
要创建一个自定义SRP,你需要使用Unity提供的SRP Core API。它包含可重用的代码,以帮助您创建自己的渲染管道,包括使用特定平台的图形api的代码模板,以及应用于常见的渲染计算的实用函数,以及URP和HDRP都使用的着色器库。
一个自定义的SRP需要编写C#脚本来配置和调度渲染命令。ScriptableRenderContext类作为C#脚本和Unity的低级图形代码之间的接口。
SRP通过延迟执行进行操作。首先使用ScriptableRenderContext来构建一个渲染命令列表,然后,在低级图形体系结构向图形API发送指令之前让Unity执行它们。
Unity文档提供了如何创建自定义渲染的说明,包括自定义版本的URP和HDRP(见下一节)。SRP源代码也可以在GitHub上找到。

6URP中的自定义渲染过程

在URP中,您可以使用层遮罩来来自定义那些特定的渲染对象。在Unity 2021 LTS和更新版本中,URP的渲染对象为你提供了,基于图层的自定义渲染通道,可以过滤特殊游戏资产对象来进行单独计算。这让美术人员能够创造高级的视觉效果或游戏机制,如渲染隐藏在墙后的角色轮廓,而无需编写代码。



在上面的例子中,不同的材质,被应用到不透明图层蒙版下的物体对象。
在HDRP中,自定义通行证是以一种稍微不同的方式进行的。你可以在文档和示例项目中找到更多关于它们的信息。

7Dynamic resolution and upscaling methods动态分辨率和缩放方法

游戏项目中常用的性能优化方案是使用动态分辨率,这在Unity中可以作为内置渲染管道、URP和HDRP的摄像机设置。当应用程序的帧速率受到GPU的限制而下降时,分辨率会将逐渐降低以保持恒定的帧速率。您也可以通过脚本手动触发它。
利用HDRP更先进的解决方案,比如支持NVIDIA GPU的NVIDIA深度学习超级采样(DLSS), AMD FidelityFX™超级分辨率(FSR)和Temporal Anti-Aliasing(TAA)。当然,URP也支持AMD FSR。
在Windows平台使用NVIDIA RTX GPU的DLSS
在Unity 2021 LTS和更新版本中的HDRP原生态支持NVIDIA DLSS。它使用了先进的人工智能渲染,来产生与原生分辨率相似的图像质量,而计算量,只是低精度像素的渲染量。通过实时光线追踪和NVIDIA DLSS,您可以在NVIDIA RTX GPU上以更高的帧率和分辨率创建美丽的世界。DLSS还为传统的栅格化图形提供了显著的性能提升。更多信息请访问NVIDIA的Unity开发者页面和博客,以及我们的文档。





阅读这篇博客,了解更多关于DLSS技术的内部工作原理,24 Entertainment公司的《Naraka: Bladepoint永劫无间》4K下运行效果
AMD FidelityFX超级分辨率(跨平台)
在Unity 2021 LTS中可以调用AMD FidelityFX Super Resolution(FSR)。同时,在HDRP和URP中,同样的也提供了原生态的支持。要使用FSR,请在HDRP资产和摄像机中启用动态分辨率,然后在调整过滤器选项中选择FidelityFX Super Resolution 1.0。
FSR是一个开源的、高质量的解决方案,可以从低分辨率的图像中产生高分辨率的画面。并在当前画质下提供更高的的游戏帧速率速率。它使用了一系列的算法,特别强调创建高质量的边缘。这大大提高了性能,特别是与原始分辨率进行相对比。换句话说,FSR 能够为昂贵的渲染操作提供 "实用的性能",比如硬件光线追踪。



AMD的FidelityFX超级分辨率(FSR)技术是如何在Unity演示飞船中使用的,可在Steam上获得。
官方文档地址
https://resources.unity.com/games/unity-for-technical-artists-key-toolsets-and-workflows

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×
懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Unity开发者联盟 ( 粤ICP备20003399号 )

GMT+8, 2024-7-22 02:49 , Processed in 0.101508 second(s), 29 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表