一种头戴可视设备及其分屏显示方法和装置与流程

文档序号:19470995发布日期:2019-12-21 02:18阅读:176来源:国知局
一种头戴可视设备及其分屏显示方法和装置与流程

本发明涉及计算机领域,更涉及图像显示领域,尤其涉及一体式虚拟现实设备或一体式3d观影设备等图像显示。



背景技术:

基于安卓平台的头戴可视设备,如一体式的vr(virtualreality,虚拟现实)设备、一体式的3d观影设备日益普及,得到广泛使用。但是,目前为这些头戴可视设备开发的用于显示左右眼内容的应用数量少,且其开发难度大;对于已有的很多2d应用,由于其并非为头戴可视设备单独开发,这些2d应用直接显示在屏幕上时,用户的左眼看到的是应用的左半部分内容,右眼看到的是应用的右半部分内容,这会严重影响用户的体验和交互。

目前,行业内一般是利用开放图形库opengl(opengraphicslibrary)将2d应用分屏处理,即分别绘制在左侧屏幕和右侧屏幕上;当需要观看左右3d视频时,则把2d应用直接绘制在整个屏幕上。

例如,现有技术公开了一种视频播放控制方法,其在选定目标视频前,开启分屏模式,即将播放控制界面复制为双屏幕显示,左右排列显示于屏幕,左屏幕对应于人的左眼,右屏幕对应于人的右眼,然后根据目标视频的格式进行播放。尽管该方法根据视频的不同类型在opengl的vertexshader进行不同策略以分屏处理,但是该方法仅针对播放器等应用,对应用内部的视频图像及控制界面进行分屏,而对系统用户界面、例如系统消息通知等则与分屏的视频图像共存。

又例如,现有技术中还公开了一种界面显示方法,其先获取目标应用程序提交的应用程序标识,根据该标识确定该目标应用程序为非虚拟现实vr应用程序,则在左屏幕中构建左虚拟屏幕以及在右屏幕中构建右虚拟屏幕,对n个待显示界面均按照其显示顺序叠加以获得界面内容。该方法的区分层次是应用程序,即针对vr应用程序不作分屏处理,针对非vr应用程序进行分屏处理,所以非vr应用程序界面处理后的左右内容相同,其区分标准基于应用程序标识,即应用是否属于vr应用程序。

为了解决安卓2d应用无法直接应用于vr设备的技术问题,现有技术中还公开了一种头戴可视设备的图像显示方法,其先将待显示2d应用图像的屏幕宽度修改为设备本身屏幕宽度的一半,然后获取待显示2d应用基于修改后屏幕宽度的无失真图像,然后调用安卓系统中的surfaceflinger模块,使用opengl将该无失真图像绘制到左侧屏幕和右侧屏幕上显示。该方法可以解决图像失真的问题,尤其提高图片、文字的显示效果,但是其中左侧屏幕和右侧屏幕的内容完全相同,在观看左右3d视频时没有3d效果。

同时,现有技术也有另外一种用于vr设备的图像数据处理方法,其在运行虚拟显示应用时,实时判断数据缓冲区的待显示图像数据是否能应用于虚拟显示场景,当不能应用于虚拟显示场景时,则将该图像数据转换成能用于虚拟显示场景显示的标准图像数据并显示在屏幕中。尽管该方法可以对不能应用于vr场景的图像数据进行分屏处理,但是其复制整个图像数据获得左眼图像和右眼图像,对于3d视频无法体验3d效果。

可见,在解决在头戴可视设备上安卓2d界面分屏显示与支持3d视频无法兼容的这一技术问题时,现有技术中或采用把全部2d界面分别绘制到左边屏幕和右边屏幕,即简单内容复制的方法,但是该方法无法体验3d视频的3d效果,包括左右3d视频和上下3d视频;或进一步改进,将2d应用的视频属于左右眼画面或2d应用内部对视频图像进行分屏处理,其中不能对整个界面分别绘制到左边屏幕和右边屏幕,这样可以体验3d视频的3d效果;但是除了视频图像,对于其他界面,包括控制界面、系统通知界面等,则左眼只能看到一半画面,右眼只能看到另一半画面,影响交互,甚至导致眩晕,用户体验度不高。



