一种基于移动设备浏览器的虚拟现实的实现方法与流程

文档序号:11948874阅读:367来源:国知局

本发明涉及浏览器虚拟实现技术领域,特别是涉及一种基于移动设备浏览器的虚拟现实的实现方法。



背景技术:

虚拟现实技术是一种可以创建和体验虚拟世界的计算机仿真系统,它利用计算机生成一种模拟环境,是一种多源信息融合的交互式的三维动态视景和实体行为的系统仿真,使用户沉浸到该环境中。虚拟现实当前的实现主要方式是通过头盔硬件提供输入和响应,后端通过桌面电脑三维或手机三维应用程序提供软件支持。

虚拟现实的应用越来越广泛,在智慧城市、智能制造及日常文化娱乐等领域的应用前景广泛。基于移动设备的虚拟现实应用也越来越受到重视,当前主要通过移动应用App的方式提供,这要求除了有虚拟现实应用开发能力外,还要求有移动应用开会的能力。基于网页的移动设备应用是一种容易开发、容易推广的方式,把虚拟现实技术应用于移动设备浏览器实现基于网页的虚拟现实应用开发,这会是一种轻量、便捷应用的强烈需求。

虚拟现实的软件系统需要最基本的头盔设备对象和动作传感器对象,前者用于按合适的头盔显示设备成像,后者用于捕获硬件信息以基于旋转、位置等信息来更新成像的相机参数。随着HTML5技术的发展与成熟,移动设备的浏览器逐步支持高级HTML5特性,主流浏览器厂商均提供了浏览器访问移动硬件设备的相关能力,使得在移动设备的浏览器中使用陀螺仪、重力传感器等硬件设备的信息成为可能。

基于网页浏览器的虚拟现实技术还处于起步阶段,只有Mozilla基金会底下最新Firefox浏览器提供了对网页虚拟现实的实验性支持。Mozilla通过制定实验生的WebVR接口标准,在Firefox浏览器内部实现对硬件设备信息的访问,以标准的JavaScript接口方式向网页应用程序提供功能。该功能在Android最新版本的移动设备Firefox浏览器和桌面操作系统的Firefox浏览器中,通过配置相关参数来启用。

Mozilla基金会制定的WebVR标准当前处于实验阶段,其Firefox浏览器通过内核实现了虚拟现实头盔显示设备与传感器设备的基本规范,以浏览器标准的JavaScript库向外提供接口;由于Firefox的WebVR处于初步试验性阶段,默认并不启用,需要专业人员通过设置浏览才能使用,对一般用户使用困难。除此之外,主流浏览器如Google的Chrome浏览器、微软的IE系列浏览器、苹果的Safari浏览器等,均未加入Mozilla的WebVR标准制定中,这些主流厂商的浏览器当前无法提供基本见面的虚拟现实技术手段。特别是在移动设备中,除Android平台最新版本的Firefox需要通过设置相关参数来启用网页虚拟现实外,其他浏览器均不支持基于网页的虚拟现实技术。因此,基于网页的虚拟现实技术面临两个方面的问题:首先,这项试验技术当前只针对Firefox浏览器,其他浏览器不支持,也造成基于网页的虚拟现实应用的推广困难;其次,即使是Firefox浏览器,该功能不是默认开启,需要针对最新的Firefox浏览器进行设置才能启用,只有专业人员才能使用。



技术实现要素:

本发明针对现有技术中标准化不高、支持性差的缺点,提供一种基于移动设备浏览器的虚拟现实的实现方法,其目的是让移动设备中基于浏览器的网页虚拟应用能提供与Mozilla标准统一的虚拟现实接口,让移动设备浏览器的网页在应用虚拟现实成为可能,保持与Mozilla基金会的WebVR标准的统一。为了解决上述技术问题,本发明通过下述技术方案得以解决。

