“离线”和“实时”渲染有什么区别?

我有一个大概的想法:实时近似与很less或没有全局照明。 但是,你会如何解释为什么离线渲染需要更长的时间? 你会听到像“传球次数”等等…

你能简单地解释一下这个区别吗?

离线渲染比实时渲染需要更长的时间没有inheritance的原因。

只是当你离线渲染的时候,渲染过程通常要less得多的性能问题,所以你可以select使用非常昂贵的渲染技术,这对于实时渲染来说太慢了。 当你不受限于每帧必须在20ms内渲染的限制时,你可以使用更复杂的几何graphics和更多的昂贵的渲染技术。

确切地说,每种情况使用哪种技术是不同的。 例如,全局照明对于实时渲染通常太慢,但并不总是如此。 当场景的几何graphics足够简单时,可以实时拖动。 虽然离线渲染可以使用全局照明,但并不是必须的。

有无数其他的渲染技术,或多或less的性能,并提供或多或less的美丽的结果取决于确切的场景几何。 根据具体情况,几乎所有渲染技术都可以用于实时和离线渲染。

例如,光线跟踪通常被认为对于实时渲染而言太慢。 但是当你的场景只包含完美的球体时,任何基于多边形的渲染器都会在绝望中哭泣,而光线追踪引擎可以实时进行渲染。

“实时渲染”是在您要求您生成图像的任何解决scheme(使用不同的技术来实现此目标)时计算出来的。 “脱机”渲染不一定是“实时”的反面。 这个术语在讨论configuration器,特别是Webconfiguration器时经常用到。 有时候人们也会用“预先计算”这个词。

“离线渲染”不提交到时间限制。 基本上准备好一个场景,然后生成一系列的图片(“预先计算”),最终组合成一个video剪辑,然后被观看(“离线”)。 所使用的技术types(“实时渲染”或“光线追踪”)的select取决于次要标准(要呈现的几何形状和材料的复杂性和types)。 这两种技术都有很好的软件包。

“射线追踪”常常被认为是“物理上正确的”,“实时渲染”使用各种“技巧”来生成出现在你的眼睛(更重要的是你的大脑)上的图像,就像真实的“照片写实”。

因此说,由于这个时间限制,您需要在20ms内计算图像的事实消除了许多解决scheme。 这里有两个典型的例子:“沉浸式解决scheme”(如CAVE系统)或高级组合的“Webconfiguration器”,不可能预先计算。 在这两种情况下,都无法预测最终用户所需的图像。 而预先计算所有不同的可能性只需要太多的时间(通常是几年,即使在每个图像20毫秒的速度)。

它只是当你看animation,如果你的电脑足够强大的计算所有的演职人员,阴影,纹理,一切等等,你正在寻找一个生动的渲染视图…但如果你有一些下降的FrameRate,你应该使用离线渲染,这与另一个完全相同,但是,这将使CPU达到极限,因为显然它会尝试渲染它尽可能快,但显然不能实时进行,所以此过程将节省当每个帧已经完全渲染时,每个帧在缓冲区(或文件)(如PRE-RENDER),这样你可以看到一切呈现在全部细节,但是当渲染每个帧的过程已经完成…

比例,准确性与逼近,艺术控制/重点,比较,2D与3D交付。 这些是一些关键的区别。 考虑一个经典的沃尔特迪斯尼animation。 我会称之为“离线渲染”:

http://www.insidethemagic.net/wp-content/uploads/2016/06/rs_1024x759-150812103434-1024.bambi_.cm_.81215-800x400.jpg

在这种情况下,没有计算机参与,但是有艺术家以一种耗时的方式手工绘制每一帧。 您不能让客户想要看到Bambi等待艺术家用手绘出每一个观众需求的框架,而配音演员在suuuuuuuupeerrrr-slowwwww-motionnnnn中交谈。 这必须“离线”完成并录制到电影中。 即使涉及到计算机,这也是主要的差异之一。 无论是艺术家在摸索,还是绘制渲染场中的每一个单独的框架或大量计算机,都需要处理大量的数据,这些数据超过了实时渲染的范围。

如果你考虑一下阿凡达,那么他们显然在每一只小昆虫的野生动物照片中就会出现数十万个复杂的小动物模型。 很显然,詹姆斯·卡梅隆(James Cameron)对此非常固执,一直让特效制作人员将单个镜头的数量翻倍,翻倍,使场景更加逼真,即使每个animation小动物模型只转换为几个像素在最后一拍(至less这是我被告知在他们的工作室)。 在那里只有一个镜头的小生物数据可能使整个游戏世界变得相当渺小,这让我很头疼。

  • 实际上我是一个詹姆斯·卡梅隆(James Cameron)的粉丝,如果反对票来自他的话, :-DI在他家花了一些时间,我的英语错了。 我的意思是说非常固执并且有一个很好的方式,但是就我所听到的,如果你有一个导演一直想要把RT渲染器的数量翻倍数据在场景中,然后再加倍,然后再加倍,然后再加倍。 出于某种原因,我认为“asinine”意味着难以置信的固执,并要求一切以某种不妥协的方式进行,而不是愚蠢的。

