高并发VR系统与实现方法与流程

文档序号:18894261发布日期:2019-10-15 22:39阅读:868来源:国知局
高并发VR系统与实现方法与流程

本发明涉及虚拟现实技术领域,特别涉及一种高并发vr系统与实现方法。



背景技术:

虚拟现实技术(virtualreality,简称“vr”)是一种可以创建和体验虚拟世界的计算机仿真系统,它利用计算机生成一种模拟环境,是一种多源信息融合的、交互式的三维动态视景和实体行为的系统仿真使用户沉浸到该环境中。

现有的vr头戴设备一般是与一台主机连接使用,如果采用一台主机带动多台vr头戴设备,则容易出现匹配混乱问题(例如:主机将发送至第一vr头戴设备的视频内容发送到了第二vr头戴设备),致使现在暂时还没有一台主机带动多台vr头戴设备的方案,难以满足人们多样化的娱乐需求。



技术实现要素:

为了解决现有技术的问题,本发明实施例提供了一种高并发vr系统与实现方法。所述技术方案如下:

一方面,本发明实施例提供了一种高并发vr系统实现方法,所述方法包括:

在主机中加载预设的结合程序,所述结合程序用于将vr程序进程和相应的vrruntime程序进程结合起来供主机一起调用,所述主机分别与多台vr头戴设备连接;

为vr头戴设备烧录预设固件,所述固件中烧录有vr头戴设备的视频端口编号和usb端口编号;

通过主机识别vr头戴设备中视频端口编号和usb端口编号,将vr头戴设备的视频端口与相应的usb端口相匹配,并配合加载有结合程序的vr程序,带动相应的vr头戴设备。

在本发明实施例上述的高并发vr系统实现方法中,所述通过主机识别vr头戴设备中视频端口编号和usb端口编号,将vr头戴设备的视频端口与相应的usb端口相匹配,包括:

读取多个vr头戴设备的edid,所述edid包括:厂商id和产品id;

根据厂商id查找是否存在空闲的视频端口;

如果存在空闲的视频端口,则读取烧录好的视频端口编号;

根据厂商id和产品id查找是否存在空闲的usb端口;

如果存在空闲的usb端口,则读取烧录好的usb端口编号;

将读取到的usb端口编号与视频端口编号相匹配;

如果匹配成功,则成功匹配出同一vr头戴设备的视频端口和usb端口。

在本发明实施例上述的高并发vr系统实现方法中,所述方法还包括:

通过vr头戴设备的视频端口与相应的usb端口的匹配,来将vr头戴设备的陀螺仪与vr头戴设备的显示器相匹配,陀螺仪与usb端口连接,显示器与视频端口连接。

在本发明实施例上述的高并发vr系统实现方法中,所述方法还包括:

采用音频注射器技术将主机中的音频数据传输至对应的vr头戴设备。

在本发明实施例上述的高并发vr系统实现方法中,所述主机装载有多条显卡,所述方法还包括:

判断显卡是否用于为与其连接的vr头戴设备提供视频支持;

如果不支持,则重启显卡并指定显卡为其连接的vr头戴设备提供视频支持。

另一方面,本发明实施例提供了一种高并发vr系统,包括:

多台vr头戴设备,每台vr头戴设备烧录有预设固件,所述固件中烧录有vr头戴设备的视频端口编号和usb端口编号;

主机,分别与多台vr头戴设备连接,加载预设的结合程序,用于通过识别vr头戴设备中视频端口编号和usb端口编号,将vr头戴设备的视频端口与相应的usb端口相匹配,并配合加载有结合程序的vr程序,带动相应的vr头戴设备,所述结合程序用于将vr程序进程和相应的vrruntime程序进程结合起来供主机一起调用。

在本发明实施例上述的高并发vr系统中,所述主机,还用于读取多个vr头戴设备的edid,所述edid包括:厂商id和产品id;

所述主机,还用于根据厂商id查找是否存在空闲的视频端口;

所述主机,还用于当存在空闲的视频端口时,读取烧录好的视频端口编号;