一种基于移动设备浏览器的虚拟现实的实现方法,包括如下步骤:(1)浏览器类型判断步骤:检测浏览器是否为移动设备平台的浏览器,通过在网页的JavaScript代码中获取浏览器的navigator.userAgent和navigator.vendor参数,与预先确定的浏览器判断移动平台的正则表达进行判断,判断为是,进入步骤(2);判断为否,跳出流程;

(2)浏览器支持虚拟现实判断步骤:将移动设备的浏览器,通过引用外部JavaScript文件的方式,在网页应用中加载实现该文件内的JavaScript代码,接着获取浏览器的navigator.getVRDevices对象,调用已加载的JavaScript代码来判断浏览器是否已经提供了虚拟现实接口的支持,判断为是,跳出流程;判断为否,进入步骤(3);

(3)创建头盔显示设备对象并设置参数:当移动设备的浏览器不支持虚拟现实接口时,通过已加载的JavaScript代码创建出虚拟现实头盔显示设备的对象,该对象实现了Mozilla WebVR标准的HMDVRDevice接口,提供了使得getEyeParameters符合Mozilla标准的接口方法,该方法把头盔显示设备的视场参数和左右眼的距离参数,设置给虚拟现实头盔显示设备的对象;

(4)创建传感器设备对象并设置参数:接着通过已加载的JavaScript代码,创建出基于JavaScript代码实现的虚拟现实位置传感器设备对象,该对象实现了Mozilla WebVR标准的PositionSensorVRDevice接口,并提供了getState、getOrientation符合Mozilla标准的接口方法;通过devicemotion和orientationchange标准事件接口绑定到虚拟现实位置传感器设备对象的相应接口方法,将传感器硬件相关的信息传递给JavaScript位置传感器设备对象;(5)绑定虚拟现实头盔设备对象和位置传感器设备对象:根据步骤(4)创建的虚拟现实头盔设备对象和位置传感器设备对象绑定到浏览器提供的navigator顶级JavaScript对象,实现了与Mozilla WebVR接口一致的HMDVRDevice和PositionSensorVRDevice接口,从而保证与Mozilla WebVR标准保持一致性,实现了网页中提供虚拟现实方法的基本设备对象;

(6)获取硬件信息并计算朝向信息:通过步骤(5)中绑定的浏览器标准事件接口,在移动设备的浏览器获取传感器相关的硬件信息,根据步骤(4)中创建的位置传感器对象计算出新的朝向信息;

(7)计算相机参数并渲染左右眼三维图像:根据步骤(6)计算的朝向信息、头盔显示设备对象的参数,计算出三维空间中左眼和右眼的相机参数,并传递给WebGL的图形渲染层,调用WebGL的接口并根据左眼和右眼的相机参数,渲染出同屏中左、右的三维图像。

作为优选,步骤(4)中,getState、getOrientation接口方法用于通过该传感器设备对象设置初始的速度、加速度、朝向的参数的向量值。

作为优选,步骤(4)中,devicemotion和orientationchange为移动设备的浏览器提供的硬件相关联的标准事件接口,devicemotion接口提供与硬件传感器位置移动相关联的信息,orientationchange接口提供与硬件传感器的朝向变化相关联的信息。

作为优选,步骤(6)中,硬件信息包括加速度、旋转速率、时间间隔硬件传感器的信息。

本发明由于采用了以上技术方案,具有显著的技术效果:让移动设备平台除Firefox浏览之外的主流浏览器也能使用虚拟现实技术,用户无需通过复杂设置,而是进行智能判断以决定是否启用虚拟现实模式;同时,使除了Firefox外的基于移动设备的主流浏览器,能提供网页的虚拟现实应用能简单、便捷的使用,得到推广和普及。

附图说明

图1是本发明一种基于移动设备浏览器的虚拟现实的实现方法的流程示意图。

具体实施方式

下面结合附图与实施例对本发明作进一步详细描述。

如图1所示,一种基于移动设备浏览器的虚拟现实的实现方法,包括如下步骤:

(1)浏览器类型判断步骤:检测浏览器是否为移动设备平台的浏览器,通过在网页的JavaScript代码中获取浏览器的navigator.userAgent和navigator.vendor参数,与预先确定的浏览器判断移动平台的正则表达进行判断,判断为是,进入步骤(2);判断为否,跳出流程;具体的移动设备浏览的正则表达式如下:

/(android|bb\d+|meego).+mobile|avantgo|bada/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge|maemo|midp|mmp|mobile.+firefox|netfront|operam(ob|in)i|palm(os)?|phone|p(ixi|re)/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows ce|xda|xiino/i

(2)浏览器支持虚拟现实判断步骤:将移动设备的浏览器,通过引用外部JavaScript文件的方式,在网页应用中加载实现该文件内的JavaScript代码,接着获取浏览器的navigator.getVRDevices对象,调用已加载的JavaScript代码来判断浏览器是否已经提供了虚拟现实接口的支持,判断为是,跳出流程;判断为否,进入步骤(3);

(3)创建头盔显示设备对象并设置参数:当移动设备的浏览器不支持虚拟现实接口时,通过已加载的JavaScript代码创建出虚拟现实头盔显示设备的对象,该对象实现了Mozilla WebVR标准的HMDVRDevice接口,提供了使得getEyeParameters符合Mozilla标准的接口方法,该方法把头盔显示设备的视场参数和左右眼的距离参数,设置给虚拟现实头盔显示设备的对象;

(4)创建传感器设备对象并设置参数:接着通过已加载的JavaScript代码,创建出基于JavaScript代码实现的虚拟现实位置传感器设备对象,该对象实现了Mozilla WebVR标准的PositionSensorVRDevice接口,并提供了getState、getOrientation符合Mozilla标准的接口方法,用于通过该传感器设备对象设置初始的速度、加速度、朝向的参数的向量值;通过devicemotion和orientationchange标准事件接口绑定到虚拟现实位置传感器设备对象的相应接口方法,将传感器硬件相关的信息传递给JavaScript位置传感器设备对象,devicemotion和orientationchange为移动设备的浏览器提供的硬件相关联的标准事件接口,devicemotion接口提供与硬件传感器位置移动相关联的信息,orientationchange接口提供与硬件传感器的朝向变化相关联的信息;

(5)绑定虚拟现实头盔设备对象和位置传感器设备对象:根据步骤(4)创建的虚拟现实头盔设备对象和位置传感器设备对象绑定到浏览器提供的navigator顶级JavaScript对象,实现了与Mozilla WebVR接口一致的HMDVRDevice和PositionSensorVRDevice接口,从而保证与Mozilla WebVR标准保持一致性,实现了网页中提供虚拟现实方法的基本设备对象;

(6)获取硬件信息并计算朝向信息:通过步骤(5)中绑定的浏览器标准事件接口,在移动设备的浏览器获取传感器相关的硬件信息,硬件信息包括加速度、旋转速率、时间间隔硬件传感器的信息,根据步骤(4)中创建的位置传感器对象计算出新的朝向信息;

(7)计算相机参数并渲染左右眼三维图像:根据步骤(6)计算的朝向信息、头盔显示设备对象的参数,计算出三维空间中左眼和右眼的相机参数,并传递给WebGL的图形渲染层,调用WebGL的接口并根据左眼和右眼的相机参数,渲染出同屏中左、右的三维图像。

(8)根据步骤(7)计算的朝向信息、头盔显示设备对象的参数,计算出三维空间中左眼和右眼的相机参数,并传递给WebGL的图形渲染层,调用WebGL的接口根据左眼和右眼的相机参数,渲染出同屏中左、右的三维图像。

本发明移动设备平台除Firefox浏览之外的主流浏览器也能使用虚拟现实技术,用户无需通过复杂设置,而是进行智能判断以决定是否启用虚拟现实模式;同时,使除了Firefox外的基于移动设备的主流浏览器,能提供网页的虚拟现实应用能简单、便捷的使用,得到推广和普及。

总之,以上所述仅为本发明的较佳实施例,凡依本发明申请专利范围所作的均等变化与修饰,皆应属本发明专利的涵盖范围。

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