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

文档序号:10580216阅读:1223来源:国知局
一种基于Android设备的裸眼3D交互方法
【专利摘要】本发明涉及裸眼3D交互领域,其公开了一种基于Android设备的裸眼3D交互方法,有效的解决交互式裸眼3D显示难以调控的问题。该方法包括:a.将TNet插件导入开发引擎;b.调用TNet插件的相关接口实现网络通信;c.创建交互式裸眼3D显示场景;d.运用TNet插件赋予不同交互物体不同ID值;e.编译场景内容并发布PC端的可执行文件;f.修改交互式裸眼3D显示场景为交互式2D显示场景;g.编译交互式2D显示场景发布APK文件,并安装到Android设备端;h.将PC端连接到裸眼3D显示终端,同时将PC端、Android设备端连接到同一局域网络;i.运行可执行文件,Android设备端新建IP地址,PC端连接到相同IP地址;j.在Android设备端进行2D场景的交互操作,裸眼3D显示终端响应相同的裸眼3D交互动作。
【专利说明】
一种基于And ro i d设备的裸眼3D交互方法
技术领域
[0001] 本发明涉及裸眼3D交互领域,具体涉及一种基于Android设备的裸眼3D交互方法。
【背景技术】
[0002]科学技术的发展从未止步,电子产品的更新速度也是让人目不暇接。2010年随着 电影《阿凡达》上映引起的轰动效应,3D显示技术被人们熟知并追捧,引领了电影工业的新 潮流。与此同时,家电消费领域也不甘示弱,众多品牌相继推出了自己的3D电脑显示器、投 影机或者液晶电视。就目前3D技术应用看,无论是电影作品还是家电产品都有一个共同的 特点就是必须佩带专业眼镜才能使用。然而,长时间佩戴眼睛观看容易引起头晕、恶心等不 良症状,严重者还会损伤视力,同时,有近视眼的观众因佩戴"双重"眼镜所带来的不便更是 苦不堪言。因此,目前的眼镜式3D技术只能作为3D技术发展中的过渡产品,而最终将被裸眼 3D显示技术所取代。
[0003] 裸眼3D显示技术是无需佩戴任何辅助设备(如3D眼镜、头盔等)的情况下,通过光 柱透镜等先进光学技术与特殊算法定制的视频片源即可让观众获得前所未有的"高真实 度"视觉体验,是一种新型的图像显示技术。同时裸眼3D显示技术是推进工业化与信息化 "两化"融合的发动机之一,同时也是工业界和工业创意产业广泛应用的基础性、战略性的 工具技术。通过裸眼3D科技创意,一些传统行业有望加快产业升级与创新步伐,如广告传 媒、展览展示、科研教学、游戏娱乐、工业设计、地质测绘、医学诊疗、军事、场景重建等多个 行业。
[0004] 裸眼3D显示技术的最终发展方向为交互式裸眼3D显示,然而,现阶段交互式裸眼 3D显示技术并未成熟,市场上并未出现一种良好的方式来调试,控制交互式裸眼3D显示,严 重的阻碍了裸眼3D显示技术的发展,假若能够实现一种基于Android设备的裸眼3D交互方 法,便可快捷的调试,控制交互式裸眼3D显示,填补了交互式裸眼3D显示控制领域的空白, 极大地扩展裸眼3D显示技术的应用领域,能够良好的推动裸眼3D显示技术的发展。

【发明内容】

