v79.0
- 优化基础实现、关闭不必要的Log输出
- 优化对依赖加载材质的额外Shader编译, 支持
NoPostLoadCacheDDC
参数控制(UE4中需要修改引擎才能使用该优化) - 优化CookCluster的分配策略
- 优化Pak文件列表收集
- 优化资源分析性能
- 优化模块的可扩展性
- 修复跨引擎版本的兼容性问题
- 修复Shipping的C4172 ERROR
- 修复不支持WP导致的基础包打包错误(
Found mor than one redistered Cook Package Splitter
) - 支持
PakSaveDirRegular
,自定义Pak的输出路径 - 支持PakPreset/CookAndPak以统一的方式执行
- 支持全局的AllowCookPlatforms
源码版引擎的NoPostLoadCacheDDC
参数支持需要修改引擎,添加以下[lipengzha]
中包裹的代码:
Launcher引擎默认不支持该优化,Cook耗时会慢一些,但对功能无影响。
// Engine/Source/Runtime/Engine/Private/Materials/MaterialInstance.cpp
void UMaterialInstance::PostLoad()
{
// ...
//++[lipengzha] cmdlet option for disable cook in PostLoad
bool bNoPostLoadCacheDDC = FParse::Param(FCommandLine::Get(), TEXT("NoPostLoadCacheDDC"));
if (!bNoPostLoadCacheDDC && TPM && (TPM->RestrictFormatsToRuntimeOnly() == false))
//--[lipengzha]
{
TArray<ITargetPlatform*> Platforms = TPM->GetActiveTargetPlatforms();
// Cache for all the shader formats that the cooking target requires
for (int32 FormatIndex = 0; FormatIndex < Platforms.Num(); FormatIndex++)
{
BeginCacheForCookedPlatformData(Platforms[FormatIndex]);
}
}
// ...
}