Unreal Engine(虚幻引擎)渲染 – 正确使用方法

2023-11-05

在这里插入图片描述
我们已经讨论过 Unreal Engine(虚幻引擎)中可用的很多神奇工具,包括最近抢先体验的 Unreal Engine 5。多亏了 Epic,世界各地的开发人员和团队都可以轻松进行游戏开发。Epic 对电影和游戏界的最大贡献可能就是 Unreal Engine 渲染。

游戏开发的其他方面一样,渲染入门容易,但要熟练掌握则需要耗费数年时间。希望此文能够帮助你走上渲染之路,为你介绍一些我多年来使用 Unreal Engine 所学到的技巧和诀窍,然后再讲一讲渲染领域的重大变革者。

摄像头是关键

制作出色渲染的一种最简单办法就是使用 Quixel bridge 资产。如果你没用过 Quixel 电影渲染或素材,一定要看看,可以帮助你提高项目的图像质量。

另一个差别就是摄像头。

对 Unreal 的内置摄像头规格进行基本调整,可以达到一定水平的摄影效果,就像真实世界中摄像机的实际规格。人们习惯于电影中场景呈现或摄像机录像的方式。正常的眼睛不一定会像这张图片一样模糊前景,但好莱坞电影可能会。

Unreal Engine 渲染的一个基本经验法则就是:

对于小物体,试着增大光圈。这样会模糊背景和前景,增加所谓的移轴效果。使用这种效果,即使是大型卡车,看起来也很小。

三分法

类似地,电影中的一种经典法则就是“三分法”。虽然这个概念实际上只是一种经验法则,但它确实有助于创建更自然的镜头。

三分法将镜头分成由两条水平线和两条垂直线组成的井字格。图像的重点放置在井字格的交点上,场景会更令人舒适。构图会告诉观众需要关注的重点。但在现实中并非如此。我们的眼睛会被感兴趣的事物吸引,因为它们是按照我们想要的方式构图的。

三分法允许我们关注镜头中的更多细节,同时观众仍然可以探索镜头中的其它内容。将人物或重点置于镜头中心很容易,但有趣的是,这些交叉点会以正确的方式刺激我们的大脑。

在这里插入图片描述
这张图片里,三分法有助于前景元素构图。图中的薰衣草,除了位置按三分法设定外,它们与森林中其它事物的对比也更明显,从而增加了场景深度,强化感知细节。

光照技术

Ambient Occlusion(环境光遮挡)

Ambient Occlusion,通常称为 SSAO 或 Screen Space Ambient Occlusion(屏幕空间环境光遮挡),通过计算遮挡对素材的影响,产生更现实的光照效果。本质上来讲,这意味着光线不再是全覆盖,角落处和物体的遮挡阴影会更自然。建议将 AO 设置为 1,半径为 200。

与所有其它场景一样,改变设置会大大增强你想表达的情绪,同时,根据室内大小、主题等,对每个人而言都有不同。

Ambient Cubemaps(环境立方体贴图)

通过设置带 Ambient Cubemap 的引擎,场景会变得更加真实。市场上有许多安装包,可以在场景中应用立方体贴图。立方体贴图是一种纹理,实现现实世界或生成场景中的光照纹理效果。这种方法可以帮助你在沙漠场景、狭小室内以及你可能处理的任何环境中设置更多自然光照。

Color Grading(颜色分级)

在 Unreal Engine 渲染领域,最强大的工具之一就是 Post Process(后处理),它能够在场景中添加 Color Grading 纹理。颜色分级会在整个电影和游戏中使用。这是一种非常便捷简单的场景色彩平衡和饱和度调整方法,无需逐一调整光照和素材。

这也是给观众留下深刻主题印象的最佳办法之一。例如,使用强调蓝色的颜色分级纹理,可以增强海洋场景,强化空中奇妙天堂的神圣感。Unreal Marketplace(虚化商城)及互联网上有大量理想的颜色分级纹理可用。强烈建议使用颜色分级,即使它只能在场景中增添一点点情绪。

Unreal Engine 渲染 – 基本功能

在这里插入图片描述
Unreal Engine 渲染有一些基本的组件,适当使用,可以大幅增强效果。镜头光晕、场景模糊和渐晕等确实可以增加电影效果。不过千万不要过度使用。否则,观众很容易就能看出来,它们也就变成了渲染者的标记。

