
Part1. Using procedural node for making Jade pattern.
최종 수정일: 2019년 6월 19일
Overview
软玉是中国和亚洲大部分国家用在装饰品上的常见玉种。
大致分为软玉和硬玉,根据采集的国家地区它的特色也不一样。
中国常见的漂亮的碟子或坛子是有韧性的(6.5)。
我们不确定 Jade 的成分是什么样的,表面质感是什么样的。
只是根据脑子里最近看到并理解的玉来识别。
简单来说是在头脑的数据库里做 Information matching 。
也就是说,大脑里已经有对 Jade 的偏 Fantasy 的理解。
再说得容易一点,作者去一家杭州买玉的店铺时说了这么一句话:"啊~ 这也是玉啊!" 也就是说,我头脑里所理解的玉的信息是比较狭隘的。
会根据材料完成软玉漂亮色颜色,并尽量多观察玉表面微妙的变化,实现它。

先在 Pinterest 等地方搜索玉相关图片。
玉的原石表面不是刚开始就是光滑的,而且还分为很多种。

通常游戏里使用的中国玉是下图这种。
学习目标
1. 程序化质感和表面 Marble pattern。
2. 理解两种 Marble pattern Blending。
根据目录结构,这本书的前面的部分会注重说明节点。
就算在 SD 里制作 Jade(玉) 的程序化贴图,但是视觉上 Jade 的透射效果要从 Shader 上表现(不是所有玉都有透射现象,这是固定观念。) 才会更真实。
这本书的后半段会用 Marmoset viewer 或者 Render-Man render 再把本次案例做得更写实一点。

制作上图的案例,重点了解怎么控制两个大样式并怎么混合得到想要的结果。
需要的 Node 列表。

支持各种形态用成 Input , Shape 是 Procedural texturing 的始发点所以是重要的基础。

这是使用导入的 Input 或者 Node 内部提供的 Shape ,变换成不规则的 Tiled Shape 的必要 Node 。

根据 Warping 的 Guide 的 Gradient Input 信息,把导入的 Input 形态或者图片做 Warping (扭曲)。

把 Slope(斜率)用 Slope guide input 在输入的 Input 部分形态中表现出斜率。
这里的斜率通常是用 Game Engine 里的 Gradation map 形态来表现。

根据输入的 Vector information texture 扭曲 Pixel 。

混合输入的两个 Node 。

是往做好的 Pattern 把颜色 Replace 的时候很好用的一种 Node ,也是在 Substance designer 里做 Texturing 的时候最常用的一种 Node 。
现在我们看下各个 Node(Filter) 是怎么连接并形成最终结果的。
上面也讲过,有两种样式。
为了完成这项操作,需要使用个别 Shape 和个别 Vector Warp 效果。

添加两个 Shape node ,添加两个 Warp node 后把 Shape node 连到各自的 Input。
添加一个 Creased node ,两个 Warp node 的 Gradient Input 跟上图一样连接起来。
以图片为准,上方 Shape 构成的样式叫 Main Pattern ,下方 Shape 构成的样式叫 Sub Pattern 。


Main pattern 使用的 Shape 参数。
Tiling : 4
Pattern : Bell
Scale : 1.5
Size : X=2 , Y=0.62
Angle : Turns = -0.13 , Degrees = -48
Rotation 45 = False
Non Square Expansion : True
Non Square Tiling : False

用在 Sub pattern 的 Shape 值。
Tiling : 2
Pattern : Brick
Pattern Specific : 0.97
Scale : 1.68
Size : X=2 , Y=0.3
Angle : Turns = -0.12 , Degrees = -43
Rotation 45 = False
Non Square Expansion : True
Non Square Tiling : False


Creased node 的参数。
Scale : 1
Disorder : 0.56
Warp Intensity : 0.22
Non Square Expansion : False







基本样式设好后,做成 Frame 命名为 Pattern Base 。

连接一个 Blend node 后,把两个 Warp node 连成上图的样子。


Blend node 的参数。
Opacity : 0.82
Blending Mode : Copy

为了让样式的 Edge 部分变得自然,加了 Slope Blur node 。

新增下方 Warp node ( Sub pattern )后跟上图一样连接到 Slope Blur Grayscale node 。

Slope Blur Grayscale node 参数。
Samples : 21(数值越低越粗糙)
Intensity : 2.28
Mode : Blur


新增 Warp node,把 Sub pattern 的 Slope Blur Grayscale node 连接到 Warp ,把 Creased node 连接到 Warp 的 Gradient Input 。

Warp 参数。
Intensity : 2.45

我们先看下这些样式在mesh上是什么效果。



新增 Blend node 后把已经 Blending 的 Master pattern 的 Blend node 连到 Blend node 的 Foreground Input 上。
适用 Warp 的 Sub pattern 连到新 Blend node 的 Background 。

