留言板

尊敬的读者、作者、审稿人, 关于本刊的投稿、审稿、编辑和出版的任何问题, 您可以本页添加留言。我们将尽快给您答复。谢谢您的支持!

姓名
邮箱
手机号码
标题
留言内容
验证码

特效电影工程中混合分辨率阴影图设计与硬阴影反走样

李华 杨华民 赵建平 陈纯毅

李华, 杨华民, 赵建平, 陈纯毅. 特效电影工程中混合分辨率阴影图设计与硬阴影反走样[J]. 中国光学, 2016, 9(1): 89-96. doi: 10.3788/CO.20160901.0089
引用本文: 李华, 杨华民, 赵建平, 陈纯毅. 特效电影工程中混合分辨率阴影图设计与硬阴影反走样[J]. 中国光学, 2016, 9(1): 89-96. doi: 10.3788/CO.20160901.0089
LI Hua, YANG Hua-min, ZHAO Jian-ping, CHEN Chun-yi. Hybrid-resolution shadow mapping design and hard shadows anti-aliasing in special effects movies[J]. Chinese Optics, 2016, 9(1): 89-96. doi: 10.3788/CO.20160901.0089
Citation: LI Hua, YANG Hua-min, ZHAO Jian-ping, CHEN Chun-yi. Hybrid-resolution shadow mapping design and hard shadows anti-aliasing in special effects movies[J]. Chinese Optics, 2016, 9(1): 89-96. doi: 10.3788/CO.20160901.0089

特效电影工程中混合分辨率阴影图设计与硬阴影反走样

doi: 10.3788/CO.20160901.0089
基金项目: 吉林省科技发展计划资助项目(No.20140204009GX),长春市重大科技攻关计划资助项目(No.14KG008)
详细信息
    通讯作者: 李华(1977-),女,黑龙江人,博士研究生,副教授,2003年于长春理工大学获得硕士学位,主要从事虚拟现实技术及高性能计算方面的研究。E-mail:lihua@cust.edu.cn赵建平(1964-),男,吉林榆树人,博士,教授,博士生导师,主要从事数字图像处理技术方面的研究。E-mail:zhaojpin@aliyun.com
  • 中图分类号: TP311.1;TP391.9

