一种基于Android设备的裸眼3D交互方法与流程

文档序号:12270904阅读:288来源:国知局

本发明涉及裸眼3D交互领域,尤其涉及一种基于Android设备的裸眼3D交互方法。



背景技术:

科学技术的发展从未止步,电子产品的更新速度也是让人目不暇接。2010年随着电影《阿凡达》上映引起的轰动效应,3D显示技术被人们熟知并追捧,引领了电影工业的新潮流。与此同时,家电消费领域也不甘示弱,众多品牌相继推出了自己的3D电脑显示器、投影机或者液晶电视。就目前3D技术应用看,无论是电影作品还是家电产品都有一个共同的特点就是必须佩带专业眼镜才能使用。然而,长时间佩戴眼睛观看容易引起头晕、恶心等不良症状,严重者还会损伤视力,同时,有近视眼的观众因佩戴“双重”眼镜所带来的不便更是苦不堪言。因此,目前的眼镜式3D技术只能作为3D技术发展中的过渡产品,而最终将被裸眼3D显示技术所取代。

中国专利CN105263015A(专利申请号:201510704456.0,发明名称:一种Android设备控制裸眼3D视频显示的方法)公开了一种Android设备控制裸眼3D视频显示的方法;该方法首先在开发引擎中调用通信插件的相关接口实现Android设备端与PC端的实时通信,然后在场景中实现裸眼3D显示,并创建不同的响应按钮用来响应不同裸眼3D视频的显示,在Android设备端点击不同的响应按钮实现裸眼3D显示终端不同裸眼3D视频内容显示,实现Android设备控制裸眼3D视频显示的方法。虽然该方法能够有效的解决裸眼3D视频内容难以调控,基于不同硬件条件再制作周期长,成本高等问题,但依然存在交互式裸眼3D显示难以调控的问题。中国专利CN104702936A(专利申请号:201510144851.8,发明名称:一种基于裸眼3D显示的虚拟现实交互方法)公开了在虚拟现实交互场景中创建多台立体相机并进行排布;每台立体相机输出的渲染贴图与计算的视点子像素映射矩阵编写在GPU上运行的着色器Shader进行采样和融合处理,获得合成图像,然后输出到场景中新的显示面板,之后将PC端连接裸眼3D显示终端,裸眼3D显示终端显示立体图像;最后在PC端进行虚拟现实交互场景的交互操作,在裸眼3D显示终端完成交互操作的同步立体显示。该方法依然存在交互式裸眼3D显示难以调控的问题。

裸眼3D显示技术是无需佩戴任何辅助设备(如3D眼镜、头盔等)的情况下,通过光柱透镜等先进光学技术与特殊算法定制的视频片源即可让观众获得前所未有的“高真实度”视觉体验,是一种新型的图像显示技术。同时裸眼3D显示技术是推进工业化与信息化“两化”融合的发动机之一,同时也是工业界和工业创意产业广泛应用的基础性、战略性的工具技术。通过裸眼3D科技创意,一些传统行业有望加快产业升级与创新步伐,如广告传媒、展览展示、科研教学、游戏娱乐、工业设计、地质测绘、医学诊疗、军事、场景重建等多个行业。

然而,裸眼3D显示技术的最终发展方向为交互式裸眼3D显示,现阶段交互式裸眼3D显示技术并未成熟,市场上并未出现一种良好的方式来调试,控制交互式裸眼3D显示,严重的阻碍了裸眼3D显示技术的发展,假若能够实现一种基于Android设备的裸眼3D交互方法,便可快捷的调试,控制交互式裸眼3D显示,填补了交互式裸眼3D显示控制领域的空白,极大地扩展裸眼3D显示技术的应用领域,能够良好的推动裸眼3D显示技术的发展。



技术实现要素:

针对现有技术存在的不足之处,本发明的目的在于提供一种基于Android设备的裸眼3D交互方法,该方法能够有效地解决交互式裸眼3D显示难以调控的问题,填补了交互式裸眼3D显示控制领域的空白,极大地扩展裸眼3D显示技术的应用领域,显著推动裸眼3D显示技术的发展。

本发明的目的通过下述技术方案实现:

