Chaos
© Dabarti Studio
© Dabarti Studio

说文解字: 实时,光线追踪和栅格化渲染


你知道渲染的三个重要概念之间的区别吗? 本文我们将重点放在实时(real-time)、光线追踪(ray-traced)和栅格化渲染(rasterized rendering),并详细解释每个意义。

自去年年底推出以来,V-Ray for Unreal 彻底改变了艺术家和建筑可视化工作室探索场景的方式,打破了超写实与实时渲染之间的界限。今年五月份的更新进一步提升了该产品——使其质量坚如磐石,足以应付棘手的项目——让您平顺地从 V-Ray 转换到 Unreal 的世界。

但我们经常被问到这个问题:V-Ray for Unreal 到底是如何运作的,为什么我需要 V-Ray for Unreal?为了厘清真相,Chris Nichols 录制了 CG Garage #228 期,回答关于 V-Ray for Unreal 的重要问题。主持人 Chris 专访了 V-Ray for Unreal 的产品经理 Simeon Balabanov 和产品管理副总裁 Phil Miller,他们进行了一场精彩而富有启发性的对话,大伙讨论了渲染的基本原理,以及 V-Ray 对于 Unreal 的重要性。



CG Garage 第 228 集我们邀请到 V-Ray for Unreal 产品经理 Simeon Balabanov(左)和 Chaos Group 产品管理副总裁 Phil Miller(右)。


现在收听 CG Garage 第 228 集:



在这篇文章中,我们将分享渲染的三大概念——正如 Chris, Phil 和 Simeon 三人在 CG Garage 第 228 集中讨论的那样——并深入了解实时、光线追踪和栅格化渲染之间的区别。 


光栅化和光线追踪

让我们从头开始。为了描述三维空间中的物体,简单起见,我们假设从一个开放的纸箱看出去的视角,从您的 3D 软件创建的基本的 Box 形状,给予每个面一张平面纹理, 然后根据位置与光源使箱子的每个面变得更亮或更暗。这个 3D 软件可以根据光源的位置计算出箱子的每个像素的颜色,从而生成相当逼真的 3D 纸板箱。 

在游戏引擎中,这样的操作称为栅格化渲染(rasterized rendering),关于纸箱是亮是暗的信息是基本的直接光照。使用栅格化渲染,你经常需要在场景中添加额外的灯光——有时是在地板以下或墙角——来达到你想要的明暗效果,因为光线不会栅格化器中反弹,然而真实世界中光线会反弹。

相反地,使用光线追踪渲染(ray-traced rendering),你只需要把灯光放在它们实际所在的位置,因为发出的光线会像在现实世界中一样在场景中反弹——因此看起来更加真实。所以,假设我们拿着你的纸箱这个“房间”,我们想用计算机从光源产生真实的照明。由于光线追踪技术,来自该光源的光线会在场景中反弹;它会计算出光线与盒子的交点,以及它应该反射多少光线,光线如何穿过虚拟相机的镜头,最后,决定相机的图像应该如何显示在你的屏幕上。结果非常逼真。具有间接照明,或称为全局照明(Global Illumination),通常简称为“GI”。


这两种方法都各有优点:

  • 栅格化渲染可更快创建 3D 图像,但会牺牲画面品质。适合用于电子游戏,因为游戏速度的重要性优于画质。Unreal 引擎是常见的栅格化渲染器。
  • 光线追踪渲染需要大量的计算,更适合于质量比快速交互更重要的行业:电影、电视和广告的视觉特效,以及用于建筑可视化、设计和汽车的图像和动画。V-Ray 是一个广受欢迎的光线追踪渲染器。


历史背景 

尽管当今所有主要的动画工作室和特效公司都使用光线追踪渲染,但情况并非一开始就是这样。大约十多年前开始,光线追踪技术彻底改变了艺术家们所能达到的效果,使得“灯光师”(CG艺术家,负责替场景照明)能够在更短的时间内处理更多的镜头。 

