Skip to content
指南大纲

打光

名人名言

字越少,事越大。

打光不论是在摄影,电影,还是 3D 美术里都有着很重要的作用,除去最主要的表明画面元素的位置距离关系外,还能营造氛围,添加细节,点明主题等等,不论是魔幻还是现实,都应该注意打光。

SFM 的打光和渲染并不算优秀,除此之外模型的质量也会严重影响打光的难易度,所以日常练习的时候请多找制作精良的模型,或者被高清重制过的模型,这对你理解打光思路很有帮助。

本次打光示例是背景中的图片,我会分为环境和人物两部分来解释打光思路,任何细微的差别都会影响到图片的打光思路,所以切忌生搬硬套。

本段教程进展会 十———分———缓———慢———,实例会在最后放出。

为什么不能只靠地图光?

  • 简单的例子,我们把两位放到2fort地图中央,在不动其他参数的情况下,有什么不对劲?

    • 地上没影子,明处暗处人物亮度没什么变化。
  • 这个软件叫source filmmaker,我们需要丰富的细节和生动的场景来制作我们的电影,而不是在场景里放布娃娃过家家。

  • 另外地图的打光已经确定在正午,这极大限制了我们对场景氛围基调的控制,不论你想天马行空还是拟真写实你都施展不开手脚。

TIP

所以在练习打光时,请至少选择 No light 版本的地图(懒到不想找模型的话也请调低 Camera 的 Map tone scale)

你还需要知道…

尽管SFM的灯光并不出色,可正是他们的存在让制作者们仍有机会为短片/图片添加生动的效果。

我会根据 Anomidae 的 社区教程 逐一翻译演示各个功能。

对照图


1-Intensity

  • 顾名思义,控制灯光强度,更高的数值意味着更强更亮更硬的光。

  • 尽量尝试单个灯的亮度不要过高(尤其是人物打光),因为在模型身上会产生硬光造成强烈的反差感,甚至影响到模型细节。(过曝)

  • 另外对于作图,太硬的光也会给灯与灯之间的衔接增加难度。


2-Ambient Intensity 不可用

  • 可以直译为环境亮度。

  • 然而在SFM里似乎并没有效果。

  • 在 SFM-Reborn(SFM2 OR SF2M)中,通过滑动滑条可以影响一盏灯可以打亮的区域。

3-Horizontal FOV & Vertical FOV

  • 虽然有分 Horizontal 和 Vertical,但是如果你打开 Shadow-Frustum 就会发现不论你调哪一项,灯光都是以正方形等比放大的(Uberlight另说),且只有数值较高的一项会让灯光范围起到变化。

  • 结论就是你只需要抽取其中一项改变就好。

4-Radius

  • 很特殊的一个滑块,只有预渲染后才会发现变化。

  • 一般我打光时不会用到。(懒+不太明白)

  • 稍后在打光部分也会提到他的具体作用,在作图时值得一试。

5-Shadow Filtersize

  • 控制阴影的软硬(模糊度),默认数值是 0.125 。

  • 相比 Radius 这个我更常用,效果看起来也很相似。

  • 也是一种消除阴影颗粒感的方法。

TIP

多嘴一下,虽然每个参数的值域(最大最小默认)都不相同,但双击滑条你会发现数值只能0到1。

图片里的参数变化我会按双击后的数值写上去,如果值域发生变化我会附加说明。

6-Shadow Awatten

  • 按照 Anomidae 的原话,该数值更多的变化在 SFM-Reborn(SFM2 OR SF2M)里。

  • 在 SFM 中,如果你需要一个完全不受光照影响的影子时请把数值拉低。

7-Mindistance & Maxdistance

  • 字面意义无法解释这两项的作用,为了方便理解我们把灯光想象成一个四棱台。

  • Min 控制棱台的上低面大小(接近光源一侧),相对的,Max 控制棱台的下底面大小。而棱锥的高度则与 Max 数值成正比,与 Min 数值成正反比。

  • 听起来很复杂,但操作起来其实很简单,两数值用来确定灯光最远能打到哪里。(入点出点)

  • 通过开启体积光,我们也可以发现通过改变参数,椎体内的体积光也发生了变化。即椎体体积越小,光的密度越大(更硬)。同时 Min 也会影响到影子是否产生。

7.5-Max & Min 注意事项

  • 为了让你的灯光真实有效,请记住灯光棱台的下底面(无坐标一侧)始终比上地面(光源/有坐标一侧)更贴近被照射物体。

8-Constant Attenuation

  • 字面翻译恒定衰减。

  • 在距离和其他参数不变的情况下,可以看到左边灯光比右边更亮更强(衰减更小)

  • 一般情况下请保持默认(0),否则会亮爆(事实上只要滑动就会使图中效果)

  • 开启时往往需要配合调整其他数值来模拟室外环境光效果(例如阳光)

