有效运用 Color mask 和开发 Automation material。

OVERVIEW

来了解下怎么用 SD 构成制作工程。

为了维持PBR的品质,我们美术要用 SD 的各种功能制作系统并深入理解 SD 的 Workflow。

学习目标

制作用 Color Mask 的颜色便捷又快速地把 PBR Material reference 值适用到质感上的开发工程。

通过 Automation material 开发可以更深入了解函数的显示方式和 SD 的instance功能。

SD 里制作的 Automation material 做成 SP 里用的滤镜并使用。

2015年来到中国后,在工作室发现有很多美术会用个别 Color ID。

这种不明确的 Color ID 定义规则在该美术离职或者开发 Auto Batching Tool 的时候,因为没有标准化(正规化) 所以会出现很多问题。

在想着用什么规则可以把 Color ID做成规范后,观察到了补色关系,这个变成 Gray 的时候我就想到可以做成 Gray level chart 。

现在根据这个想法我们可以做自动化滤镜。

Roughness 和 Metallic 简要  。

最终分为10个阶段吧。

制作细节的时候每个阶段间 Overlapped 的范围大概是

0.25 ,会以这个值做到最终贴图。(严格来讲是 Overlapped range ,所以可以想成在 0.125 的误差分为内决定最终值。

来区分并观察分为 10 个阶段的 Roughness 值的变化。

先观察下 Knald Technology 的 LYS 。

Lys 3d preview 里预览 Roughness(BRDFs based on n_dot_h) 的样子。

这里我们需要讲一下,为什么要把Roughness 和 Metallic的因子值分成10个阶段来使用。

如果是追求完整的 PBR Work-Flow 就需要从更专业的角度出发,为了做出相应测量系数需要很多高价的装备。

比如 2016后半年上线的 the order 1886 是比较快投入 PBR rendering 并使用的具有代表性的游戏。

表现衣服质感的时候已经制作了 Fabric scanner 并把 diffuse 值和 Specular 值从偏光镜分离储存了, Normal map 或深度图也是从现实材料中摄影后使用的。

2018年中开始到现在次时代主机游戏开发商也会用测量装备和材质扫描器把现实世界的数据加工用于游戏资源,这也是趋势。

但是跟主机游戏的开发环境不同,游戏开发商的环境里会根据美术个人见解的差距,各个材质间的 Roughness 和 Metallic 值肯定会存在偏差率。

如果开发团队内部没有定义材质的标准值,美术制作的时候 (虽然会有个人偏差) 会在调 Roughness 值上花费时间,并以自己的喜好操作。

理解 Roughness。

这本书后半部会详细说明 PBR ,现在就简单讲下,这是物体表面微弱的粗糙度产生的反射光的散射。

这个表面粗糙度可以储存为数值,可以用 parameter 形式从 0 到 1选一个值储存, 可以使用贴图以 UV 坐标空间为准 Luminence 0到 1 的值(0 到 255 之间的色彩值)储存。

INPUT VALUE : ROUGHNESS EVALUATIONS VIA CONSTANT VALUE.

Roughness Output 连上常数后观察下。

Node search 里搜索 value 很容易就能找到 Input Value node 。

适用 1 值。

适用 0.5 值。

适用 0.25 值。

适用 0 值。

几乎是完全反射。

比如跟上面一样把  Gradation Linear 值用成 Roughness 值吧。

表面的粗糙度越接近 0 值越光滑,越接近 1就越粗糙。

这是经常会弄混的部分, 0 没有粗糙度 , 1有粗糙度,这么记下来的话 Metallic Roughness Setup 形式的Shader就不会弄混了。
 

Unity引擎把粗糙度的部分用成了光滑度,是用成了 Smoothness 。这时 0 就是不光滑, 1就是光滑,所以 Roughness 相反概念的值。 也就是说, Smoothness 自然就是 Roughness 值的反转值。

Roughness 值分类为标准值。

现在内部定一个合适的值的范围吧。

这个过程中可能美术们会有不同意见,所以初期要充分沟通后定义标准。

如果不充分说明要这么区分的理由,并对这种系统美术没有产生共识的话,有可能会不理解这个系统,并制作后也有可能不使用。

做某种系统的时候要把得失说清楚,并让他们知道哪些会有利于我们的系统。

如果跟美术协商好了,就以讨论好的阶段为准。

作者当初是想定位7个阶段的,但是美术需要至少10个阶段,所以最后决定分成10个阶段。

看上图从左侧开始是  0 ,越往右侧越接近 1。

10 个阶段的 Roughness 会对应总共 10 个 Color ID 。

美术可以在内部指定 Color ID 的颜色,让我们把这个颜色可以置换成 Roughness 值使用。


 Gray 值用 Value 评测。

在 Node search 里搜索 Value Processor 并添加。

生成 RGB(1,0,0) 的 Uniform Color node 。

连接 Grayscale conversion node。

Grayscale conversion 值都变更成 0 。

把颜色变换成灰色的时候会变成任意值,所以要确认结果值是常数多少。

这时使用的就是 Value Processor ,要添加 Sample Gray 。

选择 Value Processor ,修改 Function 。 (点击 Edit 键修改。)

添加 Sample Gray 。

Sample Gray 可以取输入的值(像素) 的各个位置。

选择 Sample Gray 的状态下,右击鼠标做 Set as Output Node 。

如上图形式连接 Value Processor ,就可以用 Value 值评测输入的值。

这是根据以上方式分成10个阶段的结果。

Color ID 是任意选的。

制作滤镜的方式。

现在要评价两种处理方式。

一种是单一 Layer 上执行所有 Color ID 的变换,一种是以 Generator 形式组成在 Substance painter里让美术方便使用。

为了学习基础,来做下一张 Bitmap 的 Color ID 信息自动变换成 Roughness 的 Instance Filter。

AUTOMATIC GENERATION COLOR ID TO ROUGHNESS  INSTANCE FILTER

为了确认滤镜起不起效制作 Test color id map 。

在PS制作 Color ID 。 ( 文件名 : ColorID_EvaluationTable.tga)

单独储存原有工程。

单独储存的 Color ID 为了学习生成的 Graph 之后会用成 Instance Node 。

像上图一样整理节点后储存。

生成新的测试工程后,会再修改这个 Graph 。

生成新的测试工程。

命名为 ColorID_Generation_Eval_Graph ,生成新的工程。

工程储存为 ColorID_Generation_Eval_Graph.sbs 。

Template 选择为 metallic/Roughness 。

Color ID map 输入后经过变换过程最终成为 Gray map 。

Gray map 是记录 Roughness 数值的信息。

导入之前制作的 Color ID map 。

作者以 Link 的形式导入了 Bitmap。

确认颜色。

为了制作 Instance Node 变更了环境。

Graph 画面左右分割,各自进行了 Main Graph 和 Instance Graph 开发设置。

左侧: AutoGen_ColorID_Roughness Graph

右侧: ColorID_Generation_Eval_Graph

打开 ConversionRoughness.sbs 文件并修改。

已经做完值相关评测了,所以 Value Pixel Processor 都删掉。

Value Pixel Processor 整理好了就开始下一个阶段吧。

会把预先指定好的 Color ID 色卡和功能连接起来。

需要制作 Color ID 指定的颜色误差范围,在误差范围内让 Roughness 值也自动含有误差范围。

END.

Liked it? Take a second to support leegoonz on Patreon!

댓글 남기기

%d 블로거가 이것을 좋아합니다: