【Bug】UE5中纹理和地形一直闪烁

最近在项目里碰到一个小插曲:场景里的纹理和地形,一直闪烁。起初以为是显卡问题,后来排查了一圈,发现其实跟 Mip 设置DDC 缓存 有关系。这里简单记一下。


过程记录

1. 纹理闪烁

一开始因为我从网上找到一些资产导入后,拖进关卡中,法线模型纹理一直闪烁,在内容浏览器中也纹理缩略图也一直闪烁,且缩略图上一直有"纹理"两个字。我初步猜测和压缩模式有关,但是修改后并无变化,又猜测是Mip的问题,是的,修改成无Mip贴图模式后就不闪烁了。

2. 地形闪烁

接着又发现地形整个区域在闪。日志里报了很多:

意思是 Derived Data Cache (DDC) 写不进去。地形的 Heightmap / Weightmap 太大,结果引擎每次都在重算 → 画面看着就像"开了频闪"。

3. 排查方向

  • 纹理这边,我先是尝试调 MipGen 设置和各向异性过滤,确实能改善。
  • 地形这边,最后发现 C 盘空间太小,DDC 一直写失败。把缓存路径挪到 D 盘后,闪烁明显缓解了。

修改磁盘存放DDC的位置

修改 Engine.ini

在项目 Config/DefaultEngine.ini 里,添加:

ini 复制代码
[InstalledDerivedDataBackendGraph]
Local=(Type=FileSystem, ReadOnly=false, Clean=false, Flush=false, PurgeTransient=true, Root="D:/UE_DDC")
  • Root 指向你希望存放缓存的新路径(例如 D:/UE_DDC)。
  • 路径必须是一个已经存在的文件夹。

然后删除旧的:

makefile 复制代码
C:\Users<用户名>\AppData\Local\UnrealEngine\Common\DerivedDataCache

UE 会自动在新的 D:/UE_DDC 下重建缓存。

小结

  • 最后得到的结论:

    • 普通纹理:主要是 MipGen的问题;
    • 地形:根本原因还是 DDC 缓存不足。

另外

因为要修改大量纹理为无mip贴图的MipGen模式,一般情况直接全选右键【编辑属性矩阵中的选择】,直接批量设置即可,但是因为一直闪烁连这个界面也闪烁导致我一直点不到这个选项,所以我开发了一个python脚本,用作一键设置mip模式。

记录一下代码

ini 复制代码
import unreal

def disable_mips_for_selected():
    # 获取编辑器选中的资源
    selected_assets = unreal.EditorUtilityLibrary.get_selected_assets()
    
    # 计数器
    modified_count = 0
    
    # 遍历选中的资源
    for asset in selected_assets:
        # 检查是否为纹理资源
        if isinstance(asset, unreal.Texture2D):
            # 获取纹理设置
            texture = asset
            
            # 修改Mip设置
            texture.set_editor_property('mip_gen_settings', unreal.TextureMipGenSettings.TMGS_NO_MIPMAPS)
            
            # 标记资源为待保存
            texture.modify()
            modified_count += 1
    
    # 保存修改后的资源
    if modified_count > 0:
        unreal.EditorAssetLibrary.save_loaded_assets(selected_assets)
        unreal.log(f"成功修改 {modified_count} 个纹理的Mip设置")
    else:
        unreal.log("未选中任何纹理资源")

# 执行主函数
if __name__ == '__main__':
    disable_mips_for_selected()

*

相关推荐
~央千澈~2 天前
卓伊凡的第一款独立游戏-详细介绍游戏开发引擎unity-以及详细介绍windows和mac的安装步骤【01】
游戏开发
红红大虾11 天前
Defold引擎中关于CollectionProxy的使用
前端·游戏开发
红红大虾12 天前
Defold引擎中关于CollectionFactory的使用
游戏开发
北桥苏15 天前
如何在 Unity3D 中实现圆角效果?
unity3d·游戏开发
UWA15 天前
Gears实测室:第一期·音游跨设备性能表现与工具价值实践
信息可视化·性能优化·游戏开发·uwa
红红大虾16 天前
Defold核心概念之Message Passing
游戏开发
红红大虾17 天前
Defold核心概念之Building Blocks
游戏开发
Mr_14722 天前
【独游开发必备】游戏开发资源宝藏网站(美术篇)
游戏开发