人体皮肤真实感实时渲染研究

2013-04-29 00:44杨蒙召王宽全
智能计算机与应用 2013年6期

杨蒙召 王宽全

摘要:人体皮肤是一种高度散射的半透明材质,与光线之间的交互过程很难建模和模拟,因此皮肤的真实感实时渲染比较困难。从基于模糊化处理的渲染、基于纹理空间的渲染和基于屏幕空间的渲染等三方面,对皮肤真实感实时渲染进行综述,详细分析了每种方法实现的思路和原理,方法之间的改进和差异,对各种方法的优缺点和适用范围作了总结和比较等,最后给出了将来研究的方向。

关键词:人体皮肤; 模糊化处理; 纹理空间; 屏幕空间

中图分类号:TP39141 文献标识码:A文章编号:2095-2163(2013)06-0033-03

0引言

目前,随着三维游戏、影视动画、虚拟现实等产业的迅猛发展,真实感渲染技术也在不断进步和普及应用中。在影视娱乐行业,角色人物往往很难完成某些特效动作,比如人物从高楼坠下、人物在海面上行走或者某些超难度动作等,但是借助渲染技术可以设计和主人公外观逼真的虚拟人,帮助完成这些场景中的特效动作,如此这般已经制造出品了多部优秀的电影,比如《黑客帝国》、《指环王》、《阿凡达》和《冰河世纪》等好莱坞经典电影。在当今的三维虚拟人物设计中,都在追求电影级别的高真实感,这就带来了庞大的图形图像数据,占用的内存也很多,每一帧的计算量相应都大。这就使得人物和场景的移动和切换均会变得较慢,从而给用户带来延迟感和停顿感。如此就要求虚拟人外观在具有真实感和形象感的同时,渲染的帧速也必须日愈改进,以满足交互性和实时性,这一需求已成为当前虚拟人设计的重点和难点。

人体皮肤渲染方法可以分为离线渲染(Offline Rendering)和实时渲染(Real-time Rendering),离线渲染强调渲染的真实感,而实时渲染则强调渲染的实时性,离线渲染常常为实时渲染提供一些研究思路和理论基础。从皮肤渲染的研究内容来看,包括皮肤材质的生理分析、皮肤属性的测量、测量设备的开发、渲染算法的研究和实现等等,由于本文所关注是渲染算法的研究,因此仅从渲染方法的研究进展方面进行综述。

本文结构如下: 第1部分介绍基于模糊化处理的实时渲染;第2部分阐述基于纹理空间的实时渲染;第3部分论述基于屏幕空间的实时渲染;第4部分对本文进行了总结和展望。

1基于模糊化处理的实时渲染

2003年,Borshukov和Lewis[1]首次提出使用自定义的内核高斯函数对二维的漫反射光照纹理,进行模糊化处理,在纹理空间中模拟次表面散射,在绘制皮肤时,通过微小的颜色漂移来表现人体皮肤的散射效果。通过观察,可发现皮肤自然的次表面散射效果,会导致粗糙的皮肤变得模糊化,这类似于二维图像的模糊化,因此可以对皮肤的高频纹理信息进行多次高斯模糊化处理,来模拟皮肤的次表面散射现象。高斯函数的参数采用红、绿、蓝三种颜色光在半透明皮肤材质中的传播系数,该项技术成功应用在电影《黑客帝国》及其续集中,采用真实感的虚拟人,充当电影中的人物角色,方便地实现了影视人物特效,同时满足了观众的视觉要求。但其合成的高斯权重参数并未参考任何物理模型,而是依凭艺术家的感觉进行手工调节。

Borshukov和Lewis在2005年开设的SIGGRAPH课程中[2],又进一步使用两个简单分布曲线:一个比较平坦起伏的曲线,另一个形如尖峰的曲线,分别刻画表皮层较窄的扩散和真皮层较宽的扩散,如此形象地模拟光线在皮肤内部的散射效果,但是该技术未能有效捕捉皮肤微妙的多层次散射效果。

在Borshukov等人方法的基础上,Gosselin[3]于2004年使用Poisson圆盘分布函数,模糊化辐射照度图,借助于两个缓存,对扩散光照图执行多次模糊,最后基于GPU图形硬件,实时取得了一个柔和的、真实感的外观。另外,Gosselin还执行三个GPU加速技术,即背面剔除、视区裁剪和距离裁剪,增强了渲染的实时性。