技术实现要素:

本发明的目的在于提供一种头戴可视设备的分屏显示方法、系统及装置,其对于2d界面可以正确分屏显示,增强头戴设备的可操作性,丰富头戴设备的内容;同时,对2d界面经过分屏处理后,可以支持不同类型视频,除了基础2d视频,还包括左右3d视频、上下3d视频,能体验3d视频的3d效果;从而极大提高用户的体验感。另外,本发明的用于头戴可视设备的分屏显示方法简单易用,系统开发难度小,成本低。

本发明公开的头戴可视设备的分屏显示方法包括如下步骤:

步骤10,获取视频类型;

其中,视频类型包括2d视频和3d视频;3d视频包括左右3d视频和上下3d视频。

步骤20,综合判定显示模式;

其中,显示模式包括普通模式和3d模式,3d模式包括左右3d模式和上下3d模式;

步骤30,图层分类分屏合成;

其中,图层分类分屏合成是指对所有图层合成时根据图层类型、显示模式进行不同的分屏处理;其中,图层类型包括原始视频图层和非视频图层;

其中,图层分类分屏合成包括如下步骤:

根据图层类型和显示模式配置左边画布需获取的图像区域;

当图层类型为非视频图层时,任一显示模式下,配置获取全部图像区域;

当图层类型为视频图层时:

在普通模式下,配置获取全部图像区域;

在左右3d模式下,配置获取左半区域;

在上下3d模式下,配置获取上半区域;

随后,调整图像在左边画布显示区域;根据图层在整个界面的位置和左边显示区域调整顶点矩阵和视口;

在合成画布的左边绘制;

然后,判断是否为普通模式;

若处于普通模式时,结束这个图层的分屏处理;

否则,若处于其他模式时,根据图层类型和显示模式配置右边画布需获取的图像区域;其中,

当图层类型为非视频图层时,任一显示模式下,配置获取全部图像区域;

当图层类型为视频图层时:

在左右3d模式下,配置获取右半区域;

在上下3d模式下,配置获取下半区域;

然后,调整图像在右边画布显示区域;根据图层在整个界面的位置和右边显示区域调整顶点矩阵和视口;

在合成画布的右边绘制,并结束该图层的分屏处理。

在一个实施例中,该方法还包括如下步骤:

步骤40,合成图层分割显示;

若为普通模式,获取合成图层的左半区域显示在总屏幕的左边,获取合成图层的左半区域显示在总屏幕的右边;

若为其他模式,获取合成图层的左半区域显示在总屏幕的左边,获取合成图层的右半区域显示在总屏幕的右边。

在一个实施例中,步骤10中,获取视频类型的方法包括通过外部模块调用接口进行设置。

在一个实施例中,步骤10中,外部模块包括播放器应用、多媒体模块和按键响应模块。

在一个实施例中,步骤20中,综合判定显示模式包括如下步骤:

遍历所有可视图层,记录原始视频图层的个数;

判断原始视频图层的个数是否为0;

当原始视频图层的个数为0时,判定为普通模式;

否则,当原始视频图层的个数不为0时,判定为视频类型对应的模式,包括左右3d模式和上下3d模式。

在一个实施例中,步骤20中,当原始视频图层的个数为0时,判定为普通模式包括:当原始视频图层的个数为0时,视频为平面2d格式,判定为普通模式;

在一个实施例中,步骤20中,当原始视频图层的个数不为0时,判定为视频类型对应的模式包括:若视频为左右3d格式,判定为左右3d模式;若视频为上下3d格式,判定为上下3d模式。

在一个实施例中,步骤20中,

普通模式是指左眼和右眼的画面内容相同;

左右3d模式是指左眼画面内容是视频画面的左半部分与其他所有非视频图层的叠加,右眼画面内容是视频的右半部分与其他所有非视频图层的叠加。

上下3d模式是指左眼画面内容是视频画面的上半部分与其他所有非视频图层的叠加,右眼画面内容是视频的下半部分与其他所有非视频图层的叠加。

在一个实施例中,步骤30中,非视频图层包括各2d应用的界面图层和系统图层。

