本发明涉及增强现实技术领域,尤其涉及一种基于位置映射的增强现实建模体验系统及方法。
背景技术:
增强现实(augmentedreality,简称ar)技术可以将虚拟的物体合并到现实场景中,并能支持用户与其进行交互。把原本在现实世界的一定时间空间范围内很难体验到的实体信息(视觉信息、声音、味道、触觉等),通过计算机技术,进行模拟仿真后再叠加,将虚拟的信息应用到真实世界,被人类感官所感知,从而达到超越现实的感官体验。
ar系统需要通过分析大量的定位数据和场景信息,来保证由计算机生成的虚拟物体可以精确地定位在真实场景中。因此,ar系统中一般都包含4个基本步骤:(1)获取真实场景信息;(2)对真实场景和相机位置信息进行分析;(3)生成虚拟景物;(4)合并视频或直接显示。其中第一步通常需要ar设备耗费一定时间对真实场景进行扫描来构建有相同结构的虚拟场景模型。以微软的ar设备hololens为例,对一个面积40平方米的室内环境进行细致扫描需要5-7分钟时间,而后面三步所需要的时间可以忽略不计。另一方面,在扫描过程中用户需要头戴重达579克的设备按显示的箭头进行频繁的抬头转头操作。由于此时未正式进入ar环境中,沉浸感的缺失会使用户很易产生疲劳感与枯燥感,甚至会影响随后ar体验的效果。此外,对于由墙壁分割的多个房间组成的大面积复杂场景,hololens等ar设备无法准确地进行一次性扫描建模。
现在应用ar技术的情景中的很多真实环境都是建筑结构已知并且固定、可供多次参观使用的,如在相同的建筑内品鉴不同的艺术品等情景。在此种环境中,每次扫描场景进行建模是明显重复性的工作,且不能扫描复杂结构的场景。同时,扫描建模的过程对室内环境有一定要求,例如,对透光性的材质的深度信息捕捉不准确,因此造成场景建模的较大误差。
此外,在进行ar体验的过程中,用户通过使用手势或语音与虚拟物体进行交互,一方面缺点是识别及操纵准确度不高;另一方面,由计算机算法生成、摆放在特定位置的虚拟物体可能使用户丢失新鲜感。
技术实现要素:
本发明的目的就是为了解决上述问题,提供一种基于位置映射的增强现实建模体验系统及方法,基于位置映射进行墙壁建模并能提供一种实时干预的增强现实体验效果;通过已提前获取的场景二维平面图,对虚拟场景的墙壁进行自动建模。
为了实现上述目的,本发明采用如下技术方案:
基于位置映射的增强现实建模体验系统,包括:
hololens显示单元,用于显示三维场景;
实际位置反馈单元,将hololens显示单元内置的传感器接收的ar用户在hololens坐标系中的坐标反馈给数据传输控制单元;
数据传输控制单元,将ar用户的位置传输给ar场景修改单元,也将ar场景修改单元的场景修改数据传输给hololens显示单元;
ar场景修改单元,为修改ar场景的用户提供ar场景的平面图、三维视图,将用户在场景中的位置显示在平面图及三维视图中,提供可视化操作界面用于操作ar场景中的虚拟物体。
所述ar场景修改单元包括:
二维平面图编辑单元:用于放置和移动ar场景中的虚拟物体,并显示用户二维位置;
三维场景显示单元:用俯瞰视角或ar用户视角显示与二维平面图对应的三维场景,并使用人物模型表示用户在三维场景中的位置;
平面图处理单元:用于对真实场景的平面结构图进行边缘检测,得到可使用的角点信息,并将角点信息保存,供以后使用。
采用所述基于位置映射的增强现实建模体验系统的方法,包括:
步骤一:通过测量绘制或直接获取得到已知真实场景的平面结构图;
步骤二:启动平面图处理单元,将步骤一中获得的平面结构图输入到平面图处理单元,在此单元内实施边缘检测,获得角点信息并保存,以供后续使用;
步骤三:使系统内的各单元连入同一个无线局域网中;
步骤四:打开hololens显示单元,启动ar场景修改单元和数据传输控制单元;
步骤五:通过角点信息或者hololens场景信息在hololens显示单元内进行场景建模;
步骤六:用户开始体验增强现实系统,体验系统通过实际位置反馈单元与ar场景修改单元的配合,反复修改用户位置与ar场景中的虚拟物体,给ar用户带来更好的ar体验。
所述步骤二中边缘检测的具体步骤为:
步骤(2.1)、把彩色的平面结构图转换为灰度图像;
步骤(2.2)、使用canny边缘检测算法对灰度图像进行边缘检测,得到轮廓序列;
步骤(2.3)、遍历轮廓序列得到建筑平面图中的角点信息,并存储。
所述步骤五中包含两种建模方式:
方式一、通过角点信息建模,适用于在某个真实场景中初次建模;
方式二、通过之前保存的hololens场景信息建模。
所述方式一的具体方法为:
步骤(5.1.1)、将保存的真实场景的角点信息加载到ar场景修改单元中;
步骤(5.1.2)、通过场景映射方法将ar场景修改单元内坐标系下的墙壁信息映射到hololens坐标系下,生成hololens场景信息,并保存;
步骤(5.1.3)、将hololens场景信息传给数据传输控制单元,数据传输控制单元再将其传给hololens显示单元,由hololens显示单元完成hololens内的场景建模;
步骤(5.1.4)、观察hololens内虚拟场景与真实场景的匹配度,如果建模误差较大,则重复(5.1.2)~(5.1.3),直至误差达到设定值。
所述步骤(5.1.1)中的加载角点信息的具体方法为:
步骤(5.1.1.1)、将步骤二中已保存的角点信息导入到ar场景修改单元;
步骤(5.1.1.2)、在二维平面图编辑单元内,解析角点信息,生成由顶点和线段组成的墙壁几何平面图;
步骤(5.1.1.3)、在三维场景显示单元内,生成由墙壁模型组成的虚拟场景模型;墙壁几何平面图内的每一条线段代表一个墙壁的三维模型;
所述步骤(5.1.2)中场景映射方法的具体步骤为:
步骤(5.1.2.1)、在真实房间内选取一面大小适中的墙壁,向数据传输控制单元发送该墙壁底部左右两端点在hololens坐标系下的坐标点m(m.x,m.y)和n(n.x,n.y);
步骤(5.1.2.2)、数据传输控制单元将(5.1.2.1)中的坐标点数据传输到ar场景修改单元;
步骤(5.1.2.3)、在ar场景修改单元的墙壁几何平面图中选中对应的墙壁线段,选中后该墙壁线段变为红色,存储该线段的两端点坐标为a(a.x,a.y)和b(b.x,b.y);
步骤(5.1.2.4)、通过模型映射公式f1将墙壁几何平面图中的所有墙壁坐标点映射到hololens坐标系下,生成hololens场景信息;
墙壁几何平面图中的任意一点为origin,origin在hololens坐标系中对应点为target,则映射公式f1具体为:
target.x=[cosv·(a.x-origin.x)-sinv·(origin.y-a.y)]·ratio+m.x
target.y=[sinv·(a.x-origin.x)+cosv·(origin.y-a.y)]·ratio+m.y
其中,向量ab的坐标转换到左手坐标系下对应的向量为a1b1,sinv和cosv分别代表a1b1、mn两向量夹角的正弦值与余弦值,ratio代表ar场景修改单元中墙壁与hololens显示单元中墙壁的长度比例。
方式二的具体方法为:
步骤(5.2.1)、在ar场景修改单元打开已保存的hololens场景信息,确定建模初始位置;
步骤(5.2.2)、当佩戴hololens的用户站到建模初始位置后,ar场景单元再将hololens场景信息传给数据传输单元,数据传输单元再将其传给hololens显示单元;
步骤(5.2.3)、hololens显示单元解析场景信息中的墙壁信息,虚拟物体信息,进行场景建模。
所述步骤六中配合的具体方法为:
步骤(6.1)、用户在真实场景中移动时,将用户在实际场景中的位置显示在ar场景修改单元上;
步骤(6.2)、用户在ar场景修改单元中对模型做出的移动、旋转操作同步在hololens的场景中;
步骤(6.3)、体验结束后,将此次构建的完整场景,包括场景模型与场景内放置的虚拟物体模型保存为hololens场景信息,以便后续使用。
所述步骤(6.1)中用户在实际场景中的位置显示在ar场景修改单元的具体方法为:
步骤(6.1.1)、hololens向数据传输控制单元发送用户在hololens坐标系下的坐标;
步骤(6.1.2)、数据传输控制单元将接收到的用户位置坐标传给ar场景修改单元;
步骤(6.1.3)、ar场景修改单元通过映射公式f2计算用户在墙壁几何平面图中的对应坐标;
步骤(6.1.4)、ar场景修改单元将用户坐标点在二维平面图编辑单元上显示出来,并对应在三维场景显示单元中放置用人体模型来表示用户位置;
所述步骤(6.2)中将用户操作同步在hololens的场景中的具体方法为:
步骤(6.2.1)、ar场景修改单元将模型的位置坐标通过模型映射公式f1进行计算得到hololens坐标系下的位置坐标;
步骤(6.2.2)、ar场景修改单元将转换后的模型位置坐标连同旋转角度发送到数据传输控制单元;
步骤(6.2.3)、数据传输控制单元将坐标信息发送给hololens显示单元,完成物体的移动和旋转显示;
映射公式f2具体为:
本发明的有益效果:
1.利用平面图获取图像数据,直接生成三维场景,节省时间。
2.利用平面图的准确信息进行建模比直接扫描建模误差小,准确度高。
3.克服了hololens等ar设备不能一次扫描多个区域的缺点,建模速度快、效率高。
4.在ar体验过程中可实时干预改变已有ar场景,ar体验的新鲜度更好。
5.用户可自由在有墙壁分割的多个区域中进行ar体验,多个区域的场景不会相互干扰,,极大地扩展了用户进行ar体验的活动范围,增强了ar体验效果。
附图说明
图1为本系统的跟随式体验方式效果示意图;
图2为本发明流程框架的示意图;
图3为一台双屏笔记本装载ar场景修改单元的示意图,其中301为三维场景显示单元,302为二维平面图编辑单元;
图4为本发明单元之间数据流关系图;
图5为本系统的多ar用户体验方式效果示意图。
其中,101.hololens,102.计算机,103.用户a,104.用户b,501.ar用户,502.计算机用户。
具体实施方式
下面结合附图与实施例对本发明作进一步说明。
本发明具有的优点包括:
第一,可节省扫描环境需要的时间。
第二,可以一次性建成多个区域的模型。
第三,由平面图映射生成的场景模型比扫描获得的模型精确度更高。在用户进行增强现实的体验过程中,另一用户可在另一台计算机上对增强现实的虚拟场景、虚拟物体进行操作,以实现对ar用户体验的干预。
基于位置映射的增强现实建模体验系统,如图4所示,包括:
hololens显示单元,安装在hololens中的自主开发的软件应用,负责显示三维场景。
实际位置反馈单元,将hololens内置的传感器接收的ar用户在hololens坐标系中的坐标反馈给数据传输控制单元;
数据传输控制单元,该单元运行在一台计算机上,该计算机开放一个端口使本机作为客户端与hololens连接(hololens作为服务器,本机作为客户端),同时开放另一个端口使本机作为服务器与ar场景修改单元相连(此时本机既作为服务器也作为客户端)。以上两个连接分别使用不同的网络传输协议。该单元可将ar用户的位置传输给ar场景修改单元,也可将ar场景修改单元的场景修改数据传输给hololens显示单元。
ar场景修改单元,与数据传输控制单元运行在同一台计算机上,该单元除了为修改ar场景的用户提供ar场景的平面图、三维视图,还将用户在场景中的位置显示在平面图及三维视图中。并能提供可视化操作界面用于操作ar场景中的虚拟物体;
所述ar场景修改单元包括:
二维平面图编辑单元:用于放置和移动ar场景中的虚拟物体,并显示用户二维位置;
三维场景显示单元:用俯瞰视角或ar用户视角显示与二维平面图对应的三维场景,并使用人物模型表示用户在三维场景中的位置。
平面图处理单元:用于对真实场景的平面结构图进行边缘检测,得到可供ar场景修改单元使用的角点信息,并将角点信息保存,供以后使用。
采用所述基于位置映射的增强现实建模体验系统的方法,包括:
步骤一:通过测量绘制或直接获取得到已知真实场景的平面结构图;
步骤二:启动平面图处理单元,将步骤一中获得的平面结构图输入到平面图处理单元,在此单元内实施边缘检测算法,获得角点信息并保存,以供后续使用;
步骤三:使系统内的各台设备连入同一个无线局域网中;
步骤四:ar体验用户佩戴hololens设备,启动hololens,打开hololens显示单元;
步骤五:在一台计算机上启动ar场景修改单元和数据传输控制单元;
步骤六:通过角点信息或者hololens场景信息在hololens显示单元内进行场景建模;
步骤七:用户开始体验增强现实系统,体验系统通过实际位置反馈单元与ar场景修改单元的配合,反复修改用户位置与ar场景中的虚拟物体,给ar用户带来更好的ar体验。本系统有两种体验方式,一种是跟随式体验,另一种是多ar用户体验,两种方式中ar用户可在多个区域中自由进行ar体验,多个区域中的虚拟物体不会相互干扰。
上述步骤的实施过程可分为三个部分,分别为预处理部分,场景建模部分和系统体验部分。
其中,预处理部分包括上述步骤中的步骤一到步骤二,场景建模部分包括步骤三到步骤六,系统体验部分包括步骤七。
所述步骤二中在平面图处理单元对平面结构图进行边缘检测的具体步骤为:
(2.1)把彩色的平面结构图转换为灰度图像;
(2.2)使用canny边缘检测算法对灰度图像进行边缘检测,得到轮廓序列;
(2.3)遍历轮廓序列得到建筑平面图中的角点信息,并存储。
所述步骤三的具体方法包括:
(3.1)使用一台无线路由器或ap热点,搭建一个无线局域网;
(3.2)将hololens、装载数据传输控制单元和ar场景修改单元的计算机连入(3.1)所搭建的局域网。
所述步骤四的具体方法:
(4.1)启动hololens设备,打开hololens显示单元;
(4.2)查询局域网下hololens被分配的ipipa。
所述步骤五的具体方法:
(5.1)在计算机上启动数据传输控制单元,并在预启动界面上输入ipa;
(5.2)在同一台计算机上启动ar场景修改单元。
所述步骤六中包含两种建模方式:
(6.1)通过角点信息建模,适用于在某个真实场景中初次建模;
(6.2)通过之前保存的hololens场景信息建模。
所述步骤(6.1)的具体方法为:
(6.1.1)将预处理部分步骤二保存的真实场景的角点信息加载到ar场景修改单元中;
(6.1.2)通过场景映射方法将ar场景修改单元内坐标系下的墙壁信息映射到hololens坐标系下,生成hololens场景信息,并保存;
(6.1.3)将hololens场景信息传给数据传输控制单元,数据传输控制单元再将其传给hololens显示单元,由hololens显示单元完成hololens内的场景建模;
(6.1.4)观察hololens内虚拟场景与真实场景的匹配度,如果建模误差较大,则重复(6.1.2)~(6.1.3),直至误差可接受;
步骤(6.1.1)中的加载角点信息的具体方法为:
(6.1.1.1)将步骤二中已保存的角点信息导入到ar场景修改单元;
(6.1.1.2)在二维平面图编辑单元内,解析角点信息,生成由顶点和线段组成的墙壁几何平面图;
(6.1.1.3)在三维场景显示单元内,生成由墙壁模型组成的虚拟场景模型。墙壁几何平面图内的每一条线段代表一个墙壁的三维模型;
所述步骤(6.1.2)中场景映射方法的具体步骤为:
(6.1.2.1)在真实房间内选取一面大小适中的墙壁,向数据传输控制单元发送该墙壁底部左右两端点在hololens坐标系下的坐标点m(m.x,m.y)和n(n.x,n.y);
(6.1.2.2)数据传输控制单元将(6.1.2.1)中的坐标点数据传输到ar场景修改单元;
(6.1.2.3)在ar场景修改单元的墙壁几何平面图中选中对应的墙壁线段,选中后该墙壁线段变为红色,存储该线段的两端点坐标为a(a.x,a.y)和b(b.x,b.y)。
(6.1.2.4)通过映射公式f1,将墙壁几何平面图中的所有墙壁坐标点映射到hololens坐标系下,生成hololens场景信息;
(6.1.2.4)中映射公式f1如下:
设ar场景修改单元中墙壁几何平面图的任意一点为origin,origin在hololens坐标系中对应点为target。
target.x=[cosv·(a.x-origin.x)-sinv·(origin.y-a.y)]·ratio+m.x
target.y=[sinv·(a.x-origin.x)+cosv·(origin.y-a.y)]·ratio+m.y
由于向量ab位于右手坐标系,向量mn位于左手坐标系,所以需将向量ab的坐标转换到左手坐标系下对应的向量a1b1。上方公式中sinv和cosv分别代表a1b1、mn两向量夹角的正弦值与余弦值,ratio代表ar场景修改单元中墙壁与hololens显示单元中墙壁的长度比例。具体计算方法如下:
a1b1=(x1,y1)=(a.x-b.x,b.y-a.y)
mn=(x2,y2)=(n.x-m.x,n.y-m.y)
其中,sinv,cosv以及ratio的计算公式为:
所述步骤(6.2)通过hololens场景信息建模的具体方法如下:
(6.2.1)在ar场景修改单元打开已保存的hololens场景信息,确定建模初始位置;
(6.2.2)当佩戴hololens的用户站到建模初始位置后,ar场景单元再将hololens场景信息传给数据传输单元,数据传输单元再将其传给hololens显示单元;
(6.2.3)hololens显示单元解析场景信息中的墙壁信息,虚拟物体信息,进行场景建模;
所述步骤七中实际位置反馈单元与ar场景修改单元的配合的具体方法为:
(7.1)用户在真实场景中移动时,将用户在实际场景中的位置显示在ar场景修改单元上;
(7.2)用户在ar场景修改单元中对模型做出的移动、旋转操作可以同步在hololens的场景中。
(7.3)体验结束后,可以将此次构建的完整场景,包括场景模型与场景内放置的虚拟物体模型保存为hololens场景信息,以便后续使用;
所述步骤(7.1)中用户在实际场景中的位置显示在ar场景修改单元的具体方法为:
(7.1.1)hololens向数据传输控制单元发送用户在hololens坐标系下的坐标;
(7.1.2)数据传输控制单元将接收到的用户位置坐标传给ar场景修改单元;
(7.1.3)ar场景修改单元通过映射公式f2计算用户在墙壁几何平面图中的对应坐标;
(7.1.4)ar场景修改单元将用户坐标点在二维平面图编辑单元上显示出来,并对应在三维场景显示单元中放置用人体模型来表示用户位置;
所述步骤(7.2)中将用户操作同步在hololens的场景中的具体方法为:
(7.2.1)ar场景修改单元将模型的位置坐标通过(6.2)中的模型映射公式f1进行计算得到hololens坐标系下的位置坐标;
(7.2.2)ar场景修改单元将转换后的模型位置坐标连同旋转角度发送到数据传输控制单元;
(7.2.3)数据传输控制单元将坐标信息发送给hololens显示单元,完成物体的移动和旋转显示。
所述步骤(7.1.3)中的映射公式f2的计算过程如下:
公式f2如下:
origin.x=[cosv·(m.x-target.x)-sinv·(target.y-m.y)]·(1/ratio)+a.x
origin.y=[sinv·(m.x-target.x)+cosv·(target.y-m.y)]·(1/ratio)+a.y
其中,sin,cosv与ratio的值与映射公式f1所用相同。
所述步骤七中多个区域中的虚拟物体不会相互干扰,所用到的墙壁遮挡技术为:
(7.3)墙壁模型材质为透明材质,即墙壁是用户肉眼不可见的;但墙壁材质具有遮挡性,可遮挡用户任意角度的视域中空间位置在墙壁后的虚拟物体。
为达到步骤(7.3)中墙壁材质的效果,所编写的着色器(即shader)有以下特征:
(7.3.1)具有该材质的物体的渲染顺序在渲染队列的第一个,早于其他虚拟物体的渲染;
(7.3.2)shader中通道遮罩(即colormask)属性对应的值为0;
步骤七中,系统的两种体验方式分别为跟随式体验与多ar用户501体验:
在跟随式体验方式中,控制ar场景修改单元的用户(计算机用户502)跟随着ar用户(hololens用户)进行体验,通过ar场景修改单元获得用户看到的虚拟场景信息,实时为用户进行语音讲解。
如图5所示,在多ar用户体验方式中,可以有多个ar用户501进行自由参观,而控制ar修改单元的用户(计算机用户502)则处于一个固定的位置(该位置可被局域网络覆盖),通过ar场景修改单元来确定每个ar用户的位置,通过语音传输与每位ar用户进行交流。
图2为本发明的实施例的流程框架的示意图,其中201~207对应的为步骤一~步骤七。
在步骤201中,对于固定建筑物,用户可以直接采用建筑物的结构图简化出场景的平面结构图,主要包括房屋墙壁结构以及比例等信息;对于临时搭建的场景空间,用户可以测量真实墙壁的信息来绘制平面结构图。
在步骤202中,在步骤201中得到真实场景的平面结构图后,用户将其输入平面图处理单元,通过边缘检测方法得到平面结构图的角点信息,将其导出为xml文件进行保存,可用于以后的重复使用。
在步骤203中,ar场景修改单元和数据传输控制单元使用的计算机102和hololens101都处于同一个无线局域网中,此实例采用的无线局域网是由图1中用户b104手持的平板电脑的ap热点组成。除此外,网络环境还可以是由无线宽带路由器组成的无线局域网,也可以是其他无线设备形成的ap热点。在这个局域网中,作为服务器端的设备一直处于监听状态,并在无线局域网中形成一个组播域;作为客户端的设备在请求建立与服务器的连接时在该组播域中发送本终端的验证信息和自身的ip地址。服务器收到信息后进行验证,通过后发送给客户端确认信息以及自身的ip地址。
在步骤四204中,ar用户(图1中用户a103)打开hololens设备,打开hololens显示单元,并获取hololens设备的ipiph。
在步骤205中,用户(图1中用户b104)在图1中计算机102上启动数据传输控制单元。将hololens设备的ip地址iph输入到预启动界面上,建立hololens与数据传输控制单元的连接。再在图1中计算机102上启动ar场景修改单元,数据传输控制单元与ar场景修改单元的连接将自动建立。
在步骤206中,用户可以通过两种方式在hololens显示单元内进行场景建模。
第一种方式是用户可以使用步骤一201~步骤二202处理得到的角点信息进行场景建模。在这种情况下,用户先在ar场景修改单元打开步骤二202中获取的存储角点信息的xml文件,利用文件内的角点信息将真实场景的平面结构绘制在ar场景修改单元的二维平面图编辑单元302内,如图3所示,生成墙壁几何平面图,然后依据墙壁几何平面图在三维场景显示单元301内生成三维虚拟场景。hololens显示单元启动后,ar用户视野前方会出现一块预置好的参照标尺块。该参照标尺块是一块虚拟的长方体模型,它的位置和方向相对ar用户不变,ar用户可以通过自身的位置移动来调整参照标尺块的位置和角度,通过hololens语音或手势交互操作来调整参照标尺块的水平长度。ar用户根据建筑物内部结构选择大小位置合适的参照墙壁。ar用户不断调整参照标尺块的位置以及长度,直至参照标尺块水平长度和位置都与真实参照墙壁完全重合。在调整结束后,ar用户发出确定指令,此时hololens实际位置反馈单元将参照墙壁端点m,n在hololens场景中的坐标传输给数据传输控制单元,数据传输控制单元再将其传递给ar场景修改单元。图1中用户b104在ar场景修改单元的墙壁几何平面图中选中该墙壁对应的线段,此时墙壁几何平面图内的参照墙壁对应线段变为红色,同时得到该线段两个端点的位置坐标a,b。ar场景修改单元利用映射算法(算法核心为本实施例步骤6.1.2.4中的映射公式f1)将二维平面图编辑单元中的所有墙壁端点坐标进行映射,得到二维平面图编辑单元中每个墙壁端点在hololens坐标系下的坐标,即hololens场景信息。先将hololens场景信息保存,然后将hololens场景信息传输到数据传输控制单元,再由数据传输控制单元传输给hololens显示单元。hololens显示单元得到这些hololens场景信息后进行处理,生成hololens虚拟场景中的虚拟墙壁,完成虚拟场景建模。场景建模结束后,ar用户可以看到建好的虚拟墙壁模型,观察虚拟墙壁模型与真实墙壁模型。如果发现场景构建与实际结构偏差过大,可以重新选择参照墙壁重复上述步骤进行再次建模,直至误差控制到可接受范围。
第二种方式是通过已保存的hololens场景信息建模。这种方式方便用户重复使用已有的虚拟场景信息,或者继续上一次的场景体验。在上一种方式中,用户在ar场景控制单元处理好坐标转换后,会保存hololens场景信息;当用户结束体验系统使用后,也会保存本次体验和修改的hololens场景信息,包括场景模型与虚拟物体模型信息。在第二种方式下,用户先在ar场景修改单元中选取要打开的hololens场景信息,此时,二维平面图编辑单元的墙壁几何平面图内会显示用户建模的初始位置,当ar用户站到建模的初始位置后,ar场景修改单元将hololens场景信息传给数据传输单元,再由数据传输单元传给hololens显示单元,由hololens显示单元进行虚拟场景建模。
在步骤207中,用户之间可以通过相互配合,来修改ar场景中的虚拟物体。在此处,控制ar场景修改单元的用户需要得到ar用户在hololens虚拟场景中的位置。hololens实际位置反馈单元将ar用户在虚拟场景中的位置和朝向信息传输到数据传输控制单元,再由数据传输控制单元传给ar场景修改单元。在ar场景修改单元中,通过映射算法(此处的算法的核心为步骤7.1.3中的映射公式f2)得到用户在墙壁几何平面图中的位置坐标,并在二维平面图编辑单元和三维场景显示单元中显示用户位置。操作ar场景修改单元的用户可以通过ar用户的实时定位来分析场景搭建以及模型放置的情况。与此同时,操作ar场景修改单元的用户可以在ar场景修改单元内对模型进行操作,包括移动模型位置,旋转模型,并将修改结果显示在ar用户的虚拟场景中。在移动模型时,要记录下模型在墙壁几何平面图中新的位置坐标,并通过映射算法(核心映射公式为步骤6.1.2.4中的公式f1)转换为hololens坐标系下坐标;旋转模型时,要记录下模型的旋转角度;将hololens坐标以及旋转角度传给数据传输控制单元,并由数据传输控制单元传给hololens显示单元,由hololens显示单元对虚拟场景中的模型进行相应修改。
上述虽然结合附图对本发明的具体实施方式进行了描述,但并非对本发明保护范围的限制,所属领域技术人员应该明白,在本发明的技术方案的基础上,本领域技术人员不需要付出创造性劳动即可做出的各种修改或变形仍在本发明的保护范围以内。