利用openGL进行AR Visualization

        AR与VR不同,VR是制造一个虚拟的环境,使人在其中有沉浸感;AR是将虚拟的物体overlay到实际的场景中,有助于人们更好的理解场景。实现AR的手段有很多,也有这方面的库,比如AR Toolkit。我现在选择使用openGL来实现AR Visualization的功能。

       首先是真实场景的显示,为了简单,这里只是显示了真实场景的bmp图片,当然实际中应该显示的是真实场景的一段视频之类的。在openGL中显示bmp图片有两种方式:一种是直接显示图片,一种是将图片作为纹理贴到创建的多边形中进行显示。这里选择第二种方法是有效的,因为第二种方法中图片的大小会随着窗口的大小进行变化,而第一种方法中,不管窗口如何变化,图片总是保持原有的尺寸不变,显然这是不满足我们的要求的。

       在显示了真实的场景之后,我们要把要增强显示的部分overlay到场景之上,并将增强显示的部分设为半透明的。半透明的设置方法用glBlendFunc(GL_ONE,GL_ONE)得到的效果比较好。

       在openGL中最重要的部分就是相机和各个物体间的相对位置。Overlay的模型和相机之间的关系是通过Registration过程得到的,真实场景的bmp图片和相机的关系需要计算设置。另外虚拟相机的摆放位置也和实际中相机的内参有关。这部分要仔细阅读openGL中关于视图那一章。

       下面贴出一幅我搞的图像,在一幅bmp图像前显示了一个半透明的蓝色的球体,这里没有考虑它们之间的相对位置关系。

利用openGL进行AR Visualization_第1张图片

你可能感兴趣的:(OpenGL,overlay,ar)