一种基于Android设备的裸眼3D交互方法,其方法步骤如下:

A、将TNet插件导入开发引擎;

B、调用TNet插件的相关接口实现网络通信;

C、创建交互式裸眼3D显示场景;

D、运用TNet插件赋予不同交互物体不同ID值;

E、编译场景内容并发布PC端的可执行文件;

F、修改交互式裸眼3D显示场景为交互式2D显示场景,保持ID值不发生变化;

G、编译交互式2D显示场景发布APK文件,并安装到Android设备端;

H、PC端连接到裸眼3D显示终端,同时连接PC端、Android设备端到同一局域网络;

I、分别运行可执行文件,Android设备端新建IP地址,PC端连接到相同IP地址;

J、在Android设备端进行2D场景的交互操作,裸眼3D显示终端响应相同的裸眼3D交互动作。

为了更好地实现本发明,本发明基于Android设备的裸眼3D交互方法优选的技术方法如下,其方法步骤如下:

A、将TNet插件导入开发引擎;TNet插件作为封装了TCP或HTTP网络协议的插件,使用此插件来实现网络通信功能并不用太多的工作量,其功能完全满足Android设备端与PC端之间的网络通信功能;

B、调用步骤A中的TNet插件的相关接口实现网络通信;在开发引擎中创建新的场景,在新场景中创建摄像机,将调用TNet插件的相关接口的代码文件挂在虚拟相机上,保存场景为Communication;

C、创建交互式裸眼3D显示场景;在开发引擎中创建交互式裸眼3D显示场景主要分为以下两个模块:场景模块和显示模块;场景模块主要包括裸眼功能和交互功能,而显示模块主要包含显示功能;

场景模块裸眼功能的实现方式如下:在开发引擎的Scene窗口创建八台虚拟相机,并将所有虚拟相机的坐标Position设置为(0,0,0),旋转角度Rotation设置为(0,0,0),尺寸大小Scale设置为(1,1,1);然后调整每台相机之间的距离间隔为0.017,同时在Layer属性中添加新层PlaySence,修改八台摄像机的剔除遮罩Culling Mask属性为PlaySence,在八台虚拟相机的正前方创建零平面ZeroPlane,并设置其坐标Position设置为(0,0,10),旋转角度Rotation设置为(270,0,0),尺寸大小Scale设置为(1,1,1),修改其属性将其隐藏,编写相关脚本实现八台摄像机聚焦于零平面的中心点;然后在Project中创建8张渲染贴图RenderTexture,将渲染贴图的Size修改为1920×1080,在每台虚拟相机的Target Texture属性中赋予不同的渲染贴图,使得每台摄像机对应一张渲染贴图;然后计算出视点子像素映射矩阵,并编写相应的Shader,对每台相机渲染的贴图进行采样处理,具体的计算方式如下:首先,确定2D显示屏上给定的RGB子像素应该取自哪个视点的RGB分量,下式给出了多视点子像素映射矩阵的计算公式:

其中,X为一个光栅周期在水平方向上覆盖RGB子像素的个数,(k,1)为RGB子像素的坐标位置,a为光栅轴相对于LCD显示屏垂直轴的倾斜夹角,koff表示2D显示屏左上边缘与光栅单元边缘点的水平位移量,Ntot表示总视点个数,也就是参与合成的视差图像数量;

根据上式可计算出2D显示屏上的每个子像素的灰度值应该取自于哪幅视差图像的相应坐标位置的灰度值;然后将视点映射矩阵编写到Shader中,利用Shader对相机渲染的多张渲染贴图进行子像素的采样处理,并将经过采样处理的多张视差图像相互叠加,得到最终的合成图像;

场景模块交互功能的实现方式如下:在场景中添加各种交互物体,并将其Layer属性中全部修改为PlaySence,然后在Project中创建CS脚本,修改脚本名字为Play,编写脚本实现不同的交互动作,交互动作包括旋转、移动或缩放,并将脚本挂在与之相对应动作的交互物体之上,然后再创建CS脚本,修改脚本名字为TouchHandle,编写脚本实现射线检测功能,并将脚本挂在其中一个虚拟摄像机,修改虚拟摄像机的属性为Main Camera;