[0005] 本发明所要解决的技术问题是:提出一种基于Android设备的裸眼3D交互方法,有 效的解决交互式裸眼3D显示难以调控的问题。
[0006] 本发明解决其技术问题所采用的技术方案是:一种基于Android设备的裸眼3D交 互方法,包括以下步骤:
[0007] a.将TNet插件导入开发引擎;
[0008] b.调用TNet插件的相关接口实现网络通信;
[0009] c.创建交互式裸眼3D显不场景;
[0010] d.运用TNet插件赋予不同交互物体不同ID值;
[0011] e.编译场景内容并发布PC端的可执行文件;
[0012] f.修改交互式裸眼3D显示场景为交互式2D显示场景,保持ID值不发生变化;
[0013] g.编译交互式2D显示场景发布APK文件,并安装到Android设备端;
[0014] h.将PC端连接到裸眼3D显示终端,同时将PC端、Android设备端连接到同一局域网 络;
[0015] i .运行可执行文件,Android设备端新建IP地址,PC端连接到相同IP地址;
[0016] j.在Android设备端进行2D场景的交互操作,裸眼3D显示终端响应相同的裸眼3D 交互动作。
[0017]作为进一步优化,步骤b中,所述调用TNet插件的相关接口实现网络通信包括:在 开发引擎中创建新的场景,在新场景中创建摄像机,将调用TNet插件的相关接口的代码文 件挂在虚拟相机。
[0018]作为进一步优化,步骤c中,所述创建的交互式裸眼3D显示场景包括场景模块和显 示模块,其中场景模块用于实现裸眼功能和交互功能,显示模块用于实现显示功能。
[0019] 作为进一步优化,所述实现裸眼功能的方式包括:
[0020] 在开发引擎的Scene窗口创建八台虚拟相机,并将所有虚拟相机的坐标Position 设置为(〇,〇,〇),旋转角度Rotation设置为(0,0,0),尺寸大小Scale设置为(1,1,1),然后调 整每台相机之间的距离间隔为0.017,同时在Layer属性中添加新层PlaySence,修改八台摄 像机的剔除遮罩Cul 1 ing Mask属性为PlaySence,在八台虚拟相机的正前方创建零平面 ZeroPlane,并设置其坐标Position设置为(0,0,10),旋转角度Rotation设置为(270,0,0), 尺寸大小Scale设置为(1,1,1 ),修改其属性将其隐藏,编写相关脚本实现八台摄像机聚焦 于零平面的中心点,然后在Project中创建8张植染贴图RenderTexture,将植染贴图的Size 修改为1920*1080,在每台虚拟相机的Target Texture属性中赋予不同的植染贴图,使得每 台摄像机对应一张渲染贴图,然后计算出视点子像素映射矩阵,并编写相应的Shader,然后 将视点映射矩阵编写到Shader中,利用Shader对相机渲染的多张渲染贴图进行子像素的采 样处理,并将经过采样处理的多张视差图像相互叠加,得到最终的合成图像。
[0021] 作为进一步优化,所述计算出视点子像素映射矩阵的方式包括:
[0022]确定2D显示屏上给定的RGB子像素应该取自哪个视点的RGB分量,下式给出了多视 点子像素映射矩阵的计算公式:
[0024]其中,X为一个光栅周期在水平方向上覆盖RGB子像素的个数,(k,l)为RGB子像素 的坐标位置,a为光栅轴相对于IXD显示屏垂直轴的倾斜夹角,krff表示2D显示屏左上边缘与 光栅单元边缘点的水平位移量,队。*表示总视点个数,也就是参与合成的视差图像数量,根 据上式可计算出2D显示屏上的每个子像素的灰度值应该取自于哪幅视差图像的相应坐标 位置的灰度值。
[0025]作为进一步优化,所述实现交互功能的方式包括:
[0026]在场景中添加各种交互物体,并将其Layer属性中全部修改为PlaySence,然后在 Project中创建CS脚本,修改脚本名字为Play,编写脚本实现不同的交互动作,并将脚本挂 在与之相对应动作的交互物体之上,然后再创建CS脚本,修改脚本名字为TouchHandle,编 写脚本实现射线检测功能,并将脚本挂在其中一个虚拟摄像机,修改虚拟摄像机的属性为 Main Camera。
[0027]作为进一步优化,所述实现显示功能的方式包括:
[0028] 创建新的虚拟相机及显示面板,调整虚拟相机的坐标Position设置为(-5,0, 1〇〇 ),旋转角度Rotation设置为(0,90,0 ),尺寸大小Scale设置为(1,1,1 ),在Layer属性中 添加新层ShowSence,修改八台摄像机的剔除遮罩Cul 1 ing Mask属性为ShowSence,同时修 改起摄像方式为正交式,摄像角度调整为27,修改起深度Depth为1,然后调整显示面板的坐 标Position设置为(0,0,100),旋转角度Rotation设置为(90,-90,0),尺寸大小Scale设置 为(9.6,1,5.4),将其Layer属性修改为ShowSence,同时在显不面板创建材质球Material, 通过材质球的Custom选项调用shader获取合成图像,将合成图像呈现在显示面板,最后,保 存以上场景为Play。
[0029]作为进一步优化,步骤d中,所述运用TNet插件赋予不同交互物体不同ID值,包括: 调用TNet插件的相关接口,修改其通信脚本,将ID值设置为公有制变量,将通信脚本挂在不 同交互物体上,并赋予不同的ID值。
[0030]作为进一步优化,步骤f中,所述修改交互式裸眼3D显示场景为交互式2D显示场 景,保持ID值不发生变化,具体包括:
[0031]在场景中保留挂有TouchHandle的虚拟相机,删除其余七个虚拟相机,同时删除显 示模块中的新相机及显示面板。
[0032]作为进一步优化,步骤h中,所述将PC端连接到裸眼3D显示终端,同时将PC端、 Android设备端连接到同一局域网络,具体包括:
[0033]通过HDMI数据传输线将PC端与裸眼3D显示终端连接起来,将PC端的图像传输到裸 眼3D显示终端,同时通过路由器创建局域网,将PC端、Android设备同时连接到创建的局域 网。
[0034]本发明的有益效果是:该方法能够有效的解决交互式裸眼3D显示难以调控的问 题,填补了交互式裸眼3D显示控制领域的空白,极大地扩展裸眼3D显示技术的应用领域,显 著推动裸眼3D显示技术的发展。
【附图说明】
[0035]图1为本发明中基于Android设备的裸眼3D交互方法流程图。
【具体实施方式】
[0036] 如图1所示,本发明中基于Android设备的裸眼3D交互方法包括以下实现步骤: [0037]步骤一、将TNet插件导入开发引擎;TNet作为封装了TCP,HTTP等网络协议的插件, 使用此插件来实现网络通信功能并不用太多的工作量,其功能完全满足Android设备端与 PC端之间的网络通信功能。
[0038]步骤二、调用TNet插件的相关接口实现网络通信;在开发引擎中创建新的场景,在 新场景中创建摄像机,将调用TNet插件的相关接口的代码文件挂在虚拟相机上,保存场景 为Communication。
[0039] 步骤三、创建交互式裸眼3D显示场景;在开发引擎中创建交互式裸眼3D显示场景 主要分为以下两个模块:场景模块,显示模块。场景模块主要包括裸眼功能,交互功能,而显 示模块主要包含显示功能;裸眼功能的实现方式如下:在开发引擎的Scene窗口创建八台虚 拟相机,并将所有虚拟相机的坐标Position设置为(0,0,0),旋转角度Rotation设置为(0, 〇,〇),尺寸大小Scale设置为(1,1,1),然后调整每台相机之间的距离间隔为0.017,同时在 Layer属性中添加新层PlaySence,修改八台摄像机的剔除遮罩Culling Mask属性为 ?1&5^61106,在八台虚拟相机的正前方创建零平面261'0?13116,并设置其坐标?08;[1:;[011设置 为(0,0,10),旋转角度Rotation设置为(270,0,0),尺寸大小Scale设置为(1,1,1),修改其 属性将其隐藏,编写相关脚本实现八台摄像机聚焦于零平面的中心点,然后在Project中创 建8张渲染贴图RenderTexture,将渲染贴图的Size修改为1920*1080,在每台虚拟相机的 Target Texture属性中赋予不同的植染贴图,使得每台摄像机对应一张植染贴图,然后计 算出视点子像素映射矩阵,并编写相应的Shader,对每台相机渲染的贴图进行采样处理,具 体的计算方式如下:首先,确定2D显示屏上给定的RGB子像素应该取自哪个视点的RGB分量, 下式给出了多视点子像素映射矩阵的计算公式:
[0041]其中,X为一个光栅周期在水平方向上覆盖RGB子像素的个数,(k,l)为RGB子像素 的坐标位置,a为光栅轴相对于IXD显示屏垂直轴的倾斜夹角,krff表示2D显示屏左上边缘与 光栅单元边缘点的水平位移量,队。*表示总视点个数,也就是参与合成的视差图像数量,根 据上式可计算出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,修改八台摄像机的剔除遮罩Cul 1 ing Mask属性为ShowSence,同时修改起摄像 方式为正交式,摄像角度调整为27,修改起深度Depth为1(新建相机默认为0)。然后调整显 示面板的坐标Position设置为(0,0,100),旋转角度Rotation设置为(90,-90,0),尺寸大小 Scale设置为(9.6,l,5.4)(匹配1080P分辨率的显示终端),将其Layer属性修改为 ShowSence,同时在显示面板创建材质球Material,通过材质球的Custom选项调用shader获 取合成图像,将合成图像呈现在显示面板。最后,保存以上场景为Play。
[0042]步骤四、运用TNet插件赋予不同交互物体不同ID值;调用TNet插件的相关接口,修 改其通信脚本,将ID值设置为公有制变量,将通信脚本挂在不同交互物体上,并赋予不同的 ID值,例如赋予第一交互物体的ID值为1,第二交互物体的ID值为2,以此类推。
[0043]步骤五、编译场景内容并发布PC端的可执行文件;点击开发引擎File菜单下的 Build Settings,并将以上两个场景放入Scenes In Build选项栏,并选择Platform为PC and Mac Standalone,之后点击Build发布出PC端的可执行文件。
[0044] 步骤六、修改交互式裸眼3D显示场景为交互式2D显示场景,保持ID值不发生变化; 修改的具体方式为:在场景中保留挂有TouchHandle的虚拟相机,删除其余七个虚拟相机, 同时删除显示模块中的新相机及显示面板。
[0045] 步骤七、编译交互式2D显示场景发布APK文件,并安装到Android设备端;如同PC端 的文件发布,将之前选择的PC and Mac Standalone修改为Android,之后点击Build发布出 APK文件。
[0046] 步骤八、PC端连接到裸眼3D显示终端,同时连接PC端,Android设备端到同一局域 网络;通过HDMI数据传输线将PC端与裸眼3D显示终端连接起来,将PC端的图像传输到裸眼 3D显示终端,同时通过路由器创建局域网,将PC端,Android设备同时连接到创建的局域网。 [0047] 步骤九、运行可执行文件,Android设备端新建IP地址,PC端连接到相同IP地址;运 行PC端的可执行文件,选择文件分辨率为1920*1080(保持与裸眼3D显示终端相同分辨率), 在Android设备端新建IP地址,裸眼3D显示终端弹出相同IP地址,点击IP地址,显示连接成 功。
[0048] 步骤十、在Android设备端进行2D场景的交互操作,裸眼3D显示终端响应相同的裸 眼3D交互动作;在Android设备端进行2D场景的交互操作,例如旋转,移动,缩放,通过TNet 插件的通信接口,相同ID值响应相同的动作,裸眼3D显示终端响应与之对应的裸眼3D交互 动作,实现基于Andro id设备的裸眼3D交互方法。
【主权项】
1. 一种基于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交互 动作。2. 如权利要求1所述的一种基于Android设备的裸眼3D交互方法,其特征在于,步骤b 中,所述调用TNet插件的相关接口实现网络通信包括:在开发引擎中创建新的场景,在新场 景中创建摄像机,将调用TNet插件的相关接口的代码文件挂在虚拟相机。3. 如权利要求1所述的一种基于Android设备的裸眼3D交互方法,其特征在于,步骤c 中,所述创建的交互式裸眼3D显示场景包括场景模块和显示模块,其中场景模块用于实现 裸眼功能和交互功能,显示模块用于实现显示功能。4. 如权利要求3所述的一种基于Android设备的裸眼3D交互方法,其特征在于,所述实 现裸眼功能的方式包括: 在开发引擎的Scene窗口创建八台虚拟相机,并将所有虚拟相机的坐标Position设置 为(0,0,0),旋转角度Rotation设置为(0,0,0),尺寸大小Scale设置为(1,1,1),然后调整每 台相机之间的距离间隔为〇. 017,同时在Layer属性中添加新层PlaySence,修改八台摄像机 的剔除遮罩Cul 1 ing Mask属性为PlaySence,在八台虚拟相机的正前方创建零平面 ZeroPlane,并设置其坐标Position设置为(0,0,10),旋转角度Rotation设置为(270,0,0), 尺寸大小Scale设置为(1,1,1 ),修改其属性将其隐藏,编写相关脚本实现八台摄像机聚焦 于零平面的中心点,然后在Project中创建8张植染贴图RenderTexture,将植染贴图的Size 修改为1920*1080,在每台虚拟相机的Target Texture属性中赋予不同的植染贴图,使得每 台摄像机对应一张渲染贴图,然后计算出视点子像素映射矩阵,并编写相应的Shader,然后 将视点映射矩阵编写到Shader中,利用Shader对相机渲染的多张渲染贴图进行子像素的采 样处理,并将经过采样处理的多张视差图像相互叠加,得到最终的合成图像。5. 如权利要求4所述的一种基于Android设备的裸眼3D交互方法,其特征在于,所述计 算出视点子像素映射矩阵的方式包括: 确定2D显示屏上给定的RGB子像素应该取自哪个视点的RGB分量,下式给出了多视点子 像素映射矩阵的计算公式:其中,X为一个光栅周期在水平方向上覆盖RGB子像素的个数,(k,l)为RGB子像素的坐 标位置,α为光栅轴相对于LCD显示屏垂直轴的倾斜夹角,koff表示2D显示屏左上边缘与光栅 单元边缘点的水平位移量,爪。*表示总视点个数,也就是参与合成的视差图像数量,根据上 式可计算出2D显示屏上的每个子像素的灰度值应该取自于哪幅视差图像的相应坐标位置 的灰度值。6. 如权利要求4所述的一种基于Android设备的裸眼3D交互方法,其特征在于,所述实 现交互功能的方式包括: 在场景中添加各种交互物体,并将其Layer属性中全部修改为PlaySence,然后在 Project中创建CS脚本,修改脚本名字为Play,编写脚本实现不同的交互动作,并将脚本挂 在与之相对应动作的交互物体之上,然后再创建CS脚本,修改脚本名字为TouchHandle,编 写脚本实现射线检测功能,并将脚本挂在其中一个虚拟摄像机,修改虚拟摄像机的属性为 MainCamera〇7. 如权利要求4所述的一种基于Android设备的裸眼3D交互方法,其特征在于,所述实 现显示功能的方式包括: 创建新的虚拟相机及显示面板,调整虚拟相机的坐标Position设置为(_5,0,100),旋 转角度Rotation设置为(0,90,0),尺寸大小Scale设置为(1,1,1),在Layer属性中添加新层 ShowSence,修改八台摄像机的剔除遮罩Cul 1 ing Mask属性为ShowSence,同时修改起摄像 方式为正交式,摄像角度调整为27,修改起深度Depth为1,然后调整显示面板的坐标 Position设置为(0,0,100),旋转角度Rotation设置为(90,-90,0),尺寸大小Scale设置为 (9.6,1,5.4),将其Layer属性修改为ShowSence,同时在显不面板创建材质球Material,通 过材质球的Custom选项调用shader获取合成图像,将合成图像呈现在显示面板,最后,保存 以上场景为Play。8. 如权利要求1所述的一种基于Android设备的裸眼3D交互方法,其特征在于,步骤d 中,所述运用TNet插件赋予不同交互物体不同ID值,包括:调用TNet插件的相关接口,修改 其通信脚本,将ID值设置为公有制变量,将通信脚本挂在不同交互物体上,并赋予不同的ID 值。9. 如权利要求1所述的一种基于Android设备的裸眼3D交互方法,其特征在于,步骤f 中,所述修改交互式裸眼3D显示场景为交互式2D显示场景,保持ID值不发生变化,具体包 括: 在场景中保留挂有TouchHandle的虚拟相机,删除其余七个虚拟相机,同时删除显示模 块中的新相机及显示面板。10. 如权利要求1所述的一种基于Android设备的裸眼3D交互方法,其特征在于,步骤h 中,所述将PC端连接到裸眼3D显示终端,同时将PC端、Android设备端连接到同一局域网络, 具体包括: 通过HDMI数据传输线将PC端与裸眼3D显示终端连接起来,将PC端的图像传输到裸眼3D 显示终端,同时通过路由器创建局域网,将PC端、Android设备同时连接到创建的局域网。
【文档编号】H04N13/04GK105959677SQ201610543986
【公开日】2016年9月21日
【申请日】2016年7月12日
【发明人】刘浩, 曾超, 屈锐敏, 沈季, 魏爽
【申请人】四川长虹电器股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1