实现同时响应陀螺仪与手势拖拽交互的方法和装置及手机制造方法及图纸

技术编号:15284089 阅读:49 留言:0更新日期:2017-05-06 12:34
本发明专利技术公开了一种实现同时响应陀螺仪与手势拖拽交互的方法,包括同时监听手机的陀螺仪变化和手机屏幕上的手势拖拽操作,当获取到陀螺仪的原始数据并将它转换成旋转矩阵的形式,然后将旋转矩阵应用到放置于球心的相机上使其做同样的旋转变换,当监听获取到用户在屏幕上横向拖拽的距离和方向并控制球面模型绕相机自身坐标系的X轴或Y轴按拖拽的方向进行旋转;在视角旋转同时渲染层利用图形库进行模型和画面的渲染。本发明专利技术实现了全景视频播放时可以同时通过陀螺仪和手势拖拽来调整视频视角的功能。将全景视频视角变换的渲染层逻辑与播放器隔离开来,播放器可以自由选择,灵活度较高。

Method, device and mobile phone for realizing simultaneous response and interaction between gyroscope and gesture

The invention discloses a method for interactive gesture and response of gyroscope and drag an implementation, including monitoring and mobile phone and mobile phone screen change gyroscope gestures on the drag and drop, when access to the original data of the gyroscope and convert it into a rotation matrix form, and then the rotation matrix applied to the center of the camera is placed in the do the same rotation, when the X or Y axis to get the user to monitor the distance and direction of the horizontal drag on the screen and control the camera itself around the spherical model coordinates by dragging the direction of rotation of the model; and pictures in the angle of rotation and rendering layer using the graphics library for rendering. The invention realizes the function of adjusting the visual angle of the video when the panoramic video playback can be simultaneously carried out by a gyroscope and a hand gesture. The panoramic video visual angle of the rendering layer is separated from the player, the player is free to choose, high flexibility.

【技术实现步骤摘要】

