首页 理论教育 Nvidia伊拉教你三维动画造型制作

Nvidia伊拉教你三维动画造型制作

时间:2023-10-25 理论教育 版权反馈
【摘要】:Nvidia的数字伊拉有两个版本。图6.2.11Nvidia为数字伊拉所做的只是他们对实时角色的长期研究中的一部分。Nvidia从ICT获得了许多Ari的头部扫描数据,包括几何体、纹理漫反射率贴图、高光反射率贴图、凹凸贴图及置换贴图。给Nvidia的数据和给Activision的数据类似,但用法却不同。Nvidia得到的是Maya文件,包括头部和混合变形,以及大量的纹理数据。Nvidia收到的最终数据使用10个静态扫描的纹理。图6.2.14Nvidia的次表面散射方案有些不同。

Nvidia伊拉教你三维动画造型制作

Nvidia的数字伊拉有两个版本。第一个是在2013年3月的GTC和GDC上展示的。这个版本运行于GeForce GTX Titan,在此有可下载版本。这一演示可在各种显卡上运行,但至少需要一张Titan显卡才能实时运行(每秒30以上帧率)。事实上首次展示是在搭载了两张Titan显卡的高端PC上运行的,不过一张已经足够了。第二个版本是改进版,在Siggraph上展示,不仅眼部和其他细节得到了更好的改善,并且在一块新的开发版图形芯片上运行,这块芯片是用于平板手机的。在Siggraph的Nvidia展台上,伊拉在4K显示器和移动桌面原型机(Nvidia的Logan项目)上实时运行。对它留下深刻印象的不仅有与会者,还有一名主要研究人员——高级研究员Curtis Beeson。

他解释道:“它的最精华的部分在于ICT的高分辨率捕捉,我第一次在大银幕上看它的演示时,它比在电脑上看起来更棒。对我来说这是很兴奋的:你看到的越多,它的效果就越好。在它放到这么大时仍无须担忧实在是很难得,我很欣赏ICT的人所做的,因为通过捕捉真实的演员,他们给我们提供了我们从未见过的极高质量的数据(图6.2.11)。”

图6.2.11

Nvidia为数字伊拉所做的只是他们对实时角色的长期研究中的一部分。他们最初是想升级多年前制作的角色Dawn Fairy,但是随着Dawn 2的进展,Beeson和团队成员发现无法在它之上达到他们想要的显著改进。“在付出很多心血之后,我们得到了看上去不错的实时画面,但并未达到照片真实感”,Beeson说,“尤其是动画效果不够好,因为如果我们要通过变形和蒙皮让她变得吸引人、表情丰富,她就会散架,看上去像是动态机械。因此虽然我们用传统方式可以实现实时运行需求,但要实现逼真的人物,就远远不够了。”

于是团队找到了ICT,“那里的人多年来已经展示了很多了不起的东西”。

Nvidia从ICT获得了许多Ari的头部扫描数据,包括几何体、纹理反射率贴图、高光反射率贴图、凹凸贴图及置换贴图。给Nvidia的数据和给Activision的数据类似,但用法却不同。Nvidia得到的是Maya文件,包括头部和混合变形,以及大量的纹理数据。

“所以我们最终使用了他们的‘逐帧逐顶点权重’技术,以整合不同的贴图,例如色彩和凹凸”,Beeson解释说,“我不确定是解算器存在缺陷还是原本捕捉的面部就没能表现完整的运动,不过他们为我们提供了一组混合变形,基于他们对主要动画分量的分析。最终我们控制顶点和蒙皮,并借助主要分量分析(principal component analysis),而不是对静态姿态赋予严格的原始权值。”

图6.2.12

但是Nvidia是如何实现实时显示伊拉的4K纹理贴图的?纹理数据需要转换成可以实时运行的东西,但是Nvidia团队决定尝试使用完整的4K扫描,并仍旧保持实时运行。Nvidia收到的最终数据使用10个静态扫描的纹理。“这10个目标每个都有4张4K×4K的纹理贴图:漫反射率(diffuse albedo)、正切空间法线(tangent space normal)、置换和高光反射率(specular albedo)(图6.2.12)”。

“我们做的第一件事情就是尝试压缩那些纹理贴图,但是更有趣的技术也是让我们获得最大改进之处在于,考虑到ICT的人在稳定和排列这些纹理上已经做了了不起的工作,因此当你观看的时候,对比中性面部姿态和斜视姿态的漫反射率贴图,每个毛孔都在完全相同的位置,你看到的只是眼睛四周的鱼尾纹变化,那里的漫反射率贴图捕获了环境光遮蔽的差异(图6.2.13)。”

图6.2.13(www.xing528.com)

这让Nvidia团队意识到很多部分,并没有在中性表情和特定FACS表情之间改变,例如额头。“既然没有改变,那么我们把脸部分为8×8块512×512分辨率的分片,然后由中性头部姿态开始工作。当我们需要特定表情时,我们就会说‘是否有什么部分跟当前表情是看不出区别的?’所以相比开辟4K×4K的纹理缓冲区,我们有一个平展的512×512分片缓冲区,然后为原始表情的贴图区域重新建立索引(array index)”,团队通过减少冗余数据集压缩了数据量,同时不损害扫描数据的整体真实感。

而数字伊拉的第二版不仅是在新显卡上运行,而且还有其他改进,这些改进与Activision所做的工作类似。

说得明白些,Beeson指出Siggraph版不得不进行加速,以便在移动显卡上运行。“我们必须对其优化,否则没法运行。我觉得在我们回头去调整它之后,它看上去更棒了(图6.2.14)。”

图6.2.14

Nvidia的次表面散射方案有些不同。“我们使用纹理空间模糊(texture space blur)”,“好处是如果眼睛或耳朵周围有褶皱,你就不会丢失细节。举例来说,阳光照射耳朵后面的皮肤,你得指定这部分皮肤是否属于屏幕内,如果你做屏幕空间次表面散射,它就不应该参与运算,如果使用纹理空间模糊,那它也用不着处理。”当然,如果你是用严格的UV模糊,那么你可能得处理摄影机拍不到的区域。为了解决这个问题,团队优化其纹理方案,加入可见性贴图,禁用不可见区域的模糊。

为了计算皮肤透过的光线,Nvidia依靠“环境阴影(environmental shadowing)”技术(图6.2.15)。

典型案例是你有一个小的点光或方向光,要从一个小光源向外发出光线的锥体中进行照明。环境阴影技术采用了这一理念,把大型的室外环境向内投射到小的兴趣区物体上(头部)。

我们询问Beeson,Nvidia对于ICT捕捉并在混合渲染器中使用分离的R、G、B法线是否有兴趣,以及能否实时渲染,Beeson回答:“这是个好问题,正如你所言,他们为红绿蓝通道分别提供贴图,但我们没有使用,因为他们只提供了次表面散射,并假定没有阴影。而我们是基于完全包含阴影的散射光照来计算次表面散射,因此如果像ICT那么做的话,你对次表面散射也要进行处理(图6.2.15)。”

图6.2.15

早期的游戏引擎在R、G、B通道上使用不同的模糊,基于大量的测试,一般都在R通道上使用更多的模糊。如今系统改进了,但这一特点却仍然相同,并在UV空间阴影贴图下完成。“我们模糊了所有散射光照,这正是我们获得次表面散射效果的方式”。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