您需要 登录 才可以下载或查看,没有账号?注册
x
本帖最后由 CG世界 于 2022-4-1 10:50 编辑
来源 CG世界
“ 感知技术 · 感触CG · 感受艺术 · 感悟心灵 ”中国很有影响力影视特效CG动画领域自媒体
最近越来越多的个人和工作室开始用UE5制作自己的Demo和短片。今天为大家带来的是由The Coalition团队在今年的GDC大会上公布的一个UE5技术演示。首先大家来看看短片内容。
短片里大家看到的所有资产都是专门为这次测试而构建的。资产中有90%都是由The Coalition自己创建的,剩下的10% 是用的是Megascans模型。
是在Xbox系列主机上以30帧每秒的速度运行的过场动画,输出分辨率是4K,在 1080p 到 1440p 分辨率之间缩放,场景有1亿个三角面。
在放到UE5测试之前,其实一直用UE4制作来着,但因为网格数量太大了在UE4的速度特别慢。导入到UE5后因为有了Nanite的处理,速度一下上来了。
为了向GDC观众解释短片的详细心得,他们有个讲解60分钟的总结干货,因为视频很长,这里老潘用了两天时间把其中的重点内容给大家梳理成文字版,希望对同学们和小伙伴有用。要点概括如下,有所删减。
原链接:https://www.youtube.com/watch?v=X2FBFFBDJf0&t=3002s
高多边形的建模 建模耗费的时间比较长,主要是资产的重用过程中避免一些穿插,选择有用资产等等。这时候就能看出前期概念设定的巨大作用,它可以避免很多返工。这里面的模型多数都是直接雕刻的,所以注意比例很重要,做完之后再考虑比例问题就难纠正过来了。
制作人员大致估算了下平均每个资产的三角面是30万-50万。 另一个问题是在三角面超过100万时候,有些DCC工具制作起来就很费劲了, 最大的痛苦是在超过100万三角面的模型上进行UV的编辑。 所以在导入UE5时候尽力避免模型超过100万。
在导入8K纹理时UE5速度有点放慢,但4K纹理还算游刃有余,有点缺憾是Nanite目前不支持半透明,蒙板材质和样条工具,比如Pixel Depth Offset和实例化顶点颜色的物体。
由于Alpha的约束,关卡中的树叶大多是非Nanite物体,不使用Nanite的好处是它支持植物的PDO混合。大家在上面短片中看到的藤蔓的植物都是用Blender的Ivy直接生成的几何体。
层级细节 细节部分的纹理利用视差遮挡,可以很好的处理物体接缝以及添加更多的细节。因为材质绘制限制,拥有强大的贴花工作流程对于Nanite资产非常重要。
材质设置 材质上没有什么特别的,但是这里面他们要求所有材质只有4个材质层,方便改变材质混合模式。
所有都被包装成一个材质函数,清晰的命名规则和方法。整个流程对于制作人员的规范要求是相当严格的。
纹理管线 对于纹理他们创建了一个新的纹理管线TCTexture Toolkit,可以轻松管理使用SP,Megascans和Unreal创建的纹理和材质。
可以设置纹理参考,目录和界面标签。 有通道打包设置将所有通道打包成一个文件导入到UE中以节省纹理内存。
纹理细节的添加 把添加的Detail Normal、Detail Diffuse,Detail Roughness都打包成一个BC7纹理,这样可以节省大量内存。
如果需要,利用基础材质中的颜色、颜色曲线为灰度漫反射贴图提供一些颜色 添加了细节贴图遮罩,保证每个材质都有多个细节贴图。
可绘制体积雾 现在可以有任意网格的笔刷,分层系统允许堆叠和重叠的笔刷。
产生的雾效还可以在地面产生阴影,改变雾的噪波和分散程度。
分层材质
因为Nanite不支持顶点颜色,所以制作团队使用其他方法,就是分层材质。
比如材质Up-Vector,是一个逐像素处理能力。
另外就是放置Nanite物体碎片,营造材质的变化。
混合Nanite物体网格物体。
他们特意开发了一个体积材质绘制系统。
体积材质层绘制系统
这是他们团队开发的一个体积材质层绘制系统,是利用交叉高度贴图技术的可绘制体积雾方法,可以让艺术家在编辑器中绘制材质层。能在世界空间中绘制,跨越网格边界。可以在单独的图层上创建许多笔刷得到想要的的结果,但这个工作流程会增加30%GPU运行压力。
虚拟纹理
因为8k纹理和4k没有太大的区别和影响,场景中多数都4K分辨率的纹理。
这里他们把所有纹理采样器都设置为Streaming Virtual Textures。这可以使用更高分辨率的纹理,而不会因为纹理被拆分为瓷砖而影响纹理预算。
虚拟纹理比传统纹理代价高,因为需要两次获取和进行一些数学运算,所以制作团队改变了一些方法,就是在采样时重用UV。
纹理内存
这里他给了一组数据
总共的虚拟纹理占用物理内存是:379M 文件缓存大小:128M
CPU总加载内存:9M 占用硬盘大小:1.5G 流纹理池:550.68M
墙体和地面的平铺 在用纹理平铺地面和墙体时遇到了个问题,就是这种几何结构太过复杂,无法构成一个大的网格,像2000万个三角形的物体似的,占用了大量的内存。一般的处理方法都是用一个平铺高度图,就可以在任意地面上使用它来实现类似的外观。所以需要一种方法来解决地面和墙面平铺纹理的细节。
平铺网格蓝图
上个问题解决方法就是创建蓝图创建平铺网格。将网格视为平铺高度图。蓝图会产生一个非Nanite流体和破旧网格,再使用World Position Offset在这些网格上绘制顶点颜色,能让他们很好的混合在一起。
可以产生碎片网格,节省艺术家在网格上的绘制时间。
空时超分辨率(Temporal Super Resolution)
性价比的变量取决于输入的分辨率大小。
从1440P到4K是2.7毫秒
从1080P到4K是2.23毫秒
从短片中可以明显看到草叶边缘或者沙石细节的明显改善。
Lumen质量 短片中所有的灯光都是实时的:实时虚拟阴影贴图,Lumen直接光照,Lumen反射。强大之处就不必多讲了。
缺点是半粗糙反射会有些噪点, Lumen Screen Traces过程不考虑间接光照强度值,如果参数过高,可能导致某些“独立屏幕”的间接光照。
有时你会看到Lumen会重计算相机裁切。
Lumen性能 将流明反射质量降低到0.25非常安全 将Lumen GI 质量降低到以下1会导致微小的抖动或重影问题 这里它们测试不同参数下的状态。
Lumen Reflections 微自反射确实可以防止高光渗漏。 Lumen反射成本取决于屏幕上反射的像素数量及其粗糙度。需要注意下像水坑这样的反射。
Lumen Reflection Quality设置为0.25出现半分辨率缓存。
Virtual Shadow Maps
获得适当数量的阴影分辨率以正确处理Nanite网格的关键。 需要 Nanite 资产。尽管存在对非Nanite资产的一些早期支持。
可以创建类似光线跟踪的软阴影衰减。 制作团队还在某个角落里测试粒子,就是一些在墙上乱爬的小昆虫,大概有500个粒子。
自定义特效 在基础的通道中添加新的G-Buffer,材质可以将自定义的VFX数据写入Gbuffer,然后在Niagara中使用。 有Niagara数据接口,因此大部分代码可以包含在插件中。
XBox系列X的性能 在带有空时超分辨率4K的情况下目标是60fps。
在启用所有功能后(Lumen,Virtual Shadow Maps、Temporal Super Resolution、Nanite) ●平均FPS:46fps ●平均毫秒:21ms ●GPU=21ms ●绘制线程=13ms,移动相机时19ms ●游戏线程=7.5ms
除此之外,他们还测试了一角色,下面来看看效果如何。
视频中这个角色三角面数据:
头发:325万 胡须:24万
眉毛:1.1万 睫毛:3500
细小绒毛:13万 身体:16万 面部:3.1万
创作过程
直接用MetaHumans创建了牙齿和眼睛。当时Epic发布出来后,制作团队仔细研究了整个软件的功能性,发现里面的眼睛和牙齿特别棒。
然后通过Quixel Bridge导入到Maya里进行了重拓扑。 至于材质他们发现MetaHumans也可以达到他们要求的水平,于是也直接用了。
面部更多精细的细节又进入其他DCC软件进行了制作。 细节的贴图和衣服的着色是在ZBrush中雕刻的。
然后进入Substance Painter自定义管线制作纹理,基本都4K的。 毛发梳理是用Maya的Xgen和Unreal一起结合来搞定的。 大家更关注是皮肤吧?皮肤着色用的是Burley SSSSS。
好了,基本上就这么多。The Coalition团队讲解的非常全,上面文字部分省去了很多性能方面的测试内容,感兴趣小伙伴可以去油管原链接去看看。
全文完
|