Green[4]则提出使用深度图模拟光线衰减和吸收,采用高斯模糊模拟纹理空间的漫反射。该研究指出对光线吸收的模拟是半透明材质最重要的因素之一,光线在皮肤中传播得越远,吸收和散射得就越厉害,为了模拟这种效果,采用深度图[5]估算光在物体中传播的距离,具体如图1所示,从而估算得到入射光线到出射光线的指数衰减情况。

利用深度图,一旦计算得到光在物体中的传播距离,就可以用一个指数项刻画光线的衰减,再结合传统的光照明模型,就可以模拟光线在薄层部分的背光效果,增强皮肤的半透明性。

2基于纹理空间的实时渲染

NVIDIA的Eugene dEon等人[6,7]提出了纹理空间扩散方法(Texture Space Diffusion, TSD),利用高斯函数卷积线性之和,在纹理空间中模拟次表面散射,比较准确地近似Donner等人的多极子对偶方法[8],得到了接近物理真实的皮肤绘制效果。对比NVIDIA和Donner的离线绘制结果,皮肤渲染的效果虽然几乎不分上下,但NVIDIA在Gefore 8800却可以达到实时的绘制速度。TSD渲染流程如图2所示。

通过观察和物理实验,d Eon 等人指出光线在皮肤中次表面扩散剖面(Diffusion Profile),类似于高斯函数曲线,因此可以利用高斯函数卷积和模拟次表面散射。通常四个高斯函数就可以很好地近似单一薄层的漫反射剖面,然而对于Donner等人刻画的三层皮肤模型,需要使用六个高斯函数线性求和,才能很好地近似皮肤的漫反射剖面。

为了防止网格的纹理参数化,出现纹理扭曲现象,需要在纹理高斯卷积过程中,添加UV空间的拉伸矫正处理。对于半透明性所表现出来的背光效果,d Eon等人则采用改进的半透明深度图(Translucent Shadow Map, TSM)方法[9]进行计算。

对于皮肤表面的高光反射,d Eon等人使用一个基于物理的KS反射模型(Kelemen Szirmay-Kalos, KS)[10],并允许调整面部不同的粗糙度,真实模拟了表面反射。

为了进一步提高纹理空间渲染的实时性,Jimenez和Gutierrez等人[11]从三个方面提出优化机制对渲染过程进行改进。首先,剔除辐射照度图(Culled Irradiance Map),每次渲染时,无需对所有像素点进行处理,由于自身几何遮挡,有些像素点根本不在视角范围之内,所以可以利用背面剔除技术(Backface Culling Techniques)在辐射照度图剔除遮挡像素点。其次,采用基于深度的辐射照度图(Depth-based Irradiance Map),根据渲染头像的视角距离深度,调整辐射照度图的尺寸。最后,裁剪辐射照度图(Clipped Irradiance Map),在传统的渲染管线中,视锥外面的头像某一部分会被裁剪,因此不必对这部分进行计算,在渲染之前,可以采用变化矩阵,计算出被裁减的部分,在渲染时,不需对此部分进行计算。在显卡 GeForce 8800 GTX的平台上,Jimenez等人取得每帧的加速度为1.10到2.77之间。

Hable等人[12]提出了一种快速次表面散射(Fast Subsurface Scattering)方法。该方法使用背面消隐技术,也对纹理空间方法进行优化,而且此法在13个抖动采样点(Jittered Sampling)上,采用12个抖动步长(Jittered Tap)的模糊核,计算一个二维的卷积,很好地解释了直接反射、中级散射和红色光相对远的散射,得到了真实感皮肤的模拟。

3基于屏幕空间的实时渲染

Jimenez等人[13]提出了屏幕空间渲染方法(Screen Space Rendering, SSR),对于次表面散射的模拟,不同于TSD方法对初始辐射照度图(Irradiance Map)进行高斯模糊然后求和,SSR 方法则利用Gillham 等人的方法[14] 将深度图(Depth Map)线性化处理,结合二维抖动采样[12]和6个一维的高斯核,直接对最终的渲染图像进行卷积模糊。

对于表面高光反射,该方法同样采用KS模型[10]实现表面反射的模拟。最后结合次表面散射和表面反射模拟,得到近似TS的渲染结果,其渲染流程如图3 所示。

SSR追求和TSD相同级别的真实感,然而却在屏幕空间的后处理阶段执行散射模拟,由此简化了渲染流程。同时在渲染每一帧时,SSR借助于GPU所提供的深度模板缓冲区(Stencil Buffer)和颜色缓存(Color Buffer),利用模板测试决定是否更新相应像素点的颜色值,可以很容易剔除不需要处理的像素,在很大程度上提升了渲染的执行速度,尤其当着色目标向远离视点的方向移动,所占的屏幕区域愈来愈小时,效果则更为突出,因此SSR取得了优于TSD的实时性。