想一想那些导演,例如 Wes Anderson(韦斯·安德森),他就具有非常鲜明的摄影风格。电影拍摄具有辨识度是件好事,但有时候也可能成为定势。

同时,不要忘记 Unreal Engine 渲染的基本原则。始终烘焙光照,安全起见,需要采用不同的角度。新时代的电影拍摄与五十年前不同,但作为艺术家和创作者,我们必须记住哪些才能让人们享受数字平台。

玩家可达性与现实

短片渲染时,这不是大问题。但是,游戏开发人员要考虑的一个常见的问题就是:是否让游戏看起来真实,还是吸引更多的玩家。构建更多玩家可轻松访问的游戏,是确保粉丝群不断增长的重要因素。

当然,玩家也希望游戏能够利用 Unreal 使创建的内容更加吸引人,比如Gears 5。

如果你正在使用 Unreal Engine 5 构建游戏,这很容易实现。Unreal 中有很多新纹理串流和多边形工具,但是,如果您仍然使用官方正式版,如4.26,你可以进行以下操作,保证高质量效果,同时允许玩家使用低端机器。

大型场景、LOD 和剔除

Light Importance Volumes(重要光照范围)允许在关卡的特定部分增加更多的光照和阴影细节。这样对具有线性风格的游戏,例如 Call of Duty,好处最明显。在玩家的主关卡中,光照细节很多,但背景从远处看仍然很好。

类似地,LOD,也就是 Level of Detail (多细节层次),应始终设置用于网格。本质上,LOD 中,越接近网络,细节越多,物体越远,细节越少。

在大型关卡中,即便使用和优化了关卡流,大量植被仍能对游戏和电影的表现产生重大影响。Foliage Culling 允许为实例植被设置最小和最大视距。基本上,随着视线距离逐渐变远而消失,又随着视线逐渐变近回到场景中。

Ray Traced Reflections(光线追踪反射)

长期以来,Ray Tracing(光线追踪)一直是三维渲染领域讨论的热点。毫无疑问,光线追踪可以为数字时代的开发人员和电影制作者提供帮助。过去,这需要大量的计算能力。许多开发人员用 Ray Tracing 渲染场景时需要等待数个小时,幸好 Unreal Engine 可以帮忙解决这个问题。

如果你不知道 Ray Tracing 是什么?简单来说,它是一种计算不同素材上光线反射和折射的方法。显然,启用这种功能时,会严重影响性能表现。

这时实时屏幕空间 Ray Tracing 就派上用场了。与整个场景的计算相反,你可以设置 Ray Tracing 组件,只计算摄像头能看到的场景。不过渲染电影时,仍然会对性能造成一些影响,Ray Tracing 始终需要权衡。如果在低端机器上使用,且工期较紧时,强烈推荐使用屏幕空间反射。

最有必要使用的场景包括湿润、玻璃和反光材料。不过,它在处理更自然的阴影时,确实有很大帮助。例如,离遮挡光线的物体越远,阴影变得越亮和越模糊。如果不启用 Ray Tracing 或 AO,渲染引擎往往只显示简单的阴影。使用了这些工具后,阴影会变得更加自然,观众看来,就像真实场景一样。

Dynamic Resolution(动态分辨率)

如果处理游戏画面,那么 Dynamic Resolution 会是你的完美伙伴。毫无疑问,Unreal Engine 就是这样的工具。

Dynamic Resolution 允许实时调整画面质量,以便保持帧率一致。这个工具利用原先的帧率以及用于 FPS 的功率进行计算。

若没有这个工具,游戏只能简单地遵循预先设定的画面质量显示,中低端机器玩家体验时画面滞后很严重。

“I’ll Fix It in Post.”(我会在后期修复。)

对于电影或预告片,不要低估自己在录制后编辑影片镜头的能力。就像过去的电影一样,你会惊讶地发现 Unreal Engine 艺术家仍然会说: “I’ll fix it in post.”(我会在后期修复。)

当然,录制时总是希望能够最接近最终成品。但若作品已成事实,那么只能大量修复或合成。然而,在低端机器或受时间限制时,After Effects(影像特效)等程序中使用哑光绘画可能会更有益,利用 Unreal Engine 渲染实现合成的最简单方法就是导出一系列 exr 文件而非 AVI。这样你可以使用影片镜头中可用的 Alpha channel,而非选择蓝屏或绿屏素材。

总结

