中EN
概念页

布料着色

Cloth Shading

更新于 2026-10-15 约 7 分钟PBR布料织物sheen天鹅绒微圆柱Kajiya-Kay

布料的微几何与其他材质不同:可能有高度重复的编织结构、垂直伸出表面的纤维,或两者兼有,因此常需要专门的着色模型来表现各向异性高光、粗糙散射(半透明纤维造成的边缘亮光)以及随视角的颜色变化。布料 BRDF 分为经验模型、基于微表面理论的模型和微圆柱模型三类。本页对应 RTR4 9.10 节。

外观特征

  • 各向异性镜面高光。
  • 粗糙散射 (asperity scattering):光透过伸出的半透明纤维散射造成的明亮边缘效果。
  • 随视角的颜色偏移:由织物中不同颜色的线引起。
  • 除 BRDF 外,多数织物的高频空间变化也是可信布料外观的关键。《神秘海域 4》的布料系统在织物 BRDF 之上逐像素叠加编织细节、老化、瑕疵和小褶皱。

经验模型

  • 《神秘海域 2》的布料漫反射项: fdiff(l,v)=ρssπ(krim((v⋅n)+)αrim+kinner(1−(v⋅n)+)αinner+kdiff)f_{\text{diff}}(\mathbf{l},\mathbf{v})=\frac{\rho_{ss}}{\pi}\Big(k_{\text{rim}}\big((\mathbf{v}\cdot\mathbf{n})^+\big)^{\alpha_{\text{rim}}}+k_{\text{inner}}\big(1-(\mathbf{v}\cdot\mathbf{n})^+\big)^{\alpha_{\text{inner}}}+k_{\text{diff}}\Big) krimk_{\text{rim}}、kinnerk_{\text{inner}}、kdiffk_{\text{diff}} 分别缩放边缘光项、使正面(inner)表面变亮的项和 Lambert 项,αrim\alpha_{\text{rim}}、αinner\alpha_{\text{inner}} 控制衰减。它不符合物理:有多个依赖视角的效果,却没有依赖光方向的。
  • 《神秘海域 4》按布料类型用微表面或微圆柱模型作镜面项,漫反射用"包裹光照 (wrap lighting)"经验次表面近似:它同时修改 BRDF 和光照,用一个式子替换 fdiff(l,v)(n⋅l)+f_{\text{diff}}(\mathbf{l},\mathbf{v})(\mathbf{n}\cdot\mathbf{l})^+;即(式 9.71)

fdiff(l,v)(n⋅l)+  ⇒  ρssπ(cscatter+(n⋅l)+)+(n⋅l+w)+1+wf_{\text{diff}}(\mathbf{l},\mathbf{v})(\mathbf{n}\cdot\mathbf{l})^+\;\Rightarrow\;\frac{\rho_{ss}}{\pi}\left(\mathbf{c}_{\text{scatter}}+(\mathbf{n}\cdot\mathbf{l})^+\right)^+\frac{(\mathbf{n}\cdot\mathbf{l}+w)^+}{1+w}

箭头表示右边整体替换左边(同时改了 BRDF 和光照项),+^+ 表示钳制到 [0,1][0,1],cscatter\mathbf{c}_{\text{scatter}} 是用户指定的散射色,w∈[0,1]w\in[0,1] 控制包裹宽度。(公式按 PDF 提取文本的符号顺序和上标复原:提取文本中项与项之间没有加号,第二个 +^+ 是括号的上标,所以写成乘积。)

  • Disney 在其漫反射项上加 sheen 项模拟粗糙散射: fsheen(l,v)=ksheen csheen(1−(h⋅l)+)5f_{\text{sheen}}(\mathbf{l},\mathbf{v})=k_{\text{sheen}}\,\mathbf{c}_{\text{sheen}}\big(1-(\mathbf{h}\cdot\mathbf{l})^+\big)^5 ksheenk_{\text{sheen}} 调节强度;csheen\mathbf{c}_{\text{sheen}} 由另一个用户参数在白色与亮度归一化的 ρss\rho_{ss}(ρss\rho_{ss} 除以其亮度,只保留色相和饱和度)之间混合。

