Apex Arena Devlog:顶点混合材质

我只是想简短地写一下我们在Apex Arena开发过程中早期创建的Vertex混合材料。 尽管不是100%唯一,但也有类似的材料,但我们进行了一些更改,以适应我们的开发风格和约束。


作为一个由两个人组成的团队,我们没有时间进行所有工作,特别是在尝试达到一定程度的图形保真度时。 相反,我们要做的是明智地使用有限的资源。 正因为如此,我们的Triplanar顶点混合材料才得以出现!

重要的是要注意,我们使用Unity ProBuilder封闭了关卡,Unity ProBuilder随附了自己内置的Vertex Painting工具。 这非常好,因为它使我们可以用可怕的扎眼颜色绘制网格物体,使材料可以读取并可以做奇特的事情!

第一步是使材料在两组纹理之间混合。 在上面的示例中,我设置了两种PBR材料,即沙子和木材,将它们混合在一起。 目前,它所做的只是检查是否有蓝色顶点着色,如果检测到该材料渲染的是木材而不是沙子。 它不是特别漂亮,但是即使到了这一点,您也可以感觉到我们要做什么,材料之间的平滑融合将使我们为表面增加变化并建立更多有趣的层次。

第二步,我想是最后一步,是使其基于高度。 与以前完全相同,但是现在,它不是使用线性渐变进行混合,而是对每种材料的高度图进行比较,并以更具说服力的方式将它们混合在一起。 您得到的是在沙子堆里偷看的木板。 在这一点上,该材料完全可以使用,并且可以在各种网格上使用。 我们可以将其用在我们想要将变体绘制成任何表面的表面上,例如要在干净和肮脏的木板之间混合的墙壁。

该材料添加了各种漂亮的技巧,使其完全适合我们的项目。 有时,我们希望能够根据高度图来控制其尝试融合的程度; 从技术上讲,它只调整其中一个高度图的值,理论上将其升高和降低。 在上方,您可以看到我在两个极端之间滑动。

它也不必如此二进制,因为我们可以控制顶点颜色的不透明度,因此我们能够在需要的地方绘制尽可能多的沙子。 在不透明度较低的情况下,我们可以在木材上覆盖一层薄薄的尘土沙土。

关于这种材料,我最喜欢的部分是三脚架。 UV是一种痛苦,当我们试图快速绘制场景细节时,我们要做的最后一件事就是确保我们的UV正确! 花了一些时间才能完成此工作,但是节省了UV上的时间,这是巨大的。 它具有使纹理比例在共享相同材质的所有对象之间保持一致的附加好处。 据我们所知,这是唯一的Triplanar Vertex混合PBR材料!

Triplanar带来了自己的问题,例如上面的木板,我们如何才能防止在将不同角度混合在一起的边缘附近出现明显的覆盖外观。 我们的解决方案不是最优雅的,但是我们可以控制混合距离,在上方可以看到调整后的结果看起来更干净。

任何用于地形的材料的一个典型问题是,在一定距离处平铺可能会非常明显,为了解决此问题,该材料将自身淡化为距离缩放版本。 在上面的示例中,它看起来很明显,在此演示中,我已将距离块放大了,但是在游戏过程中,它基本上是不可察觉的,因此我们可以将所有物体的材质用于任何物体,而无需考虑距离。

为了获得良好的外观效果,您也不需要高多边形数,您会失去精细的控制,但高度融合仍然看起来自然而自然。

另一个重要特征是能够独立更改任何一种材料的瓷砖比例。 这样,更少的时间用于调整纹理大小,而可以花费更多的时间来构建关卡!


就像我们在一开始就说过的那样,还有其他材料以类似的方式起作用。 资产商店中有一些顶点绘制工具,它们功能非常强大,功能强大,但缺乏三边形功能,事实证明这是我们工作流程不可或缺的。

因此,这就是材料的当前位置,在我们考虑完成之前,我们需要进行一些更改,例如添加视差遮挡贴图,但并非绝对必要。 我还想看看添加更多的层,我们有功能性的三层材料,但是它存在一些性能问题,使我们无法使用它。 如果有时间,我敢肯定他们会被淘汰!


我们是Vertical Reach ,这是一家位于葡萄牙的游戏公司,目前正在Apex Arena工作。 如果您发现自己读过的文章有趣,那么也许您想访问我们的网站 ,查看我们的其他游戏,甚至订阅我们的新闻通讯!

或者,您可以在Twitter上关注LeoKevin ,从而更好地了解我们!