所述主机,还用于根据厂商id和产品id查找是否存在空闲的usb端口;

所述主机,还用于当存在空闲的usb端口时,读取烧录好的usb端口编号;

所述主机,还用于将读取到的usb端口编号与视频端口编号相匹配;

所述主机,还用于当匹配成功时,成功匹配出同一vr头戴设备的视频端口和usb端口。

在本发明实施例上述的高并发vr系统中,所述主机,还用于通过vr头戴设备的视频端口与相应的usb端口的匹配,来将vr头戴设备的陀螺仪与vr头戴设备的显示器相匹配,陀螺仪与usb端口连接,显示器与视频端口连接。

在本发明实施例上述的高并发vr系统中,还用于采用音频注射器技术将主机中的音频数据传输至对应的vr头戴设备。

在本发明实施例上述的高并发vr系统中,所述主机装载有多条显卡,还用于判断显卡是否用于为与其连接的vr头戴设备提供视频支持;

所述主机,还用于当不支持时,重启显卡并指定显卡为其连接的vr头戴设备提供视频支持。

本发明实施例提供的技术方案带来的有益效果是:

本发明实施例通过在主机中加载预设的结合程序,该结合程序用于将vr程序进程和相应的vrruntime程序进程结合起来供主机一起调用,解决了vr程序进程与vrruntime程序进程之间的进程配对问题;然后为vr头戴设备烧录预设固件,该固件中烧录有vr头戴设备的视频端口编号和usb端口编号,通过主机识别vr头戴设备中视频端口编号和usb端口编号,将vr头戴设备的视频端口与相应的usb端口相匹配,并配合加载有结合程序的vr程序,带动相应的vr头戴设备,这样通过烧录固件的方式,在vr头戴设备的底层软件中为vr头戴设备提供了视频端口编号和usb端口编号,便于主机在多台vr头戴设备中匹配出同一vr头戴设备的端口,解决了端口匹配问题,进而为一台主机带动多台vr头戴设备提供了良好的技术支持,满足了人们的多元化需求。此外,上述烧录固件的开发方式,研发周期短,工作稳定性强,对使用者和开发者友好,操作简单方便。

附图说明

为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是本发明实施例一提供的一种高并发vr系统实现方法流程图;

图2是本发明实施例一提供的一种vr头戴设备的端口匹配流程示例图;

图3是本发明实施例二提供的一种高并发vr系统的结构示意图。

具体实施方式

为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。

实施例一

本发明实施例提供了一种高并发vr系统实现方法,适用于一台主机带动多台vr头戴设备,参见图1,该方法可以包括:

步骤s11,在主机中加载预设的结合程序,该结合程序用于将vr程序进程和相应的vrruntime程序进程结合起来供主机一起调用,该主机分别与多台vr头戴设备连接。

在本实施例中,vr程序进程,主要负责程序主要逻辑,并根据vr头戴设备的陀螺仪信息将内容计算出两个左右眼画面、音频等人可直接观测的信息;vrruntime程序进程,负责与vr头戴设备通信,读取vr头戴设备中的陀螺仪信息反馈给vr程序本体,然后将vr程序本体的左右眼画面、音频等可直接观测信息输出到vr头戴设备的显示屏、3.5mm音频输口上。

需要说明的是,由于这两个进程(即vr程序进程和vrruntime程序进程)共同协作才能完成整个流程,所以存在着进程相互配对的问题,如果一台主机存在着n个vr头戴设备,那么就有n*2个工作进程,如果逻辑不严谨,那么工作过程就会很容易出现进程之间配对错误问题。一个配对错误就会出现连锁反映导致整个系统崩溃,所以一般一台主机都只允许运行一个vr程序。因此,在本实例中,采用预加载的结合程序将vr程序进程和相应的vrruntime程序进程结合起来,统一供主机调用,这样就可以不用考虑进程配对的问题。

步骤s12,为vr头戴设备烧录预设固件,该固件中烧录有vr头戴设备的视频端口编号和usb端口编号。

在本实施例中,可以将视频端口发送的256个字节中某个字段作为编号,可以将usb端口64个字节中某个字段作为编号。

需要说明的是,多vr头戴设备与同一台主机的配合,除了步骤s11中的进程配对问题外,还由于vr头戴设备自身包含有多个端口(一般包括:视频端口、音频端口、以及usb端口),为此,会出现端口配对的问题。例如:在主机中,接入一个vr头戴设备对应一个vr程序,一个vr程序代表一个进程,主机cpu是并发计算的,如果一台主机接了多个vr头戴设备,那vr头戴设备的多个端口的数据也需要相互配对当前vr头戴设备所对应的进程中,否则就会导致头戴设备a的画面错误输出到了头戴设备b的显示屏上的情况。

步骤s13,通过主机识别vr头戴设备中视频端口编号和usb端口编号,将vr头戴设备的视频端口与相应的usb端口相匹配,并配合加载有结合程序的vr程序,带动相应的vr头戴设备。

在本实施例中,采用在vr头戴设备上烧录固件,并在固件中烧录vr头戴设备对应的视频端口编号和usb端口编号,这样主机在寻找到多个端口时,可以将同一vr头戴设备的端口进行配对,并配合加载有结合程序的vr程序,来带动该vr头戴设备,实现主机对多个vr头戴设备中每个vr头戴设备的精准识别,将所需播放的vr内容传输至对应的vr头戴设备中,实现多vr头戴设备的带动效果,满足了人们多样化的需求。

具体地,参见图2,上述步骤s13中的视频端口与相应的usb端口相匹配,可以通过如下方式实现:

1,读取多个vr头戴设备的edid,edid可以包括:厂商id和产品id;

在本实施例中,扩展显示标识数据(extendeddisplayidentificationdata,简称“edid”)是一种vesa标准数据格式,其中包含有关监视器及其性能的参数,包括供应商信息、产品信息、最大图像大小、颜色设置、厂商预设置、频率范围的限制以及显示器名和序列号的字符串。图2中的vid为厂商id,pid为产品id。

2,根据厂商id查找是否存在空闲的视频端口(例如图2中的dp/hdmi端口),如果不存在,则换下一个视频端口。如果存在,则读取烧录好的视频端口编号。

在本实施例中,一般视频端口可以通过厂商id查找,而usb端口则需要厂商id和产品id来查找。

3,根据厂商id和产品id查找是否存在空闲的usb端口,如果不存在,则换下一个usb端口,如果存在,则读取烧录好的usb端口编号。

4,将读取到的usb端口编号与视频端口编号相匹配,如果匹配成功,则成功匹配出同一vr头戴设备的视频端口和usb端口。

在解决了多vr头戴设备的带动方案中的进程匹配问题和端口匹配问题后,还可以对上述方案进行完善,具体来说:

可选地,该方法还可以包括:通过vr头戴设备的视频端口与相应的usb端口的匹配,来将vr头戴设备的陀螺仪与vr头戴设备的显示器相匹配,陀螺仪与usb端口连接,显示器与视频端口连接。

在本实施例中,vr头戴设备的陀螺仪所测量的信息非常重要,其直接关乎到用户的vr使用效果,将vr头戴设备的陀螺仪与vr头戴设备的显示器相匹配,有助于提高vr使用效果。由于vr头戴设备内部包含了两个单片机,一个单片机负责计算与上报传感器信息,一个负责画面输出,每个单片机对应了一个固件程序。每个固件中有几个空闲的存储空间,每台设备都有一段唯一的id字段,可以将这个id分别烧录到设备内部的两个单片机固件中,以克服端口数据配对问题。即通过vr头戴设备的视频端口与相应的usb端口的匹配,来将vr头戴设备的陀螺仪与vr头戴设备的显示器相匹配。

可选地,方法还包括:采用音频注射器技术将主机中的音频数据传输至对应的vr头戴设备。

