2019 年秋天,我们接下了一个高端腕表的 15 秒产品广告。客户要求:镜头从表盘微距特写缓缓拉远,背景是城市夜景的散景光斑,要那种肉眼可见的、奶油般化开的焦外质感。团队里有两个新人,一个刚学会打灯,一个刚会用摄像机。我预感到,这单活儿的成败,一半取决于那个叫“景深”的东西。

Maya 摄像机景深 DOF 控制:一个真实广告项目的踩坑复盘 - 配图1
Maya 摄像机景深 DOF 控制:一个真实广告项目的踩坑复盘

需求分析:客户要的不是“模糊”,是“焦外美学”

客户的原话是:“我们要那种高级感,背景的灯要变成光斑,但表盘要锐利得像刀切。” 说白了,就是经典的浅景深微距镜头。但广告跟拍电影不一样,电影允许你现场实拍,而我们是全 CG。问题就来了:在 Maya 里,怎么让“景深”变得可控、可预测、甚至可动画?

我当时的第一反应是:交给后期。用渲染出的深度通道(ZDepth)在 Nuke 里做景深,这是很多团队的常规做法。但很快我们就碰壁了——腕表的金属表圈有大量高光反射,后期景深处理不当会产生“光晕泄漏”,边缘像被水泡过。而且客户要的是 分辨率,后期景深的模糊算法在 下慢得让人抓狂。

于是我们决定:直接在 Maya 的摄像机里做真正的 DOF(Depth of Field,景深)。这需要理解一个核心概念:弥散圆(Circle of Confusion)。简单说,焦平面上的点成像是一个点,偏离焦平面的点,在传感器上会形成一个圆斑,圆斑大小决定了模糊程度。Maya 的景深就是基于物理摄像机的这个原理模拟的。

技术选型:Maya 摄像机的 DOF 工作机制

Maya 里控制景深,核心就在摄像机的属性里。你需要把 Depth of Field 勾上,然后碰三个参数:

  • Focus Distance(焦点距离):从摄像机到焦平面的距离,这个平面上的物体是清晰的。
  • F-Stop(光圈值):数值越小,光圈越大,景深越浅,背景越糊。但注意,Maya 的 F-Stop 是一个“相对”值,它跟真实相机的光圈不完全一样,但趋势一致。
  • Focus Region Scale(焦点区域缩放):这个是一个缩放因子,用来微调弥散圆的大小。默认 1,但在我用物理相机校准后,经常要调到 0.5 到 2 之间。

还有两个隐藏属性,Focal Length(焦距)和 Camera Aperture(光圈孔径)其实也在影响景深,但一般我们用焦距来构图,用 F-Stop 来控制景深。

然而,Maya 自带的 DOF 在交互视口里是看不到效果的,你只能通过渲染才能验证。这就导致了一个经典的踩坑循环:调参数 → 渲染一张 → 发现焦点不对 → 再调 → 再渲染。一个 帧,用 Arnold 渲染,带 DOF 的话,一张可能要 5 到 10 分钟。团队两个新人一天就耗在里面了。

Maya 摄像机景深 DOF 控制:一个真实广告项目的踩坑复盘 - 配图2
Maya 摄像机景深 DOF 控制:一个真实广告项目的踩坑复盘

第一坑:焦平面到底在哪?——用 Locator 做视觉反馈

我们犯的第一个错误,是让新人凭感觉去猜 Focus Distance。他们看着表盘在画面中心,就随手给了一个 50 的值。结果渲染出来,表盘是糊的,背景的灯倒是清晰得像星星。原因很简单:Maya 的 Focus Distance 是沿着摄像机 Z 轴的直线距离,而不是到物体的直线距离。如果你的摄像机有一个俯角,那么到画面中心物体的距离,其实是比到摄像机正前方的距离要长的。

解决方案很土但很有效:在摄像机位置创建一个 Locator,然后在目标物体上也创建一个 Locator,再用 Create > Measure Tools > Distance Tool 去量两个 Locator 的距离。把这个距离值直接填到 Focus Distance 里。这能保证你第一次渲染就有 90% 的把握是准的。

但更专业的做法,是写一个表达式或者用约束。我后来做了一个小工具,在一个 Locator 上写了表达式,让它永远锁定在摄像机和目标物体连线的焦点上,这样我只要移动摄像机或者目标,Focus Distance 会自动更新。代码很简单:

// 假设 camLoc 是摄像机位置的 locator,targetLoc 是目标位置的 locator
// 在 Maya 的 Expression Editor 里,对 camera 的 focusDistance 属性写:
camera1.focusDistance = `distanceDimension - 或者用向量计算`;
// 更简单的方式,直接用 aimConstraint 的 worldUp 来做,但这里用表达式更直观。
// 实际上我会在脚本编辑器里用 Python 算距离并赋值。
import maya.cmds as cmds
pos1 = cmds.xform('camLoc', q=True, ws=True, t=True)
pos2 = cmds.xform('targetLoc', q=True, ws=True, t=True)
dist = ((pos1[0]-pos2[0])**2 + (pos1[1]-pos2[1])**2 + (pos1[2]-pos2[2])**2)**0.5
cmds.setAttr('camera1.focusDistance', dist)