显示模块显示功能的实现方式如下:创建新的虚拟相机及显示面板,调整虚拟相机的坐标Position设置为(-5,0,100),旋转角度Rotation设置为(0,90,0),尺寸大小Scale设置为(1,1,1),在Layer属性中添加新层ShowSence,修改八台摄像机的剔除遮罩Culling Mask属性为ShowSence,同时修改起摄像方式为正交式,摄像角度调整为27,修改起深度Depth为1,新建相机默认为0;然后调整显示面板的坐标Position设置为(0,0,100),旋转角度Rotation设置为(90,-90,0),尺寸大小Scale设置为(9.6,1,5.4),匹配1080P分辨率的显示终端;将其Layer属性修改为ShowSence,同时在显示面板创建材质球Material,通过材质球的Custom选项调用shader获取合成图像,将合成图像呈现在显示面板;最后,保存以上场景为Play;

D、运用TNet插件赋予不同交互物体不同ID值;调用TNet插件的相关接口,修改其通信脚本,将ID值设置为公有制变量,将通信脚本挂在不同交互物体上,并赋予不同的ID值;赋予第一交互物体的ID值为1,第二交互物体的ID值为2,以此类推;

E、编译场景内容并发布PC端的可执行文件;点击开发引擎File菜单下的Build Settings,并将以上两个场景放入Scenes In Build选项栏,并选择Platform为PC and Mac Standalone,之后点击Build发布出PC端的可执行文件;

F、修改交互式裸眼3D显示场景为交互式2D显示场景,保持ID值不发生变化;修改的具体方式为:在场景中保留挂有TouchHandle的虚拟相机,删除其余七个虚拟相机,同时删除显示模块中的新相机及显示面板;

G、编译交互式2D显示场景发布APK文件,并安装到Android设备端;如同PC端的文件发布,将之前选择的PC and Mac Standalone修改为Android,之后点击Build发布出APK文件;

H、PC端连接到裸眼3D显示终端,同时连接PC端、Android设备端到同一局域网络;通过HDMI数据传输线将PC端与裸眼3D显示终端连接起来,将PC端的图像传输到裸眼3D显示终端,同时通过路由器创建局域网,将PC端、Android设备同时连接到创建的局域网;

I、分别运行可执行文件,Android设备端新建IP地址,PC端连接到相同IP地址;运行PC端的可执行文件,选择文件分辨率为1920×1080,保持与裸眼3D显示终端相同分辨率;在Android设备端新建IP地址,裸眼3D显示终端弹出相同IP地址,点击IP地址,显示连接成功;

J、在Android设备端进行2D场景的交互操作,裸眼3D显示终端响应相同的裸眼3D交互动作;在Android设备端进行2D场景的交互操作,其交互操作包括旋转、移动、缩放;通过TNet插件的通信接口,相同ID值响应相同的动作,裸眼3D显示终端响应与之对应的裸眼3D交互动作,实现基于Android设备的裸眼3D交互方法。

本发明优选的步骤B的技术方案如下:所述步骤B调用TNet插件的相关接口实现网络通信;在开发引擎中创建新的场景,在新场景中创建摄像机,将调用TNet插件的相关接口的代码文件挂在虚拟相机。

本发明优选的步骤B的技术方案如下:所述步骤C创建交互式裸眼3D显示场景;交互式裸眼3D显示场景主要分为两个模块:场景模块和显示模块。

本发明优选的步骤B的技术方案如下:所述步骤F修改交互式裸眼3D显示场景为交互式2D显示场景,保持ID值不发生变化;修改的具体方式为:在场景中保留挂有TouchHandle的虚拟相机,删除其余七个虚拟相机,同时删除显示模块中的新相机及显示面板。

本发明优选的步骤B的技术方案如下:所述步骤J在Android设备端进行2D场景的交互操作,裸眼3D显示终端响应相同的裸眼3D交互动作;具体的响应的实现过程为:通过TNet插件的通信接口,相同ID值响应相同的动作。

本发明较现有技术相比,具有以下优点及有益效果:

