Nanite设置中位置精度无法应用至静态网格体

静态网格体开启Nanite后,位置精度无法应用1/32cm以上的的设置,只会保持在1/16cm。但是这一设定会导致我的模型精度不够,与别的高精度模型中间有缝隙。

重现步骤
静态网格体开启Nanite后,位置精度无法应用1/32cm以上的​的设置,只会保持在1/16cm。但是这一设定会导致我的模型精度不够,与别的高精度模型中间有缝隙。

[Image Removed]

是否应用改动?我本地对自带的球模型试了下没啥问题,你那边是所有模型都不能设置还是特定模型?如果特定模型方便发过来看下吗?

已应用改动。我的模型大约尺寸:38006*69072*1708,这个尺寸是否过大导致Nanite设置开启后位置精度改动最高只能到1/16cm?但是这个精度下的模型与别的高精度模型中间会有一条细小的缝透底下的光。且另一个高精度模型由于有别的操作,我暂时不需要开Nanite设置。是否有不修改模型尺寸的情况解决这接缝问题?(关卡中书签1、2、3个点都能明显看到接缝)[Image Removed]

我本地测试了下的确和模型的尺寸太大有关。初步猜测是顶点的精度限制,尺寸过大本身就需要更多位数来存储信息,再加上要这么高的精度步长,超出精度范围就自动被限制了。

你提到的接缝的确存在,但我试了下如果接缝两边的模型都是Non-Nanite,接缝更大。因为Non-Nanite模型的顶点也有精度限制。尤其像这种尺寸极大,顶点又非常稀疏的曲面模型,只要顶点有极小的偏差,大跨度的边界就可能出现较大的接缝。

总的来说这是一个硬限制。这种需求最好通过制作上来避免。比如增加接缝处顶点数量,减小模型的尺寸,使用同类型同精度的模型(两边都是Nanite或都不是)

我们这边测试是不开Nanite可以解决这个问题,并没有出现您描述的:“但我试了下如果接缝两边的模型都是Non-Nanite,接缝更大。”[Image Removed]并且在3dsMax里面确实是接好的,而且在UE4里面也是完全可以无缝衔接的。

我们的项目刚从UE4升级到UE5,类似这样子的模型,可能有4000个。

目前我们不太可能全部把这些模型都再去处理一次。

所以我还是想请教您:有没有什么方法解除这个“超出精度范围就自动被限制了”?

我这边的确非nanite接缝更大(见附件视频)

如果你那边非Nanite OK,又不希望重新处理模型,那就不开Nanite;这个模型也就几万个面,又这么巨大,猜测同屏也看不到几个,何不合批估计也差别不大

我们是个高速飞行的高尔夫球游戏,在球飞得比较高得时候同屏还是可以看到几块类似这样的地形。

可以看下这2张图

[Image Removed]另外就是不开Nanite,就没有办法有更好的Lumen与VSM。

我这边遇到的实际的问题有:

1、关于VSM:Warning: [VSM] Non-Nanite Marking Job Queue overflow. Performance may be affected. This occurs when many non-nanite meshes cover a large area of the shadow map;这条主要是因为我们现在很多植被资产都还没有制作成Nanite导致有些地方会报这个警告,这个信息让我认为不开Nanite对VSM的支持就不好,导致性能会下降;

2、关于Lumen:官方文档【Lumen技术细节】部分,阐述“Lumen不要求Nanite必须运行,但Lumen的场景捕获在具有大量多边形网格体但未启用Nanite的场景中将会变得非常缓慢。”,让我认为开Nanite对Lumen更好,另外应该是只有开了Nanite IMS、HISM(植被)才会进LumenScene;

3、关于关闭Nanite使用LOD:因为全平台共用1套地形资产,LOD的屏幕尺寸设定得比较“偏激”才能在移动端勉强满足性能与画质的需求,正是这个设定会让玩家在离模型中心点比较远的时候,载入了LOD1的问题(在移动端勉强能够接受)。在PC端我们通过开Nanite很好的规避掉了这个问题。如果PC端不开Nanite好像没办法强制模型PC永远只读0级,Mobile则按照我们预期读0-5级。

[Image Removed]

感谢耐心解答,这么捋一下,我们还是需要把从制作上来解决,减小模型的尺寸,并使用Nanite。

1、哦,我以为是把模型缩小,然后再放大的方式。如果是拆分模型应该是可行的,因为本质上就是单个模型增加顶点了。

2、所谓的碰撞精准具体指什么?是渲染模型和碰撞模型一致吗?地形的碰撞模型可以指定使用哪一级LOD

3、Landscape目前的默认精度最大是1米一格,blendmask分辨率同地形网格,也就是1米/像素,是比较low的。材质里可以做一些工作来让分界线变得锐利,看起来也有更高精度。比如如下对Mask做一个边界定义的操作来锐化,类似对距离场的处理。

