提示:Nanite可视化无效,需要在项目设置里搜索 RHI 改为DX12,重启项目才有效,并且需要将SM6勾选开启

UE5 - Blender - 关于高度贴图 nanite的选择处理方式,无缝衔接,重叠闪烁_建模

UE5 - Blender - 关于高度贴图 nanite的选择处理方式,无缝衔接,重叠闪烁_贴图_02

UE5 - Blender - 关于高度贴图 nanite的选择处理方式,无缝衔接,重叠闪烁_贴图_03

UE5虚幻里 新的nanite功能,在对于建模方面的改变非常大,对于新的系统下 资产模型的优化,我们做一个思考。

————————————————————————

在UE4中,模型的细节通过 法线贴图来表达,结合AORM的粗糙度来表现,如果要进一步增加高度细节,用置换:会费面,所以一般会用到ParallaxOcclusionMaping_视差偏移渲染,可以参考下下雨的教程【虚幻4】UE4_快速给游戏模型增加百万点细节的技巧_ParallaxOcclusionMaping_视差偏移渲染。

————————————————————————

那么现在有UE5的nanite,我们可以用更多面数的模型,

传统建模的场景模型,我们可以用高模雕刻,然后拓扑一个低模。

UE5中,考虑到优化,也不能完全用高模,但是已经可以用自动拓扑的中模,来代替以前低模,获取更高的细节。

因为有雕刻的高模做支持,中模低模都可以自己考虑使用。也比较自由。

但是有些地面的模型,我们是用SD+SP制作出来的无限重复的贴图,并没有雕刻的高模。

这种情况下,我们考虑 SP导出的时候,额外导出hight高度贴图,然后在Blender中细分模型,再添加坐标UV模式的置换修改器。

然后用这个置换出来的高模,来呈现更多的细节。

————————————————————————

SP中的贴图输出UE4包裹模式,默认是没有高度贴图的,只有AORM的混合贴图+法线+基础色贴图

UE5 - Blender - 关于高度贴图 nanite的选择处理方式,无缝衔接,重叠闪烁_多级_04

现在我们新建一个 带高度贴图的导出模板 Unreal Engine 4 +hight(Packed)

UE5 - Blender - 关于高度贴图 nanite的选择处理方式,无缝衔接,重叠闪烁_贴图_05

这样导出就多一张高度贴图 

UE5 - Blender - 关于高度贴图 nanite的选择处理方式,无缝衔接,重叠闪烁_建模_06

给墙体模型增加 多级精度细分,简单型 8层

UE5 - Blender - 关于高度贴图 nanite的选择处理方式,无缝衔接,重叠闪烁_建模_07

继续增加置换修改器 坐标选择UV模式 

UE5 - Blender - 关于高度贴图 nanite的选择处理方式,无缝衔接,重叠闪烁_贴图_08

UE5 - Blender - 关于高度贴图 nanite的选择处理方式,无缝衔接,重叠闪烁_建模_09

这样可以得到一个置换后的高模,就能在UE5中使用nanite了

UE5 - Blender - 关于高度贴图 nanite的选择处理方式,无缝衔接,重叠闪烁_建模_10

UE5 - Blender - 关于高度贴图 nanite的选择处理方式,无缝衔接,重叠闪烁_贴图_11

UE5 - Blender - 关于高度贴图 nanite的选择处理方式,无缝衔接,重叠闪烁_建模_12

UE5 - Blender - 关于高度贴图 nanite的选择处理方式,无缝衔接,重叠闪烁_多级_13

UE5 - Blender - 关于高度贴图 nanite的选择处理方式,无缝衔接,重叠闪烁_贴图_14

值得注意的是,由于有法线和粗糙度贴图,当材质比较光滑的情况,在反射反光的效果下,低模地板也有非常好的材质表现效果。如上图这些表现。

但是,当材质是哑光,比较粗糙的,反射很少或者几乎没有的情况,低模的表现就会很平面,真实度也更差。

UE5 - Blender - 关于高度贴图 nanite的选择处理方式,无缝衔接,重叠闪烁_多级_15

UE5 - Blender - 关于高度贴图 nanite的选择处理方式,无缝衔接,重叠闪烁_多级_16

-------------------------------------------------------------------------------------------------


接下来 是关于【无缝拼接的问题】 哪些模型用高模Nanite。

当模型用置换的时候,墙体的窄边也会凸起置换,

UE5 - Blender - 关于高度贴图 nanite的选择处理方式,无缝衔接,重叠闪烁_贴图_17

UE5 - Blender - 关于高度贴图 nanite的选择处理方式,无缝衔接,重叠闪烁_贴图_18

