全部文章
教程 · 7 min read

顶点绘制如何混合材质以消除可见接缝——胜过线性 alpha 的高度混合技巧、把泥画进草里、把苔藓画上岩石、性能考量,以及它在贴花与平铺贴图旁边落在何处。

Aerial view of a forested river valley crossed by a steel bridge and a road

简而言之: 一种材质遇上另一种处的硬接缝——草撞上岩石、泥遇上石头——是业余环境最大的破绽之一。顶点绘制直接在网格上混合材 质来抹去那些接缝,而"高度混合"让过渡看起来自然,而非像一次渐隐。本文解释顶点混合如何运作、把好过渡与糊烂过渡分开的高度混合技 巧、在哪里绘制它、它在运行时花费什么,以及它如何与贴花和平铺贴图相配。

一片河口三角洲,水、淤泥与植被彼此交融 自然没有硬边。水遇淤泥遇草之处,过渡是不规则且交错的——正是顶点混合所重建的,好让你的材质不再以笔直、显眼的线相遇。

## 问题:接缝出卖一切

真实表面不规则地过渡——草爬进碎石、泥在低处积成水洼、苔藓爬上岩石的背阴面。两种材质之间一条硬直线立刻读作假,无论每 张贴图多好。

你可以有两张照片级贴图,却仍得到一个看着不对的环境,因为二者之间的过渡才是可信度所在。在真实世界里,材质相互渗透:尘土冲进裂 缝、草朝一条路径变稀、雪聚在岩架上。一条沿着锐利多边形边缘从草切换到岩石的游戏表面,在尖叫"由瓦片拼成"。顶点绘制是溶解那些边缘 的首要工具,让材质像它们在户外那样相互渗流。

## 顶点混合如何运作

每个顶点存储颜色/alpha 数据;一个混合材质读取它,在表面上逐像素混合两种或更多贴图。在引擎内绘制顶点数据,材质就在你绘 制之处过渡,无需额外 UV 或几何。

网格上的每个顶点都能携带一点额外数据——顶点色,通常四个通道。一个混合材质把那数据解读为一张遮罩:通道强处,显示材质 A;弱处,显 示材质 B;并在其间插值。因为你在编辑器里直接在模型上绘制顶点数据,你便用手控制过渡,恰在你想要之处——墙基处的泥、地板角上的磨损、 巨石一侧的苔藓。它不花额外的 UV 集,也不加几何(除了拥有足够顶点来把细节绘制进去),这正是它作为地形与大网格的主力混合技法的原 因。

## 高度混合技巧

别在 alpha 上线性混合——用一张高度图来混合,好让上层材质先填满裂缝与低处。线性混合给出柔软糊烂的渐隐;高度混合给出锐利、 自然、交错的过渡。

这是你混合材质单个最重要的升级,也是把专业过渡与涂糊过渡分开的东西。一个天真的混合沿遮罩在两张贴图间线性渐隐,产生柔软、幽灵般的 重叠,看着像 Photoshop 的渐变。而高度混合改用材质的高度/置换信息来决定过渡:进入的材质先沉进处——砂浆缝、裂缝、凹痕——再覆 盖高点,恰如真实的尘土、沙或雪堆积。结果是一道锐利、不规则、可信的边界,而非一次模糊的渐隐。若你的混合看着糊烂,加入一个基于高度 的过渡几乎总是解药。

森林的边缘遇上开阔地,植被变稀 森林边缘是野外的一次混合:树线不在一条线上停住,它散开并变稀。基于高度的顶点混合重建那道参差、交错的过渡,而非一道干净的边界。

## 在哪里绘制它

在表面自然互动之处绘制过渡——墙基(泥/潮)、地板的角与边(磨损)、岩石的背阴面(苔藓)、低处(泥/水洼),以及任何两个地 形层相遇之处。

顶点混合在眼睛检查真实感之处回报最大:接触点与磨损区。几处始终该考虑的高价值位置——爬上墙基的尘与湿;脚落之处的地板与台阶角上的擦 痕与外露材质;岩石北/背阴面的苔藓与地衣;最低点的泥与积水;以及一处景观上地形层之间的接缝。这些正是讲故事者所装点的同样位置,因为 它们是一个地方展示其历史之处。绘制它们,一套干净、崭新模样的套件就骤然读作风化而真实。

## 性能与限制

混合材质每像素花费更多(它们采样多个贴图集),所以在过渡要紧之处用它,而非到处。顶点细节受网格密度所限——你只能画到顶点 所允许的那么细。

混合并非免费:一个双层或三层混合材质每像素采样数张贴图,所以比单一材质更贵。这在英雄地形和相机端详的表面上没问题,但把一个四层混 合一律套到每个网格上是在浪费 GPU。另一个限制是分辨率:顶点绘制只能细到网格有多密,所以一堵低模墙扛不起一道精细的绘制过渡——这就是 贴花登场、在其上加入更小尺度细节之处。在每个尺度用对的工具:宽过渡用顶点混合,锐利的局部细节用贴花。

## 它与别的工具如何相配

顶点混合处理中等尺度的材质过渡;平铺贴图廉价地提供基础细节;贴花加入太细而无法逐顶点绘制的锐利局部特征(裂缝、污渍、渗 漏)。它们叠层。

这些工具没有一个在竞争——它们分层。平铺贴图给你在大表面上负担得起的高频细节。顶点混合把那些平铺材质混合,好让它们不以硬线相遇。贴 花随后坐在其上,为顶点分辨率够不到的特定、锐利细节而设——一道裂缝、一处灼痕、一道接缝上的水渍。一个成熟的环境表面通常三者同时。把 可信的材质混合送进游戏——并让它烘焙成标准引擎材质,好让它在运行时不花费任何意外——正是 Numivo 被打造来化为例行公事 的那种表面工作,好让接缝消失,而无需为每一次两种材质的相遇写一个定制着色器。

## 值得偷的现场数字

  • 修好糊烂混合的升级:高度混合,而非线性 alpha
  • 顶点绘制细节上限 = 网格顶点密度——更密的网格,更细的绘制
  • 最高价值的绘制区:墙基、地板边、背阴岩石、低处
  • 混合材质成本随所采样的层数增长——把多层混合留给英雄表面
  • 完整堆栈:为局部细节用平铺基底 → 顶点混合 → 贴花

## 迷你问答

地形用顶点绘制还是 splat/权重图? 同样的想法,不同的存储——地形常用层权重图(一张贴图遮罩)而非顶点色,这把细节与网格密度解耦。 网格用顶点色;大地形常用层图。高度混合原理对两者都适用。

为什么我的混合看着柔软而糊烂? 你几乎肯定在 alpha 上线性混合。切换到由高度/置换驱动的混合,好让过渡先沉进低处,柔软便化作一道锐 利、自然的边缘。

多少混合层算太多? 两层便宜且覆盖大多数过渡;三层对地形常见;四层及以上变得昂贵且难以制作。若你需要更多,问问贴花或第二种材质会 否更胜任。

我需要为此写一个定制着色器吗? 混合逻辑足够标准,多数引擎与工具集都提供它,而烘焙成朴素引擎材质让运行时成本可预测。你很少需要定 制着色器代码——你需要的是高度混合的设置和一个合理的绘制之处。

接缝是可信环境被赢下或输掉之处。在表面真正互动之处绘制你的过渡,按高度而非平坦渐隐去混合,并在其周围叠上平铺与贴花——你的材质便会 像它们在世界里那样相遇:不规则地、交错地,且没有一条泄底的直线。