在一个实施例中,还包括如下步骤,在对系统初始化时,调整安卓系统的合成画布的宽高与一个终端屏幕的宽高相同,或者与两个终端屏幕的总宽高相同;其中,对于两个终端屏幕的情形,合成画布的宽是系统窗口的宽的两倍,合成画布的高是系统窗口的高。

本发明还公开了一种头戴可视设备的分屏显示装置,其包括获取视频类型模块、综合判定显示模式模块、图层分类分屏合成模块;

获取视频类型模块对待显示的视频类型进行获取;其中,视频类型包括2d视频和3d视频;3d视频包括左右3d视频和上下3d视频;

综合判定显示模式模块判定待显示视频的显示模式;其中,显示模式包括普通模式和3d模式,3d模式包括左右3d模式和上下3d模式;

图层分类分屏合成模块对所有图层合成时根据图层类型、显示模式进行不同的分屏处理;其中,图层类型包括原始视频图层和非视频图层;

其中,图层分类分屏合成模块操作如下步骤:

根据图层类型和显示模式配置左边画布需获取的图像区域;

当图层类型为非视频图层时,任一显示模式下,配置获取全部图像区域;

当图层类型为视频图层时:

在普通模式下,配置获取全部图像区域;

在左右3d模式下,配置获取左半区域;

在上下3d模式下,配置获取上半区域;

随后,调整图像在左边画布显示区域;根据图层在整个界面的位置和左边显示区域调整顶点矩阵和视口;

在合成画布的左边绘制;

然后,判断是否为普通模式;

若处于普通模式时,结束这个图层的分屏处理;

否则,若处于其他模式时,根据图层类型和显示模式配置右边画布需获取的图像区域;其中,

当图层类型为非视频图层时,任一显示模式下,配置获取全部图像区域;

当图层类型为视频图层时:

在左右3d模式下,配置获取右半区域;

在上下3d模式下,配置获取下半区域;

然后,调整图像在右边画布显示区域;根据图层在整个界面的位置和右边显示区域调整顶点矩阵和视口;

在合成画布的右边绘制,并结束该图层的分屏处理。

在一个实施例中,该分屏显示装置还包括合成图层分割显示模块,合成图层分割显示模块根据显示模式进行如下操作:

若为普通模式,获取合成图层的左半区域显示在总屏幕的左边,获取合成图层的左半区域显示在总屏幕的右边;

若为其他模式,获取合成图层的左半区域显示在总屏幕的左边,获取合成图层的右半区域显示在总屏幕的右边。

在一个实施例中,获取视频类型的方法包括通过外部模块调用接口进行设置。

在一个实施例中,外部模块包括播放器应用、多媒体模块和按键响应模块。

在一个实施例中,综合判定显示模式模块操作如下步骤:

遍历所有可视图层,记录原始视频图层的个数;

判断原始视频图层的个数是否为0;

当原始视频图层的个数为0时,判定为普通模式;

否则,当原始视频图层的个数不为0时,判定为视频类型对应的模式,包括左右3d模式和上下3d模式。

在一个实施例中,步骤20中,当原始视频图层的个数为0时,判定为普通模式包括:当原始视频图层的个数为0时,视频为平面2d格式,判定为普通模式;

在一个实施例中,步骤20中,当原始视频图层的个数不为0时,判定为视频类型对应的模式包括:若视频为左右3d格式,判定为左右3d模式;若视频为上下3d格式,判定为上下3d模式。

在一个实施例中,

普通模式是指左眼和右眼的画面内容相同;

左右3d模式是指左眼画面内容是视频画面的左半部分与其他所有非视频图层的叠加,右眼画面内容是视频的右半部分与其他所有非视频图层的叠加。

上下3d模式是指左眼画面内容是视频画面的上半部分与其他所有非视频图层的叠加,右眼画面内容是视频的下半部分与其他所有非视频图层的叠加。

在一个实施例中,非视频图层包括各2d应用的界面图层和系统图层。

本发明还公开了一种头戴可视设备,该头戴可视设备至少包括2d界面分类分屏显示装置和屏幕;

2d界面分类分屏显示装置包括上层绘制模块、系统分屏合成装置和系统分割显示模块;

系统分屏合成装置包括取视频类型模块、综合判定显示模式模块和图层分类分屏合成模块。

