TZJTan Zi Jian
← 博客

从 Houdini 到生成式 AI:我如何在 24 小时内渲染出电影级的 USS Missouri 海面镜头

我们都遇到过这种情况。一个电影或电视项目的需求下来了,要一个规模宏大、细节丰富的海面镜头,这次的主角是传奇的 USS Missouri(BB-63)号战列舰破浪前行。

通常,这就是你的工作站该融化的信号。你面对的是海面的重型 FLIP 流体模拟、次级的 whitewater/浪花模拟,以及烟囱里冒出柴油黑烟的 Pyro 模拟。这个过程,设置、缓存和渲染轻易就会吃掉好几天。

在这个项目里,我决定测试一个不同的假设:生成式 AI 能不能在保持对镜头和动画的绝对控制的同时,取代繁重的 Houdini 模拟,用于快速、可投入制作的初稿(rush)?

简短的回答是:可以。但秘诀不只是写一条聪明的提示词,而在于如何准备你的 3D 资产,让它成为终极的控制骨架。下面讲讲我如何在短短一天之内,从一个原始 3D 模型,走到完成调色的成片。

1. 策略:把 3D 当作终极引导

在电影和电视里,镜头调度和物体动画没有商量的余地。“垃圾进,垃圾出”是 AI 的黄金法则。如果你给 AI 视频生成器喂一段松散的、低分辨率的视口 flipbook,AI 就得猜太多东西,结果就是画面扭曲、沸腾。

我需要一段坚如磐石的参考视频。我决定把这个镜头构图成一张高空航拍的“摆拍”,也就是海军用来展示舰队的那种照片(这种构图,我在自己的海军生涯里其实非常熟悉)。

海军舰艇摆拍照片的例子(来源:Military Tech YouTube 频道)

为了给 AI 提供尽可能好的引导,我选择在 Houdini 里做一次半完整的 Karma 渲染(有灯光和纹理,但绝对没有任何模拟元素)。

Houdini 的准备工作与“反射网格”技巧

我载入 USS Missouri 的模型,把它的 OBJ 纹理适配到 Houdini 的 Karma 渲染器,并做了一条大幅度的航拍镜头路径。我还加了一些细微、逼真的运动:让 A 炮塔和 B 炮塔随着战舰向前航行,轻微地转动。

但是,把一艘船渲染在漆黑的空间里,对 AI 并不管用。我需要建立光线和反射:

  • 反射问题:我把场景的灯光布置成傍晚时分,带着温暖的黄金时刻阳光。但是没有水,战舰的金属船体看起来很平。我在船的正下方放了一块地面网格,并赋予一种模拟海水反射特性的材质。立刻,温暖的阳光就漂亮地从船体上反弹出来。
添加网格前后的对比
  • 运动问题:面对一块没有任何特征的反射网格,当镜头跟随时,移动中的战舰看起来完全是静止的。为了让镜头(以及 AI)感受到速度,我需要一个视觉参照。
  • 解决办法:我复制了这块网格,把它变成白色线框网格,叠加在上面。为了避免这些白色网格线破坏我漂亮的船体反射,我调整了几何体的渲染设置,让线框网格只对主光线可见。

结果呢?完美的船体反射,一张用来感知相对运动的清晰网格,以及一段干净、可直接放进 AI 流程的 1080p 渲染序列。

来自 Houdini 的半完整渲染,稍后用作参考视频

2. 搭好舞台:首帧(FF)

因为首帧决定了整段视频的视觉质量,我需要把占位的网格,替换成真实、高保真的海浪、浪花和烟雾。

我以渲染出来的首帧作为图像提示,写了一条非常具体的控制提示词,来规定场景的物理表现(保持英文原文):

“Change grid floor to ocean. Give the bow wave and wake solid, clearly visible whitewater — a defined white bow wave breaking at the hull with decent foam volume, and a wake trailing behind the ship with an appropriate amount of bright, clearly visible whitewater, picking up warm tones from the light where it catches the foam. Keep this consistent with a heavy displacement-hull warship at moderate cruising speed, not a high-speed planing wake. Foam edges should be organic and irregular, breaking up naturally further behind the ship.

Add two separate columns of dark grey-black smoke, one rising independently from each of the two black funnels, both blown by the same wind, streaming backward at the same consistent angle, never merging into one plume, with clear open space between them — the smoke’s edges may pick up a subtle warm rim from the low sun. Follow the exact light direction and warmth already present in the source image.”

