Skip to main content

Chapter 139: ML for Material and Shading

ML 进入材质和 shading 管线后,最先改变的对象是材质数据的生产方式。传统流程由美术、扫描设备、程序纹理节点和手写 shader 共同完成外观定义;ML 流程把大量材质样本压成可学习的数据分布,再从照片、文本、草图、已有贴图或目标渲染结果中生成、估计、补全或压缩材质表示。读完本章,读者应能定位 ML 材质系统的输入、输出、推理位置、可控边界和 runtime 降级路径。

本章的贯穿材料是一块旧砖墙材质。输入可以是几张手机照片、一段“潮湿红砖、缝隙有灰尘、局部苔藓”的描述、已有低分辨率 base color,目标输出是可被普通 PBR renderer 消费的 base color、normal、roughness、metallic、ambient occlusion、height 等贴图,以及可选的 MaterialX shader graph。这个例子覆盖生成、估计、压缩、导出、人工修正和 runtime fallback。

核心结论先给出:ML 材质系统的工程价值取决于它能否把不稳定输入转换成稳定材质资产。稳定资产必须能 relight、能缩放、能被 artist override、能导出到明确材质模型,并且在目标平台上有可预测开销。模型输出看起来像一张好看的图,只能说明当前观察角度成立;输出能在不同光照、不同距离和不同 renderer 中保持材质属性一致,才说明它进入了 shading 管线。

因此,本章按照一个材质资产从数据到 runtime 的路径展开:先判断 ML 在材质生成中承担什么角色,再追踪数据驱动 shader 生成如何连接纹理、BRDF 和 shader graph,然后放入生产管线,接着评估泛化和跨场景适应性,最后比较生成材质、扫描材质和手工材质的真实感与可控性。

139.1 ML 在材质生成中的应用思路

ML 材质生成的工作对象是材质表示。材质表示指 renderer 用来计算表面外观的一组数据,包括颜色贴图、法线贴图、粗糙度、金属度、高度、透明度、各向异性参数、subsurface 参数,以及更复杂的 SVBRDF。SVBRDF 是 spatially varying BRDF,表示同一个表面上每个位置都可以有自己的反射参数。旧砖墙的砖块、砂浆、苔藓和潮湿斑块属于同一个表面,但不同位置的颜色、法线和粗糙度都不同,所以它更适合用 SVBRDF 思路理解。

ML 在这个问题中有三种常见角色。第一种是生成器,从文本、草图、参考图或低维 latent 生成一组 PBR 通道。第二种是估计器,从照片或扫描数据反推出材质参数。第三种是压缩器,把已有高分辨率多通道贴图压成 latent feature 与小模型,再在采样时解码。三者的共同点是把材质空间中的先验分布写入模型;差异在于输入证据、输出可信度和 runtime 位置不同。

旧砖墙例子中,文本输入“潮湿红砖”本身没有告诉系统每个 texel 的粗糙度。模型通过训练数据中的共现关系推断:砖面通常比釉面粗糙,潮湿区域通常更暗且高光更集中,砂浆缝隙通常更高频且法线扰动更强。这种推断是数据先验。数据先验能补足输入缺失,也会把训练集偏差带入输出。工程判断必须追问一个问题:这个输出通道是由输入证据决定,还是由模型先验猜出。

生成式材质研究已经把这个问题拆成多种路径。MaterialGAN 把生成模型作为 SVBRDF latent prior,用少量观测图像反推材质;MatFusion 使用 diffusion backbone 建模 SVBRDF 分布,再根据照片条件生成多个候选估计;ReflectanceFusion 从文本生成可编辑、可 relight 的 SVBRDF maps。这些方法共同说明一件事:模型生成的目标应尽量落到物理材质通道,而非停留在单张 shaded image。

