Skip to content

v79.0

Compare
Choose a tag to compare
@hxhb hxhb released this 30 Dec 02:36
· 166 commits to master since this release
32cb38b
  1. 优化基础实现、关闭不必要的Log输出
  2. 优化对依赖加载材质的额外Shader编译, 支持NoPostLoadCacheDDC参数控制(UE4中需要修改引擎才能使用该优化)
  3. 优化CookCluster的分配策略
  4. 优化Pak文件列表收集
  5. 优化资源分析性能
  6. 优化模块的可扩展性
  7. 修复跨引擎版本的兼容性问题
  8. 修复Shipping的C4172 ERROR
  9. 修复不支持WP导致的基础包打包错误(Found mor than one redistered Cook Package Splitter
  10. 支持PakSaveDirRegular,自定义Pak的输出路径
  11. 支持PakPreset/CookAndPak以统一的方式执行
  12. 支持全局的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]);
		}
	}
	// ...
}