Nano Banana Pro 的第一次输出

迭代与调整

第一次输出生成的尾流太重了,看起来像是这艘战列舰在参加飙车比赛。我很快重新输入提示词,把它调弱:

“Make the smoke columns trail longer towards the back of the ship. 20% less white water.”

Nano Banana 改进后的输出

这一版正好落在最佳平衡点上。

3. 在 Kling Omni 中让它活起来

主资产准备好了,有了完美的首帧(FF)和我的 1080p Houdini 参考视频,我把它们载入 Kling Omni。

我用参考视频提供空间/运动信息,用图像作为精确的起始帧来运行生成,提示词是(保持英文原文):

“Use @Image as exact first frame. Use @Video as reference video and spatial information. The bow wave and wake should have solid, clearly visible whitewater.”

输出

Kling 的输出

结果令人惊艳。水面尾流看起来非常真实,随着镜头移动,光线始终保持完美一致,两柱烟囱烟雾也在风中自然地飘散。

在后期中修正细节

正如当前生成式 AI 所预期的那样,像“63”船体编号和炮塔上印着的美国国旗这类细微的细节,在时间上存在一些轻微的一致性问题。不过,因为 Kling 非常精确地遵循了我的 3D 参考视频,修正起来很轻松。

对输出中不准确的部分做合成前后的对比

我把 Houdini 里原始的高分辨率干净渲染拿出来,直接在后期中,把稳定的贴花、旗帜和船体编号,合成回 AI 视频上面。再做一次快速调色,镜头就完成了。

调色与合成后的最终结果

附加测试:如果把首帧的参数推到极端会怎样?

为了真正测试首帧(FF)对视频引擎有多大的影响,我做了一个快速实验。我拿出之前那个版本的首帧,也就是船首浪重得多、极具攻击性的那一版,用完全相同的提示词和 3D 参考视频,把它交给 Kling Omni。

结果是一个教科书般的示范,说明 AI 是如何解读初始输入数据的:

  • 1:1 的运动与物理转译:AI 立刻锁定了第一帧中更重的尾流,并在整个镜头运动中,保持了那种高能量、剧烈的水体位移。
  • 镜头对齐零损耗:尽管水量和浪花密度发生了巨大变化,模型对 3D 参考视频空间运动的跟随,依然和那个更平静的版本一样完美无瑕。

生成的镜头

这是高能量版本的输出:

使用尾流更大、更强的首帧图像生成的输出(附加素材)

结论:“首帧”控制器范式

这个项目彻底改变了我看待 3D 与生成式 AI 融合的方式。如果你需要在紧迫的截止日期前,交付高质量的复杂镜头,下面是我从这次实验中得到的最大收获:

  • 可用于快速初稿的电影级替代方案:对于通常需要在 Houdini 里做繁重、耗时模拟的元素,生成式 AI 能节省大量时间。从一个原始 3D 模型,到 24 小时内完成可直接交付客户的成片,对紧张的制作日程来说是一次巨大的胜利。
  • 首帧就是你的“Houdini 参数滑块”:最关键的领悟是,当你把首帧(FF)与参考视频配对时,FF 就充当了“模拟”的物理控制器。如果你的首帧里尾流很高、浪花很重,AI 会在整个镜头里保持这种高强度的运动。如果你想要一片更平静的海,就在首帧里把它调低。你对那张初始图像的控制,就是一切。
  • 视频提示词保持简单:到了给 Kling 写提示词的时候,少即是多。你不需要写一大段文字去描述场景的物理。因为你用了高质量的参考视频和细节丰富的首帧,空间信息、运动和视觉细节,已经完全烘焙在你的输入里了。AI 只需要一个简单的提示,就能完成它的工作。
  • 半完整渲染的力量:这是我第一次测试把半完整渲染(带有灯光、纹理和反射网格,只是没有真正的模拟)作为 AI 的输入,而不是一段平淡的视口 flipbook。这个实验证明,给 AI 喂入恰当的灯光和表面反射数据,是解锁真正的生产级输出的关键。

让 Houdini 负责刚性的构图、透视和灯光,让生成式 AI 负责混乱、计算成本高昂的流体动力学,你就能同时得到两种方式的最佳效果。