从UE4到UE5:新特性的限制

Nanite

  • 原理:划分culster,按层级进行三角形的culling和lod selection(HLOD),基于compute shader,和N卡的mesh shader同目的不同路(纯软件和硬件路线)
  • 开启
    • 导入时勾选build nanite / 批量选中网格体右键Enable
    • 几何体集合在Chaos面板的nanite settings启用
  • 一些关键限制(Nantie Checklist)
    • 支持静态网格,不支持骨骼动画和变形!不支持spline mesh!(一句话,只支持刚性网格体)
    • 支持Chaos破碎的几何体集合(这个好)
    • 材质仅支持不透明(半透明和Mask都不行!)
    • 材质不支持像素深度偏移(用这种方法过度材质的要改)
    • 材质不支持双面(勾了选项也没用)
    • 材质不支持世界位置偏移(顶点动画不要想了)
    • 材质不支持顶点绘制(同上)
    • 材质不支持自定义深度(后期材质通过custom depth实现的高亮/描边等等都用不了,已实测)

(PS: Nanite虽好,限制也多,材质那块的限制基本决定了室内交互多的场景模型目前基本用不了,个人认为更多还是用于室外开放世界面数多的场景把。另外还有一个最大限制:移动端无法使用,官方说也没有为移动端开发的计划,Nanite专为下一代主机和高性能PC而生。)

Lumen

  • 原理:Lumen是各种GI技术的整合,可以简单概括成SDF(Mesh距离场 + 全局距离场) + “体素”(Surface Cache) + SSGI (屏幕空间追踪)+ RSM (Reflective Shadow Map) + 硬件光追(lumen补充)

    • SDF(Mesh距离场 + 全局距离场): 软光追加速结构,其中Mesh距离场在UE4里已被用于DFAO,而全局距离场是一张合并了相附近所有Mesh距离场的texture,为了避免遍历每个网格距离场的一种“低配”方案; 这俩正好对应项目设置里的两种追踪模式:Detail Tracing和Global Tracing
      • Detail Tracing :前两米内的追踪使用Mesh距离场,其余范围使用Global Tracing
      • Global Tracing:只追全局距离场,这种性能当然更省,质量也低一些
    • Surface Cache软光追直接和间接光的容器,类似于体素,Nanite网格会加速捕获
    • SSGI:屏幕空间追踪,这个就不说了,UE4就在用,lumen里作为软光追的补充
    • RSM(反射阴影贴图):Surface Cache只覆盖相机200m范围,解决快速移动时软光追的间接光跟不上,此时只有屏幕追踪的情况
    • 硬件光追:也是作为lumen里软光追的补充,Nanite网格需要设置Proxy Triangle Percent生成代理Mesh,再用代理Mesh做硬件光追
  • 开启

    • [必要] 项目设置里全局光照设置为Lumen, 反射方法设置为Lumen,启用生成网格体距离场

    • [可选] 项目设置里硬件光追可选,作为lumen补充

    • [可选] 后期盒子里全局光照 和 反射属性部分可以调整精度

    • [可选] 项目设置中取消选中允许静态光照(Allow Static Lighting),可以为项目完全禁用预先计算的光照,

      禁用静态光照还可以节约一些由于着色器排列(shader permutations)引起的静态光照开支

  • 一些关键限制(Lumen Checklist)

    • 第一个最大限制是暂时不能和静态光照同时使用(官方说后期更新说不定会支持)
    • 仅支持静态网格(同Nanite)
    • 材质不支持世界位置偏移(同Nanite)
    • 距离场会忽略透明材质,并将遮罩材质视为不透明材质,这可能会导致叶子上出现明显的过度阴影(植物和半透明材质目前支持不好)
    • 墙壁不应薄于 10 厘米 (cm),以避免漏光

你可能感兴趣的:(UE,ue4,ue5,Lumen,Nanite)