你想在你的场景中添加灰尘、污渍,泄漏,鲜血飞溅,钢印号码,墙上的海报和涂鸦吗?
一种方法是创建一个新的纹理变化并将添加的细节烘焙到纹理本身。因此,你现在使用一个干净的没有任何细节的纹理材质,和另一个纹理带有细节—如墙上的污点泄漏。
但是如果你想在墙的另一个部位有这个贴图细节呢?比如放在墙的顶端而不是底部。那么如果是在一个关卡的另一个物体的完全不同的材质上添加这个污点泄漏的贴画呢?那么,按照之前的方法,这就意味着你需要再创造另一个材质。
这太浪费了
你应该怎么做呢—答案就是使用decals
将一个贴花应用到墙体的特定部分。调整贴花来满足特定的静态网格,你甚至可以控制哪一个几何投影接收预期的贴花,哪一个不使用贴花。
下面的例子就是带有贴花以及没有贴花的同一个场景的比较
贴花是一种materials可以投影到现有的被放置在关卡中的几何材质中(例如:静态网格,BSP画刷或骨骼网格)
贴花是最有效的办法来添加额外的细节到一个关卡中而无需创建一个新的材质或者是对原有的material 做变化。
那么,如何在UE4中创建你的第一个decal呢?
在我们进入正式的主题(创建decals)之前,你必须知道一些基础内容。Decals有时候可能也会变得非常的复杂以及繁琐,尤其在处理有透明度和阴影的材质时。所以,我们先从基础开始,完整的创建一个简单的贴花。这将会让你了解创建贴花几个必要的步骤。
STEP 1: LAUNCH/CREATE UE4 PROJECT
打开/创建一个UE4 工程
STEP 2: CREATE NEW MATERIAL
点击添加新项-材质
点击添加新项-材质
然后给这个材质命名-本例中我命名为“Mydecal”
STEP 3: SET MATERIAL TO DEFERRED DECAL
双击decal材质来打开材质编辑器:
双击decal材质来打开材质编辑器:
用Translucent blend模式,你可以指定弥漫,金属、镜面、粗糙度、发射,透明度,和正常性能材料贴花。
一个值得关注的要点是Translucent blend mode 在烘焙以及静态光照中不起作用
STEP 4: ASSIGN A BASE COLOR VALUE
使用Constant3Vector节点并将其连接到Newmaterials中的基础颜色
STEP 4: ASSIGN A BASE COLOR VALUE
使用Constant3Vector节点并将其连接到Newmaterials中的基础颜色
STEP 5: SAVE THE MATERIAL
单击Apply和Save在材质编辑器中保存你的贴花。
贴花是添加额外的细节通过染色、泄漏、污垢、飞溅的最好方式,印刷数字/字母或海报上已经放置静态网格在水平。贴花是加载到已经放置在关卡中的静态网格上的染色、泄漏、污垢、飞溅等等最好的方法中的一个。
但是如果你添加的贴花在阴影中不能被渲染或者是间接照明区域,如下:
你的贴花在dynamic lighting起作用,这里的灯光需要设置为固定或者是可移动
但他们不能在间接静态照明下工作,这意味着周围的任何光源被设置为静态
或在任何贴花不直接被固定的或者是可移动的光照照明的情况下,如下图:
甚至使用无光照视图模式也会使得贴花消失:
如何去处理这样的问题,你应该怎么做呢?
虚幻4引擎包含特殊的贴花渲染系统,包含了更多的可预测的性能行为与一般渲染提速。但是在Unreal默认的情况下在间接被烘焙的静态光源下你设计的贴花不被渲染。 所有的贴花都需要接收动态光源来在关卡中显示贴花(这种情况下,所有的光源都应该被设定为固定或者是可移动类型,而不是静态的)你有三种方法在阴影或者是间接静态光源下渲染你的贴花:
只在受固定或者是可移动光源的影响区域贴附你的贴花
· 避免在间接光源区域使用贴花(例如在阴影下或者是静态光源的边缘)
· 开启贴花的DBuffer模式,这也是我们本节课想说明的,来开启在任何灯光下让贴花起作用的功能
下面我们来一起研究一下第三种方法
首先使DBUFFER DECALS开启
为了让你的贴花在间接光源下渲染,你需要开启DBuffer贴花选项。这个功能在默认的模式下是不被开启的,因为他会耗费一定的CPU和内存。
下面我们就来一步一步说明如何在Unreal中打开这个功能
第一步就是在项目设置中找到DBuffer decals并开启
第二步就是在蓝图中修改贴花的选项在DBuffer模式下起作用
STEP 1:
转到编辑>项目设置:
找到Rendering,做如下的修改:
ighting:
· DBuffer Decals: On
Optimization:
· Early Z-pass: Opaque and Masked Meshes
· Moveables early in Z-pass: On
STEP 2:
现在我们就来修改在间接光下或者是阴影下的那些贴花。这种情况下的所有的贴花都需要被修改。
双击你的贴花来打开材质编辑器:
· DBuffer Translucent Color, Roughness, Normal
· DBuffer Translucent Color
· DBuffer Translucent Color, Normal
· DBuffer Translucent Color, Roughness
· DBuffer Translucent, Normal
· DBuffer Translucent Normal, Roughness
· DBuffer Translucent Roughness
这时候要做的就是根据你的decal来选择上述选项中的一个。例如,如果你的贴花包含基础颜色以及Normal map这两个输入,然后就在选项中选择“DBuffer Translucent Color, Normal”然后点击编译以及保存。就这样将所有你需要去改变的贴花都做这样的变换。
STEP 3:
在做了这些改变之后,重启编辑器
项目中所有原来有的渲染需要重新编译一遍(当然你运行的时候编译会自动运行)
你现在应该能看到在间接光源或者阴影下贴花也能起作用
那些其他的贴花呢?
所有的其他的贴花如果在Translucent, Stain, Normal or Emissive设置下这时候也不会被渲染,这时候其他的贴花都要设置成默认的"DBuffer Translucent..." 这样其他不在阴影的贴花也能在DBuffer模式下渲染
如果DBuffer让你的项目或者是编辑器崩溃怎么办呢?
注意:只有在DBuffer情况下你的项目崩溃了才用下面的方法。
转到你的项目储存的文件夹下
或者是在UE启动器的项目文件夹下右键选择"Show in Folder":
进入Config文件夹下并且打开DefaultEngine.ini文件:
用记事本打开这个文件,鼠标拉到底部,会看到这样的代码,将其修改为set r.DBuffer=False
保存并关闭这个文件最后重新启动你的项目,这时候发现一切又回到最开始的时候了,是不是很神奇。
没有评论:
发表评论