发明名称 基于增强现实技术的古代文物场景快速渲染方法
摘要 本发明公开的基于增强现实技术的古代文物场景快速渲染方法,具体方法为:1)准备标志物并对古文物进行数据采集;2)通过摄像头跟踪三维立体标志物,进行三维立体标志物的识别和分析,划分三维立体标志物区域,创建环境贴图,从环境贴图中获取光源的位置和强度;3)构建实时光照渲染的虚拟光照模型;4)对古文物进行虚拟物体模型构建得到古文物的三维模型;5)对构建出的古文物的三维模型进行隐藏面消除;6)给古文物的三维模型添加阴影并将阴影软化形成软阴影;7)得到虚拟光照和虚拟古文物实时交互系统。本发明的古代文物场景快速渲染方法用增强现实与快速渲染技术将古文物的三维模型显示到现实场景中,通过显示设备进行虚实交互。
申请公布号 CN103500465B 申请公布日期 2017.01.18
申请号 CN201310418407.1 申请日期 2013.09.13
申请人 西安工程大学 发明人 万韬阮;王薇婕;武桐;朱耀麟;杨松;吕淘沙
分类号 G06T15/60(2006.01)I;G06T19/00(2011.01)I 主分类号 G06T15/60(2006.01)I
代理机构 西安弘理专利事务所 61214 代理人 罗笛
主权项 基于增强现实技术的古代文物场景快速渲染方法,其特征在于,具体按照以下步骤实施:步骤1、准备标志物,并在准备标志物的同时,对要展示的古文物进行数据采集,具体按照以下步骤实施:步骤1.1、利用ARToolkit提供标准模板,标准模板由具有一定宽度的黑色封闭矩形框和文字两部分组成,黑色封闭矩形框内有二维ARToolkit原始标志物;步骤1.2、对步骤1.1中的二维ARToolkit原始标志物进行改进,得到三维立体标志物:将一个二维ARToolkit原始标志物和一个黑色反光球组合起来,利用二维ARToolkit原始标志物得到真实世界和虚拟世界的坐标关系,再通过黑色反光球得到现实场景中的光照信息,光照信息包括光照的位置、颜色和强度;步骤1.3、用网络摄像机获取放置在现实场景中,步骤1.2得到的三维立体标志物,再利用ARToolkit平台中mk_patt.exe将三维立体标志物的视图矩阵存放到ARToolkit数据库中;用数码照相机对要展示的古文物进行拍摄,将拍摄到的所有古文物的相关图片导入photoshop软件中进行裁剪、较色和调色处理,完成对要展示的古文物数据采集;步骤2、通过网络摄像头跟踪步骤1准备的三维立体标志物,进行三维立体标志物的识别并做出分析,划分出三维立体标志物区域,创建环境贴图,从环境贴图中获取光源的位置和强度,具体按照以下步骤实施:步骤2.1、利用ARToolkit平台、黑色反光球及二维ARToolkit原始标志物已知的视图矩阵关系,将黑色反光球分割成球体中心和球体边缘两部分;步骤2.2、将网络摄像头抓取到的三维立体标志物绘制成长宽比为2:1的环境贴图;步骤2.3、将平均切割算法应用到步骤2.2绘制好的环境贴图中,从环境贴图中获取光源的位置和强度;步骤3、构建实时光照渲染的虚拟光照模型,具体按照以下步骤实施:步骤3.1、用网络摄像头抓取现实场景,获取真实世界中的像素信息;步骤3.2、利用OpenGL可编程片段着色器功能,得到经步骤2.3存储的光照像素值;步骤3.3、结合像素增强算法和OpenGL的alpha混合技术将步骤3.1和步骤3.2中得到的像素值进行混合,形成混合后新的场景,在像素值混合过程中,要增强光照强度和改变光照颜色;步骤3.4、在Visual Studio 2008软件平台下,调用OpenGL函数,用VC++编写程序,运用粒子系统来构建虚拟光照模型;步骤4、经步骤3构建好虚拟场景模型后,对古代文物进行虚拟物体模型构建,得到古文物的三维模型,具体按照以下步骤实施:步骤4.1、利用3D Studio Max2009软件建模工具采用多边形建模的方法进行古文物建模,得到虚拟古文物模型;步骤4.2、采用步骤1采集到的古文物本身的图片对步骤4.1构建好的虚拟古文物模型进行贴纹理处理;步骤4.3、将步骤4.2得到的贴纹理后的虚拟古文物模型在3D StudioMax2009软件中采用*.OBJ格式导出;步骤4.4、利用OBJLoader将经步骤4.3得到的OBJ文件导入ARToolkit中,得到古文物的三维模型;步骤5、对步骤4构建出的古文物的三维模型进行隐藏面消除,具体按照以下步骤实施:步骤5.1、调用OpenGL中glEnable(GL_DEPTH_TEST)、glDepthFunc(GL_LESS)函数进行深度测试;步骤5.2、经步骤5.1处理后,调用OpenGL中glEnable(GL_CULL_FACE)、glCullFace(GL_BACK)函数进行背面剔除;步骤5.3、经步骤5.2处理后,采用隐藏面消除算法中的深度缓存算法来消除古文物的三维模型隐藏面;步骤6、对经步骤5处理后得到的古文物的三维模型添加阴影,并将阴影软化,形成软阴影,具体按照以下步骤实施:步骤6.1、在Visual Studio 2008软件平台下,调用OpenGL函数,用VC++编写程序,利用平面阴影生成算法,为经步骤5处理后得到的古文物的三维模型添加阴影,完成虚拟‑真实的交互;步骤6.2,经步骤6.1处理后,绘制2<sup>n</sup>个不同亮度、不同大小的阴影,将绘制出的阴影软化,形成软阴影;步骤7、利用ARToolKit平台输出结果,得到虚拟光照和虚拟古文物实时交互系统,具体按照以下步骤实施:步骤7.1、在ARToolKit中设定显示虚拟光照的标志物ID为S1,显示古文物的三维模型的标志物ID为S2;步骤7.2、经步骤7.1显示出标志物S1和标志物S2后,用网络摄像头采集视频图像,把标志物S2放到网络摄像头前进行检测,ARToolKit进行匹配,匹配成功后,通过显示器显示出古文物的三维模型“放置”在真实世界中;步骤7.3、在Visual Studio 2008软件平台下,用VC++编写程序,利用键盘上的按键“m”、“n”实现模型的缩小和放大;“a”、“s”实现模型向左旋转和向右旋转;“q”、“w”实现模型向上旋转和向下旋转;“h”、“k”实现模型向左移动和向右移动;“u”、“j”实现模型向上移动和向下移动;“i”、“y”实现模型向后移动和向前移动,从而实现虚拟古文物模型的大小变化、旋转、移动的交互;步骤7.4、把标志物S1、S2放到摄像头前方范围内进行检测,分别匹配成功后,通过显示器便会看到虚拟额光照和虚拟古文物的交互效果,完成基于ARToolKit的虚拟世界和现实世界的实时交互。
地址 710048 陕西省西安市碑林区金花南路19号