这只是一个雏形,但已经能救命的。

第二坑:F-Stop 不是你想的那样——用景深表预判

我们第二个坑,是新人把 F-Stop 调到了 1.2,觉得这样背景一定糊成一片。结果渲染出来,背景确实糊了,但表盘边缘也有点发虚,而且焦外的光斑形状特别生硬,像一个个小圆圈,没有那种“奶油”感。我一看就明白了:F-Stop 太小,景深太浅,焦平面几乎变成了一层纸,表盘稍微有一点弧度,就有一部分跑到焦外了。而且 Arnold 的 DOF 是基于真实的镜头模型,它模拟的是光圈叶片的形状,默认是圆形,你如果想要六边形光斑,得去改 Arnold 摄像机的 Aperture 属性里的 Blade Count。

更重要的是,F-Stop 和弥散圆的大小是有物理公式的。我记得一个经验公式:

景深范围 ≈ 2 * 对焦距离² * F-Stop * 允许的弥散圆直径 / 焦距²

在实际项目中,我们不会去算这个公式,但我们要理解它的含义:F-Stop 越小,景深越浅,但背景虚化程度并不是线性增加的。到了 F/1.2 以下,你会发现焦外的光斑边缘开始发硬,反而不好看。而且,在微距拍摄时,对焦距离很短,景深极浅,哪怕你光圈收到 F/8,背景可能还是糊的。

于是我们做了个测试:用同一个镜头,在同一对焦距离下,分别渲染 F/2、F/4、F/8、F/16 的一系列静帧。然后把它们排成一排,给客户看,让他选一个“既让表盘锐利,又让背景光斑够大”的光圈值。最后客户选了 F/5.6。这个值在真实相机里是一个很中庸的光圈,但在微距下,它依然能产生漂亮的散景。

这里我要强调一个观点:不要迷信大光圈。在 CG 里,我们完全可以用后期添加模糊来增强散景,但前期用物理正确的 DOF 能保证边缘的细节,比如表盘上的指纹、划痕,在景深过渡时是自然的。

第三坑:Arnold 的 DOF 采样与噪点博弈

我们用 Arnold 渲染。Arnold 的 DOF 是真正的光线追踪景深,它会对每个像素发射多条光线,并根据弥散圆大小来采样。这就带来一个问题:噪点。尤其是背景那些高亮的光斑,如果采样数不够,会显得非常脏。

我们的解决思路是分层渲染。把前景(表盘)和背景(城市夜景)分开渲染,前景用较低的 DOF 采样(因为前景在焦内,不需要太多景深采样),背景单独渲染时可以用更高的采样,甚至可以用一个平面代替背景来单独跑 DOF,然后合成。这样能节省不少时间。

但真正让我记住的是另一个坑:当摄像机动画时,DOF 的采样噪点是会闪烁的。因为每一帧的采样分布是随机的,如果采样数不够,焦外的光斑会在帧与帧之间出现“沸腾”效果。解决方法是提高采样数,或者用 Arnold 的 OptiX 降噪,但降噪对 DOF 区域有风险,容易把光斑的边缘抹掉。我最后是用了 5 的 AA 采样,然后专门对背景层开了降噪,前景层保持原始采样,合成后效果完美。

Maya 摄像机景深 DOF 控制:一个真实广告项目的踩坑复盘 - 配图3
Maya 摄像机景深 DOF 控制:一个真实广告项目的踩坑复盘

交付与复盘:给新人的三条军规

最终,我们花了三天时间,用这套流程交付了 6 个镜头。客户很满意,尤其是那个拉远镜头,背景光斑从奶油般的大圆慢慢变小,最后变成一个闪烁的星芒——那是我们用 Arnold 的镜头光晕插件做的,但 DOF 的部分是真实的。

复盘时我总结了三条军规,写进了公司的内部文档:

  • 永远先定焦点,再调光圈。用距离工具或表达式锁定焦点,别靠猜。
  • 用景深表预演光圈效果。渲染 5 张小图,让导演或客户挑,别自己闷头调。
  • 分层渲染,DOF 单独处理。前景和背景分开,用不同的采样和降噪策略,别一锅炖。

这三条,后来成了我们部门所有项目的基础准则。前几天,那个新来的小伙子还跟我说,他靠这三条,在另一个项目里 10 分钟就搞定了客户要求的“景深感觉”,而以前他可能要折腾一上午。

关于火星人教育:掐指一算,火星人教育已经专注数字艺术与 AIGC 实战培训 24 年了。如果你也想把 Maya 摄像机玩得这么溜,甚至想进影视广告这一行,我们北京、深圳双校区都有线下面授班,课程涵盖 AI 漫剧创作、AIGC 视觉设计、UE5 游戏特效、室内全屋定制、MAYA 三维动画、C4D 动态设计、工业设计、NUKE 影视后期、摄影摄像实训。我们不讲虚的,全部是项目化实训,让你在真实项目中打磨技术,像这个腕表广告一样的案例,就是你们的课堂作业。无论你是美术生、在校大学生还是想转行的职场人,都能在这里找到起点。想咨询课程?拨打电话 010-65918670,我们聊聊。

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。