把旧砖墙送入 renderer 时,单张 shaded image 无法独立表达材质。它已经混入光源方向、曝光、阴影、相机白平衡和后处理。稳定输出应拆成材质通道:base color 尽量表示固有颜色,normal 表示局部几何扰动,roughness 控制高光扩散,height 支撑视差或 displacement,AO 记录小尺度遮蔽近似。拆分越清楚,后续 shading 越能在新光照下保持一致。

ML 生成材质时还要区分离线资产生成和实时 shader 推理。离线生成把模型放在 DCC、资产构建服务或编辑器导入阶段,runtime 只加载普通 texture 和 shader。实时推理把模型放进 frame 内,例如神经纹理压缩在采样时解码,或 neural material 在 shader 内近似复杂外观。离线生成优先提升资产生产效率,实时推理会直接改变 GPU pass 时间、显存开销、采样成本和平台能力需求。

旧砖墙的最稳妥流程通常是离线生成加 runtime 常规 PBR。模型先输出多通道贴图,美术检查并修正通道,构建系统烘焙 mipmap、压缩格式和材质元数据,runtime 仍通过现有 material system 渲染。实时神经材质适合贴图数量极大、材质重复度高、显存压力高或传统 shader 近似成本高的场景。这个选择要由 frame budget、目标设备和画质收益共同决定。

材质生成还需要给出可观察证据。对旧砖墙而言,证据至少包括四类:不同光照方向下的渲染预览、不同粗糙度范围的高光变化、近中远距离的 mip 结果、artist override 前后的差异。模型输出本身只是材料;这些预览和差异才支撑“可用于 shading”的结论。

139.2 数据驱动的 Shader 生成方法

数据驱动 shader 生成的稳定做法是让模型输出可解释的材质参数、贴图或 shader graph 节点,再由 renderer 的 shader generator 或固定 shader template 生成 GPU 代码。直接让模型输出任意 shader 源码,风险集中在语义不稳定、平台差异、资源绑定错误和性能不可控。图形工程需要的是可验证的数据路径:样本进入模型,模型输出参数或图结构,图结构被编译为目标 API shader,最终在 draw call 中产生可检查的像素结果。

旧砖墙可以拆成五个数据驱动环节。材质样本提供训练分布;参数预测从照片或文本估计 PBR 通道;texture synthesis 补全高频细节和 tileable 区域;BRDF fitting 把观测外观拟合到材质模型;shader graph generation 把贴图、常数、程序噪声和混合关系组织成图。每个环节都要回答不同问题。

环节输入输出回答的问题对旧砖墙的作用
材质样本扫描材质、合成材质、手工材质库训练集和验证集模型见过哪些材质分布决定砖、砂浆、苔藓的先验是否可靠
参数预测照片、文本、低分辨率贴图PBR 通道或 SVBRDF 参数当前输入如何映射到材质空间从照片中分离 base color、normal、roughness
Texture synthesis小块样本、mask、描述tileable 高分辨率贴图如何扩展纹理面积并保持局部统计生成可平铺砖墙,不产生明显重复缝
BRDF fitting多光照观测、目标渲染图材质模型参数哪组参数能重现观测外观调整潮湿区域高光和砖面粗糙度
Shader graph generation通道、mask、规则、节点库MaterialX 或引擎材质图如何把数据变成 renderer 可执行关系把苔藓 mask、湿润混合和法线强度连接成图

参数预测的关键是去耦。照片中的暗部可能来自 base color,也可能来自阴影;亮斑可能来自低 roughness,也可能来自曝光;法线细节可能来自真实凸凹,也可能来自图像纹理。模型必须通过训练分布、额外光照条件或 loss 设计做拆分。旧砖墙若只有一张正面照片,潮湿区域的高光很难稳定估计;如果有多光照照片或 flash 图,roughness 和 normal 的估计证据会更强。