Hybrid-resolution shadow mapping design and hard shadows anti-aliasing in special effects movies

  • 摘要: 在实时的虚拟场景渲染中,为减少阴影图算法由分辨率不足导致的阴影走样,提出了利用并行线性扫描的混合分辨率阴影图算法。首先,从光源视角生成高分辨率阴影图,利用并行线性扫描算法对深度均值差进行计算和分析,自底向上的合并纹素,建立纹素之间的索引关系并讨论混合分辨率阴影图的存储。在渲染阶段,利用混合分辨率阴影图进行深度测试,绘制实时的反走样阴影。实验表明,与标准阴影图相比,混合分辨率阴影图能提高20%以上的重要区域分辨率,明显改善阴影边界锯齿走样,使Dragon等模型的计算时间减少9%~18%。经实际应用验证,混合分辨率阴影图是一种有效的实时阴影绘制算法,可有效减少阴影图算法的走样。
  • 图  1  高分辨率阴影图的自底向上合并

    Figure  1.  Bottom-up merges of high-resolution shadow map

    图  2  RGBA缓存的128位存储格式

    Figure  2.  Storage of 128 bits RGBA-buffer

    图  3  混合分辨率阴影图索引示意

    Figure  3.  Index of hybrid-resolution shadow mapping

    图  4  标准阴影图算法(左列)与混合分辨率阴影图算法(右列) 的效果对比,阴影图分辨率分别为(a)1 024×1 024,(b)2048×2 048 降至1 024×1 024,(c)512×512,(d)1 024×1 024 降至512×512,(e)2 048×2 048,(f)4 096×4 096 降至2048×2 048

    Figure  4.  Contrast of SM(left column) and HRSM(right column),with the resolution of shadow maps are (a)1 024×1 024,(b)2 048×2 048 down to 1 024×1 024,(c)512×512,(d)1 024×1 024 down to 512×512,(e)2 048×2 048,(f)4 096×4 096 down to 2 048×2 048

    图  5  细线条目标反走样绘制,图(a)和(c)为标准阴影图算法,分辨率为2 048×2 048;图(b)和(d)为混合分辨率阴影图算法,分辨率由4 096×4 096降至2 048×2 048

    Figure  5.  Anti-aliasing with tiny objects,(a) and (c) are SM with resolution of 2048×2 048,(b) and (d) are HRSM with resolution of 4 096×4 096 down to 2 048×2 048

    图  6  混合分辨率阴影图算法自阴影效果,分辨率由2 048×2 048 降至1 024×1 024

    Figure  6.  Self-shadow of HRSM with resolution of 2 048×2 048 down to 1 024×1 024

    图  7  不同初始分辨率的混合阴影图算法绘制效果对比,(a)和(d)为标准阴影图512×512绘制效果; (b)、(c)和(e)为混合分辨率阴影图的分辨率分别由2 048×2 048降至512×512,4 096×4 096降至512×512 以及1 024×1 024降至512×512的绘制效果

    Figure  7.  Contrast of HRSM with different initial resolution,(a) and (d) are standard shadow map with resolution of 512×512; (b),(c) and (e) are HRSM with resolution of 2 048×2 048 to 512×512,4 096×4 096 to 512×512 and 1 024×1 024 to 512×512

      算法1

    Algorithm 1 Line-sweep shadow map
    pos is the coordinate of the first step in the shadow map and st is
    a vector for one step along the scanline.
    While ( steps--)
    {
    float3 sampleTexel(pos) ;
    for all (mapstexel s,s∈input) do
    D1=Depth At Point(s. Pos.Top Left())
    D2=Depth At Point(s. Pos.Topt Right())
    D3=Depth At Point(s. Pos.Bottom Left())
    D4=Depth At Point(s. Pos.Bottom Right ())
    If (Mean Difference(D1,D2,D3,D4)≤ε0)then
    {Parent Point=Merge Average(D1,D2,D3,D4)
    If (s.position)
    Output.Add(s.Parent Point());
    Store normal and ID to new shadow map} else output.Add(s)}
    pos+=st;
    }
    下载: 导出CSV

      算法2

    Algorithm 2 ShadowTest
    for Each view sample
    Project to light space intersect with texeli
    read from HRSM
    if texeli is indexed to subtexel,search index until end
    then Read dp~ in HRSM
    if dp≤dp~ then return true;
    else return false;}
    else Read dp~ in HRSM
    if dp≤dp~ then return true;
    else return false;}
    下载: 导出CSV

    表  1  SM与HRSM下Dragon的计算时间消耗情况(单位:ms)

    Table  1.   SM and HRSM time consuming of Dragon(Unit:ms)

    阴影图分辨率SM(T1)HRSM(T2)(T2-T1)/T1/%
    1 024×1 02432.629.59
    2 048×2 04834.930.811
    4 096×4 09662.951.518
    下载: 导出CSV

    表  2  不同测试模型计算时间 (单位:ms)

    Table  2.   Different model time consuming(Unit:ms)

    模型顶点多边形
    标准阴影图(SM)混合分辨率阴影图(HRSM)
    1 024×1 0242 048×2 0481 024×1 0242 048×2 048
    Dragon1 526 4332 400 00032.634.929.530.8
    Bunny872 6611 671 98423.528.220.627.3
    Ball model134 184268 8009.812.98.511.2
    Spheres1 20012 0005.37.25.06.3
    下载: 导出CSV
  • [1]

    [1] WILLIAMS L.Casting curved shadows on curved surfaces[C].ACM SIGGRAPH Computer Graphics,Atlanta,Georgia USA,23-25 August,1978,12(3):270-274.
    [2] 吴连慧,周建江,夏伟杰,等.基于Wu反走样的三角形光栅化边缘反走样算法[J].液晶与显示,2015,30(1):163-169.WU L H,ZHOU J J,XIA W J,et al..Edge anti-aliasing algorithm of triangle rasterization based on Wu algorithm[J].Chinese J.Liquid Crystals and Displays,2015,30(1):163-169.(in Chinese)
    [3] 李铂,周建江,夏伟杰.小角度直线反走样的改进Wu算法[J].液晶与显示,2014,29(4):605-610.LI B,ZHOU J J,XIA W J.Modified anti-aliasing algorithm for small-angle line based on Wu algorithm[J].Chinese J.Liquid Crystals and Displays,2014,29(4):605-610.(in Chinese)
    [4] 姚军财.基于人眼对比度敏感视觉特性的图像质量评价方法[J].液晶与显示,2011,26(3):390-396.YAO J C.Image quality assesment method based on contrast sensitivity characteristics of human vision systym[J].Chinese J.Liquid Crystals and Displays,2011,26(3):390-396.(in Chinese)
    [5] REEVES W T,SALESIN D H,COOK R L.1987.Rendering antialiased shadows with depth maps[C].In Proceedings of the 14th annual conference on Computer graphics and interactive techniques.ACM,SIGGRAPH.Anaheim,California USA,27-31 July,1987:283-291.
    [6] DONNELLY W,LAURITZEN A.Variance shadow maps[C].In Proceedings of the symposium on Interactive 3D graphics and games,ACM,Boston,MA,USA,30 July-3 August,2006:161-165.
    [7] ANNEN T,MERTENS T,BEKAERT P,et al..Convolution shadow maps[C].Eurographics Symposium on Rendering,Eurographics,Grenoble,France,25-27 June,2007:51-60.
    [8] WIMMER M,SCHERZER D,PURGATHOFER W.Light space perspective shadow maps[C].In Proceedings of the Fifteenth Eurographics conference on Rendering Techniques,EGSR,Norköping,Sweden,21-23 June,2004:143-151.
    [9] DAI Q,YANG B,FENG J.Reconstructable geometry shadow maps[C].In Proceedings of the 2008 symposium on Interactive 3D graphics and games,ACM,Los Angeles,California,USA,11-15 August,2008:1-4.
    [10] PASCAL L,JEANEUDES M,GAEL S.Sub-Pixel Shadow Mapping[C].In proceeding of the 18th meeting of the ACM SIGGRAPH Symposium on Interactive 3D Graphics and Games.Anaheim,California,USA,10-14 August,2014:103-110.
    [11] CHAN E,DURAND F.An efficient hybrid shadow rendering algorithm[C].In Proceedings of the Fifteenth Eurographics conference on Rendering Techniques,EGSR,Norköping,Sweden,21-23 June,2004:185-195.
    [12] 李华,杨华民,赵建平,等.反射阴影图的采样改进及异构CPU-GPU效率分析[J].长春理工大学学报(自然科学版),2015,38(3):102-106.LI H,YANG H M,ZHAO J P,et al..Improved sampling algorithm based on reflective shadow maps and efficiency analysis of heterogeneous CPU-GPU[J].J.Changchun University of Science and Technology(Natural Science Edition),2015,38(3):102-106.(in Chinese)
    [13] 高文,朱明,贺柏根,等.目标跟踪技术综述[J].中国光学,2014(3):365-375.GAO W,ZHU M,HE B G,et al..Target tracking technology[J].Chinese Optics,2014(3):365-375.(in Chinese)

  • [1] 杜瑞建, 葛宝臻, 陈雷.  多视高分辨率纹理图像与双目三维点云的映射方法 . 中国光学, 2020, 13(5): 1055-1064. doi: 10.37188/CO.2020-0034
    [2] 张天一, 朱永田, 侯永辉, 张凯, 胡中文, 王磊, 陈忆, 姜海娇, 汤振, 许明明, 姜明达.  LAMOST高分辨率光谱仪研制 . 中国光学, 2019, 12(1): 148-155. doi: 10.3788/CO.20191201.0148
    [3] 谭翠媚, 许廷发, 马旭, 张宇寒, 王茜, 闫歌.  图-谱结合的压缩感知高光谱视频图像复原 . 中国光学, 2018, 11(6): 949-957. doi: 10.3788/CO.20181106.0949
    [4] 刘志贺, 吴长锋.  超分辨率成像荧光探针材料应用进展 . 中国光学, 2018, 11(3): 344-362. doi: 10.3788/CO.20181103.0344
    [5] 齐冰洁, 刘金国, 张博研, 左洋, 吕世良.  高分辨率遥感图像SIFT和SURF算法匹配性能研究 . 中国光学, 2017, 10(3): 331-339. doi: 10.3788/CO.20171003.0331
    [6] 张绍阳, 侯旭阳, 崔华, 高小梅.  利用激光散斑获取深度图 . 中国光学, 2016, 9(6): 633-641. doi: 10.3788/CO.20160906.0633
    [7] 许廷发, 罗璇, 苏畅, 卞紫阳.  多帧距离选通图像点扩散函数估计的超分辨率重建 . 中国光学, 2016, 9(2): 226-233. doi: 10.3788/CO.20160902.0226
    [8] 何阳, 黄玮, 王新华, 郝建坤.  稀疏阈值的超分辨率图像重建 . 中国光学, 2016, 9(5): 532-539. doi: 10.3788/CO.20160905.0532
    [9] 吕世良, 刘金国, 王晓茜.  对地观测高分辨率TDICCD相机调焦控制系统设计 . 中国光学, 2015, 8(6): 1013-1019. doi: 10.3788/CO.20150806.1013
    [10] 史东承, 倪康.  基于YCbCr颜色空间背景建模与手势阴影消除 . 中国光学, 2015, 8(4): 589-595. doi: 10.3788/CO.20150804.0589
    [11] 王永红, 李骏睿, 孙建飞, 刘佩, 杨连祥.  散斑干涉相位条纹图的频域滤波处理 . 中国光学, 2014, 7(3): 389-395. doi: 10.3788/CO.20140703.0389
    [12] 宋源, 卢启鹏, 彭忠琦, 龚学鹏.  前置平面镜热负载对变包含角平面光栅单色器分辨率的影响 . 中国光学, 2014, 7(1): 105-111. doi: 10.3788/CO.20140701.0105
    [13] 蔡浩原.  高分辨率表面等离子体显微镜综述 . 中国光学, 2014, 7(5): 691-700. doi: 10.3788/CO.20140705.0691
    [14] 卫沛锋, 刘欣悦, 林旭东, 董磊, 王鸣浩.  自适应光学系统校正后实际分辨率评价指标 . 中国光学, 2014, 7(4): 672-678. doi: 10.3788/CO.20140704.0672
    [15] 陈健, 高慧斌, 王伟国, 张振东, 路明.  超分辨率复原方法相关原理研究 . 中国光学, 2014, 7(6): 897-910. doi: 10.3788/CO.20140706.0897
    [16] 邵明东, 郭疆, 孙继明.  离轴三反测绘相机调焦机构的设计 . 中国光学, 2012, 5(4): 373-379. doi: 10.3788/CO.20120504.0373
    [17] 徐新行, 王兵, 乔健, 刘长顺, 时魁.  快反系统中平面反射镜的轻量化设计 . 中国光学, 2012, 5(1): 35-41. doi: 10.3788/CO.20120501.0035
    [18] 刘倩倩, 郑玉权.  超高分辨率光谱定标技术发展概况 . 中国光学, 2012, 5(6): 566-577. doi: 10.3788/CO.20120506.0566
    [19] 汪逸群, 颜昌翔, 苗春安.  星载高分辨率超光谱成像仪分光方式的选择 . 中国光学, 2009, 2(4): 304-308.
    [20] 任百川, 钟 兴, 金 光.  采用负折射率材料提高空间望远镜分辨率的理论研究 . 中国光学, 2009, 2(3): 184-189.
  • 加载中
