UE4入门(一)UE4里主材质节点的基本属性

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了UE4入门(一)UE4里主材质节点的基本属性相关的知识,希望对你有一定的参考价值。

参考技术A 所有材质都有一个最基本的主节点。

一。Material Domain (材质域)

    Surface(表面)

    Deferrd Decal 

    Light Function(灯光效果)

    Volume

    Post Process(后期效果) 比如带外部轮廓的特殊材质。

    User Interface (界面UI)

二。Blend Mode (混合模式)

    Opaque(不透明) 它定义了光线无法通过或穿透的表面。此模式适用于大部分塑料、金属、石头等。

    Masked(遮掩) 用来控制可见性的对象(黑色表示透明、白色表示不透明、灰色表示半透明)。比如需要镂空的花纹等,这种某些区域可见,某些区域不可见的材质适合这种模式。这种模式剔除的像素无非是 不绘制,在遮掩的区域看不到任何反射。使用“遮掩”(Masked)混合模式时,需要特别注意  不透明蒙版剪辑值(Opacity Mask Clip Value) 属性。此属性包含 0-1 标量值,用于控制将不透明蒙版纹理的哪个值用作分界点,这个分界点之上所有  较暗  的值都不会进行渲染。

    Translucent(半透明) 使用灰色的“不透明度”纹理可以产生显示为半透明的对象,从而仅让部分背景穿透显示,例如玻璃、水等材质。半透明材质目前不支持镜面反射,所以在表面上不会看到任何反射。但是,可使用“立方体贴图”通过类似于以下的网络来模拟此类反射:

    Additive(加性)原理: 获取材质的像素,并将其与背景的像素相加。这与 Photoshop 中的线性减淡(添加)混合模式非常相似。这表示不会进行暗化;因为所有像素值都添加到一起,因此黑色将直接渲染为透明。这种混合方式适合于各种特殊效果,例如火焰、蒸汽或全息图。这种混合方式不支持镜面反射,可使用“立方体贴图”来模拟反射效果:

    Modulate(调制)原理: 将材质的值与背景的像素相乘。与 Photoshop 中的正片叠底模式混合模式非常类似。这种模式最适合于某些粒子效果。注意,此模式不支持照明或单独半透明。

三。Shading Model (光照模型)  光照模型控制材质如何处理入射光。也就是控制组成材质的输入数据如何被用来创建最终外观。 光照模型分为默认光照,无光照,次表面以及预集成皮肤 。 对大多数表面来说,会使用第一种光照模型,其它3种为特殊类型的光照模型,主要用来帮助特定类型目标创建更为真实的效果。

    Unlit(不受光照) 

    Default Lit (受光照)

    Subsurface (次表面)

    Clear Coat (漆类的表面)

    Hair (头发)

    Cloth (衣服)

    Eye (眼球)

  1.   默认光照     默认光照是默认的光照模型。 该光照模型使用的是直接和间接光照,以及反射的高光。

   2.  无光照   无光照的光照模型仅对颜色输出自发光特效,使得此特效非常适合于火焰效果或照亮目标。如下图的自发光材质,它没有把光照投射到场景中。 取而代之的是,它的高自发光值导致了闪光效果,这个效果同时由应用到摄像机的Dirt Mask(泥土蒙板)所使用。 看起来它照亮了四周,但实际上此目标将不会投射光照或阴影。

    3.  次表面  次表面光照模型模拟次表面散射的特效(俗称3S材质)。 这是一种真实世界效果,光照会穿透表面然后从整个区域中漫反射。 从冰面,蜡烛以及皮肤上观察到这种效果,表面看起来有一种半透明的深度感。次表面模型都依赖于次表面颜色输入,可以把它看作是目标表面下的颜色,这样的话,当光照在表面发生散射时,我们将可以看到该颜色。 

    4. 预集成皮肤   预集成皮肤光照模型在本质上非常类似于次表面光照模型,但对人类角色皮肤的渲染有系统性能消耗低的特点。 尽管在物理上并不完美,但相对于次表面光照模型,此模型对于角色上的光照处理经常能获得良好的效果,并且渲染时消耗的系统性能更少。

参考:UE4官方文档

UE4材质初探

UE4的材质表面上看起来很简单,可是到了用的时候却总是没有办法实现好的效果。所以特意对文档进行阅读,初步了解了一下主要知识点。

当前使用的UE4版本:4.8.0。

UE4中的材质有很多用途,可以用于光照、延迟渲染、粒子系统等等。由于暂时不会用到,目前只做了最基础的材质使用的研究,也就是说是Materia Type为Surface的情况。材质的最终输出节点上的可用项会随着功能选择的不同而有所不同。即便使用Materia Function使所有的引脚都是可用的也会在实际使用时根据选择而被禁用。

材质输入引脚

材质中最为关键的是作为最终输出结果的引脚,根据情况的不同有的会使用,有的并不会被使用。

基础颜色(Base Color)

定义材质的颜色,接受参数为Vector3(RGB)。颜色采用float形式,任何超出范围的输入数值都将被clamp到0~1的范围内。

相当于在摄影中使用偏光镜滤除由反射引起的杂光之后的物体的颜色。偏光镜的效果可参照以下对比图。

技术分享图片

右边为加了偏光镜后的效果。

金属(Metallic)

定义材质接近金属的程度。0~1的范围由低到高的接近金属材质。从个人感官上,金属性决定的是类似于高光反射强度的参数。

高光(Specular)

在大多数情况下保留默认的0.5即可的参数。调整的是非金属材质的高光反射强度,对金属材质无效。

经实际测试,在金属性为0.5时,这个参数几乎没有可视觉识别的影响。在金属性为0时可以为增加一定程度的高光反射。