Texture synthesis 的关键是局部统计和全局结构同时成立。砖墙有周期性砖块排列,也有随机裂纹、污渍和苔藓。模型生成时要让砖块边界对齐 UV tile,同时让污渍跨 tile 边缘连续。检查时可以把输出贴图按 3×3 tile 展开,观察缝线、重复图案和尺度跳变。这个检查直接对应 renderer 中的 sampler 行为,因为 tile seam 会在 minification 和 mipmap 切换时更明显。

BRDF fitting 把材质外观压到某个 shading model 中。常见实时 renderer 使用 metal/roughness PBR,film 或 DCC pipeline 可能使用更复杂的 Standard Surface、OpenPBR 或自定义 layered BRDF。拟合过程必须先选材质模型,再判断模型参数能表达多少外观。旧砖墙的干燥砖面可以用 diffuse 加 rough specular 近似;潮湿薄膜可能需要 coat 或 clearcoat 层;苔藓可能需要更强的 diffuse 和更弱的 specular。材质模型表达能力会限制 ML 输出能落到什么参数上。

Shader graph generation 负责把通道和规则变成可编辑图。图节点应保留人能理解的语义,例如 brick_maskmortar_maskmoss_blendwetness_amountnormal_strength。如果模型输出一组匿名 latent,artist 很难局部修正;如果模型输出一张完整 base color 加一张完整 roughness,artist 仍能用 mask 调整区域。生产系统通常会把 ML 输出接到标准节点库中,例如 MaterialX 用开放标准表示材质节点、图关系和 shader generation 目标,glTF 2.0 则提供更轻量的运行时 PBR 资产交换路径。

数据驱动 shader 还要对资源绑定保持清晰。runtime draw call 看到的是 texture view、sampler、uniform buffer、storage buffer、pipeline state 和 shader code。ML 输出若导出为普通贴图,绑定方式与传统材质一致;若导出为 latent texture 加小网络权重,shader 中需要额外 buffer、矩阵乘法、feature sampling 和解码逻辑。后一种路径改变的是 fragment shader 的采样成本和寄存器压力,也可能改变 wave occupancy、cache 行为和带宽瓶颈。

旧砖墙的 shader graph 可以采用分层结构。第一层采样 base color、normal、roughness 和 AO;第二层用 moss_mask 混合苔藓颜色和粗糙度;第三层用 wetness_mask 降低 roughness 并略微压暗 base color;第四层把 normal 强度按距离衰减。ML 可以生成这些 mask 和参数初值,artist 负责锁定美术意图,shader generator 负责输出目标平台代码。这样,模型能力、人工控制和 GPU 执行路径之间有明确边界。

139.3 集成 ML 材质管线

集成 ML 材质管线时,主问题从“模型能生成什么”转成“资产如何进入 renderer”。一个可落地的管线至少包含训练数据、模型推理、材质验证、材质导出、artist override、runtime fallback 六个阶段。缺少任一阶段,ML 输出都会停留在 demo 级材质图,而难以成为可维护资产。

下面的流程图描述旧砖墙材质从输入证据到 runtime 的路径。图中把模型推理放在离线或编辑器阶段,把 renderer 消费的对象收束到材质包和 fallback 包。

这个流程的关键路径是 PBR Maps Masks GraphValidation Renders。模型输出后,系统要在固定光照球、斜向硬光、低角度 grazing light、不同曝光和不同 mip level 下渲染预览。旧砖墙如果在正面漫射光下自然,但在斜向光下高光像塑料,问题多半出在 roughness 或 coat 参数。如果远距离出现闪烁,问题可能来自 normal 高频、mipmap 生成或压缩格式。验证渲染负责把材质通道错误转成可观察图像症状。

训练数据阶段要记录来源、授权、尺度和通道定义。砖墙照片来自真实拍摄,合成材质来自程序生成,扫描材质来自 photogrammetry 或专业设备,它们的尺度、白平衡、光照条件和通道规范不同。把这些数据混合训练时,元数据必须保留:物理尺寸、tile 尺寸、通道颜色空间、normal map handedness、roughness 是否线性、height 的单位范围。缺少这些元数据,模型可能生成视觉上合理但物理尺度混乱的材质。

