Linux 和 星际迷航
Linux 在 1997 年首次获得好莱坞的重要突破,当时加利福尼亚州威尼斯的 Digital Domain (D2) 工作室使用 Linux 为热门电影《泰坦尼克号》渲染特效。我们与 D2 进行了交谈,当时他们正在制作使用 Linux 的《星际迷航:复仇女神》,该电影的计划上映日期为 2002 年 12 月 13 日。D2 将 Linux 用于渲染农场服务器和艺术家桌面。
D2 已将 Linux 用于 21 部电影,包括获得奥斯卡最佳视觉效果奖的《泰坦尼克号》和《美梦成真》。D2 曾两次获得科学和技术成就学院奖:一次是 Track 动作跟踪软件,另一次是合成软件 NUKE。
与大多数工作室一样,D2 主要在其渲染农场服务器和艺术家工作站上使用运行 SGI 的 IRIX 版 UNIX 的 SGI 硬件。D2 在 1996 年对《但丁峰》的实验证明,转向 Linux 是可行的。“Linux 渲染农场最先出现”,D2 数字制作和技术创意总监 Judith Crow 指出。“在《泰坦尼克号》中,我们与一家名为 Areté 的公司合作,使用他们的海洋模拟软件 Renderworld。它在我们 Linux Alpha 上的运行速度比在我们的 IRIX SGI 机器上快三倍。”虽然渲染农场铺平了道路,但 NUKE 和 Houdini 等应用程序将 Linux 推向了桌面。
合成器是软件艺术家用于叠加移动图像的工具,例如,星际飞船“企业号”飞过空间站的背景遮罩。“自 1997 年以来,Digital Domain 一直在 Linux 上运行 NUKE,当时它被广泛用于《泰坦尼克号》”,数字特效主管 Jonathan Egstad 说。Egstad 与 D2 的 Bill Spitzak、Paul Van Camp 和 Price Pethel 一起因 NUKE 合成器获得了奥斯卡奖。
“NUKE 本质上是一个 2D 渲染器”,Egstad 说。“它在 Linux 上的速度比 IRIX 快五到六倍,但直到 2001 年初,Linux GUI 才能够快速运行。早在 1993 年,NUKE 就是最初的基于扫描线的设计。它只需要 20MB 的 RAM 即可渲染典型的合成图像,而不是数百兆字节。”后来的商业合成器应用程序,例如 Apple 出售的流行的基于节点的合成器 Shake,具有类似的设计。
“在很多情况下,2D 可以帮助减轻工作量”,Egstad 指出
我们可以在 NUKE 中构建完整的 3D 场景,然后在 Maya 等 3D 软件包中引用它,反之亦然。可以在 Nuke3 中创建和渲染 3D 场景,包括照明、纹理和着色器支持——内置了漫射、Blinn 和 Phong。NUKE 中有一个完整的 3D 子系统。这是所有 2D 软件包的趋势。2D 软件包越来越倾向于转变为 3D 软件包。
Houdini 是一款商业 3D 软件包,D2 是其主要用户,在其最新版本中提供了自己的集成合成器 Halo。与 NUKE 一样,它是基于层次结构的,并结合了 2D 层次结构。D2 还使用商业 3D 软件包 LightWave 和 Maya。
自 2001 年以来,NUKE 3 版本已在 D2 中使用,运行在 Linux、IRIX 和 Windows 上。D2 的第一个 Linux 渲染农场是在 Digital Alpha 上,并且仍然有一些用途。NUKE 的设计保留了 IRIX 中使用的击键,因此用户,尤其是为 D2 工作的自由职业者,在操作系统之间切换时不会面临学习曲线。“NUKE 界面刻意朴素,更侧重于功能性工作”,Egstad 指出。“它可能拥有任何主要软件包中最强大的色彩校正工具。”
多年来,D2 一直收到将 NUKE 商业化以供其他工作室使用的请求,并且在 Apple 收购行业领导者 Shake 后,压力越来越大。当 Apple 拖延宣布未来的 Linux 支持时,工作室开始感到担忧。
“我们成立了 D2 软件公司,以销售和营销 NUKE 以及工作室内部当前存在或不存在的其他应用程序”,数字制作和技术副总裁 Michael Taylor 说。他继续说
我们在现场设有 NUKE 评估站点。我们正在提供我们内部使用的最新 NUKE 3 版本。大约两年前,在决定进行完整的 NUKE 重写,将 3D 模型融入 2D 模型时,我们曾考虑切换到 Shake,但我们认为我们有一个更好的程序。
Taylor 说 Linux、Windows 和 IRIX 版本将于 2003 年初上市。目前尚无 Mac OS X 计划。定价起价低于 1 万美元,与 Shake 相当。对于学生,将提供免费或廉价版本,与 Maya 和 Houdini 的学徒版本相当。
数字合成师 Brian Begun 描述了在 NUKE 中为《星际迷航:复仇女神》制作场景的过程
我正在处理一个临时镜头,这是一个尚未完成的镜头——尚未准备好用于电影。我们为我们制作的每个节目都设置了一个制作内网,每个镜头都有一个网页。很多艺术家需要共享信息。我们的作业系统使用 Netscape,其中包含大量 HTML 表单和一个用 Perl 编写的服务器。我们不是在目录中存放文件,而是在目录中存放链接。我们可以将文件保存在任何驱动器上的任何目录中,而无需查看它在哪个驱动器上。这使我们的系统部门能够在必要时调整我们的磁盘空间,并尽可能高效地使用它,而不会影响制作。
Begun 向我们介绍了如何在 NUKE 中设置一个典型的特效——将“企业号”飞船移动穿过星场
这是《星际迷航》的环境。我们为每个节目预定义了一个变量列表。假设我选择《星际迷航》SS145A
$ job trek [sets show variables] $ shot ss145a [sets job variables]
cs 命令切换到我的工作目录,在本例中是 work.begun
$ cs
从这里,我可以转到包含元素(合成部分)的图像目录,或者包含 NUKE 脚本的工作目录,如果我们要进行跟踪,则转到内部 Track 脚本。工作目录将包含 NUKE、Flame、Track 和 Elastic Reality(用于 roto 和 Avid 变形的旧但廉价的软件,例如通过变形去除坏帧或电线)的文件。
如果我需要创建我的工作目录,我使用 jsmk 命令。其他目录,例如图像目录,也是以这种方式创建的。它们包含每个绿幕、全分辨率和缩小比例的代理图像、previz 和 temp comp(这让客户对镜头有一个大致的了解,但不一定漂亮)。
lss 命令以比 ls 更易读的格式显示文件。例如,与其查看像这样的文件
test.0001.rgb test.0002.rgb test.0003.rgb
输入 lss 显示像这样的文件
test.%04d.rgb 1-3
在启动 NUKE 之前,我切换到我的工作目录中的 NUKE 子目录
$ cs $ cd nuke $ nuke3
当我启动 NUKE 时,它会弹出一个 GUI 窗口,我选择 Image®Read®File,然后选择 ss145a.wh 加载前景(绿幕)图像。在处理项目时,我同时使用高分辨率图像和四分之一分辨率的代理图像。
这些图像是 Cineon 10 位对数。NUKE 本身会将其转换为 16 位浮点数。NUKE 能够在一个查看器中显示多达十个图像。只需在键盘上输入 1 到 0,我就可以拥有多达十个视图。
这是一个驾驶舱的绿幕[见图 3]。我引入了星星的背景图像。在抠绿幕时,通常会抠取三种类型的遮罩。边缘遮罩用于保留摄影中存在的所有精细细节。填充或“innie”用于填充由于绿溢出或前景主体前方的绿色材料而可能出现的任何孔洞。清洁或“outtie”遮罩用于移除任何应该被背景替换的东西——例如舞台灯光。为了抠取这些遮罩,我将在 Ultimatte 的颜色选择器中选择最能代表我要移除的颜色的“背景颜色”,这将给我最好的遮罩。之后,我将进行任何必要的调整,包括在必要时抠取额外的遮罩,或进行额外的清理。
技术总监 Jason Iversen 负责《星际迷航》的能量束效果和碎片
对于飞船爆炸,我们尽可能多地使用实景特效。实景特效速度更快,即使构建模型需要时间。这可能需要两个人两个月的时间,但创建 3D 镜头需要三个人四到五个月的时间。我们以 300 fps 慢动作拍摄爆炸。这是一项艰巨的任务,但仍然可能无法获得真实感。一些爆炸使用 Houdini 通过数字碎片进行增强。《企业号》的一些镜头仍然是真实的,但不是刮擦船体的美丽镜头。
当我们交谈时,他的一台 SGI 机器被带走用于渲染农场。在 D2,工作站正在升级到双奔腾 PC。
D2 的《星际迷航》工作之前都是在 Linux 上的 Houdini 中完成的,但由于 Maya 插件在 Linux 上不可用,因此大多数 Maya 艺术家都在 Windows NT 上。“我们拥有的最大序列之一是雪崩序列,全部在 Linux Houdini 中完成,加上我们自己的内部工具 VoxelB 用于体积渲染”,Iversen 指出。他继续说
雪崩是一条巨大的粉状轨迹,以 3D 方式生成——而不是 2D 欺骗。我们的体素合成器 VoxelB 是一个插件。我们所有的工具都可以从 Maya 或 Houdini 导入数据。我们经常将这些工具与我们的流体动力学软件结合起来,以创建流动的水。
“Terragen 是我们的地形生成程序,用于《时间机器》中的行星镜头”,Iversen 说。他补充说
我们将其用于 previz 并为数字画家创建初始底板。数字演员都在 Maya 中,主要在 NT 上。我们的流程基于 previz 滚动进入制作。所有艺术家都对我们的作品进行预合成,然后分配一名合成师将其输出到胶片。
Crow 表示,将 D2 基于 IRIX 的应用程序移植到 Linux 的过程非常迅速,尤其是他们的合成软件 NUKE。D2 的 Linux 转换分阶段进行,首先是执行电影特效批处理的渲染农场,然后是艺术家工作所在的桌面。“当 Linux 准备好用于桌面时,我们渴望采用它”,Crow 说。“一旦我们获得像 Linux 这样的操作系统支持我们依赖的功能,我们就很高兴迁移到它。”