CG Garage 的第 228 期节目中 Chris Nichols 解释说:“如果你要做一部电影,你必须考虑共有多少镜头需要设定照明,在以前,每位灯光师只能处理约 20 个镜头, 这就是为什么每个场景都需要花很长时间才能正确地照明。你必须手动调整所有的灯光,所有的着色器,所有的东西,使照明看起来正确。当艺术家改用光线追踪全局照明渲染时,能处理的镜头会大幅增加。因为一位灯光师可以轻松处理 120 个镜头,甚至更多!你不需要做补灯做出假的全局照明效果。”

让我们总结一下:

  • 光线追踪可以渲染精确的阴影、递归反射、折射和任何反射/反射光。
  • 栅格化渲染不能做精确的阴影,递归反射,折射,或任何反射/反弹光;使用栅格化渲染,你必须手动调整照明或省略这些计算细节。
  • 光线追踪对于那些着重于模型复杂度和写实材质的人来说是理想的,他们希望能够保持原来的几何形状;可根据所需使用任何尺度的几何体。
  • 栅格化渲染对于那些可接受精减的模型或简化着色器的人来说是理想的;而模型复杂度与材质受限于游戏引擎。


那混合渲染呢?

光线追踪的混合——本质上是“光线追踪效果”——现在被包含在 Unreal 引擎和 Unity 中;这些效果套用到栅格引擎之上,整个游戏引擎的场景设置过程并没有改变。 

让我们朝向实时运算迈进

计算机以足够快的速度生成一系列图像以实现交互的过程称为实时渲染(real-time rendering)。实时渲染的目标是匹配显示器的刷新率,使视觉效果平顺——所以我们说的是 60 赫兹 = 60 帧每秒(帧/秒)的游戏和 VR。(24 或 30 帧每秒通常被称为“实时”,但技术上与电影和电视帧率有关。) 

以往,“实时”一词只适用于游戏引擎,但随着快速光迹追踪技术的出现——比如 Chaos Group 的 Project Lavina ——Lavina 现在适用于任何能够快速而流畅地生成图像的东西。“实时,从技术上讲,只是渲染的速度是否可以达到特定目标,”Simeon 说。“现在,我认为超过每秒 30 帧就可称得上是实时。”



以上是即将到来的 Lavina 的主要功能预览,这是一套我们的开创性应用程序,100% 实时光线追踪器。

如今,VR 仍在电玩游戏业中寻找立足点,但对于建筑师和设计师来说,VR 已经不可或缺了。Phil Miller 解释说:“这种一对一的转换是革命性的。在所有的可视化的世纪中,仅局限在二维的图片。但是很多人都无法将 2D 图像与之联系起来——你不知道画面到底是什么样子的,也不知道你的视线在哪里。没有临场感。在 VR 中就做得到;你会获得真正的空间感。”

你可以使用栅格化和光线追踪渲染引擎来创建 VR 体验;栅格化的引擎允许移动和交互,但必须牺牲写实度,而光线追踪引擎可以显示逼真的照片世界(如果你仅转动头部)。这正是我们开发 V-Ray for Unreal 的原因;协助艺术家使用实时工作流程达到逼真效果。


实时渲染真正的问题

光线追踪引擎和栅格化引擎是两个非常不同的东西,两者都要求艺术家拥有不同的技能。然而,V-Ray for Unreal 现在允许艺术家使用光线追踪工作流进行渲染,并获得同样高质量的 V-Ray 结果,而在 Unreal 引擎中使用实时工作流程。

例如,电玩游戏的艺术家必须了解如何使游戏资产符合特定的多边形数,以及如何在不损害其画面的前提下优化纹理。视觉特效或建筑可视化艺术家必须确保画面逼真且物理正确。相比之下,相片级写实的工作流程更容易,因为渲染的结果与现实世界的设置相仿,所以这种工作流程对所有的设计师和艺术家都是有益的。 

今日,通常使用光线追踪工作流程的行业——例如建筑业——希望拥有实时的好处:能够与场景交互并从任何角度进行检查;有机会在 VR 中体验它与充分运动的任何方向。但他们也想要真实的视觉画面,他们习惯使用光线追踪渲染引擎。