总的来说,Unreal Engine 渲染功能强大。你可能需要耗费一些时间才能找到最完美的工作流程,这是学习过程的一部分。希望今天我们讨论的内容可以帮助你更好地制作渲染。

不仅仅是更好的渲染效果,而且还有更快的渲染速度。过去需要数小时制作场景,数小时调整,利用今天所述的基本功能和工作流程,只需要一两个小时就能完成这些任务。说到提升速度,如果你还没有用过 Incredibuild Unreal Engine,那么一定要体验一下,感受加速后的 Unreal Engine 使用效果。

这些内容可能有助于你更好地制作渲染,但每个人的收获都有所不同。如果真的帮助到你,请分享到社区,让我们互相帮助,创建更好的内容!
点击了解 Incredibuild 加速 UE 编译 C++ 以及着色器编译加速的解决方案!

点击获取Incredibuild试用!
在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Unreal Engine(虚幻引擎)渲染 – 正确使用方法 的相关文章

  • 如何使 Windows 窗体的关闭按钮不关闭窗体但使其不可见?

    该表单有一个 NotifyIcon 对象 当用户单击 关闭 按钮时 我希望表单不关闭而是变得不可见 然后 如果用户想再次查看该表单 可以双击系统托盘中的图标 如果用户想关闭表单 可以右键单击该图标并选择 关闭 有人可以告诉我如何使关闭按钮不
  • 如何验证文件名称在 Windows 中是否有效?

    是否有一个 Windows API 函数可以将字符串值传递给该函数 该函数将返回一个指示文件名是否有效的值 我需要验证文件名是否有效 并且我正在寻找一种简单的方法来完成此操作 而无需重新发明轮子 我正在直接使用 C 但针对的是 Win32
  • 无法使用已与其底层 RCW 分离的 COM 对象。在 oledb 中

    我收到此错误 但我不知道我做错了什么 下面的代码在backrgroundworker中 将异常详细信息复制到剪贴板 System Runtime InteropServices InvalidComObjectException 未处理 通
  • 是否可以强制 XMLWriter 将元素写入单引号中?

    这是我的代码 var ptFirstName tboxFirstName Text writer WriteAttributeString first ptFirstName 请注意 即使我使用 ptFirstName 也会以双引号结束 p
  • ASP.NET Core Serilog 未将属性推送到其自定义列

    我有这个设置appsettings json对于我的 Serilog 安装 Serilog MinimumLevel Information Enrich LogUserName Override Microsoft Critical Wr
  • UML类图:抽象方法和属性是这样写的吗?

    当我第一次为一个小型 C 项目创建 uml 类图时 我在属性方面遇到了一些麻烦 最后我只是将属性添加为变量 lt
  • linux perf:如何解释和查找热点

    我尝试了linux perf https perf wiki kernel org index php Main Page今天很实用 但在解释其结果时遇到了困难 我习惯了 valgrind 的 callgrind 这当然是与基于采样的 pe
  • WPF 中的调度程序和异步等待

    我正在尝试学习 WPF C 中的异步编程 但我陷入了异步编程和使用调度程序的困境 它们是不同的还是在相同的场景中使用 我愿意简短地回答这个问题 以免含糊不清 因为我知道我混淆了 WPF 中的概念和函数 但还不足以在功能上正确使用它 我在这里
  • 指针问题(仅在发布版本中)

    不确定如何描述这一点 但我在这里 由于某种原因 当尝试创建我的游戏的发布版本进行测试时 它的敌人创建方面不起作用 Enemies e level1 3 e level1 0 Enemies sdlLib 500 2 3 128 250 32
  • 在 Visual Studio 2008 上设置预调试事件

    我想在 Visual Studio 中开始调试程序之前运行一个任务 我每次调试程序时都需要运行此任务 因此构建后事件还不够好 我查看了设置的 调试 选项卡 但没有这样的选项 有什么办法可以做到这一点吗 你唯一可以尝试的 IMO 就是尝试Co
  • 将自定义元数据添加到 jpeg 文件

    我正在开发一个图像处理项目 C 我需要在处理完成后将自定义元数据写入 jpeg 文件 我怎样才能做到这一点 有没有可用的图书馆可以做到这一点 如果您正在谈论 EXIF 元数据 您可能需要查看exiv2 http www exiv2 org
  • 如何使我的表单标题栏遵循 Windows 深色主题?

    我已经下载了Windows 10更新包括黑暗主题 文件资源管理器等都是深色主题 但是当我创建自己的 C 表单应用程序时 标题栏是亮白色的 如何使我自己的桌面应用程序遵循我在 Windows 中设置的深色主题 你需要调用DwmSetWindo
  • 在 Dynamics CRM 插件中访问电子邮件发件人地址

    我正在编写一个 Dynamics CRM 2011 插件 该插件挂钩到电子邮件实体的更新后事件 阶段 40 pipeline http msdn microsoft com en us library gg327941 aspx 并且在此阶
  • WCF:将随机数添加到 UsernameToken

    我正在尝试连接到用 Java 编写的 Web 服务 但有些东西我无法弄清楚 使用 WCF 和 customBinding 几乎一切似乎都很好 除了 SOAP 消息的一部分 因为它缺少 Nonce 和 Created 部分节点 显然我错过了一
  • 为什么 C# Math.Ceiling 向下舍入?

    我今天过得很艰难 但有些事情不太对劲 在我的 C 代码中 我有这样的内容 Math Ceiling decimal this TotalRecordCount this PageSize Where int TotalRecordCount
  • const、span 和迭代器的问题

    我尝试编写一个按索引迭代容器的迭代器 AIt and a const It两者都允许更改容器的内容 AConst it and a const Const it两者都禁止更改容器的内容 之后 我尝试写一个span
  • ASP.NET MVC 6 (ASP.NET 5) 中的 Application_PreSendRequestHeaders 和 Application_BeginRequest

    如何在 ASP NET 5 MVC6 中使用这些方法 在 MVC5 中 我在 Global asax 中使用了它 现在呢 也许是入门班 protected void Application PreSendRequestHeaders obj
  • C 中的异或运算符

    在进行按位操作时 我在确定何时使用 XOR 运算符时遇到一些困难 按位与和或非常简单 当您想要屏蔽位时 请使用按位 AND 常见用例是 IP 寻址和子网掩码 当您想要打开位时 请使用包含或 然而 XOR 总是让我明白 我觉得如果在面试中被问
  • 限制C#中的并行线程数

    我正在编写一个 C 程序来生成并通过 FTP 上传 50 万个文件 我想并行处理4个文件 因为机器有4个核心 文件生成需要更长的时间 是否可以将以下 Powershell 示例转换为 C 或者是否有更好的框架 例如 C 中的 Actor 框
  • 使用 libcurl 检查 SFTP 站点上是否存在文件

    我使用 C 和 libcurl 进行 SFTP FTPS 传输 在上传文件之前 我需要检查文件是否存在而不实际下载它 如果该文件不存在 我会遇到以下问题 set up curlhandle for the public private ke

