摘
要:光照一致性是增强现实研究的一个重要组成部分,本文利用摄像机捕获的放置在真实场景中的标定物和镜面小球的视频图像,设计了一个增强现实光照系统模型。放置在真实场景中的标定物用来计算光源位置以及放置虚拟物体,镜面小球用于记录真实场景中的光照信息。此模型的实现过程表明,该文的方法实现相对简单,不需要对场景及模型进行预处理,能够达到虚实对象在动态增强现实场景中光照的一致性,并可进行实时交互。
关键词:增强现实; 光照一致性; 实时交互
1 引 言
增强现实(Augmented Reality,简称AR),又称增强型虚拟现实(Augmented Virtual
Reality),是虚拟现实技术的进一步拓展,它借助必要的设备使计算机生成的虚拟环境与客观存在的真实环境(Real
Environment,简称RE)共存于同一个增强现实系统中,从感官和体验效果上给用户呈现出虚拟对象(Virtual
Object)与真实环境融为一体的增强现实环境。增强现实技术具有虚实结合、实时交互、三维注册的新特点[1][2][3]
。在工业、教育、军事、体育和娱乐等领域具有广泛的应用前景。
为使计算机生成的虚拟对象具有真实感,让用户从感官上确信虚拟对象是周围环境的组成部分,需解决几何一致性、光照一致性和实时性的问题。光照一致性是指虚拟对象与真实场景的图像应达到一致的光照效果,这就需要恢复出真实场景的光照模型,然后计算真实场景光照对虚拟对象的影响,如明暗、阴影、反射效果等。
为解决光照一致性问题Fournier[10]等人首先提出了利用基于图像的光照技术将真实场景和虚拟对象融合在一起,进行统一的光照计算的框架,但产生的光照效果有偏差,且不支持实时交互。Debevec[8][9]利用环境映照技术,通过高动态范围的恢复算法,
得到相应的辐射度图。高动态范围图像对于基于图像的光照问题来说具有非常重要的意义,但他的方法不适用于动态场景,而且由于没有恢复出光源的位置因此不能产生虚实阴影效果。SATO[11]利用物体的影子来估计真实场景光源的分布,但是由于没有恢复真实物体的材质,所以不能计算阴影以外的其它光照效果,而且虚拟物体的位置也受到限制。随着图形硬件的不断发展,实时图形技术离我们越来越近,本文将基于图像的光照技术与增强现实注册技术相结合,从而实现了点光源位置及真实场景光照信息的实时获取与绘制。
2 光照模型的建立
光照模型是计算机图形学中生成真实感图形的基础,它定义了光源的特性、光强在照射表面的几何分布和表面对光照的反射特性。在三维图形的绘制中,需要根据光照模型计算每一个像素上可见景物表面投向观察者的光亮度[4]。
基于图像的光照技术是近年来的一个研究热点,它是利用真实场景的光照图像来照明真实的或计算机生成的虚拟场景及物体的一种方法。基于图像的光照模型是半整体的光照模型,它反映了真实场景中光照及物体对虚拟物体的影响,一般需要先获取真实场景的光测图(Light
Probe)来记录场景的光辐射分布信息;然后将光照映射成一个场景环境的表示,并从环境中模拟光照,获得真实的光照及环境映射图像,照明计算机生成的虚拟三维物体。其中光测图的生成方法是拍一幅光泽球面的照片,因为它捕捉到了球体位置处的光照环境,基于图像的光照技术让用户在改变视点的前提下还可以改变场景本身,突破了静态场景的限制,对于增强现实系统的光照一致性研究具有重要的意义,但它的缺点是不能恢复真实场景的光源位置信息。
光源位置信息是产生阴影的前提,将阴影加入增强现实场景中不仅可以增强虚拟物体的真实感,还可以为用户提供场景中虚实物体的位置关系。真实场景中的光源可以分为单个点光源、多个光源和自然光源(即某一方向的平行光)。单个点光源为简单,多个光源和自然光源相对来说较为复杂。本文只研究单个点光源情况下的光源位置信息恢复。
3 实现过程
3.1 环境光处理
首先,不考虑虚拟物体对真实场景的影响,利用基于图像的光照技术采集真实场景中的光照信息,照明虚拟物体。在基于图像的光照技术中环境贴图(Environment
Mapping,EM)由于不需要对真实场景进行几何重建,并且突破了静态场景的限制,能让用户在改变视点的前提下还可以改变场景本身,在增强现实系统光照一致性和实时性的研究上有广阔的应用前景。环境贴图也称为反射贴图(Reflection
Mapping),由Blinn和Newell[6]
[7]提出,他们采用球面及其经、纬度来存储物体周围的环境信息(即环境映照),环境映照中存储了一点处从各个方向入射的光辐射。球面环境贴图是环境贴图的一种,也是商业化图形硬件早支持的一种环境贴图[4]。这里我们通过ARToolkit[5]软件和一个放在真实场景中的镜面小球采集真实场景的光照信息。ARToolkit软件提供了视频捕获和模型视图矩阵的计算,通过已计算出的模型视图矩阵以及镜面小球的大小,可以从视频图像中分离出镜面小球所在的区域图像,这一区域图像包含了真实场景环境中的光照信息。
一旦镜面小球可以从视频图像中分离出来,就可以将它作为球面环境贴图的纹理存入纹理内存。由于OpenGL中纹理图像尺寸必须是
个像素为了保证纹理图像的完整性,我们对得到的镜面小球区域图像进行了缩放,使之等于固定值,这里我们定义纹理图像的大小为32*32。
接着为模拟物体表面的不同粗糙程度,根据虚拟物体表面的BRDF值对环境图预先进行滤波,并以查找表的方式进行存储。这里我们采用了Ashikhmin
和Ghosh
[12]的方法,利用OpenGL中的mipmap技术,在生成环境图纹理之前,自动快速地生成一系列已经过滤的不同大小的纹理图。通过在这一系列已经过滤的从镜面到漫反射效果纹理图中选择适当的纹理图进行混合,来近似的模拟物体表面的粗糙程度,物体的光亮度由混合的级别来决定。
当得到纹理图后,就可以计算适当的纹理坐标得到环境映照,并照明虚拟对象了。结果如图2所示。
3.2 点光源位置的确定
通过以上步骤我们得到了真实场景中的环境光,但并不能得到点光源位置信息,为确定点光源位置本文用一个与其位置一致的标定物来确定。
根据计算机视觉原理,摄像机摄取三维真实空间得到其二维图像。图像上每一点的亮度和色彩反映了真实空间中物体表面某一点对光的反射属性,并且该点在图像上的位置与其在真实空间中物体表面对应点的位置之间存在一定的几何变换关系。即对空间中任何一点P,根据它在三维真实空间中的齐次坐标(Xw,Yw,Zw,1)T就可求出它在图像上的成像位置,
根据这一原理,基于给定的标定物是能够识别确定摄像机相对于标定物的方位,并结合已标定的摄像机内参数,可以确定点光源在图像上的位置,但在这里我们还需要知道光源对于虚拟对象的相对位置,即需要知道在虚拟对象坐标系下光源的位置,这时需要计算两个标定物之间的相对位置关系。
具体实现是,假设obj [0].trans是虚拟对象在相机坐标系中的转换矩阵,obj
[1].trans是光源在相机坐标系中的转换矩阵,那么光源在虚拟对象坐标系中的相对位置计算如公式(1):
wmat即为光源在虚拟对象坐标系中的相对位置。
3.3 阴影处理
通过以上步骤我们得到了点光源位置信息,但并没有将阴影效果加入到增强现实场景中。
增强现实系统中的阴影除了真实场景中的真实物体间的阴影,以及虚拟物体之间的阴影以外,还包括了真实物体对虚拟物体产生的阴影以及虚拟物体对真实物体产生的阴影。真实场景中真实物体对真实物体产生的阴影,不需要进行处理,虚拟物体之间产生的阴影可以直接使用虚拟现实中的技术,真实物体以虚拟物体以及虚拟物体对真实物体产生的阴影需要进行特别的处理。在这里我们除了考虑真实物体之间和虚拟物体之间的阴影之外,主要考虑了虚拟物体对真实物体产生的阴影。本文为满足增强现实系统需要,对模板阴影生成技术进行了改进,算法流程如图3所示。
4 实验结果与分析
我们用VC++和OpenGL实现了系统的原型。系统运行过程如下:系统启动后首先初始化读取摄像机内参数,并根据标定物确定光源位置和镜面小球区域。初始化结束后,将光源与镜面小球放到指定的位置。执行真实场景光照信息的获取与虚拟物体及阴影的绘制。
运行结果表明,利用基于视频图像采集得到的光照信息可以成功的实现虚实环境的无缝结合,基本达到了增强现实场景中虚实物体的光照一致性,且不需要对场景和光照做预处理,可以在程序运行过程中改变场景或场景中的光照,刷新速度达到每秒24帧左右,基本达到了用户与增强现实场景的实时交互。
5 结束语
增强现实技术要求能让用户从感官上确信虚拟对象是周围环境的组成部分,因此需解决几何一致性、光照一致性和实时性的问题。本文将基于图像的光照技术、模板阴影生成技术以及三维注册技术相结合,设计了一个增强现实系统模型,实验表明该模型可以很好的将虚拟物体与周围的光照环境相融合。
但是,由于球面环境贴图本身会给结果图像带来一定的误差,所绘制图像的精度依赖于虚拟物体的大小和它与中介表面的相对位置,当虚拟物体较大或偏移中介表面的中心时,误差会较大,且只对一个观察方向有效,即使改变观察方向,也依然会使用相同的纹理贴图。同时由于没有对真实场景进行完全建模,因此虚拟物体对真实物体产生的阴影受到投影平面的限制,这些都是下面要进一步要完善的工作。
参 考 文 献
[1] 陈小武,赵沁平. 分布式虚拟环境的变化[R].
中国计算机科学技术发展报告([2]中国计算机学会2004年会),2005年。中国计算机学会约稿。
[2] 王涌天,刘越,胡晓明. 户外增强现实系统关键技术及其应用的研究[J]. 系统仿真学报 Vol.15,No.3, 3月2003年。
[3] Azuma, R.; Baillot, Y.; Behringer, R.; Feiner, S.;Julier, S.;
MacIntyre, B.; Recent Advances in Augmented Reality[J] . Computer Graphics and
Applications, IEEE Volume: 21, Issue: 6, Nov.-Dec. 2001 Pages: 34~47.
[4] 彭群生,鲍虎军,金小刚编著:计算机真实感图形的算法基础[M]. 北京:科学出版社,1999
[5] http://www.hitl.washington.edu/artoolkit/
[6] Blinn J F, and M.E. Newell. Texture and reflection in computer
generated images [J]. Comm ACM, 1976, 19(10) Pages: 542~547.
[7] Blinn, James F. Models of light reflection for computer synthesized
pictures [J]. ACM Computer Graphic (SIGGRAPH’77 Proceedings), July 1977. Pages:
192~198
[8] Paul Debevec. Image-based lighting [J]. IEEE Computer Graphics and
Applications, 2002, 22(2) Pages:26~34.
[9] Paul Debevec. HDRI and image-based lighting[C]. San Diego: Proc
SIGGRAPH 2003, Course 19, 2003.
[10] Alain Fournier. Illumination Problems in Computer Augmented Reality
[A]. In Journee INRIA, Analyse/ Synthese. D’Images(JASI’94), 1994. Pages:
1~21
[11] Sato I , Sato Y, Ikeuchi K. Illumination from shadows. IEEE
Transactions on Pattern Analysis and Machine Intelligence [J]. 2003, vol. 25,
No. 3, Pages: 306~312
[12] Michael Ashikhmin , Abhijeet Ghosh. Simple blurry reflections with
environment maps [J]. Journal of Graphics Tools, 2002, vol. 7 n.4, Pages:
3~8
[13] 马颂德,张正友:计算机视觉―计算理论与算法基础[M].北京:科学出版社,1998. 52~67