概念页
线性工作流(Birn)
Linear Workflow from Birn
第 3 版 Ch8「Working in a Linear Workflow」强调:贴图、表面色、灯光、渲染与合成全程保持数字色值与真实光强的线性对应;美术灯光必须在线性空间思考,否则二次衰减、GI、叠光都会「算对了却看起来错」。
原理
什么是线性工作流
Birn 定义:一整套准备贴图、选表面色、布光、渲染、合成的做法,使软件计算始终维持数字颜色值与实际光强之间的直接、均匀关系。
为何会出问题(Understanding Gamma)
- 人眼对亮度非线性;显示器对输入也呈幂次响应(典型近似 gamma 2.2)。
- 相机 JPEG 等会把 sRGB / gamma 2.2 烘进数据,便于直接显示。
- 3D/合成软件内部按线性运算,却常被喂进已带 gamma 的贴图,再输出未正确编码的结果;监视器又以 2.2 去显示——灯光衰减与贴图 gamma 互相打架。
错误 gamma 下的症状
- **二次衰减(inverse square)**的面光:近处已过曝,远处仍照不亮。
- GI 同理,依赖物理衰减,非线性显示下「弹不远」。
- 两盏灯相加、雾光束交叉处可能显得超过两倍亮。
- 事后整图再套 gamma 2.2,又会让已是 sRGB 的贴图二次校正而发灰、失饱和。
旧习惯是加假补光、关掉衰减、硬抬 GI——能提亮,但再也看不出「就是那盏灯在照」。
三步修好(Fixing in Three Steps)
- 输入线性化:把带 gamma 的贴图与拾取的表面色转成线性(常设 Input = sRGB,由软件去 gamma)。Bump / Displacement / Normal 等非颜色数据通常本就是线性,勿再当 sRGB 处理。
- 渲染保持线性:输出线性(如线性 EXR),不要在渲染器里误烤显示 gamma。
- 线性合成,最后再适配显示:合成在线性空间;结尾再转到监视器所需的 gamma 2.2(或 ACES/显示变换)。视口需能「读线性、按 sRGB 显示」。
拾色器若未做显示校正,可对表面色加 gamma ≈ 0.4545(1/2.2)节点——仅在软件无法自动处理时使用。
与物理灯光的关系
物理正确的衰减与 GI 只有在线性工作流下才「看起来对」。第 3 版把线性工作流与 physically based lights/shaders 并列为核心新内容。
应用(游戏侧)
- 引擎/管线:Base Color 走 sRGB→线性着色;ORM/Normal 走 Linear;灯光在线性 HDR 累加;最后 tonemap + 显示编码。见 显示编码与 sRGB、色调映射、Base Color 与反照率制作。
- Look Dev:不要用「把灯调到看起来像」去补偿错误色彩空间;先确认色彩管理,再谈布光动机。
- 离线/过场:线性合成后再显示编码;pass 相加/相乘语义只在线性下成立。见 分层渲染与合成 Pass。
取舍
- 收益:二次衰减与 GI 可信;叠光可预期;与 PBR 工具链一致。
- 成本:团队须统一输入配置;旧资产可能需重校曝光而非乱加灯。
- 版本:第 1 版几乎不论线性工作流;第 3 版将此作为色章开篇。色方案/色温见 数字色彩方案与色彩平衡。
出处
- Ch08 · The Art And Science Of Color
- About This Edition
- birn_j_digital_lighting_rendering.pdf
- Jeremy Birn《Digital Lighting & Rendering》第 3 版(New Riders, 2014, ISBN 978-0-321-92898-6)
相关页面
游戏美术数字色彩方案与色彩平衡Color Schemes & Color Balance现以第 3 版 Ch8 为准。 章首是 线性工作流(专页);其后才是混色、色方案、色温与色彩平衡、数字色与 HDR。本页管「怎么设计颜色关系」;编码与显示链 线性工作流(Birn)、显示编码与 sRGB。图形学显示编码与 sRGBDisplay Encoding & sRGB光照、纹理等计算假设数值是线性的,但显示缓冲和纹理使用非线性编码。简短的回答是:着色器输出 [0,1] 的颜色要取 1/2.2 次幂(gamma 校正),读入的纹理和颜色做相反的变换,多数情况下可以让 GPU 自动完成。忽略它会导致画面偏暗、色相偏移、光照叠加错误和抗锯齿边缘"绳索化"。图形学色调映射Tone Mapping色调映射把场景参考的辐射亮度转换为显示参考的辐射亮度,目标不是恒等复现、也不是把所有信息"挤进"显示范围,而是在显示条件下尽量复现观看原场景时的感知印象。它通常是曝光缩放加一条 S 形曲线(全局映射),之后可做调色;最后由显示编码输出到 SDR 或 HDR 显示器。游戏美术Base Color 与反照率制作Base Color & Albedo AuthoringBase Color(MR)/ Diffuse·Albedo(SG)承载物质固有色:电介质为漫反射反照率,金属为镜面反射色(F0)。制作要点是保持正确亮度区间、不要画进光照/阴影/AO(微遮蔽例外),并注意 sRGB 贴图与线性着色的分工。游戏美术PBR 贴图工作流PBR Texture WorkflowsPBR(Physically Based Rendering)贴图制作有两条主流工作流——金属度/粗糙度 (Metal/Roughness, MR) 与镜面/光泽度 (Specular/Glossiness, SG)。它们表达同一套物理数据,只是通道切分不同;Substance、UE、Filament 等以 MR 为主,SG 多用于兼容旧资产。本页从美术生产角度对照通道语义、引擎对应关系与取舍,不重复 BRDF/微表面公式(见图形学 基于物理的着色)。游戏美术分层渲染与合成 PassLayered Rendering & Passes现以第 3 版 Ch11 为准。 Layers(按物体/组)与 Passes(按贡献:diffuse/spec/reflection/shadow/ambient/occlusion/beauty/lighting/GI/mask/depth)支撑后期控制;含实景底板匹配与合成色彩管理。游戏侧类比 GBuffer/AOV。游戏美术灯光工作流与光源类型Lighting Workflow & Light Types现以第 3 版 Ch2 为准。 3D 少有「美丽意外」——要控制流程(何时开灯、反馈环、命名与版本)、选对光源类型,并用衰减、diffuse/spec 分离、light linking、cookie 等手段细化。第 3 版新增 Physically Based Lights(IES/光度学灯) 实践。游戏美术曝光与相机模拟Exposure & Camera Simulation现以第 3 版 Ch6「Cameras and Exposure」为准。 覆盖光圈/景深、快门/运动模糊、感光度与颗粒、摄影曝光(互易律、Zone System、直方图、EV、包围曝光),以及镜头瑕疵匹配。物理灯光(IES)必须配合理曝光才可信。游戏美术色彩六层法与动态范围Six-Layer Color & Dynamic RangeDinur Ch3 美术向色彩框架:六层法拆解「看见的颜色」来自材质、光照、环境、大气与相机;强调加性思维、HSB 在 RGB 中的操作,以及位深/动态范围对可调性(而非「看起来更艳」)的意义。与 Birn 色方案页互补:本页偏解释与制作层级,Birn 偏叙事色方案。