美文网首页
Substance Designer制作真实高清室内木地板材质

Substance Designer制作真实高清室内木地板材质

作者: for3year | 来源:发表于2019-01-06 11:09 被阅读0次
最终地板木纹材质效果

1.真实地板材质解析

真实的地板通常包括平衡层、基材层、装饰层以及耐磨层。平衡层紧贴地面,因此实际制作材质的时候可以忽略;基材层就是三维模型;装饰层就是我们通常看到的纹理,其中包括颜色以及纹路信息;耐磨层就是表面镀上的一层聚氨酯漆(俗称PU漆)或者光敏漆(俗称UV漆),他们影响地板的亮度以及粗糙度。

地板结构

通常Substance Designer的材质包括Base Color(基本色),Normal(法线),Roughness(粗糙度),Metallic(金属性),Height(高度),Ambient Occlusion(环境遮罩/环境吸收)。

根据木质地板的结构以及Substance Designer材质生成工作流程,耐磨层可以通过Roughness节点(用于调节粗糙度)实现;装饰层可以Ambient Occlusion节点(用于调节亮度)实现;装饰层可以通过Base Color节点(用于调节纹理以及颜色)实现。此外,木板与木板之间还存在缝隙,缝隙效果可以通过Normal节点(用于调节凹凸)来实现。由于具有耐磨层的木质地板表面是基本水平的,因此不需要额外的Height节点实现表面的凹凸平;地板也不具备金属属性,因此也不需要Metallic节点。

 

2.具体实现过程

2.1初步流程

Substance Designer材质制作遵循如下流程:(1)生成Normal节点以实现凹凸效果;(2)生成Base Color节点以实现纹理和颜色;(3)生成Roughness节点以实现粗糙度效果;(4)生成Ambient Occlusion节点以实现亮度效果。这样做的优势在于首先可以从整体上对材质进行切割;后续再在配色的过程中,就可以使用凹凸的灰度图作为蒙版,实现精准颜色配置。

 

2.2生成Normal节点,实现木板拼接后的凹凸效果

新建Graph节点,根据自己的工作习惯可以选择不同的template(模板)。由于工作习惯,这里选择的是Physically Based(Metallic/Roughness)template,设置大小为2048*2048。

进入Graph节点之后,默认的渲染效果如下图。

利用万能的形状生成工具Tile Generator节点,生成期望的木板拼接凹凸纹理。

调节Tile Generator参数,设置Parttern Type = Square,Square模式的分块之间不存在模糊,非常干净清晰;Number

X=2,Number Y = 8,横向两个Square,纵向8个Square,一共16个,具体根据视觉效果调整,最好是保留有横向缝隙和纵向缝隙,以便后续调整缝隙效果;Scale=1,Square之间是完美填充,没有任何分界线,设置Scale=0.99,生成缝隙。效果如下图所示。其中十字架表示不带模糊效果的缝隙。

 Tile Generator  Parttern Type = Square 不带模糊效果的缝隙

实际上,地板的每个木板块之间的缝隙比较均匀,因此需要调节Tile Generator的Interstice参数。在Scale一定的情况下,Number X越大,则两个木板块之间的左右缝隙越小;Number Y越大,则两个木板块之间的上下缝隙越小;两个木板块之间的左右缝隙是可以通过Interstice X进行调节;两个木板块之间的上下缝隙是可以通过Interstice Y进行调节。可以看出,现在的横线比纵线的距离要窄些,如果以纵线的宽度为准,此时需要调节两个木板块之间的上下距离,即Interstice Y。

设置Interstice Y=0.03,基本上上下缝隙与左右缝隙一致。效果如下

上下缝隙与左右缝隙一致

然后创建一个Normal节点,两端分别连接Tile Generator节点和最终输出的Normal节点。

效果如下:

实际,地板不可能平铺地那么工整,通常存在错位的现象。因此,需要调整Tile Generator中的Square位置平移参数。

真实地板平铺情况

