UE4学习笔记 使用插件添加一个ShadingModel
发布网友
发布时间:2024-10-04 11:01
我来回答
共1个回答
热心网友
时间:2024-10-06 00:27
此文章借鉴了以下三篇文章,在此对分享者表示感谢。
1. [UE4]插件添加ShadingModel
2. Ue4 使用MaterialCustomOutput自定义ShadingModel
3. UE4(虚幻)学习笔记--虚幻4.26自定义shadermodel
在学习UE4渲染管线过程中,发现添加ShadingModel时,通常需要修改源码版引擎的源码。本文介绍一种无需修改引擎源码的方式,添加自定义ShadingModel,并定制延迟渲染的光照计算。
第一篇文章已详细介绍了修改思路,本文重点记录插件创建与添加模块的步骤。
以4.26.2版本为例,首先新建一个插件,模板选择Blank。新建完成后,打开plugins所在位置,进入source文件夹。
将ToonShader文件夹复制一份,改名为ToonShaderBootstarp,并将ToonShaderBootstarp文件夹中的ToonShader全部改成ToonShaderBootstarp(包括文件名与其中变量名)。
注意:在ToonShaderBootstrap.Build.cs文件中,需要在PrivateDependencyModuleNames.AddRange中加入"Projects","DeveloperSettings",否则在之后的修改和编译中会产生错误。
之后在插件根目录中的ToonShader.uplugin中添加该模块,然后重新生成sln,该模块就添加完成了。
编译成功后,将ToonShader.uplugin中ToonShaderBootstarp模块的Type改为"UncookedOnly",LoadingPhase改为"EarliestPossible",否则会报关联不上插件源码的错误。
编译成功后,进入引擎,新建C++ Class,选择MaterialExpressionCustomOutput类,再新建一个Class,选择developerSettings类。
接下来修改ToonShaderOutput.h与ToonShaderOutput.cpp,编译通过后,继续修改ToonShaderBootstarp.cpp。
修改ToonShaderBootstrapSettings.h,增加插件的启动和关闭参数,然后修改配置文件的方法和正常修改源码添加ShadingModel的方法相似。
插件成功加载后,可以在Material里面看见ToonShader节点。
自定义ShadingModel添加完成。
总结:
1. ToonShader模块实现了UMaterialExpressionCustomOutput的子类,为运行时模块。
2. ToonShaderBootstrap模块在引擎启动Shader编译前加载,用以向虚幻引擎Shader文件夹中替换默认Shader文件。
ShadersOverride文件夹下存放了shader文件,Default文件用来恢复,Override用来做替换,新增的Shader文件都需要存放在Toon目录下。
本文记录了在UE4中踩的坑,希望对大家有所帮助。