本发明能够有效地解决交互式裸眼3D显示难以调控的问题,填补了交互式裸眼3D显示控制领域的空白,极大地扩展裸眼3D显示技术的应用领域,显著推动裸眼3D显示技术的发展。

附图说明

图1为本发明的结构示意图。

具体实施方式

下面结合实施例对本发明作进一步地详细说明:

实施例

如图1所示,一种基于Android设备的裸眼3D交互方法,其方法步骤如下:

A、将TNet插件导入开发引擎;

B、调用TNet插件的相关接口实现网络通信。作为优选,所述步骤B调用TNet插件的相关接口实现网络通信;在开发引擎中创建新的场景,在新场景中创建摄像机,将调用TNet插件的相关接口的代码文件挂在虚拟相机。

C、创建交互式裸眼3D显示场景。作为优选,所述步骤C创建交互式裸眼3D显示场景;交互式裸眼3D显示场景主要分为两个模块:场景模块和显示模块。

D、运用TNet插件赋予不同交互物体不同ID值;

E、编译场景内容并发布PC端的可执行文件;

F、修改交互式裸眼3D显示场景为交互式2D显示场景,保持ID值不发生变化。作为优选,所述步骤F修改交互式裸眼3D显示场景为交互式2D显示场景,保持ID值不发生变化;修改的具体方式为:在场景中保留挂有TouchHandle的虚拟相机,删除其余七个虚拟相机,同时删除显示模块中的新相机及显示面板。

G、编译交互式2D显示场景发布APK文件,并安装到Android设备端;

H、PC端连接到裸眼3D显示终端,同时连接PC端、Android设备端到同一局域网络;

I、分别运行可执行文件,Android设备端新建IP地址,PC端连接到相同IP地址;

J、在Android设备端进行2D场景的交互操作,裸眼3D显示终端响应相同的裸眼3D交互动作。作为优选,所述步骤J在Android设备端进行2D场景的交互操作,裸眼3D显示终端响应相同的裸眼3D交互动作;具体的响应的实现过程为:通过TNet插件的通信接口,相同ID值响应相同的动作。

本发明基于Android设备的裸眼3D交互方法优选的技术方法如下,其方法步骤如下:

A、将TNet插件导入开发引擎;TNet插件作为封装了TCP或HTTP网络协议的插件,使用此插件来实现网络通信功能并不用太多的工作量,其功能完全满足Android设备端与PC端之间的网络通信功能;

B、调用步骤A中的TNet插件的相关接口实现网络通信;在开发引擎中创建新的场景,在新场景中创建摄像机,将调用TNet插件的相关接口的代码文件挂在虚拟相机上,保存场景为Communication;

C、创建交互式裸眼3D显示场景;在开发引擎中创建交互式裸眼3D显示场景主要分为以下两个模块:场景模块和显示模块;场景模块主要包括裸眼功能和交互功能,而显示模块主要包含显示功能;

场景模块裸眼功能的实现方式如下:在开发引擎的Scene窗口创建八台虚拟相机,并将所有虚拟相机的坐标Position设置为(0,0,0),旋转角度Rotation设置为(0,0,0),尺寸大小Scale设置为(1,1,1);然后调整每台相机之间的距离间隔为0.017,同时在Layer属性中添加新层PlaySence,修改八台摄像机的剔除遮罩Culling Mask属性为PlaySence,在八台虚拟相机的正前方创建零平面ZeroPlane,并设置其坐标Position设置为(0,0,10),旋转角度Rotation设置为(270,0,0),尺寸大小Scale设置为(1,1,1),修改其属性将其隐藏,编写相关脚本实现八台摄像机聚焦于零平面的中心点;然后在Project中创建8张渲染贴图RenderTexture,将渲染贴图的Size修改为1920×1080,在每台虚拟相机的Target Texture属性中赋予不同的渲染贴图,使得每台摄像机对应一张渲染贴图;然后计算出视点子像素映射矩阵,并编写相应的Shader,对每台相机渲染的贴图进行采样处理,具体的计算方式如下:首先,确定2D显示屏上给定的RGB子像素应该取自哪个视点的RGB分量,下式给出了多视点子像素映射矩阵的计算公式:

其中,X为一个光栅周期在水平方向上覆盖RGB子像素的个数,(k,1)为RGB子像素的坐标位置,a为光栅轴相对于LCD显示屏垂直轴的倾斜夹角,koff表示2D显示屏左上边缘与光栅单元边缘点的水平位移量,Ntot表示总视点个数,也就是参与合成的视差图像数量;

根据上式可计算出2D显示屏上的每个子像素的灰度值应该取自于哪幅视差图像的相应坐标位置的灰度值;然后将视点映射矩阵编写到Shader中,利用Shader对相机渲染的多张渲染贴图进行子像素的采样处理,并将经过采样处理的多张视差图像相互叠加,得到最终的合成图像;

场景模块交互功能的实现方式如下:在场景中添加各种交互物体,并将其Layer属性中全部修改为PlaySence,然后在Project中创建CS脚本,修改脚本名字为Play,编写脚本实现不同的交互动作,交互动作包括旋转、移动或缩放,并将脚本挂在与之相对应动作的交互物体之上,然后再创建CS脚本,修改脚本名字为TouchHandle,编写脚本实现射线检测功能,并将脚本挂在其中一个虚拟摄像机,修改虚拟摄像机的属性为Main Camera;

显示模块显示功能的实现方式如下:创建新的虚拟相机及显示面板,调整虚拟相机的坐标Position设置为(-5,0,100),旋转角度Rotation设置为(0,90,0),尺寸大小Scale设置为(1,1,1),在Layer属性中添加新层ShowSence,修改八台摄像机的剔除遮罩Culling Mask属性为ShowSence,同时修改起摄像方式为正交式,摄像角度调整为27,修改起深度Depth为1,新建相机默认为0;然后调整显示面板的坐标Position设置为(0,0,100),旋转角度Rotation设置为(90,-90,0),尺寸大小Scale设置为(9.6,1,5.4),匹配1080P分辨率的显示终端;将其Layer属性修改为ShowSence,同时在显示面板创建材质球Material,通过材质球的Custom选项调用shader获取合成图像,将合成图像呈现在显示面板;最后,保存以上场景为Play;

D、运用TNet插件赋予不同交互物体不同ID值;调用TNet插件的相关接口,修改其通信脚本,将ID值设置为公有制变量,将通信脚本挂在不同交互物体上,并赋予不同的ID值;赋予第一交互物体的ID值为1,第二交互物体的ID值为2,以此类推;

E、编译场景内容并发布PC端的可执行文件;点击开发引擎File菜单下的Build Settings,并将以上两个场景放入Scenes In Build选项栏,并选择Platform为PC and Mac Standalone,之后点击Build发布出PC端的可执行文件;

F、修改交互式裸眼3D显示场景为交互式2D显示场景,保持ID值不发生变化;修改的具体方式为:在场景中保留挂有TouchHandle的虚拟相机,删除其余七个虚拟相机,同时删除显示模块中的新相机及显示面板;

G、编译交互式2D显示场景发布APK文件,并安装到Android设备端;如同PC端的文件发布,将之前选择的PC and Mac Standalone修改为Android,之后点击Build发布出APK文件;

H、PC端连接到裸眼3D显示终端,同时连接PC端、Android设备端到同一局域网络;通过HDMI数据传输线将PC端与裸眼3D显示终端连接起来,将PC端的图像传输到裸眼3D显示终端,同时通过路由器创建局域网,将PC端、Android设备同时连接到创建的局域网;

I、分别运行可执行文件,Android设备端新建IP地址,PC端连接到相同IP地址;运行PC端的可执行文件,选择文件分辨率为1920×1080,保持与裸眼3D显示终端相同分辨率;在Android设备端新建IP地址,裸眼3D显示终端弹出相同IP地址,点击IP地址,显示连接成功;

J、在Android设备端进行2D场景的交互操作,裸眼3D显示终端响应相同的裸眼3D交互动作;在Android设备端进行2D场景的交互操作,其交互操作包括旋转、移动、缩放;通过TNet插件的通信接口,相同ID值响应相同的动作,裸眼3D显示终端响应与之对应的裸眼3D交互动作,实现基于Android设备的裸眼3D交互方法。

以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1