技术文章

Shader 教程 | 如何在地面上做一个有深度的裂缝地裂

欢迎来到一个关于如何在地面上制造裂缝的新教程!(老教程了)

我们将涵盖以下内容:
– 地裂纹纹理
– 3dsmax 上的地裂纹网格
– 着色器需要统一的效果
– 快速设置

让我们进行Photoshop并创建我们的地面裂纹纹理。因为我们要将其转换为插画笔画,所以也可以在插画家中完成。(我在photoshop中对此进行了解释,因为有很多人与PS一起玩但没有碰到Ai)
破解可以是您想要的任何东西,您可以从互联网上添加一个,自己绘制,或使用自己的破解库(如果您拥有其中一个xD),然后确保保存该项目,因为我们将以后需要它来制作其他类型的纹理。
现在对最终图像的要求将是:透明bg,白色填充和笔触效果。像这样:

可以把png导入PS 转路径导出 分辨率越大越精细,注意不要卡死了

 

好的,现在,我们开始操作,放开3dsmax。
提取.ai文件并将其放入3dsmax

好极了!如您所见,裂缝很好地转换为样条!:D
所以下一步是将其在所有轴上的位置设置为0

右键单击并将其转换为可编辑的多边形

正如您所看到的,我们的裂缝将被填满,这是我们的待办事项清单的另一勾。
重要说明:如果裂纹的顶点过多(示例中的裂纹为5k),我完全建议对其进行优化以删除一些顶点。
现在,在右侧的“选择”折叠下单击边缘图标,我们将要操纵该对象的边缘。

现在选择所有边缘(红色是选定的边缘),并按住Shift键将其向上移动以制作墙。

停止按住shift键,您将能够移动这些边缘以适合您所需的高度。
现在,我们将制作此网格的UV。取消选择edges选项,然后向对象添加Unwrap UWV修改器:

一些边缘将显示为绿色,这些边缘为已切割边缘。因此,让我们继续打开UV编辑器

在这里,我们将看到网格的UV,如您所见,我们只能看到3dsmax对我们所做的切割。
但是,我们确实希望我们自己进行切割,所以要关闭UV编辑器。
现在,我们必须选择地板边缘和墙壁边缘之一,以将地板与墙壁分开并使墙壁平整(稍后将解释为什么这样做)
要选择所有地板边缘,请首先选择多边形选择,选择地板,然后按控制键,切换到边缘选择。(有那么多选择吗?)

选择这些边缘后,转到折叠“ Peel”,并将边缘选择转换为接缝按钮,当按下该按钮时,红色边缘将变为蓝色:

现在,取一堵墙的垂直边缘并将其也转换为接缝。

通常,UV接缝会在玩家经常看到的边缘上切开。为什么?非常简单,接缝是网格贴图的限制(颜色,法线,镜面,金属,粗糙度等),因此,例如,如果接缝位于角色脸部的中间,则玩家会注意到在脸上的直线。显然有避免这种事情的方法,但是很高兴知道这一点。
要完成UV,请转到UV编辑器,查看更改,然后单击快速剥离按钮。

您将看到裂缝保持不变,但是现在显示了墙壁(那是因为墙壁隐藏在裂缝上)。但是,墙壁正在做他们喜欢的事情,我们希望em是一个不错的矩形。现在选择它,旋转它,拉直选择并打包。然后使用自由格式重新缩放以适合我们想要的位置

并且不要忘记选择地板并重新缩放比例,然后将其调整为具有以下内容:

再次,这不是削减UV的最佳方法,但是还可以,因为我们只希望UV用于以后将看到的辉光。
我们已经完成了“无聊”的部分!:D让我们导出为fbx / obj并将其添加为unity。


现在好人,现在是我们发光的时刻。但是在将光辉照耀得真正统一之前,请先返回该Photoshop文件查找裂缝,然后将其保存为黑色背景。像这样:

让我们关闭所有非统一的事物(显然是该窗口除外),并从着色器部分开始。

