简单修改,让UE4/5着色器编译速度变快

简单修改,让UE4/5着色器编译速度变快

目录

简单修改,让UE4/5着色器编译速度变快

一、问题描述

二、解决方法

(一)硬件升级

(二)调整相关设置和提升优先级

1.调整相关设置

(1)寻找BaseEngine.ini位置

(2)BaseEngine.ini文件修改

(3)查看处理器线程数量

(4)最终修改完成

2.提升优先级

(1)打开虚幻引擎工程

(2)打开任务管理器

(3)寻找工程编译进程

(4)查找着色器编译ShaderCompileWoker的详细信息位置

(5)设置更改ShaderCompileWorker优先级

三、总结


一、问题描述

第一次打开虚幻工程的时候着色器编译时间总是很长,经常卡在某个地方很久才动,就像下图一样

那么,如果想要加快这个速度进程该怎么办?

二、解决方法

有几种解决办法

(一)硬件升级

(1)升级CPU:更快的CPU和更多的核心数可以显著提高着色器编译速度。考虑升级到具有更多线程和更高频率的CPU。

(2)升级存储设备:使用SSD(固态硬盘)而不是HDD(机械硬盘)可以加快文件读写速度,包括着色器编译过程中涉及的临时文件。

(二)调整相关设置和提升优先级

1.调整相关设置

(1)寻找BaseEngine.ini位置

先找到自己想要修改的虚幻引擎的BaseEngine.ini位置,一般位置为Engine\Config\BaseEngine.ini,我这里拿UE5.3来做示例,点击打开文件所在的位置

退回到Engine文件夹下

点击Config文件夹

双击进去

(2)BaseEngine.ini文件修改

按Crtl+F进行搜索

复制NumUnusedShaderCompilingThreads进搜索框

点【查找下一个】

默认为NumUnusedShaderCompilingThreads=3

(3)查看处理器线程数量

现在去桌面上找我的电脑图标,点击右键,再选择【设备管理器】

点击【处理器】左边的" > ",展开查看

数一下数量,我这里数量为24

(4)最终修改完成

回到刚刚的ini文件处,

将NumUnusedShaderCompilingThreads=3

改为NumUnusedShaderCompilingThreads="你的数量(上面数之后得出的数量)"

我这里是改为NumUnusedShaderCompilingThreads=24

2.提升优先级

(1)打开虚幻引擎工程
(2)打开任务管理器

同时按Shift+Crtl+ESC,打开你的任务管理器,在进程里,找到你的虚幻引擎工程进程

图1:找到进程按钮

(3)寻找工程编译进程

图2:找到编译进程

(4)查找着色器编译ShaderCompileWoker的详细信息位置

点击右键,点击转到详细信息

或直接在详细信息里找

(5)设置更改ShaderCompileWorker优先级

然后对XGE开头的文件,点击右键,点设置优先级将【正常】改为【高于正常】

三、总结

全部修改完成后,可以看出编译速度确实有一定的提升,如果想要追求更快,还是建议升级硬件

相关推荐
WarPigs4 天前
着色器multi_compile笔记
unity·着色器
zhangzhangkeji4 天前
UE5 C++(71):文件是否存在,文件夹是否存在,FPaths :: FileExists( const FString & InPath) ;
ue5
妙为4 天前
UE5角色穿过石头穿模
ue5·unreal engine5·角色穿越石头·穿模
gis分享者4 天前
学习threejs,实现山谷奔跑效果
threejs·着色器·glsl·shadermaterial·unrealbloompass·山谷奔跑·simplex
技术策划Boring5 天前
2025年工作复盘:开放世界3A项目配置管线与性能监控的探索
游戏·ue5·虚幻·p4·perforce
zhangzhangkeji7 天前
UE5 C++(70-2):定义成员函数 getCleanDirectory(..) 和枚举类 EFileDirectoryType,来获得目录
ue5
avi91118 天前
UE4-UE5虚幻引擎-前置学习三,优化,基础CPP
ue5·ue4·游戏开发·虚幻·游戏优化·游戏代码
zhangzhangkeji8 天前
UE5线程进阶(3-2):任务图的相关源码整理。 FGraphEvent 与 TGraphTask 的区别和联系
ue5
zhangzhangkeji10 天前
UE5线程进阶(3-1):
ue5
zhangzhangkeji10 天前
UE5线程进阶(2-3):enum ENamedThreads命名空间 :: Type : int32 { RHIThread = 0 } 是渲染硬件接口线程
ue5