用户界面。

熟悉基本用户界面就可以了。
从一开始就听每个菜单和按钮的说明,学习就会变得很无聊。(作者经验)
因为美术不熟悉基于节点的图形应用界面,所以对这种节点界面会相当排斥。
但是SD的界面比想象的要简单很多。
因为大部分功能都不在上方菜单里,而是集中在一个节点块儿里,是这些节点连接起来完成强大功能的。
所以刚开始要学好界面,这点非常重要。

New Substance : 上方菜单点击 File / New Substance…(Ctrl + N) 生成新文件。
New MDL Material : 新生成给 Nvidia Iray 用的 MDL 材质。
Open : 导进 sbs 工程。
Recent Packages : 显示之前做过的目录。
Save All : 储存所有打开的工程。
Reload Resources : 更新所有相关资源。
Exit : 退出程序。

Undo : 撤销之前的命令
Redo : 恢复之后的命令
Preferences… : 程序的环境设置。

Cancel Rendering : 取消现有渲染状态。
Suspend Engine : 临时中断 Substance Engine 计算。 Node 可以连接,临时暂停 Compute 演算的状态。
复杂的 Node 结构上,每次修改数值时计算速度慢的话使用。

LIBRARY

是查找在 library window designer 里的滤镜并登记的 window。 [Figure 3]
Designer 在线指南上把库里的各个功能定义为滤镜。
但是库里面除了滤镜还包含个别的 function , mesh , sbs , sbsr 等。
library window 里选择各个分类,把想要的滤镜拖到 Graph Window 上登记。
要使用Bubstance,了解库里面都有什么功能预设是很重要的。
大部分功能都基于节点实现的SD,除了部分功能都在库里面,我们把这些统称为滤镜。

可以登记常用节点进行管理。
选择常用节点后,可以点击星标登记。
Generators ( NOISE / PATTERN)

Noises 와 Patterns 하위 가테고리로 나뉘어 집니다.
Noises 에는 여러가지 프로시주얼로 생성 된 노이즈 노드들이 있습니다.
질감을 만드는데 자주 사용 될 것입니다.
分为 Noises 和 Patterns 下方分类。
Noises 里有各种程序化生成的 Noise 节点。
做质感的时候会经常用到。

以 Patterns 构成的节点跟 Noise 不同,是有更明确形态的程序化生成的节点。
这也是用在制作各种程序化质感上。
Filters

该分类里包含可以直接修改除了程序化的Bitmap的各种节点。
通常是修改并变换图片颜色的功能合集。
包含在颜色信息里变换成Gray mask或者变换Color space 等修改节点。
3D VIEW

是 graph window 里制作的滤镜的链接结果显示到 3D 的窗。
可以选择Shader,也可以设置光照,View环境等。

制作程序化贴图的时候,比起细致的模型,会经常使用Substance提供的简单的 primitive 物件。
提供的基础primitive。
Cube , Cylinder , Hollow box , Plane , Plane(hi-res) , Sphere 还有 4.0 开始添加的 Rounded Cube 等等。

跟 Graph 对应的 Material 可以选择多种 Shader 中的一个。
确认选择的 Shader 属性,修改的时候选择 Materials / Default / Edit 就可以了。

Physically metallic roughness(Default) Shader 属性材质状态下,打开 Edit 窗的状态。
通常这种追加的属性窗口会显示在画面右侧的 Inspector 上。
各个材质和 Shader 属性在材质章节再详细确认吧。

可以用 Materials / Add 添加新 Material 。

