5.3 纹理与过程材质:给参数喂上世界


5.3 纹理与过程材质:给参数喂上世界

前两节的 BSDF 参数是常数——那是一块"处处均匀"的假想材质。真实表面处处不同:木纹疏密、锈斑深浅、织物经纬。本节处理这种"随位置变化"的两个来源:纹理(把测量或绘制的二维数据贴上去)与过程材质(用数学函数现场生成)。前者锚定真实,后者释放想象,现代材质系统两者混用。读完本节,你会把每张贴图通道看成 5.1 某个物理参数的空间采样,而不是"一张装饰图片"。

纹理通道的物理语义:每张图都是一个参数的场

PBR 工作流的第一课是把通道与物理量严格对齐。对齐错了,渲染结果不是"风格化"而是"物理错":

反照率图 albedo → 表面固有色 ρ,不许含光照与阴影信息 粗糙度图 rough → 微面元法线分布的宽度参数,驱动 5.1 的 D 函数 金属度图 metal → 导体与介电质两个 BSDF 的插值权重 法线贴图 normal → 微观法线扰动,扰动的是着色法线而非几何法线 高度/置换图 → 真实移动命中点,影响轮廓与自遮挡

两处最经典的误用值得点名。反照率图里画了阴影和高光(从照片直接取色),路径追踪会把这些"假光照"再叠加真实光照计算一遍——画面出现双重阴影、双重高光,怎么调都"脏"。法线贴图被当成几何(只扰动了着色法线),于是阴影射线、反射射线完全感知不到这些凹凸——球面上贴一张砖墙法线图,轮廓仍是完美圆,阴影边缘平滑如新;要让它参与轮廓与自遮挡,得换置换贴图并真的细分几何。通道语义对齐的本质,是保证"美术给的每张图都落在渲染方程某个确切的槽位上"。

过滤:路径追踪比光栅化更挑食

纹理采样的经典难题在路径追踪下变本加厉。光栅化里相邻像素的纹理坐标是连续的,MIP 链加双线性过滤就能压住走样;路径追踪里一次弹跳把射线甩到场景任意角落,相邻样本的纹理坐标毫无连续性可言,直接采样高频贴图就是满屏噪点。工业解法是射线差分:沿着上一段路径的采样历史估算纹理坐标的变化率,据此挑选 MIP 层级——变化剧烈就取更模糊的层级,把高频细节预过滤掉。这个机制在实时管线里由光线查询的派生接口提供,离线渲染器则自己沿路径传递差分。各向异性过滤同样重要:掠射角下贴图在切向被极度压缩,各向同性过滤只能给足模糊,各向异性过滤沿压缩方向补采样,地板上的木纹才能在低角度看清楚而不糊成一团。

另一个常见坑是纹理坐标不连续:UV 展开接缝处、多材质接界处,差分算出的变化率爆表,MIP 选择一路冲到最模糊层级,接缝两侧出现一圈"脏带"。解法是给差分设上限、或在接缝处使用跨面连续的三平面投影映射——用三个轴向的投影加权混合,彻底绕开 UV 缝。

图:从贴图到着色的纹理流水线

图:从贴图到着色的纹理流水线

过程材质:用函数"长"出细节

纹理的另一面是过程材质:不存任何图,着色时按位置现场计算。原材料是一族连续的伪随机噪声——以梯度噪声为代表,任意位置可求值、天然无缝、各向同性。单个噪声太"绵",工程上用分形叠加(多个倍频程叠加,每层频率翻倍、幅度减半)堆出自然纹理的层次感。下面这段伪码是最经典的大理石配方:

function marble(p): sum = 0; amp = 1; freq = 1 for octave in 1..6: # 分形叠加六层 sum = sum + amp * noise(p * freq) amp = amp * 0.5 freq = freq * 2 vein = sin((p.x + sum * 6) * 3) # 用噪声扰动正弦相位 t = pow(abs(vein), 0.6) # 尖锐化成石纹 return mix(白, 灰蓝, t) # 输出反照率,喂给 BSDF

读法:正弦给出大理石的"层理",分形噪声负责把层理搅出自然的扭曲——只调那个系数 6,纹理就从"规整年轮"过渡到"狂放矿脉"。过程路线的三笔账要心里有数。优点:任意分辨率(放大不糊)、天然三维无缝(不用管 UV)、参数即变体(一块配方产出整个材质库)。代价:逐像素现场求值比查图贵,实时管线通常烘焙成贴图再用;艺术控制更间接——美术对"调噪声参数"的掌控远不如直接手绘。所以现代工业主流是混合:过程工具在离线阶段"长"出贴图,运行时按纹理路线消费。