本专利技术涉及全景视频播放
,特别是涉及一种实现Android平台全景视频播放同时响应陀螺仪与手势拖拽交互的方法和装置。
技术介绍
近两年,虚拟现实技术得到了飞速的发展,例如国外的Oculus、Google、三星都发布了自己的VR产品,包括虚拟现实硬件设备和开发使用的SDK。目前主要的VR设备有三大类。一类是VR眼镜,这类产品需要配合手机使用,将手机插入到VR眼睛中,配合VR应用来体验虚拟现实效果,VR应用运行于手机之上,比较有代表性的是Google的Cardboard和DayDreamView;另一类是VR头显,这类需要和电脑或者游戏主机配合使用,应用在电脑或者主机中,VR头显只负责展示从主机或者电脑传输过来的影像信号,例如HTCVIVE;最后一类称为VR一体机,也就是不需要借助其他设备,用户只需要带上这个设备,在任何地方都能体验VR效果。目前这些VR设备上主流的应用形式有两大类,一类是游戏应用,而另一类就是全景视频应用。全景视频不同于传统视频,提供了一种全新的交互方式和体验。如何为用户提供更逼真的虚拟现实体验成为我们首先需要解决的问题。目前国内外也有不少研究全景视频技术的公司,比如Google公司发布的DayDreamSDK(前身是CarboardSDK),该SDK提供了一种根据陀螺仪数据变化变换观看角度来实现全景视频播放的方式。国内的有些公司也研发了自己的实现全景视频播放的产品。大致分为两类,一类是基于CardboardSDK进行开发,另一类是使用自己的算法实现。根据陀螺仪变化调整视频视角。也有的公司针对手机端的产品开发了使用户可以通过手势拖拽来调整观看视角的功能。Google的DayDreamSDK或CardboardSDK的全景播放的方案因为使用简单,被广泛应用,但是它存在两处不足:一是它只支持根据陀螺仪数据变化来调整观看视角;二是由于该项目不开放源代码且采用了谷歌自家的播放器,因此全景播放器无法进行一些定制化修改,遇到了bug也只能等待google来解决。这对于那些对播放器有定制化需求的产品而言存在一定使用上的局限性。而国内的产品主要存在两类问题:一是他们中的大部分的只支持单一的交互方式,即根据陀螺仪数据变化来调整视角的方式。部分产品虽然也支持手势拖拽和陀螺仪两者,但是并不能对两者同时进行响应,只能在陀螺仪模式和手势拖拽模式间切换,如UtoVR等;二是大部分产品在响应陀螺仪时都是利用陀螺仪的原始数据直接处理,而有些手机陀螺仪数据往往是不够精确的,而且陀螺仪旋转数据变化经常会存在一定的抖动现象,即手机静止时,陀螺仪返回的数据有时也会发生一定的变化,就导致最终在播放视频时移动手机可能会导致视频抖动,用户体验较差。
技术实现思路
本专利技术的目的是针对现有技术中存在的技术缺陷,而提供一种实现Android平台全景视频播放同时响应陀螺仪与手势拖拽交互的方法和装置。为实现本专利技术的目的所采用的技术方案是:一种实现同时响应陀螺仪与手势拖拽交互的方法,包括,在Android视频图像绘制的目标视图上建立一个球面模型,创建一个用于控制视角的相机并放置在球面模型的球心位置;播放器对全景视频进行解码操作并生成视频纹理,然后将视频纹理附着在所述的球面模型的内表面,同时监听手机的陀螺仪变化和手机屏幕上的手势拖拽操作,当获取到陀螺仪的原始数据并将它转换成旋转矩阵的形式,然后将旋转矩阵应用到放置于球心的相机上使其做同样的旋转变换,当监听获取到用户在屏幕上横向拖拽的距离和方向并控制球面模型绕相机自身坐标系的X轴或Y轴按拖拽的方向进行旋转;在视角旋转同时渲染层利用图形库进行模型和画面的渲染。将陀螺仪旋转矩阵中的每一个数据项采用低通滤波器进行过滤以把过高的变化值滤掉,得以消除陀螺仪的抖动使得旋转变换更平滑更连贯。所述的低通过滤器的处理方法为,R[n]=R[n-1]+a*(X[n]-R[n-1])其中X[n]代表当前陀螺仪采集到的旋转矩阵中的某一元素值,R[n-1]代表上一次计算完后真正用于旋转变换的旋转矩阵中的某一元素值,R[n]代表矫正后的结果值,a是矫正因子。获取到用户在屏幕上横向拖拽的距离和方向,然后使得球面模型绕相机自身坐标系的Y轴按拖拽的方向进行旋转,旋转的角度大小与拖拽的距离相对应;获取到用户在屏幕上纵向拖拽的距离和方向,然后使得球面模型绕相机自身坐标系的X轴按拖拽的方向进行旋转,旋转的角度大小与拖拽的距离相对应。利用OpenGLES创建所述的球面模型和相机,所述的图形库为OpenGLES。一种实现同时响应陀螺仪与手势拖拽交互的装置,包括,建模模块,用以在Android视频图像绘制的目标视图上建立一个球面模型,创建一个用于控制视角的相机并放置在球面模型的球心位置;播放模块,用以对全景视频进行解码操作并生成视频纹理,然后将视频纹理附着在所述的球面模型的内表面,旋转模块,同时监听手机的陀螺仪变化和手机屏幕上的手势拖拽操作,当获取到陀螺仪的原始数据并将它转换成旋转矩阵的形式,然后将旋转矩阵应用到放置于球心的相机上使其做同样的旋转变换,当监听获取到用户在屏幕上横向拖拽的距离和方向并控制球面模型绕相机自身坐标系的X轴或Y轴按拖拽的方向进行旋转;渲染模块,用以在视角旋转同时利用图形库进行模型和画面的渲染。还包括低通滤波器,用以将陀螺仪旋转矩阵中的每一个数据项进行过滤以把过高的变化值滤掉,得以消除陀螺仪的抖动使得旋转变换更平滑更连贯。所述的低通过滤器的处理方法为,R[n]=R[n-1]+a*(X[n]-R[n-1])其中X[n]代表当前陀螺仪采集到的旋转矩阵中的某一元素值,R[n-1]代表上一次计算完后真正用于旋转变换的旋转矩阵中的某一元素值,R[n]代表矫正后的结果值,a是矫正因子。利用OpenGLES创建所述的球面模型和相机,所述的图形库为OpenGLES。一种具有所述的装置的手机。与现有技术相比,本专利技术的有益效果是:(1)本专利技术实现了全景视频播放时可以同时通过陀螺仪和手势拖拽来调整视频视角的功能。(2)本专利技术针对原始的陀螺仪数据采用低通滤波器进行预处理,降低了由于陀螺仪精度问题导致的旋转变换不平滑甚至不连贯的问题,解决了陀螺仪精度不够导致视频抖动的问题。(3)本专利技术将全景视频视角变换的渲染层逻辑与播放器隔离开来,播放器可以自由选择,灵活度较高。不像CardboardSDK两者绑定在一起,无法定制播放器。附图说明图1所示为本专利技术的实现Android平台全景视频播放同时响应陀螺仪与手势拖拽交互的方法和装置的流程示意图。具体实施方式以下结合附图和具体实施例对本专利技术作进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本专利技术,并不用于限定本专利技术。全景视频:又称720度或者360度全景视频(以下简称“全景视频”)。不同于传统的普通视频,全景视频可以在拍摄角度左右上下360度的任意观看动态视频,让我们有一种真正意义上身临其境的感觉,而它将不受时间、空间和地域的限制。全景视频它不在是单一的静态全景图片形式,而是具有景深、动态图像、声音等包罗万象,同时具备声画对位、声画同步。OpenGL(OpenGraphicsLibrary):OpenGL(全写OpenGraphicsLibrary)是指定义了一个跨编程语言、跨平台的本文档来自技高网
...
<a href="http://www.xjishu.com/zhuanli/55/201611169836.html" title="实现同时响应陀螺仪与手势拖拽交互的方法和装置及手机原文来自X技术">实现同时响应陀螺仪与手势拖拽交互的方法和装置及手机</a>

