unity渲染基本流程,Unity高清渲染管线光照权威官方指南
unity渲染基本流程,Unity高清渲染管线光照权威官方指南天空景色:使用不同技术生成自然的天空。使用基于物理的天空系统程式化地模拟行星大气层,或将 HDRI 用作立方体贴图纹理。高级光照:利用聚光灯和区域灯的附加形状选项控制灯光位置。使用光照层限制灯光对特定网格的影响。应用实时效果,如屏幕空间全局照明和屏幕空间折射。HDRP光照概述HDRP 可利用各种功能扩展 Unity 现有的照明系统,使场景渲染更接近真实世界的照明:物理照明单位和曝光:HDRP 使用真实世界的光照强度和单位。匹配已知光源的规格,并使用物理摄像机设置曝光。
一切始于光照。Unity 构建了高清渲染管线 (HDRP),帮助实现创作者的愿景,同时利用高端 PC 或主机硬件达到全新水平的图形现实主义。本指南旨在指导现有的 Unity 美术和开发人员探索 HDRP 基于物理的照明技术。
HDRP 代表 Unity 在实时渲染技术领域的进步,允许用户使用如同现实世界的光照效果。你想用自然阳光渲染郁郁葱葱的雨林景观?还是遍布霓虹灯的大城市混凝土丛林?借助 HDRP,你可以用摄影师的画笔绘制场景关卡,将玩家从熟悉空间带到奇幻世界。
本文选取了部分精彩内容,点击“阅读原文”,即可免费解锁完整指南。
learn.u3d/tutorial/hdrp_lighting_expert_guide
HDRP光照概述
HDRP 可利用各种功能扩展 Unity 现有的照明系统,使场景渲染更接近真实世界的照明:
物理照明单位和曝光:HDRP 使用真实世界的光照强度和单位。匹配已知光源的规格,并使用物理摄像机设置曝光。
高级光照:利用聚光灯和区域灯的附加形状选项控制灯光位置。使用光照层限制灯光对特定网格的影响。应用实时效果,如屏幕空间全局照明和屏幕空间折射。
天空景色:使用不同技术生成自然的天空。使用基于物理的天空系统程式化地模拟行星大气层,或将 HDRI 用作立方体贴图纹理。
雾:用雾为场景添加深度和维度。使体积插件能够集成雾效果和前景对象,并渲染电影光束效果。保持对每个光源的体积光和阴影控制,并使用局部体积雾组件和 3D 遮罩纹理精确控制雾密度。
体积系统:HDRP 包含一个直观系统,让您可以根据摄像机位置或优先级禁用不同光照效果和设置。分层和混合体积允许对场景的每一平方进行专家级控制。
后处理:HDRP 后处理由基于现有体积系统的一系列体积覆盖进行控制。可添加边缘柔化、色调映射、色彩分级、泛光、景深以及一系列其他效果。
高级阴影:HDRP 提供针对阴影的高级美工和性能控制。可修改其色调、过滤、分辨率、内存预算和更新模式。使用接触阴影和微阴影突出小细节和额外的深度。
高级反射:反射表面可使用多项技术进行渲染。反射探针提供传统的反射映射方法,其中平面反射探针提供更多适用于平面的高级选项。屏幕空间反射 (SSR) 增加了一种使用深度缓冲区的实时技术。
可扩展性:HDRP 是基于 Unity 的可编程渲染管线构建的。经验丰富的技术美工和图形程序员可以拓展管道,甚至使其超出现有用途。
Unity 可编程渲染管线:
docs.unity3d/Manual/ScriptableRenderPipeline.html
HDRP场景示例
Unity Hub 中提供的 3D 场景示例是一个模板项目,可帮助您开始使用 HDRP 和基于物理的照明。这个轻量级项目不到 100 兆,并且提供了一个 HDRP 工作范例,您可以随时快速加载以便参考。
我们将在本指南中使用该项目演示 HDRP 的许多功能。
3D 场景示例环境线框
这个小型的多房间环境展示了采用不同照明设置的 3 个不同区域。代表太阳的定向光源具有 10 万勒克斯的现实世界光强,每个位置都会校正摄像机的曝光,以匹配照明环境。
使用 WASD 按键和鼠标驱动 FPS 控制器在关卡中移动。
3D 场景示例由 3 个房间组成
图片 房间 1 为圆形平台,采用头顶阳光照明。贴花会在水泥地板上增加污垢和水洼。
图片 房间 2 增加了来自天窗的体积光束,以及玻璃橱内使用先进材料制成的树木。
图片 房间 3 展示了室内人工照明和发光材料。
场景示例为展示 HDRP 功能的轻量级项目
如欲深入了解 HDRP 3D 场景示例,请查看《Unity HDRP 新模板精讲,初学者也可以打造高保真画质内容》文章,该文章对场景模板进行了详细说明。大家也可以观看由 Unity 大中华区平台技术总监杨栋制作的讲解视频《Unity2020.2 - HDRP最新模板项目(全方位讲解)》。
learn.u3d/tutorial/unity-2020-2-hdrp-template
更多 HDRP 内容示例
当您了解了 HDRP 3D 场景示例后,您可能会发现其他一些项目对您也有所帮助。
虽然最初不是用于游戏目的,但汽车展示厅项目使用逼真的照明展示了高度细节化的车辆。您可以在交互式演示中改变展台灯光、汽车油漆材料和背景。这个项目可通过 Unity Hub 获得。
汽车展示厅模板
飞船演示主要展示视觉特效图,但它也采用了许多科幻环境中的 HDRP 功能。您可以从 Unity 的 Plastic 中下载。
plastichub.unity/unity-tech-cn/SpaceshipDemo
飞船演示
如果您通过 VR 使用 HDRP,则可以体验虚拟现实炼金术师实验室。该项目展示了小型中世纪实验室中的交互效果。
github/Unity-Technologies/VRAlchemyLab
虚拟现实炼金术师实验室演示
如欲学习如何制作电影或动画电影,则使用我们的电影工作室示例,它展示了如何设置和照亮镜头的有趣短片 Mich-L,该短片混合了风格化和照片级渲染。
assetstore.unity/packages/templates/tutorials/cinematic-studio-sample-192852
电影工作室示例
当您了解了高清渲染管线时,欢迎探索其他项目。
项目设置
您可以在项目设置(Project Settings)(编辑>项目设置(Edit > Porject Settings))中的图形(Graphics)、HDRP默认设置(HDRP Default Settings) 和质量(Quality)下找到一些基本设置。
注:HDRP 默认设置(HDRP Default Settings) 在 Unity 2021.2/HDRP 12 及以上版本中称为 HDRP 全局设置。
项目设置
图形设置
顶部字段脚本渲染管道设置(Scriptable Render Pipeline Settings)表示磁盘上存储所有 HDRP 设置的文件。
每个项目可以由多个此类管道资源。可以将每个资源视为单独的配置文件。例如:您可以用它们来存储不同目标平台(Xbox、PlayStation 等)的专门设置,或者它们也可以代表玩家可以在运行时切换的不同视觉质量水平。
3D 场景示例从设置(Settings) 文件夹的几个管道资源开始:HDRPHighQuality、HDRPLowQuality 和 HDRPMediumQuality。还有一个 HDRPDefaultResources 文件夹,包含 DefaultHDRPAsset。
3D 场景示例包括低、中和高品质管道资源
质量设置
质量设置(Quality Settings)允许您将其中一个管道资源与预定义的质量水平相对应。选择顶部的水平(Level),以激活特定渲染管道资源(Render Pipeline Asset),如渲染(Rendering) 选项中所示。
选择顶部的质量水平以激活管道资源
您可以自定义默认值或创建额外的质量水平,每个质量水平都与额外的管道资源配对。
质量水平代表管道中激活的一组特定视觉功能。例如:您可以在应用中创建多个图形层级。在运行时,玩家可以根据硬件选择活动质量水平。
在质量/HDRP子项中编辑实际的管道设置。您还可以在项目(Project) 视图中选择管道资源(Pipeline Asset),然后在检查器(Inspector) 中编辑设置。
编辑管道资源
HDRP优化
请注意,在管道资源(Pipeline Asset)中启用越多功能,消耗的资源就越多。一般来说,优化您的项目,以便只使用您实现预期效果所需的功能。如果您不需要某个功能,则可以将其关闭,以提高性能,节省资源。
下面介绍了一些典型功能,如果无需使用,可以禁用:
图片 HDRP 资源中:贴花、低分辨率透明度、透明背面/深度预传递/深度后传递、SSAO、SSR、接触阴影、体积插件、次表面散射和变形
图片 在摄像机帧设置(主摄像机、用于集成效果(如反射)的摄像机或用于自定义效果的附加摄像机)中:折射、后处理、后处理之后、传输、反射探针、平面反射探针和大型拼贴预传递
HDRP默认设置
HDRP 默认设置 (HDRP Default Settings) 部分(在Unity 2021.2/HDRP 12 中称为 HDRP 全局设置)可决定启动项目时所启用功能的基准配置。您可根据摄像机位置和/或优先级使用局部设置覆盖这些设置(参见下面的体积)。
全局设置保存在顶部字段中定义的单独管道资源中。在这里设置默认的渲染和后处理选项。
启用HDRP功能
在开发项目时,您可能需要返回HDRP 默认设置(HDRP Default Settings),以打开或关闭特定功能。除非明确启用了默认配置中的相应复选框,否则某些功能不会出现。请注意,某些设置出现在体积配置文件中,而一些功能则出现在帧设置中,具体取决于用途。
在熟悉HDRP 功能集时,使用项目设置(Project Settings) 中右上角的搜索字段。这样只会对您显示与高亮显示的搜索术语相关的面板。
搜索 HDRP 功能
启用 HDRP 默认设置 (HDRP Default Settings) 中的功能并不能保证激活该功能。为进行验证,您还必须找到当前选择为质量水平的管道资源。同时,勾选相应的选项。HDRP 功能必须在全局和局部设置中启用才能正常运行。
前向渲染与延迟渲染
在管道资源中配置 HDRP 设置时,通常从渲染 (Rendering) 下的光照着色器模式 (Lit Shader Mode) 开始。您可以选择延迟(Deferred)、前向(Forward)或两者(Both)。这些代表渲染路径,即与管道渲染和照亮几何体方式相关的一系列具体操作。
修改 HDRP 默认设置
自定义渲染路径
在光照着色器模式(Lit Shader Mode) 中选择前向(Forward) 或延迟(Deferred) 来设置默认的渲染路径。
HDRP 比较灵活,也允许您选择两者(Both)。利用这个选项,您可以将一个渲染路径用于大多数渲染,然后在每个摄像机中覆盖该路径。然而,该方法会占用更多的GPU 内存。在大多数情况下,最好选择前向或延迟。
图片 若要默认影响所有摄像机,则转至 HDRP 默认设置 (HDRP Default Settings),然后找到默认帧设置 (Default Frame Settings)。默认帧设置可应用于摄像机 (Camera)、烘焙 (Baked) 或自定义反射 (Custom Reflection)或者实时反射 (Realtime Reflections)。在渲染 (Rendering) 组中,在光照着色器模式 (Lit Shader Mode) 下设置渲染路径。
图片 对于特定摄像机,请勾选自定义帧设置 (Custom Frame Settings),以将其覆盖。
修改摄像机的自定义帧设置
关于渲染路径的更多信息
您可能希望了解这些渲染路径的工作原理,以了解光照着色器模式将如何影响管道中的其他设置。
01 前向渲染
在前向渲染中,显卡会将屏幕上的几何图形分成顶点。这些顶点进一步分解成片段或像素,然后渲染呈现到屏幕上,形成最终的图像。
每个对象都会传递至图形 API,一次一个。前向渲染形成每个光照都会产生成本。您场景中的光照越多,渲染时间就越长。
前向渲染路径
前向渲染在单独的通道中绘制光照。如果有多个光照针对同一个 GameObject,则可能会造成严重透支,当存在大量光照和物体时,就会减速。
并渲染多个光照。然而,这个过程的成本仍相对较高。如果性能是个问题,则您可能会希望使用延迟渲染。
02 延迟渲染
HDRP 还可以使用延迟渲染,其中光照不是按对象计算的。相反,延迟渲染将大量渲染推迟到后期,并使用两个通道。
延迟渲染路径
延迟渲染将光照应用于缓冲区,而不是每个对象。每个通道都有助于实现最终渲染的图像。
在第一个通道中,或G-buffer 几何体通道中,Unity 渲染 GameObjects。该通道会检索多种几何属性,并将其存储在一组纹理中(例如:漫反射和镜面颜色、表面平滑度、光遮蔽、法线等)。
G-buffer:
docs.unity3d/Manual/RenderTech-DeferredShading.html
在第二个通道中,或光照通道中,Unity 会在 G-buffer 完成后渲染场景的光照。因此,它会延迟渲染。延迟渲染路径会迭代每个像素,并根据缓冲区而非各个对象计算光照信息。
光照通道:
docs.unity3d/Manual/RenderTech-DeferredShading.html
有关渲染路径之间的技术差异的更多信息,请参见 HDRP 文档中的“前向和延迟渲染”。
docs.unity3d/Packages/com.unity.render-pipelines.high-definition@11.0/manual/Forward-And-Deferred-Rendering.html