一种Android应用的裸眼3D显示方法与流程

文档序号:12905895阅读:1150来源:国知局

本发明涉及android应用的显示方法和裸眼3d显示领域,尤其涉及一种android应用的裸眼3d显示方法。



背景技术:

android是一种基于linux的自由及开放源代码的操作系统,主要使用于移动设备,如智能手机和平板电脑,由google公司和开放手机联盟领导及开发。随着近几年移动设备的高速发展,android逐渐成为移动设备上的主要操作系统,在2011年全球的市场份额上首次超过塞班系统,跃居全球第一,2013年的第四季度,android平台手机的全球市场份额已经达到78.1%。

越来越多的移动设备选用android作为他们的操作系统,而在移动设备上android应用更是五花八门,2014年android应用数量高达143万超过了ios应用数量。由于android系统是完全开源的,android平台提供给第三方开发商一个十分宽泛、自由的环境,所以各种新颖的android应用层出不穷。android应用的ui界面是用户对android应用的第一感观,独特优秀的ui界面设计会给人带来舒畅的视觉享受,拉近人与机器的距离,随着软件应用的广泛,开发者关于ui界面设计需要也逐步提高,用户不止看中其功用实用性,更是需要ui来提升用户领会性,在操作享受软件带来的便当之余也不乏其美丽性带来的愉悦感。

本发明就是提出一种全新的android应用界面显示方法,应用裸眼3d显示技术在android系统中显示真实的3d图形影像,塑造一种全新的裸眼3dui显示界面。应用了裸眼3d显示方法可以让android应用界面看起来栩栩如生,具有真实的立体感官享受,还能够让用户和移动设备进行具有真实感的人机交互,摆脱2d屏幕的束缚,而且开发者还可以利用android应用裸眼3d显示方法进行更加独特生动的ui界面和功能应用开发。



技术实现要素:

本发明的目的是提供一种android应用的裸眼3d显示方法。该方法能提供给android开发者一种全新的ui界面设计方法和全新的极具震撼效果的android应用展示平台,具有比传统2d的android应用更加真实图像显示和更加生动的三维立体交互体验。

如上所述,实现一种android应用的裸眼3d显示方法包括如下步骤:

a.在3d引擎中重新创建新的android工程,将原有的android工程资源包导入裸眼3d开发工程中,并且加载裸眼ui界面资源包和裸眼camera资源包;

b.在主窗体布局界面activity中创建用户界面,在用户界面窗口中调用裸眼ui界面资源包用以编辑用户界面。ui界面设置可以在指定的模拟屏幕中绘制3d区域,为每个3d区域设置好深度信息;

c.在每个3d区域内,编写脚本代码以形成相应的ui交互功能并且在3d区域内添加图片,文字信息以充实ui功能组件的材质,然后再给每个ui的功能组件绑定深度信息以达到用户对界面立体效果的需求;

d.将编辑好的主窗体布局界面activity进行深度立体渲染,深度立体渲染是将预编辑的ui界面通过预置深度信息,将2d的用户界面转换成3d立体用户界面的渲染过程,

该过程需要用到的公式:

;

;

;

;

其中,是第一个3d区域在3d立体ui界面中的对应每个视差n需要偏移的实际空间距离,n是当前3d区域的编号,(x1,y1)是该3d区域的顶点坐标,z1是该3d区域的预置深度信息,是该3d区域最优深度信息,需要对该3d区域所有功能组件的预置深度信息进行统计,选取中值作为该3d区域的最优深度信息是屏幕坐标转换到世界场景坐标的转换系数,zero是ui界面的原点深度值,是该区域最大的深度预置数值,n是android移动设备的裸眼视差参数(n2),offset是立体跳变参数,可以根据最后的渲染结果人为的设置offset以到达最舒适的裸眼立体效果,优选的offset默认为0;

通过计算每个3d区域在n个视差中实际的空间偏移距离后,就可以在着色器的shader中使用android立体界面合成公式渲染出最终的3d立体ui界面。android立体界面合成需要对每个3d区域依次分别计算,根据计算空间实际偏移距离的结果d1,d2,d3…dn按照从小到大重新排列成t1,t2,t3…tn,再依次计算t1,t2,t3…tn:;

其中tex2d是每个区域ui界面的渲染结果,p是每个区域的序号,是最终输出ui界面的坐标,优选的为了符合裸眼立体效果的准确性,当t1,t2,t3…tn的计算结果在同一坐标下出现多个结果时选取n最大的tex2d作为最终结果用以确保前景物体遮挡背景的立体空间效果;

e.在android应用工程中的java主程序端中导入3d引擎库用以在ui界面中添加3d特效,在深度立体渲染过后的主窗体布局界面activity中设置android应用需要的模型动画或者动画特效并设置好响应事件以得到android应用界面;

f.使用裸眼camera资源包,创建裸眼3d显示界面,将步骤5中的android应用界面在裸眼3d显示界面中按照android的n(n2)视点合成重新渲染:

;

其中tex3d是裸眼3d显示界面的输出图像,是输出图像的坐标,是android应用界面的对于n个视点数中每个视点数的输出图像。优选的android多视点合成公式是将n个视点数每个视点数的输出图像按照横坐标的关系插值成n个宽度的合成图像,再缩放成1个宽度的裸眼3d显示界面的输出图像;

g.将渲染成裸眼3d显示界面的android工程发布成apk,在相应的android裸眼移动设备中安装运行,用户就可以体验到具有裸眼立体显示效果的android应用。