模型推理阶段要输出置信信息。旧砖墙照片中被阴影遮挡的砂浆缝,模型也许会补出 normal 和 roughness;这些区域来自推断,置信度应低于被多角度观测支持的砖面。置信信息可以表现为 confidence map、区域标签、候选版本或验证报告。artist override 应优先作用在低置信区域,例如手动压低湿润 mask、重画苔藓边界、限制 height 范围。

材质导出阶段要把 ML 输出固定到资产契约中。资产契约指 renderer、编辑器和构建系统共同承认的字段:贴图路径、通道语义、颜色空间、采样器、压缩格式、shader graph 版本、fallback 材质、调试预览图和模型来源记录。旧砖墙导出为 glTF 运行时材质时,可以落到 base color、normal、metallic-roughness 等标准字段;导出为 MaterialX 时,可以保留更丰富的节点图、程序 pattern 和 shading model 信息。选择哪种格式,取决于目标 renderer 能消费多少信息。

Artist override 是 ML 材质管线的生产安全阀。美术通常需要锁定品牌色、风格化方向、磨损程度和叙事细节。旧砖墙若用于写实废弃工厂,美术可能强化污渍和苔藓;若用于产品展示背景,则需要减少强对比裂纹。override 层应覆盖模型输出参数,并保留可追踪记录:哪些通道来自模型,哪些通道被人工修改,哪些 mask 被锁定。后续重新推理时,系统应保护人工锁定区域。

Runtime fallback 要在资产导出时同时生成。第一层 fallback 是普通 PBR 贴图:即使目标平台没有 neural shader 支持,也能渲染可接受结果。第二层 fallback 是更低分辨率或更少通道的材质包,用于移动端、Web 或内存受限设备。第三层 fallback 是视觉策略,例如禁用湿润 coat、合并 AO 到 base color、降低 normal 强度。fallback 的核心是保持材质身份一致:砖仍像砖,砂浆仍有缝隙,苔藓仍有区域分布,只是局部真实感下降。

实时神经材质需要额外接入点。若旧砖墙采用 neural texture compression,资产包可能包含 latent texture、网络权重和解码 shader。相关研究如 Random-Access Neural Compression of Material Textures 强调随机访问和实时按需解码,因为 fragment shader 在任意 UV 处采样,材质压缩必须适配 mip、filtering 和并行采样。工程接入时要测量解码开销、寄存器压力、缓存命中、显存节省和画质噪声。节省显存只是局部证据,frame 内总成本才决定是否采用。

调试工具在这条管线中回答具体问题。RenderDoc 可以检查 draw call 中绑定了哪组 texture、sampler 和 pipeline state;Nsight 或 vendor profiler 可以观察 shader 时间、texture bandwidth、occupancy 和 cache 行为;编辑器 preview 可以比较模型输出与 artist override;离线 validation 可以批量渲染不同光照下的差异图。工具证据要和问题绑定:绑定错通道看 resource state,画质漂移看 validation render,性能超预算看 GPU timing 和 shader cost。

139.4 模型泛化与跨场景适应性

ML 材质模型的泛化指模型在训练分布之外仍能产生可用材质的能力。对 shading 管线而言,泛化表现为五类稳定性:光照稳定、尺度稳定、材质类别稳定、数据分布稳定和平台性能稳定。旧砖墙在训练集里可能很多,湿润砖墙、苔藓砖墙、低光手机照片和风格化砖墙则可能分布稀疏。泛化评估要把这些因素分开测。

光照稳定性检查材质是否把光照和材质拆开。旧砖墙照片若在暖色夕阳下拍摄,模型可能把暖光写进 base color,导致白光环境中依然偏橙。检查顺序是:先在中性环境光下渲染 base color,再用不同方向的白色 area light 渲染,再观察高光和阴影是否随光源移动。base color 里的阴影残留、roughness 的区域误判、normal 的方向错误,都会在 relight 中放大。

