Unreal5.0自定义Shader加载
Unreal5.0材质中添加自定义Shader代码(Custom Shader)
自定义Shader目录
我们需要完成将以下目录结构中的Shader文件夹映射到程序中,以便于程序直接include。

测试自定义HLSL文件:

必须的要求:
- Unreal工程是C++工程。
解决方案:
- 在编辑器中新建C++空类,等待编译完成后,用visual studio打开后缀为.sln的c++工程。
- 鼠标右键点击.uproject文件,点击generate project with unreal
添加文件映射路径
- 找到/{YourProjectName}/Source/{YourProjectName}/{YourProjectName}.Build.cs文件。添加RenderCore
![]()
- 在上一步同样的路径下,编辑{YourProjectName}.h头文件。添加以下代码:
#include "Modules/ModuleManager.h"
class F{YourProjectName}Module : public IModuleInterface
{
public:
virtual void StartupModule() override;
virtual void ShutdownModule() override;
};

3. 编辑{YourProjectName}.cpp文件。添加以下代码:
#include "Misc/Paths.h"
void F{YourProjectName}Module::StartupModule()
{
FString ShaderDirectory = FPaths::Combine(FPaths::ProjectDir(), TEXT("Shaders"));
AddShaderSourceDirectoryMapping(TEXT("/Project"), ShaderDirectory);
}
void F{YourProjectName}Module::ShutdownModule()
{
}

4. 编辑{YourProjectName}.cpp文件,将刚刚创建的类传递给引擎。
IMPLEMENT_PRIMARY_GAME_MODULE(F{YourProjectName}Module, {YourProjectName}, "{YourProjectName}" );

自定义Shader的加载
打开Unreal编辑器,在Material目录下新建一个材质,然后创建一个custom节点:

在details面板上编辑Code,include我们自定义的usf文件,并注意Input Name最好不要设置None。

然后就可以导入自定义Shader到Unreal引擎了,Have fun!!!


浙公网安备 33010602011771号