调用其他文件的define_Unreal 在CustomExpressions中引用自己的usf和ush文件

UE 4.25中在Material Expression Custom中新加入的宏定义和Include文件路径,如下。

2402dc01ae61ab0869880bfa80db996e.png

预定义宏自然就是 #define (Define Name) (Define Value),其中Define Name和Define Value用填写的值替换,在Code里面就可以判断宏的值了。

Include文件路径相当于以前写在Code里面,现在搬出来了,让Code的职能更加纯粹一点。

不在Modules主动调用AddShaderSourceDirectoryMapping函数的情况下,Shader的寻找路径只能映射Engine文件夹下的,即 /Engine/Private/xxx.ush 或 /Engine/xxx.usf(此处的映射指的是只要检测到代码include shader文件,那么如果这个路径有/Engine/你的shader文件,就会自动替换成../../../Engine/Shaders/Private/你的shader文件)。

8e680341a9f58f79e33043a9ceb7f4c8.png

想要添加其他映射路径参考原文的方法。

测试:

07325f75d3f1cdd71e11a6269676b1e8.png

查看Shader编译结果:

0c71a69a852936ced7ff5f225916a976.png

---------------------------------以下原文----------------------------------

UE4.22版本中Material里的CustomExpressions想要引用自己的shader文件,如

7c7cffb59669516ab370f4363ff35a19.png

同时也确认了文件路径的正确性

a02b4c3b4fe3c693131cb26df9d73417.png

但是报错,原先“/Project”的Virtual Shader Source Path已经无法识别

8fb09ba53400fdd53e7128b1055b18c4.png

在论坛上找到解决方案(假定UE项目叫TestProject)

1.如果项目是从蓝图创建的,需要新建一个C++文件,进而打开VS项目。

2.VS中修改三个文件,TestProject.Build.cs TestProject.h TestProject.cpp(红框中为修改部分)

96546362953afc3d0ee1744dacab1197.png

5de7bba66e1247a91c277d1d69acde39.png

0e23ab7bcaec7ed73cf38c07ff221701.png

3.找到项目本地根目录,关闭UE编辑器和VS,右键点击TestProject.uproject,点击生成VS项目文件,打开sln。

4.编译运行项目

eea580026c6141f658153f2eab3fd6b4.png

成功

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值