获取宏定义_UE4加一个自定义材质的接口(4.22)

本文详细介绍了如何在UE4(4.22版本)中自定义材质接口,包括新建材质接口、控制接口开启及使数据可用于原生或自定义ShadingMode。通过修改Engine源代码,实现了C++和Shader层面的接口对应,并在渲染管线中传递材质接口数据。
摘要由CSDN通过智能技术生成

本文为修改引擎记录,看见许多大佬为UE4增加ShadingModel,但并没有发现为材质自己定义接口,(可能受目光所限,没有发现,如有类似的文章请大佬推荐),遂记录此篇文章,文章如有书写和理解错误还请大佬扶正。

(ps:本文并非一次写完,前后修改了两个材质接口,截图材质接口数量会有不一样的问题)

在此感谢我司引擎大佬的热情帮助 @xiaomengge 。

d14800e91e08bf919fb82973fae42e0c.gif
效果预览

要实现的功能:

  • 新建材质接口;
  • 控制材质接口开启;
  • 材质接口数据可以被原生或自定义ShadingMode使用;

一,新建材质接口

打开文件EngineSourceRuntimeEnginePublicSceneTypes.h

在枚举 EMaterialProperty{}中声明添加的自定义的材质接口名字,设置是否激活显示

6ae660486597cb4bac2d6401ee7b4ddc.png
SceneTypes.h

打开文件EngineSourceRuntimeEngineClassesMaterialsMaterial.h

在UMaterial中添加自定义材质接口变量的类型

fec7dd57857f9c49bc390ada531fc9c6.png
Material.h

打开文件EngineSourceRuntimeEnginePrivateMaterialsMaterial.cpp

在函数GetExpressionInputForProperty()

//函数作用:获取给定属性的表达式输入,检查材质属性链例如MP_BaseColor-->BaseColor

添加转换,实现C++层面与Shader层面自定义接口的对应。

f280ee2a2a713ef0a3467c46236962a8.png
Material.cpp

在同一文件中修改MP_MAX值(加一个接口就加1,这里加两个接口为31)

b1a0db21c979b5011e4929f563de3466.png
Material.cpp

打开EngineSourceEditorUnrealEdPrivateMaterialGraph.cpp

在UMaterialGraph()材质图表函数中把自定义的接口添加到Shader;

f69ffee16adbae0e007056e961aa3aaf.png
MaterialGraph.cpp

打开文件EngineSourceRuntimeEngineClassesMaterialsMaterialExpressionMakeMaterialAttributes.h

为材质节点MakeMaterialAttributes,BreakMaterialAttributes声明一个材质接口

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值