就算用了顶点组的模式,只让前后大面墙体置换,和侧边窄边的过渡也不自然,特别是当拼接在一起的时候 ,就更加明显了

UE5 - Blender - 关于高度贴图 nanite的选择处理方式,无缝衔接,重叠闪烁_多级_19

解决办法就是只留下前后的大面,侧面窄面删除 

UE5 - Blender - 关于高度贴图 nanite的选择处理方式,无缝衔接,重叠闪烁_贴图_20

就可以获得比较完美的无缝,Blender中的效果:

UE5 - Blender - 关于高度贴图 nanite的选择处理方式,无缝衔接,重叠闪烁_建模_21

以下是UE中的效果:

UE5 - Blender - 关于高度贴图 nanite的选择处理方式,无缝衔接,重叠闪烁_多级_22

UE5 - Blender - 关于高度贴图 nanite的选择处理方式,无缝衔接,重叠闪烁_多级_23


新的无缝解决可能:将上面最终删侧面窄边的模型 塌陷应用置换修改器后,在循环边模式中,把前后桥接

这样的模型,保证了无缝连续性,但是牺牲了侧面的贴图细节,侧面的贴图需要重新进SP中绘制,如果你能接受这种拉伸的效果,反正也就建造途中看起来不美观,就可以用这个办法。

它既能无缝,又保证了墙体的闭合完整,也保证侧面窄边还算能看。

缺点就是:要再修UV和侧面缝合的面。除了这种简单地砖,简单对应的桥接,其他复杂造型,植物类或者其他不规则地形,很可能无法完美桥接,或者需要手工修(那工作量太大)

UE5 - Blender - 关于高度贴图 nanite的选择处理方式,无缝衔接,重叠闪烁_建模_24

得出的结论:要完美的无缝置换模型,墙体模型只能剩前后两个大面(再用桥接缝合),否则,就用传统的贴图低模。

1.玩家建造的墙体,需要无缝拼接,而且在未完工的状态,墙的侧面是要被看到保留的,加上玩家建造的墙体数量可能比较多,考虑优化和开销,用普通的低模墙体。【在某些复用的墙体还要开孔 安装窗户,低模可以直接循环切割,高模只能布尔,增加了布尔后其他问题发生的可能性】【另外关键一点是:建造模型会有重叠闪烁,解决重叠的办法是用材质里添加像素深度偏移,但是开启Nanite之后,像素深度偏移会失效,重叠闪烁会再现,这是无法接受的了】

UE5 - Blender - 关于高度贴图 nanite的选择处理方式,无缝衔接,重叠闪烁_多级_25

2.场景中的地面模型,用桥接缝合的置换模型,桥接后的窄边,可以放任拉伸不管,用其他部件遮挡,或者重定修复UV。

3.进一步思考,对于场景的优化,Nanite带来的细节,但是每个模型的大小会增大,一个高模石门可能有100多MB,当场景很多的时候,游戏的大小就会巨增,所以程序化的城市村庄房子模型,最好导入单个元素,再用UE中的程序化插件来实现,

这样一堆村子的房子,可能是需要一些基本元素的高模墙砖,来程序化生成,这样游戏整体的容量,模型的复用性都会很好的优化。


另外,试一下修复UV

桥接后,修复一下UV,把桥接的部分,UV拉到四周 

UE5 - Blender - 关于高度贴图 nanite的选择处理方式,无缝衔接,重叠闪烁_贴图_26

方法1:在SP中 给桥接一个材质 ,要和低模那样对齐线已经不可能,就简单给个材质了,让原来的拉伸不那么突兀。

UE5 - Blender - 关于高度贴图 nanite的选择处理方式,无缝衔接,重叠闪烁_建模_27

因为在SP中侧面添加了深色,在分界线过度的地方,有一些外溢到正面了,导致接缝有黑线,如下图

UE5 - Blender - 关于高度贴图 nanite的选择处理方式,无缝衔接,重叠闪烁_多级_28

【说明方法1这样改,还存在一定问题,而且再导入一边SP也麻烦,那干脆在Blender中给边缘窄边,单独增加一个子材质】

方法2:在Blender中给边缘窄边,单独增加一个子材质

UE5 - Blender - 关于高度贴图 nanite的选择处理方式,无缝衔接,重叠闪烁_建模_29

这样到UE里直接给一个简单的噪波贴图的材质就可以了 ,也不存在接缝外溢的情况,完美

UE5 - Blender - 关于高度贴图 nanite的选择处理方式,无缝衔接,重叠闪烁_建模_30