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

UE材质编辑器使用自定义ush及函数先说事实 我是个 UE 的菜鸡 至少现在是 有关这个话题我是参考网上资料自学实践 可以这么说资料是好资料 就是对步骤不太全 所以我本着 有手就行 的态度亲测 给大家提供一个可以实操的版本 step by step 1 新建自己的 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逻辑,其实也可以使用这种方式来调用,非常的简单。

我的入门第一课,完结!

 

 

小讯
上一篇 2025-03-26 08:54
下一篇 2025-02-10 13:36

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/25163.html