Nanite失效、无法开启、可视化Buffer试图、Debug的一揽子解决方案-2023年版

问题还原

Win10系统由于系统问题导致的UE5.0,5.1的Nanite开启失效的解决方法,无需重装WIN系统

引用文档:

https://docs.unrealengine.com/5.1/zh-CN/nanite-virtualized-geometry-in-unreal-engine/

Nanite作为UnrealEngine5的特色功能,不开启简直就是浪费!但是,这毕竟是新功能,还在逐步完善中,某些情况下,你可能会遇到意外的情况,当你做了以下操作,例如

  1. 下载了Nanite资产,
  2. 迁移了别人的nanite资产或文件,
  3. 自己开启了nanite,

却仍然无法感觉到Nanite起作用,比如

  1. 本来好好的网格都变得很粗糙,甚至出现破面,破洞等

    当Nanite遭到禁用或平台不支持时,Nanite还提供了回退网格体渲染模式。

  2. 材质丢失,变成了黑色

  3. 材质丢失,变成了灰色网格

  4. 网格模型没有加载出来,或没有渲染出来

  5. 网格体在视口中离远了就全没得了,加载非常慢,感觉到莫名的难受

    如果内存池不够大,无法容纳一个视图所需的所有数据,就会发生"缓存抖动(Cache thrash)",导致即便是静态视图,流送也无法解决。

  6. nantie的Debug命令全没用,例如r.Nanite,Nanitestats List等

  7. Nanite的视图没有显示出来,感觉仅仅是光照有些细微的变化,但是其他的三角形或簇群(Cluster)都没有

  8. 一些细节丰富的模型位置,光照或光追有些奇怪

  9. 有些网格体开起之后是正常的,有些则没啥用

  10. 有些大尺度的大量实例的模型,似乎没有酷炫的簇群的变化

  11. 有些小尺度的普通DCC模型,似乎没有酷炫的簇群的变化

  12. Nanite可以正常起作用,但是还是觉得有点卡

解决方案

首先你需要确认几个基本问题:按照顺序来:

https://docs.unrealengine.com/5.1/zh-CN/hardware-and-software-specifications-for-unreal-engine/

  1. 你的硬件是否是达标的?
    1. 虚幻引擎开发者使用的配置参考

Nanite失效、无法开启、可视化Buffer试图、Debug的一揽子解决方案-2023年版_第1张图片

  1. 你的操作系统版本是否是ok的?
    1. 使用Windows 10?你的版本是1909.1350以上吗?
      1. cmd/powershell输入winver 查看系统版本
      2. 通过系统更新或者360,去打补丁更新系统到合适版本。
      3. 如果没有办法更新系统,建议考虑重装。如果你是Windows的行家,可以自行打补丁。
    2. 使用Windows 11?没问题。
  2. 你的电脑系统是不是ok的?
    1. cmd/powershell输入dxdiag 对D3D12进行debug,它会自检问题。
    2. cmd/powershell输入SFC /SCANNOW ****查看系统文件是否缺失,它会自己修补错误。
    3. 搜索“系统配置”转到“服务”,“隐藏所有非Windows服务”打勾,关闭所有。和进入安全模式(winRE是一样的)。这是为了防止某些软件造成显卡驱动崩溃等。
  3. 你的显卡是否是ok的?
    1. 首先你的显卡必须是能用的,独立显卡可以在某些硬件软件或者windows的“设备管理器”-“显示适配器”中找到。或者在“系统信息”中找到。
    2. 驱动必须是最新的:如果是N卡,请使用geforce下载最新的驱动,官方推荐是516版本,但最好是最新的。

测试

在UE5中测试,是否可以正常使用,测试方法按顺序一步一步来:

  1. 在OutputLog里直接搜索Shader Model,如果出现类似于以下的字段,说明是正确配置的。记得把过滤器的Message给勾选上。

    LogD3D12RHI:
    (Max supported Feature Level 12_1, shader model 6.6)
    LogD3D12RHI: Shader Model 6.6 atomic64 is supported

  2. 如果没有出现。那么到项目设置里去配置成这个样子,重启后再试一下。

Nanite失效、无法开启、可视化Buffer试图、Debug的一揽子解决方案-2023年版_第2张图片

  1. 新建一个关卡,将一个Nanite网格拖入场景里,然后,打开Nante Visualization视图,看看是否正常启动了。如果场景里一点儿没有nanite网格,Nante管线是没有的。

一些原因

  1. Nanite虚拟网格体使用了DirectX 12的很多新的特性和算法,尤其是SM6。如果系统配置没有,Nanite自然是无法开启的。DirectX 12相比于11有很大的更新,也是这两年的事情,一些老电脑上可能不会适配。
  2. UE5的开发知道这个情况,所以是兼容SM5和SM6的,在nanite无法开启的时候,会设置一个FallBack,使用一个粗糙的FallBack网格体来渲染Nanite网格体,这个FallBack网格体是Nanite用来计算RT等用的。你可以在Nante的界面去设置。
  3. 如果你必须要考虑设备的情况,又希望使用Nanite,可以针对性地作出配置,在低配电脑时,关闭Nanite。具体可以参考官方文档。

发布情况:

https://www.bilibili.com/read/cv21064606

https://zhuanlan.zhihu.com/p/597529935

你可能感兴趣的:(unreal,engine,虚幻引擎5,ue5,bug,图形渲染)