【Nuke抠像】使用Keylight抠像的方法和技巧 | 屏幕处理

VFX大学 💻 Nuke合成影视制作 【Nuke抠像】使用Keylight抠像的方法和技巧 | 屏幕处理

正在查看 12 条回复
  • 作者
    帖子
    • #24796

      韩十七
      参与者

      今天带大家了解下Keylight抠像的屏幕处理,这也是本周抠像专题中关于Keylight的最后一个帖子。本帖主要内容包括:屏幕处理的几种效果遮罩内部遮罩和外部遮罩源alpha颜色替换

      首先,我们了解下屏幕处理的几种效果。

      选取屏幕颜色得到屏幕遮罩后,我们可能需要用到 Screen Matte 参数组处理这个遮罩。使用裁切可以调节遮罩,遮罩也可以被收缩或扩大、除尘或柔化。下面我们一一介绍。

      Two-stage keying(这里我叫它二阶抠像

      有时候我们会遇到这样的情况:使用Keylight取色后,得到的遮罩边缘非常好,但是前景被抠穿了。调整 Clip White 可以修复这个问题,但是这样也会破坏边缘。那么如何才能解决这个问题呢?这时候我们就要考虑到二阶抠像,二阶抠像就是分2步抠像。第一个阶段,我们可以使用 Clip Black 和 Clip White 得到一个比较硬实的粗糙的遮罩,然后进行柔化和收边。将 View 切换到 Intermediate Result,输出带遮罩的 RGBA 原始图像。然后将此输出作为下一个 Keylight 的输入,选择屏幕颜色,得到良好的边缘。可是前景透明?没关系,不要处理这个遮罩,而是使用输入的 alpha 通道修复透明前景——将 Inside Mask 中的 Source Alpha 切换到 Add to Inside Mask

    • #24797

      韩十七
      参与者

      Clip Rollback(剪切回滚)

      抠像时边缘经常会产生大量的半透明alpha(看左图),如果是抠毛发当然很需要啦,但是像右图这样的本来应该不透明的前景也半透明了,就不太好了,这个时候就需要我们进行校正了。

      我们可以连接一个遮罩到第三个输入端(InM),也可以用 Clip White 将这些灰色像素调成白色,但是 Clip White 虽然补好了前景却2破坏了边缘。这个时候就该 Clip Rollback 上场了,它可以修复丢失的边缘细节。

      使用 Clip White 移除不想要的灰色像素后

      使用 Clip Rollback 修复细节后

      上图是使用 Clip Rollback 前后的对比,可以看到右图边缘是渐变的半透明。例子比较夸张,一般不会有这么多的过渡。

    • #24799

      韩十七
      参与者

      Dilate

      此参数通常不应该取色后直接调节,因为会导致抠像变得很糟糕,但是在初步处理遮罩之后,可以用它来扩展或收缩边缘。此参数是亚像素精度,可以进行1/2像素等精度调节。

      屏幕遮罩

      处理后的遮罩

      Softness

      使用 Screen Softeness 可以对遮罩进行柔化处理。最常见的例子就是抠了一个非常粗糙的遮罩,要进一步在后续节点中使用内部遮罩进行处理。这个时候,我们需要先对遮罩进行柔化和收边处理。

      Despot(去斑点)

      此参数控制遮罩的简化,对噪点多的 alpha 比较有用。比如下图中的左图,白色像素中有很多黑色的斑点,使用 Despot 这些黑色斑点就会被周围的白色吞掉,变成右边单纯的白色。


       

    • #24801

      韩十七
      参与者

      二、遮罩。

      Keylight 中有4种遮罩。

      1. Screen Matte(屏幕遮罩)

      2. Inside Mask(内部遮罩)

      3. Outside Mask(外部遮罩)

      4. Alpha(合成 Alpha)

      Screen Matte 经取色后由Keylight算法生成,可以使用屏幕遮罩处理工具进行处理(裁切、收边等)。

      Inside Mask 是对遮罩补洞的,保护绝对是前景像素但容易被抠穿的区域。比如在蓝幕前拍摄的主人公有一双蓝眼睛,这个遮罩就可以用来保护眼睛。此遮罩从Keylight的 ImM 输入端获取。使用 Inside MaskSource Alpha 参数可以将前景中嵌入的 alpha 通道添加到此遮罩中。

      Outside Mask 是垃圾遮罩,用来移除前景中不想要的物体(如灯架等等)。此遮罩从 OutM 输入端获得。使用 OutM Component 参数可以设置此输入的亮度或alpha。

      最终用于合成前景和背景的遮罩是合成中 alpha 通道,此遮罩是屏幕遮罩、内部遮罩和外部遮罩的组合遮罩。

    • #24802

      韩十七
      参与者

      三、内部遮罩(inside mask)和外部遮罩(outside mask)。

      如果使用裁切不能充分改善屏幕遮罩,我们可以在明确定义为前景或背景的区域创建一个遮罩,以此作为遮罩输入。内部遮罩用来减少前景透明度保护前景不被抠穿,外部遮罩用来清除不需要的物体。

      外部遮罩(垃圾遮罩)强制alpha全透明的方式,通常用来清除屏幕上不想要的物体(如灯架)。

      内部遮罩用来保护不想丢失的前景元素(如演员的蓝眼睛),这些遮罩通常边缘通常应该柔化以融合入屏幕遮罩。

      下图显示了 Bezier 曲线圈除了屏幕左边的灯架。

      将此遮罩连到 Keylight 的 OutM 输入,将 OutM Component 切换为 Alpha。则外部遮罩强制变为了背景的一部分,抠除了灯架。

    • #24803

      韩十七
      参与者

      四、源alpha。

      此参数决定如何处理原始源图像中嵌入的alpha。在多通道抠像中 View 输出设置为 Intermediate Result 时我们会用到。

      • Ignore – 此选项不会添加任何嵌入的alpha到屏幕遮罩上。
      • Add To Inside Mask – 嵌入的alpha添加到内部遮罩中。在多通道抠像中,Output View 设置为 Intermediate Result 时,我们应该选择此项。
      • Normal – 嵌入的alpha用于合成图像。
    • #24804

      韩十七
      参与者

      五、颜色替换。

      我们之前讲过,Keylight做两件事情——一是移除屏幕颜色去除图像溢色,二是生成alpha(Screen Matte)用于合成前景和背景。

      如果我们之后对屏幕遮罩进行了处理(如收缩alpha或裁切等级),Keylight将从那些透明度发生改变的像素上移除错误的屏幕色。Screen Replace 就是专门解决这个问题的。Status 显示了替代像素的方法。因为处理alpha而被修改透明度的像素是绿色的,而因为内部遮罩被修改透明度的像素是蓝色的。

      • None – 对改变 alpha 去除溢色后的图像不作任何处理。这也是默认操作。
      • Source – 如果alpha改变,图像会重新引入/移除相应量的原始像素。
      • Hard Color – 对任何在 alpha 中增加的像素,都加上相应量的 replace color
      • Soft Color – 和 Hard Color 一样,对在 alpha 中增加的像素,都加上相应量的 replace color。不同的是,此选项会调节生成像素的亮度,以匹配原始像素。因此得到的结果比 edge Hard Color 更平滑。
    • #24805

      韩十七
      参与者

      Inside mask

      如果屏幕遮罩发生改变是因为内部遮罩,那么 Inside ReplaceInside Replace Color 参数可以用来修正这些区域的颜色,就像上面描述的 Screen Replace 参数一样。

      Edges

      内置的裁切工具包括快速移除图像边缘的前景部分。这也可以用来整理因为蓝幕亮部改变而难以抠除的边缘遮罩。

      X MethodY Method 设置为 ColorEdge Color,颜色都设置为纯蓝(蓝幕的颜色),设置 Left 以裁切画面的左边。下图显示了使用裁切的 Combined Matte 的变化。

      Left = 0

      Left = 0.35

    • #24809

      韩十七
      参与者

      InM Component

      内部遮罩输入的这个组件(亮度或alpha通道)是用于计算的。注意:内部遮罩是用于计算的!

      蓝幕图像

      内部遮罩

      小提示:为了避免必须在片段内绘制内部遮罩,我们可以连接另一个 Keylight 节点到 InM 输入,然后使用它创建一个硬的、扩大的抠像(设置 Screen Dilate 为一个较低的值)。

      OutM Component

      蓝幕图像

      外部遮罩

    • #24812

      韩十七
      参与者

      好啦,今天的更贴就到这里啦,关于Keylight抠像的技巧今天就结束啦。我们明晚10:00继续分享Nuke抠像小秘密,不见不散哦~

      如果本帖对您有所帮助,请评论或点赞,让我们知道你的存在,给予我们更贴的动力哟!

      如果喜欢我的帖子,点击我的头像,加我为好友,就可以看到我得更新啦,也可给我发私信,点击帖子顶部得收藏放入收藏夹,方便将来再次查看~

      本帖未经允许不得转载,转载请注明出处并保留在本站的完整链接,谢谢^_^

    • #35580

      182****2389
      参与者

      谢谢分享

      • #35581

        韩十七
        参与者

        哈哈 刚才上一篇您说有点看不懂 我都不知道该咋回 (#^.^#) 貌似这下子有所收获啦 这些知识很单调也很枯燥 但是非常重要 最起码很多参数我们懂了也就好弄了 关注我们 会逐步由更多精品的 O(∩_∩)O哈哈~

    • #36103

      参与者

      感谢版主

    • #130136

      ccbd
      参与者

      视图如果选择的intermediate result,最终输出的就是intermediate result的状态吗?还是不管选择什么都是输出final result状态呀。另外想问下,请问博主怎么联系你,有VX吗?

      • #130141

        韩十七
        参与者

        Nuke 的 intermediate result 与 final result的关系

        Intermediate result(中间结果)
        显示该节点当前处理阶段的输出,而不是该节点最终完成所有操作后的结果。
        在一些多步骤操作(比如某些 GPU 节点、ScanlineRender、深度处理)中,节点可能有多级缓存或分阶段处理,这时 intermediate result 就是未完成计算的版本。
        主要用于 调试或性能优化,因为可以更快预览。

        Final result(最终结果)
        节点完成所有计算、应用全部操作之后的输出。
        渲染、合成、导出都会使用 final result,无论你 Viewer 选择 intermediate 还是 final。
        最终输出(Write 节点写文件)永远是 final result,不会被 intermediate result 影响。

        Viewer 的 intermediate/final 只影响你看到的内容,不影响节点链最终的渲染输出。
        Write 节点和 Render 输出一定是 final result,不会输出 intermediate。

        常见使用场景

        GPU/深度节点优化调试 → 看 intermediate result 判断是否有瓶颈。
        逐级调试复杂节点(如VectorBlur) → 检查 motion pass 或 mask 是否正常。
        渲染确认 → 一定切回 final result 以避免误判。

正在查看 12 条回复
  • 在下方一键注册,登录后就可以回复啦。