[发明专利]一种终端设备中切换虚拟现实模式的方法及系统有效
申请号: | 201611091502.5 | 申请日: | 2016-12-01 |
公开(公告)号: | CN106598514B | 公开(公告)日: | 2020-06-09 |
发明(设计)人: | 王凯迪 | 申请(专利权)人: | 惠州TCL移动通信有限公司 |
主分类号: | G06F3/14 | 分类号: | G06F3/14;G06F3/038;G06F3/01 |
代理公司: | 深圳市君胜知识产权代理事务所(普通合伙) 44268 | 代理人: | 王永文;刘文求 |
地址: | 516006 广东省*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 终端设备 切换 虚拟现实 模式 方法 系统 | ||
1.一种终端设备中切换虚拟现实模式的方法,其特征在于,其包括:
所述终端设备上预先设置一控制按键,所述控制按键用于控制终端设备显示模式的切换,所述控制按键设置为两个控制开关,监听到切换指令时,确定所述切换指令对应的显示模式,并将当前的显示模式与切换指令对应的显示模式进行比较,其中,所述显示模式包括虚拟现实模式以及普通模式;
当当前的显示模式与切换指令对应的显示模式相同时,则结束操作;
当当前的显示模式与切换指令对应的显示模式不同,且所述切换指令对应的显示模式为虚拟现实模式时,获取当前帧图像,并使用OpenGL函数将所述图像以左右分屏的方式绘制到预设的帧缓冲区中;所述帧缓冲区是用于终端设备做离屏渲染;所述离屏渲染是将当前帧图像渲染至所述帧缓冲区,而不直接渲染至系统的缓冲区;
将所述预设的帧缓冲区中的内容分别绘制到终端设备的左右屏幕;
所述方法还包括:
当所述切换指令对应的显示模式为普通模式时,获取当前帧图像,并使用OpenGL函数将所述图像绘制至系统缓存区;
采用SurfaceFlinger服务将所述系统缓存区中的内容进行组合并显示于终端设备的屏幕上;
所述将所述预设的帧缓冲区中的内容分别绘制到终端设备的左右屏幕具体包括:
使用OpenGL函数将所述预设的帧缓冲区对应的纹理图像分别绘制成左右屏幕的显示内容;
通过SurfaceFlinger服务分别将左右屏幕的显示内容进行混合,并以分屏方式显示于终端设备的屏幕上;具体为使用OpenGL函数对预设帧缓冲区对应的纹理图像进行二次绘制,即将所述纹理图像绘制至系统缓冲区,并采用SurfaceFlinger服务对系统缓冲区的左右屏幕的显示内容分别进行混合,并将混合后的左右屏幕的显示内容提交至终端设备的显示模块,使得当前帧图像以分屏方式显示于终端设备的屏幕上;
所述将所述预设的帧缓冲区中的内容分别绘制到终端设备的左右屏幕之前还包括:
通过终端设备预设的传感器模块获取用户头部状态数据,并根据所述用户头部状态数据计算用户左右眼的透视矩阵;
所述将所述预设的帧缓冲区中的内容分别绘制到终端设备的左右屏幕内容具体为:
根据所述用户左右眼的透视矩阵,使用OpenGL函数将所述预设的帧缓冲区中的内容分别绘制到终端设备的左右屏幕内容。
2.根据权利要求 1所述终端设备中切换虚拟现实模式的方法,其特征在于,所述监听到切换指令时,确定所述切换指令对应的显示模式,其中,所述显示模式包括虚拟现实模式以及普通模式之前还包括:
当所述终端设备启动时,启动SurfaceFlinger服务;
通过OpenGL函数创建一帧缓冲区和纹理对象,并将所述帧缓冲区与所述纹理对象绑定。
3.根据权利要求2所述终端设备中切换虚拟现实模式的方法,其特征在于,所述通过终端设备预设的传感器模块获取用户头部状态数据,并根据所述用户头部状态数据计算用户左右眼的透视矩阵具体包括:
读取所述传感器模块前一次界面刷新信号至当前界面刷新信号之间获取的用户头部状态数据;
根据所述用户头部状态数据计算用户左右眼的透视矩阵。
4.一种终端设备中切换虚拟现实模式的系统,其特征在于,其包括:
监听模块,用于所述终端设备上预先设置一控制按键,所述控制按键用于控制终端设备显示模式的切换,所述控制按键设置为两个控制开关,监听到切换指令时,确定所述切换指令对应的显示模式,并将当前的显示模式与切换指令对应的显示模式进行比较,其中,所述显示模式包括虚拟现实模式以及普通模式;
当当前的显示模式与切换指令对应的显示模式相同时,则结束操作;
第一绘制模块,用于当当前的显示模式与切换指令对应的显示模式不同,且所述切换指令对应的显示模式为虚拟现实模式时,获取当前帧图像,并使用OpenGL函数将所述图像以左右分屏的方式绘制到预设的帧缓冲区中;当所述切换指令对应的显示模式为普通模式时,获取当前帧图像,并使用OpenGL函数将所述图像绘制至系统缓存区;采用SurfaceFlinger服务将所述系统缓存区中的内容进行组合并显示于终端设备的屏幕上;具体为使用OpenGL函数对预设帧缓冲区对应的纹理图像进行二次绘制,即将所述纹理图像绘制至系统缓冲区,并采用SurfaceFlinger服务对系统缓冲区的左右屏幕的显示内容分别进行混合,并将混合后的左右屏幕的显示内容提交至终端设备的显示模块,使得当前帧图像以分屏方式显示于终端设备的屏幕上;
所述帧缓冲区是用于终端设备做离屏渲染;所述离屏渲染是将当前帧图像渲染至所述帧缓冲区,而不直接渲染至系统的缓冲区;
第二绘制模块,用于将所述预设的帧缓冲区中的内容分别绘制到终端设备的左右屏幕;使用OpenGL函数将所述预设的帧缓冲区对应的纹理图像分别绘制成左右屏幕的显示内容;
通过SurfaceFlinger服务分别将左右屏幕的显示内容进行混合,并以分屏方式显示于终端设备的屏幕上;
传感器模块,用于通过终端设备预设的传感器模块获取用户头部状态数据,并根据所述用户头部状态数据计算用户左右眼的透视矩阵;
所述第二绘制模块具体用于:
根据所述用户左右眼的透视矩阵,使用OpenGL函数将所述预设的帧缓冲区中的内容分别绘制到终端设备的左右屏幕内容。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于惠州TCL移动通信有限公司,未经惠州TCL移动通信有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201611091502.5/1.html,转载请声明来源钻瓜专利网。
- 上一篇:一种多机拼接显示互动方法和装置
- 下一篇:一种移动终端及悬浮分屏方法