PSO缓存数据的编译和使用

在运行时编译PSO数据的设置指南。

Windows
MacOS
Linux

在将 管线状态对象(Pipeline State Object)(PSO)缓存数据用于虚幻引擎4项目的运行时版本中时,需要对其进行编译。以下指南将讲述在UE4项目运行时编译PSO数据的两种控制方法。

加载画面

只有在显示加载画面时才能配置项目来编译PSO数据。要完成此操作,需新建一个函数,其将在加载画面显示结束之前等候PSO缓存完成编译。以下代码说明了如何完成操作:

{
    if (OutDebugReason != nullptr)
    {
        *OutDebugReason = FString(TEXT("PC: PSO cache still compiling"));
    }
    return true;
}

这是进行移动平台项目开发时推荐使用的PSO缓存编译方法。

UI、过场动画和暂停菜单

可对PSO缓存编译进行设置,使其只在UI、过场动画和暂停菜单打开时发生。要执行此操作,需要使用PSO缓存系统的 ResumeBatchingSetBatchMode 功能来开始和停止编译。可在下方找到用于完成此操作的所有函数。 暂停PSO缓存(Pause PSO Caching) - 暂停PSO缓存编译。

FShaderPipelineCache::PauseBatching();

设置批处理模式速度(Set Batch Mode Speed) - 设置对PSO缓存进行处理的速度。

FShaderPipelineCache::SetBatchMode(FShaderPipelineCache::BatchMode::Background);

继续PSO缓存(Resume PSO Caching) - 在PSO缓存停止或暂停后继续执行。

FShaderPipelineCache::ResumeBatching();

关于PSO缓存函数的更多信息,请查看PSO参考资料

Select Skin
Light
Dark

Welcome to the new Unreal Engine 4 Documentation site!

We're working on lots of new features including a feedback system so you can tell us how we are doing. It's not quite ready for use in the wild yet, so head over to the Documentation Feedback forum to tell us about this page or call out any issues you are encountering in the meantime.

We'll be sure to let you know when the new system is up and running.

Post Feedback