制作逼真植被
关于沼泽植被项目
这个项目成为我游戏艺术研究的一部分。我们的老师要求我们创造一个完整的室内/室外场景。因为我最近玩了Hunt Showdown并且它给了我很多启发,所以我根据我在那个游戏中看到的东西选择了一个沼泽环境。
我对这个项目的目标是让它成为树叶练习,试图发挥它的全部潜力。在这个项目中,我意识到让植被看起来正确是多么复杂。这就是为什么我在我的主要环境之外制作了这个小的“植被场景”,以便更好地开发我的树叶,了解我需要放置它的方式,以及我如何在我的主要场景中保持它的连贯性和可读性。
沼泽植被
灵感
Hunt Showdown 是一款 PVP/PVE 合作游戏,其中植被无处不在。游戏发生在一个看起来不祥的沼泽中,到处都可以看到树叶。
狩猎团队设法创造出连贯、清晰、自然的植被,并且最重要的是为游戏玩法服务。这就是我想在我的项目中传达的:易读性和通过植被的形式语言。
狩猎摊牌植被
设置纹理
为了获得逼真的植被,您必须根据您的时间以及您是否希望制作自己的材料来选择获取纹理的方式。您可以简单地使用植被扫描,例如您可以在Megascans 上找到的那些;这使您可以访问高质量的纹理并节省大量时间,但可能不适合您的需求。您还可以使用Photoshop(以一种相当直接的方式)来创建您自己的纹理,或者您可以选择使用Substance Designer,它为您提供快速迭代的可能性,但需要大量时间进行设置。
我选择了混合技术:我希望学习如何使用 Substance Designer 制作植被以及如何正确整合 Megascans 中的植被。Megascans:英国常春藤适合您的环境艺术的自然常春藤资产查看
对我来说,植被最重要的方面之一,以及如何在UE4 中控制它,是正确使用着色器。事实上,当你混合扫描和程序纹理时,最大的问题是不同纹理之间的差距。值得庆幸的是,这可以通过适当的主材质在很大程度上得到补偿。
这是树叶的主材质。有几个参数可以调整着色器的不同通道,例如粗糙度、颜色、SSS 或法线。
主材料
您可以调整的参数
着色器本身并不是很复杂。我使用简单的标量参数并乘以颜色来调整所有内容。
无论您选择使用什么引擎,我都建议您在视口中在“点亮”和“未点亮”模式之间切换,甚至通过检查“粗糙度”或“法线”来更进一步。这将为您提供有关您正在做的事情的多种观点,并且是获得良好结果的最佳方式。
可视化允许您检查所有内容是否一致,并且没有任何对比。
视口参数
查看 Megascans,我在许多不同的地图集上找到了适合我需求的植物。为了节省大量纹理空间,我将它们导入SpeedTree 并将它们重新组合成一个图集。这是一种简单的技术,可以让我更好地优化我的工作流程和场景。
我重新打包的 Megascans 中的 Atlas
SpeedTree 中导入的纹理(此技术可以在其他软件中实现)
然后我创建了一些材料并从 Megascans 导入了贴图。请注意,我将所需的粗糙度设置放在了我的镜面反射上,而忽略了 SpeedTree 的视口渲染。这是为了正确导出地图。小心将所有颜色设置为白色,否则结果会略微失真。
然后我转到网格部分并编辑一个新网格:这里网格的多边形数无关紧要,因为您只会导出纹理。
注意:对于分支,我将皮肤设置为“仅脊椎”,以便分支不可见。对于主干,您只需按 H 即可隐藏节点。
然后,我将视口设置为顶视图以捕获我的新地图集。
在视口参数中,我将分辨率设置为 4k 并显示渲染方块。
然后我进入视口的直接设置并切换到“不透明模式”,以便更好地查看我的地图集。我通过选择我的分支并按 W 在视口中移动它来简单地放置我的地图集。
警告!不要将图集粘贴得太靠近纹理的边缘或太靠近彼此!
我现在要做的就是创建我的新地图集。我转到“文件”(F10),在那里我可以设置要导出的地图及其分辨率。我确保它们的分辨率为 4k,并且贴图除了纯白色之外没有其他颜色(设置为“相乘”),否则,它会扭曲 Megascans 贴图并且可能需要返工。
地图集完成后,我将其重新导入到 Substance Designer 中,并将其插入到我制作的简单生成器中。它允许我模糊植物周围的填充,调整 SSS 或粗糙度,并为 UE4 打包贴图。
另外,感谢 Substance Designer 的最新更新,我可以使用“Scatter”节点来分散它自动识别的地图集。例如,地面树叶或树干上的地衣贴花是使用 Megascan 地图集制作的,由于这个节点,我在 Substance Designer 中散布了这些地图集。这使我能够非常快速地获得相同地图集的多个变体。
使用 Megascan 资产和 Substance Designer 中的 Scatter 节点快速制作的变化示例:
如果你对此感兴趣,我强烈建议你去看看Jobye-Kyle Karmaker的工作,特别是他关于视频游戏中植被模块化方法的会议。他分享了他对我非常宝贵的经验和建议!https://www.youtube.com/embed/NuBMKTFLBFE
Jobye-Kyle Karmaker 的作品
苔藓着色器
为了实现这个苔藓着色器,我知道我想使用顶点绘制来始终保持对其的精确控制,而不是创建只会在对象顶部出现的苔藓。后者不适合这个项目。
这是苔藓着色器。目前可能未针对视频游戏中的使用进行优化;我想了解如何使用自定义着色器并在像这样的小场景中充分利用它。
在我的苔藓着色器中,我使用了“HeightLerp”节点,它允许根据纹理的高度创建一个 alpha。然后我将它与“MatLayerBlendStandar”节点结合起来,允许根据给定的 alpha 混合材料。
我不会在这里详细介绍整个着色器,因为重复了几点,但主要需要知道的是我有一个基础材质和辅助材质:在基础材质中我按顺序输入了 MSK 纹理的 alpha 和高度图在我的“Height Lerp”节点中使用它,然后我将顶点颜色之一连接到高度 lerp 节点。然后,我混合了两种材料。
我重复这个操作 3 次,以便我可以添加苔藓,改变粗糙度,并添加泥(或其他材料),这一切都归功于 3 个顶点颜色 RGB 通道。
然后,为了确保更逼真地应用蒙版,我添加了来自 Substance Designer 的自定义 RGB 蒙版,每层都有一个黑白蒙版,有 3 个不同的蒙版:一个用于泡沫,一个用于粗糙度,一个用于泥浆。我将此掩码与“Height Lerp”节点的 alpha 输出相乘。
这是带有和不带有自定义蒙版的两种混合物之间的区别:
最后,UE4 有一个名为“Fuzzy Shading”的节点,它允许我创建一个特定的菲涅尔并在纹理的边缘创建苔藓效果。我只是在最后将它插入反照率。我向所有想要在 UE4 中制作苔藓的人推荐这个节点,因为它非常逼真并且可以进行调整。
至于其他设置,没有什么复杂的:我从一个简单的标量参数变成了一个乘法参数来调整平铺和对比度。这是最终的着色器参数:
SpeedTree 潜力
几个月前我发现了 SpeedTree,并立即看到了该软件在生产中的潜在力量。我建议您查看SpeedTree 的官方 YouTube 频道,其中列出了几个制作精良的教程。
使用 SpeedTree,您当然可以创建树木,但也如我之前展示的那样,创建地图集或重新组合它们,创建小植物、灌木、灌木等。 我所有的植物都是在 SpeedTree 中创建的:
不过要小心,SpeedTree 是具有许多不同设置的软件,有时使用经典 3D 程序制作简单资产可能会更好,而不是与所有 SpeedTree 设置斗争几个小时(我做到了!)。
如何在 SpeedTree 中创建植被我不会详细介绍,因为它涉及很多参数,而且 SpeedTree 的教程会比我清楚得多。对我来说,开始时要做的最重要的事情是寻找大量参考资料并尝试使用软件中的不同选项。为了更好地了解软件的内部工作流程并开发自己的技巧,没有什么比自己发现更重要的了。在 SpeedTree 中,有几种工作方法。首先也是最重要的是程序化创建树叶,然后借助 SpeedTree 的“节点”工具,手动管理树叶和树枝以构建有趣的形状,赋予其意义和真实感,并打破其“程序化”外观。
生成器示例模式:
为了进一步打破“程序”外观,您可以使用“+/-”按钮调整每个设置的曲线和变化偏移。这将允许在每个设置中添加更多变化。
您还可以向叶子添加不同类型的力:它们为植物增加运动和自然效果。每个力都可以使用全局设置进行调整,也可以单独调整到应用到的每个元素上。
这是我为演示夸大的经典方向力的示例:
最后,如果您想更加重视某些元素,可以将节点转换为“手绘”模式,以便用贝塞尔曲线对其进行控制。
这是我使用手绘模式的一棵树的示例:
棕榈叶发电机
决定在 Substance Designer 中创建一个简单的棕榈叶纹理,我最终暴露了如此多的设置,因此我创建了一个更适合我需求的“棕榈叶生成器”。
开始一个项目时的一个建议是,你应该为自己设定一个清晰准确的目标,中间有一些小的目标,这样你就不会迷失在工作中并保持效率。
让我们进入问题的核心:首先,正如我在文章前面所说的,参考是迄今为止实现逼真纹理的最佳工具。我建议您在屏幕上不断打开照片参考。您应该像 GPS 一样查看您的参考。
在此基础上,您必须创建变体,分析您的参考并找到重复的图案、有效的形状、看起来相似的颜色等。例如,对于这种纹理,我依赖于我的照片参考和高质量 Megascans 纹理。
这是一般的图,每个部分对应叶子的一个元素。如您所见,图表没有很好地排列;在写这篇文章之前我没有安排它来展示在 Substance Designer 中开始一个大型项目之前组织良好的重要性。
我几乎只使用简单的节点组合。请记住,如果您生成 12 个 4K 程序叶子,计算机将不得不以不同的方式加载它们 12 次,这可能非常昂贵。
对于基本形状,我只使用了一个简单的变形多边形,我也将其斜切以创建中间线。
然后,我立即创建了叶子损坏的侧面并将它们输入到开关参数中,让我决定它们是否损坏。过程非常简单;我模糊了我刚刚从缩小的形状中减去的基本形状以创建轮廓,这个轮廓用作我的瓷砖采样器的蒙版。由瓷砖采样器生成的长而完成的形状将沉积在叶子的边缘,一旦从基本形状中减去,就会产生这种损坏的效果。
我再次重复此操作,但使用渐变代替,以便对叶子的上端和/或下端造成更大的损坏。
然后,我在叶子上添加了中心线和高度的第一遍,并对其进行了扭曲以为其添加字符。
我还在稍后在颜色中使用的高度添加了垃圾。为此,我将几种垃圾与我在瓷砖采样器中混合的画笔图案混合在一起。然后,我把它涂在叶子上。
之后,我通过最多混合 2-3 种颜色来添加第一个颜色基础,并将它们与简单的遮罩(如 AO、曲率或噪点)混合。
为了实现叶子的干燥方面,我使用了“Axial Gradient”节点,它允许我创建一个带有手动移动点的渐变。一旦生成器导出到另一个图形中,该点总是可以访问的,这使我可以手动生成叶子干燥的距离!
创建干燥方面本身并不复杂。生成渐变后,将其与几个垃圾相乘并与棕色混合。
这是我如何控制叶子干燥部分的示例(为了性能,加速到 1K!):
最后,为了创建那些黄色污渍,我简单地生成了一个带有通用蒙版和拉伸球体的瓷砖采样器来生成污渍。为此,我添加了由 Substance Designer 中已包含的简单污垢生成器生成的第二层污渍。我公开了这些节点的参数,以获得对这些黄色标记的足够控制。
以下是叶子上产生黄色污渍的示例:
以下是您可以在叶子上更改的所有参数以及从头到最终结果的分解 gif:
然后,我创建了一个新图表,在其中制作了不同的叶子,在将它们导出到 SpeedTree 之前,由于材料混合,将它们的不同参数组合在一个图集中。请注意,如果您的计算机不够强大,但您仍想以4k导出,请逐步充电图并非常耐心!
进入 SpeedTree 后,我只需要用一个分支和一个叶状体来构建我的图集。SpeedTree 的一个优点是您可以剪下每片叶子并选择其在手掌中的比例。对于材料,您只需要调整它们的权重。
然后,对于干燥的床单,可以使用其他参数,例如噪声,或者如我上面所示,借助 SpeedTree“节点”模式手动移动每片叶子,目标是获得有趣的互补图集,从形状到颜色.
这里是!完成后,我只需要按照上文所述导出我的新地图集,然后在 Substance Designer 或 Photoshop 中添加 Palm 的核心。然后这些地图集可以用来生成手掌!
回馈
对我来说,这个项目最困难的挑战是成功地创造出具有有趣形状的令人信服和逼真的植物,这些植物有可能用于生产。
作为一名学生,我发现确保我在每个项目中始终使用新工具并学习新事物很重要,否则它不会带来新的体验或让我成长。
在这里,我想通过 SpeedTree、Substance Designer 和 Megascans 来处理植物,目标是进行实验,看看哪些有效/哪些无效,可以改进什么以便创建我自己的工作流程并进行更多快点。
对我来说,能够开发自己的工作流程或适应现有的工作流程至关重要,因为它允许在工作室的团队中进行专业工作。