AnimToTexture开启Nanite 存在视觉瑕疵

Hi,

我们使用AnimToTexture插件创建了VAT动画,当我们开启Nanite以后,会产生变形。

[Image Removed]

搜了一些相关的文档,提示要关闭Lerp Uvs 当关闭它以后,还是会存在一些视觉瑕疵

[Image Removed]

我们录制了一个视频,放在了附件中。可以更清楚的查看效果。

关闭Lerp Uvs 开启Explicit Tangents似乎显示上会正常一些。

[Image Removed]

但是我们不确定这种操作是否正确,所以想和官方的同学请教一下,正确的使用方式应该是怎样的?

在附件中提供了一个AnimToTexture的VAT Demo供查看。

另外还有一个关于贴图方面的疑问想请教一下,就是这个Enforce Power of Two是否有必要开启? 如果开启他会强制使用二次幂,导致贴图尺寸变大,感觉有些浪费。

[Image Removed]另外就是设置Texture的Height和Widget,是否可以根据工具的提示来设置尺寸?只要保证它不出Waring就可以?

[Image Removed]我们发现如果不开启Enforce Power of Two的话,默认设置为4096x4096,他会根据实际情况生成一个大小差不多的贴图,比如2700x500这样的。 但是如果开启Enforce Power of Two的话,他就会生成一个4096X512之类的尺寸。

在后面,我们测试把Texture的Height和Widget设置到1024x1024发现也是能装下的,再小就会触发上面提到的这个Warning。但是不确定这样做是否会有什么其他的隐患?比如压缩了精度之类的情况,所以想请教一下这样设置Size是否合理。另外就是Enforce Power of Two是否有必要开启。

还有最后一个疑问,为什么插件要设置打开generate lightmap uvs呢? UE5中,Lightmap应该没什么用处了吧。

[Image Removed]设置index为2,我理解是把uv1通道让给AnimtoTexture做VAT,但是没理解为什么还要设置generate lightmap uvs。

我看City Sample中,并没有设置这些。 在AnimtoTexture中是添加了SetLightmapindex,我没有理解官方的用意是什么,包括为什么启用了generate lightmap uvs。

[Image Removed]这是插件的设置: 并且还多了一套UV2,用来把UV1空出来。 City Sample是只有UV0和UV1,并没有Set Light Map Index多创建的UV2。

[Image Removed]

1、lerp UV对于UV存的是frame的 index​这种贴图要关掉,否则拉远顶点坍缩后动画查询会出现你提到的问题,这是推荐操作。Explicit Tangent可以保持原始顶点法线方向,不被合并或成为一个光滑组,结果是顶点无法坍缩,也就是拉远了不会减面,不减面也就不会有UV lerp产生的查询问题,因此开不开lerp UV也无所谓。

视频中还有一个法线问题(Explicit Tangent关闭时),开启后好转。这个我只能猜测烘培VAT的法线纠正贴图时是基于非Nanite模型的,当Nanite开启会生成Nanite模型并优化法线,没有WPO的时候是OK的,但一旦动起来这种Implicit的法线会不匹配动起来后的VAT法线纠正贴图。开启Explicit后就能匹配了。

其实还有一个它阴影问题,也就是投射到地面上的VSM​是被“裁切”掉的;这个需要在材质中设置WPO 的Distance,默认是0;

因此目前开启lerp UV和Explict Tangent是推荐的操作(如果必须用Nanite的话)。但我个人可能更推荐关闭Nanite

2、​贴图是否2的幂次在引擎里一般决定是否可以生成mipmap;VAT没有mip,我个人觉得应该可以不需要。如果你有遇到具体问题可以再一起看一下

3、是否lightmap​这个可选,全动态不需要就不选(Citymap实时GI)。UE5也有静态光平台的需求,所以给个能生成2UV的可选项可以理解。

开启Explicit Tangents以后不会减面,那感觉开Nanite似乎就没什么价值了。

另外最后一个,如果我是全动态的,不需要静态光。那么是把插件里面Set Light map index这个节点整个删掉?还是关闭generate lightmap uvs就可以了? 好像关闭generate lightmap uvs,就不会自动创建新的UV通道了。

非常抱歉,纠正下我上面的说法:

Explicit Tangent的作用是转Nanite后保存模型本身的切线,主要作用是确保切线空间的法线贴图表现正确。这个和上面提到的部分是一致的。但纠正下Explicit Tangent开启就无法减面对说法,只能说减面的效果有可能没有不开那么激进,因为顶点精确explicit切线方向和Nanite implicit切线相比三角面合并变得更加保守。还有Lerp UV还是要开;总结下:Lerp UV确保顶点运动OK,Explicit Tangnet确保法线OK

对于最后一个问题其实如果不需要lightmap我认为直接删了应该也没问题。

Explicit Tangent的解释明白了。

:sweat_smile: 不过LerpUV真的要开么?Lerp UV开了以后,如果拉远的情况下,表现会不正确。

[Image Removed]只有关LerpUV,开Explicit Tangnet表现才正常。

Lightmap那个就把generate关了就好了,这样和city sample那个设置基本能对应上了。

糊涂了,我想说的是lerp UV得关,UV不能做lerp!

哈哈哈,明白了。那就是关Lerp UV,然后开Explicit Tangnet就ok了。