迪士尼研发的渲染器有多厉害啊(迪士尼研发的渲染器有多厉害知乎)

准搜外资讯网 影视剪辑 2024-04-16 00:36:12 962

渲染器是一款软件,它采用所有模型、动画、纹理、灯光和其他场景对象,并通过计算光线在虚拟场景周围的反射方式并为对象着色,生成构成动画电影的最终图像。 Hyperion 是迪士尼的内部渲染器,一个基于物理的路径追踪器。

今天的文章将详细讲解Hyperion渲染器的操作方法和路径跟踪原理,带您了解迪士尼独特的制作技术。

迪士尼研发的渲染器有多厉害啊(迪士尼研发的渲染器有多厉害知乎)

路径追踪

那么什么是路径追踪呢?事实上,路径追踪是一种通过模拟光线与虚拟世界中的物体相互作用来生成数字图像的方法。

通过将光线(线段)射入场景并跟踪光线在对象之间反弹来追踪光线的路径。路径追踪因计算从光源到相机的完整光线路径而得名。通过将沿路径的所有光线聚集在一起,可以计算光源和沿路径的表面的贡献。这些计算用于生成最终图像。

在许多版本的路径追踪(包括Hyperion 所采用的方法)中,路径从相机开始并被拍摄到场景中以找到与光源的连接。这与光线在现实世界中的行为相反,但通过反向执行此操作,可以更轻松地找到实际照射到相机的光线路径。

使用Hyperion 渲染之前和之后

说到这里,问题来了,为什么要进行路径跟踪呢?这种技术能够产生高度的真实感。由于虚拟场景中灯光与物体之间的所有交互都是模拟的,因此可以捕获折射和光泽反射等效果。

使用Hyperion 渲染之前和之后

最重要的是,迪士尼可以使用间接照明生成图像,其中考虑了虚拟物体反射的光线。即使多次反射的光(称为多次反射光)也会对场景产生影响,包括微妙和不那么微妙的灯光效果。

这些框架展示了光的多重反射对楼梯中大白鲨外观的影响。在图像中,请注意穿过大白的柔和的间接光,使他看起来像上一张图像中的乒乓球一样半透明。

如何制作海伯利安

Hyperion 如何创建图像?在迪士尼的动画电影中,制作过程涉及非常庞大且复杂的场景,例如《超能陆战队》中的旧金山市。

对于任何试图模拟真实光照的渲染器来说,这都是一个挑战。如果您使用典型的路径追踪技术,其中光线随机反弹并以不可预测的顺序遇到对象,这可能会导致大量时间浪费,尤其是在复杂的场景中。

为了解决这个问题,迪士尼使用了自己独特的路径追踪方法。 Hyperion 通过根据方向对光线进行分类和捆绑在一起,同时处理数百万条光线。当光线以这种方式分组时,束中的许多光线都会击中同一空间区域中的同一物体。

光线命中的这种相似性使团队和计算机能够优化命中对象的计算。借助这种新方法,迪士尼可以渲染整个旧金山,而无需借助绘画等技巧来模仿远处的风景。

这使得动画可以将观众的视角放在大白的肩膀上,让他不受任何限制地快速穿过旧金山。

Hyperion 是一种流式光线追踪器,能够在生产规模场景中执行多次反射全局照明,而无需诉诸阴影缓存或实例化。为了实现这一目标,迪士尼推出了新的两阶段光排序框架。

首先,团队对大型、可能脱离核心的射线批次进行排序,以确保一致性;其次,他们使用核心外纹理对光线命中进行排序,以实现延迟着色。通过每个批次的顺序纹理读取来实现完美连贯的着色,从而消除了纹理缓存的需要。这种方法易于实现并且与大多数场景遍历策略兼容。

路径追踪操作指南

一部动画电影通常由超过100,000 帧组成,需要数百位艺术家用双手将画面呈现到屏幕上。下面我将与您分享其中一张图像是如何创建的。

很简单,想想这个框架。首先,我们需要明确一点,屏幕上的所有图像就像一张白纸,框架上没有任何内容,在创建之前也没有任何可处理的内容。

让我们从镜头的像框开始。想象一下这个框架就像你家里的一扇窗户。打开它,你会看到外面地平线上的山丘,还有小溪、岩石和树木。你可以看到天空。太阳。

我们都知道,太阳有光芒,光芒会落到地球上,直到击中地球上的物体。就像落在这块岩石上,你可以看到它,岩石并没有吸收所有的光,岩石实际上与光相互作用,这取决于岩石的成分及其表面结构,这决定了光的方向光线会反弹。

假设岩石表面光滑且反光,就像一辆闪亮的新汽车,这会导致太阳光线反射,然后照射到树的表面。

但光不会停留在树的表面,它可能会从树的表面反射到树叶中,使它们稍微变亮,然后一次又一次地弹跳,就像台球桌上的台球一样,直到那缕阳光最终失去所有的能量。

