BACK TO ARCHIVE
lookdev rendering light transport pipeline dcc mechanics arnold renderman color-management hdri

用于 Lookdev 的校准光照:可核验的 lux、色温与 HDRI 标定方法

02.20.2026 ADUCG RESEARCH

原文(英文):https://cglounge.studio/journal/calibrated-lighting-for-lookdev
作者:Arvid Schneider(CG Lounge)
说明:本文为翻译与整理版,保留关键数据表、公式与可操作流程,文字做了适度压缩以便阅读。

为什么要“校准”Lookdev 光照

很多 Lookdev 的争论,表面上是材质参数(albedo、F0、roughness),实际上是光照不可核验:强度是拍脑袋的、色温是随手挑的、HDRI 动态范围被剪掉,最后导致:

  • 你在 Lookdev 里“觉得对”的材质,一到镜头灯光就崩;
  • 你很难判断问题来自材质还是来自灯光;
  • 资产在不同项目/不同组之间迁移成本很高。

校准(calibrated)并不等于“逐光子精确”。它意味着:你的数值足够接近真实测量,从而让材质响应合理、错误可诊断、跨场景可迁移。

校准光照只关心两个维度:

  1. 多少光(照度 illuminance:lux 到达表面是多少)
  2. 什么颜色(光谱分布:色温 CCT/标准光源)

1. 给艺术家的测光学:你只需要记住这四个量

1.1 四个单位(快速记忆版)

  • 光通量(lm):光源向各方向发出的“可见光总量”。
  • 发光强度(cd):单位立体角方向上的光通量(“朝某方向有多集中”)。
  • 照度(lx):落到表面的光通量/面积(光照校准最常用,测光表读的就是它)。
  • 亮度(cd/m²,nits):单位面积、单位立体角“你最终看到的值”(更接近“画面”)。

1.2 一个关键公式:照度 → 灰球亮度

对于理想漫反射表面(Lambert),照度与亮度关系:

L = E * rho / pi

  • L:亮度(cd/m²)
  • E:照度(lux)
  • rho:反射率(18% 灰球即 0.18

例如:18% 灰球在 100,000 lux 直射日光下:

L = 100,000 * 0.18 / pi ≈ 5,730 cd/m²

这是真实世界物理值,与任何渲染器“强度单位”无关。


2. 真实世界参考值(你需要的是“比例尺”)

这些数值不是“某个渲染器的设置”,而是现实世界测量数据。它们的用途是:让你把关键比值(sun/sky/indoor…)建立在一个统一尺度上。

2.1 太阳:最该校准的光源

Solar Constants(太阳常数相关)

属性数值来源
地球处太阳总辐照度1,361 W/m²NASA TSIS-1(2019 solar minimum)
太阳光视见光效(大气层外)~94 lm/WCIE 推导
太阳照度常数(大气层外)~128,000 luxCIE 推导
太阳表面亮度~1.6×10^9 cd/m²天体物理常用值
视直径(地球观测)0.533°常用天文学数据
立体角6.794×10^-5 sr推导
黑体温度5,778 K常用天体物理数据

地面照度参考(常用工作区间)

条件照度(lux)EV100备注
晴天正午直射100,000–120,000~15.3常用上限
典型明亮日照~80,000~15
轻雾日照~40,000~14
晴天阴影(仅天光)~20,000~13
明亮阴天~10,000–20,00012–13
普通阴天1,000–2,0009–10
重度阴天~200~6
日出/日落~400~7
暮光1–10-1–2
满月夜0.25~-3
无月星光0.002~-10

3. 色温:别再“凭感觉调白”

太阳表面近似 5,778K 黑体,但穿过大气后,直射光会更暖(CCT 更低),天光更冷(CCT 更高)。现实里你经常看到“阴影偏蓝”就是这个原因。

3.1 CIE 标准光源(常用)

标准光源CCT代表常见用途
A2,856K钨丝灯室内白炽参考
D505,003K地平线日光印刷/图形白点
D555,503K日光(摄影常用)“日光”参考
D656,504K平均日光(sun+sky)sRGB 白点/色度学标准
D757,504K阴天/北向窗冷日光参考
Note

ACES 白点常被叫作 “D60”,但严格来说并不存在 CIE 的 D60 标准光源;ACES 的常用白点大约在 6000K 附近。

3.2 常见光源色温(工作记忆版)

光源大致 CCT
蜡烛1800–1900K
高压钠灯(路灯)2000–2200K
钨丝灯(100W)2856K(Illuminant A)
卤素3000–3400K
冷白荧光~4100K
正午日光5200–5800K
阴天6500–7500K
晴天阴影(蓝天主导)7500–10000K

4. EV 与 lux 换算(让相机/测光表与 CG 对齐)

lux = 2.5 × 2^EV
反推:EV = log2(lux / 2.5)

这是一种常用的测光表标准(ISO 100)。


5. 渲染器强度:你到底应该“校准”什么

真正容易混乱的地方在这里:真实世界讲 lux,但很多渲染器不讲 lux。

5.1 任意单位 vs 物理单位

Arnold / RenderMan / KarmaV-Ray(常见模式)
灯光单位任意单位:intensity × 2^exposure物理单位:lux/lm/cd(可选)
intensity 的意义线性倍增器,无物理单位真实测光量
相机曝光后乘:2^exposure(纯增益)物理相机(ISO/快门/光圈联动)
“100,000”意味着什么只是数字100,000 lux

5.2 关键结论:Arnold 是线性的

在 Arnold / RenderMan 这类渲染器中:

  • intensity=100000 + camera_exposure=-15
  • intensity=1 + camera_exposure=0

在渲染结果上可以是等价的(路径追踪本身不变,只是最终线性缩放不同)。
因此“把强度填成 100,000”本身不会让它更“物理正确”。

5.3 真正重要的是:比例

对任意单位渲染器来说,你要校准的是光源之间的比值,以及“灰球在正确曝光下落在中灰”的结果。

比例真实世界大致比值约多少档(stops)
太阳 : 天光~5:1~2–3 档
太阳 : 阴天~10–100:1~3–7 档
太阳 : 室内办公室~200:1~7–8 档
太阳 : 月光~400,000:1~18 档
Tip

选一个全公司统一的“强度/曝光约定”很重要:它让 Lookdev 场景到镜头灯光可以即插即用,也让 HDRI 与 CG 灯的混合比值不会崩。


6. Arnold / RenderMan 的一套可比对参数

6.1 Arnold

  • Intensity:线性倍增器(默认 1.0)
  • Exposure:2 的幂倍增(默认 0)
  • 最终亮度:color × intensity × 2^exposure

其他常用点:

  • 色温:开启 color temperature,输入 Kelvin
  • 太阳盘角度:Distant light angle 设为 0.53°(对应真实太阳视角大小)
  • 程序天空physical_sky(Hosek–Wilkie)可自动处理 sun/sky 的色温与比例

6.2 RenderMan

同样遵循 intensity × 2^exposure 模型:

  • PxrDistantLight:默认 intensity 通常较大(只是约定,不是 lux)
  • angleExtent:同样推荐 0.53°
  • PxrEnvDayLight:类似 Arnold 的 physical sky

6.3 对照表

概念ArnoldRenderMan
太阳光类型Distant LightPxrDistantLight
太阳盘大小angle: 0.53angleExtent: 0.53
强度公式intensity × 2^exposureintensity × 2^exposure
色温Kelvin + togglecolorTemperature
天空模型physical_skyPxrEnvDayLight
单位任意任意

下图是原文给出的“校准环境参考示例”:


7. HDRI 标定:不是“拍了个球就叫 HDRI”

HDRI 不标定也能出图,但会有三个典型问题:

  1. sun/sky/ground 的亮度比例可能是错的
  2. 绝对尺度可能差几个数量级,导致与 CG 灯混合时比例崩
  3. 色彩可能带着摄影曝光/滤镜偏色,而不是场景本身

7.1 什么叫“校准 HDRI”

至少满足三点:

  1. 动态范围完整:太阳盘不要被剪掉(理想目标是覆盖太阳盘到深阴影的 30+ 档)。
  2. 绝对亮度标定:像素值要能映射到真实亮度(cd/m²)。
  3. 色彩标定:用色卡/灰阶验证中性与偏色(ND 滤镜常引入偏色,需要校正)。

7.2 一个常用标定思路(公式版)

对等距柱状(equirectangular)HDRI,上半球照度:

E = sum( L(x,y) * cos(theta) * omega(x,y) )

像素立体角:

omega = sin(theta) * (2 * pi / width) * (pi / height)

校准因子:E_metered / E_hdri
把 HDRI 的每个像素乘以该因子,即可把 HDRI 拉到与实测一致的尺度。


8. 验证:灰球测试(以及色卡)

原文给出一个很实用的验证流程:只要你把灰球/镜面球/色卡放进同一套 Lookdev 光照,很多问题会“自动暴露”。

Step 1:渲一个 18% 灰球

要点:确认灰球在你的 view transform 下落在你定义的“中灰”位置(不是靠眼睛猜)。

Step 2:检查结果是否合理

除了灰球本身的平均值,还要看:

  • 直射与天光的比例是否符合预期
  • 高光是否被剪断(尤其是 HDRI 的 sun)

Step 3:检查 Macbeth ColorChecker

关注底部中性灰阶:

  • 灰阶应该平滑渐变
  • 不应带明显色偏(偏青/偏洋红常见于白平衡/色域管理问题)

9. Arnold 一些“会破坏物理直觉”的默认项(Lookdev 建议覆写)

这部分的核心不是“Arnold 不物理”,而是:默认配置可能引入能量损失或模糊路径,让你难以用数据去校准。

建议做法:明确你们工作室的 Lookdev 约定,写成 preset / template,别让每个 artist 自己配一遍。


10. 快速参考卡(做成团队内部 wiki 会很值)

你可以把本文的关键内容压缩成三张卡:

  1. 真实世界照度表(sun/overcast/indoor/moonlight)
  2. 色温表(D55/D65/钨丝/阴影)
  3. 校准流程(HDRI 标定 → 灰球/色卡验证 → 固化模板)

参考与延伸

本文采用 Creative Commons BY-NC-ND 4.0 协议进行授权。

BY-NC-ND: 署名-非商业性使用-禁止演绎

End of Article