图(7) / 表 (4)
计量
  • 文章访问数:  430
  • HTML全文浏览量:  60
  • PDF下载量:  779
  • 被引次数: 0
出版历程
  • 收稿日期:  2015-09-11
  • 录用日期:  2015-11-13
  • 刊出日期:  2016-01-25

特效电影工程中混合分辨率阴影图设计与硬阴影反走样

doi: 10.3788/CO.20160901.0089
    基金项目:  吉林省科技发展计划资助项目(No.20140204009GX),长春市重大科技攻关计划资助项目(No.14KG008)
    通讯作者: 李华(1977-),女,黑龙江人,博士研究生,副教授,2003年于长春理工大学获得硕士学位,主要从事虚拟现实技术及高性能计算方面的研究。E-mail:lihua@cust.edu.cn赵建平(1964-),男,吉林榆树人,博士,教授,博士生导师,主要从事数字图像处理技术方面的研究。E-mail:zhaojpin@aliyun.com
  • 中图分类号: TP311.1;TP391.9

摘要: 在实时的虚拟场景渲染中,为减少阴影图算法由分辨率不足导致的阴影走样,提出了利用并行线性扫描的混合分辨率阴影图算法。首先,从光源视角生成高分辨率阴影图,利用并行线性扫描算法对深度均值差进行计算和分析,自底向上的合并纹素,建立纹素之间的索引关系并讨论混合分辨率阴影图的存储。在渲染阶段,利用混合分辨率阴影图进行深度测试,绘制实时的反走样阴影。实验表明,与标准阴影图相比,混合分辨率阴影图能提高20%以上的重要区域分辨率,明显改善阴影边界锯齿走样,使Dragon等模型的计算时间减少9%~18%。经实际应用验证,混合分辨率阴影图是一种有效的实时阴影绘制算法,可有效减少阴影图算法的走样。