需要理解的是,并不是所有的太阳光线都直接照射到树木和岩石上,而是通过这样的间接路径。事实上,我们大多数阴凉的地方并不是完全黑暗的,大部分都是可见的,因为那里有光投射。但这只是光的一个例子。

想象每一缕阳光,然后想象数十亿道光线,无限的光路,照亮我们所看到的一切,光无处不在。这就是它在现实物理世界中的运作方式。但在动画电影中,让我们看看计算机是如何做到的。

想象一下,当您在计算机显示器中看到虚拟场景窗口时,场景或世界中的所有对象都是3D模型,它们在这里表示为线框对象,这就是它们在计算机上的样子,动画师的工作只需使用纹理来描绘他们。

让我们仔细看看树下的岩石。当我们创建场景时,我们还可以设计岩石的表面,光线也会从其表面反射。假设石头非常光滑,当光线照射到它时,它会均匀地反射回来,或者如果我们让石头的表面不平坦,那么光线如何反弹更多是一种不可预测的行为。

这就是所谓的表面外观。场景中的每个对象都有自己的表面方向,这决定了它如何与光相互作用。

但这并不能决定物体本身的外观,如果岩石是由大理石和花岗岩制成的光滑岩石,我们可以直接设计创造出我们想要的岩石。现在,我们的树下有一块美丽的花岗岩,具有光滑的反光表面。

在计算机内部构建这种图像画面的过程称为渲染。计算机必须计算我们看到的每一束光线。这个场景需要数百万次计算。这些计算需要时间并且超出了计算机的能力。

那么我们如何解决这个问题呢?只需将光线数量减少到我们需要或可以计算的数量即可。在我们的场景中,每次光线从一个物体反射到另一个物体时,计算机都需要计算其新的轨迹和方向。

有些射线可能击中岩石,有些射线可能击中河流,有些射线可能击中天空,而我们永远没有机会看到它们。这些关系不在框架内,计算它们是没有用的。

高效渲染

为了更有效地渲染,我们将使用路径跟踪。该方法反转了整个过程,仅考虑相机可见的光线路径。路径追踪允许光线从相机发出,追踪到场景中的对象,然后返回光源。

这样,每条相关光线都会被记录下来,并且不会浪费时间追踪永远不会被看到的光线。

但我们怎样才能更有效率地工作呢?为了回答这个问题,我们需要了解计算机是如何工作的。每次我们告诉计算机创建相机光线时,它都必须计算光线反弹。

例如,第一步我们要求光线从相机出发,照射到岩石上,然后岩石表面的属性会告诉光线应该如何继续反射;第二步,假设岩石会反射,计算机将开始新的计算,以绘制下一个方向的射线;第三步,它会遇到另一个物体;在第四步中,它会遇到另一个物体。最终光线将被追踪到光源。

计算机处理能力也是一个令人头疼的问题,因为它需要计算每条光线及其在物体表面的反射。每张图像可能需要数百万甚至数十亿次计算。您可以看到计算机经常因此崩溃或关闭。

相机的光线一次不能仅发射一束。相反,数百万条光线被发射到整个国际象棋框架上。第一组光线进入镜头并捕捉镜头可以看到的一切。但一次肯定是不够的,我们需要多弹跳几次,让画面看起来更自然。

光线可能需要反弹4、5 甚至10 次以上才能创建我们想要的外观。一旦我们的光线离开相机并散射到场景中,事情就会变得复杂。我们的计算机想要均匀地渲染这些光线,但没有固定的光线图案,光线是随机的。

计算机将尝试抓住每一条光线并尝试渲染。就像你在家同时做数学题和历史作业一样,一次只能做一种作业,不能同时做,而且很难随意切换。

计算机以类似的方式工作。如果一束光线射到河流或灌木丛上,那也没关系,因为它不知道渲染这些光线的任何其他方式。但它可以同时处理10 个数学问题或大量历史问题。报告。

通过计算机您可以批量处理场景中的光线路径和方向。因为有些射线具有相同的方向和相似的特性,所以我们可以批量处理它们并进行计算。

看到这些光线的方向相似,将它们聚集在一起。我们还可以对光线的各个部分进行分组,等等。整个过程直到我们渲染第二次反弹。这称为光线排序,它是我们的路径追踪渲染方法。

当我们重复这个排序过程时,这是第三次反弹。但需要多少次还是要看场景的设计。通过将类似的任务分组在一起,我们可以在相同的时间内追踪更多的光线。这样效率更高,并且减少了不同任务之间切换的开销。因此它使我们的场景渲染速度更快,让我们的艺术家能够创作出更美丽的图像。

综上所述,使用这三种方法,我们可以构建我们的场景,物体的表面属性决定了光线如何与物体相互作用;绘制物体的纹理,并组织光线使我们的场景可见;利用光的物理原理来创造我们的现实世界。

如果您想了解更多动画制作技巧和有用信息,请不要忘记关注动画手册其他精彩文章。