粗糙度(Roughness)

定义材质的粗糙程度。基本和现实生活中一样,数值越低的材质镜面反射的程度就越高,数值越高就倾向于漫反射。

自发光颜色(Emissive Color)

定义材质自主发出光线的参数。超过1的数值将会被视为HDR参数,产生泛光的效果。

高动态范围成像(简称HDRI或HDR)是用来实现比普通图像技术更大曝光动态范围(即更大的明暗差别)的一组技术。高动态范围成像的目的就是要正确地表示真实世界中从太阳光直射到最暗的阴影这样大的范围亮度。

不透明度(Opacity)

定义材质的不透明度。

不透明蒙板(Opacity Mask)

只在Masked Blend模式可用的参数,与半透明度不同的是。不透明蒙板的输出结果只有可见和完全不可见两种。通常用于实现镂空之类的效果。

普通(Normal)

其实是法线参数,通常用于连接法线贴图。UE4中文一直使用『普通』这个翻译,不知是否有什么深意……

世界位置偏移(World Position Offset)

世界位置偏移参数使得材质可以控制网格在世界空间中的顶点位置。

使用时如果遇到剔除投影之类的错误,则需要放大网格的Scale Bounds,虽然这样做会导致效率下降。

世界位移(World Displacement)

与上面的属性相似,不过世界位移只能在Tessellation属性有设置时才起作用的。

多边形细分乘数(Tessellation Multiplier)

同样只有在设置了Tessellation属性时才可以使用,决定的是瓷砖贴片的个数。

技术分享图片

次表面颜色(Subsurface Color)

只有Shading Model为Subsurface时才有效的引脚,用于模拟类似于人类皮肤这样在光线透过表面之后会有第二种表面颜色反射的情况。

透明涂层(Clear Coat)

透明涂层通常用于模拟在材质的表面有一层薄的透明涂层的情况,如钢琴烤漆之类的效果。

透明涂层粗糙度(Clear Coat Roughness)

决定透明涂层的粗糙度。

环境遮挡(Ambient Occlusion)

用于连接AO贴图的引脚。

折射(Refraction)

用于调整透明材质的折射率的。

像素深度偏移(Pixel Depth Offset)

当前官方文档没有说明。

常用节点

引擎提供了很多非常使用的节点,不过数目有点多,只能在实际使用中熟悉才能渐渐的掌握。下面列出的是可能会经常被用到的节点:

Panner

对UV坐标进行平移,用于UV动画的实现。

技术分享图片

Rotater

对UV坐标进行旋转,同样用于UV动画的实现。

技术分享图片

BlackBody

这个节点可以对贴图应用一个黑体辐射效果,实际效果就像是过了一遍热成像扫描。

技术分享图片

BumpOffset

这个节点用于实现视差贴图,使得贴图更具有真实感。

技术分享图片

ConstantBiasScale

这个节点将输入值加上一个值之后再乘上一个值。例如将正弦函数的结果由[-1~1]压制到[0~1]就可以使用1,0.5的参数来操作。

Fresnel

这个节点将摄像机向量与网格法线向量进行点乘并应用到0~1的范围中。

技术分享图片

当摄像机方向与网格的法线垂直时返回1,当方向一致时则返回0。Fresnel的计算在设置了法线贴图时则会使用法线贴图进行运算。这个节点可以用于区分边缘,例如玻璃材质就会使用到。

详细的用法可参照官方教程:Material – How To Use Fresnel in your Materials

DepthFade

这个节点的作用是使得两个透明物体在叠加时显得更加自然。

技术分享图片

DepthOfFieldFunction

这个节点的作用如其名称,提供景深的运算结果。0~1的范围代表从聚焦到模糊。

技术分享图片

Desaturation

这个节点的作用是去色,会生成一个单调柔和的灰度图。

Distance

这个节点的作用是计算两个输入值的距离。输入值可以是两个点、颜色、位置或者向量。

FeatureLevelSwitch

这个节点允许对不同的设备使用不同的材质以保证材质在低运算率的设备上能够有平滑的切换。

QualitySwitch

这个节点可以让材质在不同的视频设置下使用不同的数值。

GIReplace

这个节点为材质提供在全域照明下产生不同间接光效果的方法。

技术分享图片技术分享图片

LightmassReplace

这个节点可以使得材质在被到处为光照用时使用一个不同的值。

LinearInterpolate

就是Lerp,线性插值,基本上复杂的材质都会用到。

Noise

这个节点的作用是生成噪波图。

RotateAboutAxis

对给定的向量进行旋转,通常用于获得选择WorldPosition之后传递给WorldPositionOffset。

SphereMask

这个节点在指定的位置生成一个球形并进行距离计算,圆心处为1,外围为0。

AntialiasedTextureMask

对输入进行抗锯齿运算。

技术分享图片

————————————————————-

到此初步探索就算是完成了,要一下子实现自己想到的材质效果还是有点难度的,不过至少不会茫然了。想要对材质更加的熟悉,需要的大概是更多的经验的积累。

技术分享图片
本文链接地址: UE4材质初探
本博客所有内容遵循CC BY-NC-SA 3.0协议:

再分享一下我老师大神的人工智能教程吧。零基础!通俗易懂!风趣幽默!还带黄段子!希望你也加入到我们人工智能的队伍中来!https://blog.csdn.net/jiangjunshow


以上是关于UE4入门(一)UE4里主材质节点的基本属性的主要内容,如果未能解决你的问题,请参考以下文章

UE4 分层材质 Layerd Materials

UE4 材质渐变节点 VectorToRadialValue(矢量到径向值)

UE4/Blender 实用材质节点笔记

UE4 材质Lerp节点解疑

UE4材质颜色动态更新

UE4 后期材质节点学习