Substance Matrerial(.sbsar文件)

您所在的位置:网站首页 substance导入sbsar Substance Matrerial(.sbsar文件)

Substance Matrerial(.sbsar文件)

2023-05-25 16:29| 来源: 网络整理| 查看: 265

1. 什么是Substance MatrerialSubstance是Allegorithmic公司技术制作的程序化贴图材质。Substance基本上是一组map,用所有编辑器中所产生的参数(Diffuse, Normal, Specular, Bump等)来定义整个材质的最终效果。

1.1 支持Substance材质的3d软件Substance DesignerSubstance PlayerUnity 3d (3.5 以上的版本)Autodesk maya 2012 以上的版本 Autodesk 3dsmax 2012 以上的版本Autodesk Flame 2012 以上的版本

2. Substance 材质示例这里,我们在unity3d中,将Substance 材质和普通材质做一个对比,帮助还没有完全理解Substance的读者直观的理解Substance材质。

2.1  普通材质以下是一个应用了一张Diffuse 贴图的坦克模型。

2.2  Substance材质我们用Substance材质替换随模型导入的默认材质,看看有什么不同,从模型上看,似乎除了反射面略暗,颜色偏灰,没有太多不同。

但是观察一下Substance材质, 你会发现它和普通材质相比,多了一些参数:

修改Dirtness和Bumpness参数,让我们看看Substance给我们带来了什么。Dirtness = 0.5, Bumpness = 0.5的效果:

Dirtness = 1, Bumpness = 0的效果:

也就是说,Substance通过可视化和可编程化的参数接口,允许用户在运行时动态的生成不同的贴图,是不是很酷?更重要的是,用户只需要提供一张Diffuse贴图,就可以得到法线,和高光贴图, 图片体积比普通的贴图材质减少了3倍!

3. 创建Substance材质Substance Designer是 Allegorithmic公司发布的制作Substance材质的设计工具, 目前最新的版本是3.7, 官方授权费是570美元/2台机器。 大家如果是商业应用,请购买正版授权。

Substance文件类型在学习Substance Designer之前,先介绍一下Substance 文件。和程序代码一样,Substance也有源文件和二进制发布文件。源文件是以sbs后缀,内容为xml格式。 源文件可以在Substance designer 编辑并发布。二进制发布文件是以 sbsar后缀,sbsar文件是不可编辑的。Unity, 3dsmax, Maya中能使用的都是sbsar文件。只有substance designer可以发布sbsar文件。

使用Substance designer制作坦克材质关于Substance Designer的操作界面,快捷键,菜单栏等等基础内容,笔者不打算在这里详述,Substance Designer 界面非常简洁,自带有User Guide文档。

3.1 创建Substance菜单栏 File -> New Substance在弹出窗口中把Graph Name设为TankSkin, 其它保持默认。点击Ok。

3.2 添加Diffuse贴图将IS_4M.dds文件拖动到主面板。在接下来的弹出窗口按实际需要选择Import Resource或者Link Resource。 一个是把图像文件链接到sbs文件中(体积小),另一个是把图像文件内容嵌入到sbs中(体积大)。

IS_4M.dds:

这时你的主操作面板应该是这样的:

3.3 让坦克变脏 - 添加Dirtness参数制作一个充满污点的贴图是Substance最典型的应用之一,也非常容易实现。

3.3.1 添加Moisture Noise节点首先在Substance Desgner的左下方,Library下面的文本输入栏输入Noise, 会出现几排Substance预定义好的噪音生成器。

将Moisture Noise拖放到主操作面板中。

3.3.2 Add Node -> 添加Gradient Map节点将Moisture Noise的输出管线链接到Gradient Map的输入管线。这样做的目的是将Moisture Noise 从一个灰阶图(Gray scale)转换成一个色彩图(Color Map)。为什么要这样做,稍后就会解释。这时你的主面板应该是这样:

 

3.3.3 添加Blend节点Substance Designer 提供了许多预定义好的功能节点,Blend是其中比较常用的一个节点。它和3ds max材质中的Blend功能一样,可以将两张位图以不同的模式合成在一起。

接下来要添加Blend节点并且输出Diffuse贴图了。首先, 在主操作界面右键单击-> Add Node -> Blend。这会在你的操作界面上添加一个Blend节点。

仔细观察一下Blend节点, 它有三个输入源:最上面的是Foreground(前景图), 它一半是灰色,一般是橙色,意思是它可以接受灰阶或者色彩图。第二个是Background(背景图), 它也可以接受灰阶或者色彩图。第三个是Opacity (硬度图), 它是可选的,如果你不分配Opacity图, 它就是通过参数 – Opacity 控制。硬度图必须是灰阶图。

需要注意的是,Blend节点要求Foreground和Background的灰阶或色彩属性保持一致。也就是说,Foreground和background必须同时为灰阶或者色彩图! 这就是为什么我们在3.3.2 要用一个Gradient Map 将灰阶噪音图转换为色彩图的原因。

