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

欢迎来到全新虚幻引擎4文档站!

我们正在努力开发新功能,包括反馈系统,以便您能对我们的工作作出评价。但它目前还未正式上线。如果您对此页面有任何意见与在使用中遭遇任何问题,请前往文档反馈论坛告知我们。

新系统上线运行后,我们会及时通知您的。

发表反馈意见