APP下载

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

2016-02-26杨华民赵建平陈纯毅

中国光学 2016年1期

李 华,杨华民,赵建平,陈纯毅

(长春理工大学 计算机科学技术学院,吉林 长春 130022)



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

李华,杨华民,赵建平*,陈纯毅

(长春理工大学 计算机科学技术学院,吉林 长春 130022)

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

关键词:阴影图;硬阴影;混合分辨率;反走样

Hybrid-resolution shadow mapping design and hard

1引言

随着特效电影、游戏产业的飞速发展,虚拟现实技术不断成熟,越来越多的工业应用、科学研究离不开虚拟场景的绘制。基于现代图形渲染管线的研究和应用已经成为重要产业。其中,阴影的绘制是提高场景的真实效果和视觉体验的关键。阴影图是计算实时阴影的主要方法之一,在电影虚拟现实场景创建中被广泛使用。阴影图算法利用屏幕空间的双渲染通道,通过深度测试绘制阴影,具有场景无关性和灵活性的特点,在目前的硬件渲染管线中被广泛支持。但由于其分辨率有限以及透视投影的误差等原因,阴影图算法易产生走样,尤其在阴影边界区域。因此,如何减少阴影走样一直是阴影图算法的主要研究内容。

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

2混合多分辨率阴影图算法

2.1 建立阴影图

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

2.2 并行线性扫描算法

对于一个场景,场景中每一个“表面”一般是平滑连续过渡的,但在物体边缘或者当前景和背景相离较远时,就会出现一个深度值“断层”。算法首先通过并行线性扫描对高分辨率阴影图计算其深度均值差,即包含扫描点在内的4个相邻纹素的深度值均值之差。设4个相邻纹素的深度分别为D1,D2,D3,D4则深度均值差表示为:

(1)

式中,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 高分辨率阴影图的自底向上合并Fig.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

Algorithm1Line-sweepshadowmapposisthecoordinateofthefirststepintheshadowmapandstisavectorforonestepalongthescanline.While(steps--){float3sampleTexel(pos);forall(mapstexels,s∈input)doD1=DepthAtPoint(s.Pos.TopLeft())D2=DepthAtPoint(s.Pos.ToptRight())D3=DepthAtPoint(s.Pos.BottomLeft())D4=DepthAtPoint(s.Pos.BottomRight())If(MeanDifference(D1,D2,D3,D4)≤ε0)then{ParentPoint=MergeAverage(D1,D2,D3,D4)If(s.position)Output.Add(s.ParentPoint());StorenormalandIDtonewshadowmap}elseoutput.Add(s)} pos+=st; }

2.3 阴影图索引及存储

多分辨率阴影图的存储及索引是实现混合分辨率阴影图的关键。标准阴影图以文本方式存储。本算法需设计不同的RGBA缓存存储格式。在本实验中的RGBA缓存为128位,该图形硬件渲染管线在一个RGBA缓存中只允许存储4位全精度浮点类型或8位半精度浮点类型。因此,本文设置将线程纹理坐标及深度值存储在R和G通道中,索引标志位,以及索引信息存储在B通道中。Alpha 通道的高16位存储深度值depth,Alpha 通道的低16位预留存储法向量normal (用于进一步的间接光照计算)。如图2所示。

图2 RGBA缓存的128位存储格式Fig.2 Storage of 128 bits RGBA-buffer

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

struct shadowmap

{ int textureID;

struct shadowmap *next;

}shadowmap

图3 混合分辨率阴影图索引示意Fig.3 Index of hybrid-resolution shadow mapping

2.4 深度测试

算法2

Algorithm2ShadowTest forEachviewsample Projecttolightspaceintersectwithtexeli readfromHRSM iftexeliisindexedtosubtexel,searchindexuntilend thenReaddp~inHRSM ifdp≤dp~thenreturntrue; elsereturnfalse;} elseReaddp~inHRSM ifdp≤dp~thenreturntrue; elsereturnfalse;}

