联系电话:18652913986
行业资讯位置:首页 > 行业资讯
使用SD制作森林地貌材质
发表时间:2023-11-08     阅读次数:     字体:【

图片


图片


本教程来自Jonas Armellini。他全程使用Substance Designer制作了一套写实林地材质。在本教程中他详细描述了自己的创作思路以及SD的节点制作,希望大家喜欢。

Jonas Armellini是一名高级纹理艺术家,目前在 Ubisoft Annecy 的《星球大战:亡命之徒》项目中工作。

灵感


多年来,通过各种项目,我爱上了制作生物群落和地形纹理。我之前曾研究过森林地面纹理,但我想进一步提高它的质量,并将我学的所有技能付诸实践。

从一开始,我就非常清楚自己想要实现的目标效果。我还记得小时候我和家人去法国南部度假时游览过的松树林。

我想起了一些针叶和元素非常密集的东西,也非常干燥,由于厚厚的覆盖,地面土壤几乎看不到。接下来,我的目标非常明确:只用 Substance 3D Designer 完全按程序化流程重现它。

我当然可以使用 MegaScan 图集,这将大大加速和简化这个过程,但我想建立一个小型生成器库,看看只用SD可以做到什么程度。


参考


我首先通过在 Google 图片上进行快速搜索来收集参考资料。对我来说最重要和最有用的是找到我想要包含在纹理中的每个元素的特写的参考(针、松果、枯枝等)。

我还使用了更普通的参考资料来理解不同元素在落地后如何相互作用。在这个阶段,最好已经了解如何进行、从哪里开始、你需要的不同生成器、不同的层及其顺序。

定义要复现的地面的大小也非常重要。就我而言,我决定复现一个 4 米的地表,因为我想制作一个可以实际游戏中使用的纹理。换句话说,相对较大的纹理可以在大表面上使用并且易于平铺。


图片

生成器


该纹理完全依赖于对生成器的使用。我必须制作相当多的生成器,但我也重复使用了之前为其他纹理制作的一些生成器,例如几个月前制作的草材质。

制作一个生成器并不是一件很难的事情(当然,这取决于它的复杂程度),但考虑到我得做很多很多所以我只关注主要的。


针叶生成器


首先,我创建了一个球体并将其修改为细长的尖头形状,类似于针。然后,我使用 2D 变换来重新缩放和重新定位我的中轴,使其底部位于空间的中心。

此步骤将让我可以自动创建多个针的变体,确保它们始终通过底座连接。


图片


图片


请注意,我使用了简单的混合仅通过修改裁剪区域参数来裁剪针的底部部分。

我在看 Jonathan Benainous 的GDC 2023 演讲《The Last of Us Part 1》的材质艺术(https://www.youtube.com/watch?v=DEuYcOWNV2k)时发现了这项技术。

这个参数非常有用,有助于保存用于手动创建蒙版的节点。然后,我通过使用Warp和Perlin Noise创建了针的几种扭曲变体,并小心地遮盖针的底部,使其不受扭曲影响并保持在中心。

当使用噪点、渐变、均匀颜色或任何其他贴图时,别忘了仔细想想是否需要它们与其他贴图具有相同的分辨率。在很多情况下,答案是否定的。

均匀颜色可以减少到 1x1px,渐变可以限制为 1px 宽、几个像素长的细带,Perlin 或高斯噪波(已经是非常软的噪波)也可以减少几个分辨率,而不会看到任何质量差异。

同样,当你想要模糊纹理时,首先要考虑降低其分辨率。这会自然地模糊它,并且您将节省一个节点和一些计算时间。


图片

创建变体后,我将它们输入到 Splatter Circular 中。这就是为什么将针根置于中心很重要的原因。

这确保了每个实例的位置和旋转点对于所有实例来说都是相同的,并且它们的所有底座都在一个点上重叠。为此,还必须将 Splatter Circular 的 Position 选项卡中的 Radius 减小到 0。


图片

接下来,我创建了一个 ID Map,这样我以后就可以独立控制每根针(允许我给它们不同的颜色和正常方向)。

为此,我复制了Splatter Circular,仅更改亮度随机以获得灰度蒙版。我使用Vincent Gault's Fine Edge Detect(https://www.youtube.com/watch?v=JKEld44Dj6k&ab_channel=CGVINNY%3ALearnSubstance3DwithVincentGAULT)转换了这张地图。

(它产生比基础的Edge Detect更精细和更精确的边缘)。


图片

右边是系统自带的边缘检测。


然后我将它连到Flood Fill和Flood Fill to Random Color。最后,我通过使用Distance节点从边缘检测中删除边缘(通过将最大距离设置为最大值并将源/距离组合为仅源 Only Sources)


图片

最后,我通过使用Swirl和Directional warp为针提供了扭曲效果,并公开一些有用的参数。


图片

这个 Needles 生成器已完成,但实际上不会在最终图中使用,所有元素将在最终图中发生散射和分层。事实上,我正在使用它作为创建其他生成器的基础。


针堆


我决定在最终图表中创建一堆针,而不是直接使用针生成器。原因是我将使用 Shape Splatter 节点来分散我的元素,与 Tile Sampler 不同,它有一个缩放为 5的限制。

这意味着你根本无法超过该值。由于我想用厚厚的针层覆盖整个纹理,因此我需要大量分散的实例。

由于实体越多,它们就越小,我就会被 5 的缩放限制所阻碍。


图片

为此,我简单地创建了一个 Shape Splatter,在其中输入了 Needle 生成器的一些变体。

通过使用像圆盘(disk)这样的原始形状,我能够隐藏纹理边缘的针并制作出我想要的堆叠效果。

然后,我使用两个Shape Splatter Blend Color来重新创建我的法线贴图和 ID/矢量贴图。


图片

图片

带针树枝生成器


为了创建这个生成器,我还重复使用了上面制作的Needle(针)生成器,我使用了三个非常相似的具有不同随机种子值的Shape Splatters来分散它。

我只使用了Shape Splatters的很少的参数。实际上,你所要做的就是将针分散在一根垂直的线上。

图片

图片

完成后,我使用 Shape Splatter Blends 重建了之前创建的其他贴图(法线贴图、ID/矢量贴图),并通过warp和调整level为其提供了最终效果。

在继续讨论下一个生成器之前,我公开了一些对于创建变化有用的参数。


图片

第二种带针树枝生成器


该生成器重用了上面创建的 Needles Branch Generator(带针树枝生成器

)。为了做到这一点,我简单地创建了一些分支变体并手动放置它们(这可能是该纹理中程序最少的部分)。

我创建了 3 个不同的分支,并将它们连接到 Switch Material 节点,这样我就可以选择要使用的分支。


图片

图片



文章转载自

Thepoly

 
上一篇:次世代机甲《BT机甲》制作全流程
下一篇:使用SD制作森林地貌材质