UE4材质系统研究

本文将研究UE4材质系统的各个节点,看看UE4的黑科技

1. 平移(UV坐标动画)

  UV 坐标动画或 UV 平移的含义是,水平 (U) 和/或垂直 (V) 移动纹理的 UV 坐标,以产生复杂动画的错觉。 在以下示例中,火焰纹理沿着 U(水平)方向平移,使火焰看起来像是在移动一样。

  参考文章:http://api.unrealengine.com/CHN/Engine/Rendering/Materials/HowTo/AnimatingUVCoords/

  关键节点:

  

  快捷键:p+左键

  

  上图节点可以把此贴图往左动态移动。

  

  上图为更加复杂的平移。

2. 凹凸贴图偏移(Bump Offset)

  凹凸贴图偏移(Bump Offset)贴图通过以创新的方式修改 UV 坐标来帮助强化纹素与对象表面的错位,从而营造出表面细节超出实际情况的错觉。

  凹凸贴图偏移(BumpOffset) 是虚幻引擎4术语,就是通常所谓的“视差贴图”。BumpOffset表达式可以使材质产生深度错觉,而不需要额外的几何体。BumpOffset材质使用灰阶_高度贴图_来提供深度信息。高度贴图中的值越亮,材质的“凸出”效果越明显;当摄像机在表面上移动时,这些区域将产生视差(移位)。高度贴图中较暗的区域将显得“距离较远”,其移位程度最小。

  参考文章:http://api.unrealengine.com/CHN/Engine/Rendering/Materials/HowTo/BumpOffset/index.html

  关键节点:

  

  下图中,左图为普通材质,右图为在此材质基础上加入凹凸贴图偏移。可以看出,右边的图凹凸感更为明显!

    

  左图对应的材质节点:

  

  右图对应的材质节点:

  

  在材质图中使用 鼠标左键 单击将BumpOffset选中,然后在 细节(Details)面板中,我们可以看到一些参数:

  

  其中的 高度比(Height Ratio)可以控制凸出程度。

  总而言之,我们可以使用凹凸贴图偏移(Bump Offset)来为材质添加额外的深度信息,而无需添加额外的 3D 几何体。如本例中,我们可以只用几张贴图模拟出了一面砖墙的效果,从而省略了大量的模型(砖)。

原文地址:https://www.cnblogs.com/mcomco/p/10710896.html

时间: 2024-08-07 22:23:24

UE4材质系统研究的相关文章

UE4材质初探

UE4的材质表面上看起来很简单,可是到了用的时候却总是没有办法实现好的效果.所以特意对文档进行阅读,初步了解了一下主要知识点. 当前使用的UE4版本:4.8.0. UE4中的材质有很多用途,可以用于光照.延迟渲染.粒子系统等等.由于暂时不会用到,目前只做了最基础的材质使用的研究,也就是说是Materia Type为Surface的情况.材质的最终输出节点上的可用项会随着功能选择的不同而有所不同.即便使用Materia Function使所有的引脚都是可用的也会在实际使用时根据选择而被禁用. 材质

UE4材质中的点乘DotProduct

向量点乘的定义 如果a和b是两个向量,那么 a·b = |a|·|b|·cos(θ) 其中θ是两个向量的夹角,cos是余弦.(数学公式输入好麻烦..) 下图说明了关系. 单位向量的点乘 在游戏中,表示方向的向量往往是单位向量. 为了简化起见,假设a和b都是单位向量,也就是长度为1,那么: a·b = cos(θ) 那么这个公式就简单了. 用点乘判断向量朝向关系 考虑到,cos(0)=1,cos(π)=-1,cos(π/2)=0,那么我们就可以用点乘来判断两个向量的朝向关系了. 友情提示,有些同学

UE4材质中的SphereMask

