Substance 3D Designer!制作程序化马赛克生成器流程分享!
CG 1859 4
实名

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

发布于 2023-9-5 11:38:32

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

x
                 
aa1074c56093112746e853c3bdbe8547.png
          640.jpg 作者: Rebecca El Cheikh   作者网站:https://www.artstation.com/artwork/BX2zK8

[micxp_wxonkey]wxv_3087697534219468803[/micxp_wxonkey]





Rebecca El Cheikh 在 Substance 3D Designer 中创建了一个新的生成器,并与我们分享了它的制作方法。介绍大家好!我叫丽贝卡·埃尔·谢赫。我是一名黎巴嫩环境艺术家,过去几年我一直住在法国学习。艺术和科学一直是我的热情,所以我首先选择了计算机科学和计算机图形学学位,然后在一家后期制作公司工作了 3 年,开始了我的商业职业生涯。在我的职业生涯中,我总是兼职做个人项目,以便以后能够转向游戏行业。搬到欧洲后,我参加了一个名为“沿着裂缝”的学生项目,后来在Don't Nod Entertainment实习期间获得了作为环境艺术家的宝贵经验,特别是在《放逐者:新伊甸园的幽灵》的工作中。

https://dont-nod.com/en/说到掌握 Material Art,开始学习Substance 3D Designer并不难。有了大量的教程,您可以学习它的基础知识并开始将其应用到您的项目中。考虑到艺术家所做的令人难以置信的项目,很容易获得灵感并选择一个主题来开始。与任何事情一样,实践是成功的关键。有很多适合任何级别的教程,并且艺术家展示和解释了很多思维过程。通过这样做以及在我自己的项目中应用不同的技术,我学会了 Substance 3D Designer。当你练习时,它会变得更加自然。我目前使用 Substance 3D Designer 和Substance 3D Painter进行纹理处理。程序马赛克生成器的想法我在黎巴嫩读本科期间见过的第一台发电机是Daniel Thiger 的轮胎发电机。我记得它是使用 Substance 3D Designer 最熟练的方法之一。我第一次在 Substance 3D Designer 上处理程序过滤器/工具的创建是在大约两年前的“沿着裂谷”期间。虽然很基础,但我当时做了一个程序性的笔触滤镜。我非常喜欢它,因此我直接规划了未来更复杂的项目,例如刺绣和马赛克生成器。在我看来,在 Substance 3D Designer 上创建马赛克似乎是一项乏味的工作,我想找到一个解决方案。以下是生成器外观的预览:





https://www.artstation.com/artwork/wVG95











在 Substance 3D Designer 中设置生成器首先,我总是通过集思广益和收集参考资料来开始任何项目。为项目制定基线和计划并始终先从大处着手,然后再处理较小的细节非常重要。马赛克生成器的主要功能是遵循任何给定图像的轮廓。如果我可以创建这些图块的 Alpha 地图,那么其余的事情就会顺利进行。仅此功能就带来了不同的问题和问题,例如:“我如何确定图块将遵循哪些形状?图块将如何遵循特定方向以及它们将如何创建?我是否必须将它们分开或单独处理每个形状,或者不单独处理,如何?”



创建遵循形状曲线的瓷砖条纹在添加新的路径和样条节点之前几周,我就开始了该项目。因此,我决定首先弄清楚瓷砖将如何遵循形状。现在,我使用一个简单的正方形来展示如何创建可以遵循任何给定形状的图块。由于每个马赛克看起来都不同,具体取决于曲线和位置,逻辑是我必须按照给定的形状生成条纹,然后减去这些条纹的一系列长垂直图案,如下所示:

首先,我通过斜角节点运行原始形状。然后,我总共使用了 16 个混合在一起的直方图扫描节点来提取用于创建条纹和长垂直图案的线条。然后,我能够覆盖用户可以输入的最大形状,即平面正方形。

