你好,
我最近在做一些Nanite资产的测试。在制作高精度模型资产时,发现很难单纯的靠面数补充所有的法线细节(因为无法使用照扫流程,这会需要特别多的美术人力以及很高的模型面数要求),Nanite模型配合包含模型结构和材质细节的法线贴图往往能达到更好的效果。
当遇到无法开启Nanite的设备,需要使用Nanite Fallback的模型,这些Fallback模型使用传统的LOD制作工艺,面数更低。(例如对于一个砖墙面,可能模型只是一个平面,材质中用带有砖纹凹凸的法线贴图或许再配合一些POM可以达到比较好的效果。)
<br/>
但是,对于nanite高精度模型和非nanite的传统模型,他们使用的法线贴图理论上不应该是一样的。达到一样的法线凹凸效果,nanite高精度模型使用的法线贴图应该包含更少的结构细节,而应该更多是由detail细节构成。(参考下面附件的01.jpg的对比图)
<br/>
如果大部分模型采用这样的方案的话,包体中的法线贴图会有nanite和非nanite双份,对包体大小不是很友好。
<br/>
我尝试了把nanite高精度模型的顶点法线处理成和非nanite模型的顶点法线一致,这样可以让他们共同使用非nanite模型的法线图。简单的材质对比上看上去效果还可以(参考下面附件02.jpg),但是担心太trick了会有后续的其他问题。
<br/>
想问一下官方对这种双份法线贴图的情况有什么看法和建议吗?感谢
Wenlei.Li
(Wenlei.Li)
2
切线空间法线贴图在不同切线的模型上肯定就不一样。要求高的话是需要不同的法线贴图实现同样的法线效果。但传统非Nanite的LOD0,LOD1,LOD2...也都是共用LOD0的法线贴图,尽量保证切线大方向的一致;如果把Nanite看成LOD0的话同样道理。
世界空间或物体空间法线贴图我想理论上可以适配切线不同模型达到更加一致效果。材质用世界空间法线,DCC烘培的就是世界空间法线,物体要转动的话就需要物体空间法线。要求高的话也许可以一试
不过还是得先评估下实际效果使用两张不同的法线到底能带来多大的提升,不大情况下没必要,因为以前LOD也是共用的
Wenlei.Li
(Wenlei.Li)
3
感谢提供说明;
- 首先从你的描述看上去开不开Nanite会被作为高低配置的一个Scalability选项。但Nanite本身其实是可以提升整体的渲染效率;对VSM,Lumen效率有很大的提升。除非低端平台所有这些都同时关闭或者质量很低,比如没有GI,VSM距离很近等。否则关闭Nanite往往就变成了负优化,这点我不是很理解。
- POM据我了解比较贵的,对产生轮廓也无效。对于非轮廓线的小突起有效,如果开POM阴影开销又进一步增加。我在想一个是使用Tessellation比较下一个是效率,一个是效果,因为Tessellation毕竟是几何体,有轮廓线也自然产生阴影。或者就用PDO结合Contact Shadow就给个阴影,有阴影立体感就能强很多,并不一定需要透视的变化。
- 的确即使Tessellation也无法做到像素级,要效果好需要细节法线。我其实期待 只用一张更小的TilingDetailNormal补充细节效果。另外Nanite的如果使用LOD0的法线,在材质里其实可以做一些去掉或减弱Nanite本身顶点法线影响的计算。
总结下:我认为最好同一平台全Nanite(低端可以适当降低渲染顶点密度);如果不同平台比如手机要切LOD那套可以提供单独的法线贴图,保证最佳质量。POM这种我认为性价比不高,平台也不通用;
感谢文磊老师的回复,
之前有尝试过让Nanite模型和Fallback模型使用同一张法线图,不过可能是这个案例Nanite模型和fallback差的比较大,所以用哪一张法线图效果都不能做到两个效果都很好(参考附件03)。因为Nanite(规划中的超高配)和Fallback的LOD0(高中配)都是PC下比较重要且在玩家最近能看到的级别,所以可能不是很好牺牲其中一个的效果。(关于传统LOD使用同一张法线问题不大的原因,我想了想可能主要还是因为后几级差异比较大的LOD模型本身就比较远对效果确实要求不高)
我可能再尝试一下让Nanite高精度模型尽量和fallback模型差异小一些,看看这种情况使用同一张法线图的对比差异。如果大部分情况下可以使用同一张的话,可能只允许给这种差异比较大的模型2套法线这样也行。
Wenlei.Li
(Wenlei.Li)
5
LOD0和LOD1如果多平台(PC+手机)都是首席显示模型,都很重要据我了解也就一张共用。另外Nanite本身的三角面也随时在坍锁变化。我想还是两者模型切线差距大小问题。
- Fallback Mesh是一个平面吗?
- Fallback如何生成的?引擎生成还是外部制作导入的?
- 能看下Nanite模型和Fallback模型的切线吗?
另外如果Nanite本身细节足够是否就可以不需要主要的Normalmap了,完全去掉效果如何?或者只加一些Noise的次级Normalmap即可?总之目前先看下如何尽量避免多张Normalmap,流程和工作量不友好。如果其他方式效果不行再看
Wenlei.Li
(Wenlei.Li)
6
另外我看了下Quxiel的资产,同时带Nanite和LOD的贴图是分开的,法线有很大差别,供参考。
[Image Removed]
案例里的fallback mesh是一个模拟平铺的墙面模块的平面片,使用SD生成的法线贴图。这个案例是墙体地板类模块的Nanite测试,我们正在验证Nanite做出模型转纹突起的情况下,fallback使用平面模型+法线&POM做突起这样的方案的效果对比和材质方案。
他们的切线确实会对比比较大(参考附件04)。
[Image Removed]
Quixel资产的法线确实是我想象中两套资产的样子,不过如果要以这样的质量制作的话可能无法避免要给一个独立下载的高清贴图包了(叹气)。
测试下来是觉得,如果想要 开Nanite 比 不开nanite 的模型效果提升的越多差异越大,就越需要nanite模型更精致准确,就越需要一张额外的法线图。如果使用同一张法线图效果也差不多的话,可能也侧面表示了nanite模型本身比fallback模型差别不大,这样开nanite作为超高配带来的效果提升其实也越小。
我会再尝试一下看看在当前测试的nanite面数下,只用一张更小的TilingDetailNormal补充细节效果能不能接受。
原本我们预计是在超高配置下同时开启Nanite,Lumen,VSM。在其他不能支持的PC机型和手机下同时切换成使用传统LOD,VLM,CSM这样的方案。或许我们需要讨论一下PC全部Nanite的可能性。
另外detail tiling和在材质里改一下法线贴图的TBN尝试去掉顶点法线影响也会尝试一下。
感谢详尽及时的回复~