尺度稳定性检查模型是否理解材质的物理尺寸。砖块有实际大小,砂浆缝宽也有尺度。模型从 512×512 小图生成 4K 贴图时,可能让砖块尺寸漂移,或把毛孔级噪声放大成裂缝。检查时要固定 UV 密度,例如每米多少 texel,再在 0.5 米、2 米和 10 米观察同一材质。近景看微表面,中景看砖块结构,远景看 mip 和重复图案。尺度稳定性直接影响 LOD、mipmap 和 streaming 策略。

材质类别稳定性检查模型是否把相似视觉模式误归类。湿砖、油漆砖、陶瓷砖和旧金属在单张照片中都可能有暗区和高光。模型若把潮湿砖面误判为金属,会输出偏高 metallic 或过低 roughness。PBR 材质中 metallic 通道对能量分布影响很大,错误会让 diffuse 减弱、反射变强。旧砖墙这类非金属材质应把 metallic 固定为接近零,除非输入明确包含金属嵌件。

数据分布稳定性检查训练集和目标资产之间的差距。合成数据容易通道干净、标签准确,但噪声、污渍和相机响应不真实;真实照片细节丰富,但光照和材质纠缠;扫描数据质量高,但成本高且类别有限。训练集偏差会转移到输出。旧砖墙模型如果主要由室内干砖训练,户外湿砖的苔藓、雨痕和泥土可能生成不足。评估时要按材质类别、拍摄条件、光照条件和通道质量切分验证集。

平台性能稳定性检查模型在不同 GPU 和 API 上的代价。离线生成的材质在 runtime 只是普通贴图,平台风险主要来自贴图尺寸、压缩格式和采样次数。实时神经材质会引入矩阵运算、额外 buffer、更多 shader 指令和可能的专用硬件依赖。桌面 GPU、移动 GPU、WebGPU、console 和云渲染的能力差异会改变选择。工程方案应把神经路径做成 feature tier:高端路径启用 neural decode 或 neural material,中端路径使用烘焙贴图,低端路径使用合并通道和简化 shading。

泛化评估需要一组可复用指标。第一组是通道指标,例如 roughness 范围、normal 长度、height 频谱、tile seam 差异。第二组是渲染指标,例如固定光照下的目标图差异、多个光照下的稳定性、temporal flicker、mip 过渡。第三组是美术指标,例如可编辑 mask 是否清楚、参数是否可控、候选结果是否覆盖预期风格。第四组是性能指标,例如 GPU pass time、显存、采样次数、shader instruction、构建时间和缓存命中。

旧砖墙的评估可以采用三张验证图。第一张是正面漫射光,用于检查 base color 和大结构;第二张是低角度硬光,用于检查 normal、height 和 roughness;第三张是远距离斜视,用于检查 mip、tile seam 和重复。若三张图都稳定,再把材质放入真实场景中检查邻接关系:砖墙旁边的金属管、玻璃窗和地面积水能暴露颜色空间、roughness 标定和反射强度问题。

跨场景适应的最终判断来自差异定位。若只在某个 light rig 下失败,优先检查光照分离和 BRDF fitting;若只在远景失败,优先检查 mipmap、normal 高频和 tileability;若只在移动端失败,优先检查压缩格式、通道合并和 shader cost;若 artist 难以修正,优先检查 graph 语义和 mask 输出。这样,泛化问题会落回管线中的具体阶段,而非停留在“模型效果不稳”的泛泛描述。

139.5 ML 驱动的材质表现对比

ML 驱动材质、扫描材质和手工材质的差异,不能用单张预览图判断。材质进入 renderer 后,要比较真实感、可控性、成本、可迁移性和失败方式。旧砖墙在 hero close-up、开放世界重复墙面、移动端场景和风格化游戏中,会对应不同最佳方案。