English Abstract

李华, 杨华民, 赵建平, 陈纯毅. 特效电影工程中混合分辨率阴影图设计与硬阴影反走样[J]. 中国光学, 2016, 9(1): 89-96. doi: 10.3788/CO.20160901.0089
引用本文: 李华, 杨华民, 赵建平, 陈纯毅. 特效电影工程中混合分辨率阴影图设计与硬阴影反走样[J]. 中国光学, 2016, 9(1): 89-96. doi: 10.3788/CO.20160901.0089
LI Hua, YANG Hua-min, ZHAO Jian-ping, CHEN Chun-yi. Hybrid-resolution shadow mapping design and hard shadows anti-aliasing in special effects movies[J]. Chinese Optics, 2016, 9(1): 89-96. doi: 10.3788/CO.20160901.0089
Citation: LI Hua, YANG Hua-min, ZHAO Jian-ping, CHEN Chun-yi. Hybrid-resolution shadow mapping design and hard shadows anti-aliasing in special effects movies[J]. Chinese Optics, 2016, 9(1): 89-96. doi: 10.3788/CO.20160901.0089
    • 随着特效电影、游戏产业的飞速发展,虚拟现实技术不断成熟,越来越多的工业应用、科学研究离不开虚拟场景的绘制。基于现代图形渲染管线的研究和应用已经成为重要产业。其中,阴影的绘制是提高场景的真实效果和视觉体验的关键。阴影图是计算实时阴影的主要方法之一,在电影虚拟现实场景创建中被广泛使用。阴影图算法利用屏幕空间的双渲染通道,通过深度测试绘制阴影,具有场景无关性和灵活性的特点,在目前的硬件渲染管线中被广泛支持。但由于其分辨率有限以及透视投影的误差等原因,阴影图算法易产生走样,尤其在阴影边界区域。因此,如何减少阴影走样一直是阴影图算法的主要研究内容。

      标准阴影图(Shadow mapping,SM)[1]算法最初由LanceWilliams在1978年提出。该算法首先从光源视角生成场景深度图,以纹理的方式存储在z-buffer中,所有深度图中的纹素都是场景中的可见点。然后从相机视角渲染场景,将所有采样点的坐标投影到光照空间,读取对应坐标的深度图中的深度值,与采样点的深度值进行比较来确定采样点是否处于阴影中。

      为解决走样问题,人们已开展了大量的研究工作并提出了相关的算法。例如,一种基于Wu直线反走样算法减少锯齿现象[2]和小角度直线反走样的改进Wu算法[3]从显示技术角度提出了显示反走样方法; 一种图像质量评价方法[4]对人类视觉对走样的观察理论提供了分析依据。从图形绘制角度看,基于滤波的技术,如百分比近似滤波方法(PCF)[5],方阴影图(VSM)[6]和卷积阴影图(CSM)[7]等,这些方法通过深度值滤波,滑柔阴影边缘。基于透视投影变化的相关技术,如光照空间的透视阴影贴图(LSPSM)[8],此类方法都在透视投影后的空间生成阴影图,使得近观察者的物体有更高的分辨率,减少走样。基于几何阴影图的技术,如可重建几何阴影图(RGSM)[9],提出存储可见三角形片元的顶点,而不是可见点。在渲染阶段,通过几何片元进行深度重建的方式,完成阴影测试。该方法能与采样点的方法相比,能更真实地反应场景深度。除此之外,还有几何阴影图的改进方法[10]以及阴影图和阴影体算法相结合的技术。如,混合阴影渲染算法(HSRA)[11]提出运用阴影体技术识别物体投影边界,再利用阴影图技术生成阴影,同时对于边界部分采用高分辨率反走样。另外,反射阴影图的采样改进算法[12]对并行渲染的效率进行了分析,提出有效的并行渲染结构。

      本文提出一种混合分辨率阴影图(Hybrid-resolution shadow mapping,HRSM)的生成算法,设置深度值均值差识别视觉敏感区,如深度值变化大的阴影边界。设计并实现阴影图的并行线性扫描算法,对高分辨率阴影图逐级“合并”,对非敏感区域降低分辨率,形成混合分辨率的阴影图,并设置存储和索引方法。本方法在实际应用中能获得高画质的阴影绘制影效果,节约计算成本。

    • 阴影图算法第一步是从光源视角生成可见场景点的深度值,在z-buffer中存储为纹理。算法利用GLSL语言,在顶点着色器中计算齐次坐标,在片段着色器中将最小深度值存储到16位的深度纹理。建立高分辨率阴影图(初始为2 048×2 048或4 096×4 096)。

    • 对于一个场景,场景中每一个“表面”一般是平滑连续过渡的,但在物体边缘或者当前景和背景相离较远时,就会出现一个深度值“断层”。算法首先通过并行线性扫描对高分辨率阴影图计算其深度均值差,即包含扫描点在内的4个相邻纹素的深度值均值之差。设4个相邻纹素的深度分别为D1,D2,D3,D4则深度均值差表示为: 式中,Di表示相邻4个纹素深度,Dn表示当前扫描点的深度,其中n∈{1,2,3,4}。ε0表示均值差阈值(本算法中ε0=0.25),如果对相邻4个采样点均值差均≤ε0,则进行合并取均值的操作,否则保留原分辨率不变。这种自底向上的合并方式可以有效降低非阴影边界区域的分辨率,提高深度测试速度,并保留了高精度分辨率的准确性。如图 1所示,并行线性扫描算法对相邻4个纹素合并成一个纹素,对分辨率为N2的阴影图,经过2次扫描,即可将分辨率将为原来的N2/16。即,对于初始分辨率2 048×2 048降至512×512。

      图  1  高分辨率阴影图的自底向上合并

      Figure 1.  Bottom-up merges of high-resolution shadow map

      并行线性扫描算法(伪代码见算法1)设计每 条线程跨越2个纹素宽度,每个计算周期扫描1个纹素长度。对合并的纹素建立索引(2.3节),最终将扫描结果存入输出缓冲区中生成混合分辨 率阴影图,主要步骤如下:

      (a)设置N/2个线程扫描分辨率为N×N的阴影图;

      (b)计算均值差,对均值差均小于阈值(0.25)的相邻4个纹素合并,并以均值作为新纹素的深度值;

      (c)识别D1,D2,D3,D4位置坐标创建索引,存储子阴影图信息;

      (d)重复(a)~(c)创建二级索引达到最低分辨率。

      通常情况下,通过二级或索引关系即可实现最低分辨率理想的混合分辨率阴影图。如初始分辨率为2 048×2 048,经过两次自底向上的合并,在场景平滑连续的表面形成分辨率为512×512的阴影图纹素,在物体轮廓边缘处保留2 048×2 048高分辨率以及1 024×1 024的中等分辨率。

      表   算法1

      Algorithm 1 Line-sweep shadow map
      pos is the coordinate of the first step in the shadow map and st is
      a vector for one step along the scanline.
      While ( steps--)
      {
      float3 sampleTexel(pos) ;
      for all (mapstexel s,s∈input) do
      D1=Depth At Point(s. Pos.Top Left())
      D2=Depth At Point(s. Pos.Topt Right())
      D3=Depth At Point(s. Pos.Bottom Left())
      D4=Depth At Point(s. Pos.Bottom Right ())
      If (Mean Difference(D1,D2,D3,D4)≤ε0)then
      {Parent Point=Merge Average(D1,D2,D3,D4)
      If (s.position)
      Output.Add(s.Parent Point());
      Store normal and ID to new shadow map} else output.Add(s)}
      pos+=st;
      }
    • 多分辨率阴影图的存储及索引是实现混合分辨率阴影图的关键。标准阴影图以文本方式存储。本算法需设计不同的RGBA缓存存储格式。在本实验中的RGBA缓存为128位,该图形硬件渲染管线在一个RGBA缓存中只允许存储4位全精度浮点类型或8位半精度浮点类型。因此,本文设置将线程纹理坐标及深度值存储在R和G通道中,索引标志位,以及索引信息存储在B通道中。Alpha 通道的高16位存储深度值depth,Alpha 通道的低16位预留存储法向量normal (用于进一步的间接光照计算)。如图 2所示。

      图  2  RGBA缓存的128位存储格式

      Figure 2.  Storage of 128 bits RGBA-buffer

      另外,对于索引信息,需要额外建立一张索引 链表,其结构定义如下,纹素索引示意如图 3所示。

      图  3  混合分辨率阴影图索引示意

      Figure 3.  Index of hybrid-resolution shadow mapping

      struct shadowmap

      { int textureID;

      struct shadowmap *next;

      }shadowmap

    • 在渲染阶段,首先把屏幕空间每个采样点通过坐标变换投影到光照空间,采样混合多分辨率阴影图中对应位置的深度值,与屏幕空间采样点的深度比较。设屏幕空间采样点p,光源到p的距离为dp(深度),阴影图中对应p点坐标的最小深度为dp~,当dp≤dp~时,光源到p之间没有任何遮挡,p点被照亮,反之p点处于阴影中,算法伪代码如下:

      表   算法2

      Algorithm 2 ShadowTest
      for Each view sample
      Project to light space intersect with texeli
      read from HRSM
      if texeli is indexed to subtexel,search index until end
      then Read dp~ in HRSM
      if dp≤dp~ then return true;
      else return false;}
      else Read dp~ in HRSM
      if dp≤dp~ then return true;
      else return false;}
    • 本算法实验环境为Intel(R)Xeon(R) CPU E5620@ 双核 2.40 GHz ,NVIDIA Quadro K5000. 利用GLSL语言及CUDA并行线程实现。对于分辨率为标准512×512及以下的混合分辨率阴影图来讲,混合分辨率阴影图效果由于分辨率过低不建议采用;高于1 024×1 024及以上情况,运用混合分辨率阴影图,相同时间消耗可以获得更高质量的阴影效果,同样,在相同渲染质量的前提下,混合分辨率阴影图的计算时间明显缩短。结合实际虚拟现实工程的应用以及基于CPU-GPU渲染平台的运算效率研究[8],本算法在生成特效立体电影的样片制作中进行运用和测试。图 4所示为标准阴影图SM与本文算法HRSM的绘制效果对比(测试模型来自Stanford Dragon)。图中,标准阴影图分辨率分别为(a)1 024×1 024,(b)512×512和((e)2 048×2 048;混合分辨率阴影图分别为(b)2 048×2 048 降至1 024×1 024,(d)1 024×1 024 降至512×512和(f)4 096×4 096 降至2 048×2 048,结果显示了本文算法能明显减少阴影边界的锯齿走样。表 1对比了Dragon模型在两种方法起始分辨率相同情况下的绘制时间,随着阴影图分辨率的增加,计算时间约从9%减少到18%,即初始分辨率越高,本算法的优势越明显。原因是自底向上的合并分辨率,极大地降低了阴影内部及背景的分辨率,保留了阴影边缘的高分辨率,这种方法对不同场景的适应性较强,除了树叶发丝等特殊渲染目标。

      图  4  标准阴影图算法(左列)与混合分辨率阴影图算法(右列) 的效果对比,阴影图分辨率分别为(a)1 024×1 024,(b)2048×2 048 降至1 024×1 024,(c)512×512,(d)1 024×1 024 降至512×512,(e)2 048×2 048,(f)4 096×4 096 降至2048×2 048

      Figure 4.  Contrast of SM(left column) and HRSM(right column),with the resolution of shadow maps are (a)1 024×1 024,(b)2 048×2 048 down to 1 024×1 024,(c)512×512,(d)1 024×1 024 down to 512×512,(e)2 048×2 048,(f)4 096×4 096 down to 2 048×2 048

      表 1  SM与HRSM下Dragon的计算时间消耗情况(单位:ms)

      Table 1.  SM and HRSM time consuming of Dragon(Unit:ms)

      阴影图分辨率SM(T1)HRSM(T2)(T2-T1)/T1/%
      1 024×1 02432.629.59
      2 048×2 04834.930.811
      4 096×4 09662.951.518

      图 5为2 048×2 048分辨率下的细阴影绘制及反走样效果,其中,(a)、(c)为标准阴影图,分辨率均为2 048×2 048;(b)、(d)为本文算法,分辨率为4 096×4 096降至2 048×2 048生成。该测试场景包含中等程度的深度不连续区域,视觉效果良好。

      图  5  细线条目标反走样绘制,图(a)和(c)为标准阴影图算法,分辨率为2 048×2 048;图(b)和(d)为混合分辨率阴影图算法,分辨率由4 096×4 096降至2 048×2 048

      Figure 5.  Anti-aliasing with tiny objects,(a) and (c) are SM with resolution of 2048×2 048,(b) and (d) are HRSM with resolution of 4 096×4 096 down to 2 048×2 048

      图 6为HRSM方法的自阴影绘制效果测试,实验表明该方法能正确计算自阴影及阴影反走样。图 7对比了混合分辨率阴影图由不同初始分辨率降至标准分辨率512×512的绘制效果。其中,(a)和(d)为标准阴影图512×512绘制效果; (b)、(c)和(e)为混合分辨率阴影图,分辨率分别由2 048×2 048降至512×512,4 096×4 096降至512×512 以及1 024×1 024降至512×512的绘制效果。可见混合分辨率算法随着初始分辨率的提高,即使目标分辨率相同,画面质量会随之提高。为了测试模型复杂度对算法的影响,本文分别对Dragon、Bunny、Ball model和Spheres进行了测试,结果显示模型越复杂本算法的计算优势越明显,时间减少量约从5%~12%,如表 2所示。

      图  6  混合分辨率阴影图算法自阴影效果,分辨率由2 048×2 048 降至1 024×1 024

      Figure 6.  Self-shadow of HRSM with resolution of 2 048×2 048 down to 1 024×1 024

      图  7  不同初始分辨率的混合阴影图算法绘制效果对比,(a)和(d)为标准阴影图512×512绘制效果; (b)、(c)和(e)为混合分辨率阴影图的分辨率分别由2 048×2 048降至512×512,4 096×4 096降至512×512 以及1 024×1 024降至512×512的绘制效果

      Figure 7.  Contrast of HRSM with different initial resolution,(a) and (d) are standard shadow map with resolution of 512×512; (b),(c) and (e) are HRSM with resolution of 2 048×2 048 to 512×512,4 096×4 096 to 512×512 and 1 024×1 024 to 512×512

      表 2  不同测试模型计算时间 (单位:ms)

      Table 2.  Different model time consuming(Unit:ms)

      模型顶点多边形
      标准阴影图(SM)混合分辨率阴影图(HRSM)
      1 024×1 0242 048×2 0481 024×1 0242 048×2 048
      Dragon1 526 4332 400 00032.634.929.530.8
      Bunny872 6611 671 98423.528.220.627.3
      Ball model134 184268 8009.812.98.511.2
      Spheres1 20012 0005.37.25.06.3
    • 本文利用并行线性扫描及深度均值差计算的方法,对高分辨率阴影图进行合并、索引存储生成混合分辨率阴影图。经实验验证,与标准阴影图相比,混合分辨率阴影图可提高20%以上的重要区域分辨率,可明显改善阴影边界锯齿走样,使Dragon等模型的计算时间减少9%~18%,因此,混合分辨率阴影图方法是一种有效的阴影图阴影反走样方法。更进一步的工作将对非均匀分布的虚拟点光源进行簇划分,形成虚拟面光源,利用立即辐射度法计算间接光照,同时结合运动物体目标遮挡跟踪[13]和大气、星体运动仿真,实现虚拟太空特种电影的实时动态光照计算。

参考文献 (1)

目录

    /

    返回文章
    返回