时间:2024-05-04
郭巾铭 陈一民 黄 晨
(上海大学计算机工程与科学学院 上海 200444)
基于移动增强现实的实时软阴影绘制算法
郭巾铭陈一民黄晨
(上海大学计算机工程与科学学院上海 200444)
由于移动设备的计算能力和存储空间有限,基于移动终端的光照估计和实时软阴影绘制技术和研究很少,提出一种适用于移动增强现实的实时软阴影绘制算法。根据移动终端光线传感器的数值来计算光源的方向,得到模拟的点光源,在该点光源附近均匀采样得到多个虚拟光源,叠加每个虚拟光源产生的阴影效果,实时绘制出软阴影。实验结果表明,在保证移动终端良好的虚实融合效果的情况下,采用该算法具有良好的实时性,为移动终端软阴影的绘制提供了有效的解决方法。
软阴影光照估计移动增强现实
传统的增强现实研究多集中在PC端,发展较为成熟。随着移动设备的迅速崛起,PC端应用成本高、外设复杂、携带不便等缺点越来越突出,而快速发展的移动设备凭借便携性和不断提高的计算能力成为新一代增强现实应用的研发平台。智能手机中内置的多种传感器为移动增强现实[1]的发展提供了新思路,对移动增强现实技术的发展具有现实意义。在增强现实系统中,为了实现虚与实的无缝对接,提高虚拟物体的真实存在感,不仅需要实时的跟踪和精确的注册[2,3],还需要在虚拟物体上模拟真实场景的光照分布并绘制其阴影,否则用户很容易察觉虚实场景的不一致性,破坏沉浸感。传统的阴影绘制算法[4]主要集中在PC端,常用的有Franklin C. Crow 提出的Shadow Volumes[5]和Lance Williams提出的Shadow Maps[6]以及这些算法的变种,如Depth Shadow Maps[7],Perspective Shadow Maps[8]等。这些算法或因算法复杂度高,或因依赖专业设备,在移动终端都不能直接使用。
针对上述问题,本文提出一种适用于移动增强现实的实时软阴影绘制算法,使用基于标记的NyARToolKit完成虚拟物体的注册,在初始化过程中调整手机的位置,通过读取光线传感器的数值来完成光源方向的计算并渲染虚拟物体的阴影。该算法避免了庞大外围设备和复杂的数学计算,充分利用移动终端传感器的优势来估计场景中光源的方向并进行软阴影的绘制,不仅操作简便,实时性高,而且取得了很好的虚实融合效果。
传统的光照估计方法大致分为三种:一种是基于物理的光照估计,根据图像中的一些特殊信息如阴影、明暗等建立基于物理的表达式从中求解光源的方向或强度;第二种是基于图像求解,在添加虚拟物体的位置放置一个镜面球,通过多张曝光不同的图像合成环境映照来实现;第三种是根据输入图像的明暗信息来求解光照分布。这些方法或需场景先验知识,或依赖外设,或计算复杂,在移动终端都不合适。硬件方面,与PC端相比,计算能力薄弱是移动终端的一大劣势,PC端所用的方法无法直接移植到移动终端。另一方面,移动终端除了具有便携性的优势之外,功能强大又小巧的传感器更是一大亮点,为数据的获取提供了新的选择。实验中用到的光线传感器主要用来检测手机周边的光照强度,读数单位为lux,光线传感器的数据稍作处理即可直接使用。另外,根据摄像头捕获的标记,通过计算可以得到摄像头相对于标记的旋转平移矩阵,由于光线传感器的位置和摄像头基本重叠,可以近似认为该矩阵也是光线传感器相对于标记的旋转平移矩阵。
(1)
2.1阴影介绍
通常的虚拟物体注册到真实场景中会有悬浮感,是因为没有考虑虚拟物体在真实场景的光照情况下应产生的阴影和表面的明暗分布。为实现无缝融合,提高用户的沉浸感,阴影的绘制是必不可少的。
阴影的产生离不开光源,物体表面阴影的形成是因为被其它物体所遮挡,接受光照不均匀造成的。理想情况下的光源有两种,一种是点光源,一种是光源位于无穷远处(即平行光),那么从空间中的任意一点来看,都只会有光线照射的到和照射不到两种极端情况。在现实生活中,点光源是不存在的,存在的是面光源、线光源和体光源。这些光源的照射下,某些位置只有部分光线能照射到,如图1中的A点。理想情况下生成的阴影因为阴影区和非阴影区有着明确的界限,阴影边缘锋利,称之为硬阴影;现实环境中二者没有明确的界限,阴影边缘柔和,称之为软阴影。如图1是阴影的生成效果示意图。
图1 阴影的生成效果示意图
2.2硬阴影的绘制
对于硬阴影来说,所有的点只有在阴影区和不在阴影区的分别,所以以光源位置为起点,向虚拟物体上的每一个点做射线,与地面的交界点组成了阴影所在区域。
图2 阴影绘制示意图
令N = (A, B, C, D),有:
=[k′(P-L)+L]·N
=[k′P+(1-k′)L]·N
(2)
由此解得S的四维向量坐标S=HP,其中P为空间某点的向量坐标,H即为平面阴影投射矩阵,如式(3),从而在H的变换下,图形将被“压扁”地绘制到阴影投射平面上,也就形成了所谓的硬阴影。
(3)
在OpenGL中,使用4×4的空间-平面坐标变换矩阵R将三维坐标映射为屏幕实际显示出来的二维坐标。设S0是点S的屏幕坐标,则S0=RS=RHP=R′P,其中R′=RH,转换后屏幕上就显示出了正确的硬阴影。
2.3软阴影的绘制
软阴影是由面光源或者线光源、体光源生成的,而它们可以等效于无数个点光源组合形成,对软阴影的模拟可以通过采样多个点光源来实现。通过叠加多个点光源产生的阴影来模拟实际光源产生的阴影效果,不仅降低了问题的复杂度,而且可以通过控制点光源的数量来调节速度与质量之间的平衡。
为了有效绘制软阴影,在上文估计的等效光源L(x,y,z)的附近均匀采样出n个虚拟点光源,第i个点光源的位置为L(xi,yi,zi),使用以下函数来确定虚拟点光源的强度,即:
(4)
图3 实时软阴影绘制算法流程
2.4实验效果
(1) 软阴影绘制
实验中使用的NyARToolKit for Android是由日本的Android users group开发的,由ARToolKit衍生而来的可视AR类库,用户可以方便地在Android上开发增强现实应用,体积小巧,具有较快的执行速度。实验在Eclipse平台下完成开发,使用手机SAMSUNG GT-I9082,搭载4.1.2 Android版本。实验开始后晃动手机,理想情况下将手机大范围旋转,获取周围每一个点的光照强度,其中光照强度最大的方向就是当前光源的方向。假定光源位于手机上方一定高度处,就可以得到一个等效的点光源。为了模拟真实场景,在该点光源附近一定范围内均匀采样并绘制阴影,通过调整每个点光源产生的阴影的颜色和透明度,最终实现软阴影的绘制,实验效果如图4所示。
图4 实验效果图
(2) 算法实时性验证
为了带给用户沉浸式虚实交错的体验,实时性在增强现实中显得尤为重要。为了验证本文算法是否能够满足实时性的需要,实验采用绘制虚拟物体和阴影及仅绘制虚拟物体两种情况下每次绘制场景所需的时间长度进行对比。具体方法如下:在程序开始执行后,每一帧画面都要通过OnDrawFrame函数渲染场景并绘制虚拟物体及其阴影,所以选择程序中每次OnDrawFrame函数中绘制部分的执行时间长度作为具体的衡量标准。
图5是其中两次实验中的20帧数据,横坐标表示帧号,纵坐标表示绘制时间,单位为ms。从图中可以看出绘制阴影后阴影绘制的时间略高于仅绘制虚拟物体的时间。图6列出了九次实验中,每次实验OnDrawFrame执行的平均时间的对比,每次实验均选取前1400帧图像统计。横坐标表示实验编号,纵坐标表示平均绘制时间,单位为ms。通过对九次实验的数据统计,仅绘制虚拟物体时OnDrawFrame的执行时间平均约为1.01 ms,绘制阴影后OnDrawFrame的执行时间平均约为1.34 ms。经测算,原程序中大约每秒能绘制27~30帧图像,即每帧图像的绘制时间在33~37 ms之间,阴影的渲染时间只增加了不到10%的时间,所以对程序的实时性没有明显的影响,可以完全满足移动增强现实系统对实时性的要求。
图5 20帧图像平均绘制时间对比
图6 十次实验平均绘制时间对比图
本文提出了一种高效的软阴影绘制算法,该算法充分发挥了移动终端传感器的优势,避免了复杂的计算,提高了系统的实时性。实验表明,本文所提出的算法对移动终端软阴影的绘制有很好的实验效果,虚实融合效果真实自然,并且具有良好的实时性。但本文的算法只适用于场景中只有一个光源的情况,未来的工作主要集中在多光源的识别方面。
[1] 李丹,程耕国.基于Android平台的移动增强现实的应用与研究[J].计算机应用与软件,2015(1):16-19,23.
[2] 范利君,童小念.移动增强现实中视觉三维注册方法的实现[J].数字工程,2011,39(12):138-140.
[3] Wagner D,Reitmayr G,Mulloni A,et al.Real-time Detection and Tracking for Augmented Reality on Mobile Phones[J].IEEE Transactions on Visualization and Computer Graphics,2010,16(3):355-368.
[4] 李红波,吴亮亮,吴渝.自适应采样与融合的增强现实阴影生成算法[J].计算机应用,2012,32(7):1860-1863.[5] Crow,Franklin C.Shadow algorithms for computer graphic[J].ACM Siggraph Computer Graphics,1977,11(2):242-248.
[6] Williams,Lance.Casting curved shadows on curved surfaces[J].ACM Siggraph Computer Graphics,1978,12(3):270-274.
[7] Weiskopf D,Ertl T.Shadow mapping based on dual depth layers[C]//Proceedings of Eurographics,2003,3:53-60.
[8] Stamminger M,Drettakis G.Perspective shadow maps[J].TOG:ACM Transactions on Graphics,2002,21(3):557-562.
[9] Jung Y,Kim T,Oh J,et al.Mobile AR Rendering Method using Environmental Light Source Information[C]//ICISA:International Conference on Information Science and Applications,2013:1-3.
ALGORITHM OF REAL-TIME SOFT SHADOW RENDERING BASED ON MOBILE AUGMENTED REALITY
Guo JinmingChen YiminHuang Chen
(School of Computer Engineering and Science,Shanghai University,Shanghai 200444,China)
Constrained by computing capability and storage space of mobile devices, the mobile terminal-based illumination estimation and real-time soft shadow rendering techniques and studies are quite few. We proposed a real-time soft shadow rendering algorithm applicable for mobile augmented reality. First it calculates the directions of light source according to the illumination intensity value of light sensor at mobile terminal and obtains the simulated point light source. Secondly, it makes uniform sampling around the point light source to get a couple of virtual light sources. At last, it overlays the shadow effects from every virtual light source and obtains the soft shadow in real-time rendering result. Experimental result showed that under the condition of ensuring good blending effect of virtuality and reality at mobile terminal, the use of the proposed algorithm has good real-time property, this provides the effective solution for soft shadow rendering of mobile terminals.
Soft shadowIllumination estimationMobile augmented reality
2015-05-26。郭巾铭,硕士生,主研领域:计算机图形图像,增强现实。陈一民,教授。黄晨,博士生。
TP391.41
A
10.3969/j.issn.1000-386x.2016.09.050
我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自各大过期杂志,内容仅供学习参考,不准确地方联系删除处理!