Substance 3D Designer !创建体积乐高生成器流程分享!
677 0
实名

通过了实名认证的内容创造者

发布于 2023-12-7 00:48:02

您需要 登录 才可以下载或查看,没有账号?注册

x
              
4660e8caf9c222b39791be53d8839af3.png
          640.jpg 作者: Maxime Guyard-Morin   作者网站:https://www.artstation.com/artwork/LRJZ1l

Maxime Guyard-Morin 向我们介绍了 Lego Generator 项目,详细概述了涉及体积和深度的流程,并分享了他在 Substance 3D Designer 中的工作流程。

.
介绍                                
你好!我的名字是马克西姆·盖亚德·莫兰。我喜欢猫、金属音乐和电子游戏,我试着找时间画我的小塑料家伙。我通过为 3D 对象和表面(主要是纹理和着色器)制作漂亮的像素来谋生。我还教授游戏艺术和纹理。如果您正在寻找像我这样的人加入您的团队,我现在可以。我直接参与了一个未宣布的 Gearbox 项目、《F1 Manager 2022 & 2023》、《Cellyon: Boss Confrontation》、《Dark Age》以及第 6 感 VR 项目的初始系列。此外,我的非均匀边缘检测(一个自定义 Substance 3D Designer 节点)已被许多知名游戏公司使用,我无法在此透露。





我不记得我是如何开始物质艺术之旅的具体情况。据我所知,在学习 3-4 周的 3D 艺术之后,我对无纹理的 3D 模型感到厌倦。后来发现,我在 Substance 3D Painter 中处理像素比在 3ds Max 中处理顶点更有趣(那是很久以前的事了;现在我使用 Blender)。除此之外,我在 13 岁左右开始画迷你画,所以也许我对在形状上着色的热情就是从那时开始的。谁知道?然后我开始使用 Substance 3D Designer 为 Substance 3D Painter 制作自定义工具、垃圾和图案,并很快开始制作完整的材质。我想我根本就没有从那里停下来。







我的一些自定义Substacne 3D Painter工具。

.
起跑砖                                
在过去的几年里,我看过多种乐高 SD 材料,特别是Daniel Olondriz和Luke Marchant 的。我认为的一件事是,他们缺少你所期望的用乐高搭建东西所期望的体积和深度,即使它们看起来确实很酷。所以,我尝试了一下。而且如果踩到的话会很痛。







https://www.artstation.com/artwork/0nWzA8商城:https://lukemarchant.gumroad.com/l/legomosaic最初,我想购买乐高积木并在框架中展示它的现实版本,然后我意识到它会花费太多的钱来满足我的喜好。这就是为什么我的渲染像绘画一样采用木框的原因。
.
参考                                
正如我常说的,你的工作质量永远不可能超过你的推荐人。不使用参考资料要么是灵活,要么是完全缺乏经验,有时两者兼而有之。 不幸的是,对于我的钱包来说,我最近得到了一些装饰性的乐高植物套装,所以我使用的大多数积木都可以用于测量目的。我很快就投入其中,对每件作品和事物做了一个快速的架构。

在艺术指导方面,我正在寻找博物馆的外观,所以干净的作品上有一点灰尘。
.
世界单位匹配                                
为了可读性和简单性起见,我将在所有示例中使用半球形状和 32 x 32 x 7 乐高积木大小。我制作的所有艺术品都是 128 x 128 x 适合工作的尺寸。另外,我不会详细解释函数/像素处理器的工作原理,并坚持我正在做的事情的主要概念。如果您对它的详细工作原理感到好奇,我强烈建议您复制它们并使用它们。我们的目标是使砖块尽可能接近现实,这包括确保法线贴图和位移贴图始终准确。为了获得准确的法线贴图,我建议使用“高度到法线世界单位”节点。简而言之,只要您了解材质的真实比例,它总是会输出具有正确强度的法线贴图。在我们的例子中,我们可以通过公开的参数来控制整体结果的深度和平铺使用多少块砖,因此它不能是固定值。

我们的基本砖块尺寸为 0.8 x 0.8 x 1cm,因此 Surface Size 需要为 Bricks_Tiling*0.8。这就是一个函数。如果您不熟悉这个概念,函数就像标准的 Substance 3D Designer 图形,但输出单个值而不是像素。您必须右键单击节点,然后“设置为输出”,以便将其输出值用作图形输出(节点变为橙色)。



我们的基本砖块尺寸是 1 厘米,因此 Height_Depth 参数基本上等于我们的深度。生成图 AO 的 RTAO 节点使用类似的设置。匹配高度有点不同。无法直接从图表控制 3D 视图中的曲面细分比例,因此我采用了不同的方法:缩小了高度图。我使用高分辨率平面网格将 3D 视图曲面细分比例设置为 100。使用统一的白色作为高度图,我能够实现 100 x 100 x 100 厘米的立方体。