3效果分析

图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 048Fig.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

本算法实验环境为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%,即初始分辨率越高,本算法的优势越明显。原因是自底向上的合并分辨率,极大地降低了阴影内部及背景的分辨率,保留了阴影边缘的高分辨率,这种方法对不同场景的适应性较强,除了树叶发丝等特殊渲染目标。

表1 SM与HRSM下Dragon的计算

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

图5为2 048×2 048分辨率下的细阴影绘制及反走样效果,其中,(a)、(c)为标准阴影图,分辨率均为2 048×2 048;(b)、(d)为本文算法,分辨率为4 096×4 096降至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 024Fig.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的绘制效果Fig.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

模型顶点多边形标准阴影图(SM)混合分辨率阴影图(HRSM)1024×10242048×20481024×10242048×2048Dragon1526433240000032.634.929.530.8Bunny872661167198423.528.220.627.3Ballmodel1341842688009.812.98.511.2Spheres1200120005.37.25.06.3

4结论

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

参考文献:

[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,etal.. Edge anti-aliasing algorithm of triangle rasterization based on Wu algorithm[J].ChineseJ.LiquidCrystalsandDisplays,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].ChineseJ.LiquidCrystalsandDisplays,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].ChineseJ.LiquidCrystalsandDisplays,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,etal.. 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,etal.. Improved sampling algorithm based on reflective shadow maps and efficiency analysis of heterogeneous CPU-GPU[J].J.ChangchunUniversityofScienceandTechnology(Natural Science Edition),2015,38(3):102-106.(in Chinese)

[13]高文,朱明,贺柏根,等.目标跟踪技术综述[J].中国光学,2014(3):365-375.

GAO W,ZHU M,HE B G,etal.. Target tracking technology[J].ChineseOptics,2014(3):365-375.(in Chinese)

李华(1977—),女,黑龙江人,博士研究生,副教授,2003年于长春理工大学获得硕士学位,主要从事虚拟现实技术及高性能计算方面的研究。E-mail: lihua@cust.edu.cn

赵建平(1964—),男,吉林榆树人,博士,教授,博士生导师,主要从事数字图像处理技术方面的研究。E-mail:zhaojpin@aliyun.com

Supported by National High-tech R&D Program of China(No.2013AAXXXX042)

shadows anti-aliasing in special effects movies

LI Hua, YANG Hua-min, ZHAO Jian-ping*, CHEN Chun-yi

(SchoolofComputerScienceandTechnology,ChangchunUniversityof

ScienceandTechnology,Changchun130022,China)

*Correspondingauthor,E-mail:zhaojpin@aliyun.com

Abstract:In order to reduce the aliasing artifact due to the finite resolution of shadow mapping in real-time rendering,we propose a hybrid-resolution shadow map based on a parallel line-sweep algorithm. First, our method generates a high-resolution depth map from light′s view, and analysizes the mean difference of depth using parallel line-sweep algorithm with threads and kernels. Then this method merges the texels from bottom to top to establish indexes for the texels and discusses the storage methods. At rendering pass, our method renders shadows in real time using the hybrid-resolution shadow map for occluder detection. Experimental results indicate that our algorithm improves the resolution of boundaries′ area over 20% compared with standard shadow mapping and reduces the time consumption about 9%-18% running by Dragon model. Verified by practical application, the hybrid-resolution shadow mapping is an effective real-time shadow rendering algorithm, which can effectively reduce the aliasing artifact.

Key words:shadow map;hard shadow;hybrid-resolution;anti-aliasing

文章编号2095-1531(2016)01-0097-09

基金项目:国家高技术研究发展计划(863计划)资助项目(No.2013AAXXXX042)

收稿日期:2015-09-11;

修订日期:2015-11-13

作者简介:

中图分类号:TP311.1; TP391.9

文献标识码:A

doi:10.3788/CO.20160901.0089