材质来源真实感优势可控性优势主要成本典型失败方式适合场景
ML 生成材质快速生成多版本,能补全缺失通道通过文本、mask、候选图和 override 快速探索数据集、模型训练、验证和管线接入光照写入 base color、roughness 误判、尺度漂移大量变体、概念探索、低成本资产扩充
扫描材质物理观测强,微表面细节可信对真实物体复刻稳定采集设备、清理、去光照、存储扫描范围有限、重复平铺困难、后期修正成本高写实近景、产品可视化、film asset
手工材质风格目标明确,图层语义清楚美术完全控制形状、色彩和叙事细节人工时间、经验依赖、资产规模大量变体成本高、真实微细节不足风格化项目、hero asset、强 art direction

ML 生成材质的真实感来自训练分布和生成 prior。它擅长快速给出“像旧砖墙”的统计细节,例如裂纹、污渍、色彩变化和苔藓分布。它的弱点也来自 prior:模型可能把常见砖墙模式套到特殊资产上,导致场景叙事细节不足。旧砖墙如果属于某个特定建筑,缺角、涂鸦、修补痕迹和历史污渍需要人工锁定或实拍证据支撑。

扫描材质的真实感来自真实采样。多光照扫描能提供可靠的 normal、roughness 和 albedo 分离,近景可信度高。它的问题在于资产覆盖范围和清理成本。扫描一小块砖墙容易,生成可无限扩展且不重复的整面墙更难。扫描材质也需要去除拍摄光照、校正颜色、处理 seam、生成 mip 和压缩格式。扫描数据进入 runtime 之前,仍要经过完整材质管线。

手工材质的可控性最高。美术可以明确决定砖块形状、裂纹走向、苔藓区域、湿润程度和风格化色彩。它的成本随资产数量增长。开放世界中上百种墙面变体若全靠手工,会消耗大量制作时间。ML 可以在这里承担初稿和变体生成,手工层负责风格收敛、叙事细节和最终质量。

对比时最有价值的测试是统一 shader 和统一光照。把 ML 生成、扫描和手工三种旧砖墙都导出到同一个 metal/roughness shader,使用同一组 HDR environment、同一盏低角度灯、同一套 mip 和压缩格式,再比较画面。这样可以把材质数据差异和 renderer 差异分开。若 ML 版本在原始预览中好看,统一 shader 后显得塑料感强,说明生成图里混入了 baked lighting 或 roughness 估计不稳。

可控性对比要看编辑动作的粒度。ML 版本如果只有一组最终贴图,修改苔藓范围需要重画 mask 或重新推理;如果输出了 moss_maskwetness_mask,artist 可以局部调参。扫描版本如果保留高质量原始通道,可以做物理一致的调整;如果只保留烘焙合成图,可控性会下降。手工版本的节点语义清晰,长期维护成本低,但初始细节可能需要额外程序纹理或照片源补强。

成本对比要放入整个资产生命周期。ML 的成本包括数据准备、训练、推理服务、验证、人工修正、导出适配和失败回滚。扫描的成本包括设备、场地、校色、去光照、贴图清理和存储。手工的成本包括美术时间、review、版本迭代和变体扩展。项目规模越大,ML 的批量优势越明显;hero asset 越重要,扫描和手工修正的价值越高。

最终选择可以按三步判断。第一步看目标是否需要物理复刻:产品、建筑复原和近景写实优先扫描或高质量实拍估计。第二步看是否需要大量变体:开放世界、程序关卡和快速概念探索适合 ML 生成加人工筛选。第三步看是否需要强风格控制:风格化项目应保留手工 graph 和 override 层,把 ML 当作候选纹理、mask 或细节源。

