水彩画风格游戏美术专题进阶技术精华4 / 20 已发布

纸张材质与笔触模拟技术:从贴图叠加到程序化生成

手工扫描素材库 vs 程序化噪声生成 · 笔触贴图库分类与管理 · 程序化方案「千篇一律」批评

· 19 分钟阅读·1.7k 阅读·95 赞
纸张材质与笔触模拟技术:从贴图叠加到程序化生成 — 水彩画风格游戏美术技术专题

纸张材质与笔触模拟技术:从贴图叠加到程序化生成

水彩之所以「像水彩」,一半靠纸,一半靠笔

很多团队能写出一套让颜色正确晕开的 Shader,画面却始终「不太像水彩」。问题往往不在光照模型,而在两个更底层的东西:纸张的纤维纹理,以及笔尖留下的湿边与飞白。这两者构成了水彩的触觉记忆——观众未必说得清,但一眼就能察觉「不对劲」。

本文讨论这两类纹理的两条获取路径:手工扫描与程序化生成。它服务两类读者:想快速搭起资源库的初学者,以及要设计可复用材质体系的技术美术。

两条路径的本质差异

先给判断框架。手工扫描与程序化生成,不是「先进替代落后」的关系,而是适用场景不同的两种工具。

维度手工扫描程序化生成
真实度高,包含真实的纤维与颜料沉积中,取决于噪声模型与合成层数
产能低,受限于扫描与修图工时高,一次写好多处复用
可控性低,一旦定稿难以调整高,参数实时可调
体量大,受分辨率与张数限制小,靠计算而非存储
风格一致性易漂移,每张纸都不同易统一,同一套参数产出同一种纸

一句话选型:质感要求高且用量少的资产(封面、关键场景)用手工扫描;用量大、需要参数化调整的资产(可交互场景、程序化生成的地形)用程序化。真正的问题从来不是「选哪个」,而是「在哪一层用哪个」。

纸张纹理:获取与处理

纸张纹理决定了颜料的沉积方式与边缘的破碎感。同样是水彩,粗纹纸、中纹纸与细纹纸呈现的晕染形态完全不同——粗纹会形成明显的颗粒沉积,细纹则接近平滑的渐层。

手工扫描路线

基本流程是:选纸 → 用纯水或淡色扫一遍让纤维立起来 → 高分辨率扫描(建议光学分辨率尽可能高、避免过度的降噪算法介入)→ 转成灰度高度图 → 作为法线或位移输入。要点在于「保留噪声」:扫描后的自动降噪会把最有价值的纤维细节一起抹掉,宁可保留一些瑕疵。

程序化生成路线

程序化纸纹通常由多层噪声叠加而成:低频噪声提供大块的明暗起伏,高频噪声模拟纤维的细密纹理,再叠加一层方向性噪声模拟纤维的方向偏好。关键在于「多尺度混合」——单一频率的噪声看起来会像电子噪点而非纸张。

常见坑:把纸纹当成一张固定的「叠加贴图」平铺在整个画面上。真实的纸纹会随视角、光照方向、颜料湿度变化,固定平铺会让画面显得像贴了一张纸的膜,而不是画在纸上。更好的做法是把纸纹作为调制层,参与颜料的沉积计算。

笔触贴图库:分类与管理

笔触贴图是水彩的「手写签名」。一个有体系的笔触库,能让团队在不增加 Shader 复杂度的情况下,显著提升画面的丰富度。

建议按三个维度组织笔触库:

  • 按含水率:干笔(飞白、枯笔)→ 半干 → 湿笔(大面积晕染)。不同含水率决定边缘是「毛躁」还是「柔化」。
  • 按形状:圆头、平头、扇形、点状。扇形笔用于过渡,平头笔用于块面,圆头笔用于勾线。
  • 按用途:铺色、叠色、点缀、破坏(制造随机斑驳)。这一维度最贴近实际生产,建议作为主索引。

管理上,把笔触贴图组织成图集并配合 UV 索引,可以在保持笔触多样性的同时维持材质统一——这对后续的合批与性能优化至关重要。

架构提示:让笔触库成为「数据」而不是「硬编码」。用一张配置表描述每个笔触的含水率、形状、尺寸范围,Shader 与工具都从这张表读取。这样美术加一个新笔触不需要改代码,技术美术调一个新参数不需要重新导出资源。

程序化噪声参数如何影响最终效果

程序化方案的可控性来自参数,但也意味着「调参」成为一项核心工作。下面这张表总结了主要参数的作用方向,可以作为调参的起点。

参数作用调高的效果典型误区
频率(Frequency)控制纹理的疏密尺度纹理更细密过高会像噪点,失去纸感
层数(Octaves)控制细节的丰富度细节更多、更自然层数过多显著增加采样开销
对比度(Contrast)控制纹理的强弱纸纹更明显过强会让画面显得脏
方向性(Anisotropy)控制纤维的方向偏好纤维方向感更强方向与画面构图冲突会显突兀
湿度(Wetness)控制晕染扩散的强度边缘更柔、扩散更远过高会糊掉形体轮廓

