Ever17's Studio.

【Substance Designer】快速入门SD:FXMap

字数统计: 1.1k阅读时长: 4 min
2021/06/30 Share

前言

零零散散接触了一段时间SD,一直都是看些教程学一些思路,最近在看Daneil Thiger的教程发现他用了一个重复纹理的节点(他自制的),但是自己尝试复现的

时候法线常规的tile sampler实现不了这种重叠的纹理,而如果用transform又无法控制个数,于是自己找到了FXMap这个功能节点。算是SD非常具有代表性的东西了。我看了些关于FXMAP的文章和案例,于是尝试用FXMAP来做一个重叠纹理的自制节点,做法比较简单,也非常能体现FXMAP的便捷性,同样非常适合入门SD的初学者去理解。

关于FXMAP

1
The FX-Map node allows the creation of procedural images. It is one of the most powerful features of the Substance technology.

从官网这个功能的第一句话就能知道FXMap的含金量了。FXMap非常适合用于制作重复性的纹理,他允许用户创建象限(Quadrant),象限会将图分成4个象限,每个象限节点代表图的级别(level)或者八度(octave),使用者可以通过继续加入象限节点对对应象限继续划分(四叉树结构)。

FXMap有迭代器功能(Iterate),没错,非常方便实现循环。本文就会基于迭代器实现纹理的叠加重复。

Switch本文没用到,和程序里的switch一个道理用于根据输入做切换。

FXMAP的系统变量

这里直接用官网的google翻译

FX-Maps 支持系统变量。这些变量总是以美元符号(“$”)开头,如下所示:

名称 特殊性 数据类型 目的
$time —— float1 此变量返回自 Substance 渲染引擎启动以来的时间(以秒为单位)。它非常适合需要根据时间设置动画的物质。(例如时钟的指针。)在某些应用程序中,包括 Substance Player,使用 $time 的 Substance 将导致时间线出现在用户界面中。
$depth —— float1 返回 FX-Map 节点的八度(电平)数。这允许节点根据它代表的四叉树中的哪个级别来修改其行为。
$depthpow2 —— float1 同上,但返回 2 的八度(电平)数次方。这是一个辅助值,对一些常见的计算很有用。
$number 仅迭代节点 float1 返回绘制图案的编号。这可以通过控制迭代节点的动态函数图访问,以在每个迭代步骤修改其行为。(注意 $number 从 0 开始计数,而不是 1。)
$size —— float1 返回当前节点的大小(以像素为单位)。
\(sizelog2 | —— | float2 | 同上,但返回大小为 2 的幂值(例如:对于 2048*2048 图像,\)sizelog2 返回 11)。
$pos 仅限象限节点 float2 返回模式的出生位置。结果始终是 0 到 1 之间的值。

FXMAP开冲

1

先在Graph层创建一个float2变量用于平铺的偏移,再用一个int类型变量控制重叠的图案复制个数。

我们需要一个灰度的input,一个output,这样就构成了一个自定义节点的输入-处理-输出。2

3

​ 创建一个迭代器,右边的output连接到下方input,因为迭代器左侧output是直通直通 连接器。它接收到的图像直接传递到节点的输出连接器。然后我们将迭代器的迭代次数设置function,在内部获得我们设置的迭代次数参数(Get Integer)。

​ 来到象限节点,为了实现图像的偏移,我们为Pattern Offset设置empty function。

4

我们通过插值,将offset从0-我们最大的offset依据当前的迭代数在总迭代数中的占比求出。

节点的基本功能就完成了。然后开始稍微完善下细节和使用体验。5

我们在graph节点下添加一个Int值,他将会作为DropDownList的形式(Enum)来作为BlendingMode的参数(在象限节点中,对BlendingMode创建emptyfunction,同样get Integer),加入一个Toggle栏作为是否开启灰度渐变,以及添加一个灰度保底值防止第一次迭代纯黑。

然后我们在Color/Luminosity中添加一个emptyFunction来把控迭代过程中是否需要开启颜色依次变亮。

做法和前面的大6同小异。

这样大体就结束了这个节点的制作。我们把这个graph封装成节点后就能快乐使用了。

7

原文作者:luqc

原文链接:https://ever17-luqc.github.io/SD-FX/

发表日期:June 30th 2021, 1:10:10 am

更新日期:June 30th 2021, 1:19:13 am

版权声明:本文采用知识共享署名-非商业性使用 4.0 国际许可协议进行许可

CATALOG
  1. 1. 前言
  2. 2. 关于FXMAP
  3. 3. FXMAP的系统变量
  4. 4. FXMAP开冲