在本实施例中,也需要解决vr头戴设备的音频输出配对问题,插入了n个vr头戴设备相当于pc上插入了n个耳机,要保证当前应用程序的画面与声音输出到同一个vr头戴设备上。使用音频注射器技术,能将每个应用程序音频注射到相应的vr头戴设备上,每一个应用程序在开启之后都通过这种技术将应用程序自己的音频流注射到对应的音频输出端,这是一种操作系统层面的音频输出技术。此外,还可以采用单通道输出。复制某一个应用程序的音频,同时输出到多个头戴设备上。

可选地,主机装载有多条显卡,该方法还包括:

1,判断显卡是否用于为与其连接的vr头戴设备提供视频支持,

2,如果不支持,则重启该显卡并指定显卡为其连接的vr头戴设备提供视频支持。

在本实施例中,由于一块显卡只有3~5个视频输出端口,所以肯能会存在端口不够情况,就需要主机上安装多块显卡,而不同显卡之间的计算是独立、数据是不共享的,所以就要分配指定应用程序使用的是哪一块显卡进行计算。

必须保证当前应用程序使用的显卡计算画面输出到接入该显卡的一个头戴设备上,当这个条件不满足,我们通过应用程序重启自身,并加上重启命令行(commandline)-gpun重新指定计算显卡。

本发明实施例通过在主机中加载预设的结合程序,该结合程序用于将vr程序进程和相应的vrruntime程序进程结合起来供主机一起调用,解决了vr程序进程与vrruntime程序进程之间的进程配对问题;然后为vr头戴设备烧录预设固件,该固件中烧录有vr头戴设备的视频端口编号和usb端口编号,通过主机识别vr头戴设备中视频端口编号和usb端口编号,将vr头戴设备的视频端口与相应的usb端口相匹配,并配合加载有结合程序的vr程序,带动相应的vr头戴设备,这样通过烧录固件的方式,在vr头戴设备的底层软件中为vr头戴设备提供了视频端口编号和usb端口编号,便于主机在多台vr头戴设备中匹配出同一vr头戴设备的端口,解决了端口匹配问题,进而为一台主机带动多台vr头戴设备提供了良好的技术支持,满足了人们的多元化需求。此外,上述烧录固件的开发方式,研发周期短,工作稳定性强,对使用者和开发者友好,操作简单方便。

实施例二

本发明实施例提供了一种高并发vr系统,执行了实施例一所述的方法,参见图3,该系统可以包括:

多台vr头戴设备100,每台vr头戴设备烧录有预设固件,固件中烧录有vr头戴设备的视频端口编号和usb端口编号。

在本实施例中,可以将视频端口发送的256个字节中某个字段作为编号,可以将usb端口64个字节中某个字段作为编号。

主机200,分别与多台vr头戴设备连接,加载预设的结合程序,用于通过识别vr头戴设备中视频端口编号和usb端口编号,将vr头戴设备的视频端口与相应的usb端口相匹配,并配合加载有结合程序的vr程序,带动相应的vr头戴设备,结合程序用于将vr程序进程和相应的vrruntime程序进程结合起来供主机一起调用。

在本实施例中,vr程序进程,主要负责程序主要逻辑,并根据vr头戴设备的陀螺仪信息将内容计算出两个左右眼画面、音频等人可直接观测的信息;vrruntime程序进程,负责与vr头戴设备通信,读取vr头戴设备中的陀螺仪信息反馈给vr程序本体,然后将vr程序本体的左右眼画面、音频等可直接观测信息输出到vr头戴设备的显示屏、3.5mm音频输口上。采用预加载的结合程序将vr程序进程和相应的vrruntime程序进程结合起来,统一供主机调用,这样就可以不用考虑进程配对的问题。

在本实施例中,采用在vr头戴设备上烧录固件,并在固件中烧录vr头戴设备对应的视频端口编号和usb端口编号,这样主机在寻找到多个端口时,可以将同一vr头戴设备的端口进行配对,并配合加载有结合程序的vr程序,来带动该vr头戴设备,实现主机对多个vr头戴设备中每个vr头戴设备的精准识别,将所需播放的vr内容传输至对应的vr头戴设备中,实现多vr头戴设备的带动效果,满足了人们多样化的需求。

具体地,主机200,还用于读取多个vr头戴设备的edid,edid包括:厂商id和产品id。