目前,我们的高度图被读取为 100 x 100 x 100 厘米纹理。然而,实际上,我们的高度图对应于 Bricks_Depth x Lego_Bricks_Tiling0.8 x Lego_Bricks_Tiling0.8 cm。为了准确地表示这一点,我们需要将高度范围像素值从 [0-1] 调整为 [0-Bricks_Depth1/Lego_Bricks_Tilling0.8]。这可以通过使用基础材质节点中的高度范围参数并将其转换为函数来实现。



现在,高度图可以根据我们拥有的砖块数量动态缩放,并且始终在 3D 视口中正确显示。
.
定义基础砖块                                
将输入图片变成具有相等值的块网格是现在要做的第一件事。它是使用“洪水填充到灰度”来实现的。

通常,我会使用平铺采样器 + 边缘检测 + 洪水填充组合将洪水填充提供给灰度作为第一个输入,我也计划这样做。然而,在这种情况下,检测 16k+ 形状变得不切实际,并且严重影响性能,更不用说形状检测中的错误了。我需要创建自己的地图,完美模仿洪水填充,而不会无限期地冻结计算机。本质上,洪水填充生成的地图结构如下:
  • 红色:每个形状内从左到右的渐变
  • 绿色:每个形状内从上到下的渐变
  • 蓝色:y 轴上的边界框大小
  • Alpha:x 轴上的边界框大小。
由于我们只处理正方形,因此使用像素处理器节点复制它很简单。如果您不熟悉像素处理器节点,它的功能与函数图类似,但输出像素而不是单个值。功能分解如下:X、Y、Z、W分别对应R、G、B、A。$pos 输出 UV,从而在 X 轴上产生从左到右的渐变,在 Y 轴上产生从上到下的渐变。Frac 用于消除数字的整数部分,仅保留小数部分(例如,1.256 变为 0.256,1861.648 变为 0.648)。这就是我的自定义洪水填充地图。

回到我们即将成为的砖块!我们现在需要一点可用空间。目前,我们的像素在 [0-1] 范围内,因此我们无法添加特征乐高积木顶部的点,因为像素值不能超过 1。因此,我们将释放一点空间使用级别的直方图。这是通过函数再次完成的,以确保它能够正确扩展。我正在更改 Level Out Low 而不是 Level Out High,因为这样可以避免下一步出现问题。

我将使用的最小乐高积木高度为 1/3 厘米。因此,我们将认为层是暴露的图参数深度的 1/3。例如,如果 Bricks_Depth = 5,则总共有 15 层。现在,我们的目标是将每个“砖块”“捕捉”到特定层,本质上是创建一个阶跃函数。在给定的示例中,值 0.893 转换为 0.8666666,对应于第 13 层的高度。

我们当前的范围是 [something - 1],我们想要 [0 - some],这样我们就可以增加值。再次,我使用像素处理器,将范围从半层向下移动。

.
放置斜坡                                
现在基础已经建立了,是时候解决一个新问题了:我们如何放置倾斜的砖块?我们如何以正确的方向和正确的坡度对斜坡砖进行取样?本能地,我们可能会认为我们需要像在现实生活中那样观察周围的砖块。这分为 2 部分。首先,我们选择要使用的斜坡砖,因此我们想要将每块砖的高度与其周围的砖进行比较,以选择正确的斜坡深度。然后,我们要定义坡度的方向,并对每种砖坡类型重复此操作。这将为我们提供 2 个贴图,我们将使用它们作为 Tile Sampler 节点的旋转贴图输入和图案分布贴图输入,该节点将分散我们的坡砖。遗憾的是我们不能要求一块砖头直视他的邻居。但是我们可以偏移一块砖的纹理,然后将新纹理与没有任何偏移的原始纹理进行比较。这在某种程度上与内核处理的完成方式非常相似。https://en.wikipedia.org/wiki/Kernel_(image_processing)所以第一件事就是口罩。这个概念很简单:如果周围一块砖的高度值比“斜坡砖的高度值”高,则需要返回一个白色值。

类似地,对于斜坡方向,如果周围砖块的高度值比“斜坡砖块的高度值”高,则根据它是哪一个返回一个值。这样,当左边的砖块更高时,我们就有一个值,当右边的砖块更高时,我们就有一个值,依此类推。

最细心的人可能已经注意到,我只测试了水平轴和垂直轴,故意排除了可能存在多个方向的情况。这些案例需要多加小心才能看起来正确和自然。主要思想是,如果有多个方向可能,我们随机选择正确的方向之一。此外,我创建了一个掩码来识别这些情况发生的位置,使我能够将此信息与之前生成的旋转和图案分布图混合。然后对每种类型的砖坡重复此过程。虽然它可以组合成一个单像素处理器,但我更喜欢管理多个较小的系统,而不是一个过大的系统。划分至关重要,因为它有助于轻松维护、更新、调试和编辑。在此阶段,每种类型的斜坡砖蒙版都会分配一种不同的颜色,随后确定瓷砖采样器应为每个位置选择的斜坡砖。

