二、三点布光法:主光、补光、背光的定位与参数设置,硬表面场景的实战应用

三点布光,说白了就是给场景打三盏灯。听起来简单吧?但很多新手一上来就乱打光,结果模型细节全没了,或者影子硬得像刀切。我刚开始做硬表面渲染时也踩过这个坑——明明模型做得很精细,一打光全糊了。

今天我就把这三盏灯的定位、参数,以及我在实际项目中总结的套路,一次性讲清楚。

2.1 三点布光的底层逻辑

先看一张我手绘的结构图,帮你快速建立空间感:

主光 45° 水平 30° 垂直 补光 对侧 30° 背光 正后方 高于物体 相机 主光 补光 背光

从图上你能看到,三盏灯分别从不同方向包围物体。主光决定整体氛围,补光负责暗部细节,背光则把物体从背景里「抠」出来。嗯,这个顺序很重要——先定主光,再补光,最后加背光。

2.2 主光:场景的灵魂

主光就是最亮的那盏灯。它决定了阴影的方向和画面的基调。我个人习惯把主光放在相机左侧或右侧,水平角度大约45°,垂直角度30°左右。

核心参数参考:

  • 强度:800-1500W(或亮度值 5-10)
  • 距离:距物体 2-3 个物体高度
  • 阴影:开启,软阴影(Size 0.3-0.5)
  • 颜色:暖色(5600K 或略偏暖)

我在做机械装甲项目时遇到过一个问题:主光太硬,导致金属表面出现刺眼的高光斑块。后来我把灯光面积调大(Area Light 尺寸从 0.5m 增加到 1.5m),高光立刻柔和了。你想想看,硬表面材质越光滑,灯光面积就要越大,不然反射会像镜子一样扎眼。

2.3 补光:暗部的救星

补光的作用不是照亮整个场景,而是把主光留下的阴影区域「提亮」一点。说白了,就是让暗部还能看到细节。

补光的位置一般在主光的对侧,角度略低一些。强度通常是主光的 1/3 到 1/2。我见过很多人把补光开得太亮,结果画面变得扁平,失去了立体感。

参数 主光 补光 背光
强度比例 100% 30%-50% 60%-80%
水平角度 45° 135°(对侧) 180°(正后)
垂直角度 30° 15°-20° 45°-60°
阴影 开启 关闭 关闭
颜色 暖色 冷色(补色) 暖色或中性

我的小技巧:补光用冷色(比如淡蓝色),主光用暖色,这样冷暖对比会让金属质感更突出。我在渲染科幻枪械时经常用这个套路,效果立竿见影。

2.4 背光:轮廓的魔术师

背光也叫轮廓光或边缘光。它从物体后方打过来,在物体边缘形成一条亮边。这条亮边能把物体和背景彻底分开,让画面更有层次。

背光的位置在物体正后方偏上,角度大约45°-60°。强度可以比主光略低,但也不能太弱,否则边缘光不明显。

注意:背光不要直接照到相机镜头,否则会产生眩光。我曾经在渲染一个机器人模型时,背光角度没调好,结果画面出现大面积光晕,修了半天才发现是背光的问题。

2.5 硬表面场景的实战应用

理论说完了,咱们直接上手。下面是一个硬表面机械零件的布光流程,我一步步拆给你看。

步骤一:搭建基础场景

先放一个模型,加一个地面。地面用灰色材质,不要太亮,否则会反射干扰。

// Blender 中的灯光创建示例(Python 脚本)
import bpy

# 创建主光
key_light = bpy.data.lights.new('Key_Light', 'AREA')
key_light.energy = 1000
key_light.color = (1.0, 0.95, 0.85)  # 暖色
key_obj = bpy.data.objects.new('Key_Light', key_light)
bpy.context.collection.objects.link(key_obj)
key_obj.location = (3, -3, 4)
key_obj.rotation_euler = (0.8, 0, 0.8)

# 创建补光
fill_light = bpy.data.lights.new('Fill_Light', 'AREA')
fill_light.energy = 400
fill_light.color = (0.85, 0.9, 1.0)  # 冷色
fill_obj = bpy.data.objects.new('Fill_Light', fill_light)
bpy.context.collection.objects.link(fill_obj)
fill_obj.location = (-2, 2, 2)
fill_obj.rotation_euler = (0.4, 0, -0.6)

# 创建背光
back_light = bpy.data.lights.new('Back_Light', 'AREA')
back_light.energy = 700
back_light.color = (1.0, 0.98, 0.95)
back_obj = bpy.data.objects.new('Back_Light', back_light)
bpy.context.collection.objects.link(back_obj)
back_obj.location = (0, 4, 5)
back_obj.rotation_euler = (1.2, 0, 3.14)

步骤二:调整主光位置

把主光放在相机左侧45°,高度略高于物体。观察阴影——阴影应该清晰但不生硬。如果阴影边缘太锐利,增加灯光面积或开启软阴影。

步骤三:添加补光

补光放在主光对侧,强度降到主光的40%左右。注意看暗部——如果暗部完全漆黑,说明补光不够;如果暗部亮得和亮部差不多,说明补光太强了。

步骤四:布置背光

背光从正后方打过来,高度比物体高一些。观察物体边缘——应该有一条明亮的轮廓线。如果轮廓线太宽,降低背光强度或拉远距离。

实战检查清单:

  • 主光阴影方向是否统一?
  • 暗部细节是否可见?
  • 物体边缘是否有轮廓光?
  • 高光是否集中在金属表面?
  • 整体画面是否有立体感?

2.6 常见问题与避坑

我总结几个新手最容易犯的错误,你对照着检查一下:

  • 灯光太多:三盏灯就够了,别再加什么辅助光、环境光。灯越多,阴影越乱。
  • 补光太亮:补光只是辅助,不是主角。暗部保留一点阴影反而更真实。
  • 背光角度不对:背光太低会照到物体正面,变成「正面光」,失去轮廓效果。
  • 忽略材质反射:硬表面材质(金属、塑料)对灯光位置非常敏感。稍微移动一下灯光,高光位置就会大变。

我曾经在做一个汽车渲染项目时,主光和补光都调好了,但背光怎么打都不对。后来发现是模型背后的散热孔太深,背光被挡住了。解决办法是把背光稍微偏移一点,让光线从侧面擦过散热孔边缘。

嗯,三点布光法就讲到这里。记住一个原则:少即是多。三盏灯,调好位置和强度,硬表面的质感自然就出来了。

最后提醒:每次调整灯光后,记得渲染一张小图看看效果。别等到最终渲染才发现问题,那太浪费时间了。


公众号:蓝海资料掘金营,微信deep3321