0 引言
虚拟人(Virtual human)是虚拟现实系统中的行为主体。视觉效果逼真的虚拟人角色对增强虚拟环境的生命力与真实感具有不可替代的重要作用。虚拟人建模主要包括三维建模、运动学建模及动力学建模,其中虚拟人三维模型主要由虚拟人的几何表示与纹理映射表达2大部分组成,二者共同决定了所建立的虚拟人角色类型,是本文讨论与研究的重点。虚拟人三维建模技术是计算机图形学研究领域的重要分支,随着计算机图形学和建模技术的飞速发展,衍生出了多种三维虚拟人建模方法,主要包括基于软件的直接建模法、基于数据捕获的模型重构法、基于标准虚拟人模板的参数化建模法,3种建模方法均可实现对虚拟人模型的构建,但其在应用范围和可推广性等方面仍然存在诸多的限制与不足。
对上述3种虚拟人角色建模原理与不足的具体表述如下:
1)基于软件的直接建模方法。借助通用的三维造型软件(3DMAX,Maya等),采用自底向上的建模方法,通过对底层造型元素的编辑来创建人体几何模型,之后绘制并添加人体各部分相应的uV贴图,最终完成所需角色的制作。直接建模法需要大量繁重的底层布线工作,人体造型的真实感需要依赖3D建模师对软件的熟练掌握程度和美术功底,建模周期长、个性化人体模型定制价格昂贵。
2)基于扫描数据捕获的虚拟人建模。该方法主要包括人体图片识别建模与三维人体扫描建模。前者从人体照片中获取建模对象的外形轮廓,通过关键点对应,生成对应的人体模型。后者采用人体扫描仪器对真实的人体进行扫描,捕获人体各部分三维位置信息数据,将数据处理后重构虚拟人模型。图片识别建模法对照片的拍摄背景有着严格要求,并且其建立的模型有着相当的噪点;而三维人体扫描建模则存在扫描设备过于昂贵、专业性强、扫描数据处理难度大及冗余节点多等局限。
3)基于标准虚拟人模板的参数化建模。该方法是指程序员先在系统中建立一个基础模型,然后将所建立基础模型中的尺寸变量化,以此模型为基础进行参数变换与控制而获得新的人体模型。目前所见的模板建模法以虚拟人台的尺寸参数化建模为主,可以实现不同尺寸的人体模型构建,却无法满足不同角色虚拟人的脸部、服饰、映射纹理等多样化建模的需求。
可以看出,虽然虚拟人的建模手段和水平取得了长足的进步,但要完成一个所需求的虚拟人模型,仍需进行大量的建模工作或专业的设备与技能,目前尚未找到一种高效、简洁的虚拟人快建模方法,由于虚拟人建模(尤其是脸部模型)需求的多样性及建模工作的复杂性,虚拟人的角色建模至今仍是计算机图形学领域最具挑战性的究课题。
在相关工作的基础上,针对现有虚拟人建模技术的不足之处,本文拟提出一种基于自顶向下(Top-down)建模机制的三维虚拟人快速建模方法,即从顶层设计出发,将人体模块化并将各模块的尺寸与纹理进行变量参数化,构建多样化的各模块数据库,通过模块组合与变参建模,实现虚拟人的个性化快速建模。本文重点开展的自顶向下的人体模型层次结构将以自底向上虚拟人模型全模块尺寸与纹理集成过程为基础,来实现具有广泛覆盖范围的模块化与参数化几何模型数据库与纹理库的构筑,二者之间相互支持。该建模思路高效、整洁、适应性强,可突破虚拟人建模领域的技术瓶颈。
1 多角色虚拟人Top-down快速建模方法
针对当前的虚拟人建模软件或系统自底向上(Bottom-up)建模过程效率低下与操作专业性过强的问题,提出了基于模块化与参数化的虚拟人Top-down快速建模方法。顶层实施人体建模层次结构设计、模块分解及其对应的参变量设计,同时强调模块间的接口定义与模型数据库的自我更新功能,系统性地构建了一套具有高效、整洁特性的虚拟人Top-down快速建模方法。
1.1 人体模型自顶向下层次结构设计
在所提出的自顶向下的虚拟人建模方法中,实施虚拟人各模块组合和参数化建模,该过程与机械设备的装配过程较为类似。在文献所提出面向装配的自顶向下装配建模机制的相似点基础上,考虑虚拟人模块组合建模中的模块划分、尺寸及纹理参数调整等特有的个性化建模需求,为支持自顶向下的多角色虚拟人快速建模方法,提出将人体建模过程划分为“总体层-模块层-参数控制层”等逐级向下的层次结构,如图1所示。其中,总体层为设计顶层,主要进行模块接口及映射约束关系控制,其由模块层快速组合而成,模块层则由参数控制层来实现模块的修改与变更。与常规的“总体层-参数控制层”两层结构相比,增加模块层,支持实现同一类型模块(如头部等)内部的不同模型替换,可极大地增强对多角色建模的适应程度。
图1 支持自顶向下的人体模型层次结构
在虚拟人的建模过程中,先在总体层抽象出虚拟人的建模需求,然后进行模块层的快速组合,实现总体模型呈现,最后通过变参处理,完成需求定制的虚拟人模型建立。采用白顶向下的建模方式,随着建模层次逐级向下进行,对虚拟人模型的需求将得到进一步的细化与确认,并根据需要随时予以调整,在保证建模品质的同时,缩短虚拟人的定制周期。
1.2 基于模块化的虚拟人表达实现
为满足顶层没计对模块化组合建模的需要,进行虚拟人的模块化表达实现研究。依据人体部位与服饰的需要进行人体模块划分,并梳理各模块间的接口与映射约束关系。虚拟人的模块划分及模块关系如图2所示。
图2 虚拟人模块划分及模块关系
角色虚拟人是躯体与服饰两部分综合表述的结果。依据人体的自身器官组成,将躯体部分划分为上肢、躯干、下肢与头部4大模块,依据人体穿衣需要,将服饰部分划分为上衣、裤子、鞋子与帽子4大模块。存明确虚拟人模块划分方式与组成类型的前提下,建立具有广泛角色涵盖面的各模块模型数据库。
在实现模块划分的基础上,对模块问的接口与映射约束父系进行梳理,以便于总体层实施全局性的约束关联关系设计。躯十模块分别与上肢模块、下肢模块、头部模块相连接,定义躯干模块与三者之间的接口关系;服饰部分的上衣模块映射到上肢与躯干模块,裤子与鞋子映射到下肢模块,帽子模块映射到头部模块,建立映射对象依赖于被映射对象的尺寸约束关联关系,即躯体部分的模块尺寸变化驱动服饰部分映射模块的尺寸变化。