其中,获取视频类型模块对待显示的视频类型进行获取;其中,视频类型包括2d视频和3d视频;3d视频包括左右3d视频和上下3d视频;

综合判定显示模式模块判定待显示视频的显示模式;其中,显示模式包括普通模式和3d模式,3d模式包括左右3d模式和上下3d模式;

图层分类分屏合成模块对所有图层合成时根据图层类型、显示模式进行不同的分屏处理;其中,图层类型包括原始视频图层和非视频图层;

其中,图层分类分屏合成模块操作如下步骤:

根据图层类型和显示模式配置左边画布需获取的图像区域;

当图层类型为非视频图层时,任一显示模式下,配置获取全部图像区域;

当图层类型为视频图层时:

在普通模式下,配置获取全部图像区域;

在左右3d模式下,配置获取左半区域;

在上下3d模式下,配置获取上半区域;

随后,调整图像在左边画布显示区域;根据图层在整个界面的位置和左边显示区域调整顶点矩阵和视口;

在合成画布的左边绘制;

然后,判断是否为普通模式;

若处于普通模式时,结束这个图层的分屏处理;

否则,若处于其他模式时,根据图层类型和显示模式配置右边画布需获取的图像区域;其中,

当图层类型为非视频图层时,任一显示模式下,配置获取全部图像区域;

当图层类型为视频图层时:

在左右3d模式下,配置获取右半区域;

在上下3d模式下,配置获取下半区域;

然后,调整图像在右边画布显示区域;根据图层在整个界面的位置和右边显示区域调整顶点矩阵和视口;

在合成画布的右边绘制,并结束该图层的分屏处理。

在一个实施例中,系统分割显示模块包括合成图层分割显示模块,合成图层分割显示模块根据显示模式进行如下操作:

若为普通模式,获取合成图层的左半区域显示在总屏幕的左边,获取合成图层的左半区域显示在总屏幕的右边;

若为其他模式,获取合成图层的左半区域显示在总屏幕的左边,获取合成图层的右半区域显示在总屏幕的右边。

在一个实施例中,屏幕为一块屏幕。

在一个实施例中,屏幕包括左屏幕和右屏幕。

附图说明

图1为本发明的头戴可视设备的分屏显示方法的流程图。

图2为本发明的头戴可视设备的分屏显示方法中综合判定显示模式的流程图。

图3为本发明的头戴可视设备的分屏显示方法中图层分类分屏合成的流程图。

图4为本发明的头戴可视设备的分屏显示方法中分屏处理前的界面图层示意图。

图5为本发明的头戴可视设备的分屏显示方法中分屏处理后的界面图层示意图。

图6为本发明的头戴可视设备的分屏显示方法中合成图层分割显示时,在普通模式的合成画布与数据存储的示意图。

图7为本发明的头戴可视设备的分屏显示方法中合成图层分割显示时,在左右3d模式或上下3d模式的合成画布与数据存储的示意图。

图8为本发明的头戴可视设备的结构框图。

图9示出了根据现有技术中头戴可视设备进行分屏显示的效果图。

图10示出了根据本发明的头戴可视设备的分屏显示方法进行显示的实际效果图。

具体实施方式

为了对本发明的技术方案进行更详细的说明,以促进对本发明的进一步理解,下面结合附图描述本发明的具体实施方式。但应当理解,所有示意性实施例及其说明用于解释本发明,并不构成对本发明的唯一限定。

参考图1,本发明公开的头戴可视设备的分屏显示方法包括如下步骤:

步骤10,获取视频类型;

其中,视频类型包括但不限于平面2d,左右3d,上下3d。

获取视频类型的方法包括,通过外部模块调用接口进行设置;其中,外部模块包括但不限于播放器应用、多媒体模块、按键响应模块。

步骤20,综合判定显示模式;

显示模式包括普通模式、左右3d模式、上下3d模式。

其中,普通模式是指左眼和右眼的画面内容相同;

左右3d模式是指左眼画面内容是视频画面的左半部分与其他所有非视频图层的叠加,右眼画面内容是视频的右半部分与其他所有非视频图层的叠加。