对于战列舰,ILM实际上已经有了一个镜头,那里有一个单一的框架里有五亿颗粒子被模拟。 对于大量CG CG生物的视觉特效电影,他们使用这些肌肉模拟仿真,这些模拟仿真非常昂贵,但会产生皮肤下肌肉最微妙的收缩。 其中大部分可能看起来像是矫枉过正,但是人眼对微妙的东西非常敏感,很多时候,这些微妙的东西是最先进的实时graphics和顶尖的离线渲染之间的区别。

但最后但并非最不重要的一点,视觉特效管道是为了产生用户从固定角度看到的镜头。 他们不是在制作互动世界。 因此,在2D(或2.5D)合成中进行大量的艺术后期处理,艺术家将所有渲染过的合成物合成并使用filter和效果,从特定的角度使特定的合成物取景并符合导演的设想 – 如果玩家被允许旋转摄像头并导航世界,那么在旋转摄像头的情况下他们正在做的事情将会分崩离析,您无法在“过场animation”场景之外做的事情。 有时甚至会模仿合成器中的粒子效果,而不是3D软件,所以2D或2.5D的艺术控制元素通常也可以用于离线渲染。 而对于合成方面,他们可能会将VFX镜头与实际行动进行复合,比如使用多层预渲染VFX缓冲区replace绿色屏幕上的现场演员。 生产过程与2D和2.5D截然不同,合成是离线渲染的一个重要部分:

https://www.youtube.com/watch?v=WCEfaqypwBw

生动的方面,如果有一些涉及,往往会大大改变生产过程。 例如,许多VFX艺术家花费时间在诸如从演员中删除腋下污渍等东西,因为CG比让演员去除除臭剂便宜,而且在摄像机匹配等方面花费了大量的时间:将现实世界的摄像机匹配到虚拟的一个允许合成虚拟元素到活板。

资产创建和管理也与“过场”类固定摄像机角度约束再次有所不同。 游戏或实时演示可能只想使用一种多用途的通用钻井平台,因为对每一个角色使用不同的钻机是不切实际的。 一部电影可能会使用一打,这取决于所涉及的镜头和姿势。 一个游戏可能要模拟整个建筑物,让玩家走在它的内部。 一部电影可能会走捷径,只是建筑的一半,如果只从外部和一个角度渲染,就跳过内部。 视觉特效制作可能会变得更加快速和肮脏,因为渲染离线后,他们只需要在一天结束的时候提供2D图像。 他们不需要对完整的资产进行建模,而且往往不会因为“快速,快速,快速”,“快速启动”而导致结果。

如果涉及到非真实感的渲染,就像在离线渲染animation制作中一样,那么也会有一些不同,因为这也是“过场animation”的一个方面。 艺术家通常会手工绘制很多东西,有时甚至是在渲染的基础上逐帧绘制,而不是完全依靠cel着色器。 当然,如果你没有离线渲染,你不能让观众等待一个艺术家手工在每一帧的顶部画东西。 所以离线渲染不一定是离线的,只是因为需要额外的计算能力。 有时候它是离线的,因为你需要一个艺术家的手来修饰它发货之前渲染的每个单独的框架。

我也听到约翰·卡马克提到,离线人群在接受PBR方面更具抵抗性。 自从PBR来自迪士尼之后,我就不知道了,但是如果是这样的话,这对我来说是有意义的,因为VFX的艺术家们又一次又一次地想着“一枪一炮”资产。 PBR的许多好处是创建在任何照明条件下看起来不错的资产。 一个不介意为每一个镜头调整每一个资产的艺术家不会看到那么多的好处(视觉特效资产有时只用于一分钟的镜头从不被再次使用),作为一个艺术家试图为实时演示或游戏创建可重用的资产。

而游戏引擎工具开始变得像视觉特效包一样,实时过场animation的元素投射出来,这一切都变得模糊起来。 而且我认为它将来会变得越来越模糊,这有点令人兴奋,但是当你考虑在一个镜头/帧中模拟5亿个粒子,而UE 4在GPU上处理数十万个令人印象深刻的RT时,那么它们还是天壤之别……而且它们可能永远不会收敛,因为在某些时候,离线渲染群体可能想要模拟生物的每一个分子或类似的东西,而且如果最终的可交付成果是来自固定摄像机角度的图像或video,那么艺术家可能希望在用户看到之前手动修改这些图像/video的所有帧。

最后一部分是我想要跳槽的主要原因,因为工程师往往主要考虑计算时间。 但离线渲染分离的关键之一是其可交付成果严格是二维的(或者可能是立体的,在这种情况下,每帧两个图像,但仍然是固定的角度)。 这通常意味着艺术家们希望花费更多的时间将每个画面作为2D视觉元素进行后期处理(或者有时甚至画画),因为他们可以在离线时进行处理。 即使在最快渲染技术和硬件的假设情况下,如果离线渲染群体仍然希望离线执行任务,只要最终的可交付成果是2D图像即可。 在这种情况下,离线的原因是希望花费更多的时间在每个单独的框架上,而不是计算时间的结果。