旧砖墙的推荐生产策略是混合策略。先用 ML 从描述和参考图生成多组候选,筛选结构和色彩最接近目标的一组;再用 artist override 锁定砖块比例、苔藓区域和湿润程度;最后导出普通 PBR 贴图、可编辑 MaterialX graph 和低端 fallback。若场景有近景镜头,再补充局部扫描或手工细节。这样能把 ML 的速度、扫描的真实观测和手工的可控性放到同一条材质管线中。

最小自检任务

给定一个 ML 材质工具,它从一张旧砖墙照片输出 base color、normal、roughness、height 和 wetness_mask。在编辑器预览中,正面光照效果自然;放入夜晚街景后,墙面在路灯斜照下出现塑料感,高光区域随着相机移动闪烁,移动端版本禁用 height 后墙面失去潮湿感。请设计一个排查顺序,判断问题分别来自材质通道、shader graph、mipmap / 压缩、平台 fallback 还是模型泛化,并说明如何修正资产导出。

答案要点

先固定 renderer 条件,把 ML 输出、扫描参考或手工参考放进同一个 PBR shader 和同一组 light rig 中比较。正面光照自然只能证明 base color 和大结构初步成立,斜向路灯下塑料感要优先检查 roughness、coat 或 wetness 混合关系。

接着分通道查看。base color 应去除阴影和高光残留;normal 应保持方向一致且强度受控;roughness 的湿润区域可以降低,但砖和砂浆的非湿润区域应保留粗糙扩散;height 的尺度要和砖缝宽度匹配。若 metallic 被误设为高值,应固定为接近零。

高光随相机移动闪烁时,检查 mipmap、normal 高频、roughness 高频和压缩格式。把 normal 强度降低、对 roughness 做更稳定的 mip 过滤、检查 tile seam,再比较闪烁是否下降。若只在远景或斜视出现,问题多半在 mip 和采样路径。

移动端禁用 height 后潮湿感消失,说明湿润表现过度依赖 height 或 parallax。fallback 应把湿润信息同时写入 roughness、base color 的轻微变暗和 wetness_mask,让低端路径即使关闭 height 仍保留材质身份。高端路径可以保留 height 或 coat,低端路径使用普通 PBR 混合。

最后检查模型泛化。夜晚街景与训练预览光照差距较大,模型可能把原照片光照写入 base color,或把湿润区域粗糙度估得过低。修正方式是重新生成去光照 base color、约束 roughness 范围、输出可编辑 mask,并在导出包中同时保存普通 PBR 贴图、可编辑 graph、validation renders 和移动端 fallback。

本章知识点总结

  • 材质表示:ML 材质最终要落到 renderer 可消费的贴图、参数、SVBRDF 或 shader graph。
  • 数据先验:模型会用训练分布补足输入缺失,输出通道需要区分输入证据和先验推断。
  • 通道拆分:稳定 shading 依赖 base color、normal、roughness、height 等通道的语义分离。
  • 生成角色:ML 可以作为生成器、估计器或压缩器,三种角色的输入证据和 runtime 位置不同。
  • Shader 生成:工程上更稳定的路径是输出可解释参数或材质图,再由 shader generator 生成目标代码。
  • BRDF 拟合:材质参数必须先绑定到明确 shading model,模型表达能力决定拟合边界。
  • Graph 语义:可维护 shader graph 应保留 mask、混合关系和可编辑参数,方便 artist override。
  • 管线集成:训练数据、模型推理、验证渲染、材质导出、人工修正和 fallback 构成完整 ML 材质路径。
  • 验证渲染:不同光照、距离和 mip level 的预览能把通道错误转成可观察图像症状。
  • 泛化评估:光照、尺度、材质类别、数据分布和平台性能要分开检查。
  • 平台成本:实时神经材质会改变 shader 指令、显存、采样和硬件能力需求。
  • 来源对比:ML 生成适合变体和初稿,扫描材质适合物理复刻,手工材质适合强风格控制。
  • 混合策略:生产中常用 ML 初稿、扫描证据和手工 override 组合成可导出材质资产。