微表面布料模型

  • Ashikhmin 等提出用逆高斯 NDF 表现天鹅绒;后续工作略作修改,并提出一种无遮蔽阴影项、分母修改过的通用微表面 BRDF 变体。
  • 《教团:1886》把这种修改的 BRDF、Ashikhmin 与 Premože 的广义天鹅绒 NDF(α\alpha 控制逆高斯的宽度,kampk_{\text{amp}} 控制幅度)和 (1−F(h,l))ρss/π(1-F(\mathbf{h},\mathbf{l}))\rho_{ss}/\pi 漫反射项组合: f(l,v)=(1−F(h,l))ρssπ+F(h,l) D(h)4(n⋅l+n⋅v−(n⋅l)(n⋅v))f(\mathbf{l},\mathbf{v})=\big(1-F(\mathbf{h},\mathbf{l})\big)\frac{\rho_{ss}}{\pi}+\frac{F(\mathbf{h},\mathbf{l})\,D(\mathbf{h})}{4\big(\mathbf{n}\cdot\mathbf{l}+\mathbf{n}\cdot\mathbf{v}-(\mathbf{n}\cdot\mathbf{l})(\mathbf{n}\cdot\mathbf{v})\big)} 其变体用于《神秘海域 4》中羊毛、棉布等粗糙织物。
  • Imageworks 用另一种逆向 NDF 作 sheen 项,可加到任何 BRDF 上: D(m)=χ+(n⋅m) (2+1α) (1−(n⋅m)2)12α2πD(\mathbf{m})=\frac{\chi^+(\mathbf{n}\cdot\mathbf{m})\,(2+\frac{1}{\alpha})\,\big(1-(\mathbf{n}\cdot\mathbf{m})^2\big)^{\frac{1}{2\alpha}}}{2\pi} 其 Smith 遮蔽阴影没有闭式解,Imageworks 用解析函数近似数值解;遮蔽函数及 sheen 与其余 BRDF 的能量守恒见 Estevez 与 Kulla。书中示例的 sheen 粗糙度从 0.15 到 1.0。
  • 以上模型都只适合特定类型的织物。

微圆柱模型

  • 与头发模型很相似(第 14.7.2 节):假设表面覆盖一维线,任一点有无数法线,构成垂直于切线 t\mathbf{t} 的法平面。
  • Kajiya-Kay(Banks)BRDF:简单,仍在使用;《神秘海域 4》把它用于丝绸、天鹅绒等有光泽织物的镜面项。
  • Dreamworks:相对简单、美术可控,纹理可改变粗糙度、颜色和线的方向(可指向表面外以表现天鹅绒),经线和纬线可设不同参数来表现闪色丝绸等变色织物,并归一化以守恒能量。
  • Sadeghi 等:基于织物样本和单根线的测量,计入线之间的遮蔽与阴影。
  • 也有直接用头发 BSDF 的:PxrSurface 的 "fuzz" 波瓣使用 Marschner 头发模型的 R 项;Wu 与 Yuksel 的实时布料系统中有一个模型源自 Disney 动画电影的头发模型。
类别例子特点
经验《神秘海域 2》边缘光项、《神秘海域 4》包裹光照、Disney sheen便宜、可调,不完全物理
微表面逆高斯天鹅绒 NDF、《教团:1886》、Imageworks sheen限于特定织物类型
微圆柱Kajiya-Kay、Dreamworks、Sadeghi 等更通用地建模布料
  1. realtime_rendering_4ed.pdf 第 9 章 Physically Based Shading

相关页面

图形学基于物理的着色Physically Based Shading基于物理的着色从光与物质交互的物理出发,用 BRDF 和反射方程计算表面沿视线方向射出的辐射亮度:镜面项来自微表面理论与菲涅耳反射,漫反射项来自局部次表面散射,布料、波动光学与分层材质再作扩展。本页是 RTR4 第 9 章的总览,并收录该章第 9.13 节的材质混合与材质过滤(镜面抗锯齿)。图形学微表面理论Microfacet Theory微表面理论把小于像素的微几何建模为大量平坦微面元,用法线分布函数 (NDF) D(\mathbf{m}) 描述其朝向统计,用遮蔽函数 G1 和遮蔽-阴影函数 G2 描述可见性,并据此推导宏观 BRDF。镜面反射时每个微面元是完美菲涅耳镜,积分退化为在半向量处求值,得到 FG2D/(4|\mathbf{n}\cdot\mathbf{l}||\mathbf{n}\cdot\mathbf{v}|)。GGX 分布配合高度相关的 Smith G2 是当今影视和游戏最常用的组合;该框架忽略微面元间的多次反射,可用补偿项弥补。本页对应 RTR4 9.6–9.8 节。图形学漫反射与次表面 BRDFDiffuse & Subsurface BRDF Models漫反射项模拟不透明电介质中的局部次表面散射(金属没有)。其颜色是次表面反照率 \rho{ss};选用光滑表面还是粗糙表面模型,取决于表面不规则与次表面散射距离的相对大小,而不只是表面有多粗糙。光滑表面模型从 Lambert 出发,通过与镜面项的能量权衡改进;粗糙表面模型有 Disney 漫反射、Oren-Nayar、Gotanda、Hammon 等。本页对应 RTR4 9.9 节。图形学菲涅耳反射Fresnel Reflectance菲涅耳方程描述光在两种物质的平坦界面上反射的比例 F,它取决于入射角和两侧折射率:垂直入射时为材质特有的 F0(特征镜面色),掠射时趋于 1。实时渲染用以 F0 为参数的 Schlick 近似。电介质 F0 低且无色,金属 F0 高且常带色,半导体介于其间;金属度参数化利用了这一点。光从物体内部射向表面时还可能发生全内反射。本页对应 RTR4 9.5 节。综合角色渲染Character Rendering角色是游戏中最受关注、技术最集中的资产。本页按"动起来 → 表面细节 → 材质着色 → 特殊材质(皮肤、毛发、布料)→ 光照与阴影 → 性能"的顺序,把 wiki 中相关概念页串成一套角色渲染方案的地图。每一层只给出要点与取舍,细节见链接页。游戏开发 · UE5材质系统Material SystemUE 材质 (Material) 是用节点图描述「表面如何与光交互」的着色器生成器。它有三个正交维度:着色模型 (Shading Model) 决定光照模型(Default Lit、次表面、清漆、毛发等),混合模式 (Blend Mode) 决定与背景的合成公式(Opaque/Masked/Translucent…),参数 + 材质实例 (Material Instance) 让美术在不重编译着色器的前提下做变体。PBR 输入(Base Color/Roughness/Metallic/Specular)直接对应 RTR4 的金属度-粗糙度工作流;最大的工程坑是静态参数导致的着色器排列爆炸。游戏开发 · UE5Chaos 布料Chaos ClothUE5 的布料由 Chaos Cloth 解算器模拟,它是一个基于粒子的底层解算器。有两套制作流程:一是传统流程,在骨骼网格编辑器里直接选材质分段、绘制参数遮罩(最大距离、背挡、动画驱动等);二是 UE 5.3 起的 Panel Cloth Editor,用独立的布料资产和 Dataflow 节点图搭建,支持可选的 XPBD 约束和水平集体积 (Level Set Volume) 碰撞。游戏美术Filament 材质模型参数Filament Material Model ParametersGoogle Filament 的 Lit(标准)模型按 Disney/UE/Substance 互通思路设计,用 baseColor、metallic、roughness、reflectance 等参数描述导体与电介质,并叠加 clearCoat、sheen、iridescence、transmission 等层。本页从美术/TA 角度说明含义、合理范围,以及与 UE / Substance 的对照;不做 BRDF 公式展开。

输入关键词开始搜索

滚轮或双指缩放 · 拖动平移 · 双击放大 / 还原