SphereMask的含义 SphereMask是个神奇的东东.看名字就知道大概什么意思,球形遮罩.. SphereMask效果演示 SphereMask 效果演示小视频 从演示中可以看出,当镜头距离越来越近时,材质开始发光.镜头边远时,材质发光变弱,直到完全不发光. SphereMask示例材质 SphereMask的参数 SphereMask有四个输入参数. A:待检查的位置. B:圆心的位置. Radius:半径. Hardness:硬度,0是完整过渡,100是没有过渡. 输出的是一个0~

UE4 材质Lerp节点解疑

转自:http://www.manew.com/thread-46268-1-1.html 1.A是一个灰色,B是一个红色,Alpha是一个颜色图 A到B是0到1,也就是黑到白,所以,alpha图,黑色的部分就会显示A部分,而白色的部分就会显示B部分, 得到最后的图是黑色部分透过A的灰色,白的部分就会透过B的红色,得到最后一张Lerp图. 2.官方解释 A–>B相当于0到1的变化,也就是黑到白的变化. 当Apha接入的UV像素,相当一张0到1的灰度值,根据这张图每个UV像素的0到的1数值,去混合

ue4 material custom node - global function and method

在ue4 material中定义全局函数 1. 背景 原文unreal-engine-4-custom-shaders-tutorial 中,提出了一种在material生成的hlsl文件中定义全局函数的方法,记录到这里以备复习. ue4 材质中的custom节点是用来使用hlsl代码的地方.一般来说都是直接编辑逻辑,最后添加return返回.类似这样: 1 float4 color = {1,0,0,1}; 2 return color; 使用ue4材质 menu window->hlsl s

UE4 分层材质 Layerd Materials

在UE4中最正规的材质制作流程就像: 建立新材质,并将其调整为达至完美. 在内容浏览器中,建立新材质函数,并将所有材质函数节点复制/粘贴到其中. 将网络连接到新的 Make Material Attributes(建立材质属性)节点,并将其连接到"函数"(Function)输出. 保存该函数. 将该函数从内容浏览器拖放到材质编辑器中.现在,它变为材质层. 使用材质层混合函数将多个材质层混合到一起. 该流程的具体步骤: 1,新建材质,将材质调好 2,新建材质函数,复制该材质,将材质函数暴

UE4笔记:利用Widget设计一个切换材质功能

UE4引擎中的Widget蓝图是一个重要的工具,可用于场景中的页面叠加,镜头绑定,场景切换等多处地方,在这里笔者介绍一种利用控件蓝图和场景中物体进行信息交互的方法,直观的体现就是进行物体的材质切换. 1.创建控件蓝图 控件蓝图不同于一般的逻辑蓝图,主要表现在其需要进行画面的设计和平铺.在内容浏览器中创建一个控件蓝图,命名为SwitchMat_UI 双击打开控件蓝图编辑器,进行页面的设计布局. 拖放一个水平盒子到页面中,位置和大小如下图所示(可根据个人喜好进行布局),命名为SwitchMat,同时

利用第三方材质对物体进行描边【UE4】【C++】

效果图: 第一步,创建C++ Basic Code 第二步,定义键盘和鼠标输入的映射 第三步,修改 Rendering 中的 Custom Depth - Stencil Pass 第四步,找到GlobalPostProcessVolume [如果没有的话自行拖放一个PostProcessVolume组件] 将 unbound 勾选上 再修改 Blendables 为 PPI_OutlineColored 完整代码如下: MyPlayer.h // Fill out your copyright

材质 “Glow 效果” 的实现【UE4】

效果如下:(由于对上传图片大小有限制,所以GIF截图质量下降严重) 算法较简单,首先来看 Base color 部分: 就是将对实现准备好的三张纹理进行线性插值,其中 Mask 为遮罩纹理 接着再来看 Emissive Color 部分: 算法也很简单,即随着时间的变化,经过变化的常量颜色和遮罩纹理进行线性插值,然后结果传入 Emissive Color 总览图 最后,附上 UE4 自动生成 HLSL 代码,有兴趣的朋友可以研究一下: // Copyright 1998-2016 Epic Ga