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节点:​​​​​​​

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

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

我的入门第一课,完结!

 

 

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值