当前位置: 首页 > 科技观察

开启元宇宙数字人之旅

时间:2023-03-16 12:49:34 科技观察

作为构建元宇宙内容的基石,数字人是元宇宙最早可落地、可持续发展的细分成熟场景。目前,虚拟偶像、电商♂、电视主播、虚拟主播等商业应用已经被大众认可。在虚拟世界中,核心内容之一就是数字人,因为数字人不仅是真实人类在虚拟世界中的“化身”,还是我们在虚拟世界中进行各种交互的重要载体之一。元宇宙。创建和渲染逼真的数字人物角色是众所周知的计算机图形学中最困难的问题之一。近日,在51CTO主办的MetaCon元界技术大会《游戏与AI交互》分会场上,Unity大中华区平台技术总监杨东通过一系列demo在的主题分享中详细介绍了Unity的高清渲染管线示范技术。一、Unity简介Unity是目前全球支持最多的计算平台,目前支持近30种计算平台,包括PC、Mac、Linux、iOS、Android、Switch、PlayStation、Xbox,以及所有的AR/VR、MMAT、等设备。如果是制作3D交互内容,Unity确实是目前最好的选择。我们知道,在一些配备独立显卡的机器上,高质量渲染是用来渲染高质量内容的。现在逼真的数字人技术依赖于高质量的渲染技术。目前,Unity中国团队拥有超过300名全职员工,全球近7000人,其中超过70%为工程师。总部位于上海,在北京和广州设有办事处,并有相应的员工在当地工作。2.Unity引擎的强项是什么?Unity虽然目前不是开元引擎,但是模块的可定制性很强。图片显示了Unity目前支持的平台,在这些图标上可以找到一些最常见的平台。这些可能是近年来最热门的一些游戏。这些图标有些耳熟能详,比如王者荣耀、CALLDUTY、英雄联盟、原神、糖豆、闪灵和暖暖……事实上,Android和iOS榜单前1000款最赚钱的游戏中有70%以上国内外均由Unity打造。超过一半的Switch游戏是使用Unity制作的。你可能无法相信,一款看起来非常复杂的高品质游戏,而且还是Xbox首发的爆款游戏,居然是一个人开发的,充分体现了Unity引擎的灵活性和工具链的力量。Unity正朝着高性能的方向发展。下面我来解释一下三个主要点系统的组成部分,C#JobSystem、ECS和BurstCompiler。C#JobSystem实际上是让开发的游戏或应用程序可以充分利用集成CPU的并发计算能力,因为现在面向对象的编程模式是制作的内容,运行在主线程上。第二个是实体组件系统(ECS)。EntityComponentSystem可以将数据从系统中分离出来,即游戏逻辑,更容易维护,对内存的使用也更友好。BurstCompiler可以为目标平台生成和运行更高的机器码。另一方面,高画质也是Unity非常好的特点。如果仅仅说需要使用非常昂贵的PC或者Xbox、Playstation等昂贵的机器来渲染精美的画面,其实游戏的通用性太差了。通过XRP,也就是所谓的可变渲染管线,Unity为大家做了两套开箱即用的渲染管线,一套是通用渲染管线URP,二是HDRP(高清渲染管线).顾名思义,URP所谓的通用渲染管线是所有平台都支持的。无论是开发VR游戏、AR游戏还是手游,都可以使用URP进行渲染工作。HDRP是指PCmacLinux、Xbox1和basestation4及以上平台,也支持实时光线追踪。3、高清渲染管线如何实现数字人的高质量渲染?《异教徒》数字人其实并不是Unity做的第一个数字人,但是《异教徒》这个数字人有它的独特之处,因为这个数字人非常逼真,而且它形成了一套完整的工作流程。想要实现《异教徒》这样的高质量渲染,高清渲染管线必不可少。《异教徒》这个数码人其实是有原型的。他是一位住在伦敦的英国戏剧演员,名叫杰克。扫描他的数据,这是他全身的数据。重点是扫描他头部的数据,然后做成数字人后,表情非常逼真。4DVolumetricVideo技术用于制作表情动画。这种技术虽然可以做出很逼真的表情,但是也有一个缺陷,就是不能实时驱动,影视里面的人物表情做动画是没有问题的,但是不能实时驱动。一些成功的案例,可以看看眼睛渲染和皮肤渲染,我们分别来看一下。为了改善皮肤的质量,添加了以下技术。DetailMap是细节图。SecondarySpecularLobe是第二层的高光,CavitySpecularOcclusion是指凹陷,可以遮住高光,ScreenSpaceSubsurfaceScattering是指屏幕空间的次表面散射。第一张细节贴图主要用来模拟皮肤表面和其他纹理的细节。这个贴图不大,是1K的贴图。第二层高光,SecondarySpecularLobe,用来模拟皮肤表面的油层。因为皮肤要出油了,皮肤看起来比较干,所以用这个方法加第二层高光是很有必要的。三是凹陷高光,就是把凹陷中央的高光遮住。加上第二层高光后,皮肤凹陷的地方也出现了高光,明显不真实,需要把高光遮住,让凹陷的地方不出现高光。第四个是屏幕空间的次表面散射,用来制作皮肤本身的效果。我们知道皮肤本身就有所谓的3S效应,也就是所谓的次表面散射效应。皮肤显然需要用到次表面散射,但是传统上我们在使用MAYA或者3Dmax等离线渲染软件模拟皮肤的时候,渲染出次表面散射的效果是非常耗时的。在Unity中,实际上有两种渲染次表面??散射效果的技术。一是ScreenSpaceSubsurfaceScattering技术,渲染速度更快,二是通过光飞的方式,显然更加逼真。这个角色就是《发条乐师》短片中小女孩的角色。小女孩这个角色在画面空间中同样使用了次表面散射的效果。右边的叶子实际上使用了次表面散射的效果。接下来,让我们谈谈眼睛的渲染。其实,眼睛是一个非常复杂的物体,它是由很多部分组成的。在实时渲染中,模拟真实的眼球,模拟角膜、瞳孔、虹膜、巩膜4个部分,已经可以得到非常逼真的效果。如图所示,我们的眼球本身就是一个非常复杂的物体。正视和侧视其实是有区别的,尤其是虹膜透视的折射现象。如果正常渲染的话,这张图就是一个非常有名的GDC上的数字人角色。数字人眼球实际上是根据真实眼球的形状建模的,它会有一些特殊的着色器来表达眼球的各种参数。包括它的反射,巩膜和虹膜上的法线贴图,应用不同的法线值可以呈现的效果,甚至眼皮的遮挡,通过单独的控制器控制,可以控制眼皮的效果。综上所述,通过真人扫描数据,通过blendshape、WrinkleMap、ColorMap、FacialRigging制作面部表情,并通过控制器驱动面部表情。当然,我们也知道还有很多其他的方式来驱动这个表达式。其实我们在渲染皮肤、眼睛或者头发的时候,是比较容易的,但是表情驱动其实是一个非常大的难点。经常听到开发者说为什么用的Unity达不到Unity能做到的效果?因为Unity呈现的demo效果都是一群精力充沛的人创作出来的,他们用的技术其实不是他们做的那个版本。做完这个demo之后,随着这些技术,他们会逐渐组合到下一个版本中,最终形成一个大家可以使用的功能版本。4.制作数字人的过程是怎样的?完成完《异教徒》后,Unity中国团队居然做出了自己的数字人,使用了《异教徒》技术,坐姿4D扫描等技术。这是一个真实的项目,过程其实和《异教徒》的一模一样。包括清洗数据,制作相应的blendshape,制作WrinkleMap,制作Rig,然后驱动表情,ASSETStore中的controller,使用AnimationClip和BlendShape呈现表情动画。当然,人脸抓拍的方式其实更多,比如用Market追踪,用ARKit追踪,用图像数据开车。在实际开发的时候,还有一种方式是通过摄像头捕捉表情来测试人头的表情,这种方式是由图像数据驱动的。她有一头飘逸的长发,这是一个非常巨大的不同。这个飘逸的长发是Unity中国团队开发的方案。它适用于URP和HDRP,既适用于一般渲染管线,也适用于高质量渲染管线来创建头发。头发的渲染与传统的插件方式有很大不同。可以很流畅,甚至感觉像海飞丝广告的效果。表情其实是通过ARcade实时驱动的,当然表情是ARcade驱动的。Unity中的数字人称为Emma。这个数字人的表情是由ZivaDynamics技术动态驱动的。核心技术其实就是模拟出模型下或者生物皮下的肌肉群,可以模拟恐龙。真实身体肌肉的运动也可以将这项技术应用到,例如非常逼真的数字人类面部表情的模拟。传统上,模型是一个空壳,外面是一个壳,但在ZivaDynamics技术中,它背后实际上有真正的解剖肌肉,当这些肌肉实际移动时,外面的这些皮肤可以获得另一个或更高的皮肤比传统的混合形状或骨骼绑定更逼真。今年3月,Unity在GDC上发布了《Enemies》最新数字人的预告片。这个数字人的表情非常非常真实。值得一提的是,她的头发是Unity即将公开的一套毛皮渲染技术,应用于HDRP高清渲染管线。欢迎访问MetaCon元界技术大会官网,了解更多关于元界和数字人的信息。地址:https://metacon.51cto.com/