调参的核心原则是「保守起步、单项推进」:每次只改一个参数,观察它对画面的影响,避免多参数同时调整导致无法归因。

混合策略:让两条路径在同一个画面里共存

成熟的团队很少二选一,而是让两条路径在同一画面里各司其职。常见组合是:程序化生成负责「大面积、可重复」的底层质感(纸纹、基础笔触分布),手工资产负责「小面积、高辨识」的点睛部分(角色面部笔触、场景的视觉焦点)。

这样做的技术前提是两套资产的「接口」要对齐:颜色空间一致、纸纹尺度一致、笔触的含水率与边缘特征一致。接口不对齐时,画面会出现明显的「两个世界拼接」感,这正是许多混合方案失败的根本原因。

一分钟速览:初学者的最小可行资源库

不想一开始就投入大量扫描与调参,可以先用这套最小组合跑起来:

  1. 扫描或下载三张纸纹(粗、中、细各一张),转成灰度高度图。
  2. 准备八到十二个笔触贴图,覆盖干笔、湿笔、铺色、点缀四类用途。
  3. 先用固定纸纹 + 少量笔触搭出画面,再逐步用程序化生成替换可重复的部分。

中级路径:把纹理体系做成可扩展资产

有经验的技术美术应当把纹理从「一堆文件」升级为「一套体系」,核心是三个决定:

决定一——分层职责。明确哪一层用扫描、哪一层用程序化,并在文档里固定下来。混合方案的失败往往不是技术问题,而是职责不清导致的接口漂移。

决定二——参数外置。所有可调参数(频率、层数、湿度等)都通过配置表暴露,而非写死在 Shader 中。这是让美术能独立迭代、工程师能快速调试的前提。

决定三——性能预算。程序化纹理的采样开销与层数成正比,务必为它设定预算上限,并准备低配降级方案(减少层数、用预烘焙贴图替代实时计算)。

常见坑:为了追求极致的纸纹真实度而无限增加噪声层数,结果在移动端直接掉帧。记住:观众感知到的是「像不像纸」,而不是「纸纹有多少层」。超出感知阈值的复杂度是纯浪费。

争议观察:程序化生成的纹理是否会导致画面「千篇一律」

一种批评认为,程序化方案产出的是「统计意义上的平均水彩」——它复现了水彩的一般规律,却缺少人为的偶然与失误,长期看会让大量作品趋于同质。另一种看法是,同质化的根源不在程序化本身,而在创作者是否愿意投入时间去调参和做差异化设计;工具不会限制表达,懒惰才会。

我们的判断偏向后者,但要补一个限定:程序化确实降低了「做出合格水彩」的门槛,也因此提高了「做出被记住的水彩」的难度。当所有人都能用一套开源 Shader 得到相似的纸纹与晕染时,真正的差异化必然回到两处——一是笔触的个性化设计,二是这些笔触如何服务于具体的叙事与情绪。技术会把地面抬高,但天花板仍由审美决定。

常见问题

纸纹应该作为叠加贴图还是作为调制层?

建议作为调制层。固定平铺的叠加贴图会让画面像贴了一张纸的膜,因为它不随视角、光照与颜料湿度变化。让纸纹参与颜料的沉积计算,才能真正形成「画在纸上」的观感,代价是 Shader 会稍复杂一些。

程序化噪声层数越多越好吗?

不是。层数增加会带来细节提升,但也成倍增加采样开销,而且超出感知阈值后玩家根本看不出差别。建议按目标平台设定层数上限,并为低配准备降级方案(减层或用预烘焙贴图),把省下的算力留给更影响观感的环节。

手工扫描和程序化生成可以混用吗?

可以,而且是成熟团队的常见做法。关键前提是两套资产的接口要对齐——颜色空间、纸纹尺度、笔触含水率与边缘特征都要一致。接口不对齐会出现明显的拼接感,所以建议在美术规范里就把分层职责写清楚。

关键词

纸张纹理贴图笔触贴图库程序化噪声生成材质混合技术 资产复用策略纸纹高度图多尺度噪声含水率分类 笔触图集 UV 索引参数外置频率与层数方向性噪声 湿度扩散参数混合工作流接口感知阈值低配降级方案
文章标签
水彩游戏美术实时水彩渲染 Shader湿染扩散算法纸张纤维纹理模拟水彩笔触贴图水彩限色板设计治愈系视觉叙事东方水墨 vs 西方水彩跨引擎水彩实现Unity 水彩 Shader移动端水彩优化2D 角色 3D 场景融合
更多专题全部专题
觉得有价值?点赞或收藏支持内容持续产出。
← 返回专题:水彩画风格游戏美术专题