欢迎光临散文网 会员登陆 & 注册

UOD 2021主视觉输出记录——如何使用UE5渲染16K超大画面

2021-11-09 17:55 作者:FishersLab  | 我要投稿


先说结论


  1. UE5 EA有能力渲染16K(15360x8640)级别的超大图像。


  2. 但UE5 EA的渲染模块不如UE4稳定,需要手动计算调试。


  3. 渲染超过6K的内容建议使用MRQ的HighRes模块进行拆分渲染,并将每个分块的尺寸控制在4K上下。


  4. 不同项目的实际表现可能非常不同,请适当调整。


实际渲染参数如下:

MRQ-输出


MRQ-高分辨率(HighRes)


MRQ-抗锯齿


一切的开始


有一天晚上大钊问我,你用的是RTX 8000吗?我说不是,我用的是RTX A6000,咋了?


大钊说,需要我帮忙渲染一下今年UOD的主KV。因为工程已经准备好了,但是他自用的RTX 3080显存不够(10 GB),没法渲染打印海报需要的16K版本……


我说这还不简单,不就是点个Render然后再等1.19秒的事情么,交给我吧!


事实证明,我太天真了!


第一次渲染


打开工程后我直接沿用UE4的经验设定了16K分辨率进行输出,结果UE5 EA直接崩了!


但检查到显存占用才9.8GB!因此问题显然不是出在显卡层面,应该从MRQ方面找原因。


第二次渲染


第二次渲染我启用了高分辨率(HighRes)模块,使用最基本的2x2拆分方式,将画面分为4块;再加上20%的Overlap,最终每个图块的分辨率为10752x6048,如下图:

结果这次输出还是失败了,但是我得到了一段有价值的log信息:



通过log可以判断,渲染进程不是凭空挂掉的,而是来自系统层面的主动关闭,且关闭原因与2D纹理的分辨率有关(2DTextureDimension)。


一开始我怀疑是不是场景里使用了某种超大贴图,但简单检查以后就能排除这个原因,项目里最大的贴图只有8192x8192分辨率,是标准的Megascans资源,没有超标情况。


于是带着这个疑问我又开始了新的测试:


一次……


一次……


又一次……


3072!


同样的崩溃出现了一次一次又一次,但是在某次测试中,我得到了一条关键信息:



渲染设置如下: Tile Count = 3,Overlap Ratio = 0.3, 最终每个图块的分辨率为8192x4610.如果不考虑Overlap,则实际分辨率为5120x2880.

上文中的关键信息提到,由于2D纹理的横向分辨率为18432像素,大于系统允许的16384限制,所以造成了渲染崩溃。


这么大的纹理不可能来自于工程本身,只可能与渲染输出有关。考虑到最终图像的分辨率是15360,是否有可能是因为虚幻在分区计算时生成了某张过大的缓存,导致渲染崩溃?


手动计算18432-15360=3072,请记住3072这个数字,这是解决问题的关键!


然后让我们回忆一下HighRes模块的计算方法:每个图块的本体分辨率为5120x2880,加上30%的Overlap(双向),最终分辨率为8192x4610。如果用8192减去5120,将得到Overlap区域的横向分辨率:3072!


自此我们已经找到了问题的逻辑:渲染图像从横向而言被切分成了3块,每一块的原始分辨率为5120;加上30%的Overlap区域,最终计算的图像尺寸为5120x3+3072=18432——过大的Overlap区域导致渲染失败。


如下图所示,一个图块由三部分组成:5120像素宽的本体,以及左右各30%(1536像素宽)的Overlap区域。三个区域的总宽度是8192像素。

在实际渲染时,三个图块依次拼接,中间的Overlap区域将会互相融合以消除接缝。但最左边和最右边的图块各会有一个额外的Overlap区域,当它们与主体的15360像素相加以后,就会得到18432这个超标尺寸。

找到了问题原因,那解决方案就很简单了:适当降低Overlap,或增加图块数量,保证实际渲染尺寸不超过16384即可。


后记


后来我又经过了几次测试,确认使用上面的思路都能完成渲染任务。但最稳定兼容性最好的设置请参考开头部分。


这应该是UE5 EA高分辨率(HighRes)模块的一个Bug,相信正式版会被修复,因为UE4没有出现同样问题。

 

注释


  • 场景不是我做的,我只是帮忙做了输出。这个场景是大钊和日天做的。


  • 抗锯齿模块设置比较特殊,是因为本机内存有限(64GB),无法支持更高的时空采样,这只是个临时的Trick。


  • 使用开头提到的参数进行输出时,实际显存占用约为20-30GB,所以大钊的RTX 3080应该还是搞不定的,哈哈


  • HighRes模块的相关资料请查看:实践课-MRQ-高分辨率


  • UE4输出16K视频的文章请见:使用RTX A6000渲染16K Unreal视频是一种什么样的体验?


UOD 2021主视觉输出记录——如何使用UE5渲染16K超大画面的评论 (共 条)

分享到微博请遵守国家法律