随机推荐

  • R语言学习:数据结构8-日期和时间

    日期和时间 date time 日期 Date 内部存储的是距离1970 01 01的天数 相关函数 date Sys Date weekdays months quarters 查看日期 date x lt date 查看当前系统日期和时
  • 数据清洗的步骤和注意事项:提高数据分析的准确性和可靠性

    作为一名数据分析师 我深知数据清洗是数据分析的重要一步 数据清洗的质量直接影响到数据分析的准确性和可靠性 在这篇文章中 我将分享一些数据清洗的步骤和注意事项 帮助你提高数据分析的准确性和可靠性 1 确定数据清洗的目标和指标 在开始数据清洗之
  • 腾讯云部署(gin框架+vue3.0)前后端分离项目

    腾讯云部署 gin框架 vue3 0 前后端分离项目 项目架构和部署工具 项目工具 部署工具 后端项目准备及部署 购买云端服务器 以下是腾讯云 阿里云请点击我 https blog csdn net it vegetable article
  • C++ · 求和篇

    C 求和法千万条 等差数列第一条 哈哈 跟大家开个玩笑 现在咱们步入正题 求和法之一 等差数列 没错 等差数列是最简便的解法 众所周知 等差数列求和公式为 首项 末项 项数 2 首项即是等差数列的起始数 末项是等差数列的结束项 好 问题来了
  • 实例化和具体化详解

    在解释具体化和实例化看的有点乱 分解出来备忘 在代码中包含函数模板本身并不会生成函数定义 它只是用于生成函数定义的方案 编译器使用模板为我写类型生成函数定义时 得到的是模板实例 如这个模板 template
  • keil5 编辑栏一直是灰色

    无语了 气炸了 愤怒啊 查了一下 有很多 arm 和 c51 并存 不管他了 之前装了用完51 又装了arm 现在反而什么都用不了 打开license 发现过期了 重新破解 即可 注意音乐 大半夜吓死人 你以为这样就可以了 你就太天真了 网
  • java:最差产品奖

    import java util Scanner 注意类名必须为 Main 不要有任何 package xxx 信息 public class Main public static void main String args Scanner
  • dll文件反编译源代码 C#反编译 dotpeek反编译dll文件后export

    目录 背景 下载安装dotpeek 导入dll文件 export导出文件 参考 背景 项目合作的时候 使用前人的或者其他部门dll文件直接在机台运行 会出现很多问题 逻辑 效率等等 此时我们可以选择对他们的代码进行反编译和重构 重新梳理逻辑
  • Windows C++运行命令编程

    Windows C 运行命令编程 一 命令处理方式 二 popen函数 三 重定向的子进程 四 参考链接 一 命令处理方式 Windows下编程经常需要使用批处理指令 bat或cmd 因此如何执行命令和获取返回数据是一个关键点 对于控制台程
  • STM32+IAP方案的实现,IAP实现原理(详细解决说明)。

    此文档内容摘自 http www 51hei com stm32 4315 html 可参考文档 https blog csdn net gin love article details 82015646 基于STM32F103ZET6的U
  • 力扣 剑指 Offer 25. 合并两个排序的链表

    简单题 就不多写了 class Solution public ListNode mergeTwoLists ListNode l1 ListNode l2 ListNode head new ListNode t head while l
  • 一文读懂大语言模型

    以ChatGPT为代表的大语言模型被很多人认为是新一轮科技革命的起点 本文旨在通过概念性介绍 让普通人能够尽可能理解人工智能以及大语言模型的基本概念 从而了解这些技术能做以及不能做什么 原文 A Very Gentle Introducti
  • 关系表的构成要素主键_关系模型简述

    关系模型简述 关系模型是基于表的处理方式抽象形成的 是在对传统表及其操作进行数学化严格定义基础上 引入集合理论与逻辑学理论提出的 关系模型也是数据库的三大经典数据模型之一 也是现在大多数商品化数据库系统所仍然再用的数据模型 数据库标准语言也
  • 流媒体服务器在大屏系统,视频流媒体服务器

    视频流媒体服务器 内容精选 换一换 音视频传输协议众多 不同业务应该如何选择 RTSP RTMP RTP RTC HLS MSS DASH WEBRTC RIST SRT 在此我们就从业务发展的视角来理解各种流媒体协议 帮助大家有更加清晰的
  • 一行命令跑满Linux的CPU

    今天突发奇想 想看看Linux的CPU跑满的样子 其实一行命令就可以使CPU跑满 for i in seq 1 cat proc cpuinfo grep physical id wc l do dd if dev zero of dev
  • nestjs:创建唯一键报错 QueryFailedError: Duplicate key name ‘IDX_d87a44fac9965cb7cf94cba11c‘

    问题 如题 参考 MYSQL中唯一约束和唯一索引的区别 51CTO博客 mysql主键和唯一索引的区别 解决办法 原始代码 Index Column unique true mail string 创建唯一约束时会创建唯一索引 所以应该把
  • score在java中是什么意思_Score.java

    import java io File import java io FileInputStream import java util Properties import java util Scanner import org jsoup
  • windows编程--网络编程学习--winsock编程(2)

    Winsock是windows系统下利用Socket套接字进行网络编程的相关函数 是Windows下的网络编程接口 Winsock在常见的Windows平台上有两个主要的版本 即Winsock1和Winsock2 编写与Winsock1兼容
  • vue3使用Element-plus与TS(TypeScript)

    如果你有一个困扰就是为什么直接CV Element plus文档里的代码总是报各种错误 那你看这篇就对啦 针对Vue3哦 1 项目导入vscode后 安装Element plus npm install element plus save
  • Unreal Engine(虚幻引擎)渲染 – 正确使用方法

    我们已经讨论过 Unreal Engine 虚幻引擎 中可用的很多神奇工具 包括最近抢先体验的 Unreal Engine 5 多亏了 Epic 世界各地的开发人员和团队都可以轻松进行游戏开发 Epic 对电影和游戏界的最大贡献可能就是 U