发明内容
本申请实施例提供了一种基于已有VR内容的渲染方法和系统,以至少解决相关技术中已有VR内容通过额外开发来添加注视点渲染技术导致成本增加和效率低下的问题。
第一方面,本申请实施例提供了一种基于已有VR内容的渲染方法,所述方法包括:
通过监测模块实时监测VR内容模块,其中,所述监测模块运行在所述VR内容模块中;
在监测到所述VR内容模块要进行双眼3D渲染的情况下,先对所述VR内容模块中的VR内容进行注视点参数设置,得到预备渲染VR内容;
通过所述监测模块对所述预备渲染VR内容进行所述双眼3D渲染,得到完整渲染VR内容;
通过所述监测模块将所述完整渲染VR内容传输到VR处理模块;
通过所述VR处理模块对所述完整渲染VR内容进行处理,并将处理后的所述完整渲染VR内容进行显示。
在其中一些实施例中,在通过监测模块实时监测VR内容模块之前,所述方法还包括:
通过进程注入将所述监测模块注入所述VR内容模块中,其中,所述进程注入包括SHIMS注入、APC注入、PE注入和注册表修改。
在其中一些实施例中,通过监测模块实时监测所述VR内容模块包括:
通过Hook监测模块实时监测所述VR内容模块,其中,所述Hook监测模块能够对预设API进行监测,在所述预设API被调用前,终止所述预设API的调用,调用规划API执行所述规划API所对应的程序。
在其中一些实施例中,在监测到所述VR内容模块要进行双眼3D渲染的情况下,先对所述VR内容模块中的VR内容进行注视点参数设置,得到预备渲染VR内容包括:
在监测到所述VR内容模块要调用3D渲染API的情况下,先调用注视点渲染API对所述VR内容模块中的VR内容进行注视点参数设置,得到预备渲染VR内容,其中,所述注视点参数包括中心区域、外围区域和渲染质量。
在其中一些实施例中,通过所述监测模块将所述完整渲染VR内容传输到VR处理模块包括:
通过监测模块实时监测所述VR内容模块中VR API的调用,在监测到所述VR内容模块要调用所述VR API的情况下,获取所述完整渲染VR内容并传输到VR处理模块。
第二方面,本申请实施例中提供了一种基于已有VR内容的渲染系统,所述系统包括监测模块、VR内容模块和VR处理模块;
所述监测模块实时监测所述VR内容模块,其中,所述监测模块运行在所述VR内容模块中;
所述监测模块在监测到所述VR内容模块要进行双眼3D渲染的情况下,先对所述VR内容模块中的VR内容进行注视点参数设置,得到预备渲染VR内容;
所述监测模块对所述预备渲染VR内容进行所述双眼3D渲染,得到完整渲染VR内容;
所述监测模块将所述完整渲染VR内容传输到所述VR处理模块;
所述VR处理模块对所述完整渲染VR内容进行处理,并将处理后的所述完整渲染VR内容进行显示。
在其中一些实施例中,在所述监测模块实时监测所述VR内容模块之前,所述系统还包括:
通过进程注入将所述监测模块注入所述VR内容模块中,其中,所述进程注入包括SHIMS注入、APC注入、PE注入和注册表修改。
在其中一些实施例中,所述监测模块实时监测所述VR内容模块包括:
Hook监测模块实时监测所述VR内容模块,其中,所述Hook监测模块能够对预设API进行监测,在所述预设API被调用前,终止所述预设API的调用,调用规划API执行所述规划API所对应的程序。
在其中一些实施例中,在所述监测模块监测到所述VR内容模块要进行双眼3D渲染的情况下,先对所述VR内容模块中的VR内容进行注视点参数设置,得到预备渲染VR内容包括:
在所述监测模块监测到所述VR内容模块要调用3D渲染API的情况下,先调用注视点渲染API对所述VR内容模块中的VR内容进行注视点参数设置,得到预备渲染VR内容,其中,所述注视点参数包括中心区域、外围区域和渲染质量。
在其中一些实施例中,所述监测模块将所述完整渲染VR内容传输到VR处理模块包括:
所述监测模块实时监测所述VR内容模块中VR API的调用,在监测到所述VR内容模块要调用所述VR API的情况下,获取所述完整渲染VR内容并传输到VR处理模块。
相比于相关技术,本申请实施例提供的一种基于已有VR内容的渲染方法和系统,通过监测模块实时监测VR内容模块,在监测到VR内容模块要进行双眼3D渲染的情况下,先对VR内容模块中的VR内容进行注视点参数设置,得到预备渲染VR内容,通过监测模块对预备渲染VR内容进行双眼3D渲染,得到完整渲染VR内容,通过监测模块将完整渲染VR内容传输到VR处理模块,通过VR处理模块对完整渲染VR内容进行处理,并将处理后的完整渲染VR内容进行显示,解决了已有VR内容通过额外开发来添加注视点渲染技术导致成本增加和效率低下的问题,实现了直接在已有VR内容中添加注视点渲染技术,在不对已有VR内容程序进行修改的情况下,大幅度提高已有VR内容渲染的速度。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行描述和说明。应当理解,此处所描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。基于本申请提供的实施例,本领域普通技术人员在没有作出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。
显而易见地,下面描述中的附图仅仅是本申请的一些示例或实施例,对于本领域的普通技术人员而言,在不付出创造性劳动的前提下,还可以根据这些附图将本申请应用于其他类似情景。此外,还可以理解的是,虽然这种开发过程中所作出的努力可能是复杂并且冗长的,然而对于与本申请公开的内容相关的本领域的普通技术人员而言,在本申请揭露的技术内容的基础上进行的一些设计,制造或者生产等变更只是常规的技术手段,不应当理解为本申请公开的内容不充分。
在本申请中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域普通技术人员显式地和隐式地理解的是,本申请所描述的实施例在不冲突的情况下,可以与其它实施例相结合。
除非另作定义,本申请所涉及的技术术语或者科学术语应当为本申请所属技术领域内具有一般技能的人士所理解的通常意义。本申请所涉及的“一”、“一个”、“一种”、“该”等类似词语并不表示数量限制,可表示单数或复数。本申请所涉及的术语“包括”、“包含”、“具有”以及它们任何变形,意图在于覆盖不排他的包含;例如包含了一系列步骤或模块(单元)的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可以还包括没有列出的步骤或单元,或可以还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。本申请所涉及的“连接”、“相连”、“耦接”等类似的词语并非限定于物理的或者机械的连接,而是可以包括电气的连接,不管是直接的还是间接的。本申请所涉及的“多个”是指两个或两个以上。“和/或”描述关联对象的关联关系,表示可以存在三种关系,例如,“A和/或B”可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。本申请所涉及的术语“第一”、“第二”、“第三”等仅仅是区别类似的对象,不代表针对对象的特定排序。
在相关技术中,图1是根据本相关技术中VR软件架构的结构框图,如图1所示;
3D渲染API:是由操作系统和GPU提供商共同支持并实现的专用于实时渲染3D画面的API,当前业界主要有directX,openGL,vulkan;
VR API:是由VR设备厂商提供的和VR设备交互的API,当前主要由OpenVR,OpenXR,OculusVR;
VR Runtime:是由VR设备厂商提供的用于相应VR API的实现程序。
当前VR内容显示过程一般为:
VR内容程序调用3D渲染API,渲染出画面;
VR内容程序调用VR API,将渲染好的画面传送给VR Runtime;
VR Runtime将画面进行处理后再送到VR设备显示;
通过本相关技术中的VR软件架构和VR内容显示过程可知,如果基于该VR软件架构要在VR内容显示过程中添加注视点渲染,如VRS可变速率着色(英伟达提供的一种基于特定GPU的用于实现注视点渲染的技术),一般需要通过对VR内容程序进行修改(重新开发)来进行添加,这样会导致VR内容开发的成本大大增加,而且对需要添加注视点渲染每个VR内容程序都要进行修改,效率低下。
本申请实施例中提供了一种基于已有VR内容的渲染系统,图2是根据本申请实施例的基于已有VR内容的渲染系统的结构框图,该系统包括监测模块20、VR内容模块21和VR处理模块22;
监测模块20实时监测VR内容模块21,其中,监测模块20运行在VR内容模块21中;
监测模块20在监测到VR内容模块21要进行双眼3D渲染的情况下,先对VR内容模块21中的VR内容进行注视点参数设置,得到预备渲染VR内容;
监测模块20对预备渲染VR内容进行双眼3D渲染,得到完整渲染VR内容;
监测模块20将完整渲染VR内容传输到VR处理模块22;
VR处理模块22对完整渲染VR内容进行处理,并将处理后的完整渲染VR内容进行显示。
通过本申请实施例,监测模块20实时监测VR内容模块21,在监测到VR内容模块21要进行双眼3D渲染的情况下,先对VR内容模块21中的VR内容进行注视点参数设置,得到预备渲染VR内容,监测模块20对预备渲染VR内容进行双眼3D渲染,得到完整渲染VR内容,将完整渲染VR内容传输到VR处理模块22,VR处理模块22对完整渲染VR内容进行处理,并将处理后的完整渲染VR内容进行显示,解决了已有VR内容通过额外开发来添加注视点渲染技术导致成本增加和效率低下的问题,实现了直接在已有VR内容中添加注视点渲染技术,在不对已有VR内容程序进行修改的情况下,大幅度提高已有VR内容渲染的速度。
在其中一些实施例中,在监测模块20实时监测VR内容模块21之前,通过进程注入将监测模块20注入VR内容模块21中,其中,进程注入包括SHIMS注入、APC注入、PE注入和注册表修改。
在其中一些实施例中,监测模块20实时监测VR内容模块21包括:
Hook监测模块20实时监测VR内容模块21,其中,Hook监测模块20能够对预设API进行监测,在预设API被调用前,终止预设API的调用,调用规划API执行规划API所对应的程序;
Hook技术是指运行时修改程序中某个函数入口处的代码指令为跳转到其他函数地址,从而修改或者监测这个函数的调用。
在其中一些实施例中,在监测模块20监测到VR内容模块21要进行双眼3D渲染的情况下,先对VR内容模块21中的VR内容进行注视点参数设置,得到预备渲染VR内容包括:
在监测模块20监测到VR内容模块21要调用3D渲染API的情况下,先调用注视点渲染API对VR内容模块21中的VR内容进行注视点参数设置,得到预备渲染VR内容,其中,注视点参数包括中心区域、外围区域和渲染质量。
在其中一些实施例中,监测模块20将完整渲染VR内容传输到VR处理模块22包括:
监测模块20实时监测VR内容模块21中VR API的调用,在监测到VR内容模块21要调用VR API的情况下,获取完整渲染VR内容并传输到VR处理模块22。
本申请实施例提供了一种基于已有VR内容的渲染方法,图3是根据本申请实施例的基于已有VR内容的渲染方法的步骤流程图,如图3所示,该方法包括以下步骤:
S302,通过监测模块20实时监测VR内容模块21,其中,监测模块20运行在VR内容模块21中;
S304,在监测到VR内容模块21要进行双眼3D渲染的情况下,先对VR内容模块21中的VR内容进行注视点参数设置,得到预备渲染VR内容;
S306,通过监测模块20对预备渲染VR内容进行双眼3D渲染,得到完整渲染VR内容;
S308,通过监测模块20将完整渲染VR内容传输到VR处理模块22;
S310,通过VR处理模块22对完整渲染VR内容进行处理,并将处理后的完整渲染VR内容进行显示。
通过本申请实施例中的步骤S302至S310,监测模块20实时监测VR内容模块21,在监测到VR内容模块21要进行双眼3D渲染的情况下,先对VR内容模块21中的VR内容进行注视点参数设置,得到预备渲染VR内容,监测模块20对预备渲染VR内容进行双眼3D渲染,得到完整渲染VR内容,将完整渲染VR内容传输到VR处理模块22,VR处理模块22对完整渲染VR内容进行处理,并将处理后的完整渲染VR内容进行显示,解决了已有VR内容通过额外开发来添加注视点渲染技术导致成本增加和效率低下的问题,实现了直接在已有VR内容中添加注视点渲染技术,在不对已有VR内容程序进行修改的情况下,大幅度提高已有VR内容渲染的速度。
在其中一些实施例中,在通过监测模块20实时监测VR内容模块21之前,通过进程注入将监测模块20注入VR内容模块21中,其中,进程注入包括SHIMS注入、APC注入、PE注入和注册表修改。
在其中一些实施例中,通过监测模块20实时监测VR内容模块21包括:
通过Hook监测模块20实时监测VR内容模块21,其中,Hook监测模块20能够对预设API进行监测,在预设API被调用前,终止预设API的调用,调用规划API执行规划API所对应的程序。
在其中一些实施例中,在监测到VR内容模块21要进行双眼3D渲染的情况下,先对VR内容模块21中的VR内容进行注视点参数设置,得到预备渲染VR内容包括:
在监测到VR内容模块21要调用3D渲染API的情况下,先调用注视点渲染API对VR内容模块21中的VR内容进行注视点参数设置,得到预备渲染VR内容,其中,注视点参数包括中心区域、外围区域和渲染质量。
在其中一些实施例中,通过监测模块20将完整渲染VR内容传输到VR处理模块22包括:
通过监测模块20实时监测VR内容模块21中VR API的调用,在监测到VR内容模块21要调用VR API的情况下,获取完整渲染VR内容并传输到VR处理模块22。
本申请具体实施例提供了一种基于已有VR内容的渲染方法,图4是根据本具体申请实施例的基于已有VR内容的渲染方法的步骤流程图,如图4所示,该方法包括以下步骤:
S402,通过进程注入将Hook监测模块注入VR内容模块中;
S404,通过Hook监测模块实时监测VR内容模块;
S406,在监测到VR内容模块要调用3D渲染API的情况下,先调用注视点渲染API对VR内容模块中的VR内容进行注视点参数设置,得到预备渲染VR内容,其中,注视点参数包括中心区域、外围区域和渲染质量;
S408,通过Hook监测模块调用3D渲染API对预备渲染VR内容进行双眼3D渲染,得到完整渲染VR内容;
S410,通过Hook监测模块实时监测VR内容模块,在监测到VR内容模块要调用VRAPI的情况下,获取完整渲染VR内容并传输到VR处理模块;
S412,通过VR处理模块对完整渲染VR内容进行处理,并将处理后的完整渲染VR内容进行显示。
通过本申请具体实施例中的S402至S412,进程注入将Hook监测模块注入VR内容模块中,Hook监测模块在监测到VR内容模块要调用3D渲染API的情况下,先调用注视点渲染API对VR内容模块中的VR内容进行注视点参数设置,得到预备渲染VR内容,再调用3D渲染API对预备渲染VR内容进行双眼3D渲染,得到完整渲染VR内容,在监测到VR内容模块要调用VR API的情况下,获取完整渲染VR内容并传输到VR处理模块,解决了已有VR内容通过额外开发来添加注视点渲染技术导致成本增加和效率低下的问题,实现了直接在已有VR内容中添加注视点渲染技术,在不对已有VR内容程序进行修改的情况下,大幅度提高已有VR内容渲染的速度。
另外,结合上述实施例中的基于已有VR内容的渲染方法,本申请实施例可提供一种存储介质来实现。该存储介质上存储有计算机程序;该计算机程序被处理器执行时实现上述实施例中的任意一种基于已有VR内容的渲染方法。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是终端。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口、显示屏和输入装置。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种基于已有VR内容的渲染方法。该计算机设备的显示屏可以是液晶显示屏或者电子墨水显示屏,该计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。
在一个实施例中,图5是根据本申请实施例的电子设备的内部结构示意图,如图5所示,提供了一种电子设备,该电子设备可以是服务器,其内部结构图可以如图5所示。该电子设备包括通过内部总线连接的处理器、网络接口、内存储器和非易失性存储器,其中,该非易失性存储器存储有操作系统、计算机程序和数据库。处理器用于提供计算和控制能力,网络接口用于与外部的终端通过网络连接通信,内存储器用于为操作系统和计算机程序的运行提供环境,计算机程序被处理器执行时以实现一种基于已有VR内容的渲染方法,数据库用于存储数据。
本领域的技术人员应该明白,以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。