unity shader 2D 弯曲 unity shader editor_shader

我们在整合美术资源到unity中,经常会遇到材质,也就是shader不理想,或者unity提供得常用材质解决不了我们当前需求,这种时候怎么办呢?
在早期游戏开发中,是需要懂得矩阵得程序员去单独编写shader得,这对于美术出身又不会代码得我们来说,门槛就比较高了。
但是,在现在这个插件化得时代,我们可以用专门编写shader得插件来制作shader。从19年开始,Ampify_Shader_Editor所制作出得shader已经可以生成相应得代码文件,并且可以直接拖动到其他项目工程中使用。这个插件相当于一个编辑器,会把你常用漫反射,高光,法线等,用拖动得方式创建,然后加入各种函数,来实现流动,透明,渐变等等多种效果,因此不管是我常用得冰火,透贴,水、玻璃等效果,都能轻松实现。具体效果可以参考商店中得CG视频,这些效果都是可以在初步了解后,慢慢摸索制作出来得https://assetstore.unity.com/packages/tools/visual-scripting/amplify-shader-editor-68570

好,下面进入正题,初步得使用入门步骤

1拖动下载好得插件package包裹,进入你的项目

unity shader 2D 弯曲 unity shader editor_工作区_02

unity shader 2D 弯曲 unity shader editor_shader_03


当window窗口出现插件后,就可以正常使用了。2创建一个surface shader文件,以及一个materials文件,然后将shader脚本拖动给材质球,赋予其关联。(如下图)

unity shader 2D 弯曲 unity shader editor_搜索_04


unity shader 2D 弯曲 unity shader editor_unity_05


3当赋予关联后,材质球会变黑,并且呈现这样的参数(下图)

unity shader 2D 弯曲 unity shader editor_unity_06


此时点击open in shader进入插件的编辑界面

unity shader 2D 弯曲 unity shader editor_unity shader 2D 弯曲_07

简单说明一下编辑界面三个区域,可能术语跟官方不太一样,但是我自己感觉比较简单明了好记忆。
第一个区域,我们会在这里调整我们每一个所需的参数。这些参数都是对第二区域创建的端口工具有直接影响
第二个区域,我们可以理解为画板、世界树都行,我们要在这里常见我们需要的端口工具,并且给这些工具连线。
第三个区域为搜索区,我们可以在这里搜索我们需要的端口工具

下面上这几个区域的翻译。

unity shader 2D 弯曲 unity shader editor_shader_08

unity shader 2D 弯曲 unity shader editor_unity_09


unity shader 2D 弯曲 unity shader editor_shader_10


通过上述翻译,我们大致了解了这个编辑器的作用。端口与端口工具需要有一定美术渲染知识才能完全领会,如果经常做vray渲染的人应该不难理解。如果看不懂,那么请了解max中的vray渲染器,或者找寻渲染类的相关知识,因为对于3D美术来说,渲染基础是跟unity技美写shader的原理相通的,虽然专业术语不同。但是至少这个端口工具的原理是一样的。

好下面我们手动做一个简单的金属材质为例子。

步骤一:我们给sence场景中拖入一个随便的模型预制体。然后把刚才创建的shader材质球赋予给这个模型。然后打开啥的编辑器。

unity shader 2D 弯曲 unity shader editor_unity shader 2D 弯曲_11

打开后我们按住5并且点击鼠标左键,再编辑器里创建两个color工具,也可以在刚才介绍的3工作区搜索color单词,创建color工具。

unity shader 2D 弯曲 unity shader editor_搜索_12


按住1点击鼠标左键,或者在工作区搜索Float创建浮点数工具,如下图

unity shader 2D 弯曲 unity shader editor_搜索_13


在左侧工作区调整参数为下图,并且给max数值为1,或者其他值。目的是给颜色生成一个我们需要的调节区域(如下图)

unity shader 2D 弯曲 unity shader editor_unity shader 2D 弯曲_14


点击F按住鼠标左键,或者右侧工作区搜索lerp,创建节点工具(链接端口与颜色工具的桥梁)如下图链接好节点,工具,与端口,并且点击左上角保存按钮

unity shader 2D 弯曲 unity shader editor_unity_15


unity shader 2D 弯曲 unity shader editor_搜索_16


如上图,你会发现你的材质球中,已经出现了对于反射率的相应端口,并且你可以手动调节。

现在我们不着急调节参数,因为一个简单的金属,我们分析一下,本质上是需要反射,自发光,折射,平滑,等参数的,因此我们要给我们的shader中继续添加其他参数,如下图。

快捷键u+鼠标左键,或者工作区搜索Texture,找到贴图工具,并且创建链接到normal端口,并且保存

我们会发现材质中已经多出了一个可以增加法线贴图的区域(如下图)

unity shader 2D 弯曲 unity shader editor_shader_17


下面我们需要创建控制金属(metallic)属性的浮点数,以及控制平滑(smoothess)属性的浮点数。

我们通过ctrl+c与V,常规复制方法,复制出两个浮点数工具按照下图链接并且命名(左侧工作区命名)

unity shader 2D 弯曲 unity shader editor_工作区_18


unity shader 2D 弯曲 unity shader editor_unity shader 2D 弯曲_19


如上图,保存后就生成了上述参数控制器。

现在我们根据scene窗口给模型赋予贴图,调整参数,达到我们需要的金属效果。一个简单的金属shader就已经完成了

unity shader 2D 弯曲 unity shader editor_工作区_20


最后,我们找到制作好的shader用VS工具。点击查看代码。我们就可以看到生成好的代码文件,并且交给程序员后也是程序可以看懂,并且加以修改的成品shader了(如下图)

unity shader 2D 弯曲 unity shader editor_搜索_21