(计算机应用技术专业论文)环境光下的交互式头发绘制.pdf_第1页
(计算机应用技术专业论文)环境光下的交互式头发绘制.pdf_第2页
(计算机应用技术专业论文)环境光下的交互式头发绘制.pdf_第3页
(计算机应用技术专业论文)环境光下的交互式头发绘制.pdf_第4页
(计算机应用技术专业论文)环境光下的交互式头发绘制.pdf_第5页
已阅读5页,还剩58页未读 继续免费阅读

(计算机应用技术专业论文)环境光下的交互式头发绘制.pdf.pdf 免费下载

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

文档简介

浙江大学硕士学位论文 摘要 摘要 环境光是一种用于模拟真实世界自然光照效果的有效手段。近年来,学术界 对环境光照下物体的交互式绘制进行了大量的研究,取得了较大的进展,但环境 光下头发的快速绘制问题仍然没有得到解决,现有的交互式头发绘制算法只能处 理点光源或者方向光等简单光源。 我们提出了一种快速算法,可以在环境光下以交互式帧率实现头发的绘制, 并同时考虑光线在头发上的单次散射效果和头发间的多次散射效果。光线在头发 上散射进入视点的辐射亮度等于环境光,散射函数,以及头发透射率三者的乘积 在球面上的积分。我们使用了一组球面径向基函数( s r b f ) 来近似环境光,并将头 发受到的光照近似为这组s r b f 光照贡献的总和。对于单个s r b f 光源,我们将光 照计算公式里的透射率从积分中提取出来,并引入有效透射率( e f f e c t i v e t r a n s m i t t a n c e ) 的概念,于是光照公式可以转化为有效透射率乘上散射函数与s r b f 的卷积。由于卷积部分的计算与头发几何无关,所以我们可以针对常用的头发散 射模型进行预计算。将其与s r b f 的卷积结果存储起来,这样就将绘制阶段复杂的 积分计算转化成了查表操作。另外我们提出了一种新的卷积光深度i 虱( c o n v o l u t i o n o p t i c a ld e p 也m a p ) 的方法,它通过在s r b f 中心位置上对光深度图进行滤波,从而 近似的计算出有效透射率。另外,我们实现了z i n k e 等人提出的双重散射近似算 法【1 】来模拟光线在头发之间的多次散射效果。实验证明我们的算法可以达到交互 式的绘制帧率,而且绘制结果与离线算法绘制出来的结果非常接近。 关键词:头发绘制,环境光照,球面径向基函数 a b s t r a c t e n v i r o 姗e n tl i g h t i n gi sa ne f f e c t i v ew a y t om o d e lt h ec o m p l e x 艘咖l i l l u m i n a t i o nu s u a l l yf o 恤d i nt h er e a lw o r l d o v e rt h ep a s tf e wy e a r s ,m u c h w o r kh a s b e e nd e v o t e dt oi n t e r a c t i v er e n d e r i n g u n d e re n v i r o n m e n tl i g h t i n g ,d e s p l o et h e t r 锄e n d o u sp r o 乒e s s ,o n ep r o b l e m t h a tr e m a i n su n s o l v e di st h a to fh a l rr e n d e n n g u n d e re n v i r o n i l l e n tl i g h t i n g e x i s t i n gi n t e r a c t i v eh a i r r e n d e r i n gt e c h n i q u e 8 盯e a l l d e v e l o p e df o rr e l a t i v e l ys i m p l el i g h ts o u r c e s ,s u c ha sp o i n ta n d d i r e c n o n a l1 1 9 n s w ep r c s e n taf a s ta l g o r i t h mf o ri n t e r a c t i v eh a i rr e n d e r i n g w i t hb o 也s l n g l ea n d m u l t i p l es c a t t e f i n ge f f e c t su n d e rc o m p l e x e n v i r o n m e n tl i g h t i n g t h e0 u t g o i n gr a d i 粼e d u et os i n g l es c a n e m g i sd e t e r m i n e db yt h ei n t e g r a lo ft h ep r o d u c to f t h ee n v i r o m t 1 i 2 j l t i n g ,t h es c a t t e r i n gf u n c t i o n ,a n dt h e t r a n s m i t t a n c e - w ea p p m x l m a t et h e e n v i r o 衄e n tl i 出b yas e to fs p h e r i c a lr a d i a lb a s i sf u n c t i o n s ( s r b f s ) a n d t h u sc o n v e r t m eo u t g o i n gf a d i a n c ei n t e g r a li n t ot h es u m o fr a d i a n c ec o n t r i b u t i o n s0 f a ns r b fl i g h t s f o re a c hs r b fl i g h t , w ef a c t o ro u tt h e e f f e c t i v et r a n s m i t t a n c et or e p r e s e n tt h e r a d l a n c e i n t e g r a la st h ep r o d u c to f t w ot e r m s :t h et r a n s m i t t a n c ea n d t h ec o n v o l u t l o no ft n e s r b fl i 蛳a n dt h es c a t t e r i n gf u n c t i o n o b s e r v i n g t h a tt h ec o n v o l u t l o nt e r m1 s i n d 印e n d e n to ft h eh a i rg e o m e t r y , w ep r e c o m p u t e i tf o rc o m m o n l y - u s e ds c a t t e r i n g m o d e l s ,a n dr e d u c et h em n t i m ec o m p u t a t i o n t ot a b l el o o k u p s w ef u r t h e rp r o p o s ea t e c h n i q u e ,c a l l e dt h ec o n v 0 1 u t i o no p t i c a ld e p t h m a p ,t oe t 五c i e n t l ya p p r o x i m a t e t h e e 虢c t i v et r a n s m i t t a n c eb yf i l t e r i n gt h eo p t i c a ld e p t hm a p sg e n e r a t e d a tt h ec e n t e ro ft h e s r b f a sf o rt h ei n u l t i p l es c a t t e r i n gc o m p u t a t i o n , w ea d o p t a l le x i s t i n gm e t h o d , t h a to f t h ed u a ls c a t t e 血ga p p r o x i m a t i o np r o p o s e db y z i n k ee ta l e x p e r i m e n t ss h o wt l l a t o u ra l g o r i 1 i i lc a na c h i e v ei n t e r a c t i v ef r a m er a t e s ,w h i l et h e 础眦g 他s u l t s a r e c o m p 撒b l et ot h o s ep r o d u c e db y o f f - l i n ea l g o r i t h m s k e y w 。r d s :h a i rr e n d e r i n g , e n v i r o n m e n tl i g h t i n g ,s p h e f i c a l r a d i a lb a s i sf h n c t i 。l l s 浙江大学硕士学位论文 图目录 图目录 图1 1k a j i y a k a y 光照模型【2 1 4 图1 2 头发横截面【2 】4 图1 3k a j i y a k a y 模型的镜而反射模型【2 】6 图1 4m a r s c h n e r 的光照模型【3 】7 图1 。5 散射模型参数定义【3 】8 图1 6 同一光照下k a j i y a 和m a r s c t m e r 模型的绘制结果对比【3 1 1 0 图1 7 0 p a c i t ys h a d o wm a p 与d e e pc 巾a c i t ym a p 的分层【7 】1 2 图1 8 使用d e e po p a c i t ym a p 绘制自阴影1 3 图1 9 全局光照明效果对比1 4 图1 1 0 环境光的几种近似方式f 2 l 】1 8 图1 1 1 不同带宽的s r b f 辐射亮度分布2 0 图2 1 头发几何模型2 2 图2 2 算法流程图2 5 图2 3 近似结果与原结果对比一2 7 图2 4 查询三维表与使用多项式近似结果对比2 8 图2 5m a r s c h n e r 散射函数与s r b f 预计算表3 0 图3 1 卷积光深度示意图3 3 图3 2s a t 示意图【2 3 】3 4 图3 3 不同的阴影绘制方式对比3 5 图3 4 不同头发比例的绘制结果3 6 图4 11 0 0 个光源方向上绘制的光深度图4 2 图4 2 直发排序后进行a l p h a 混合结果对比,头发由1 5 万个线段组成4 5 图4 3 卷发排序后进行a l p h a 混合的结果对比,头发由1 5 0 万个线段组成4 5 图4 4 我们的绘制结果与参考结果对比4 7 图4 5 带辫子的头发在环境光下的绘制,左边为我们的绘制结果,右边为参 考结果4 8 图4 6 深色头发在环境光下的绘制4 9 图4 7 卷发在环境光下的绘制结果,上图为我们的结果,下图为参照结果 51 图4 8 头发在运动中的效果,上图为我们的结果,下图为参照结果5 2 i i i 浙江大学硕士学位论文表目录 表目录 表3 1 环境光下进行不同程度简化的绘制结果误差3 7 表4 1 头发数据以及绘制时间( 其中乃为光源方向上绘制耗时,l 为视点方 向上绘制耗时) 5 0 i v 浙江大学硕士学位论文第1 章绪论 第1 章绪论 1 1 研究背景 1 1 1 头发绘制的现状 随着图形技术的日益发展,计算机所能绘制的场景越来越复杂,呈现出的效 果也越来越逼真。虚拟人物在电影,游戏,广告,虚拟现实等领域中得到了大量 的运用,而人物头发的效果是表现人物真实感的重要组成部分。近年来,最终 幻想、金刚、功夫熊猫等动画电影中虚拟角色的毛发效果给人留下了极其 深刻的印象。另一方面,毛发绘制足一个非常复杂的问题,其原因在于头发本身 几何的复杂性以及由此产生的光与头发相互作用的复杂性。即使在图形硬件运算 能力的越来越强的今天,仍然需要大量的运算时间才能绘制出较为真实的效果。 影视作品中的毛发效果虽然可以耗费大量的时间来制作,但是一些交互式的应用 比如游戏,虚拟现实等,对绘制速度要求比较高,如果要在这些应用中展现环境 光下的头发效果,现有的算法还远远达不到要求。 绘制具有高度真实感的头发效果一直是计算机图形学中一个富有挑战性的 难题。首先,头发是由数量庞大的细小线条交织而成,绘制负担比较重。其次, 金色或者浅色头发还具有半透明的性质,光线不仅会在单根头发上进行反射和折 射,而且会在头发之间相互作用,头发之间的遮挡关系又比较复杂,这都会使得 模拟头发的光学特效和自阴影变得非常麻烦。考虑到环境光照的因素下需要累加 来自各个方向的光能的贡献,头发的绘制将更为困难。 近年来,学术界在头发绘制方面做了大量的工作。k a j i y a 和k a y 在1 9 8 9 年 提出了一个简单的头发光照模型【2 】,比较好的展现了头发的漫反射和高光效果, 因为其简单性,所以在电影和游戏中得到了广泛的运用。m a r s c h n e r 等人在2 0 0 3 年提出了一种基于物理模拟的光照模型【3 】,考虑到了光线在头发里的折射和头发 对光能的吸收,能更为精细地表现头发的散射特性在方位角维度上的变化。在自 阴影绘制方面,l o k o v i c 和v e a c h 在2 0 0 0 年将阴影 訇( s h a d o wm a p ) 的技术进行了 浙江大学硕士学位论文第l 章绪论 扩展【4 1 ,在每个像素上保存一个深度值的分段函数,呈现出了高质量的自阴影效 果,不过该方法只能用于离线的绘制。k i m 和n e u m a n 在2 0 0 1 年提出了遮挡阴影 ( o p a c i t ys h a d o wm a p ) 的技术【5 】,将头发进行分层渲染,然后叠加o p a c i t y 值,这 个算法达到了实时的速度,但是当分层比较少时,会出现明显的瑕疵( a r t i f a c t s ) 。 m e r t e n s 等人在2 0 0 4 年提出将头发模拟成一个三维密度场旧,在光栅化过程中进 行实时采样,从而得到一个可见性函数的近似。y u k s e l 和k e y s e r 在2 0 0 8 年提出 了深度遮挡图( d e 印o p a c i t ym a p ) l 撇术 7 1 ,用少量的分层就可以很好的近似出分 段可见性函数。 虽然目前头发绘制的研究工作取得了很多进展,但是这些技术都只能在单个 简单光源下,达到实时的效果。据我们所知,目前还没有算法能对头发进行环境 光下的交互式绘制。 1 1 2 计算机图形硬件技术的发展 近年来,计算机图形处理器的发展速度远远的超过了c p u 的发展速度。 n v i d i a 在2 0 0 6 年发布具有革命性意义的产品g e f o r c e8 8 0 0 ,其中g e f o r c e8 8 0 0 g t x 拥有1 2 8 个流处理器( s t r e a mp r o c e s s o r ) ,它率先支持微软d i r e c t x1 0 的 s h a d e rm o d e l4 0 ,相比原来的3 0 版本,s h a d e rm o d e l4 0 的最大指令数从51 2 条 增加到了6 4 0 0 0 条,临时寄存器的数量从原先的3 2 个增加到了4 0 9 6 个,可同时 操作的纹理个数从1 6 增加到了1 2 8 个,而且纹理的尺寸也有极大的提升,最高 纹理分辩率从2 0 4 8 x 2 0 4 8 变成了8 1 9 2 x 8 1 9 2 ,是原来的4 倍。另外还增加了对h d r 纹理的支持。 s h a d e rm o d e l4 0 另一个重大改进就是在顶点着色器( v e r t e xs h a d e r ) 和像素着 色器( p i x e ls h a d e o 之间引入了一个新的可编程图形层:几何着色- 器( g e o m e t r y s h a d e o 。原来的顶点着色器和像素着色器只是对逐个项点或像素进行处理,而新 的几何着色器可以对几何图元进行处理。虽然其操作不会象顶点着色器中那样完 整,但是这种操作却可以确定整个模型的物理形状。 s h a d e rm o d e l4 0 是一种统一渲染架构,通过一个整合的可编程处理器来完成 2 浙江大学硕士学位论文第l 章绪论 目前顶点着色器、像素着色器的所有工作。统一渲染架构中着色器单元不再分离, 显示核心不再需要为不同的着色器类型配置不同的着色器单元,不管是像素着色 器数据还是顶点着色器数据,所有的着色器单元都可以对其进行处理。 硬件速度的提高和图形编程模型的改进,极大的促进了图形学技术的发展, 使得各种只能离线计算的复杂问题,有了实时绘制的可能性。在最新图形硬件的 支持下,环境光下头发的交互式绘制难题的解决便成为了可能,在我们的绘制算 法中,大量的运用了最新的图形硬件技术,如几何着色器,g p u 并行计算,几何 实例化技术等。 1 2 头发绘制的相关技术 1 2 1 单次散射光照模型 1 2 1 1k a j i y a - k a y 模型 k a j i y a 和k a y 在1 9 8 9 年提出了第一个被广泛使用的头发光照模型【2 】。头发的 光照由漫反射和镜面反射叠加而成。下面我们给出漫反射项和镜面反射项的推导 过程。 如图1 1 所示,该模型假设头发都足半径非常小的圆柱体,圆柱的切线f 即圆 柱的旋转轴1 方向用单位向量t 表示,光线方向用单位向量,表示,视线方向用单 位向量e 表示,单位向量厂为,在圆柱法平面( 与圆柱旋转轴垂直的平面) 上的投影, 厂= 秽三占崭,向量6 为垂直于r 和,的向量,即6 = ,“ 3 浙江大学硕士学位论文第1 章绪论 图1 1k a j i y a k a y 光照模型【2 1 考虑头发的横截面如图1 2 所示,横截面上圆周某一点的位置可以用角度秒 表示,目的取值范围为0 到刀, p ) 为经过这一点的头发表面的法线方向。 ”( 口) = 6 ( c o s p ) + ,( s i l o )公式( 1 1 ) 图1 2 头发横截面【2 】 4 浙江大学硕士学位论又第1 蕈绪i g 根据l a m b e r t 模型,横截面圆周上某一点的漫反射光强为v ( e ) = k d ,聍p ) 。 其中k d 为漫反射系数。整个横截面的反射光强为圆周各处上反射光强在面向光 源的半圆上的积分,圆周上的积分单元西可以用枷表示,其中,表示圆的半径, 那么整个圆周的漫反射强度计算公式如下: 甲抛= k dj c r ,行耐口 公式( 1 2 ) = k d r r l ( 6 ( c 。s 秒) + ,( s i n 伊) x 彤 = k d r i r ( s i n 秒伽 = g d r 1j c r ( s i n 秒伽 = k d z ,7 这里将与,和,7 无关的标量集成在了一起。另外我们将厂用f 和,来表示, 漫反射的计算公式变成: 州尚 馘3 , :些 l 一( ,) 2 = 力s i n ( t ,) 光线在头发上会有高光效果,k a j i y a 等人通过借鉴p h o n g 模型镜面反射的计 算方法,推导出光线在圆柱上的镜面反射。如图1 3 所示,入射光方向,和头发 切线方向t 所构成的夹角为p ,光线在头发上以角度口反射出来,反射光线绕圆柱 旋转轴旋转一周可以形成一个圆锥,e p 为圆锥内与视线方向e 夹角最小的向量,秒7 为和p 之间的夹角。很明显,当e 位于圆锥内的时候,镜面反射值最大,根据 p h o n g 模型的思想,可以推导出镜面反射的公式: 气。咖= k ,c o s p 0 ,p 7 ) 公式( 1 4 ) = k sc o s v ( 0 一矽7 1 5 浙江大学硕士学位论文第1 章绪论 = k ,( c o s 8 c o s 8 7 + s i n 8 s i n 8 ) , = k 。( ( f ,e ) + s i n ( t ,) s i n ( ,p ) ) , 其中k ,为镜面反射系数,p 为高光系数,p 越大高光就越尖锐。 :拳 图1 3k a j i y a k a y 模型的镜面反射模型【2 】 k a j i a y - k a y 模型可以部分模拟出光线在头发上的光照效果,它假定平行光在 圆柱表面反射出去后,形成一个以圆柱为中心轴的圆锥,而且高光集中分布在圆 锥的方向上,其他方向上的散射由漫反射来代替。这个光照模型并不符合物理模 型,它没有考虑光线的折射以及在头发内部的反射,有一些头发的光照效果不能 很好的模拟出来。但是由于这个模型的简单性,现在仍被大量运用。 1 2 1 2m a r s c h n e r 模型 康奈尔大学的m a r s c h n e r 等人进行了大量的实验,对光线在头发上散射后各 个方向的辐射亮度分布进行了三维上的测量,并仔细分析了头发的微观结构,找 6 塑翌查兰堡主堂竺笙苎 翌! 兰堑笙 出光线在头发上的散射规律,并推导出了一个实际可用的光照模犁【3 1 。 头发由两个部分组成:表皮( c u t i c l e ) 和皮质( c o r t e x ) 。表皮是外面很薄的一层 保护性外壳,表面并不光滑,它像鳞片一样包裹着里面的皮质。这个特性会影响 到光线的在头发上的反射方向。如图1 4 所示,光线打到头发上后,会分成三部 分: 第一部分是反射光线,用字母r 表示,由于表面的粗糙,光线的反射角度并 不等于入射角度,而是会稍微偏向头发表面的法线。 第二部分是折射光线,光线从头发进出折射了两次,用t t 来表示,由于发 生了两次折射,m a r s c h n e r 假定头发表皮层对光线折射的偏移相互抵消,所以光 线的出射方向和入射方向平行。 第三部分是光线进入头发后,在头发内部发生了一次反射,最后折射出头发, 用t l 玎来表示,光线射出的角度与入射角度不相同,会稍微偏离表面的法线方向。 对于金色或者浅色头发,皮质层是带有颜色的,光线进入头发内部后,光能 会被部分吸收,从而使射出光线的颜色发生改变,就是说t r t 和t t 方向上的光 线由于进入了头发内部,所以光线颜色会受头发颜色的影响,而r 方向上的光线 由于没有进入头发,所以颜色是不变的。另外,这个模型可以模拟出光线在t r t 方向上形成的高光效果,也称为第二高光。这个特性是k a j i y a k a y 模型所没有的。 h 图1 4m a r s c t m e r 的光照模型【3 】 7 浙江大学硕士学位论文 第l 章绪论 如图1 5 所示,头发的切线方向为z ,从头根指向发梢。向量职w 和z ,两两正 交,组成一个右手坐标系。如果假设头发横截面为椭圆,那么定义为y 长轴,w 为 短轴。定义y w 平面为头发的法平面。为光线入射方向( 从头发绘制点指向光 源方向) ,魍为光线散射方向,光线的入射和出射方向都用球面坐标表示。入射 方向和出射方向与v w 平面上的夹角分别用只和口,表示,入射方向和出射方向绕 切线的方位角分别用谚和办表示。另外,定义巳= ( 只- g ) 2 ,吼= ( 嘭+ 嘭) 2 , 矿= 办一谚,织= 【谚+ 办j 2 。 图1 5 散射模型参数定义【3 1 m a r s c h n e r 用了双向反射分布函数( b r d f ) 来定义头发的散射函数,传统的 b r d f 是定义在曲面上的,而头发的b r d f 是定义在曲线上的。定义单位长度上 的辐射照度( i r r a d i a n c e ) 为e ,单位长度上的辐射强度( r a d i a n ti n t e n s i t y ) j 白l 。那么双 向反射分布函数s 定义为: 她) = 酬 撕m ) 其中云为无穷小长度的头发反射出的辐射强度。瓦为同样长度头发受到的 辐射照度,它与入射光的辐射强度呈比例关系: d 虿( q ) = d z ,( q ) c o s 只把 公式( 1 6 ) 浙江大学硕士学位论文第1 章绪论 其中d 为头发横截面的直径。粗的头发比细的头发可以接收更多的光照辐 射,从远处看粗的头发也要比细的头发更亮。根据以上的定义,最终的出射辐射 强度按如下公式在整个球面上进行积分: i ( q ) = db ( 嘭,o r ) l ,( q ) c o s s i d c o i公式( 1 7 ) m a r s c h n e r 首先假设头发为光滑的圆柱,然后根据圆柱的对称性,将b r d f 函数分解成两个函数的乘积: s 娩,幺;谚,o r ) - - m ( o , ,酿) 仂,( 吃) ;谚,# r ) c o s 2 岛 公式( 1 8 ) 其中m 函数夹角口相关,叩7 是根据b r a v a i s 定律,以以为参数算出来的一个 菲涅尔系数。由于r ,订t i 玎三个方向上的传输路线不同,所以三个方向上的m 函数和n 函数都不一样。m a r s c h n e r 根据各自的传输路径,并将头发的粗糙特性 考虑进来,定义了一组m ,n 函数。最后的b r d f 函数实际上由r t 工t i 玎三个 散射函数组成,其中每一个散射函数又可以分解成m 和n 两项: s 娩,瞑;谚,g ) = ( 鸭+ + r r ) c o s 2 吃公式( 1 9 ) m a r s c l m e r 等人通过物理测量,总结出了光线在头发上散射后的三条传播路 径,并归纳出一组散射函数用来模拟光线在头发的散射特性,使得绘制结果能更 真实的反映出头发的光照效果。从图1 6 可以看出,在同样的光照下,左边是 k a j i y a 模型绘制出来的结果,因为漫反射起了主导作用,整个颜色显得比较平滑, 而m a r s c h n e r 模型呈现出的颜色效果更加丰富,白色的高光上面有一大片的带有 头发颜色的高光效果( 第二高光) ,与k a j i y a k a y 模型的结果相比更具有真实感。 9 * 目f 伸论文 镕i 镕论 一 t 耐采k 旬1 y a 雠型绘制( b 犀i m 埘c h e r 供型绘制 图1 6 同一光照rk a j i 妒和m a r s c h n “模型的绘制结果对比 1 2 2 简单光源下头发自阴影的绘制方法 122 1 离线的阴影图生成方法 大部分用于头发阴影绘制的技术都是从阴影匿 ( s h a d o wm a p ) 8 l 技术演化而来 的。它一般分两步来进行,第一步在灯光空间中绘制整个场景将深度值保存在 深度图( d e p 山m a p ) 里面。第二步在祝点空间中绘制场景t 将每一个绘制点投影到 灯光空间中,计算出在此空间中的探度值,并查洵深度图里相应位置所保存的深 度值,将阿者进行比较以此判断出这个点在灯光方向上是告被其他物体遮挡。 但这个方法只能给出是否遮挡的判断不能计算半透明物体的透射程度。近年来, 学术界在处理半透明阴影图上做了大量的工作。 t o m l o k o v i c 等人在2 0 0 0 年提出了深度阴影图( d e 。p s h a d o w m a p ) 的技术n 传统的s h a d o wm a p 在像素中保存一个的深度值,而d e e ps h a d o wm a p 在像素中 压缩保存了一个可见性函数,这个函数被近似成一个分段函数。它能计算出穿过 这个像翥的光线在达到某个深度时光能的衰减程度。相比传统的s h a d o wm a p 技术,这项技术有很多优点: 首先,它能处理半透明物体的遮挡。 其扶,对于高质量的阴影渲染,d e e ps h a d o wm a p 技术计j 耗的空间更小,访 1 0 浙江大学硕士学位论文 第1 章绪论 问速度也比s h a d o wm a p 要快几个数量级。 再次,这种阴影图还支持m i p - m a p p i n g ,当物体在视域中尺度变化范围较大 时,可以极大的降低贴图查询消耗。 但是这种技术讣算量非常大,只能用于离线渲染。 t i m oa i l a 和s a m u l il a i n e 在2 0 0 4 年提出了无走样阴影图( a l i a s f r e es h a d o w m a p s ) 技术1 9 。它首先在视点空间对场景进行绘制,根据绘制出来的像素点的窗1 2 1 坐标和深度值,将其转换到光源空间上作为采样点,然后在光源空间中绘制场景, 对场景的每一个三角形进行人工的光栅化,在此过程中判断三角形是否会遮挡这 些采样点,遮挡结果可以保存下来,也可以直接写到屏幕像素中。由于这些采样 点在光源空间没有进行离散的光栅化处理,所以就避免了传统s h a d o wm 印技术 中光源空间和屏幕空间像素点不能一一对应所产生的锯齿效果。另外他们将这些 采样点在屏幕空间进行剖分,可以在判断遮挡时快速剔除不相关的采样点,提高 阴影的绘制速度。 这项技术可以生成高质量的阴影效果,而且还可以处理半透明的效果。对于 具有复杂细节的物体,这项技术可以精确的绘制出阴影效果。但是由于这项技术 的运算量很大,所以只能用于离线渲染。 1 2 2 2 在线的阴影图生成方法 k i m 等人在2 0 0 1 年提出了遮挡阴影 蛩( o p a c i t ys h a d o wm a p ) 技术f 5 】它是对 d e e ps h a d o wm a p 技术的简化。它首先定义了一组与灯光方向垂直的,等距离的 平面。这些平面将头发分割成很多层,每一层都对应一张遮挡图( o p a c i t ym a p ) 。 然后在光源空间中分层绘制头发,将绘制的像素( 设置一个固定值作为遮挡贡献) 通过a l p h ab l e n d 叠加在当前层对应的o p a c i t ym a p 上。它通过设置裁剪平面,按 照离光源由近到远的顺序绘制各层头发。绘制某一层时,先将上一层的o p a c i t y m a p 累加到当前层上。当所有层绘制完毕后,某一点的遮挡值可以通过查询前后 两层o p a c i t ym a p 的值进行插值得到。 很明显,分层的数目会影响绘制出来的阴影质量。如果分层少的话,阴影质 塑坚点芏堡主兰些堡三 墅! 兰竺丝 母会比d e c 口s h a d o wm a p 差,因为两层之问遮挡值的捕值会导致a r t i f a c t s 只有 使用较多的层数才能绘制出很好的质量。这种方法速度比较快可以用于交互式 的头发绘制。 c c m y u l c 辨l 等人在2 0 0 8 年提出了深度遮挡图( d c c p o p a c i t y m a p ) 技术m ,它 对o p a c i t y s h a d o w m a p 进行了改进坨们的区别在于分层的方式不一样,如图17 所示,o p a c i t ys h a d o w m a p 是通过平面米分层的,而d 。c p o p a c i t y m a p 技术则是 用光源方向上头发丧层的深度值形成的曲面作为分层的依据。 o d a c i t ym a p 的生成分两步进行。首先在光源空间中绘制头发的深度圈,然 后在光源方向上以这个深度值作为第一层o p a c i t y m a p 的起始距离乩。以后的第 k 层都在这个方向上加上距离d 。这样每一层o p a c i t ym a p 都具有头发的轮廓形 状。第二步在光源方向上进行o p a c i t ym a p 的绘制。头发不用分层绘制,而是一 次性绘制在绘制的过程中,根据片元的深度值判断片元属于哪一层,片元会对 后面所有的o p a c i t y m a p 贡献一个遮挡值,然后将这个遮挡值累加到这些o p a c i t y m a p 相应的像索上。这些工作都可i ;【在s h a d e r 里完成。 扣) o 舛c i t y s h a d o w m a p m ) d o 单o p a c i l y m a p 圈l7 0 p a c 时s l a d o w m a p 与d c c p o p a c i l y m a p 的分层” 对于四通逆的纹理,可以用其中一个通道来保存头发的深度图,即第一层的 深度,其他3 个通道可以保存三层o p a c i t ym a p 如果要分更多的层- 可以另外 赣瓣 浙 学学位论i第l 章绪论 增加纹理层o p a c i t ym a p 只占用一个通道。 d e e p o p a c i t y m a p 的使用方法和o p a c i t ys h a d o w m a p 一样。都是在绘制t o , , t 候将绘制点投影到光源空问中,判断绘制点处于哪一层,然后读取绘制点前后两 层的o p a c i t y m a p 的相应位置上的遮挡值进行插值。 如果分层的数目较小,最后一层o p a c l t ym a p 后面可能还会有头发。如果增 加新的分层的话,会导致更多的资源消耗。考虑到光线穿过前面几层后,光能已 经有了很大的衰减,强度已经变的很弱,所以可以将晟后这部分头发的遮挡值直 接累加到上一层的o d a c i t ym a p 上,这部分头发的遮挡值通过读取前一层的 o p a c i t y m a p 得到。 这项技术通过改变分层的形状,使头发表面的光照效果更为真实,将层与层 之闭插值带来的a n i f e c t s 脖藏在了头发内部。相比0 1 ) a c i t y s h a d o w m a p 技术,d 口 o p a c i t ym a p 只需要较少的分层就可以得到很好的阴影效果这使得绘制速度变 得非常快,可以用于实时绘制。所以我们实现了这一算法,用于头发的自阴影计 算。圈18 是我们使用d e e p o p a c i l y m a p 绘制的自阴影结果。 图1 8 使用d e e p o p a c i t y m a p 绘制自阴影 e r i ks i n t o m 和u l f a s s a n s 在2 0 0 8 年提出了一种技术,利用基于g p u 的 1 3 * “ 学m 学位& 女* l $ q 捧序算法对头发进行分层。传统的o p a c i t y s h a d o w m a p 技术如果要绘制高质犀的 阴影效集。必须把头发分成掘多层,生成较多的o p a c i t ym a p 这样会消耗大量 的显存。这项技术以线段为单位,在光源方向上根据头发与光源的距离对头发进 行排序分层,然后以层为单位来绘制o p a c i t ym a p 和照终结果。它生成完一张 o p a d t y m a p ,就将这张卸a c i t y m a p 前的头发绘制到是终结果,然后再生成下一 张o p a c i y m a p ,这样在绘制过程中只需要在显存里保存当前绘制的这层头发的 前后两张o p a c i t ym a p ,用于遮挡值的查询和插值。这项技术在程存消耗不变的 前提下,对头发进行大量的分层,从而减少a r t i f a c t s 。 1 2 3 头发的全局光照明效果 1 2 3 1 全局光照明算法概述 全局光照明f g l o b a li l l u m i n a t i o n ) 是图形学巾用于增强场景真实感光照效果的 一组算法。这些算法不仅考虑来自于光源的直接光照,还考虑了其他物体表面 反射或者折射过来的间接光照。使用全局光照明算法绘制i 来的结果比直接光照 的结果要显得更为真实。如图19 。使用了全局光照明算法后,可以看到红色墙 壁上出现了焦散效果( c a u s t i c ) ,绿色墙壁对地面和其他墙壁贡献了光照。 不考虑全局光照明m ) 考虑全局光照明 罔1 9 全局光照明效果对比一 浙江大学硕士学位论文第l 章绪论 全局光照明算法通过模拟光能在场景里的传输过程,当光能达到平衡状态 后,计算每个点上朝各个方向的辐射亮度( r a d i a n c e ) ,从而算出每个像素上的颜色 值。k a j i y a 在1 9 8 6 年提出了著名的渲染方程( 啪d e r i r 喀e q u a t i o n ) 1 1 2 】: l ( x ,0 3 ) = v ( x ,6 9 ) + 【三( 1 ,( x ,一扛,) , 0 3 0 c o s g f ,( x ,d ,0 3 ) d 0 3 公式( 1 1 0 ) 其中l ( x ,缈) 表示从物体表面x 点,沿方向0 3 反射出来的辐射亮度,辐射亮度 代表单位面积的物体表面在单位时间内发出的流过单位立体角的光能。v ( x 0 3 ) 表 示从自发光的物体从表面x 以国方向发射出去的辐射亮度,z ( x ,功) 是双向反 射分布函数( b i d i r e c t i o n a lr e f l e c t a n c ed i s t r i b u t i o nf u n c t i o n ,b r d f ) 表示光线从 方向入射,照到点工上后,从国方向反射出去的光能衰减。“五) 表示点x 在 方向所能看见的点。目表示表面法线和入射方向一的夹角。q 是覆盖入射方向 的整个球面。 每个方向上的入射光线都会在点x 上产生辐射照度( i r r a d i a n c e ) ,辐射照度在 观察方向上产生辐射亮度,将所有入射光线进行积分,可以计算出观察方向总的 辐射亮度。 解光传输方程主要有两类方法【1 3 】,一类是用有限元的思想,将场景划分成很 多小的面片,计算面片之间的光能传递,例如辐射度算法【1 4 1 。另一类是随机算法, 比如m o n t ec a r l o 路径跟踪算法【1 2 1 。m o n t ec a r l o 算法能比较好的解决全局光照明 问题。和传统的辐射度算法相比,它内存消耗相对较小,能比较方便的模拟各种 光照现象,而且能进行像素级精度的光照计算。由于m o n t ec a r l o 算法本质上是 基于统计的随机算法,随机样本的方差可能导致最终绘制结果的噪音,只有增加 样本的数量,才能使减少噪音的出现,但是这样需要大量的样本,同时也会耗费 巨大的计算量。 j e n s e n 在1 9 9 6 年发表论文,提出了光子映射( p h o t o nm a p p i n g ) 算i ! 去t 1 5 1 ,算法 分两个步骤进行。第一步,光源向场景发射一定数量的光子,然后模拟光子在场 景中的反射以及和表面接触发生相互作用的过程。被物体表面吸收的光子将被保 存在光子贴图( p h o t o nm a p ) 中。第二步绘制场景的时候,场景中某一点的亮度是 1 5 浙江大学硕士学位论文第l 章绪论 根据这个点附近的个光子的光通量信息来计算的。一般的方法是在该点附近找 一个能包围个光子的最小球体,用这个球体里面的光子的总光通量除以这个球 在物体表面的投影面积,就可以算出辐射照度,然后乘上b r d f 函数,就能计算 出这一点朝视点方向反射的光亮度。 1 2 3 2 光线在头发中多次散射 如果考虑头发的全局光照效果,那么不仅要计算光源的直接照射,还要考虑 从其他头发散射过来的光线的间接光照。因此,如果要绘制具有真实感的头发效 果,那么光线在头发之间的多次散射将是一个不能忽略的因素。特别是对于比较 密集的浅色头发,多次散射会造成类似于半透明物体次表面散射( s u b s u r f a c e s c a t t e r i n g ) 的效果。但是由于头发高度复杂的几何特性,以及光线在头发内复杂的 传播路线,使得模拟头发内的多次散射变得非常困难。 近年来,学术界提出了几种基于光子贴图0 h o t o nm 印p i n g ) 的算法【1 6 】用于加速 光线在头发中的多次散射计算。虽然这些算法比传统的光路跟踪( p a t ht r a c i n g ) 算法 要快,但是仍然需要数小时的时间才能绘制出一帧,而且还需要大量的内存来保 存光子贴匿 ( p h o t o nm a p ) 。 另外,在头发的实时绘制算法中,多次散射的计算被过度的简化,完全忽略 了头发横截面的几何因素。这直接导致了头发绘制算法不能利用基于物理模型的 计算方法,使得绘制效果极不真实。另外这些算法要需要调整大量的参数来达到 可接受的效果,导致这些算法受到了质疑。 6 呦z i n k e 等人在2 0 0 8 年发表论文,提出了双重散射( d u a ls c a t t e r i n g ) l 拘概念 【1 1 。它将光线在头发中的多次散射分成两部分来计算:全局多次散射( g l o b a l m u l t i p l es c a t t e r i n g ) 和局部多次散射( 1 0 c a lm u l t i p l es c a t t e r i n g ) 。全局多次散射足计算

温馨提示

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

评论

0/150

提交评论