我们将需要3个着色器:
– Hole Shader(就是那个,要看穿的孔)
– Hole Crack Shader(将是我们制作的网格
– InThings Shader(无论我们要放置在地面裂缝中的什么东西)

从最简单的孔着色器开始。
转到“Window”>“Shader Forge”

这将弹出ShaderForge窗口。点击New Shader> Unlit,并用描述性名称保存

首先更改路径名称。然后将LOD更改为200

下一步转到混合选项,并将BlendMode更改为“ Alpha Blended”,因为我们要修改着色器上的Alpha。取消标记R,G,B,A,并取消标记“自动排序”。

现在,这种效果的魔力是这样的:
对于hole shader,我们对相机说,基于纹理,不要使用“渲染队列”来渲染该孔中的任何内容。
因此,我们将为该hole shader提供X渲染队列和LOD。为了使我们想要的东西在此hole中可见,我们将弄乱它们的“渲染队列”和“ LOD”以能够对其进行渲染。
返回我们的“自动排序”选项,将顺序设置为Opaque Geometry并减去2,然后将“Render Type”更改为Opaque并标记“Write to Depth Buffer”以完成着色器的设置。
如您所见,shader中没有任何警告或错误,但已进行Alpha混合并且未连接不透明度。忽略我们将要删除的颜色节点并添加一个Texture节点,然后将该Texture节点Red通道传递给Opacity Clip。

不要忘记重命名纹理,我们不想在工作区中使用无序着色器

现在关闭shaderforge或忽略它。让我们团结起来,为该shader创建材质

现在,将该材质添加到Quad中,看看它看起来多么奇怪。然后添加我们之前制作的纹理

如您所见,我们可以看到天空框:D,因此我们完成了hole shader。
让我们继续第二个shader,即hole walls shader。
首先,将墙壁网格物体添加到我们的层次结构中。

现在我们有了可爱的网格物体,让我们回到Shader Forge,Window> Shader Forge和新的Lit(PBR)。记住要用漂亮的描述性名称保存它。

是时候调整设置了。
在“shader settings”中,我们只需要做一件事:更改路径。

现在,保持闪电不变(如果要更改“Gloss 光泽”模式或“ specular镜面反射”模式没问题),将不会触摸几何图形,因此直接进入“Opaque Geometry”。
我们要更改的唯一一件事是自动排序。取消标记,然后选择“不透明几何”并减去2。

现在,所有设置都已完成,让我们转到节点部分。
当然,我们可以像这样保留它,然后继续下一步,但是我们在这里没有做出令人讨厌的效果,因此我们将为裂纹添加漂亮的光泽。
因此,让我们删除所有节点并开始没有节点。按住ALT键,选择所有节点并删除它们。

现在,让我们开始添加“ Metallic/Specular Glossiness/Roughness ”滑块。

不要忘记重命名它们。

此刻,它是从基础色开始的。让我们创建2种颜色:底色和内孔颜色。


现在,我们希望将每种颜色都带有辉光底色,因此我们要创建该指南。
不要害怕,它很容易做到!:D
首先让我们添加以下节点:UV Coord和一个滑块。

在合并UV的垂直线和HoleColorPredominance滑块之前,我们将需要该滑块提供更多输入。但是因为0到1的变量是有用的,所以与其重新更改最大值,不如重新映射它:

现在,像炼金术士和乘法节点一样将它们结合起来,然后钳制输出。。

但是,等等,这不是全黑的吗?
这是因为“底色优先度”确定为“ 0”,请移动它以查看指南的移动。

下一步是打电话给我们最好的朋友Lerp,并给他颜色和指南:

挺好的!
让我们将其添加到基础颜色中

现在,我们将能够将材料添加到网格中,以便我们可以看到它的外观:

让我们稍微调整一下材质的特性,我会让它就像现在这样。

好的,现在也该将颜色转换为发射光了。顺便说一下,我们将随着时间的流逝添加它。
因此,首先,我们添加一个带有值/滑块,时间节点的“ TimeControl”设置,并将两者相乘。请记住使用以下名称重命名值/滑块:EmissionSpeed,GlowSpeed或类似名称,并将其设置为1。


现在,我们将需要一些随时间改变发射强度的方法,因此我们将通过重映射和正弦来实现。我们将使用sin使值随着时间推移而进出,然后重新映射一点以从该sin中获得我们想要的波,然后将该输出用于强度重新映射。


现在我们有了该设置,让我们创建一些值来说重新映射我们想要的强度限制。我将封装最小值之间的0,因为低于0的发射将以负值发射,这不是我们想要的。并且在输入上最大为1(它不会得到大于1的值,因为我们之前已经重新映射了它)和3属性值,以使任何人都可以更改最大强度。


现在我们有了发射的指南,我们将需要颜色并从中减去地面,因为底色不必发射任何东西。我们将通过减法和乘法来实现,然后输出到发射。

至此我们完成了着色器!!
不是优化的,但它是处理此类事情的一个示例。
让我们继续到现场并查看网格。

好极了!这看起来不错。现在是最糟糕的时候了,对我来说至少。使网格与面罩贴合。
首先,将“孔”着色器的“渲染队列”设置为1999进行查看。为什么在创建着色器时不进行设置?好吧,只是因为顺序。就像在“团结的排序层”中,所有的都为0,所以我们的0为1998。

现在可以同步了。

但是,嘿,真正的光芒在哪里,绽放在哪里?
好吧,也许在后处理stack上盛开着花朵。因此,让我们进入Uniytasset store并搜索post processing stack,然后将其导入。


导入后,让我们返回场景并选择摄像机,以将其添加到后期处理行为中。

好的,现在,我们必须创建Camera行为要求的PostProcessingProfile,因此转到项目并创建一个项目,然后根据需要进行调用,但这应该是描述性的,以了解我们使用的是哪些后期处理过滤器,或者我们在哪里?使用过滤器…

现在,将该配置文件添加到摄像机,因为我们希望在执行过程中看到更改。

您是否注意到现在现场出现的后期处理能力?
如果没有,那还好,因为我们没有对配置文件做任何事情。
如果是,您应该去看医生或停止吃奇怪的东西。
因此,选择配置文件并开始添加抗锯齿(因为我们不喜欢尖锐的边缘)。

现在,在FILMIC中有一些颜色分级,但在曝光时则有一些变化。

哇,现在看起来不错吧。好了,现在是明星过滤器的时候了:Bloom

要完成后期处理,请添加一个小插图

恭喜!!效果完成了
看起来很不错。我将在这里与后期处理和一些颜色/强度调整进行比较



当然,可以根据需要调整此效果并使用它

对于最后一件事,如果您想和我一样把方块放进去,则只需将“渲染队列”设置为1998

***
祝开发者一天愉快!
微元素翻译地址:https://www.element3ds.com/forum.php?mod=viewthread&tid=333380&tdsourcetag=s_pctim_aiomsg
原文地址:https://www.patreon.com/posts/groundcrack-25105036

王吹风

评论

发表评论

Copyright © 2020-2022 王吹风的博客. All rights reserved. · 2020-12-22

隐藏
变装