9-Linear Attenuation & Quadratic Attenuation

  • Linear Attenuation,与 CA 相似,但这里滑块起到了真正的作用。

  • 你可以在不爆改其他数值的情况下获得更亮的光源照明更大的区域。

  • 另外,通过 Remap 默认参数的最小值到负值,也可以为你的灯光创造更多的衰减。

  • Quadratic Attenuation就直接忽略吧(事实上也有作用,增强衰减更明显,但用到的情况不会太多,配合LA就好)

TIP

还是多嘴一下,滑条数值基本没什么参考价值只是易于复制,主要还是值域变化起作用。

10-Shadow depth bias & Shadow slope scale depth bias

  • 看起来和实际上都没什么用的功能。

  • 用来控制灯光产生的阴影所忽略的细节。(深度偏移)

  • 右图示例默认开启最大,可以看到阴影并没有延伸到脚下,看起来十分奇怪。

  • 绝大多数情况下不会用到该功能,除非你想减少小物件上的阴影,但我们已经有 Shadow Filter 了。

11-Far Zatten

  • 注意不要与 Maxdistance 混淆。

  • 如果把 Mindistance & Maxdistance 参数比作一个调整棱台容器的参数,那 Far Zatten 则代表我们具体往这个容器里加多少水。

  • Far Zatten 调整时请配合改变 Mindistance & Maxdistance 的数值,否则会产生一些错误。(无光或无阴影)

