(计算机应用技术专业论文)真实感三维头发的模拟.pdf_第1页
(计算机应用技术专业论文)真实感三维头发的模拟.pdf_第2页
(计算机应用技术专业论文)真实感三维头发的模拟.pdf_第3页
(计算机应用技术专业论文)真实感三维头发的模拟.pdf_第4页
(计算机应用技术专业论文)真实感三维头发的模拟.pdf_第5页
已阅读5页,还剩49页未读 继续免费阅读

(计算机应用技术专业论文)真实感三维头发的模拟.pdf.pdf 免费下载

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

摘要 摘要 在计算机“虚拟人”的研究过程中,对于塑造具有真实感动作表情的“虚拟 人”来说,三维头发的仿真研究是必不可少的。作为“虚拟人”研究的一个部分, 头发的仿真和动态实现十分复杂,几乎涉及了计算机图形学技术的各个方面,具 有重要的理论价值。真实感三维头发的造型与仿真研究可以广泛应用于计算机动 画、电子游戏娱乐、电影电视制作等领域。 本文在计算机图形学、力学等领域的理论基础上,研究了真实感三维头发的 造型和仿真,主要完成了以下四方面的工作:首先,在头部模型的选取上,对已 建立好的头部网格模型进行了简化,达到了减少网格顶点和三角形面的目的。其 次,分析了头发模型的特点,对头发初始生长方向、受力和生长区域进行了研究, 并且在此基础上对单根头发和头发块的造型进行了模拟,通过选择适当的参数, 实现了对多种头发块造型的模拟仿真。第三,对头发和头部、身体的碰撞检测进 行了分析,实现了单根头发和头部网格模型的碰撞检测。最后,利用n u r b s 曲面 造型的方法,对某些类型的头发整体造型进行了仿真,仿真结果表明了该方法的 效果比较好。 关键词:头发朗悬臂梁碰撞检测n u r b s a b s t r a c t a b s t r a c t 3 ht h er e s e a r c hp r o c e s so fc o m p u t e r v i r t u a lp e r s o n ”,t h eh a i rs i m u l a t i o no ft h r e e d i m e n s i o n si sa b s o l u t e l yn e c e s s a r yt os h a p et h ev i r t u a lp e r s o nw i t bt r u ea c t i o na n d e x p r e s s i o n a sap a r to fv i r t u a lp e r s o nr e s e a r c h , t h es i m u l a t i o na n dd y n a m i cr e a l i z a t i o n o fh a i ra r ev e r yc o m p l e x ,a n di n v o l v ee v e r ys i d eo fc o m p u t e rg r a p h i ct e c h n i q u e ,a n d h a v ei m p o r t a n tt h e o r yv a l u e t h eh a i r s t y l ea n di m i t a t i o nr e s e a r c ho fr e a l i t yt h r e e d i m e n s i o n sc a nb ew i d e l yu s e dt ot h ec o m p u t e rc a r t o o n , e l e c t r o n i cg a m e ,m o v i ea n d v i d e oe x e c u t i o n , a n ds oo n o nt h eb a s eo ft h e o r yr e s e a r c ho fc o m p u t e rg r a p h i c sa n dm e c h a n i c s ,t h eh a i r s t y l e a n di m i t a t i o nr e s e a r c ho fr e a l i t yt h r e ed i m e n s i o n si sr e s e a r c h e d ,a n dt h e p a p e rh a sm a d e f o u ra s p e c t so f w o r k :f i r s t l y , o nt h es i d eo fc h o o s i n gh e a dm o d e l ,t h ef o u n d e dh e a dg i i d m o d e li ss i m p l i f i e dt or e d u c et h e 鲥dv e r t e xa n dt r i a n g l ef a c e s e c o n d l y , t h ep a p e r a n a l y s e st h es p e c i a l t i e so fh a i rm o d e l ,o r i e n t a t i o no ft h eh a i rg r o w t hp o i l l t ,e n d u r i n g f o r c e sa n dt h eg r o w t hr e g l a n ds i m u l a t e st h es i n g l eh a i ra n dh a i rc l u m po nt h eb a s e o fa b o v e ,t h e ns o m ep a r a m e t e r sa r ec h o s e nt or e a l i z et h es i m u l a t i o no fm u l t is t y l eo f h a i rc l u m p t h i r d l y , t h ep a p e re x p a t i a t e st h ec o l l i s i o nd e t e c t i o nb e t w e e nh a i ra n dh e a d , b o d y t h ec o l l i s i o nd e t e c t i o nb e t w e e nas i n g l eh a i ra n dh e a dg r i dm o d e li sr e a l i z e d f i n a l l y , u s i n gt h em e t h o do fn u r b s b e n tf a c e , t h ep a p e rm a k e st h ei m i t a t i o no fs o m e k i n d so fw h o l eh a i r s t y l e , a n dt h er e s u l tp r o v e st h a tt h ee f f e c to ft h i sm e t h o di sf i n e k e y w o r d :h a i r p mc a n t i l e v e rg i r d e rc o l l e c t i o nd e t e c t i o nn u r b s 创新性声明 本人声明所呈交的论文是我个人在导师指导下进行的研究工作及取得的研究 成果。尽我所知,除了文中特别加以标注和致谢中所罗列的内容以外,论文中不 包含其他人已经发表或撰写过的研究成果;也不包含为获得西安电子科技大学或 其它教育机构的学位或证书而使用过的材料。与我一同工作的同志对本研究所做 的任何贡献均已在论文中做了明确的说明并表示了谢意。 申请学位论文与资料若有不实之处,本人承担一切相关责任。 本人签名:羔辽雌一日期卫星。2 掣 关于论文使用授权的说明 本人完全了解西安电子科技大学有关保留和使用学位论文的规定,即:研究 生在校攻读学位期问论文工作的知识产权单位属西安电子科技大学。本人保证毕 业离校后,发表论文或使用论文工作成果时署名单位仍然为西安电子科技大学。 学校有权保留送交论文的复印件,允许查阅和借阅论文;学校可以公布论文的全 部或部分内容,可以允许采用影印、缩印或其它复制手段保存论文。( 保密的论文 在解密后遵守此规定) 本学位论文属于保密在一年解密后适用本授权书。 本人签名 导师签名 日期型! ,21 敬 日期迦曼:兰! 兰基 第一章绪论 第一章绪论 近年来,在计算机图形学的各个领域已经取得了很多突破性进展,“虚拟人” 的绘制更是当今计算机图形学中的一项重要任务,特别吸引人的是头发的仿真技 术,但是头发的复杂性使得真实感地显示它变得极具挑战性。因此具有真实感的 三维头发的仿真是计算机图形学工作者长期以来所追求的目标,它的应用范围十 分广泛,可以应用于虚拟现实、计算机动画、电子游戏娱乐等方面。本文的主要 目标是研究具有真实感的三维头发的造型与仿真的实现方法,并研究设计了一种 基于b l u r b s 的头发造型仿真方法。 1 1 课题背景及应用前景 在计算机图形学中,“虚拟人”一直都是一个非常热门的研究课题。人体建模, 人体动作,肌肉的伸展与隆起,面部表情的变化,眼球的转动,头发的仿真与动 作的配合等可视化技术已经形成了计算机图形学领域中新的分支。近年来,我们 在很多电影中都看到了一些由计算机合成的“虚拟人”的角色,他们在很多方面 都差不多达到了以假乱真的地步。但是他们的头发却一直都是观众识破天机的缺 口,头发对于刻画一个人来说是非常重要的,它往往能反映出一个人的气质和性 格特点。那么究竟是什么原因使得头发的仿真总是差强人意呢? 经过仔细分析, 主要有以下几个方面的原因: 首先在数量方面。据统计,一般情况下一个正常人拥有1 0 0 ,0 0 0 到1 5 0 ,0 0 0 根头发。那么,要精确的绘制每根头发时,需要考虑头发本身、光线及头发问的 相互作用,如此下来,绘制一个“虚拟人”发型的计算量就很大。除此以外,我 们还要考虑头发的动态性,为了能够生动的表现每根头发的特点,需要处理每根 头发的每一部分和其他头发的每一部分的相互作用的关系,这样一来,不仅在构 造模型方面有一定的困难,而且计算量也是指数级的增长,当今的处理器也无法 处理这么庞大的数据。 其次是外观方面。从物理结构上看,头发是一种很有趣的物质,长而细,柔 软而坚韧。宏观上它是一个弯曲的圆柱体,而微观上这个圆柱体的半径也是任意 变换的。同时,一个人的所有头发颜色并不是一致的,它们有的是黑色、有的是 黄色、有的是红色、棕色、灰色等等不一,而且着色的深浅不一,即便是同一根 头发的不同部分的颜色也不尽相同。另外,不同的发型、不同的位置的头发形状 都不一样,有的就是一根直线,有的却像波浪一样。这些因素导致同一根头发在 2 真实感三维头发的模拟 不同位置对光的作用都有很大的不同,致使人们很难构造一个精确的物理模型去 模拟它们,只能以简化的模型尽量去逼近它们。 最后是头发的直径太小。当我们用密集取样模拟积分过程的方法来描述一个物 体时,如果物体的数据单元比取样单元还要小,就会出现失真的现象。在图形学 中,当一个需要被显示的物体单元比显示器的象素点还要小时,最后形成的结果 图像被称为失真图像。通常一根头发的直径会在0 0 5 m m 到0 0 9 m m 之间,远小于 现今的显示器的最高分辨率情况小的象素大小。因此,精确地显示每一根头发是 不可能,也是不可取的。 头发的模拟可以看作是对纷繁复杂、难以用几何模型描述其精确形状的自然现 象的模拟范畴。一个成功的模拟头发算法必然可以通过移植,延伸到模拟诸如森 林、草坪、水流等自然景观的算法中。 总之,具有真实感的三维头发的造型与仿真的研究不仅具有理论价值,而且 极具使用价值。 具有真实感的三维头发造型与仿真技术有着极其广泛的应用范围。它可以广 泛应用于计算机动画、电子游戏娱乐、电影电视制作等领域。 ( 1 ) 计算机动画 人们在观看动画片的时候,通常会觉得其中的人物具有卡通性、呆板性、不 生动,这是因为动画片中的人物是由计算机模拟出来的虚拟人,没有现实中真实 人物的特征,不能如实的反映的现实世界中人的行为、表情等,从而不能准确反 映人物的心理情绪,这些因素严重地影响了动画片的效果。应用头发造型与仿真 技术可以将虚拟人更加现实化,使虚拟人更接近真人。 ( 2 ) 电子游戏娱乐 近年来,网络游戏交得越来越流行。说到网络游戏就要说一说其中的人物及 动物。大家都知道,头发和皮毛是人物和动物仿真过程中必不可少的一部分,为 了达到比较好的显示效果,游戏的实现者就必须在这两个方面下功夫。 ( 3 ) 电影电视制作 在三维计算机动画中,把人体作为其中的角色一直是研究者感兴趣的目标之 一。在这一方面引入注目的早期工作,从动画电影t o n y d ep e l t r i e 和r e n d e z v o u s am o n t r e a l 中可见一斑。而近期在这一方面的工作更是令人惊叹不已,如在电 影终结者,侏儒纪公园和t i t a n i c 等多部国际电影大制作中,我们经 常可以看到令人震撼的特技画面效果,在拍摄一些高危险的画面或者是超现实的 画面的时候,虚拟环境和虚拟人的出现可以有效地解决这一问题。计算机动画技 术的应用,使影片的效果更加真实、精彩。在各种人物的仿真里,头发的造型是 至关重要的一面。电影里人物的行动带动头发的运动,如果头发的运动效果不能 配合人物的行动,那么整个电影的视觉效果马上就降下来了。所以头发的仿真对 第一章绪论 于电影电视制作来说很重要。 1 2 国内外研究现状 3 关于头发造型与仿真的研究国外早在7 0 年代就已经开始做了。当时的研究主 要应用于电子游戏,对图像质量的要求不是很高,因此算法的速度决定一切。随 着计算机硬件的运算能力和显示质量的不断提高以及应用范围的不断拓宽,模拟 的效果也慢慢地成为了研究算法的核心。从八十年代后期开始,已经有不少研究 者对头发模型进行了更加深入广泛的研究,提出了许多有效的头发仿真方法。下 面我将以几个在这方面研究中比较有代表性的方法来介绍一下头发造型与仿真的 研究状: 1 9 8 7 年,y a r n a n a 和s u e r a g a 1 l 等人将异向反射模型适用于头发的生成。类似于 头表面纹理,他们把头发看作头部表面的线,并且做了三种假定: 1 局部区域内,每根头发之间是相互平行的。 2 除了需要严格定义的高质量图象外,对每根头发不做精确细致的渲染。 3 头发具有某种反射能力。 他们通过异向反射表,运用光线跟踪技术来生成头发的图像。但是,这种方 法在当时的条件下,很费时间,而且所获得的图像具有某些金属性光泽,真实度 较低。 1 9 8 8 年,m i l l e r 2 1 采用复合头发“柬”上的异向明暗度来得到更为真实的毛皮 图像。他采用称作“伪反射绘图”的方法,有效地计算出头发束的亮度。这种方 法生成的图像,头发很厚,没有弯曲,所以适合生成短的、直的、浓密的头发。 同年,w e i l n 提出了一种空间上头发图像动画的电视技术,但是图像质量并不 令人满意。 1 9 8 9 年,p e r l i n f 4 】介绍了一种运用b o o l e a n 模型较形象地得到头发形状及纹理 效果的方法,但是据称在传统系列机器上需要花费很多时间进行计算和绘制。 a n j y 0 1 5 等人在1 9 9 2 年提出了一个基于几何模型的头发模型,并提供了一套交 互方法使用户可以在三维头皮中选择头发生长的适当区域、生长方向以及分布密 度,然后通过悬臂梁模型的控制使头发能自然下垂,最后通过一些简单的裁剪模 拟形成最后的模型。除此以外,他们还提出了一个头发运动的力学模型,通过适 当的坐标选择和外力场的设置,得到了较为成功的头发运动模拟效果。 为了能更丰富自然地模拟头发以及降低用几何拼接方法所需的庞大数据量, s o u r i n f 等人使用一些实函数来构造发型,通过将头发的长度、厚度、弯曲程度作 为函数的参数并加上干扰函数,得到了一些有趣的、充满想象力的效果图。 x u n 等人提出了一种兼容了几何模型以及密度模型的头发模型。通过把发型分 4 真实感三维头发的模拟 解成若干个头发束,他们把发型设计分解成头发束的设计。首先,用户可以通过 交互方式设计出头发束的轮廓,然后再通过定义头发在轮廓中的分布密度,就可 以得到一个头发束了。最后选取适当的头发束“粘贴”到头皮的三维网格中,即 可以得到所需的发型了。 s u n i l | g 加】等人提出了一种崭新的思想:用水流来模拟头发。他们把发型想象 成一定密度的水流在某一个瞬间的快照。在系统中,用户可以很方便地定义水源 的位置、密度、流动速度以及一些控制水流流向的阻挡物,如挡板、端点、旋涡 等。通过把一个发型看作是一个流动的整体,他们还利用标准流的内部特性提出 了一个解决头发的摩擦碰撞对运动影响的经验公式。然后通过把流体模型和连续 刚体模型相结合而得到了完整的头发运动模型取得了不错的效果。 江苏理工大学c g & c a d 研究型1 1 】从事这方面的研究工作已有多年,曾提出一种 面向对象的头发模型。在该模型中,单根头发采用三维的线模型来仿真头发模型, 而且提出了利用线模型生成头发真实感图像的方法。 到目前为止已经有很多关于头发造型与仿真的方法,这些方法从空间上可以 分为两类:二维头发模拟和三维头发模拟。从动态性上可以分为静态头发模拟和 动态头发模拟。 i 3 论文的主要内容结构 具有真实感的三维头发造型与仿真技术的发展离不开计算机图形学、力学等 理论基础的支持。在图形学领域,计算机图形学的建模思想、坐标变化、三维观 察、光照及消隐技术等技术直接影响并作用于三维头发仿真技术的整个分析和解 决过程中。力学中受力分析、各种模型变形定理等也都直接影响着三维头发造型 的分析。 前人在这些领域所做的理论研究和实践以及得出的理论和经验,都为本文研 究提供了很大的帮助。概括起来,论文的主要内容如下: 1 阐述头发造型与仿真的课题背景及应用前景,介绍了国内外的研究现状。 2 阐述了用椭球体表示的头部模型的优点、缺点,提出使用原始头部网格模 型的思想,并应用p m 化简方法来简化原始头部网格模型。 3 分析了头发模型的特点、初始生长方向、受力、弯曲模型、弯曲控制、头 发块模型和一种多变头发块造型的方法,并实现了头发的单根和块状造型 与仿真。 4 介绍了碰撞检测技术,并分析实现了单根头发与头部网格模型的碰撞检 测。 5 以v c + + 和o p e n g l 为编程工具,实现了基于n u r b s 曲线、曲面的整体头发 第一章绪论 造型方法。 6 本文最后对所做工作进行了总结,指出存在的不足,给出了对本葆题进一 步研究前景的一些看法和设想。 第二章头部模型 第二章头部模型 7 在前人的研究过程中,通常都是先建立头发模型,然后把已经建立好的头发 模型与头部模型匹配。这样做带来的问题比较多,如必须要做头发与头部的碰撞 检测、头发的形状变化受到限制等。因此,本文从前人的逆过程来考虑,先建立 头部模型,然后在头部模型的基础上再建立头发模型,这样做可以避免确定头发 的生长点与头部的碰撞检测问题。 2 1 头部的简化模型 为了处理的简化,并考虑到模型与头部形状的相似性,首先可以考虑采用椭 球体近似替代头部模型。对于椭球面上的任意一点,不仅可以用笛卡儿坐标表示 为 ,y ,z ) ,而且也可以用极坐标表示为 ,妒) ,这里妒表示经度角,矿表示纬度角。 也就是说,通过经纬度椭球上的点与数对( 声,妒) 相对应。如果分别设定经度角和 纬度角的大小,就可以方便地确定头发的生长点。 y 2 图2 1 笛卡儿坐标系下的椭球体图2 2 经纬度表示的坐标系 如图2 1 所示,假设中心在原点的椭球面的笛卡儿坐标表达式为: + + 1( 2 一1 ) , 如图2 2 所示,用经纬度角妒,妒表示的椭球面参数方程式为: 一曼2 妒墨至2 ( 2 2 ) ( 2 2 ) 可妒j r 妒妒 宝暑 = 叫0 乞 i - 一 协沙f 8 真实感三维头发的模拟 2 2 头部原始模型的化简思想 对于上一节中提到的椭球体头部模型来说,它距离真正的人头部模型来说还 相差的很多。那么为了能够使头发模型与具体的人头部模型相匹配,本文使用了 从p o s e n 里导出来的具体人头部模型。尽管这种模型的网格比较复杂,但是可以 通过网格模型简化算法,减少这个复杂的人头部模型的顶点数和面数,然后再把 头部模型划分成几个区域,同一个区域内的头发具有相同的属性( 如长度、颜色 等) ,这样做可以减少计算量。图2 3 是头部模型网格化的示意图。从左边的头部 模型树来看,先把真个头部分成四个区域:头顶,后脑勺和两个头侧部,然后可 以把这四个区域进行更详细的划分,如此继续下去,就可以把头部模型的头发生 长区域分解成我们需要的模型。 图2 3 表示头发的树模型 2 3 化简模型方法 随着科学技术的进步,在计算机图形学、虚拟现实、计算机辅助设计技术、 地理信息系统、医学图像系统等领域中所构造和使用的模型越来越精细、越来越 复杂,这些复杂的模型动辄就产生数以百万计的面片,而斯坦福大学的数字米开 朗基罗计划( d i g i t a lm i c h e l a n g e l op r o j e c t ) 中,著名的大卫( d a v i d ) 雕像的三角面片更 是高达2 0 亿”一。这些复杂的模型对计算机的存储容量、处理速度、绘制速度、传 输效率等都提出了很高的要求。然而在很多情况下,高分辨率的模型并不总是必 要的,模型的准确度以及需要处理的时间也要有一个折衷,因此必须用一些相对 简单的模型来代替原始模型,这就是对模型进行简化。 模型化简是指在保持原模型几何形状不变的前提下,采用适当的算法减少该 模型的面片数、边数和顶点数。化简对于几何模型的存储、传输、处理,特别是 第二章头部模型 9 对实时绘制有着重要的意义。早在2 0 世纪7 0 年代,就有学者讨论网格模型的化 简问题i n l ,然而直劭9 0 年代以后,化简网格才得到深入的研究,并有了很多成功 的应用。 网格模型化简算法分类有多种,如果根据拓扑结构是否保持可以分为拓扑结 构保持形1 4 ”】和非拓扑结构保持形1 毛切;根据模型简化的过程可以分为逐步求精 1 8 1 9 1 和几何化简獬;根据误差可控性可分为误差受限1 5 1 和误差不受限捌;根据 视点相关性可以分为视点无关的化简【1 侧和视点相关的化简【2 2 乃】。这里我们考虑了 以后头部模型的恢复问题,所以采用动态化简方法中的层次表示法( 即p m p r o g r e s s i v em e s h e s 算法) ,该方法可以恢复头部模型的原始信息。 2 3 1 化简原则和误差测度 由于网格模型大部分由三角面片表示,而且即使原始模型不是三角面片,也可 以对其进行三角化,因此网格模型简化的本质是:在尽可能保持原始模型特征的 情况下,最大限度地减少原始模型的三角形和顶点的数目。它通常包括两个原则: 顶点最少原则,即在给定误差上界的情况下,使得简化模型的顶点数最少;误差 最小原则,给定简化模型的顶点个数,使得简化模型与原始模型之间的误差最小 h i 误差测度是用来量化输入模型和输出模型的差异,它引导模型简化,使得简化 后的误差在用户允许误差范围之内。误差测度包括外观相似测度和几何误差测度 “”。外观相似测度用来计算原始模型与简化模型投影到视平面的差异,它最符合 人们的视觉习惯,但由于它需要从各个视点进行采样,计算量大,因此在实际应 用中通常用几何相似测度来代替。一个经常用到的几何误差测度被定义为: 眠,m z ) 一m a 】【( 翟或:) ,盟d v ( m - ) ) ( 2 3 ) 其中d 表示一个顶点v 到一个模型的距离,或( m ) 一呀咿一叫i ,j 1 | | 是两个向量 的欧氏距离。这个误差用来测量两个模型之间的最大偏差,同样两个模型之间的平 均偏差可以定义为: 似t ,m z ) 。百1 占4 r 2 似:) 4 - 百i 点q 2 ) 2 4 在这里,嵋和w 2 分别是鸭和m :的面积。 几何相似测度还有一些其他类型的表述:如s c h r o d e r 利用点到平面的平均距离 作为局部误差测度来控制顶点的删除【9 】,t u r k 采用的是曲率度量【1 唰,周晓云利用 真实感三维头发的模拟 特征角度作为误差测度f 切。本文采用预先设定模型顶点数的原则来简化头部原始 模型。 2 3 2p m 的基本原理 p m ( p r o g r e s s i v em e s h e s ) 1 4 2 3 】的基本原理是每次从原始网格肘中删除一条 边,然后逐步将分辨率降低,最后得到一个简化的粗糙网格肪和一系列细节信息 记录。根据这一系列的细节信息记录,重新向网格中插入结点和三角形,就可以 恢复出具有原始分辨率的模型。因此在实现分辨率控制的同时,p m 也可达到数据 压缩的目的。 从m 到旃的简化过程是通过称为“边坍缩( e d g ec o l l a p s e ) ”,即从网格 中删除某条边( 屹,k ) ,并且将两顶点k 、k 融合形成一个新结点,与这条边相邻 的两个三角形五、z 也一并被删除,从而降低了网格的分辨率,如图2 4 所示。 m 幽2 4 边坍绢与点分裂不葸图 相反,从旃重建出m 的过程是由“点分裂( v e r t e xs p l i t ) ”的逆过程, 它向网格中添加了一个结点k 和两个三角形正和。 上述过程可以表示为: 简化过程: 似一m “) m n - i 埘2 幽b m l 型q m o ( 2 - - 5 ) 重建过程: 肘o 灿m 1 灿m 2 。m “d 型_ 膨“一m ) ( 2 - - 6 ) 第二章头部模型 于是,驴,( v , s p t i t o ,v , s p t i t 一1 ) ) 就组成了m 的一个p m 表示。 2 3 3 - - $ 形网格的表示 n 三角形网格的组成要素有结点和面( 三角形) 。结点记录了表面上各顶点的空 间坐标,而三角形则决定了整个表面的拓扑形状,即各个顶点间的相邻关系。图 2 5 给出了三角形网格的一种表示方法。 e x 图2 5 三角形网格节点的结构 对于结点,除了记录该结点的空问三维坐标以外,还记录了与该结点邻接的 三角形的信息:首先,我们称一个结点y 及其相邻三角形f 构成的二元组o ,) 为 一个c o r n e r ,于是与结点y 相邻的三角形集合记为v c o r n e r s 。与结点相比,面( 三 角形) 的结构非常简单,仅存放了该三角形三个顶点的索引号。 在定义了上述点、面结构以后,三角形网格的结构就变得非常简单,只需用 一个结点序列和一个面序列就可以描述出整个网格的几何形状。 此外,三角形网格通常还带有很多其他的信息,例如法向量、颜色、纹理和 材质等,它们都可以作为属性信息附加在结点或三角形上。本文中暂时不考虑法 向量以外的属性信息。 2 3 4p m 的表示 0 如2 3 1 节中所述,一个p m 是由一个简化的、粗糙的初始网格m 和一组点分裂 记录的序列组成的,即:p m 。 口,也印,屹妒氓。) 。这里,玉可以用前面介 绍的三角形网格描述,而点分裂记录贝4 存储在一个有序的链表中。 为了在网格重建时正确恢复出原有的拓扑结构,必须在点分裂记录中保存如 1 2 真实感三维头发的模拟 下的信恳: 在边坍缩中被删除的边形,k ) ; 与边形,k ) 相关的两个结点巧和杉; 点分裂过程中k 点的坐标增量啦; 点分裂的类型s p l i t _ t y p e 。 如图2 4 所示,我们总是假设在一次边坍缩中被删除的边是以,k ) ,而屹、k 融合后所得的新结点仍记为k 巧、屹是与点分裂密切相关的两个结点,进行点 分裂时,需要根据这两个结点来决定插入新三角形的位置。当形,k ) 是边界时, 总是假设k 和疋不存在。最后一项的点分裂类型非常重要,在执行边坍缩的逆过 程一点分裂操作时将根据这一参数来恢复k 、k 邻域的三角形相邻关系。 廖涉,匮翥晒。 黔t 险盔急& n 黥镑”n 镊基- 钰 第二章头部模型 1 3 图2 6 点分裂类型 点分裂的分类如图2 6 所示。其中,在。型和1 型这两种情况下,边( 坼,t ) 和 ( t ,v ,) 都处于边界上,因此恢复邻接关系的操作将非常简单;相反,在2 型 和3 型这两种情况下,边( 吩,t ) 和( t ,咋) 都不是边界( 3 型中( t ,_ ) 不存在) ,这时我们将用一种平面切割的方法来恢复邻接关系;而4 型和5 型是相 对比较少见的情况,边( 吩,记) 和( t ,咋) 中有一条在边界上,而另一条不是, 这时将采用局部搜索的方法来恢复邻接关系。本文中暂时不考虑这六种类型之外 的情况,因为在网格简化的过程中,总是可以通过特定的判断来避免这些例外情 况的出现。另外本文的主要目的是要化简头部网格模型,暂不考虑头部网格的恢 复问题。这里采用刚算法是为了以后能恢复脸部模型,因此只从单方向介绍了p m 的化简方法。 2 3 5p m 的建立网格的简化 要建立p m ,首先要对原始网格m 进行简化,即进行一系列的边坍缩操作,以 得到初始网格肘o 。在每一步边坍缩的过程中,需将被删除的三角形的信息保存下 来,以便在网格重建过程中加以恢复。网格简化的基本算法如下: 1 从等待删除的边的集合中找出下一步要删除的边( 屹,k ) 。 1 4 真实感三维头发的模拟 2 删除边形,k ) ,将记录的信息 k ,巧,k ,良,s p l i t 一铆,订,加入点分裂记录序 列。 3 更新待删除边的集合。 4 如果满足结束条件则退出;否则转1 ,继续下一次边坍缩操作。 在上述算法中,如何选择简化的顺序,即如何决定下一步删除哪一条边,是 压缩效果好坏的关键。选择方法的一个极端是完全随机地选取下一条要删除的边, 而另一个极端是求解最优化方程以找到最优的选择 1 1 4 洲。 本文用的是一种折衷的方法,即:为每一条边计算一个权值,然后对每个三 角形取其最小的边权为该三角形的权。这样在网格简化的过程中,只要每次找到 权值最小的三角形,并删除其权值对应的边即可。也就是说,权值比较小的边将 被优先删除。当然,如何定义边的权值又有许多可以选择的方法。一种比较简单 的方法是用边长作为权值,即每次删除网格中最短的一条边。从直观上亦容易理 解,删除一条较短的边对总体几何形状的影响会比较小。但是,最短边策略会使 网格中的边长趋于平均,从而不利于保存表面的几何特征,因此我们对这一策略 做了一些改进。 首先,假设n i 是q 点的法向量,难,是u 点的法向量,记: 勺。c o s 蝴 褊( 2 - - 7 ) 于是,边( 屹,哆) 的权值可以定义为: 嵋,。0 一忠勺 ( 2 8 ) 这里,屯表示边( 屹,u ) 的欧式长度。上式中第二项体现了q 点与其相邻 点之间法向量的最大夹角。这个夹角越大,说明u 点附近几何形状变化越大,于是 这条边的删除就更应该被排在后面处理。另外,由于第二项的取值总是在 一1 ,1 中,为防止在边长很大的情况下第二项失去作用,对上式修改如下; 嵋,。,一矗( c f j 吐,) i ,( 1 一。:! 已q j ) ( 2 9 ) 这样,网格的几何特征就得到了较好的保存。但是这一策略有时会使网格中产生 一些狭长的三角形,为了消除这些狭长三角形,再对权值做进一步修改: 嵋,。,( 1 - - v t 酬c f + 2 1 0 ) 。 m i t t 第二章头部模型 其中表示三角形中最短边长度,j 则表示最长边长度。于是,三角形越是狭长, 该项比例就越小,被删除的优先度就越高。如果给这三项加上不同的系数,就可 以进一步改变各项对总权值的影响大小。 与h o p p e 的求解最优化网格的方法相比,这种给三角形加权的方法在计算上更 简单,而且只要合理地定义三角形的权值,也可以得到很好的简化效果。 另外,上述算法中每一次循环都要寻找下一条要删除的边,假如每次都进行 全局搜索将非常耗时。因此我们在算法开始前就对每个三角形计算权值并存入一 个排序表中,这样在算法第1 步中就可以直接从表中读出权值最小的三角形。当然, 每做完一次边坍缩,必须更新与矿相邻的三角形的权值,同时调整排序表。但这 只是局部调整,时间消耗相对较小。 2 4 头部模型化简结果 本章前面三节说明了头部模型化简的思想和方法,应用上面的p m 算法,可以 把图2 7 的原始头部模型简化成图2 8 所示的头部模型。简化了的模型对于存储、 传输、处理,特别是对实时绘制有着重要的意义。图2 7 中头部原始模型里有5 9 6 0 个点、1 1 4 2 9 个面,图2 8 化简后的头部模型里有1 0 1 8 个点、1 8 6 7 个面。从数量 上看,头部模型明显的简化了,这对于头发的模拟来说选取的坐标点明显减少了, 有利于以后头发生长点的选取。而且模型上脸部的形状和原来的模型比较起来变 化不是很大。 图2 7 原始头部模型图2 8 头部简化模型 2 5 小结 本章介绍了头部简化模型椭圆体模型的笛卡儿坐标和极坐标表示方法以 1 6 真实感三维头发的模拟 及头部原始网格模型的化筒思想,并应用p m - - p r o g r e s s i v em e s h 算法简化了头部 原始网格模型,从实验结果来看,简化后的模型比原来的网格模型少了很多点和 三角形,而且不是很影响头部模型的显示效果,这样做可以为后面头发模拟打好 了基础。 第三章头发模型 第三章头发模型 3 1 头发模型的分析 1 7 为了能够达到比较好的模拟效果,本节对头发的特点、初始生长方向、受力、 生长区域及发型进行了分析这些因素都非常影响头发的最终造型,如果能把这 些因素的逻辑关系弄清楚,就可以为后面的头发仿真提供良好的理论基础。 3 1 1 头发的特点 要分析头发的特点,需要从两方面入手:头发的自身因素和人为因素。头发 的自身因素是指头发的质地,它包括头发的软硬度、颜色、光泽、粗细等等物理 特性。不同的人具有不同属性的头发,而且同一个人头部的各个不同部位头发的 结构和特性也可能有所不同。人为因素主要是指修剪、烫发、染发、梳理等等。 另外,头发也可能在外力的作用下,发生形状变化。本文首先分析头发的几种主 要的自然属性,以及在外部因素的影响下头发的形状变化。 3 1 2 头发的初始生长方向 位于头部不同部位的头发,其初始生长方向有所不同,如图3 1 所示。由于初 始生长方向对头发的生长趋势有着很大的影响,因此有必要对它进行分析。一般 情况下,当头发很短的时候,头发不易受到重力影响,这时发型很大程度上依赖 于头发的初始生长方向。当头发比较长的时候,就需要考虑重力、风等外部因素 的影响,头发将沿生长方向进行生长,并且在重力的作用下发生弯曲,此时若施 加相同方向及大小的外力,则对于不同初始生长方向的头发,其作用结果是不同 的,如图3 2 所示。因此,可以在头发造型仿真的研究中,适当地选取每根头发的 初始生长方向,从而可以为进一步的研究工作创造条件。 真实感三维头发的模拟 一一一表示沿初始生长方向生长的头发 表示头发在重力作用下的情况 表示头发在外力p 作用下的情况 图3 1 头发的初始生长方向 图3 2 加了作用力后弯曲的头发 3 1 3 头发的受力 对于一根头发来说,它生长出来以后并不是直直的,像根铁丝一样的竖立在 头部,它总是向下弯曲,这是因为它受到各种力的作用,这些力包括:重力、风 力,人工烫卷施加的力等等。然后头发的最终形状就是在这些力的综合作用下结 果。如果仅仅考虑重力的作用,而不考虑其它外了,头发的弯曲形状如图3 3 ( a ) 。 如果考虑头发除了受到其重力的作用以外,而且还受到其它外力的作用( 如风力 等) ,其弯曲形状与其不受外力的情况将有所不同,如图3 3 ( b ) 所示,该根头发 在受到重力作用的同时也受到右上方向力的作用,并且在头发的末梢比较明显。 一般说来,外力对头发根部的影响,不如对头发末梢所产生的影响大,例如头发 受到风吹引起头发的飘动,在头发的中部和末梢尤为突出。 初始生长方向 受重力作用后 ( a ) 仅受重力作用 3 1 4 头发的生长区域 初始生长方向 受其它外力作用后 ( b ) 同时受外力作用 图3 3 头发的受力分析 头发在数量上是难以计算的,将修剪、卷烫等美发手段单独作用于每一根头 发,显然是不现实的。一般情况下,发型师都是对不同部位的头发按缕为单位分 第三章头发模型 别进行操作,从而获得预期的发型。事实上,不同缕的头发对应于头部不同的区 域,区域内的每一根头发就对应于区域中的一些离散点。如果头发较浓密,则区 域内的离散点分布比较稠密:如果头发较稀疏,则区域内的离散点分布比较分散 疏离。本文将这些小区域定义为边界相邻,互不重叠,并称之为头发的生长区域, 区域内的离散点称为头发的生长点,生长点在区域内分布的稠密度称为头发生长 区域的生长密度。 3 1 5 发型 现实中的发型一般都比较复杂,在发型师的操作下,通过修剪、烫染、定型 剂等美发手段的处理,可以显现出各式各样的头发造型,图3 4 就列出了几种头 发的发型,长发和短发的不同造型给人的感觉是完全不同的,而且也能体现出人 的气质。从这千姿百态的头发造型中,我们可以得出这样的结论,就是无论头发 造型与仿真的方法如何先进、精确,它都不能毫无差别地接近现实中人物的头发 造型。 图3 4 各种发型实例 3 2 单根头发造型 在计算机仿真头发的过程中,最重要的是找到能够有效地表示单根头发的建 模方法、头发的线模型以及如何控制头发的弯曲等,这些模型的建立方法是头发 真实感三维头发的模拟 的造型模拟和控制的理论基础,下面将对此进行详细介绍。 3 2 1 头发的弯曲模型 工程中存在这样的杆件,即作用于其上的外力垂直于杆样的轴线,使原为直 线的轴线变形后成为曲线,这种形式的变形称为弯曲变形。以弯曲变形为主的杆 件习惯上称为粱。如果梁的一端为固定端另一端为自由端( 如图3 5 所示) ,则称之 为悬臂梁。 v - u 图3 5 悬臂梁模型 讨论悬臂梁的弯曲变形时,以变形前的梁轴线为x 轴,垂直向上的轴为y 轴, x y 平面为梁的纵向对称面。在对称弯曲的情况下,变形后梁的轴线将成为x y 平面 内的一条曲线,称为挠曲线。挠曲线上横坐标为x 的任意点的纵坐标,用y 来表示, 它代表坐标为x 的横截面的形心沿y 方向的位移,称为挠度。挠曲线的近似微分方 程为: 堡。丝( 3 1 ) 一 i d j d x e 1 其中, m :表示梁的弯矩,一般地,它是x 的函数; e :表示梁的弹性模量,它随梁的材料不同而不同; i :表示梁的界面极惯性矩; e ,:依赖于悬臂梁的材料,一般地,等界面梁的e ,为常数; 悬臂梁的受力弯曲变形如图3 5 所示,p 为作用于悬臂梁自由端的径向切 削力,则任意横界面上弯矩为: m 一一p ( f z ) ( 3 2 ) 第三章头发模型 由公式( 3 - - 1 ) ,则绕度可以表示为: v g 熹0 3 2 2 头发的线模型表示 ( 3 3 ) 对于单根头发的线模型,可以假设它是由一系列的节点依次连接所构成的线段 集合。若确定了头发的生长点、头发的长度以及头发的初始生长方向,就可以从 头部模型上长出很多根头发,直直的竖立在头皮上,如下图所示。从头部网格模 型上直接选取头发的生长点,头发的长度可以人为的定义,初始生长方向采用生 长点处的法向量。在不受外力的作用下,头部网格模型上头发的生长状态呈现辐 射状态,如下图所示。 3 2 3 头发弯曲控制 图3 6 长在头部的直线形头发 图3 7 男士短发发型 头发受到各种各样的因素的影响而产生弯曲,而这些因素最终通过力的形式 统一予以描述。头发有可能仅受到重力的作用,也有可能除了重力外,还将受到 真实感三维头发的模拟 其它外力的作用。不同力的作用,将产生不同的头发弯曲形状。 x 轴 x 轴 图3 8 弯曲前后的状态 如图3 8c a ) 所示,设一根头发被表示为具有相同长度的k 段小线段的集合, 令瓦,写,瓦是线段的节点矢量,焉是发根,亏是发梢,线段s ( 1 玉f s 七) 对应的 矢量为蕊,渊l l e - , e l i - d ( 1 ci 七) ,设外力始于头发上各个线段的节点 号( 1 s f - k ) ,集中负荷嚣( 1 量f o k ) 来表示,该头发弯曲后的形状如图3 8 ( b ) 所示。 为了计算方便起见,假设在每一段上的弯曲矩是一个常数,在墨( 1 f ) 的弯曲矩 鸠为常数值。定义为: m , - m ”c 荟i + 。l p + 骞p ) ( 3 - - 4 ) 即肘;一一i i 虿i i d + o + 1 ) 2 。 其中心表示向量的模,根据悬臂梁弯曲模型,以夏:石为x 轴,离曩。距离为d 的p 的偏移量为咒,咒一一i 1 ( 詈号) 。2 。 设不和石为已知的,由上面的公式可以得到亏的一个新位置。这样可以通 过令i j e 瓦+ q 弘) 得到乏,注意到这里用于计算的x 轴定义为与覃:石的方向 一致,而矢量 o ,弘是偏移方向,其大小为上式中的咒,则新的节点亏为: 亏。耐藕 。_ , 已知瓦- 0 ,o ,吣,当f 一1 时,亏为头发的初始生长方向,这样从亏到亏的诸 矢量可以连续得到。 第三章头发模型 s , o 31 61 61 63 08 阿 o 01 01 01 o1 01 0 h r 0 01 01 o2 o1 o1 o p t 0 o 一1 o0 o 1 00 20 2o 2 图3 1 5 头发块的不同造型 第三章头发模型 3 4 小结 在本章中,首先对头发模型进行了分析,介绍了头发的特点、初始生长方向、 受力、生长区域和多样性发型。其次介绍了单根头发造型,在这一节里详细阐述 了头发的弯曲模型、线模型和弯曲控制,并实现了头发的直线模型。第三,介绍 了头发块的造型,在这一节里具体介绍了头发块的创建过程,先建立关键头发, 再从关键头发扩展出头发块。最后,通过引入形状控制参数,实现了一种多变头 发块的造型与仿真。这一章的内容为以后整体头发造型提供了基础。 第四章头发的碰撞检测 第四章头发的碰撞检测 碰撞检测问题在计算机图形学、机器人运动规划、图形仿真等领域中有很长 的研究历史,近年来随着虚拟现实、仿真等技术的兴起,碰撞检测再一次成为研 究的热点。精确的碰撞检测对提高仿真的真实性、增强虚拟环境的沉浸感有着至 关重要的作用,而虚拟环境自身的复杂性和实时性对碰撞检测提出了更高的要求。 尤其是头发的仿真过程中,在数量和密度上考虑,头发的碰撞是不可避免的。到 目

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论