Film GIMP 在 Rhythm & Hues
GIMP 可能是 Linux 杀手级应用列表中的首位。这款类似 Photoshop 的图形软件包在静态图像修饰方面非常受欢迎。然而,很少有人知道它的电影表亲 Film GIMP,它旨在处理一系列图像。
Linux 现在正在被梦工厂、皮克斯、工业光魔和许多其他大型工作室的电影制作部门采用。 大部分 Linux 工作涉及商业工具,例如流行的 3D 动画软件包 Maya(参见 2001 年 10 月号《Linux Journal》中的文章“Alias|Wavefront Maya 4”)或由工作室自己创建的、代表数百万行代码投资的晦涩内部工具(参见 2001 年 8 月《Linux Journal》中的“梦工厂采用 Linux 和动画”)。如今,只有一款重要的开源 Linux 工具被用于大型电影中。 让我们来看看 Film GIMP 及其在洛杉矶电影和电视广告后期制作工作室 Rhythm & Hues 的应用。
R&H 程序员 Caroline Dahllöf 是 Film GIMP 的首席开发人员和维护者。“我们在所有会说话的动物项目中都使用 Film GIMP”,Dahllöf 说。“Film GIMP 正在被各个工作室用于制作中,但可能 R&H 使用得最多。其他工作室表示他们认为 GIMP 是个好主意,但我们似乎是目前唯一一家开发和支持它的制作公司。” Dahllöf 希望看到其他工作室更多地参与开发。 在 R&H,Film GIMP 已被用于 哈利·波特、 猫狗大战、 怪医杜立德 2、 小尼基、 圣诞怪杰、 第六日、 精灵鼠小弟 和 人猿星球。 R&H 还制作广告,例如熟悉的 Coca-Cola 熊广告。 Dahllöf 说
我们的大事是会说话的动物。我们将用 3D 创建它们,因为我们更喜欢它比 2D 变形的外观。我们将制作一个 3D 模型并将其跟踪到素材上,使 CG 动物头部的运动与真实动物的运动相匹配。然后,灯光部门将帧投影到 3D 模型上。2D 部门修复动物说话时缺少的背景部分。
拉伸必须用纹理来修复。嘴巴内部都是 CG。 一些项目,例如可口可乐广告,都是全 CG 的。 这与制作真人动物说话的技术不同。
与制作工作室的典型情况一样,R&H 不仅使用一种工具,还使用一系列工具来进行 3D 动画和真人特效。 在了解 Film GIMP 之前,让我们先检查一下制作流程中 Film GIMP 必须无缝交互的一些专有工具。
对于 3D 建模,R&H 使用内部建模工具 And 和 Maya。 建模师/技术指导 Yeen-shi Chen 解释说
对于电视广告,我正在创建一个穿着潜水服的猫的模型。 猫模型是从我们的模型库中检索出来的,并进行了修改以匹配广告中的猫。 潜水服和潜水装备是后来添加的。 整个模型都是在 And 中构建的。 我以中性姿势创建模型,因为这样可以更容易地让设置人员在其中放置骨骼。
技术指导 Jeff McLean 解释了 R&H 如何使用 IC(交互式合成),他们内部开发的合成器:“一项典型的任务是从 史酷比 场景中移除滑板运动员的手臂,并用桶中的史酷比替换。”(史酷比 预计于 2002 年 6 月上映。)当 McLean 用动画人物(如史酷比)替换真人演员时,他不仅必须遮盖住演员,还必须处理演员的动作超出动画人物覆盖范围的情况。 “当我从场景中移除物体时,我必须进行背景替换并修复背景中缺失的部分”,McLean 说。
灯光技术指导 Greg Yepes 在 哈利·波特 或佳能打印机商业广告等项目中使用内部创建的灯光工具 Voodoo。 “在为合成到场景中的 3D 物体设置灯光时,我最初会将虚拟灯光设置为极值,以便我可以轻松地看到我在做什么”,Yepes 说。“稍后它将以更柔和的值进入 Wren。” 与 RenderMan 类似,Wren 软件是他们内部的渲染引擎,一年前移植到 Linux。“所有应用程序的移植速度都比我们想象的要快”,Yepes 说。“我最初在 猫狗大战 中使用 DEC Alpha,然后英特尔 PC 上线并真正拯救了我们。”
Film GIMP 取代了内部开发的绘图工具 Inc。“我们喜欢使用 Film GIMP 来除尘”,Dahllöf 说。“素材上可能存在灰尘或毛发,无论是来自扫描还是来自底片。通常,人们会从前一帧或同一帧克隆/合并以去除灰尘。” Film GIMP 也用于装备和钢丝移除,例如在 圣诞怪杰 中。 灯光师可能会使用 Film GIMP 来编辑毛发控制文件。“这些控制文件被我们的内部毛发程序 Fur 使用。灯光师还使用 GIMP 来绘制纹理并对帧进行绘制修复”,Dahllöf 说。
“随着工作室转向 Linux,越来越多的人将在 Linux 上使用 Film GIMP”,Dahllöf 说。 因为她正在评估基于 SGI 的商业绘图程序 Matador 和 Illusion,Dahllöf 通常在 SGI 上运行 Film GIMP,而不是 Linux。“我正在研究我需要向 Film GIMP 添加哪些功能才能使其成为一个同等优秀的工具。 我们需要一个好的 Linux 绘图工具,供我们的 2D 部门使用。 我们还没有找到令人满意的商业解决方案。”
“GIMP 不支持任何序列工作,这对 2D 艺术家来说很重要”,Dahllöf 说。“他们的很多工作是从序列中的一帧克隆到下一帧。 因此,我们添加了一个帧管理器。” R&H 使用其自己的专有 RLL 文件格式。“Film GIMP 的一个主要功能是每通道 16 位颜色,并且它与我们的文件格式兼容。 使用 Film GIMP 时,我们不会像使用其他 16 位绘图软件包那样出现任何颜色损失。”
为了获取 Film GIMP,我们必须从匿名 CVS 中检出它。 没有 tarball、RPM 或 deb。 您必须从源代码构建它。 Film GIMP 分支名为 HOLLYWOOD
cvs -z3 -d:pserver:anonymous@gap:/cvs/gnome checkout -r HOLLYWOOD gimp
我们已将防火墙 PC 命名为 gap,使其端口 2401 指向服务器 anoncvs.gimp.org。 如果我们没有在防火墙后面,我们将在 cvs checkout 命令中直接指定该服务器,而不是我们的代理。
从 CVS 完成 18MB 下载后,我们必须进行一些小的更正才能构建。 在 gimp/plug-ins/Makefile.am 中,我们必须从 SUBDIRS 变量中包含的目录列表中删除 rll、pts、fm_pts 和 parsley。 这些插件将无法在 Film GIMP 中构建,并会导致构建失败。
cd gimp libtoolize --force aclocal automake autoconf ./configure -prefix=/usr/local make ./app/gimp
技术副总裁 Mark Brown 说:“我们现在有 50 台 Linux 机器作为桌面,到 2002 年底将拥有 250 台 Linux 桌面。 我们还有一个 200 节点的 Linux 渲染农场,但它会随着需求而扩展或收缩。” R&H 编写了我们自己的虚拟化文件系统来支持 PTS,他们的生产跟踪系统。 R&H 使用 ext2 文件系统。
“我们决定不实际构建我们自己的机器,并已订购 100 台配备 Angstrom Microsystems 的双处理器 1.5GHz AMD 机器”,Brown 说。“这是目前最具成本效益的举措。 我们目前的所有桌面都是双 PIII。 我们将支持完全异构的环境。 显卡和 CPU 是我们知道无法在桌面上保持完全一致的两件事。”
Film GIMP 的出现归功于 R&H 和软件开发公司 Silicon Grail 的赞助。 他们各自聘请了一名 OSS GIMP 程序员一年:R&H 的 GEGL 设计师 Calvin Williamson 和 Silicon Grail 的 GIMP 维护者 Manish Singh。 Silicon Grail 创始人 Ray Feeney 解释说:“我们做过一些其他的开源项目,例如胶片记录仪驱动程序,并将增强 GIMP 视为与开源社区合作的机会。”
Silicon Grail RAYZ 产品经理 Craig Zerouni 说:“我们做了一些将 GIMP 集成到我们的合成器 Chalice 中作为插件的工作。 但最终我们认为非程序化绘图程序与 Chalice 这样的程序化程序不太匹配。” Silicon Grail 正在使用 GIMP script-fu 创建一系列可以保存在 Chalice 中的 Film GIMP 命令。 然而,当 Silicon Grail 开发人员转而开始开发他们的新合成器产品 RAYZ 时,这项工作就被放弃了。
Zerouni 认为绘图程序中需要一种真正的程序化语言,类似于 RenderMan 中的语言。 Silicon Grail 最近从柯达公司收购了 Cineon 源代码,包括程序 Retoucher。“Film GIMP 对我们来说是一件有用的事情”,Zerouni 说。“我们学到了很多关于绘图应该是什么的知识。”
GEGL,即 GIMP E 图形库,是一个基于 GObjects 的图像处理库。 GEGL 开发人员 Calvin Williamson 最初在 R&H 与来自 Silicon Grail 的 Ray Lehtiniemi 一起帮助开发了 Film GIMP。 GIMP 的下一个版本将是 1.4,但 Film GIMP 继续在 1.0.4 分支上开发。 GEGL 的设计支持 16 位通道,预计将在两年后与 GIMP 2.0 集成。 预计 GIMP 2.0 将把 Film GIMP 的专业功能带入主流 GIMP。
Williamson 说他目前的计划是为 GEGL 编写一个小型合成器,以测试大型图像的内存管理、多线程、大型复合树和其他重型专业要求
执行图像和内存管理的类已从实际的图像处理类中分离出来。 这允许人们编写以自定义方式遍历操作图的图像管理器,或编写自定义缓存或内存管理器来处理内存管理。 将操作信息作为图形一部分的类(包括输入、输出、感兴趣区域(所有外部操作信息))已与图像处理类(内部操作信息)分离。 这使得图形遍历对于多线程等操作更加清晰。
“GEGL 仍处于非常早期的阶段,许多类正在建设中”,Williamson 说。“目前还没有正式版本发布,但您可以从匿名 CVS 下载它。 我最近做了一些架构更改。” GEGL 是未来 GIMP 和其他项目的全 16 位图像引擎。
GEGL 和 Film GIMP 都寻求志愿者来帮助编程。 Williamson 说 PDI、ILM、ICT 和索尼工作室都表示有兴趣,但到目前为止尚未提供程序员。 Williamson 欢迎有兴趣编写图像运算符、内存管理代码和从事多线程工作的程序员加入 GEGL 项目。“填充库和编写图像运算符需要时间”,Williamson 指出。“GEGL 是 GIMP 未来发展的重要组成部分。” 对于那些认为 GEGL 时间线太遥远的程序员,Williamson 建议在未来一年左右帮助增强 Film GIMP。
Film GIMP 维护者 Dahllöf 说:“我们希望通过为艺术家添加更多处理帧序列的工具来增强 Film GIMP。 我们希望使他们更容易从一帧绘制和克隆到另一帧。” R&H 使用名为 Flicks 的专有翻页书播放器。 Film GIMP 缺少的一项功能是翻页书回放模式,以便用户可以检测闪烁。“艺术家确实使用滤镜,但 Film GIMP 主分支中的某些滤镜在电影中没有用。 艺术家希望对滤镜有更多控制权。”
关于开源软件,R&H 首席软件工程师 Green 说
关于将我们更多的专有软件作为开源软件发布,除了 Film GIMP 之外,这是一个很大的争论。 我们的大部分软件在建筑物外很难使用。 它与我们的生产跟踪系统 PTS 绑定在一起。 没有它,任何东西都无法运行。
Green 说,最大的赞成理由是节省高昂的培训成本。 R&H 的新员工在入职的第一个月都在进行培训。 如果大学涌现出一批已经接受 R&H 工具培训的人才,那将有所帮助。
电子邮件:Robin.Rowe@MovieEditor.com
Robin Rowe (robin.rowe@movieeditor.com) 是 MovieEditor.com 的合伙人,这是一家创建互联网和广播视频应用的技术公司。 他曾为 Dr. Dobb's Journal、 C++ Report、 C/C++ Users Journal 和 Data Based Advisor 撰稿。