决定要添加的 Material 名称后点 OK 添加。
Material 正常添加的话跟上图一样除了 Default 还可以看到新 Material 。
Material 各自有一个 Shader 。
新加的 Material 的Shader 确认下是不是 PBR Shader。
![e 3D VIEW
Scene Materials Lights
Default
Add
X Remove All
Rebuild All
Camera Environment
Edit
Definitions
Channels
Display Renderer
blinn
lambert
mesh info
physically_metallic_roughness [Default]
physically_specular_glossiness
Load...
Reload
Reload All Shaders
Parallax Occlusion
Tesselation
ctrl*R](https://i0.wp.com/leegoonz.blog/wp-content/uploads/2020/01/image-210.png?resize=736%2C278&ssl=1)

Material 可以看到现在选择的 Shader 的贴图输入 Channels 。

用鼠标点击曲线中在编辑的特定节点,在右击状态下拖到 3D View 的物件上面,就会出现现在适用的 Shader 贴图的输入 Channels 列表。
这时候再选择想要的槽,就可以临时添加正在编辑的节点信息。

Substance 的编辑流程以后也会讲,Max 或 Maya 里编写的材质信息初始化成一个时,做 Materials / Remove All 就会把多个材质信息合并为一个默认材质信息。
![e 3D VIEW
Scene Materials Lights
Default
O Add
X Remove All
Rebuild All
Camera Environment
Edit
Definitions
Channels
Display Renderer
blinn
lambert
mesh info
physically_metallic_roughness [Default]
physically_specular_glossiness
Load...
Reload
Reload All Shaders
ctrl*R](https://i0.wp.com/leegoonz.blog/wp-content/uploads/2020/01/image-206.png?resize=584%2C278&ssl=1)
如果修改了 Substance 的 Shader 就再次导入变更信息。
这时如果Shader语句有错误,就会通过 Shader 编译通过弹窗把编译的LOG显示出来。
编译的LOG水准是可以显示语句错误的程度,是可以修改syntax的水准。
会在用户 Shader 编写和适用案例里重新解说的。

Lights / Edit 是整体场景的光源信息修改。

可以设置环境光,也可以对两个 Point Light 开关并修改颜色。
Point Light 1 : IBL( Image Based Lighting ) 之外的 Directional 类型的主光源。
Point Light 2 : IBL( Image Based Lighting ) 之外的 Directional 类型的补助光源。


在 Display 打开 Light 就可以在 view port 知道照明位置。
2D VIEW

会根据 Graph Window 里连接的滤镜编写,或者把烘培好的贴图图片信息显示的窗口。
也是 SVG drawing(vector drawing) 或者 Bitmap Painting 的工作空间。

Channel : 显示 RGBA 各个通道的图片。
Enable Alpha : 把 Alpha 通道的信息透明显示。

Display Luminance : 用 RGB 显示或者单色显示。

Toggle repeated tiling on or off : 显示针对显示图片的反复图片。
Use to Physical size to display the image : 以显示的图片设置好的 World scale 为准显示。

Image information : 把图片的色彩信息根据通道显示。

Dislpay histogram : 图片包含的颜色分布用曲线显示出来。

Consider image in sRGB color space : 对现在的图片的 sRGB 做 Pass 。
不会让实际贴图产生变化。
GRAPH CANVAS

在 Designerr 里最重要的 Window。
把独立的各个滤镜连接起来,构成程序化贴图的核心工作空间。

最基本的理论是,有 input 就一定要跟 output 连接。
这是最基本的节点连接结构。
然后 Substance 节点或所有节点结构的程序里,存在针对 insert node 的部分,这种部分的概念就是马上会被编辑,会根据这些中间会发生什么事情来定它的品质。
上图是空着的图片 Input,Output 也是空着的。
这里添加 Bitmap 图片试下。
通常 Explorer Window 里可以把 Bitmap 图片拖到 Input 里登记。
或者直接拖进 Explorer Window 里登记。
通常在画面上方的话就是从 Input 输出到 Output,在画面左侧就是从 Input 收取信息的输入连接点。
然后跟上图一样,黄色标注的话就意味着是 RGB 颜色信息。
如果是灰色,就是 Luminance ,也就是灰色信息。

跟上图一样,想把 Blur HQ Grayscale 节点插入到里面不能 direct 连接。
而且 Blur HQ Grayscale 只收取灰色调信息,所以不是正确的输入节点。
是为了举例子,Blur HQ Grayscale 的左右 Input 和 Output 都是灰色。
这就是说,输入和输出都需要是灰色。

举个正确的连接案例,输入和输出都支持 RGB。
连接两个节点的的时候,点击连接点圆形的部分后移动鼠标连到输入的位置,完成后鼠标点击左键就可以了。(连接线到了连接点的附近就会自动连到连接点上。这时如果决定要连上,点击鼠标左键就可以了。)
如果连接错误,点击连接点中间的线或者拖动选上后用 Del 键删除。

在按着 Shift 键的状态下点击黑色 uniform 颜色节点的 Out连接点,然后在按着 Shift 键的状态下移动到红色 uniform 颜色节点的 Out 连接点上。
这样就可以简单一并移动节点。
更详细的曲线上的节点使用方式通过案例再仔细看下吧。

上图是在 Node type 里只滤镜 Blend 的状态。

从左侧开始第五个图标总共有3种连接 View。
快捷键设置了从1到3号。

选择2号 Material 模式就会自动搜索 Identifier ,把节点自动连接到其他 Material 节点的同一个输入点上。

快捷键3号 compact 模式下,Material 间的连接线会视觉上更为明显。

初始化曲线缩率图和演算时间计算display。
不是初始化节点的参数。

Clean 会在编辑节点后把不需要的节点自动删除。
Export Outputs 会把制作的最终贴图储存为 Bitmap。
Export Outputs

Export Outputs 窗打开了。
Destination 会成为储存路径。
Format 决定将要储存的 Biamap 最终图片格式。
Pattern 是将要储存的 Bitmap 图片的文件名指定 Pattern。
基本值是 graph 的名字 _ Output类型名称 (Diffuse 或 Metalic …) 。
Automatic Export when Outputs change 是非常方便的功能。
储存1次后编辑节点,就会直接把变更的部分导出。
跟游戏引擎联调时会很方便。
Reexport Outputs 会把修改的 Output 重新储存为 Bitmap.
Automatic Export when Outputs change 激活的话不会太实用 Reexport Outputs 。
PSD Exporter 是用PS等工具把特定节点的计算结果作为 Bitmap 状态 Layer 化储存的功能。
ATTRIBUTE INSPECTOR : 检查属性

ATTRIBUTES
Identifier : 是一种识别者,变量名也会使用这种识别者。
Description : 编写对该 Node 的说明。
Label : 显示在画面上的 Node 名称。
User Data : 使用 SD 内部定义的函数。把简单的 Expression text 用成语言。
Group : 也会使用 SD 内部定义的 Group 形式,也可以直接定义分类。
INTERGRATION ATTRIBUTES
Format : 变换成 Sbsar 的时候可以决定游戏引擎里 cache 的贴图用什么格式。
Mipmaps : 定义 Mipmaps 类型。
Usage : 色彩空间,PBR 贴图类型(比如 baseColor , roughness…等等) ,而且可以预先指定 RGBA 色彩通道中使用哪个。
CONDITION
Visible If : instance 函数化或者导出成 sbsar 的时候,可以预先声明,根据特定条件在界面显不显示端口。

生成新文件的时候第一个见到的 New Graph 窗。
跟 4.0 版本比较的话, 5.0 的模板界面稍微变了。
选择 Physically Based(Metallic/Roughness) OK 后,会形成一个模板上通常需要的 Graph Outputs 已经设置好的曲线。
SD大体分为7个界面。

这是管理SD制作的资源的探索窗口。 [Figure 2]
打开 SBS 工程后,烘培的资源、 3D Mesh 、 Graph 列表相关所有数据列表都登记在这里并管理。
Root 是指 SBS 文件。
下方可以存在多个 Graph 。
各个 Graph 下方会显示 Output 列表。
外部导进的数据( Mesh 或者导入的图片,连接的图片等..)通常会 listing 到自动生成的 Resources 文件夹里。
显示为多边形图标的是 3D Mesh 。
SD 里 Bake 后生成的贴图等通常会遗传命名后自动生成叫 _Resources 的文件,并 listing 到文件里。
函数编辑器。
Substance Designer 里总共有4种函数编辑窗口。
FX-MAP 编辑器。

上图是 FX MAP 编辑画面。
通常 Substance 里以上两种概念会有机地连接在一起,做出不能相信的结果。
最后再说下游戏引擎里可以使用的动态参数编程(Parameter Programming)。
NODE FUNCTION 编辑器。
![New_6raph
New_Graph
- GRAPH
Opacity[81end]
variabl.„'G.t
input
Expected output type is Floatl.](https://i0.wp.com/leegoonz.blog/wp-content/uploads/2020/01/image-177.png?resize=1200%2C577&ssl=1)
制作 Instance Node 或者在 FX-MAP 等地方制作修饰函数的界面。
PIXEL PROCESSOR 编辑器。
![New_6raph
New_Graph
- GRAPH
Per Pixel Function[Pixel Processor]
Tloat lerp(TIoat 10, Tloat Il
return (l - (w*Mask)) *
(l -(w*Mask)) * iO
Extend of Mask
input. 2
x
Tloat w, sampler Mask)
(w*Mask) * il
(w*Mask)
E Pixel Proce--- PROPERTIES
BASE PARAMETERS
Output Size
Width —e
Output Format
Tiling Mode
Random Seed
SPECIFIC PARAMETERS
Color Mode
Grayscale
Per Pixel Function
v INPUT VALUES
Expected output type is Floatl or Float4.](https://i0.wp.com/leegoonz.blog/wp-content/uploads/2020/01/image-176.png?resize=1200%2C470&ssl=1)
基本上跟 NODE FUNCTION 编辑器一样。
只能使用 PIXEL PROCESSOR 和相关内含变量。
VALUE FUNCTION 编辑器。
![Aut06en_ColorlD_Roughness
AutoGen_ColorlD_Roughness
- GRAPH
Value Processor Function[Value Processor]
x
Variables/Get
$size
Constant/Float
0.3
Samplers/Samp
input 0
E Value Proces--
- PROPERTIES
BASE PARAMETERS
Output Size
Width —e
Output Format
Tiling Mode
Random Seed
SPECIFIC PARAMETERS
Value Processor Function
INPUT VALUES
clamp](https://i0.wp.com/leegoonz.blog/wp-content/uploads/2020/01/image-172.png?resize=1200%2C462&ssl=1)
跟 PIXEL PROCESSOR 编辑器几乎一致,可以在上方节点直接声明 MEMBER VARIABLE 。