12-Uber Light

  • 在 Element Viewer 开启 Uber Light 后,你的 Shadow Frustrum 也会发生变化。(点击这里回看开启方式

  • Uber Light 编辑器包括:

    • nearEdge(两个内部红色圆圈之间的距离)
    • farEdge(两个外部蓝色圆圈之间的距离)
    • cutOn(红色圆圈的大小)
    • cutOff(蓝色圆圈的大小)
    • width(锥台的宽度
    • edgeWidth(外部平截头体的宽度)
    • height(锥台的高度)
    • edgeHeight(外部锥台体的高度)
    • roundness(在 Element Viewer 中 ,确定锥台的圆度)

TIP

Uber Light 配合 Gobo Textures 可以创造多种多样的遮光效果。

13-Volumetric Intensity & Noise Strength

  • 两项数值只能做开启体积光的时候才有变化。

  • VI 负责调整体积光的浓稠度。(厚度)

  • NS 可以控制体积光是否嘈杂不一。

14-RGB

  • 忽略 Color Alpha。

  • 根据情况调整 R,G,B 三色数值来找到需要的颜色即可。

打亮你的角色反面案例

  • 现在你已经看完了绝大部分的灯光功能,你可以开始打光了!

  • 为黑暗的场景带去光明吧,普罗米修斯。

Details

是不是和你想的不一样?


  • 抱歉,我忘了神奇的三点打光法。
  • 左一个 右一个 背后一个。
  • 化腐朽为神奇!

Details

是不是感觉还是差得很多?


苏醒了,打光时刻

跟上上图一样

  • 想运用好打光,首先需要理解为什么要这么打。

  • 如果单纯的给人物正面打光,会使人物看起来很僵硬(Flat),没有层次感。

  • 回想之前所提的,我们要给人物打 “生动” 的光,地图场景的光是静态的,而人物的 “动态光” 可以让人物真正的 Pop out the image。

  • 回到图片,为什么正面光很无聊?因为它单纯的看起来像是和摄像头绑在一起的闪光灯,只是用来分辨哪里是人物,哪里是背景,连基本的阴影也没有呈现。

  • 把每一盏灯想象成一个摄像机,如果都是一个角度出发,则画面会显得非常平,但如果我们扭到另一面,则等于多展现了模型的一面,也就是 3D。

TIP

感谢这个高质量模型和SSAO,就算打光稀烂她依然看起来比TF2的模型看起来有意思。


  • 现在我们把其中一个光源移到一侧,并减低亮度。(防止过曝细节丢失)

  • 现在看起来她比原来真实一点了。

  • 但另一侧却伸手不见五指,这便是软件不同于真实灯光的原因,必须在细节和打亮范围之间取舍。

  • 我们这里称他为 Clipping(起名鬼才 Anomidae)

Clipping 小问题

  • 我们创建一种极端情况(左图),可以看到模型左边黑得一笔,右边白得一笔,完全没有细节可言,甚至模型本身的颜色都没有展示。欠曝和过曝)

  • 这只是极端情况,但不代表一般情况下高亮度的光不会影响我们的细节处理。

  • 值得一提的是,如果我们只留下单一颜色(右图),我们会发现它并不会变成白色过曝,而这也是和真实世界中不一样的一点。

    • 现实生活中颜色在变亮的同时饱和度也随之降低(即变为白色)
    • 所以在选取SFM灯光的颜色时,也请确保至少让RGB三值大于0

  • 现在你应该明白左侧的“三点”打光为何没有起到效果了。

  • 尽管我们没有了 Black Clipping ,但所有地方都非常白 白 白!

  • 如果我们单纯的降低亮度,则又会让暗部欠曝。

  • 让我们重新来一次。

开始打光

  • 现在我们可以开始给人物打光

  • 三点/四点打法人人都听过,对于单主体式图片有很好的效果

  • 就算是多人图,三点式也可以作为基础原则去遵守

  • 但它并不是唯一的打光方式,想让你的画面即美观又符合逻辑,我们需要先理解为主体打光的意义(再一次)

欺骗性照明(Deceptive Lighting)

  • 这是 Anomidae 起的名字…我实际上没找到这样的术语,不过理解起来很简单。

  • 之前我在地图光部分有提,SFM的地图光并不能满足我们对创作的需求,那么现实中呢?

  • 如图,图一看上去并没有什么违和的灯光,而在图二我们发现摄影师实际上 “作弊” 了不少。

  • 这就是打光的艺术,在保留照片真实性的同时,突出主体并营造氛围。

  • 类似的例子还有很多,外景婚纱照为了高质量补光灯的使用也是常事。


  • 同样的道理在SFM中更容易解释。

  • 这张是我前段时间的 Poster,前前后后一共有8盏灯为主体(Femscout & machine heavy)服务。

  • 它们让主体看上去是被拳击擂台后面的聚光灯打亮的,但其实没有一盏灯是真实存在的,或者说主体都不是被布景的环境灯点亮的。

  • 所以说这些灯都是假的,但只有知道他们有多虚假,你才能明白如何让作品看起来更真实。


  • 现在回归主题,为这位女士打光

  • 首先是主光,打在人物一侧(案例中为右侧)负责主要照明。(面积较大)

  • 另一盏作为补光灯与主光互补(180度)点亮暗部。

TIP

回忆我在讲insanity时说的,亮度越高,灯越硬越亮容易丢失细节,因此尝试用亮度更低的灯去为人物照明。


  • 现在继续,为角色增加轮廓光

  • 将 Shadow filter size 和 Shadow awatten 拉到最低已确保轮廓光只负责点亮轮廓。

  • 如果你想使用四点式打法(如图),请注意较暗一侧的轮廓光也要相对亮度更低。


  • 如果关掉主要光源,那么这应该是一个(或两个)轮廓光该有的样子。

  • 那么这么打的依据是什么?


  • 很多人都知道要用,但没什么人知道为什么要用。
    • 对比两图,可以发现右图的人物细节更多,人物的身型因为轮廓光的原因更加明显,比起左图更显得独立于背景。

TIP

回想一下我所说的灯是另一台相机。 灯光可以展现模型的另一个角度,就像相机一样 给了观众更多信息。

因此,如果您在此处假设在人物上买房,那么海景房会很贵,而城中村更便宜,因为它们的数量更多。 ::: right ——来自Anomidae的其妙总结 ::: theorem 插嘴 画龙点睛 ::: right 来自 漏斗的BB

:::

开始打光 进阶

终于,这篇指南进展到了这一环节

  • 这里我会以左图为例子讲一下当你在环境复杂的情况下,打光应该如何处理。

  • 如果你还没有浏览之前的指南,我强烈建议至少阅读灯光的用途,参数功能以及简单示例,会对你有更大的帮助。

TIP

大多数数值我会展示,但请注意他们并没有很多参考价值,重点还是理解怎么用。

在开始之前 调整SSAO

  • 调整你的 SSAO 参数。(虽然怎么调都会很烂)
    • 就算不调,也不要让你的图片看起来根左边的塑料玩具一样。
    • 如果你不太了解 SSAO ,可以参照图二的参数。

  • 另外,SSAO 也可以改变颜色。(在 Camera 的 Element Viewer 中)
  • 因为之后打光会主要以红黄为主,在这里我把阴影改成了暗红色。(区别不大,但足够了)

背景光

  • 为布景打光,烘托氛围,点亮细节并为主体提供必要的引导。

  • SFM 打光数量有限制,一次性只允许出现八盏开启阴影的灯光所以我们需要做出一些取舍。

  • 因为是背景,除了必要的环境光之外都可以右键选择 “Disable Shadow”,为之后主要人物的灯光让道。

  • 我个人喜欢背景和主体打光完全分开毫不影响,这样在打人物时更自由。


特别注意

  • 这是没有任何添加任何灯光的状态。

  • 如你所见,因为加入粒子特效的关系画面中有了一些看起来很亮的的区域。

    • 但实际上并没有起到任何作用。
  • 整张图的背景点光主要就是对各种细节的弥补,完善整体。

  • 但因为是背景,原则还是不要喧宾夺主,这些元素不该是观众第一眼就发觉到的。


外景(开启阴影)

  • 模拟室外环境。(可以理解为月色)

  • 参数来自 CGIJoe 的 Poster 教程,专门用来打大范围的室外环境。


室内灯效(关闭阴影)

  • 这盏负责模拟室内拉起警报后的效果

  • 通过调整 Min Distancse 改变灯光实际产生出光影效果的范围使人物避免受红光影响。

TIP

如果不改变 Min Distancse,则人物和情报箱上会产生红光,会影响之后主人物打光影子的效果,个人习惯避开人物。


爆炸效果(关闭阴影)

  • 为了效果更明显关了之前两盏灯。

  • 这里一共用到了四个灯,但是参数都很粗糙,主要作用都是起到打亮被爆炸物影响到的对象。

  • 当然可以减少用量,但是那样需要修改太多,而我太懒了(

  • 另外有一个体积光,主要是增加爆炸后光在灰尘中的效果。

  • 在运用体积光时可以把它想象成一个模型而不是灯光,不要考虑用它点亮什么,而是用它的体积效果营造什么样的效果。


杂物(关闭阴影)

  • 这里额外用了四盏灯来打亮前景后景的一些物品/效果

  • 除了死亡之铃不是必要之外,其他的的光都是为了让它们融入环境

  • 值得一提的是灯光的颜色,尽管它们看起来都很黄,但是并不意味着你需要把 Blue 拉到0(参考 Clipping Problem 部分)

  • 以残肢为例,该面打光是为例体现其被炮火击飞,所以用类似橘黄的颜色,尽管如此 Blue 也有所保留,最直观的效果就是让光看起来不是纯色,更贴近现实.

主体光

  • 在打完环境光后我们可以考虑人物部分了。

  • 在开始之前,我们要考虑清楚人物身上的光来自哪里。

  • 这里圈出了两个主要光,前方的爆炸(黄)还有后方的警报灯,火焰。(红)

  • 多嘴一下虽然我圈了墙面,但不代表光源在那里,墙上怎么红的懂得都懂(

  • 另外和打人物光一样,主人物打光也不要影响到背景。

  • 了解了这些就可以开始了。


轮廓光

  • 强调人物,勾勒边框

  • 部署在人物背面(侧面偏后),注意将 Shadow Filtersize 和 Shadow Awatten 拉到最低。

  • 这里为了效果主轮廓光分了上下两个。


主光

  • 打亮人物主要部分。

  • 这里为了打光均匀主光也分了上下两个。

  • 值得注意两点:

    • 可以通过减低 亮度 和 FOV 并拉远来避免光源与光源间的分割感。 – 背景里不管光如何强烈,不要用相同的 RGB 参数给人物。(影响美观,除非你需要强烈的色彩来突出某种情感)
  • 如果发现光照到背景的物体上,可以选择开 Uber Light 调节 Cut Off 或者单独调整 Maxdistance 参数


填充光

  • 主要在脸上加了两盏灯。

    • 因为是点亮阴影,所以切忌高亮度。
    • 一个负责点亮,一个负责改变颜色以符合爆炸中的效果。
  • 为了不影响领带阴影并没有在身上额外加光。

  • 另外情报箱上有个非常不明显的无阴影光打亮,效果并不好所以忽略。

打光总结

很多人都想知道如何在环境复杂的地方打光,因为自己打不好。

为什么打不好,很多情况都是人物身上的光跑到场景里了,本来是单人小黑屋, 地上却是白的,当然会影响到整体效果。

我这里分析了这张图的打光思路,其实还有很多可以改进的地方,但目前对打光 完全没想法的可以参考一下,主要记住以下几点:

  • 背景里可以大红大紫,但是人物一定要白里透红(保证正常肤色)

  • 活用 MAX&MIN Distance 和 Far Zatten(或者 Uberlight + Cut ON/Off)改变距离达到在需要的范围内打需要的光。

  • 避免人物身上的光衔接不自然(东一块西一块),记住 FOV 小,距离稍远亮度低,懂得保留必要的阴影在人物身上。

  • 背景打光是为了对整体有更好地理解,因此可以提前考虑人物光的布局。

Released under the MIT License, Powered by Cloudflare.