Tile Generator中关于位置平移参数有三组,一组是Offset,Offset Random,Offset Random Seed,主要针对一排Square整体相对于上一排Square,向左或者向右以固定值(Offset)或者随机值(Offset Random,Offset Random Seed)进行偏移;还有一组是Global Offset(下面包括X和Y),主要针对所有Square整体向左右(Global Offset->X)或者上下(Global Offset->Y)偏移;Postion Random(下面包括X Random,Y Random),主要针对单个Square随机左右(X Random)或者上下偏移(Y Random)。

地板的偏移只存在水平方向,为了保持地板平铺的美观性,这里设置Offset=0.5,即每一排所有Square相对于上一排向右平移单个Square长度的0.5倍,效果如下。

2.3 生成Base Color节点,实现整个地板的纹理

通常木材有两种切割方式,一种是径切,一种是弦切。

地板的条纹都是基于这两种生成的。这里我们采用弦切板的纹理。弦切板纹理像年轮一样一圈一圈的散开。这里需要用到一个小技巧来实现这种弦切板纹理,渐变映射。

同样创造一个万能的Tile Generator节点,设置Parttern Type = Bell,符合年轮的形状,后面再配合渐变映射,形成一圈一圈的效果;Number X=2,Number Y = 4,实现每两块木板上都有一个大的年轮纹理。

图中的黑色部分过多,为了使得年轮的圈数更多,减小Bell之间的上下左右间距。设置Interstice X=-1.5, Interstice Y=-0.5,效果如下。

下面就需要通过Gradient map 节点实现年轮效果。之所以采用Gradient map制作年轮,是因为这样做出来的年轮灰阶少,显得更加清晰干净。具体设置如下所示,主要是讲灰度滑块分割成多份,是的Tile Generator中按照灰度值不断映射,从而形成年轮效果。Gradient map 节点分割越多,年轮效果越细腻。进行渐变映射之后,效果如下。

这种效果存在两个不理想的地方(1)年轮中间的线条非常少,年轮之间的距离很长;(2)大片的白色块以及围绕白色块的粗黑线条。

通过在gradient map的最左端紧密添加一组黑白滑动块可以解决中间年轮距离较长的问题。通过在gradient map的最右端拉近黑色与白色来消除大片黑色。

最后还是剩下很多白色色块可以通过混合类似噪声加以消除。Noise Library里面有一个anisotropic Noise(各项异性噪声)。

anisotropic Noise

混合后的效果如下所示。

纹理做完之后,就需要与颜色进行混合。创造颜色的节点工具为Uniform Color。Uniform Color与Gradient Map作为新的Blend(Opcity=0.5)的输入。

混合之后的效果中可以看到不同的木块平铺的信息。效果如下图所示。

做木纹之前,曾设计过每两款模板公用一个弦切面,导致出现两个问题(1):所有的弦切面刚好在两个木块之间;(2):所有的木纹排列非常整齐。针对问题(1),可以设置Tile Generator 参数Global Offset Global Offset->Y = 0.08。

在设置Offset =0.3,实木纹呈现稍微不规则的排列。效果如下:

现在需要解决的问题是凸显出木块之间的缝隙,避免整个地板就像一块木板的不真实效果。这里就需要用到之前的构建Normal法线的灰度纹理。新增一个Blend节点(Opcity=0.62),将构建木质纹理的灰度图与构建Normal法线的灰度图相互融合,然后重新与颜色节点Uniform color节点混合。混合之后,效果如下。

但是仔细观察,会发现边缘部分特别尖锐,实际应该存在一定的扭曲,细节如下。

因此,需要在引入构建Normal法线的灰度纹理之间,需要对他进行模糊Blur(Intensity=0.5)和扭曲Warp(Intensity=0.005)。扭曲所采用的Noise节点是Cloud1。

最终的3D预览效果如下所示。

但是上面的效果还需要改进的就是,缝隙里可以看出木纹的延伸进去了。因此,需要做一个分割。分割的原理很简单,还是利用构建Normal法线的灰度纹理做蒙版,将缝隙部分的颜色设置为灰色偏暗。