上下3d模式是指左眼画面内容是视频画面的上半部分与其他所有非视频图层的叠加,右眼画面内容是视频的下半部分与其他所有非视频图层的叠加。

参考图2,综合判定显示模式的方法包括如下步骤:

遍历所有可视图层,记录原始视频图层的个数(步骤21);其中,可视图层是指安卓系统多个图层叠加后,仍可见且需要绘制的图层。原始视频图层是指从视频解码器解码后输出的图像数据,未经过opengl技术处理的原始图像数据。其中,判断图层是否为原始视频图层的依据可以是,图层的graphicbuffer的格式为yuv。但本发明不限定于该判断方式,也可以根据其他特性进行判断。例如,判定图层为原始视频图层的依据可以是解码器对graphicbuffer进行特定的标识。

判断原始视频图层的个数是否为0(步骤22);当原始视频图层的个数为0时,判定为普通模式(步骤23);否则,判定为视频类型对应的模式(步骤24);也就是说,判定可视图层中是否有原始视频图层,若视频为平面2d格式,判定为普通模式;若视频为左右3d格式,判定为左右3d模式;若视频为上下3d格式,判定为上下3d模式。

步骤30,图层分类分屏合成;

具体的,图层分类分屏合成是指对所有图层合成时根据图层类型、显示模式进行不同的分屏处理。其中,图层类型包括原始视频图层和非视频图层;其中,非视频图层包括各2d应用的界面图层、系统图层。

在一个实施例中,可以采用安卓系统中包括的合成图层时绘制所用的画布framebuffersurface(以下简称合成画布)进行合成,所有需要合成的图层利用opengl技术按照显示顺序依次叠加绘制到所述画布。上述图层分类分屏合成处理是指,对系统中一个或多个可视图层按照显示顺序,每个图层依次进行分屏处理。

参考图3,本发明的对图层进行分屏处理的方法包括如下步骤:

根据图层类型和显示模式配置左边画布需获取的图像区域(步骤31);

当图层类型为非视频图层时,任一显示模式下,配置获取全部图像区域;

具体地,在opengl的vertexshader的纹理矩阵是

当图层类型为视频图层时:

在普通模式下,配置获取全部图像区域;

在左右3d模式下,配置获取左半区域;具体地,在opengl的vertexshader的纹理矩阵是

在上下3d模式下,配置获取上半区域;具体地,在opengl的vertexshader的纹理矩阵是

随后,调整图像在左边画布显示区域(步骤32);根据图层在整个界面的位置和左边显示区域调整顶点矩阵和视口(viewport);

在合成画布的左边绘制(步骤33);

然后,判断是否为普通模式(步骤34);

若处于普通模式时,由于左眼所见内容与右眼所见内容相同,不重复绘制,结束这个图层的分屏处理(步骤38);

否则,当处于其他模式时,根据图层类型和显示模式配置右边画布需获取的图像区域(步骤35);其中,

当图层类型为非视频图层时,任一显示模式下,配置获取全部图像区域;

当图层类型为视频图层时:

在左右3d模式下,配置获取右半区域;具体地,在opengl的vertexshader的纹理矩阵是

在上下3d模式下,配置获取下半区域,具体地,在opengl的vertexshader的纹理矩阵是

然后,调整图像在右边画布显示区域(步骤36);根据图层在整个界面的位置和右边显示区域调整顶点矩阵和视口(viewport);

在合成画布的右边绘制(步骤37),并结束该图层的分屏处理(步骤38)。

需要说明的是,系统初始化时,需要调整安卓系统的合成画布的宽高与一个终端屏幕的宽高相同,或者与两个终端屏幕的总宽高相同;其中,对于两个终端屏幕的情形,合成画布的宽是系统窗口的宽的两倍,合成画布的高是系统窗口的高。

下面以一个具体实施例说明该分屏处理方法。

图4示出了分屏处理前的界面。其中,当前系统共有3个图层,显示顺序依次为应用401的视频图层、应用402的播放进度条图层、系统403的状态栏图层,其显示模式为上下3d模式。

按照401、402、403顺序进行分屏处理;首先,获取401图层上半区域绘制在左边画布,获取401图层下半区域绘制在右边画布;然后,获取402图层全部区域绘制在左边画布,获取402图层全部区域绘制在右边画布;获取403图层全部区域绘制在左边画布,获取403图层全部区域绘制在右边画布。