【技术保护点】
一种实现同时响应陀螺仪与手势拖拽交互的方法,其特征在于,包括,在Android视频图像绘制的目标视图上建立一个球面模型,创建一个用于控制视角的相机并放置在球面模型的球心位置;播放器对全景视频进行解码操作并生成视频纹理,然后将视频纹理附着在所述的球面模型的内表面,同时监听手机的陀螺仪变化和手机屏幕上的手势拖拽操作,当获取到陀螺仪的原始数据并将它转换成旋转矩阵的形式,然后将旋转矩阵应用到放置于球心的相机上使其做同样的旋转变换,当监听获取到用户在屏幕上横向拖拽的距离和方向并控制球面模型绕相机自身坐标系的X轴或Y轴按拖拽的方向进行旋转;在视角旋转同时渲染层利用图形库进行模型和画面的渲染。

【技术特征摘要】
1.一种实现同时响应陀螺仪与手势拖拽交互的方法,其特征在于,包括,在Android视频图像绘制的目标视图上建立一个球面模型,创建一个用于控制视角的相机并放置在球面模型的球心位置;播放器对全景视频进行解码操作并生成视频纹理,然后将视频纹理附着在所述的球面模型的内表面,同时监听手机的陀螺仪变化和手机屏幕上的手势拖拽操作,当获取到陀螺仪的原始数据并将它转换成旋转矩阵的形式,然后将旋转矩阵应用到放置于球心的相机上使其做同样的旋转变换,当监听获取到用户在屏幕上横向拖拽的距离和方向并控制球面模型绕相机自身坐标系的X轴或Y轴按拖拽的方向进行旋转;在视角旋转同时渲染层利用图形库进行模型和画面的渲染。2.如权利要求1所述的实现同时响应陀螺仪与手势拖拽交互的方法,其特征在于,将陀螺仪旋转矩阵中的每一个数据项采用低通滤波器进行过滤以把过高的变化值滤掉,得以消除陀螺仪的抖动使得旋转变换更平滑更连贯。3.如权利要求2所述的实现同时响应陀螺仪与手势拖拽交互的方法,其特征在于,所述的低通过滤器的处理方法为,R[n]=R[n-1]+a*(X[n]-R[n-1])其中X[n]代表当前陀螺仪采集到的旋转矩阵中的某一元素值,R[n-1]代表上一次计算完后真正用于旋转变换的旋转矩阵中的某一元素值,R[n]代表矫正后的结果值,a是矫正因子。4.如权利要求1所述的实现同时响应陀螺仪与手势拖拽交互的方法,其特征在于,获取到用户在屏幕上横向拖拽的距离和方向,然后使得球面模型绕相机自身坐标系的Y轴按拖拽的方向进行旋转,旋转的角度大小与拖拽的距离相对应;获取到用户在屏幕上纵向拖拽的距离和方向,然后使得球面模型绕相机自身坐标系的X轴按拖拽的方向进行旋转,旋转的角度大小与拖拽的距离相对应。5.如权利要求1所述的实现同时响...

【专利技术属性】
技术研发人员:张庆王金明蒋卫滨张伟马树猛
申请(专利权)人:飞狐信息技术天津有限公司
类型:发明
国别省市:天津;12

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1