OVERVIEW
来了解下怎么用 SD 构成制作工程。
为了维持PBR的品质,我们美术要用 SD 的各种功能制作系统并深入理解 SD 的 Workflow。

学习目标
制作用 Color Mask 的颜色便捷又快速地把 PBR Material reference 值适用到质感上的开发工程。
通过 Automation material 开发可以更深入了解函数的显示方式和 SD 的instance功能。
SD 里制作的 Automation material 做成 SP 里用的滤镜并使用。

MOTIVATION
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。

我们看下怎么让上面的值自动从 Color ID 变换。

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 都删掉。

About JP
链接: http://leegoonz.com
在这里插入图片描述

出生在韩国的TA。
1997年开始从事电脑图形视觉化工作后,在这个行业已经有21年经验了。
在多个网络游戏公司引领过美术团队,之前在allegorithmic担任TA负责人,在中国网易盘古工作室担任TA总监,现在是巨人网络TA部门的总负责人。
懒惰的人才有创意”是他坚信并执行的哲学道理。

有效运用 Color mask 和开发 Automation material - PART 1相关推荐

  1. 开发Google Material Design风格的WPF程序

    原文:开发Google Material Design风格的WPF程序 今天在网上看到了一个Material Design风格的WPF皮肤,看上去还是挺不错的 这个项目是开源的,感兴趣的朋友可以下载试 ...

  2. CATIA V6二次开发——Automation之对象

    Automation之对象 1. 对象(Object) 1.1 聚合关系 1.2 抽象对象(Abstract object) 1.3 集合(Collection) 1.4 AnyObject 1. 对 ...

  3. CATIA V6二次开发——Automation之属性和方法

    1.Automation之属性 属性是描述一个对象某个方面特性的值,这个值可能是对象,也可能是普通数据类型(整数.实数.字符串等). 比如 CATIA 中一个通过三个坐标值创建的点(HybridSha ...

  4. 【游戏开发实战】Unity粒子在UI界面中的裁切、蒙版、层级问题的解决(ScrollView裁切、Mask蒙版、UI粒子层级关系)

    文章目录 一.前言 二.最终效果 三.使用方法 1.引入插件dll 2.制作粒子特效 3.粒子材质球使用UIAdditive.shader 4.将粒子摆放在UI节点下 5.挂UIParticle组件 ...

  5. Unity VR开发中UI始终优先渲染不被物体遮挡

    Unity VR开发中UI始终优先渲染不被物体遮挡 在用Vive开发VR的时候,3DUI很容易被场景中的物体遮挡,解决办法是使用一个Shader:Overlay.shader,这个shader很好找, ...

  6. UE4 Material Properties

    材质 & 贴图 On this page: Physical Material Material Translucency Translucency Self Shadowing Usage ...

  7. 【备忘】Unity 单界面UI多个挖洞实现(shader+mask)

    引用:1:UGUIshader扣洞_那个妹子留步的博客-CSDN博客 制作新手引导时,遇到需要在界面显示多个挖洞的情况.  在翻阅一些博客之后,找到一种实现方法.具体思路是:用shader实现多个挖洞 ...

  8. Cesium开发基础篇 | 04空间数据可视化之Entity

    前面介绍了Cesium如何加载影像数据.地形数据.以及矢量数据,但是作为一个完整的三维系统,仅仅包括这些数据还是远远不够的.当然,还需要一些其他数据,比如空间可视化数据.三维数据数据等,今天我们先从空 ...

  9. 从0 到1开发一款App(三):设计

    我们先回顾一下上篇文章,上篇文章中我们主要讲了和产品相关的内容,包括优秀的产品.它们所具备的优秀特质以及<麻雀笔记>的产品思想等,还没看过的朋友可以点击下方链接进行阅读: https:// ...

最新文章

  1. react 树形菜单_关于React 使用antd组件递归实现左侧菜单导航树(MenusTree)的示例...
  2. mysql select简单用法
  3. 【拔刀吧少年】之shell编程规范与变量
  4. java 交替_Java 8:使用交替接口公开的类型安全地图生成器
  5. 第三十四期:花了一个星期,我终于把RPC框架整明白了!
  6. 基于zookeeper实现配置集中管理【转】
  7. 编程软件哪个比较好用?
  8. cad命令栏怎么调出来_cad自动标注【搞定指南】
  9. 使用Fontcreator字体制作软件及字体设计学习
  10. win10无敌隐身术
  11. heka 介绍,以及编译,备忘
  12. mac自带工具的抠图方法
  13. “竹影扫阶尘不动,月穿潭底水无痕”引出的……
  14. 安装VMware15虚拟机+Ubuntu19.10
  15. Google服务和软件大全
  16. 01-如何写SCI论文
  17. url action editor 快速修改swf链接
  18. 在xp下安装Ubuntu
  19. 作为一个技术Leader,要如何去提升团队的技术氛围
  20. 《热风》愿中国青年都摆脱冷气 摘抄记录

热门文章

  1. 《ANSYS 14热力学/电磁学/耦合场分析自学手册》——2.6 主菜单
  2. 微信小程序分页功能(上拉触底事件)
  3. NEW RDSP MODE I (模拟,循环节)
  4. linux添加五笔输入法,在Ubuntu16.04中为fctix小企鹅增加五笔输入法
  5. acill排序 java_java – 如何根据ascii值对ArrayList的元素进行排序?
  6. SQL Server代理(已禁用代理XP) 出现的原因以及解决方法【通俗易懂,简洁明了】
  7. 解决nvcc显示不是内部或外部命令的问题
  8. java学习 day01_basic
  9. Base64(本地存储加密解密)
  10. php中的preg_replace函数,PHP正则替换preg_replace函数如何使用