Filament 材质模型参数
Filament Material Model Parameters
Google Filament 的 Lit(标准)模型按 Disney/UE/Substance 互通思路设计,用 baseColor、metallic、roughness、reflectance 等参数描述导体与电介质,并叠加 clearCoat、sheen、iridescence、transmission 等层。本页从美术/TA 角度说明含义、合理范围,以及与 UE / Substance 的对照;不做 BRDF 公式展开。
材质模型一览
| 模型 | 用途 |
|---|---|
| Lit(标准) | 多数金属/电介质;可加清漆、织物光泽、彩虹膜、透射 |
| Subsurface | 次表面散射向 |
| Cloth | 稀疏纤维织物(牛仔、丝绒等);皮革/丝绸仍宜 Lit/各向异性 |
| Unlit | 预烘焙、UI、调试 |
| Specular glossiness | 遗留,仅兼容旧资产 |
层叠顺序(外→内)
文档规定 lobe/层从外到内堆叠。结合 clearCoat、sheen、iridescence 专节:
flowchart TB CC["clearCoat + clearCoatRoughness / Normal"] IR["iridescence 薄膜"] SH["sheenColor + sheenRoughness"] BASE["Base: baseColor / metallic / roughness / reflectance ..."] CC --> IR --> SH --> BASE
上图:清漆在最外;彩虹膜在清漆下、sheen 上;sheen 在基座层之上。不需要某层时不要写该属性(哪怕写 0)——文档写明 clearCoat/anisotropy 赋 0 仍会增加开销。
Lit 核心参数(美术向)
| 参数 | 含义 | 范围 / 注意 |
|---|---|---|
baseColor | 非金属=漫反射反照率;金属=镜面色 | float4 ,预乘线性 RGB;非金属真实约 0.04–0.94,金属约 0.66–1 |
metallic | 电介质 0 / 导体 1 | 宜二值;过渡仅用于贴图混合 |
roughness | 观感粗糙;0 镜面锐利 | ;= 1−glossiness |
reflectance | 电介质正入射反射强度(亦定 IOR) | ;默认 0.5=4%;宜 >0.35(>2%) |
specularFactor / specularColorFactor | 缩放/染色非金属镜面(glTF KHR_materials_specular) | 默认 1 / 白 |
normal / bentNormal / clearCoatNormal | 切线空间法线;bent 改善间接光 | 用前须在 prepareMaterial 之前写入 |
ambientOcclusion | 环境光可达性 | ;主要乘间接漫反射 |
emissive | 自发光 | RGB 为 nits;α 为曝光权重(0=不受曝光影响,利于强制 bloom) |
anisotropy / anisotropyDirection | 各向异性强度与切线方向 | ;正=切线向,负=副切线向 |
reflectance 与 ior 描述同一物理量:通常只设其一,另一自动推导;两者都设可做出「物理不可能但艺术需要」的材质。
扩展层(生产向)
- clearCoat / clearCoatRoughness:车漆、易拉罐清漆、亮光木器等各向同性电介质罩层;强度宜 0/1。会约 加倍镜面计算成本。默认
clearCoatIorChange=true时基座baseColor会因 IOR 变化显得变暗。 - sheenColor / sheenRoughness:织物绒毛感;位于 clearCoat 之下。若只要布料外观,用 Cloth 模型更省。
- iridescence(+ IOR、厚度 nm):薄膜干涉色;默认厚度 400 nm;约 <100 nm 几乎无色,过厚则干涉过密不可读。实现近似 glTF KHR_materials_iridescence;Cloth 模型不可用。
- transmission / absorption / thickness / microThickness / dispersion / ior:透射与吸收;
absorption衰减 ;艺术向可用透过色反推 。 - secondRoughness (+ weight):第二镜面瓣(如金属铜绿);始终各向同性。
Cloth / Subsurface 要点
Cloth:无 metallic/reflectance;额外 sheenColor(默认 )、subsurfaceColor(慎用高值,可干扰阴影)。丝绒:暗 baseColor + 亮/饱和 sheenColor。牛仔等:固有色在 baseColor,sheen 取亮度或默认。皮革/丝绸/缎面仍宜标准或各向异性 Lit。
与 UE / Substance 对照
| Filament | Substance / UE MR | 备注 |
|---|---|---|
| baseColor | Base Color / BaseColor | Filament 要线性预乘;UE 贴图常标 sRGB |
| metallic | Metallic | 皆宜二值 |
| roughness | Roughness | 皆为粗糙度(非 gloss) |
| reflectance | specularLevel / Specular | 三者默认中点常对应 4%(0.5) |
| clearCoat* | Clear Coat(UE)/ 类涂层 | 成本与 IOR 变暗注意 |
| sheen* | 布料/Sheen 节点 | Filament 另有 Cloth 模型 |
| ambientOcclusion | Ambient Occlusion | 独立通道,勿烤进 baseColor |
| anisotropy* | Anisotropy | 刷痕金属等 |
| shadingModel: specularGlossiness | Spec/Gloss 工作流 | Filament 标 legacy |
线性色与预乘 Alpha
Filament 材质 RGB 均为线性;透明混合假定预乘 alpha。从 Substance 导出或手写常量时,勿把 8bit sRGB 字节直接当线性。见文档 §6 Handling colors 与 显示编码与 sRGB。
取舍
Lit 参数面很全,但每开一层(清漆、各向异性、第二粗糙、透射)都有明确成本开关——美术调「看起来有层」前,TA 应确认是否该用专用模型(Cloth)或简化层数。与 UE Substrate 的分层哲学相近但 API 不同,见 Substrate 材质。
出处
- Filament Materials
- Materials
- google.github.io/filament/main/materials.html
- Romain Guy & Mathias Agopian, Filament Materials 文档
- 03 · Metal Roughness Workflow