多发型头发实时绘制算法的研究
【摘要】:当前,计算机创造的虚拟人物在电影、游戏、广告等领域都有着广泛的应用。头发绘制对于绘制真实的人体起着至关重要的作用。然而,如何实现头发的实时绘制以及如何进行头发造型一直是计算机图形学领域的一个非常具有挑战性的问题。近年来,随着可编程图形硬件技术的高速发展,多发型头发的实时绘制成为可能。
在当前可编程图形硬件的支持之下,本文提出了一种可支持多种发型的头发实时绘制算法。由于用表面表示的头发模型具有建模简单、在图形硬件的支持下绘制效率高等优点,本文采用表面模型来表示头发。但是以前的表面模型对发型的支持有限,为了在表面模型的基础之上支持多种发型,提出了“发型函数(Hair Style Function)”——“发型函数”简化了建模,减小了表示复杂发型所需的存储空间,并提高了绘制效率,是本文最重要的创新之处。
此外,为了表现头发的复杂分布,在头发表面上映射一张亮度纹理和一张alpha纹理;为了计算头发各向异质的(anisotropic)光照,使用了Kajiya-Kay的经典毛发光照模型;本算法还高效地模拟了头发的自阴影,并采用阴影体(shadow volume)技术绘制全局阴影。
算法实现时,使用Microsoft Direct3D 9.0 SDK作为3D开发库,并用HLSL(High-Level Shader Language)将大部分绘制算法在图形处理单元(GPU)的顶点着色器(vertex shader)和片段着色器(fragment shader)上实现。实验结果表明,在中端硬件配置上,本文算法可以实现多种发型的高质量实时绘制。