最复杂和最有趣的部分到此结束。现在剩下的是给每块砖一点个性和变化,在每块砖上添加点,有时不为平砖添加点,添加其他特定砖块以实现变化,并在每块砖之间标记更多一点。所有这些都是使用带有随机掩码的 Tile Sampler 和 Tile Generator 节点来完成的。


.
选择颜色                                
这是一个有趣的事情。当我计划制作这件艺术品时,我认为正确的颜色很容易,但我错了。我从量化颜色节点开始,但效果不佳。量化颜色的作用与灰度对应物的作用完全相同,并单独处理每个颜色通道。这样,由于 RGB 值所代表的含义,我们最终会得到不可预测的、不自然的结果。

好吧,除了 RGBA 格式之外,还有其他存储/描述颜色的方法。您可能熟悉 HSL 滤镜,它允许可预测的颜色值变化。嗯,HSL(色调、饱和度、亮度)是与 RGB颜色模型相比的另一种颜色表示方式。https://en.wikipedia.org/wiki/Color_model在我们的例子中,它更有意义,因为它描述了颜色的外观,而不是创建颜色所需的混合。您可以在维基百科上更多地探索这个主题。https://en.wikipedia.org/wiki/HSL_and_HSV然而,我不喜欢它。它需要调整多个滑块来修改应该是单个属性的内容。相反,我选择 HSV 模型(色调、饱和度、明度),它更可预测和可控。在 Substance 3D Designer 中,我使用像素处理器将 RGB 输入转换为 HSV,然后单独操作 H、S 和 V 值,然后将整个结果转换回 RGB。我将此像素处理器放置在子图中,以便在主图中更轻松地实现。

瞧,一个更好的结果。该方法的主要缺点是它往往会使最终图像稍微带有红色。然而,使用 HSL 节点可以轻松解决这个问题。

随后使用两个污垢节点和一些垃圾的组合来详细说明基色,到处添加一些灰尘,同时定义我的大部分粗糙度贴图。
.
渲染                                
经过一些打磨和大量时间寻找月球的漂亮部分后,是时候跳进渲染船了。如您所知,材质艺术家喜欢在渲染中将细分设置调至最大,以获得最佳结果。这就是我最初所做的,它在 Substance 3D Designer 中运行得很好。这是有道理的,因为 3D 视图渲染器就是为此目的而设计的。然而,Marmoset Toolbag 4 不适合这种方法。虽然它在技术上支持细分,但性能成本很高。正如我在上一篇文章中提到的,细分直接应用于网格而不是着色器中,从而导致许多性能问题。因此,我恢复使用 Marmoset Toolbag 3。 即使在 Toolbag 3 中,单独使用曲面细分也是不够的。我们正在处理接近 90° 的角度,这会导致奇怪的伪影,除非多边形数量比砖块数量高 10-20 倍。不幸的是,我无法提供确切的值,因为我的笔记本电脑进入起飞模式并在达到稳定的解决方案之前崩溃了。

总而言之,细分是通过将每个正方形划分为四个较小的正方形,根据网格拓扑均匀地添加多边形定义。这意味着我们可以通过策略性地放置正方形来控制细分生成多边形的位置。我们可以有选择地在需要的地方添加多边形,同时将多边形总数保持在合理且可管理的水平,而不是细分整个平面,从而产生天文数字的多边形。就在那时我转向了 Blender。我创建了一个自定义平面,并专门在每块砖块的边界所在的位置添加了几何图形。

然后它很好地细分,没有任何伪影。

否则,最终的渲染设置非常简单,材质的自定义平面、框架、墙壁、定向光,仅此而已。


.
学习 Substance 3D Designer                                
如果您想开始或改进,我的建议是学习图形创建背后的逻辑。不要盲目地逐个节点地遵循教程,而是观看并理解整个过程。这就是教程的真正价值所在——理解其背后的逻辑。虽然您可能会发现新的节点,但核心仍然是理解事物背后的逻辑。使用什么工具来实现这种或那种效果?如何对其进行调整以做出不同的东西?它在技术上有什么作用?哪种描述适用于所有情况?这就是你想知道的。阅读过滤器节点的文档对此有很大帮助。





接下来,坚持不懈地练习。每天挑战自己打开 Substance 3D Designer。最难的部分是入门,因此简单地打开软件就是一项重大成就。有时,您可能只在 3-4 个节点上工作,而其他时候您可能会创建完整的材质。速度由您决定,但要养成每天打开 Substance 3D Designer 的习惯。通过这样做,您应该会在 3-6 周内开始看到令人满意的结果。然而,完善你的艺术需要更长的时间,所以继续前进,不要害怕尝试新事物。




1                                  END声明:本文章中所有的图片和视频都归原作者所有,仅供大家参考学习和交流,不作商业用途,侵删。如果你喜欢这篇文章,欢迎转发!谢谢!更多学习和交流可扫描下方二维码哦!

授人以鱼不如授人以渔!B站和微信公众号关注: CG小苏  每日分享最前沿视频教程和技术文章白嫖资源!
使用道具 <
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表