图5示出了分屏处理后的界面。可见,其中的安卓2d界面的应用界面、系统界面都正确地分屏显示,同时播放的上下3d视频也分屏形成正确的左右画面。

步骤40,合成图层分割显示;具体的,根据显示模式进行不同的处理:

若为普通模式,获取合成图层的左半区域显示在总屏幕的左边,获取合成图层的左半区域显示在总屏幕的右边;

若为其他模式,获取合成图层的左半区域显示在总屏幕的左边,获取合成图层右半区域显示在总屏幕的右边。

在一个具体实施例中,对于分辨率2w*h的合成画布,由于其是一个逻辑概念,在内存中实为一片按照一定规则存放着2w*h个像素的rgba值的连续数据,这片内存称为一个buffer。输入(buffer首地址,x偏移量,y偏移量,x长度,y长度),计算出屏幕上各像素的rgba值地址,读取数据显示。

参考图6,其为普通模式的合成画布与数据存储的示意图。其中,像素的rgba值存储规则是从下到上,从左到右,由于普通模式不需要绘制右边区域,所以buffer后半部分的数据是无效的。左边屏幕,输入(data,xoffset=0,yoffset=0,xlength=w,ylength=h),则屏幕上显示从(0,0)到(w,h)的数据,即合成图层的左半区域。右边屏幕,同样输入(data,xoffset=0,yoffset=0,xlength=w,ylength=h),则屏幕上也显示从(0,0)到(w-1,h-1)的数据,即合成图层的左半区域。可见,普通模式下复用合成后的图像数据,从而减少右眼区域的绘制,减少开销。

参考图7,其为左右3d模式或上下3d模式的合成画布与数据存储的示意图。其中,像素的rgba值存储规则是从下到上,从左到右。左边屏幕,输入(data,xoffset=0,yoffset=0,xlength=w,ylength=h),则屏幕上显示从(0,0)到(w-1,h-1)的数据,即合成图层的左半区域。右边屏幕,输入(data,xoffset=w,yoffset=0,xlength=w,ylength=h),则屏幕上也显示从(w,0)到(2w-1,h)的数据,即合成图层的右半区域。

本发明还公开了一种头戴可视设备的分屏显示装置,其包括获取视频类型模块、综合判定显示模式模块、图层分类分屏合成模块以及合成图层分割显示模块。

获取视频类型模块对待显示的视频类型进行获取,具体的其通过外部模块调用接口进行设置;其中,外部模块包括但不限于播放器应用、多媒体模块、按键响应模块。

综合判定显示模式模块判定待显示视频的显示模式;其中,显示模式包括普通模式、左右3d模式、上下3d模式;其中,普通模式是指左眼和右眼的画面内容相同;左右3d模式是指左眼画面内容是视频画面的左半部分与其他所有非视频图层的叠加,右眼画面内容是视频的右半部分与其他所有非视频图层的叠加;上下3d模式是指左眼画面内容是视频画面的上半部分与其他所有非视频图层的叠加,右眼画面内容是视频的下半部分与其他所有非视频图层的叠加。

综合判定显示模式模块进行如下操作:

遍历所有可视图层,记录原始视频图层的个数;其中,可视图层是指安卓系统多个图层叠加后,仍可见且需要绘制的图层。原始视频图层是指从视频解码器解码后输出的图像数据,未经过opengl技术处理的原始图像数据。其中,综合判定显示模式模块遍历所有可视图层,判定该可视图层是否为原始视频图层,并记录原始视频图层的个数;其中,判断可视图层是否为原始视频图层的依据可以是图层的graphicbuffer的格式为yuv。

判断原始视频图层的个数是否为0;当原始视频图层的个数为0时,判定为普通模式;否则,判定为视频类型对应的模式;也就是说,判定可视图层中是否有原始视频图层,若视频为平面2d格式,判定为普通模式;若视频为左右3d格式,判定为左右3d模式;若视频为上下3d格式,判定为上下3d模式。