[Image Removed]4、的确我本是切换到非Nanite自动切到高LOD了,这个我没留意到。高LOD的制作上保留边缘的优化中间网格即可,那样切换的时候也不会有接缝。但主要问题是无法保证两块衔接的同时切换到同一级。有个LODSync的Component可以用来同步Component的LOD切换,之前用来做角色的头身服装的同步切换,也许可以用在这里。

我们的碰撞模型直接用的渲染模型,因为要特别精准嘛,一定要是所见即所得的碰撞效果。所以去穿插的话就特别担心会不精准导致的一些碰撞问题。

非常感谢提供了Landscape的材质解决方案,后续我们将去尝试。

好的,非常感谢您的耐心解答。

同时看到几块几万个面的模型完全没问题。一般对Performance有影响百万面和上万个actor在PC上可能会感受出影响。至于Lumen和VSM的效果这和是否Nanite应该没有关系,Nanite和Lumen和VSM一起用有效能上的优化,不过同理几万个面对几个模型影响不大。

我认为Nanite的顶点位置的这种精度提升本身限制不小,一个应该是要改代码,二是Nanite设计上更多追求密度而非精度;三是为了几个模型把所有Nanite的存储精度上限提高数据量暴涨,也会极大增加内存开销,

1和2你说的没错,我上面也提了和效能相关。对于大量实例比如植被影响大;你这边有接缝的模型actors同屏就看到几个,而且三角面就几万(同屏),理论上开不开Nanite对效能影响极小。而且对象也不是HISM或ISM没啥影响。

关于第三点:首先你的模型要保证没接缝两边的模型必须同时切换LOD,并且每级LOD的顶点制作的时候也是缝合的。前者这几乎不可能,因为LOD是根据屏占比来调用的,无法保证两个模型同时有一模一样的屏占比。因此要在任何距离没有接缝都强制使用LOD0(这可以在Actor里设置Fored LOD Model),或者这些模型本身就不需要LOD了。这无论在PC和手机上都一样。顺便说下开了Nanite很可能在PC上拉远了就有接缝。根本问题就是这种做法就有问题,当然你们不希望改变做法,目前最佳的解决方法就是都永远使用LOD0,并且不开Nanite。

等等;减少尺寸后再放大可能问题依旧。因为放大模型的同时放大了误差。因为你的模型三角面很少,边界很长,比如用1/32cm减少了顶点本身的误差,但放大100后边界长度也放大了这么多,产生的误差也被放大。除非顶点密集这种问题会缓解。

这种做法的问题主要就是太大,太稀疏顶点,而且是不完全平整的。UE不是工业软件,而且需要交互速度,是视觉可视化工具集,所以更讲究数据大小及效率。我看这种不同草坪区域的划分,视觉上表现边界有重叠都没问题啊,制作的时候可以有冗余做一定的穿插,为什么选择要这么精准的去对其呢?另外一开始为什么不选择使用Landscape?会有更加智能的远近优化以及衔接。当然这是后话

目前最简单的方式就是不用Nanite,都用LOD0;但我很好奇你是怎么对其的,因为我本地非Nanite接缝更大。

1、减小模型的尺寸,我们是把1个原本的【大模型】通过引擎内的建模工具-Plane Cut 切成2-4个【小模型】完成的,而Actor的Scale还是(X=1.000000,Y=1.000000,Z=1.000000);

2、高尔夫球游戏,碰撞需要非常的精准,所以“边界有重叠”,我们担心会有碰撞步精准的问题。另外就是UE4我们一直是这么做的,并没有出现有缝隙的情况;

3、Landscape在虚幻4的精度达不到我们的要求,我们需要非常精准的1比1还原【现实】中果岭的形状,果岭一般比较小,就算选择用最高精度的Landscape,依然没有那么“圆润”的情况出现。并且Landscape都是由正方形的网格组成,材质绘制的时候会出现没那么精准的情况。

类似下图:最高的精度创建1块Landscape,然后调整Scale大小匹配我们原本的地形大小,进行对比。划红线的部分因为Landscape正方形的关系,没那么精准。并且以我目前已知的方式在Landscape绘制材质,接触的边缘也会比较”虚“,而模型则可以很实。

[Image Removed]其实这个也是困扰我们很久的一个问题,借此机会也希望李老师能指点一下我们,UE5 的Landscape是否有方式可以达成我们的需求。

4、非Nanite调用缝隙更大,应该指的是LOD2-5的缝隙会更大,LOD0应该是没有缝隙的吧?拉远了看有缝隙是很正常的,但是一般玩家感知不到。

所以针对我们项目的情况,我们目前的解决方案是:

PC开Nanite避免Lod情况,因为精度导致的小缝隙问题,我们将大地形切成几块小的,保证能够让精度能够到1//32CM;

Mobie为了保证性能用LOD(在地形边缘屏占比小的时候会加载LOD1的情况,不理想但是要为了性能与效率妥协)。

好的,补充下,上面材质的算法有点问题,稍微改下;仅作参考,总之目的是锐化边缘。

[Image Removed]