蒙版处理之后的效果如下所示。

为了在纹理上表现更多的细节,可以在新增小年轮。新增Tile Generator,生成小年轮,参数如下,Pattern type=Half Bell(Bell也可以),Number X=7,Number Y=10;Scale Variation = 0.5,即大小在原始大小的0.5-1之间随机生成;Position

Random->X random=2.71,X random以Bell之间没有太多叠加为最佳。最后效果如下。

接下来利用gradient map生成干净的小年轮,效果如下。

经过新的混合Blend(Intensity=0.5)。由于黑白对比太强烈,很难与大年轮的灰阶相融合,于是新增Levels节点,减弱对比度。

最后,将小年轮、大年轮以及凹凸纹理像混合。

最终的效果如下:

其中年轮的数量有点多,看起来不太自然。可以通过Tile Generator的random Mask进行随机消除。random Mask=0.15(Invert Mask = True,random Mask=0表示所有年轮都小时,random Mask=1,表示显示所有年轮)。

因为融入了小年轮,所以对之前缝隙遮罩进行了调整。即现将小年轮和大年轮混合之后,再利用凹凸纹理进行遮罩,避免缝隙里有年轮纹路。

最终的效果如下。

2.4实现Roughness节点,改善木质的粗糙度

材质越光滑,则光线反射越强烈;反之,越弱;粗糙节点的灰度图中黑色部分代表平滑,白色部分代表粗糙。而直接将上面的Base Color灰度节点中白色和灰色偏多,加上Levels节点,调整灰度值,使得整个灰度图偏暗。然后Levels节点连接到Roughness节点。

2.5 实现Ambient Occlusion节点,改善光照强度

一般在光照模型中,ambient light的计算方法为:A = l * m,其中l表示表面接收到的来自光源的ambient light的总量,而m表示表面接收到ambient light后,反射和吸收的量。出于性能考虑,在计算光照时,我们是不考虑那些从场景中其他物体反弹过来的光的,因为通常我们认为这些光在场景中被发散和弹射许许多多次以至于最后从各个方向照射到物体上的量是相同的。所以ambient light所做的就是提亮物体,它没有任何真实的物理光照计算。

Ambient Occlusion技术的作用就是改善ambient light的效果,使物体看起来饱满有层次感。在普通的ambient light计算中,我们认为所有的光线从各个角度照射到物体上时是等量的。在Ambient Occlusion技术中,我们将遮挡考虑进去,也就是说,表面从各个方向接受到的光的总量不再是等量的,而是取决于从表面的上半球体照射到表面的光线被遮挡了多少。

对Base Color纹理进行模糊和色阶处理,使得整个纹理亮度偏白。

对Base Color纹理进行模糊和色阶处理,使得整个纹理亮度偏白。

处理之前的Base Color纹理与处理之后的效果如下。

2.6 细节调整

目前的效果是模板之间的缝隙呈现黑色,需要对Base Color节点的灰度纹理进行调节,减轻黑色部分的颜色。处理之前的Base Color节点的灰度纹理如下所示。

Base Color节点的灰度纹理

要想减轻缝隙的颜色,需要在缝隙上混合白色。大致的原理是,利用如下纹理对其进行灰度反转。

灰度反转原图

然后利用Levels节点降低黑白对比度。

再与Base Color节点的灰度纹理混合。混合的时候,将灰度反转原图作为蒙版。最终效果如下。

最后的3D预览效果如下:

调整后的Graph节点如下:

2.7 IVay渲染

3 总结

目前是开始接触Substance Designer阶段,希望记录如上地板材质生成过程。其中难免会有理解偏差的地方,待日后的训练中不断深入。

SD材质的源文件和生成的2K高清材质可从我的网盘下载:https://pan.baidu.com/s/1IdNjjflmf_jl2JtK_FLWxg  提取码:373j


2019.1.5 

for3year

相关文章

网友评论

      本文标题:Substance Designer制作真实高清室内木地板材质

      本文链接:https://www.haomeiwen.com/subject/dvxvhqtx.html