根据创建的图像,使用边缘检测和 Substance 3D Designer 的新路径/样条工具中的垂直形状来实现条纹。第一步涉及使用 Mask to Path 从可见线生成路径。然后,使用 Paths to Spline 转换路径以进行进一步操作。最后,使用“样条灰度散布”将图案添加到样条曲线,类似于“平铺采样器”或“散布圆形”中的特征。然而,在这种情况下,图案遵循给定样条线的位置和旋转。此过程的结果图如下所示:



请注意,由于马赛克瓷砖可以以任何给定的方式旋转,因此垂直形状必须比条纹长才能覆盖整个区域。为了避免重叠,我最终执行了两次此过程,一次针对原始形状,另一次针对稍小的正方形(通过减去边缘检测)。

这可能是该项目中最困难的部分。如前所述,在该项目进行时,Substance 3D Designer 的更新尚未发布,因此我尝试找到一种方法来进行类似的输出。最后,我使用边缘检测创建一条非常细的线,并将其用作 100x100+ 垂直图案的平铺采样器的掩模。结果是混乱的,垂直图案在某些地方是空的,而在其他地方则聚集在一起。它可能仍然有效,但更新在正确的时间发布,所以我使用了更好的选项。从任何给定的图片中提取形状现在一个形状的马赛克生成已经完成,是时候找到一种从图像创建形状的方法了。我发现对几乎所有事情都有效的最优化方法是使用节点“照明取消低频”。该过程并不总是将所有形状分开,但大多数线条都是可见的,以便马赛克尽可能接近其轮廓。我只需使用值处理器提取背景颜色,然后使用替换颜色范围将其更改为黑色。这样,我就得到了给定输入的黑白轮廓。

轮廓提取过程现在看起来像这样,具有清晰的单独形状:

从轮廓图像中分离单个形状这是我做过的最昂贵的过程,但我仍然发现有必要这样做。假设轮廓很细,如果我要在所有形状上同时创建马赛克,则垂直图案与不同形状的条纹相交的风险很高。尽管它可能在某些情况下有效,但我认为最好在单个形状上进行此操作,以获得更干净、更安全的结果。我仍然不确定这是否是最明智的决定,因为它是迄今为止优化程度最低的方法,因为它将 2k 纹理的计算时间从 15 秒增加到略多于一分钟。我尝试使用“切换灰度”,以便 Substance 3D Designer 不计算空形状输入,但不幸的是,它仍然计算 True 和 False 输入,在这个阶段,Flood Fill to Index 节点被证明是非常方便和有用的。使用该节点有两个主要优点。首先,通过将选项设置为“忽略小于0.1的形状”,我们可以防止马赛克创建节点应用于这些较小的形状,并避免生成黑色图像。其次,该节点输出检测到的形状的数量以及与每个形状相关的唯一值。这使我们能够使用像素处理器节点提取特定形状,从而可以进行进一步的操作和控制。

“索引灰度的洪水填充”根据 1 除以检测到的形状数量来分配灰度值。例如,如果有 3 个形状,则灰度值将分别为 1、0.666 和 0.333。另一方面,像素处理器节点执行以下操作:它检索与指定的形状编号相对应的值,扫描图像以查找具有该值的像素,并将这些像素输出为白色。剩余像素乘以 0,结果显示为黑色。这个过程有效地隔离并突出显示了所需的形状,同时使图像的其余部分变暗。

整体流程现在如下所示:

经过测试,我重复了独特形状提取过程32次。考虑到我最终决定平均使用 64x64 马赛克瓷砖,这个数量是确保处理最必要数量的形状的最安全方法。在将所有小于 0.1 的形状全部分离之前将其删除,最坏的情况是大约有 12 个形状没有被处理。无论如何,间隙稍后会被填充(在下一节中解释),并且马赛克看起来仍然清晰,并且生成马赛克所需的时间更少。填补空白如果输入的图像有很多小于 0,1 的簇状形状,或者有大的黑点,那么到目前为止完成的结果是带有空白区域的马赛克 alpha。因此,在倒置 alpha 上再次执行此过程对于覆盖此场景至关重要。尽管在以下情况下并不那么重要,但生成器应该涵盖所有可能的场景,即使需要额外的时间来计算所有内容。