图层分类分屏合成模块对所有图层合成时根据图层类型、显示模式进行不同的分屏处理;其中,图层类型包括原始视频图层和非视频图层;其中,非视频图层包括各2d应用的界面图层、系统图层。

分屏处理方法包括如下步骤:

根据图层类型和显示模式配置左边画布需获取的图像区域;其中,当图层类型为非视频图层时,任一显示模式下,配置获取全部图像区域;当图层类型为视频图层时:在普通模式下,配置获取全部图像区域;在左右3d模式下,配置获取左半区域;在上下3d模式下,配置获取上半区域。

调整图像在左边画布显示区域;根据图层在整个界面的位置和左边显示区域调整顶点矩阵和视口;

在合成画布的左边绘制;

随后,判断是否为普通模式;

若是,即处于普通模式时,结束该图层的分屏处理;

若否,即处于其他模式时,根据图层类型和显示模式配置右边画布需获取的图像区域;其中,

当图层类型为非视频图层时,任一显示模式下,配置获取全部图像区域;

当图层类型为视频图层时:

在左右3d模式下,配置获取右半区域;在上下3d模式下,配置获取下半区域。

调整图像在右边画布显示区域;根据图层在整个界面的位置和右边显示区域调整顶点矩阵和视口;

在合成画布的右边绘制,并结束该图层的分屏处理。

合成图层分割显示模块根据显示模式进行不同的处理;

若为普通模式,获取合成图层的左半区域显示在总屏幕的左边,获取合成图层的左半区域显示在总屏幕的右边;

若为其他模式,获取合成图层的左半区域显示在总屏幕的左边,获取合成图层右半区域显示在总屏幕的右边。

另外,本发明还公开了一种头戴可视设备,如图8所示,该头戴可视设备至少包括2d界面分类分屏显示的装置和屏幕。2d界面分类分屏显示的装置包括上层绘制模块601、系统分屏合成模块602和系统分割显示模块603。其中,系统分屏合成模块602包括取视频类型模块、综合判定显示模式模块和图层分类分屏合成模块。屏幕可以是一块屏幕;也可以是两块屏幕,包括左屏幕和右屏幕;屏幕的显示分辨率为w(宽)*h(高),如图8所示。

两块屏幕中的一块屏幕对上层绘制模块601透明,所以上层绘制模块601根据两块屏幕中的一块屏幕的显示分辨率(即窗口分辨率为w*h)进行绘制,包括2d应用和系统参与绘制出多个图层。系统分屏合成模块602根据图层类型、显示模式针对每个可见图层进行分屏处理,合成一张显示左右眼的图像分辨率为2w*h的图像,其具体方法包括上文所述的步骤10中获取视频类型、步骤20中综合判定显示模式和步骤30中图层分类分屏合成。系统分割显示模块603选取合成画布的指定一半区域分别送给两块屏幕,其具体方法包括上文中所述的步骤40中合成图层分割显示。

本发明的头戴可视设备的分屏显示方法及装置在vr9平台已实现和使用,证明可行。

图9示出了现有技术中存在的显示方法。图9中,(a)示出了对左右3d视频一般复制分屏处理的显示效果;(b)示出了对2d视频一般复制分屏处理的显示效果;(c)示出了左右3d模式时系统ui显示不分屏的显示效果;(d)示出了无法上下3d视频的显示效果。

图10示出了根据本发明的头戴可视设备的分屏显示方法进行显示的实际效果图,其中包括普通模式、左右3d模式以及上下3d模式的显示效果。

如图10所示,与图9所示的现有技术的显示效果对比可见,其实际显示结果中安卓2d界面分屏正确,头戴可视设备可正常交互且能观看左右3d视频、上下3d视频和体验3d效果。

结合上述实施例及实施效果可以看出,本发明的显示方法实现了如下有益效果:

(1)兼顾正确的视觉交互和3d观影效果体验。保证安卓2d界面的应用界面、系统界面都正确地分屏显示,与此同时,支持采用2d播放器播放3d视频时分屏形成正确的左右画面,使得使用者体验到3d效果,提高系统对2d软件的兼容性,降低系统所需软件的开发成本。

(2)支持多种3d视频格式,包括左右3d和上下3d。

以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限制本发明,凡在本发明的精神和原则之内所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

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