Blend node 参数。
Opacity : 0.75
Blending Mode : Copy


新增两个 Blend node。
在添加好的各个 Blend node 上再添加 Comment ,这样会更方便看。
跟上图一样,把 Pattern Blending A Frame 的两个 Blend node 再次 Blending ,分成 Main pattern 和 Sub pattern 让它更简单。

Main pattern 的 Blend node 参数。
Opacity : 1
Blending Mode : Max (Lighten)

Sub pattern 的 Blend node 参数。
Opacity : 0.62
Blending Mode : Copy

会各自新增两个 Node 。
添加两个 Vector Warp Grayscale 和两个 Tile Random ,跟上图一样连到 Vector Map 上。

Main pattern 的 Vector Map source.

Main Pattern 部分的 Tile Random 参数。


Tweaking to Pattern brightness.
为了区分两种样式,还做了些工作。
Main pattern 用的是 HSL node , Sub pattern 跟 Main pattern 再做一次 Blending 后用 Gradient map node 修改了。

先加一个 HSL node 。
把 Additional Warp frame 的 Main pattern 的 Vector Wrap output 连接到新加的 HSL node 上。

HSL node 参数。
Hue : 0.5(Default)
Saturation : 0.5(Default)
Lightness : 0.57
现在为了 Sub pattern 添加 Blend node ,也加一个 Gradient Map node 。
Additional Warp frame 的 Sub pattern 的 Vector Wrap output 连接到新加的 HSL node 后, Blend node output 连到 Gradient Map。

Blend node 参数。
Opacity : 0.45
Blending Mode : Subtract


Gradient Map node 参数。
Gradient value : 从左开始 #ff828282 , #ff242424 , #ffe1e1e1
两个样式的 Blending

添加新的 Blend node ,跟上图一样在 Foreground 和 Background 各自连接 Tweak to Brightness 的 Output 。

Blend node 参数。
Opacity : 0.32
Blending Mode : Copy
添加很弱的 Normal map surface 。

因为表面不是跟玻璃一样干净,所以稍微加点 Normal map 有时候会更自然。
因为光线的流向会随着表面细微的变化而不同。
添加 Normal node 后连接刚做了 Blending 的 Output。

Normal node 参数。
Intensity : 0.1
Normal Format : OpenGL (这个工程是 OpenGL 。)
使用 Gradient Linear 修改样式的细节。

添加 Gradient Linear 1 node 。
添加 Gradient Map 。
添加 Blend node 。
跟上图一样连接,用 Frame 整合起来后命名为 Bright Adjustment 。
在新加的 Blend 的 Background Input 上连接 Tweak to Brightness 的 HSL output 。

Blend node 参数。
Opacity : 0.07
Blending Mode : Add(Linear Dodge)

Gradient node 参数。
Gradient value : 从左边开始 #ff343434 , #ff171717 , #ffc8c8c8 , #ff494949
在表面添加 Noise detail 。

新增两个 Blend node 后,用 Frame 整合并命名为 Surface Detail A 。
跟上图一样,把 Bright Adjustment Frame 的 Gradient Output 连到上方 Surface Detail A Frame 的上方 Blend node Foreground 。
Bright Adjustment Frame 的 Blend Output 连到 Surface Detail A Frame 的下方 Blend node Foreground 上。
把连接到 Normal node 的 Blend output 连接到 Surface Detail A Frame 的下方 Blend node Background 上后,把 Surface Detail A Frame 下方 Blend node Output 连到上方 Blend node 的 Background 。

Surface Detail A Frame 上方 Blend node 参数。
Opacity : 0.54
Blending Mode : Multiply

Surface Detail A Frame 下方 Blend node 参数。
Opacity : 0.55
Blending Mode : Add(Linear Dodge)
给表面上颜色。
因为把样式分成了两个,所以颜色也会分两个上。

制作 Master Color Frame。

Node 放大后的图片。
添加 Creased node , 添加 Clouds 2 node , 添加两个 Gradient Map node ,添加 Level node 后跟上图一样连接。


和 Clouds 2 连接的 Gradient Map node 参数。
Gradient Value : 从左开始设成 #ff6d8537 , #ff4a611e , #ff506526 , #ff1f2e0c , #ff384b17 , #ff141f08 , #ff283910 , #ff324418 , #ff171e0f 。

跟 Creased node 连接的 Gradient Map node。

Creased node 参数。
Warp Intensity : 64
Disorder : 0(Default)

Gradient Map node 参数。
Gradient Value : 从左开始设成 #ff697b31 , #ff9aa962 , #ffd1d6c3 , #ff688032 , #ffadc581 , #ffabc381 。
