Unreal5.0自定义Shader加载

Unreal5.0材质中添加自定义Shader代码(Custom Shader)

自定义Shader目录

我们需要完成将以下目录结构中的Shader文件夹映射到程序中,以便于程序直接include。

测试自定义HLSL文件:

必须的要求:

  • Unreal工程是C++工程。

解决方案:

  1. 在编辑器中新建C++空类,等待编译完成后,用visual studio打开后缀为.sln的c++工程。
  2. 鼠标右键点击.uproject文件,点击generate project with unreal

添加文件映射路径

  1. 找到/{YourProjectName}/Source/{YourProjectName}/{YourProjectName}.Build.cs文件。添加RenderCore
  2. 在上一步同样的路径下,编辑{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!!!

posted @ 2021-06-17 13:41  mocki  阅读(827)  评论(0)    收藏  举报