SSR 方法还能解决 TSD 方法中遇到的缩放和细缝问题(Scaling and Seam Issues),由编程实现角度和算法复杂度进行衡量,也优于TSD方法,但是SSR方法渲染的环境应在DX10以上,而且当光线从物体后面照亮时,在透明度的模拟方面,该方法渲染的结果也没有TSD准确。

国内针对皮肤真实感实时渲染的研究还不多见,2009年,王家良[15]介绍了皮肤渲染所取得的部分研究成果,最后实现了毛发的渲染,虽然一定程度上增加了皮肤的真实感,但并不是针对皮肤本身的渲染。2011年,浙江大学的蔡飞龙[16]在其博士论文的第六章,借鉴NVIDIA的纹理空间扩散方法,利用商业渲染器Vray,实现了适合京剧脸谱的真实感绘制,但是在渲染算法本身并未取得任何实质性改进,只是将渲染对象做了稍微改变。同时,由于高精度的表情动画数据难以捕获和制作,还没有办法实现真实感的脸谱动画。

4结束语

随着图形可编程硬件GPU功能的不断提升,近年来,借助于高级着色语言和CG技术,使得针对人体皮肤的真实感实时渲染研究,已经有了很大的突破和可观的成果,能够满足影视娱乐、三维游戏和其他虚拟场景的需要。经典的渲染方法,如模糊化渲染、纹理空间渲染和屏幕空间渲染,能够得到真实感的人体皮肤,这些方法虽然取得真实感的面部,但是渲染的帧速仍然较少,实时性也较低。在某些应用中,比如大型三维游戏和互动虚拟场景中,除了对画面的真实感要求以外,更加强调渲染的实时性,以保证操纵场景人物时系统运行的流畅性,没有延迟感和停顿感。另外,真实感算法的设计不能太过于复杂,要易于和当前GPU可编程渲染管线结合。

参考文献:

[1]BORSHUKOV G, LEWIS J P. Realistic human face rendering for the matrix reloaded[C]//ACM SIGGRAPH Sketches and Applications Program. California: ACM, 2003:13–23.

[2]BORSHUKOV G, LEWIS J. Realistic human face rendering for the matrix reloaded[C]//ACM Siggraph 2005 Courses. Los Angeles: ACM, 2005:13-23.

[3]GOSSELIN D. Real time skin rendering[C]//Game Developer Conference, D3D Tutorial. San Jose: GDC, 2004,9.

[4]GREEN S. Real-time approximations to subsurface scattering[J]. GPU Gems, 2004:263–278.

[5]HERY C. Implementing a skin bssrdf[C]//ACM SIGGRAPH Computer Graphics. San Diego: ACM, 2003:73–88.

[6]dEON E, LUEBKE D. Advanced techniques for realistic real-time skin rendering[M]. Gpu gems 3, 2007:293–347.

[7]dEON E. NVIDIA Demo team secrets-advanced skin rendering[C]//Game Developer Conference, San Francisco: GDC, 2007.

[8]DONNER C, JENSEN H W. Light diffusion in multi-layered translucent materials[J]. ACM Transactions on Graphics, 2005, 24(3):1032–1039.

[9]DACHSBACHER C, STAMMINGER M. Translucent shadow maps[C]//Proceedings of the 14th Eurographics Workshop on Rendering. Leuven: Eurographics Association, 2003:197–201.

[10]KELEMEN C, SZIRMAY-KALOS L. A microfacet based coupled specular-matte BRDF model with importance sampling[C]//Eurographics Short Presentations. Manchester: Eurographics Association, 2001:25–34.

[11]JIMENEZ J, GUTIERREZ D. Faster rendering of human skin[C]//Proceedings of the Congreso Espanol de Informatica Grafica. Zaragoza: Eurographics Association, 2008:21–28.

[12]HABLE J, BORSHUKOY G, HEJL J. Fast skin shading[J]. Shader X7, 2009:161–173.

[13]JIMENEZ J, SUNDSTEDT V, GUTIERREZ D. Screen-space perceptual rendering of human skin[J]. ACM Transactions on Applied Perception, 2009, 6(4):3–13.

[14]GILLHAM D. Real-time depth-of-field implemented with a post processing-only technique[J]. Shader X5: Advanced Rendering Techniques, 2007:163–175.

[15]王家良. 人体皮肤实时渲染的初步研究[D]. 青岛:青岛大学, 2009.

[16]蔡飞龙. 京剧脸谱数字化建模与绘制技术研究[D]. 杭州:浙江大学, 2011.