UE材质编辑器使用自定义ush及函数

先说事实,我是个UE的菜鸡,至少现在是,有关这个话题我是参考网上资料自学实践。可以这么说资料是好资料,就是对步骤不太全,所以我本着“有手就行”的态度亲测,给大家提供一个可以实操的版本——step by step!

1.新建自己的ush文件

相当的简单,像创建一个txt文件一样,只是修改后缀ush。这里要注意的是不要把ush写成了usf,我亲测过在private文件夹下是没有办法添加usf文件的,具体为什么我不清楚,只是一个实验(其实就是我做错了)。

然后在自定义的ush文件中写自己的代码,这里就要注意ush的语法了,当然随便打开一个ush一看便知:

a).如果你要应用其他文件,那么就#include ...,使用之后就能拿到其他文件中定义的变量,函数等等,但是可以直接写一些可调用的函数:

half3 CalcMyColor_red()
{
	return half3(1,0,0);
}

half3 CalcMyColor_green()
{
	return half3(0,1,0);
}

half3 CalcMyColor_blue()
{
	return half3(0,0,1);
}

如此就写好了自己的ush文件,并定义了三个函数,凡是包含了该ush的文件就可以使用这几个函数了。

2.使用自定义的ush文件(里边的东西)

一个基本的概念,材质编辑器是将节点表以为一个一个可视化节点的HLSL代码压入ShaderTemplate,这个Template就是一个代码框架,在材质编辑器对应的代码中,这个框架叫做:MaterialTemplate.ush

那么在源代码引擎中找到这个ush,包含我们自己写的ush:

#include "..."

//包含我们自己的ush文件
//其实还有一个Shader的文件夹,但是很多资料解释会进行隐式转换
#include "/Engine/Private/MyShaderFile.ush"

#include "..."

当然,还需要在源代码解决方案资源管理器中,右键->添加现有项...浏览到我们自己的ush文件进行添加。即可得到一个包含了自己ush的引擎。

如何使用呢?既然是材质编辑器,我们不妨创建一个材质Test_Mat,使用Custom节点:​​​​​​​UE材质编辑器使用自定义ush及函数_第1张图片

 注意,我们使用Custom这个可视化节点(会被编译为HLSH塞入Template中),并设置值类型为Float3(主要是这个3),然后这代码部分使用我们自动以的函数CalcMyColor_XXX,这就是来自我们自定义ush的函数。可以看到运作的非常好。

换言之,如果我们写好了更为复杂的shader逻辑,其实也可以使用这种方式来调用,非常的简单。

我的入门第一课,完结!

 

 

你可能感兴趣的:(UE4随笔,ue4,图形渲染,材质)