主机200,还用于根据厂商id查找是否存在空闲的视频端口。

主机200,还用于当存在空闲的视频端口时,读取烧录好的视频端口编号。

主机200,还用于根据厂商id和产品id查找是否存在空闲的usb端口。

主机200,还用于当存在空闲的usb端口时,读取烧录好的usb端口编号。

主机200,还用于将读取到的usb端口编号与视频端口编号相匹配。

主机200,还用于当匹配成功时,成功匹配出同一vr头戴设备的视频端口和usb端口。

在本实施例中,一般视频端口可以通过厂商id查找,而usb端口则需要厂商id和产品id来查找。

可选地,主机200,还用于通过vr头戴设备的视频端口与相应的usb端口的匹配,来将vr头戴设备的陀螺仪与vr头戴设备的显示器相匹配,陀螺仪与usb端口连接,显示器与视频端口连接。

在本实施例中,vr头戴设备的陀螺仪所测量的信息非常重要,其直接关乎到用户的vr使用效果,将vr头戴设备的陀螺仪与vr头戴设备的显示器相匹配,有助于提高vr使用效果。由于vr头戴设备内部包含了两个单片机,一个单片机负责计算与上报传感器信息,一个负责画面输出,每个单片机对应了一个固件程序。每个固件中有几个空闲的存储空间,每台设备都有一段唯一的id字段,可以将这个id分别烧录到设备内部的两个单片机固件中,以克服端口数据配对问题。即通过vr头戴设备的视频端口与相应的usb端口的匹配,来将vr头戴设备的陀螺仪与vr头戴设备的显示器相匹配。

可选地,主机200,还用于采用音频注射器技术将主机中的音频数据传输至对应的vr头戴设备。

在本实施例中,也需要解决vr头戴设备的音频输出配对问题,插入了n个vr头戴设备相当于pc上插入了n个耳机,要保证当前应用程序的画面与声音输出到同一个vr头戴设备上。使用音频注射器技术,能将每个应用程序音频注射到相应的vr头戴设备上,每一个应用程序在开启之后都通过这种技术将应用程序自己的音频流注射到对应的音频输出端,这是一种操作系统层面的音频输出技术。此外,还可以采用单通道输出。复制某一个应用程序的音频,同时输出到多个头戴设备上。

可选地,主机200装载有多条显卡,还用于判断显卡是否用于为与其连接的vr头戴设备提供视频支持。

主机200,还用于当不支持时,重启显卡并指定显卡为其连接的vr头戴设备提供视频支持。

在本实施例中,由于一块显卡只有3~5个视频输出端口,所以肯能会存在端口不够情况,就需要主机上安装多块显卡,而不同显卡之间的计算是独立、数据是不共享的,所以就要分配指定应用程序使用的是哪一块显卡进行计算。

必须保证当前应用程序使用的显卡计算画面输出到接入该显卡的一个头戴设备上,当这个条件不满足,我们通过应用程序重启自身,并加上重启命令行(commandline)-gpun重新指定计算显卡。

本发明实施例通过在主机中加载预设的结合程序,该结合程序用于将vr程序进程和相应的vrruntime程序进程结合起来供主机一起调用,解决了vr程序进程与vrruntime程序进程之间的进程配对问题;然后为vr头戴设备烧录预设固件,该固件中烧录有vr头戴设备的视频端口编号和usb端口编号,通过主机识别vr头戴设备中视频端口编号和usb端口编号,将vr头戴设备的视频端口与相应的usb端口相匹配,并配合加载有结合程序的vr程序,带动相应的vr头戴设备,这样通过烧录固件的方式,在vr头戴设备的底层软件中为vr头戴设备提供了视频端口编号和usb端口编号,便于主机在多台vr头戴设备中匹配出同一vr头戴设备的端口,解决了端口匹配问题,进而为一台主机带动多台vr头戴设备提供了良好的技术支持,满足了人们的多元化需求。此外,上述烧录固件的开发方式,研发周期短,工作稳定性强,对使用者和开发者友好,操作简单方便。

上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。

本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。

以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

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