处理小于 0,1 的形状我创建了一个螺旋状的马赛克图案,与太小而无法变成马赛克的形状混合。由于它们并不显眼,用户通常不会注意到类似网络的图案。最后,当所有内容合并后,再次使用“Flood Fill to Index”来删除小于 0.02 的点状形状。



马赛克材质创作马赛克 Alpha 最终完成后,剩下的就是创建马赛克材质并美化输出。我通过模糊和使用直方图扫描使图块变大,使用坡度模糊向边缘添加变化,并减去洪水填充渐变以打破其线性。唯一棘手的部分是给瓷砖上色。马赛克瓷砖通常每种都有一种颜色,我没有使用通常可以完成这项工作的瓷砖采样器/生成器。为了解决这个问题,我通过模糊它们并在扭曲和坡度模糊中使用这个 alpha 来创建每个图块的径向渐变。颜色会被挤出,而污垢无论如何都会取代瓷砖之间的东西。

设置最终渲染使用狨猴工具包,您可以有效地创建一个光线充足的场景,并随着进度快速更新。我有 3 个预设材质渲染文件可供使用和测试我创建的任何材质;球体、圆柱体和平面。我只需根据材质的颜色和反射率更改灯光中的亮度级别和颜色。我总是有一个强大的定向灯底座(右上角),后面有一个强大的边缘灯,以及两个暖/冷区域灯以形成良好的对比。

最后的话和建议如前所述,练习是在 Substance 3D Designer 中变得更好的本质。无论是通过教程还是学习不同的项目,实践仍然是真正掌握该程序的唯一途径。这个时间线并不存在,而且因人而异,但作为一种修行,它会自然而然地发生。我加入了 Facebook 和 Discord 上的一些与 Substance 3D Designer 相关的小组,观看了很多教程,并且总是尝试研究其他人在他们的项目中做了什么。Facebook 上的 Inside the Node 小组可能是我最喜欢的地方,也是促使我通过像素处理器和 FX-Map 节点更深入地学习 Substance 3D Designer 的地方。这对于这个项目至关重要,并将我对程序的知识和逻辑提升到了另一个水平,在此过程中,允许创建这个项目。尽管这更多的是 Substance 3D Designer 的基础方面,并且可能并不总是用于材质,但拥有它的基础知识仍然是一个很好的优势。老实说,掌握该程序是一个我尚未完成的漫长旅程,但这是我现在可以给您的建议!




END



声明:本文章中所有的图片和视频都归原作者所有,仅供大家参考学习和交流,不作商业用途,侵删。如果你喜欢这篇文章,欢迎转发!谢谢!


更多学习和交流可扫描下方二维码哦!




评分

参与人数 4元素币 +20 活跃度 +11 展开 理由
auldark + 8 + 1 【感谢】楼主分享的内容!很棒!
houjiajian + 2 + 4 前排围观
blue0904 + 7 + 2 奥利给
yangzzzzzh + 3 + 4 留下了没有技术含量的口水

查看全部评分

授人以鱼不如授人以渔!B站和微信公众号关注: CG小苏  每日分享最前沿视频教程和技术文章白嫖资源!
使用道具 <
失落  发表于 2023-9-20 14:37:33  
2#
6666666不错
回复 收起回复
使用道具
元素界王神  发表于 2023-9-21 10:52:51  
3#
我也想做一个这样的 转化器!!好用哈哈
回复 收起回复
使用道具
催眠  发表于 2023-10-4 14:56:32  
4#
回复 收起回复
使用道具
H场景  发表于 2023-10-23 11:00:14  
5#
真不错的贴子。
回复 收起回复
使用道具
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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