实验台:旧金属表面的双轨实现

把本节做成一个完整对照实验。目标材质:一块边缘磨亮、中心锈蚀的旧铁板。纹理路线:在雕刻软件里手绘四张图——反照率图(中心锈橙、边缘铁灰)、粗糙度图(锈区 0.8、磨亮区 0.25)、金属度图(锈区趋零、亮区趋一)、法线图(锈斑微凸)——导入引擎直接出图,半天工作量,可控性拉满。过程路线:写一个按世界坐标混合的配方,用两层分形噪声生成锈斑掩码(低频定分布、高频补细节),掩码驱动金属度与粗糙度插值,反照率在铁灰与锈橙间按掩码混合,边缘的"磨亮"用距表面曲率场增强——两天工作量,但同一配方换三个种子就是三块不同的铁板。结果对比:单件资产纹理路线效率碾压;量产变体与超近距离特写(贴图分辨率见底)过程路线完胜。解读:这不是二选一,工业管线让过程工具当"贴图工厂"、运行时走纹理通道。变式自查:若需求是"全球任意城市的地形材质"(无法预烘焙、范围无限),答案显然只能是过程路线——遥感级别的问题逼出过程化的价值。

色彩空间与数据通道:两笔最容易记错的账

通道图有两类截然不同的账本。反照率是人眼感知的颜色,存储时经过编码(常见的 sRGB 类变换),采样后必须先解码回线性域再进方程;粗糙度、金属度、高度是纯数据,从来不该被编码——若管线把数据图也按颜色图解码,粗糙度中段会被系统性拉偏,材质手感全错。工业惯例因此给每张图贴上用途标签,导入时决定编不编码:这笔账记错的表现非常隐蔽——单看每张图都正常,组合起来"怎么调都不像",根因不在美术在管线。

另一笔账是纹素密度。路径追踪里特写镜头的射线落点是连续的,贴图分辨率再高也终有见底的时候:一平方米铺 1024 见方的图,半米外看尚可,五厘米外纹素比像素还大,过滤再讲究也只是把糊抹匀。可行解只有两条:按镜头距离做层级细分,或把细节交给过程配方现场生成。把"贴图管中远景、过程管特写"写进资产规范,比事后抢救有效得多。

顺带了断一桩小争论:法线图双线性插值之后,法线长度会偏离 1,着色前重新归一化是标准动作。省掉这一步的代价是斜坡上高光忽强忽弱,特写下尤其扎眼——省一次乘除,赔一个高光,不划算。

两条账合起来,资产纪律可以写成三行:其一,每张图入库必须带用途标签(颜色或数据),管线按标签决定解码;其二,每个资产必须声明纹素密度(每米多少纹素),镜头距离预算按它推算;其三,法线图一律在着色前归一化。三行都是五分钟的规矩,救的都是按天计的排障——材质管线的稳定性靠的就是这种不起眼的小闸门。自查题:一张金属度图被错误按颜色解码后,画面最先露馅的是金属与非金属交界处——金属度本该非零即一,解码把它拉成中间灰,交界处出现"半金属"的脏边。看到脏边先查金属度的解码链,十有八九命中。

本节要点回顾

  • 每张通道图都是 5.1 某个物理参数的空间场:反照率禁带光照、粗糙度驱动分布宽度、金属度做导体插值。
  • 路径追踪的过滤更挑食:射线差分选 MIP、各向异性补掠射、接缝处限差分——三件套缺一就噪点与脏带齐飞。
  • 法线贴图不改变几何,要轮廓与自遮挡就得置换;这是"视觉对但物理错"的典型边界。
  • 过程材质的原料是分形噪声,正弦加噪声的经典配方能"长"出大理石一类自然纹理;代价是贵与难控。
  • 工业主流是混合:过程工具离线产图,运行时按纹理消费;无限范围场景才是过程的独家领地。

材质层到此齐装:语言、机理、数据俱全。下一章把所有零件拧成一台完整的机器——路径追踪器,从零写到收敛。


作者与出处
原作者: 灏天文库
来源:灏天文库
整理: 灏天文库整理
由灏天文库平台收录,内容或由平台用户上传,仅供学习交流
发布者: 作者: 灏天文库 转发
评论区 (0)
U