本发明所要解决的技术问题:提供一种android应用的裸眼3d显示方法。该方法是一种全新的android设备显示方法,该方法可以在android系统中显示真实的3d图形影像,塑造一种全新的裸眼3dui显示界面,不仅让android应用界面看起来栩栩如生,具有真实的立体感官享受,还能够让用户和移动设备进行具有真实感的人机交互,摆脱2d屏幕的束缚,而且开发者还可以利用android应用裸眼3d显示方法进行更加独特生动的ui界面和功能应用开发。

附图说明

图1是本发明一种android应用的裸眼3d显示方法的流程图。

具体实施方式

下面结合附图和具体的实施方式对本发明作进一步详细的描述。

图1是本发明一种android应用的裸眼3d显示方法的流程图,步骤为:

a.在开发android应用的3d引擎中重新创建android工程,将原2d的android应用以资源包的形式导入新工程中,包括需要用到的脚本,图片,文字,素材库,模型和动画等等并且加载裸眼ui界面资源包和裸眼camera资源包;

b.在工程的主窗体布局界面activity中创建好用户界面,用户界面包括首页界面和次级界面等,在用户界面中使用裸眼ui界面资源包为每个界面预先绘制3d区域,绘制的3d区域可以设定分辨率,所在屏幕的窗口坐标和风格类型等。在预置的3d区域中还需要设置深度数值,深度数值直接影响了最终界面的立体效果,深度值越小表示该3d区域在界面中的z轴距离坐标原点越远,而深度值越大表示该3d区域在界面中的z轴距离原点越近。优选的为了达到更好的立体效果,每个3d区域的深度数值需要形成一个阶梯状的排列,这样ui界面的层次更加分明,用户可以更加清楚地观看到入屏和出屏效果;

c.在主窗体布局界面activity中还需要创建各种功能组件,功能组件需要使用gui(graphicaluserinterface)控件来添加相应的功能模块例如:按钮,文本框,编辑框,选择框和下拉列表等等,设定好功能模块后还需要编写脚本用以实现各个模块的各项实例功能并且绑定一个深度信息用以确定每个功能组件在ui界面中的前后关系。在用户界面中还需要添加图片,文字信息以充实ui功能组件的材质,优选的这些材质可以使用2d透明通道的材质,这样材质填充在功能组件中和功能组件的深度信息一致;还可以使用3d立体材质,3d材质自身具有ui界面的z轴信息,需要预先调整好3d材质在ui界面中的空间位置以确保功能组件能够正确的在ui界面中显示;

d.将编辑好的主窗体布局界面activity进行深度立体渲染,深度立体渲染是将预编辑的ui界面通过预置深度信息,将2d的用户界面转换成3d立体用户界面的渲染过程,该过程需要用到的公式:

;

;

;

;

其中,是第一个3d区域在3d立体ui界面中的对应每个视差n需要偏移的实际空间距离,n是当前3d区域的编号,(x1,y1)是该3d区域的顶点坐标,z1是该3d区域的预置深度信息,是该3d区域最优深度信息,需要对该3d区域所有功能组件的预置深度信息进行统计,选取中值作为该3d区域的最优深度信息是屏幕坐标转换到世界场景坐标的转换系数,zero是ui界面的原点深度值,是该区域最大的深度预置数值,n是android移动设备的裸眼视差参数(n2),offset是立体跳变参数,可以根据最后的渲染结果人为的设置offset以到达最舒适的裸眼立体效果,优选的offset默认为0;

通过计算每个3d区域在n个视差中实际的空间偏移距离后,就可以在着色器的shader中使用android立体界面合成公式渲染出3d立体ui界面。android立体界面合成需要对每个3d区域依次分别计算,根据计算空间实际偏移距离的结果d1,d2,d3…dn按照从小到大重新排列成t1,t2,t3…tn,再依次计算t1,t2,t3…tn:

;

其中tex2d是每个区域ui界面的渲染结果,p是每个区域的序号,是最终输出ui界面的坐标,优选的为了符合裸眼立体效果的准确性,当t1,t2,t3…tn的计算结果在同一坐标下出现多个结果时选取n最大的tex2d作为最终结果用以确保前景物体遮挡背景的立体空间效果;

e.在android应用工程中的java主程序端中导入3d引擎库用以在ui界面中添加3d特效。在导入3d引擎库后,可以从3d引擎库中选择android应用需要的模型动画或者动画特效,这些模型动画或动画特效可以通过android系统服务层反馈给java主程序端,由java主程序端来控制模型动画或者动画特效的响应事件。设置好3d特效和3d特效的响应事件后就得到了最终的android应用界面;

f.使用裸眼camera资源包,创建一个裸眼3d显示界面,最终的android应用界面在裸眼3d显示界面中按照android的n(n2)视点合成重新渲染:

;

其中tex3d是裸眼3d显示界面的输出图像,是输出图像的坐标,是android应用界面的对于n个视点数中每个视点数的输出图像。优选的android多视点合成公式是将n个视点数中每个视点的输出图像按照横坐标的关系插值成n个宽度的合成图像,再缩放成1个宽度的裸眼3d显示界面的输出图像;

g.最后将渲染成裸眼3d显示界面的android工程发布成apk,在相应的android裸眼移动设备中安装运行,用户就可以体验到具有裸眼立体显示效果的android应用。

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