V-Ray for Unreal 的其中一个大优点是,它能够像在 Unreal 中逼真地烘焙光线就像在 V-Ray 那样。V-Ray Light Bake(简称V-Ray Bake)是使用 V-Ray 及其 GI 和光照计算创建光照贴图的过程,能在 Unreal 中生成精确的光照结果。最重要的是,这意味着你可以从 3D 软件中获得真实的灯光。因此,如果你在 3ds Max 或 Maya 中创建一个逼真的环境,例如,最终可以像在 V-Ray 中一样在 Unreal 中生成逼真的照片。更重要的是,一旦你的照明烘焙好了,你可以调整光的强度和颜色(虽然不是灯光的位置)。注意,如果你的灯光尚未进行烘焙,画面看起来会完全不同,因为没有计算光线的反弹。

如果你在 Unreal 追求真实渲染的结果,没有 V-Ray 你将很难达到-除非你投入更多的时间去设定。Chris 解释道:“那些习惯于专注于设计空间的艺术家,而不去考虑这些栅格化概念。他们习惯了以渲染时间为代价获得漂亮的真实感图像。若仅使用 Unreal,突然之间,艺术家必须做更多的技术操作,学习更多的知识,花更多的时间,才能达到相同水平。”

这就是 V-Ray for Unreal 能协助提升的地方。可上帮大忙。

© Balázs Őrley, Fabian Bulyovcsity, Andras Pall



使用 V-Ray for Unreal,你现在可以直接将来自 3ds Max、Maya、SketchUp 和 Rhino 的 V-Ray 场景导入到 Unreal 编辑器中——而且,你终于可以用 V-Ray 直接渲染100%光线追踪的照片级写实图像。

V-Ray for Unreal

现在,我们已经掌握了三大技术 (光栅化、光线追踪和实时)的基础知识,我们可以开始讨论 V-Ray for Unreal。正如我们已经强调过的,Unreal 引擎通常使用栅格化渲染,而 V-Ray 用的是光线追踪引擎。巧妙之处在于,使用 V-Ray for Unreal,可以将使用 3ds Max、Maya 或 SketchUp 等 3D 软件创建的光线追踪场景导入 Unreal 引擎,并在场景中进行实时探索。 

如何能达成呢?V-Ray for Unreal 会读取 V-Ray 场景,转换几何体,自动计算出与场景中的灯光和材质最接近的 Unreal 等效物。在大多数情况下,这些 Unreal 的材质会很接近 V-Ray 的材质。通过烘焙灯光,您可以在 Unreal 引擎中探索您的场景,并从任何角度实时查看,甚至将其带入虚拟现实。 

有了 V-Ray for Unreal,艺术家不再需要学习新的工作流程,也不必成为游戏引擎专家,就能将他们的作品转换成实时格式。


考虑 GPU 的因素

实时探索复杂的栅格化场景需要高性能的 GPU。一旦场景被加载到 V-Ray for Unreal 中,艺术家就可以利用 V-Ray 的光迹追踪渲染创建高质量的真实感图像,而无需离开游戏引擎。V-Ray for Unreal 甚至将 Unreal 中的材质与其对应的 V-Ray 材质连接起来,因此在 Unreal 中生成的渲染效果看起来与在 V-Ray 中生成的效果是相同的。

但品质是主观的,正如 Simeon Balabanov 所解释的:“我曾与一些客户讨论过,他们只想在 VR 中进行空间探索。他们不在乎材质。客户只是想看看建筑内部的阴影是如何投射的,当他们戴上 VR 眼镜,以观察者的角度来看,他们在乎光线的物理正确性,但对材质的物理精度要求不高。只使用预设的灰色材质,让窗户变得透明。”

V-Ray for Unreal 提供了两种渲染世界的最佳效果:难以置信的质量与 Unreal 引擎的实时渲染结合在一起。 


想亲自尝试 V-Ray for Unreal?现在就下载 30 天的免费试用版,立即使用。


如果您遇到技术问题,请查看我们详细的 V-Ray for Unreal 帮助文档访问官方讨论版查看最新的讨论。 

Chaos
© 2024 Chaos Software 保留一切权利