将Moisture Noise链接到Foreground 接口, 将IS4.dds位图链接到Background接口。 然后将Blend接口的输入端链接到Diffuse节点的输入端。

这时你的界面看起来是这样的:

选择Blend节点, 找到Blending Mode, 将Blending Mode 改成 Multiply

调节Opacity参数:0 = Foreground像素最弱,也就是无污点。1 = Foreground像素最强,也就是污点最强。 

Opacity = 0   

     

Opacity = 1

3.3.4 导出Blend/Opacity参数为可编程化参数现在你已经可以通过Blend节点的Opacity参数调节位图的污点程度。但是到目前为止,Opacity参数还只能在Substance Designer中可见, 离开了Substance Designer, 在Unity, Maya, 3dsmax 中是无法修改这个参数的,因为它还没有全局化, 它还只是Blend节点的一个本地参数。

现在让我们把这个参数导出成全局化的参数。

双击Blend节点在Opacity右边找到函数编辑按钮,它的图标是一个正弦曲线。

点击Expose, 这会将Opacity参数暴露给外界,变成一个可视化的参数。在弹出的Expose Parameter对话框,为Input Name制定一个名字 Dirtness:

 

一旦你将Opacity参数导出成全局变量 Dirtness, 它就不会再属于Blend节点了,要修改这个变量,你必须点击右上角的sbs项目才能在右边的属性窗口编辑这个全局变量。

这样,你就完成了生成一个动态污点的Substance材质的全部工作。

3.3.5 编译发布Substance – sbsar文件Substance已经就绪了! 你可以编译并发布它了。在右上角右键单击你的sbs项目,点击Publish: 

把这个sbsar文件放到Unity中,去看看效果吧 !

3.4 生成法线凹凸贴图Substance制作法线凹凸贴图也是非常强力的!而且不需要提供额外的贴图文件,直接从Diffuse 贴图生成。

这里要补充一下,Substance将Diffuse贴图转换成Normal贴图的原理是将贴图中的RGB标量值,通过公式计算转换成代表法线的向量值。但是这并不能反映出你的模型真实的凹凸情况,也就是说通过 Diffuse贴图生成的法线并不是真正基于模型本身的顶点信息生成的,而是通过Diffuse贴图的RGB值生成的, 如果你需要的效果是能真正反映出模型本身的凹凸特性,你应该直接添加一个法线贴图,而不是用Diffuse贴图生成。

3.4.1 添加节点首先请添加以下节点: Clouds_3(从Library中搜索), Levels(标准功能节点), Normal(标准功能节点),并链接到Normal Output.

如果你没有找到Normal output.可以用这样添加一个Normal Output: Add node -> output, 并将usage设为Normal(默认是diffuse).

这时你的主操作界面应该看起来是这样的(之前的污点贴图我就不截屏了):

这个图的意思是: Clouds_3 = 原始输入,用于产生高度图。Levels = 控制器,控制生成的平坦度。Normal = 转换器,将高度图装换成法线图。Ouptut Normal = 最终输出法线贴图。

3.4.2 关于Normal节点Normal节点的功能是: 接受一个代表高度图的灰阶图,并通过公式将这个高度图转换成法线贴图。灰阶图越白的像素,代表高度越高,越暗的像素代表高度越低。如果一个图片区域内的黑白像素越不均匀,则代表这一区域内的法线越不规则。反之,如果一个区域内的黑白像素十分均匀,例如,全部是黑色,或者全部是白色,则这个区域的法线则全部指向同一个方向,也就是越规则。

3.4.3 关于Level节点Level节点是Substance制作中最常用的标准功能节点之一。它的作用是在输入和输出端设置阀值,常用来调整图形的密度,明暗度等属性。在这里,我们通过Levels来限制输入像素的黑度,以达到调整法线的平坦度的目的。双击Levels节点,在右边的属性栏窗口,找到Specific Parameters 卷边栏,点击Values按钮:

点击Values按钮会从矩形图界面切换到到参数化界面。

调节Level Out Hight参数,观察Normal和Normal output节点, 你会发现随着Level out high的数值变小,输出法线贴图变的平坦。这是因为,你修改了Level节点输出的最大值。如果最大值为0,就是说所有输出像素的最大值是0,这样你的法线节点就是接受一个全黑的单色图片。

小结:Level out high越小,高度图的黑白像素越单调,输出的Normal 贴图也就越平滑。

3.4.4 导出Level/Level Output High参数将Level Output High 参数导出为 smoothness 后,你就可以在Unity/3ds max/Maya中通过这个参数来调节Substance材质的光华程度了。

小结以上只是介绍了 Substance 最典型的用途之一,并且介绍了Substance Designer设计Diffuse和Normal贴图的一般过程。 事实上Substance还能支持众多的输出通道,如Specular 高光贴图通道,Bump 凹凸贴图通道, Reflection 反射贴图等等。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3