WO2022151883A1 - 虚拟现实设备 - Google Patents
虚拟现实设备 Download PDFInfo
- Publication number
- WO2022151883A1 WO2022151883A1 PCT/CN2021/137060 CN2021137060W WO2022151883A1 WO 2022151883 A1 WO2022151883 A1 WO 2022151883A1 CN 2021137060 W CN2021137060 W CN 2021137060W WO 2022151883 A1 WO2022151883 A1 WO 2022151883A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- image
- screenshot
- virtual reality
- reality device
- display
- Prior art date
Links
- 238000000034 method Methods 0.000 claims abstract description 100
- 238000009877 rendering Methods 0.000 claims description 98
- 230000004044 response Effects 0.000 claims description 23
- 238000013507 mapping Methods 0.000 claims description 13
- 238000003384 imaging method Methods 0.000 claims description 8
- 230000011218 segmentation Effects 0.000 claims description 4
- 238000005070 sampling Methods 0.000 claims description 3
- 230000008569 process Effects 0.000 description 41
- 230000000694 effects Effects 0.000 description 39
- 238000012545 processing Methods 0.000 description 25
- 238000010586 diagram Methods 0.000 description 20
- 230000003287 optical effect Effects 0.000 description 17
- 239000000284 extract Substances 0.000 description 16
- 230000006870 function Effects 0.000 description 12
- 230000002452 interceptive effect Effects 0.000 description 10
- 230000009471 action Effects 0.000 description 8
- 230000003993 interaction Effects 0.000 description 8
- 238000001514 detection method Methods 0.000 description 6
- 238000005516 engineering process Methods 0.000 description 6
- 210000003128 head Anatomy 0.000 description 4
- 230000005540 biological transmission Effects 0.000 description 3
- 239000011521 glass Substances 0.000 description 3
- 230000008901 benefit Effects 0.000 description 2
- 230000015572 biosynthetic process Effects 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 230000006837 decompression Effects 0.000 description 2
- 238000007654 immersion Methods 0.000 description 2
- 230000010287 polarization Effects 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 238000003786 synthesis reaction Methods 0.000 description 2
- 230000001133 acceleration Effects 0.000 description 1
- 230000004913 activation Effects 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 230000003190 augmentative effect Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000000739 chaotic effect Effects 0.000 description 1
- 230000006835 compression Effects 0.000 description 1
- 238000007906 compression Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000018109 developmental process Effects 0.000 description 1
- 238000007667 floating Methods 0.000 description 1
- 238000003709 image segmentation Methods 0.000 description 1
- 230000014759 maintenance of location Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000003825 pressing Methods 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
- G06F3/0484—Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
Abstract
本申请提供一种虚拟现实设备,所述方法可以在获取用户输入的控制指令后,对截屏图片文件进行解析,从而获得截屏图像画面和视场角;再根据视场角调用播放器模型,从而将截屏图像画面映射至播放器模型上。
Description
本申请要求在2021年1月18日提交中国专利局、申请号为202110065015.6、发明名称为“一种虚拟现实设备及快捷交互方法”的中国专利申请的优先权,在2021年1月18日提交中国专利局、申请号为202110065120.X、发明名称为“一种虚拟现实设备及快捷交互方法”的中国专利申请的优先权,本申请要求在2021年1月18日提交中国专利局、申请号为202110065017.5、发明名称为“一种虚拟现实设备及单目截屏方法”的中国专利申请的优先权,本申请要求在2021年1月25日提交中国专利局、申请号为202110097842.3、发明名称为“一种虚拟现实设备及VR场景截屏方法”的中国专利申请的优先权,本申请要求在2021年3月17日提交中国专利局、申请号为202110284754.4、发明名称为“一种虚拟现实设备及截屏图片播放方法”的中国专利申请的优先权,本申请要求在2021年3月18日提交中国专利局、申请号为202110290401.5、发明名称为“一种虚拟现实设备及VR场景截屏方法”的中国专利申请的优先权,其全部内容通过引用结合在本申请中。
本申请涉及虚拟现实技术领域,尤其涉及虚拟现实设备。
虚拟现实(Virtual Reality,VR)技术是通过计算机模拟虚拟环境,从而给人以环境沉浸感的显示技术。虚拟现实设备是一种应用虚拟显示技术为用户呈现虚拟画面的设备。通常,虚拟现实设备包括两个用于呈现虚拟画面内容的显示屏幕,分别对应于用户的左右眼。当两个显示屏幕所显示的内容分别来自于同一个物体不同视角的图像时,可以为用户带来立体的观影感受。
虚拟现实设备在实际使用中可以通过截屏操作将所显示的内容以图片形式输出,从而进行网络共享或者在其他显示设备上展示。例如,可以通过虚拟现实设备与智能手机建立通信连接,并向智能手机发送截屏获得的图片文件,从而在智能手机端保存和展示虚拟现实设备上显示的内容。
但是,为了适应光学组件,VR设备在显示的图像边缘区域会经过畸变处理,因此在VR设备显示内容下直接执行截屏操作会截取畸变处理后的图像,即截屏获得的图像存在变形,与实际内容差异过大。此外,在VR设备显示三维图像时,由于存在两个显示屏幕,并且两个显示屏幕上显示的内容存在不同,导致直接进行截屏所获得图像内容与实际展示的虚拟场景内容存在较大差异。
发明内容
一方面,本申请提供一种虚拟现实设备,包括显示器和控制器,其中所述显示器包括左显示器和右显示器,分别用来呈现适合左眼观看的用户界面以及适合右眼观看的用户界面。控制器被配置为执行以下程序步骤:
接收用户输入的用于截屏的控制指令;
响应于所述控制指令,获取预设方向显示器的待渲染图像信息;所述预设方向显示器为左显示器或右显示器中的一个;
将所述图像信息保存为截屏图片文件。
另一方面,本申请还提供一种弹幕截屏方法,该方法可以应用于上述虚拟现实设备,具体包括以下步骤:
接收用户输入的用于截屏的控制指令;
响应于所述控制指令,获取预设方向显示器的待渲染图像信息;所述预设方向显示器为左显示器或右显示器中的一个;
将所述图像信息保存为截屏图片文件。
第三方面,本申请提供一种虚拟现实设备,包括:显示器和控制器。其中,所述显示器被配置为显示用户界面,其中,所述用户界面包括图像区域和天空盒区域,所述图像区域用于呈现多媒体内容;所述天空盒区域位于图像区域的四周,用于呈现渲染背景内容。所述控制器被配置为执行以下程序步骤:
获取用户输入的用于截屏的控制指令;
响应于所述控制指令,在渲染场景中提取中间图像,所述中间图像为对渲染场景进行图像拍摄获得的未畸变图像;
对所述中间图像执行裁切,以获得指定宽高比的截屏图像。
第四方面,本申请提供一种虚拟现实设备,包括:显示器和控制器。其中,所述显示器被配置为显示用户界面,其中,所述用户界面包括图像区域和天空盒区域,所述图像区域用于呈现多媒体内容;所述天空盒区域位于图像区域的四周,用于呈现渲染背景内容。所述控制器被配置为执行以下程序步骤:
获取用户输入的用于显示截屏图像的播放指令;
响应于所述播放指令,获取所述截屏图像的宽高比;
根据所述截屏图像的宽高比,在虚拟渲染场景中添加显示面板,所述显示面板的宽高比等于所述截屏图像的宽高比;
在所述显示面板上显示所述截屏图像。
第五方面,本申请还提供一种VR场景截屏方法,应用于上述虚拟现实设备,所述VR场景截屏方法包括以下步骤:
获取用户输入的用于截屏的控制指令;
响应于所述控制指令,在渲染场景中提取中间图像,所述中间图像为对渲染场景进行图像拍摄获得的未畸变图像;
对所述中间图像执行裁切,以获得指定宽高比的截屏图像。
第六方面,本申请提供一种虚拟现实设备,包括显示器和控制器,其中所述显示器包括左显示器和右显示器,被配置为显示用户界面;所述控制器被配置为执行以下程序步骤:
获取用户输入的截屏操作指令;
响应于所述截屏操作指令,在渲染场景中的多个位置执行图像拍摄,以获得多个角度的中间图像;
拼接多个角度的中间图像,以生成截屏图像。
第七方面,本申请还提供一种VR场景截屏方法,应用于虚拟现实设备,所述虚拟现实设备包括显示器和控制器,所述截屏方法包括以下步骤:
获取用户输入的截屏操作指令;
响应于所述截屏操作指令,在渲染场景中的多个位置执行图像拍摄,以获得多个角度的中间图像;
拼接多个角度的中间图像,以生成截屏图像。
第八方面,本申请提供一种虚拟现实设备,包括显示器和控制器。其中,所述显示器用于显示播放界面等用户界面,用户界面包括图片成像区域和天空盒区域,所述图片成像区域用于呈现多媒体内容;所述天空盒区域位于图像区域的四周,用于呈现渲染背景内容。控制器被配置为执行以下程序步骤:
获取用户输入的用于播放截屏图片的控制指令;
响应于所述控制指令,解析待播放的截屏图片文件,以获得截屏图像画面和视场 角;
根据所述视场角调用播放器模型,所述播放器模型为在渲染场景中预先根据所述视场角建立的曲面模型;
将所述截屏图像画面映射至所述播放器模型。
第九方面,本申请还提供一种显示设备,包括显示器和控制器。其中,所述显示器用于显示播放界面等用户界面,用户界面包括图片成像区域和天空盒区域,所述图片成像区域用于呈现多媒体内容;所述天空盒区域位于图像区域的四周,用于呈现渲染背景内容。控制器被配置为执行以下程序步骤:
接收用户输入的截屏指令;
响应于所述截屏指令,对当前渲染场景执行图像拍摄,以获得截屏图像画面;
记录执行图像拍摄时在所述渲染场景中的拍摄位置以及视场角;
保存所述截屏图像画面和所述视场角,以生成截屏图片文件。
第十方面,本申请还提供一种截屏图片播放方法,应用于上述虚拟现实设备,所述截屏图片播放方法包括:
获取用户输入的用于播放截屏图片的控制指令;
响应于所述控制指令,解析待播放的截屏图片文件,以获得截屏图像画面和视场角;
根据所述视场角调用播放器模型,所述播放器模型为在渲染场景中预先根据所述视场角建立的曲面模型;
将所述截屏图像画面映射至所述播放器模型。
第十一方面,本申请还提供一种截屏图片生成方法,应用于上述虚拟现实设备,所述截屏图片生成方法包括:
接收用户输入的截屏指令;
响应于所述截屏指令,对当前渲染场景执行图像拍摄,以获得截屏图像画面;
记录执行图像拍摄时在所述渲染场景中的拍摄位置以及视场角;
保存所述截屏图像画面和所述视场角,以生成截屏图片文件。
为了更清楚地说明本申请的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例中包括虚拟现实设备的显示系统结构示意图;
图2为本申请实施例中VR场景全局界面示意图;
图3为本申请实施例中全局界面的推荐内容区域示意图;
图4为本申请实施例中通过状态栏进入快捷中心示意图;
图5为本申请实施例中通过按键进入快捷中心示意图;
图6为本申请一些示例性实施方式中播放界面示意图;
图7为本申请一些示例性实施方式中播放界面区域划分示意图;
图8为本申请一些示例性实施方式中模式切换操作界面示意图;
图9为本申请实施例中单目截屏流程示意图;
图10为本申请实施例中提取texture图像信息流程示意图;
图11为本申请实施例中存储图片文件的流程示意图;
图12为本申请实施例中根据用户界面类型执行截屏操作的流程示意图;
图13为本申请实施例中检测用户界面类型的流程示意图;
图14为本申请实施例中直接截取屏幕的结果画面示意图;
图15为本申请实施例中VR场景截屏方法流程示意图;
图16为本申请实施例中VR场景截屏方法结果示意图;
图17为本申请实施例中从渲染场景获取中间图像的流程示意图;
图18为本申请实施例中对中间图像进行裁切的流程示意图;
图19为本申请实施例中判断图像宽高比是否满足预设输出值的流程示意图;
图20为本申请实施例中对中间图像裁切效果图;
图21为本申请实施例中存储截屏图片文件的流程示意图;
图22为本申请实施例中截屏流程示意图;
图23为本申请实施例中设置虚拟截屏相机的流程示意图;
图24为本申请实施例中截屏输出类型为3D时渲染场景中虚拟截屏相机示意图;
图25为本申请实施例中截屏输出类型为全景时渲染场景中虚拟截屏相机示意图;
图26为本申请实施例中根据输出图片类型执行拼接中间图像的流程示意图;
图27为本申请实施例中截屏输出类型为3D时拼接中间图像的流程示意图;
图28为本申请实施例中截屏输出类型为全景时拼接中间图像的流程示意图;
图29为本申请实施例中全景截屏图像示意图;
图30为传统图片浏览界面的截屏图片显示效果图;
图31为本申请实施例中截屏图片播放方法流程示意图;
图32为本申请实施例中匹配播放器模型的流程示意图;
图33为本申请实施例中创建播放器模型的流程示意图;
图34为本申请实施例中球坐标示意图;
图35为本申请实施例中纹理映射过程示意图;
图36为本申请实施例中球面上点的法向量坐标和纹理坐标的映射关系示意图;
图37为本申请实施例中解析待播放截屏图片文件的流程示意图;
图38为本申请实施例中输出截屏图像画面的流程示意图;
图39为本申请实施例中输出截屏图像画面时渲染场景示意图。
为使本申请示例性实施例的目的、技术方案和优点更加清楚,下面将结合本申请示例性实施例中的附图,对本申请示例性实施例中的技术方案进行清楚、完整地描述,显然,所描述的示例性实施例仅是本申请一部分实施例,而不是全部的实施例。
基于本申请中示出的示例性实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。此外,虽然本申请中公开内容按照示范性一个或几个实例来介绍,但应理解,可以就这些公开内容的各个方面也可以单独构成一个完整技术方案。
此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖但不排他的包含,例如,包含了一系列组件的产品或设备不必限于清楚地列出的那些组件,而是可包括没有清楚地列出的或对于这些产品或设备固有的其它组件。
本说明书通篇提及的“多个实施例”、“一些实施例”、“一个实施例”或“实施例”等,意味着结合该实施例描述的具体特征、结构或特性包括在至少一个实施例中。因此,本说明书通篇出现的短语“在多个实施例中”、“在一些实施例中”、“在至少另一个实施例中”或“在实施例中”等并不一定都指相同的实施例。此外,在一个或多个实施例中,具体特征、结构或特性可以任何合适的方式进行组合。因此,在无限制的情形下,结合一个实施例示出或描述的具体特征、结构或特性可全部或部分地与一个或多个其他实施例的特征、结构或特性进行组合。这种修改和变型旨在包括在本申请的范围之内。
本申请实施例中以虚拟现实设备500为例,对录屏交互方式进行举例说明,应当理解的是,本申请提供的录屏交互方法,也可以应用于其他显示设备200中,例如,显示设备200可以是智能电视、智能终端、个人计算机等。
本申请实施例中,所述虚拟现实设备500泛指能够佩戴于用户头部,为用户提供沉浸感体验的显示设备,包括但不限于VR眼镜、增强现实设备(Augmented Reality,AR)、VR游戏设备、移动计算设备以及其它可穿戴式计算机等。本申请部分实施例以VR眼镜为例对技术方案进行阐述,应当理解的是,所提供的技术方案同时可应用于其他类型的虚拟现实设备。所述虚拟现实设备500可以独立运行,或者作为外接设备接入其他智能显示设备,其中,所述显示设备可以是智能电视、计算机、平板电脑、服务器等。
虚拟现实设备500可以在佩戴于用户头部后,显示媒资画面,为用户双眼提供近距离影像,以带来沉浸感体验。为了呈现媒资画面,虚拟现实设备500可以包括多个用于显示画面和头部佩戴的部件。以VR眼镜为例,虚拟现实设备500可以包括但不限于外壳、位置固定件、光学系统、显示组件、姿态检测电路、接口电路等部件中的至少一种。实际应用中,光学系统、显示组件、姿态检测电路以及接口电路可以设置于外壳内,以用于呈现具体的显示画面;外壳两侧连接位置固定件,以佩戴于用户头部。
在使用时,姿态检测电路中内置有重力加速度传感、陀螺仪等姿态检测元件,当用户头部移动或转动时,可以检测到用户的姿态,并将检测到的姿态数据传递给控制器等处理元件,使处理元件可以根据检测到的姿态数据调整显示组件中的具体画面内容。
在一些实施例中,如图1所示的虚拟现实设备500可以接入显示设备200,并与服务器400之间构建一个基于网络的显示系统,在虚拟现实设备500、显示设备200以及服务器400之间可以实时进行数据交互,例如显示设备200可以从服务器400获取媒资数据并进行播放,以及将具体的画面内容传输给虚拟现实设备500中进行显示。
在一些实施例中,虚拟现实设备500的显示组件包括显示屏幕以及与显示屏幕有关的驱动电路。为了呈现具体画面,以及带来立体效果,显示组件中可以包括两个显示屏幕,分别对应于用户的左眼和右眼。在呈现3D效果时,左右两个屏幕中显示的画面内容会稍有不同,可以分别显示3D片源在拍摄过程中的左相机和右相机。由于用户左右眼观察到的画面内容,因此在佩戴时,可以观察到立体感较强的显示画面。
虚拟现实设备500中的光学系统,是由多个透镜组成的光学模组。光学系统设置在用户的双眼与显示屏幕之间,可以通过透镜对光信号的折射以及透镜上偏振片的偏振效应,增加光程,使显示组件呈现的内容可以清晰的呈现在用户的视野范围内。同时,为了适应不同用户的视力情况,光学系统还支持调焦,即通过调焦组件调整多个透镜中的一个或多个的位置,改变多个透镜之间的相互距离,从而改变光程,调整画面清晰度。
虚拟现实设备500的接口电路可以用于传递交互数据,除上述传递姿态数据和显示内容数据外,在实际应用中,虚拟现实设备500还可以通过接口电路连接其他显示设备或外设,以通过和连接设备之间进行数据交互,实现更为复杂的功能。例如,虚拟现实设备500可以通过接口电路连接显示设备,从而将所显示的画面实时输出至显示设备进行显示。又例如,虚拟现实设备500还可以通过接口电路连接手柄,手柄可以由用户手持操作,从而在VR用户界面中执行相关操作。
其中,所述VR用户界面可以根据用户操作呈现为多种不同类型的UI布局。例如,用户界面可以包括全局界面,AR/VR终端启动后的全局UI如图2所示,所述全局UI可显示于AR/VR终端的显示屏幕中,也可显示于所述显示设备的显示器中。全局UI 可以包括推荐内容区域1、业务分类扩展区域2、应用快捷操作入口区域3以及悬浮物区域4中的至少一种。
推荐内容区域1用于配置不同分类TAB栏目;在所述栏目中可以选择配置媒资、专题等;所述媒资可包括2D影视、教育课程、旅游、3D、360度全景、直播、4K影视、程序应用、游戏、旅游等具有媒资内容的业务,并且所述栏目可以选择不同的模板样式、可支持媒资和专题同时推荐编排,如图3所示。
在一些示例性的实施方式中,内容推荐区域1还可以包括主界面和副界面。如图3所示,位于UI布局居中位置的部分是主界面,而位于主界面两侧位置的部分则为副界面。主界面和副界面可以用于分别展示不同的推荐内容。例如,根据推荐的片源类型,可以在主界面显示3D片源的业务;而在左侧的副界面中显示2D片源的业务,在右侧的副界面中显示全景片源的业务。
显然,对于主界面和副界面,可以在显示不同业务内容的同时,呈现为不同的内容布局。并且,用户可以通过特定的交互动作控制切换主界面和副界面。例如,通过控制焦点标志左右移动,使焦点标志在主界面最右侧时再向右移动,可以将控制右侧的副界面显示在UI布局的居中位置,此时主界面切换为显示全景片源的业务,左侧的副界面切换为显示3D片源的业务;而右侧的副界面切换为显示2D片源的业务。
另外,为了便于用户观看,还可以通过不同的显示效果对主界面和副界面分别进行显示。例如,可以提高副界面的透明度,使副界面获得虚化效果,从而突出主界面。还可以设置副界面为灰度效果,保持主界面为彩色效果,突出主界面。
在一些实施例中,推荐内容区域1的顶部还可以设置有状态栏,在状态栏中可以设置有多个显示控件,包括时间、网络连接状态、电量等常用选项。状态栏中包括的内容可以由用户自定义,例如,可以添加天气、用户头像等内容。状态栏中所包含的内容可以被用户选中,以执行相应的功能。例如,用户点击时间选项时,虚拟现实设备500可以在当前界面中显示时间设备窗口,或者跳转至日历界面。当用户点击网络连接状态选项时,虚拟现实设备500可以在当前界面显示WiFi列表,或者跳转至网络设置界面。
状态栏用于使用户能够执行常用的控制操作,实现快速对虚拟现实设备500进行设置。由于对虚拟现实设备500的设置程序包括诸多项,因此在状态栏中通常不能将所有常用设置选项全部显示。为此,在一些实施例中,状态栏中还可以设置有扩展选项。扩展选项被选中后,可以在当前界面中呈现扩展窗口,在扩展窗口中可以进一步设置有多个设置选项,用于实现虚拟现实设备500的其他功能。
例如,在一些实施例中,扩展选项被选中后,可以在扩展窗口中设置“快捷中心”选项。用户在点击快捷中心选项后,虚拟现实设备500可以显示快捷中心窗口。快捷中心窗口中可以包括“截屏”、“录屏”以及“投屏”选项中的至少一个,用于分别唤醒相应的功能。
业务分类扩展区域2支持配置不同分类的扩展分类。如果有新的业务类型时,支持配置独立TAB,展示对应的页面内容。业务分类扩展区域2中的扩展分类,也可以对其进行排序调整及下线业务操作。在一些实施例中,业务分类扩展区域2可包括的内容:影视、教育、旅游、应用、我的。在一些实施例中,业务分类扩展区域2被配置为可展示大业务类别TAB,且支持配置更多的分类,其图标支持配置,如图3所示。
应用快捷操作入口区域3可指定预装应用靠前显示以进行运营推荐,支持配置特殊图标样式替换默认图标,所述预装应用可指定为多个。在一些实施例中,应用快捷操作入口区域3还包括用于移动选项目标的左向移动控件、右向移动控件,用于选择不同的图标。
上述实施例中,用户可以通过状态栏调出快捷中心,如图4,从而在快捷中心窗 口中点击相应的选项来完成截屏、录屏以及投屏操作。还可以采用其他交互方式调用快捷中心,并显示快捷中心窗口。例如,如图5所示,用户可以通过双击手柄上的home键调用快捷中心窗口。
用户可以在快捷中心窗口中选择任一图标后,启动相应的功能。其中,相应的功能的启动方式,可以根据虚拟现实设备500的实际交互方式确定。例如,用户可以选择投屏快捷按键,将在媒资播放内容投送到另一个显示设备进行演示。
用户可以通过全局界面进入不同的场景界面,例如,如图6、图7所示,用户可以在全局界面中的“播放界面”入口进入播放界面,或者通过在全局界面中选择任一媒资启动播放界面。在播放界面中,虚拟现实设备500可以通过Unity 3D引擎创建3D场景,并在3D场景中渲染具体的画面内容。
在播放界面中,用户可以观看具体媒资内容,为了获得更好的观影体验,播放界面中还可以设置不同的虚拟场景控件,以配合媒资内容呈现具体场景或实施交互。例如,在播放界面中,可以在Unity 3D场景中加载面板控件,用来呈现图片内容,再配合其他家居虚拟控件,以模拟电影院银幕的效果。
虚拟现实设备500可以在播放界面中展示操作UI内容。例如,在Unity 3D场景中的显示面板前方还可以显示有媒资列表UI控件,在媒资列表中可以显示当前虚拟现实设备500本地存储的媒资图标,或者显示可在虚拟现实设备500中进行播放的网络媒资图标。用户可以在媒资列表中选中任一图标,播放该图标对应的媒资数据,则在显示面板中可以实时显示被选中的媒资。
能够在Unity 3D场景中显示的媒资可以是图片、视频等多种形式,并且,由于VR场景的显示特点,在Unity 3D场景中显示的媒资至少包括2D图片或视频、3D图片或视频以及全景图片或视频等。
其中,2D图片或视频是一种传统图片或视频文件,当进行显示时,可以在虚拟现实设备500的两个显示屏幕中显示相同的图像,本申请中将2D图片或视频统称为2D片源;3D图片或视频,即3D片源,是一种由至少两个相机在不同角度对同一个物体进行拍摄制作而成,可以在虚拟现实设备500的两个显示器中显示不同的图像,实现立体效果;全景图片或视频,即全景片源,是通过全景相机或者特殊的拍摄手段获得的全景影像,可以通过在Unity 3D场景中创建显示球面的方式,将图片进行展示,以呈现全景效果。
对于3D片源,还可以按照片源中每帧图像的画面排布方式,进一步划分为左右型3D片源和上下型3D片源等。其中,左右型3D片源的每帧图像中,包括左右两个部分,分别为左眼相机和右眼相机拍摄的图像画面。而对于全景片源,还可以按照全景片源的画面视野进一步分为360全景、180全景以及鱼眼全景等片源形式,不同的全景片源形式中每帧图像的画面合成方式不同。为了呈现更好的立体效果,全景片源还可以包括真全景型、左右型全景、上下型全景等形式。
由于播放界面中可以显示的媒资数据包括多种片源类型,并且不同的片源类型需要不同的图像输出方式,因此在播放界面中,还可以设有用于播放控制的UI控件。例如,用于播放控制的UI控件可以设置在显示面板前方,该UI控件是一种浮动交互UI控件,即可以按照特定触发动作触发显示。
如图8所示,在UI控件中,可以包括“模式切换”选项,当用户点击“模式切换”选项后,可以显示模式列表,包括“2D模式”、“3D模式”等模式选项。用户在模式列表选中任一模式选项后,则可以控制虚拟现实设备按照选定的模式播放媒资列表中的媒资数据。
同理,当用户选中列表中某一媒资项目后,播放界面可以对该媒资项目进行播放,即在显示面板上展示该媒资项目对应的画面。而在播放媒资项目的过程中,用户还可 以通过调用用于播放控制的UI控件,并在UI控制界面中选中任一模式选项,切换播放模式,使虚拟现实设备500可以按照切换后的播放模式播放选中的媒资数据。
为了适应不同的播放模式,在一些示例性的实施方式中,一个媒资项目对应包含多种形式的数据形式。例如,部分媒资项目既包含2D形式的媒资数据,又包含3D形式的媒资数据。即一个媒资项目对应两个媒资文件,其中一个媒资文件中每一帧图像仅包含一个具体画面,另一个媒资文件中每一帧图像包含左右(或上下)两个部分的具体画面。对于这种媒资项目,在播放过程中,可以根据不同播放模式,对应选择一个媒资文件进行播放,以获得不同的效果。
在一些实施例中,用户可以对虚拟现实设备500中显示的画面内容进行截屏操作。截屏操作是根据显示内容生成截屏图片文件,从而保存某一时刻的具体显示画面的过程。在截屏操作过程中,用户可以先输入用于截屏的控制指令。显示设备500在接收到控制指令以后,可以将显示画面进行截取,并保存为图片文件。
根据画面显示方法的不同,截屏操作生成图片的方式也不同。例如,如果显示二维图像,在接收到用户输入的控制指令以后,可以直接截取屏幕上当前显示的内容作为目标截图文件的内容。但是,对于虚拟现实设备500,其在使用中不仅可以用来显示二维图像,还可以用来显示三维图像。而二维图像和三维图像由于显示方式不同,导致其在截屏过程中直接屏幕截取获得的目标截图与实际图像之间存在的差异过大。
具体表现在:为了呈现立体效果,虚拟现实设备500的左显示器和右显示器所展示的内容略有不同,即分别对应于所展示片源左相机和右相机拍摄的内容。这导致在截屏过程中直接截取屏幕上显示的内容会包括左侧显示器显示的内容和右侧显示器显示的内容,两个显示内容不同,无法直接输出截屏图片文件。
并且由于虚拟现实设备500内置有光学组件,光学组件是由多个透镜构成的光路调节系统。光学组件的透镜多呈现为圆形,但虚拟现实设备500的左显示器和右显示器为矩形,因此用户在使用虚拟现实设备500时观看到的显示画面边缘部分产生变形,影响用户的观影效果。为了获得更好的观影体验,虚拟现实设备500在显示画面内容时,可以先对所显示的内容进行畸变处理,将边缘位置显示的图案内容按照光学组件的镜头变形规律,预先进行畸变处理,以抵消光学组件造成的变形。
为此,如果通过直接屏幕截取的方式生成截屏图像文件,截取到的图片内容是屏幕显示的内容,而屏幕显示的内容是经过畸变处理后的图形,这与图片原本内容存在较大的偏差。
为了能够对虚拟现实设备500显示的内容进行截屏,并且获得与原本内容相同或差别较小的截屏图片文件。如图9所示,在本申请的部分实施例中提供一种单目截屏方法,该单目截屏方法可应用于虚拟现实设备500,具体包括以下内容:
S1:接收用户输入的用于截屏的控制指令。
用户在使用虚拟现实设备500的过程中,可以输入多种控制指令,其中部分控制指令可用于启动截屏功能。使用中,虚拟现实设备500可以为用户提供多种控制指令的输入方式。在一些实施例中,可以在虚拟现实设备500上设置电源键、音量键、菜单键等按键,用户可以通过单个按键或者多个按键的组合输入截屏控制指令。例如,用户可以同时按下电源键和音量“+”的按键组合输入用于截屏的控制指令。
在一些实施例中,对于部分按键较少的虚拟现实设备500,还可以通过虚拟现实设备500外接设备实现控制指令的输入。例如,用户可以在使用虚拟现实设备500的过程中,搭配的手柄设备执行交互动作。并通过手柄设备上的功能按键或者按键的组合输入用于截屏的控制指令。
在一些实施例中,用户还可以通过其他交互方式完成对截屏控制指令的输入。例如,可以在虚拟现实设备500的操作系统中内置智能语音系统,用户可以通过内置或 外接的麦克风装置输入语音“截屏”,输入用于截屏的控制指令。
需要说明的是,上述控制指令的输入方式示例仅作为本申请用户输入截屏控制指令的部分示例,根据虚拟现实设备500所支持的交互方式的不同,还可以采用不同的控制指令输入方式。因此,本领域技术人员在本申请输入方式的基础上所能够联想到的其他输入方式都属于本申请的保护范围。
S2:响应于所述控制指令,获取预设方向显示器的待渲染texture图像信息。
在获取用户输入的控制指令后,虚拟现实设备500可以响应于输入的控制指令开始执行截屏操作。与传统的直接对显示内容进行屏幕截取的方式不同,在本申请中虚拟现实设备500所执行的截屏操作中,可以只针对两个显示器中的一个画面内容进行提取,即所述预设方向显示器为左显示器或右显示器中的一个,例如,可以指定对左显示器显示的内容进行截屏,从而获得单个截屏图片文件。
为了消除畸变对截屏图片内容的影响,在获取控制指令后,虚拟现实设备500可以直接提取待渲染的texture图像信息。其中,texture图像信息包括未进行渲染过(即未经过畸变处理)的画面内容,可以为由虚拟相机对生成unity 3D场景进行直接拍摄而生成的图像内容。
其中,虚拟相机是一种基于unity 3D场景而设置的相机,可以用于对unity 3D场景中的虚拟物体进行拍摄,从而生成texture图像。虚拟相机可以模仿用户的眼睛,从unity 3D场景获取影像,并将获取的影像显示在左显示器和右显示器中。因此,虚拟现实设备500可以在unity 3D场景中设置两个虚拟相机,以分别模仿用户的左眼睛和右眼睛。两个虚拟相机可以在unity 3D场景中满足特定的位置关系,从而在不同的角度对unity 3D场景进行拍摄,输出不同的texture图像信息,以使左显示器和右显示器形成3D沉浸感的效果。
在实际观影过程中,两个虚拟相机输出的texture图像信息可以经过渲染处理后,分别送入左显示器和右显示器进行显示。而畸变处理过程则发生在渲染处理过程中,因此为了获得未变形的图片文件进行输出,在本实施例中可以在获取截屏控制指令后,直接对texture图像信息进行提取。
S3:将所述texture图像信息保存为截屏图片文件。
在获取texture图像信息后,虚拟现实设备500可以将texture图像信息保存为图片格式的文件,并存储在截屏专用的文件夹中。例如,虚拟现实设备500可以将texture图像信息保存为png格式的图片文件,并将图片文件保存在“DCIM/Camera”路径下的文件夹中。
由以上技术方案可知,上述实施例中提供的单目截屏方法可以提取单侧显示器对应的texture图像信息,获得与当前虚拟场景中显示内容相同,且未经过畸变处理的显示内容,并保存成图片文件完成截屏操作。可见,上述实施例提供的单目截屏方法不仅能够适应虚拟现实设备500两个显示器的显示方式,而且能够消除畸变处理对截屏图案的影响,减小截屏图片内容与实际虚拟场景画面之间的差异。
在一些实施例中,为了确定用户是否输入了用于截屏的控制指令,在接收用户输入的用于截屏的控制指令步骤中,虚拟现实设备500还可以通过设置检测程序,以实时检测用户输入的交互动作,即检测用户输入的按键组合动作。如果按键组合动作与预设截屏按键组合动作相同,则自动生成用于截屏的控制指令。
在一些实施例中,为了能够获取texture图像信息,虚拟现实设备500还可以内置一个texture图像信息获取程序,该获取程序可以实时监测用户输入的控制指令,并在检测到用户输入了控制指令以后,抓取图像信息。即如图10所示,获取预设方向显示器的待渲染texture图像信息的步骤还包括:
S211:获取显示数据流;
S212:记录所述控制指令的输入时刻;
S213:在所述显示数据流中提取texture图像信息。
在使用虚拟现实设备500的过程中,虚拟现实设备500可以利用unity 3D引擎,实时渲染虚拟场景,即unity 3D场景。在unity 3D场景中,还设置有两个虚拟相机,虚拟相机可以模仿用户眼睛,在unity 3D场景中执行拍摄,从而根据unity 3D场景中的虚拟物体影像,生成图像信息。虚拟相机可以与虚拟现实设备500中的位姿传感器连接,以通过位姿传感器调整拍摄角度,并随着虚拟相机对unity 3D场景的持续拍摄,可以输出多帧图像构成的显示数据流。即,所述显示数据流由预设方向显示器对应的虚拟相机针对unity 3D场景拍摄获得。
虚拟现实设备500可以获取虚拟相机拍摄并输出的显示数据流,以发送到显示器进行显示。当用户输入截屏控制指令以后,虚拟现实设备500还可以记录控制指令的输入时刻,并按照输入时刻在显示数据流中提取texture图像信息,因此,所述texture图像信息为显示数据流中输入时刻的对应帧图像。
例如,当虚拟现实设备500在2020年10月22日11:20:12:00时刻获取到用户输入的截屏控制指令后,记录该输入时刻,并在显示数据流中提取2020年10月22日11:20:12:000时刻时需要显示的那一帧图像,作为texture图像信息。由于虚拟相机所拍摄的显示数据流对应的视频帧率为固定值,因此在部分时刻可能不存在对应帧图像。例如,对于帧率为24的显示数据流,如果第一帧图像对应时刻为11:20:12:000,则第二帧图像时刻为11:20:12:042,因此当控制指令的输入时刻为11:20:12:020时,则没有该时刻的对应帧图像。此时,可以设置与当前时刻时间差最小的那一帧图像为对应帧图像,即输入时刻为11:20:12:020时,提取11:20:12:000时刻的第一帧图像作为texture图像信息。
由于在常规的截屏方式中,所截取的图片文件会统一保存在一个文件夹中,如Android系统的截图文件放在存储路径为“DCIM/Camera”的文件夹中。因此,为了保证截图保存位置的一致性,如图11所示,在一些实施例中,获取预设方向显示器的待渲染texture图像信息的步骤还包括:
S221:将所述texture图像信息存储为Byte数组;
S222:遍历当前系统的文件保存路径;
S223:如果所述当前系统中包括预设位置的文件保存路径,将所述Byte数组保存为图片文件;
S224:如果所述当前系统中不包括预设位置的文件保存路径,在所述预设位置新建文件夹。
在虚拟现实设备500提取出texture图像信息后,可以先将texture图像信息存储为Byte数组的形式,以便虚拟现实设备500可以在此期间执行截屏操作相关的其他控制动作,使截屏获得的图片文件可以按照预定方式被保存。
在将texture图像信息存储为Byte数组后,虚拟现实设备500可以遍历当前系统的文件保存路径,以确定当前系统中是否存在用于保存截屏图片文件的文件夹。例如,虚拟现实设备500可以对当前系统注册表项中的文件夹名称进行逐一读取,以确定当前系统中是否包含文件路径为“DCIM/Camera”的文件夹。如果当前系统中存在该文件夹,则可以将Byte数组保存为图片文件,完成截屏图片的保存。如果当前系统中不存在该文件夹,则可以新建一个路径为“DCIM/Camera”的文件夹以便用来保存截屏图片文件。
需要说明的是,根据操作系统的不同,用户保存截屏图片文件的路径也不同。因此,在不同的虚拟现实设备500中,也可以预设不同位置的文件保存路径。并且,用户可以根据截屏图片文件的用途不同,自定义文件保存路径,以供用户查看。例如, 对于输出至显示设备200中进行显示的截屏图片,可以直接设置文件保存路径为显示设备200的地址,从而在完成截屏操作后,直接按照设置的地址将截屏所获得的图片文件发送给显示设备200。
为了使用户能够查看截屏图片文件,在一些实施例中,将所述texture图像信息保存为图片文件的步骤还包括:检测截屏图片文件的保存进程,如果截屏图片文件完成保存,生成数据库更新指令,运行数据库更新指令,以使截屏图片文件能够显示在图片浏览界面中。
由于texture图像信息的数据量较大,虚拟现实设备500需要消耗一定的时间才可将数据写入存储空间内,以将texture图像信息保存为图片文件。因此,在虚拟现实设备500开始执行将所述texture图像信息保存为截屏图片文件的过程中,可以实时对截屏文件的保存进度进行检测。并且在完成截屏图片文件的保存后,通知数据库对图片信息进行更新,以便用户可以在图片浏览界面中看到最新的截屏图片。
其中,图片浏览界面也称图片浏览器,是专门为用户进行图片查看的界面。在图片浏览界面中,可以包括多个图片的缩略图图标,当用户选择该图标时,可以打开该图标对应的图片,并在图片展示区域进行放大显示。
为了通知数据库对图片信息的更新,在检测到截屏图片文件完成保存后,可以生成更新指令,并将更新指令应用到数据库管理程序中。数据库管理程序可以在接收到更新指令后,扫描当前存储的图片信息,并将扫描到的图片信息与上一次扫描结果进行对比,从而确定是否有新增的图片文件信息。当存在新增的文件信息时,数据库管理程序可以将新增文件对应的信息按照新增文件的时间顺序,展示在图片浏览器中,以供用户选择查看。
其中,图片浏览界面也称图片浏览器,是专门为用户进行图片查看的界面。在图片浏览界面中,可以包括多个图片的缩略图图标,当用户选择该图标时,可以打开该图标对应的图片,并在图片展示区域进行放大显示。
为了通知数据库对图片信息的更新,在检测到截屏图片文件完成保存后,可以生成更新指令,并将更新指令应用到数据库管理程序中。数据库管理程序可以在接收到更新指令后,扫描当前存储的图片信息,并将扫描到的图片信息与上一次扫描结果进行对比,从而确定是否有新增的图片文件信息。当存在新增的文件信息时,数据库管理程序可以将新增文件对应的信息按照新增文件的时间顺序,展示在图片浏览器中,以供用户选择查看。
由以上技术方案可知,上述实施例可以通过控制texture图像信息的存储方式,将texture图像信息保存为图片文件。保存图片的路径可与常规截图方式保存的位置相同,并且可以在保存完成后通知数据库更新图片信息,以方便用户查看截屏获取的图片文件。
在保存截屏图片文件时,由于texture图像信息数据量较大,整个保存过程不仅占用系统运算资源,而且保存时间消耗较长,因此如果通过操作系统层面的主线程完成保存过程会引起应用卡顿,影响用户体验。为了改善用户体验,在本申请的部分实施例中,如图12所示,当接收到用户输入的用于截屏的控制指令后,虚拟现实设备500还可以运行以下方法:
S231:检测当前用户界面类型;
S232:如果当前用户界面类型为第一类界面,通过操作系统层的主线程对显示内容执行截屏;
S233:如果当前用户界面类型为第二类界面,通过Unity层的协程执行响应于所述控制指令的步骤。
虚拟现实设备500可以在使用中呈现不同类型的界面,例如配置界面、控制界面 等二维场景界面,以及浏览界面、播放界面等三维场景界面。其中,部分界面在显示过程中左右显示器显示的内容相同,并且显示的内容不经过畸变处理而直接显示在显示器中。本实施例中,将这种左右显示器显示的内容相同,且不进行畸变处理的界面称为第一类界面。对于第一类界面,在截屏的过程中可以采用直接截屏的方式获得截屏图像。除第一类界面以外的其他类型用户界面称为第二类界面。对于第二类界面,在截屏的过程中可以按照上述实施例中的方式获取一侧显示器的texture图像信息,并保存成截屏图片文件。例如,第一类界面为2D界面,第二类界面为3D界面或360全景界面。
显然,对于直接截屏方式获得截屏图像的方式的数据处理量一般小于将texture图像信息保存为图片文件方式的数据处理量。因此,在本实施例中,可以在获取用户输入的截屏控制指令后,对当前的用户界面类型进行检测,从而根据不同的用户界面类型选择不同的截屏方式。
例如,在检测到当前用户界面类型为第一类界面时,可以通过操作系统层的主线程对显示内容直接执行截屏,以获得截屏图片文件;而在检测到当前用户界面类型为第二类界面时,可以通过Unity层的协程执行上述实施例中的截屏方法,即通过Unity层的协程执行响应于所述控制指令,获取预设方向显示器的待渲染texture图像信息,以及将texture图像信息保存为截屏图片文件的步骤,以获得截屏图片文件。
可见,在本实施例中,通过对当前用户界面类型的检测,可以根据不同的用户界面类型选择通过操作系统层的主线程或者Unity层的协程执行截屏操作,从而在数据处理量较大的情况下,通过协程分担主线程的数据处理量,减少应用卡顿。而在数据处理量较小的直接截屏情况下,仍由主线程直接完成截屏操作,以快速完成截屏操作。
需要说明的是,在检测到当前用户界面类型为第二类用户界面时,可以通过操作系统层向Unity层发送截屏事件,以通知Unity层执行截屏操作。例如,对于安卓系统的虚拟现实设备500,当操作系统收到该事件后,如果检测到当前用户界面类型是第二类界面,则不再执行截图操作,而是由安卓层通知Unity层执行截图操作,当unity层收到截屏事件后,按照提取指定侧显示器的texture图像信息并将texture图像信息保存为截屏图片文件的流程进行截图,从而减小应用卡顿。
在上述实施例中,为了检测当前用户界面类型,虚拟现实设备500可以通过当前界面的运行信息读取当前用户界面的类型,或者通过当前播放的媒资文件片源类型读取用户界面类型。例如,通过读取任务管理器中的运行信息,确定当前系统中维持运行的进程为设置界面,则确定当前用户界面类型为第一类界面。又例如,通过读取当前播放的媒资文件片源类型,读取当前播放的媒资文件的片源类型为2D片源时,则确定当前用户界面类型为第一类界面。
然而,在部分播放模式下,单纯通过运行信息和片源类型可能无法准确检测出当前用户界面的类型,例如,在模拟影院应用中播放二维图片文件时,虽然播放的媒资文件类型为2D片源,但由于模拟影院会在播放过程中添加3D的虚拟画面内容,使得其最终呈现的画面内容是左右显示器内容不同,且经过畸变处理的3D图像内容。因此,为了准确检测当前用户界面类型,如图13所示,在一些实施例中,检测当前用户界面类型的步骤还包括:
S2311:对比左显示器和右显示器显示的用户界面图像;
S2312:如果所述左显示器和右显示器显示的用户界面图像相同,标记所述当前用户界面类型为第一类界面;
S2313:如果所述左显示器和右显示器显示的用户界面图像不同,标记所述当前用户界面类型为第二类界面。
在获取用户输入的截屏控制指令以后,虚拟现实设备500可以对左显示器和右显 示器在同一时刻所显示用户界面的内容进行提取,并对比两侧显示的用户界面图像内容。具体的对比方式可以通过逐一对比用户界面图像中全部或部分像素点的颜色值来完成。
例如,通过遍历左显示的用户界面图像和右显示器的用户界面图像的每个像素点,并逐一对比每个像素点中的像素值,当全部像素点对应位置的颜色值均相同时,表示左显示器和右显示器显示的图像内容相同,即确定当点用户界面类型为第一类界面;同理,当通过对比确定有部分位置上的像素点颜色值不同,表示左显示器和右显示器显示的图像内容不同,即确定当前用户界面类型为第二类界面。
可见,在本实施例中,通过对比左显示器和右显示中显示内容是否相同,可以准确的检测当前显示的用户界面类型,从而缓解通过运行信息或片源类型信息判断用户界面类型时造成的误判,有利于实现截屏操作。
虚拟现实设备500还可以对渲染场景中的显示面板呈现的画面进行截屏,即可以仅对媒资画面内容进行截屏。具体的截屏方法可以是在对渲染场景中的显示面板画面区域执行截屏操作,或者虚拟现实设备500在解析媒资数据后,直接对媒资画面帧数据进行提取,并将提取的帧数据进行复制,从而获得不带有渲染虚拟物品的虚拟物体的画面。
在一些实施例中,虚拟现实设备500还可以对渲染场景中部分区域执行截屏。例如,可以在用户佩戴虚拟现实设备500活动至任一视角时,对当前视角下的显示面板区域和/或附近的渲染画面内容执行截屏,从而获得重点区域或用户设置区域内的截屏画面内容。
基于上述截屏操作,用户可以在佩戴虚拟现实设备500的过程中,通过截屏操作生成截屏图片文件。在一些实施例中,虚拟现实设备500在接收到用户控制指令后,可以直接截取屏幕上当前显示的内容,以生成截屏图片。即虚拟现实设备500可以获取显示程序送入显示器进行显示的图像数据,并保存为图片文件。
但是为了适应光学组件畸变带来的不适,如图14所示,虚拟现实设备500在显示具体画面时,会将屏幕中心的区域设置为可见,屏幕的边缘区域设置为不可见。即实际送入显示器显示的内容比用户直接观看到的内容区域更大。因此虚拟现实设备500在执行截屏后,所获得的图片中内容范围比用户实际观看到的图片画面范围要大,使得直接进行屏幕截取而获得的图片内容与用户观看到的内容偏差较大。截屏图片向用户展示的内容只占据整张图的一小部分,在小屏幕展示时的清晰度差。
为了获得与观看画面偏差较小的截屏图片,在本申请的部分实施例中提供一种虚拟现实设备500,该虚拟现实设备500包括显示器和控制器。其中,所述显示器用于显示用户界面,如图15所示,所述控制器被配置为执行以下程序步骤,以实现VR场景下的截屏操作:
S4:获取用户输入的用于截屏的控制指令。
具体获取截图控制指令的方法可参照S1。
S5:响应于所述控制指令,在渲染场景中提取中间图像。
其中,渲染场景是指由虚拟现实设备500渲染引擎通过渲染程序构建的一个虚拟场景。例如,基于unity 3D渲染引擎的虚拟现实设备500,可以在呈现显示画面时,构建一个unity 3D场景。在unity 3D场景中,可以添加各种虚拟物体和功能控件,以渲染出特定的使用场景。如在播放多媒体资源时,可以在unity 3D场景中添加一个显示面板,该显示面板用于呈现多媒体资源画面。同时,还可以在unity 3D场景中添加座椅、音响、人物等虚拟物体模型,从而营造出影院效果。
为了输出渲染后的画面,虚拟现实设备500还可以在unity 3D场景中设置虚拟相机。例如,虚拟现实设备500可以按照用户双眼的位置关系,在unity 3D场景中设置 左眼相机和右眼相机,两个虚拟相机可以同时对unity 3D场景中的物体进行拍摄,从而向左显示器和右显示器分别输出渲染画面。为了获得更好的沉浸感体验,两个虚拟相机在unity 3D场景中的角度可以随着虚拟现实设备500的位姿传感器实时调整,从而在用户佩戴虚拟现实设备500行动时,可以实时输出不同观看角度下的unity 3D场景中的渲染画面。
基于此,在用户输入用于截屏的控制指令后,虚拟现实设备500可以根据截屏控制指令从渲染场景中提取中间图像,即所述中间图像为对渲染场景进行图像拍摄获得的未畸变图像。例如,虚拟现实设备500可以通过提取左眼相机或右眼相机拍摄的图像获取中间图像。
在一些实施例中,为了获取中间图像,虚拟现实设备500还可以在渲染场景中单独设置一个截屏相机,并在用户输入截屏控制指令后,通过截屏相机对渲染场景进行拍摄,以获取中间图像。显然,为了获得与用户观看到的画面具有相同内容的截屏操作结果,截屏相机可以和左眼相机(或右眼相机)一样在unity 3D场景中的拍摄角度,可以随着虚拟现实设备500的位姿传感器实时调整,从而在用户佩戴虚拟现实设备500行动时,可以实时获得与左眼相机(或右眼相机)相同的,不同观看角度下的渲染画面。
S6:对所述中间图像执行裁切,以获得指定宽高比的截屏图像。
由于虚拟现实设备500的左(右)显示器接近正方形,输出到显示器上的图像画面也设置成正方形,即直接进行屏幕截取所获得的图片宽高比为1:1,如1048×1048或者1536×1536的图片。但常规图片分为:普通(720P 1280×720)、高清(1080P 1920×1080)和超高清(4K 3840×2160)的宽高比为16:9。因此,直接进行屏幕截取所获得的图片是正方形的,不符合常规图片的显示比例。
为此,在本实施例中,在获取中间图像之后,还需要按照输出要求,对截屏图片进行执行裁切。例如,当虚拟现实设备500的EyeBuffer设置成1536×1536,截取图像的分辨率也为1536×1536。因此,为了输出宽高比为16:9的截屏图像,虚拟现实设备500会以中间图像的中心区域为基准,在中间图像中裁切一个1280×720的图像区域,作为截屏图像,如图16所示。
可见,在本实施例中,通过从渲染场景中获取中间图像,可以按照未进行畸变处理的rendertexture图像为基准生成截图图像文件。并且通过对中间图像执行裁切,可以去除中间图像中不作为主要内容的边缘区域,使虚拟现实设备500能够输出指定宽高比的截屏图像,不仅符合常规图片的显示比例,而且能够在向用户展示时的相对观看距离被拉近,使呈现给用户观看的内容更清晰。
在截屏获得图像后,虚拟现实设备500还可以将截屏结果呈现给用户。为此,用户可以输入用于播放截屏图像的控制指令时,虚拟现实设备500可以响应于该播放指令,对截屏图像进行播放。虚拟现实设备500会在用户输入播放指令后,跳转到播放界面;或者,在播放界面中,从展示的一个图像的跳转到展示截屏图像的画面。
例如,用户可以在文件列表中点击截屏图像文件的图标,触发虚拟现实设备500对选中的图片进行播放,此时,用户输入的点击图片文件图标动作为用于播放截屏图像的控制指令。由于虚拟现实设备500在显示播放界面时,还可以在播放界面上呈现图片列表、“上一个”、“下一个”等UI交互控件,因此,当用户在播放界面中展示一幅截屏图像画面,通过点击“上一个”、“下一个”UI交互控件,或者点击图片列表中的任一图片图标时,可以切换至显示相邻或选中的图片。此时,用户输入的点击交互控件或图片图标的动作为用于播放截屏图像的控制指令。
另外,用于播放截屏图像的控制指令还可以由控制器通过判断虚拟现实设备500的工作状态自动完成输入。例如,用户在使用虚拟现实设备500进行截屏时,虚拟现 实设备500可以在完成截屏后,对截屏结果进行展示。因此,在展示截屏结果时,虚拟现实设备500可以自动输入用于播放截屏图像的控制指令。
在获得用户输入的播放指令后,虚拟现实设备500可以响应于播放指令,对待播放的截屏图像文件进行解析,包括但不限于解压缩、读取像素信息等,以获得截屏图像画面信息。在解析截屏图像文件的过程中,虚拟现实设备500还可以对截屏图像的尺寸相关内容进行读取,获得截屏图像的宽高比。例如,可以读取到截屏图像为超高清(4K 3840×2160)图像,对应的宽高比为16:9。
在读取截屏图像的宽高比以后,虚拟现实设备500还可以根据读取的截屏图像宽高比,调用显示面板。其中,显示面板的宽高比等于截屏图像的宽高比,用于在渲染场景中对截屏图像画面内容进行展示。例如,在读取到截屏图像的宽高比为16:9后,可以在虚拟渲染场景中添加宽高比也为16:9的显示面板。
另外,在添加显示面板的过程中,虚拟现实设备500还可以根据截屏图像的尺寸或分辨率等信息,设置显示面板在渲染场景中的位置。通过设置显示面板的位置,可以使显示面板与虚拟显示相机之间保持合适的距离,在截屏图像显示在显示面板上以后,可以通过渲染场景获得大小合适的虚拟现实画面,从而为用户带来更好的观看体验。
虚拟现实设备500的显示屏幕是由左右两个显示器组成,或者由一个大屏幕的左右两部分组成。因此,为了适应虚拟现实设备500的两部分画面,如图17所示,在一些实施例中,在渲染场景中提取中间图像的步骤中,所述控制器被进一步配置为:
S510:提取所述控制指令的输入时刻;
S520:抓取所述渲染场景中的待渲染视频数据流;
S530:在所述待渲染视频数据流中提取所述输入时刻的画面帧数据,以生成中间图像。
在本实施例中,可以将左显示器和右显示器中的一个所对应显示的内容作为截屏图片。例如,当收到截屏事件后,获取左眼相机(Camera)当前纹理图像(RenderTexture)数据,由于获得的图像数据还未被渲染,即该Texture是没有畸变的单目图像。
在实际应用中,左眼相机和右眼相机会随着用户的佩戴过程,对虚拟场景进行持续拍摄,形成待渲染视频数据流,即所述待渲染视频数据流由左眼虚拟显示相机或右眼虚拟显示相机对渲染场景执行图像拍摄获得。视频数据流可以通过渲染引擎渲染后,输送至左显示器和右显示器进行显示。为了获得中间图像,虚拟现实设备500可以在接收到用户输入的截屏控制指令后,抓取渲染场景中的待渲染视频数据流。
待渲染视频数据流是由多帧图像按时间顺序排列组成的数据,每一帧图像对应一个时刻虚拟相机所拍摄的画面。因此,虚拟现实设备500可以在用户输入截屏控制指令时,记录控制指令的输入时刻,并按照输入时刻对视频数据流中对应帧图像进行提取,以获得中间图像。例如,用户在12:32:05:28时刻输入控制指令,则虚拟现实设备500在抓取到对应时间段的视频数据流后,可以按照该输入时刻在视频数据流中进行查找,以获得12:32:05:010时刻的画面帧数据。
显然,由于视频数据流中的画面帧数据是按照一定的帧率间隔排列。例如,对于60Hz帧率的视频数据流,即在1秒时间内具有60帧图像画面。当第一帧画面数据对应的时间为12:32:05:000时,第二帧画面数据对应的时间为12:32:05:017。此时,并没有画面帧数据处在输入时刻12:32:05:010,因此,虚拟现实设备500可以提取距离输入时刻时间最短的图像作为画面帧数据,即第二帧画面数据。
可见,在本实施例中,虚拟现实设备500可以通过渲染场景中左眼相机或右眼相机获取未畸变的画面帧数据作为中间图像,在不影响画面正常显示的情况下,获得未畸变的单目数据,因此可以适应虚拟现实设备500的两部分画面截屏,输出符合常规 图片规范的截屏图片文件。
如图18所示,在一些实施例中,为了输出指定宽高比的截屏图片,对所述中间图像执行裁切的步骤中,所述控制器被进一步配置为:
S610:读取所述中间图像的宽度值和高度值;
S620:根据所述宽度值和高度值计算图像宽高比;
S630:如果所述图像宽高比满足预设输出值,将所述中间图像输出为截屏图像;
S640:如果所述图像宽高比不满足预设输出值,按照所述预设输出值对所述中间图像执行裁切。
在获取中间图像后,虚拟现实设备500可以对中间图像的尺寸进行检测,读取中间图像的宽度W和高度H。再根据宽度值和高度值计算中间图像的图像宽高比,即图像宽高比Scale=W/H。
虚拟现实设备500在根据计算获得的图像宽高比与预设的输出值进行对比,以确定图像宽高是否满足预设输出值。例如,用户设定虚拟现实设备500输出的截屏图像规格为宽高比大于或等于16:9的宽屏图片时,预设输出值为16/9。通过对比,当图像宽高比大于或等于16/9时,确定当前中间图像满足输出图片的规格要求,因此可以跳过对中间图像的裁切操作,直接将中间图像输出为截屏图像。
同理,通过对比,当图像宽高比小于16/9时,则确定当前中间图像不满足输出图片的规格要求,需要按照16:9的比例规范,对中间图像进行裁切,去除中间图像中的部分边缘区域,以输出16:9形式的截屏图片。
由于从渲染场景中获得的中间图像内容中,界面UI、显示面板等主要内容画面常处于靠近中部的区域内,而渲染背景、天空盒等画面处于靠近边缘的区域内。因此,在裁切过程中,虚拟现实设备500应在边缘区域的基础上,对各边缘区域进行均匀的裁切,以保留中间图像中的主要画面,避免对中间图像的过度裁切。即如图19所示,在一些实施例中,根据所述宽度值和高度值计算图像宽高比的步骤还包括:
S621:根据所述宽度值计算图像判断值;
S622:对于所述图像判断值与所述高度值;
S623:如果所述图像判断值大于或等于所述高度值,确定所述图像宽高比满足预设输出值;
S624:如果所述图像判断值小于所述高度值,确定所述图像宽高比不满足预设输出值。
在本实施例中,虚拟现实设备500可以根据中间图像的宽度值计算图像判断值,所述图像判断值为宽度值与预设比例系数的乘积。例如,预设比例系数为9/16,则在获取宽度值以后,可以计算图像判断值H1=W×9/16。再将计算获得的图像判断值与高度值进行对比,以确定图像宽高比是否满足预设输出值。
即,当图像判断值H1≥高度值H时,确定图像宽高比满足预设输出值,可以跳过对中间图像的裁切操作,直接将中间图像输出为截屏图像;当图像判断值H1<高度值H时,确定图像宽高比不满足预设输出值,需要按照图像判断值H1、宽度值W以及高度值H对中间图像进行裁切,以输出指定宽高比的截屏图像。
进一步地,如果所述图像判断值小于所述高度值,虚拟现实设备500还可以按照计算获得的图像判断值确定中间图像的裁切位置。即,根据图像判断值和高度值计算裁切高度起始点,所述裁切高度起始点等于图像判断值和高度值之差的1/2;再基于裁切高度起始点,对中间图像执行裁切,以生成截屏图像。其中,生成的截屏图像的宽度等于宽度值,截屏图像的高度等于图像判断值。
例如,虚拟现实设备500读取RenderTexture的宽度W和高度H;计算RenderTexture的宽度的9/16为H1。通过对比,若H1不小于H,则说明RenderTexture的宽高比大 于或等于16/9,此时不需要对高度进行裁剪,直接生成宽度为W,高度为H的Texture图像。若H1小于H,说明RenderTexture的宽高比小于16/9,需要对高度进行裁剪,从而生成宽度为W,高度为H1的Texture图像。
如图20所示,虚线的方框表示中间图像的原始区域范围,实线的方框表示裁剪后的部分。可见,在裁切过程中,Texture图像的大小由计算的图像判断值和中间图像原始尺寸确定,裁剪的位置则可以通过计算实线框左上角的起始点为(H-H1)/2,并结合Texture图像的大小确定裁剪位置,最后按照裁剪位置去除中间图像的边缘,保留实线框内的画面,形成最终的截屏图像。
可见,在本实施例中,虚拟现实设备500可以按照设定的输出值对中间图像进行裁切,裁切后的图像不仅符合常规图像的比例规范,而且便于保留图像中的主要内容,避免对图像的过度裁剪,以使输出的截屏图像内容与用户观看到的实际内容偏差更小。
在对中间图像完成裁切后,虚拟现实设备500可以根据截屏图片的用途,对裁切后的中间图像进行保存,以获得截屏图片文件。即如图21所示,在一些实施例中,对所述中间图像执行裁切的步骤后,所述控制器被进一步配置为:
S5301:将裁切后中间图像的像素信息输出到纹理图像;
S5302:按照预设编码规则将所述纹理图像输出至字节数组;
S5303:保存所述字节数组为截屏图片文件。
当虚拟现实设备500对中间图像执行裁切后,可以将裁切后的中间图像像素信息输出到纹理图像。再按照预设编码规则将纹理图像输出至字节数组,从而保存字节数组为截屏图片文件。例如,虚拟现实设备500可将RenderTexture的像素信息输出到Texture中,再将Texture按照jpg的编码输出到byte数组,以利用jpg格式图片的色彩还原性好、适合风景照、体积小等特点获得更适合网络传输和浏览的截屏图片文件。
最后,虚拟现实设备还将截屏图片文件存储在设定的存储路径下,以供后续处理。如播放、网络传输、识别分析等。需要说明的是,为了保存截屏图片文件,虚拟现实设备500还可以内置或外接存储器。即本实施例中,存储截屏图片文件的存储器可以是虚拟现实设备500的内部存储器,也可以是虚拟现实设备500外接设备中的存储器,如显示设备的存储器、服务器等。
截图过程中,截取的图片会统一保存在一个文件夹中,如Android系统的截图文件放在存储路径为“DCIM/Camera”的文件夹中,因此,为了保证截图保存位置的一致性。具体的保存步骤如图11及其相关描述。
虚拟现实设备500在执行截屏后,可以获得截屏图像文件。获得的截屏图像文件可以在显示设备200以及虚拟现实设备500上进行播放。其中,当截屏图像文件在显示设备200中进行播放时,由于显示设备200不具有显示3D图像的功能,因此可以直接在显示设备200进行显示,相应截屏获得的图片也可以为常规的二维图片(2D图片)。而当截屏图像文件在虚拟现实设备500中进行播放时,由于虚拟现实设备500支持播放3D图片,因此在播放截屏图像文件时,仅能够按照二维的方式显示,即虚拟现实设备500的左显示器和右显示器同时显示相同内容的截屏图像文件,这将导致播放截屏图像时,无法呈现立体感效果。
为此,虚拟现实设备500在输出截屏图像文件时,输出的类型可以不局限于普通二维图片,还可以包括三维图片(3D图片)以及其他可以通过虚拟现实设备500进行展示的图片类型,如全景图片等。其中,全景图片可以根据图片所支持的全景视野范围,包括90°-360°全景图片等。而截屏所获得的图像文件可以支持相应播放模式,例如2D模式、3D模式、全景模式等。
如图22所示,在本申请的部分实施例中,提供一种虚拟现实设备500,用于在VR场景下执行截屏方法,从而获得多种类型的截屏图像数据。虚拟现实设备500可 以包括左显示器和右显示器,分别对应于用户的双眼,从而呈现用户界面。虚拟现实设备500还包括控制器,用于运行显示相关程序,对整个设备进行控制。为了获得多种类型的截屏图像数据,虚拟现实设备500的控制器可以被配置为执行以下程序步骤:
S7:获取用户输入的截屏操作指令。
具体获取截图控制指令的方法可参照S1。
S8:响应于截屏操作指令,在渲染场景中的多个位置执行图像拍摄,以获得多个角度的中间图像。
具体获取中间图像的方法可参照步骤S5。
S9:拼接多个角度的中间图像,以生成截屏图像。
通过在渲染场景中执行图像拍摄而获得中间图像后,虚拟现实设备500还可以根据输出的不同截屏图像类型,对多个角度上的中间图像进行拼接,从而生成对应类型的截屏图像。
其中,不同类型的截屏图像可以根据虚拟现实设备500所播放的片源形式执行不同的拼接方式。例如,对于虚拟现实设备500所能够播放的3D片源,通常其一帧数据中可以包括两部分画面,即用于左显示器的画面和用于右显示器的画面。
两部分画面可以按照预定的位置关系进行排列。例如,左右型3D片源的一帧数据中,左显示器画面在左侧,右显示器画面在右侧;上下型3D片源的一帧数据中,左显示器画面在上侧,右显示器画面在下侧。
为此,针对不同的3D片源形式,可以将左侧虚拟截屏相机或左显示相机拍摄的中间图像,与右侧虚拟截屏相机或右显示相机拍摄的中间图像按照对应的位置关系拼接为一幅图片,形成截屏图像。例如,当输出左右型3D片源形式的截屏图像时,可以将左侧虚拟截屏相机拍摄的中间图像设置在左侧,将右侧虚拟截屏相机拍摄的中间图像设置在右侧,从而生成截屏图像。
在一些实施例中,3D片源还可以采用混合型的形式,即在一帧数据中,左显示器画面和右显示器画面逐列排布,并通过不同的偏振频率输出。对此,在形成混合型3D截屏图像时,可以在拼接过程中,对左侧虚拟截屏相机拍摄的中间图像和右侧虚拟截屏相机拍摄的中间图像的像素按列或按行进行提取,并逐列间隔融合在同一个图片中。
可见,在上述实施例中,虚拟现实设备500可以通过在渲染场景获取中间图像的方式进行截屏。由于在渲染场景中获得的中间图像尚未输出至显示器进行显示,因此所截取的图像画面未产生畸变,能够保留图像中媒资画面和渲染物体的原有形状。再通过对多个角度上的中间图像进行拼接,从而输出传统2D图片形式以外的其他类型图像,有利于截屏图像在虚拟现实设备500以及其他3D设备中播放时,保留立体效果。
相应的,在用户输入带有指定截屏输出类型为3D或全景图片的截屏操作指令时,虚拟现实设备500可以执行3D或全景图片的截屏方法,即如图23所示,在获取用户输入的截屏操作指令的步骤后,所述控制器被进一步配置为:
S710:解析用户在所述截屏操作指令中指定的截屏输出类型;
S720:根据所述截屏输出类型,在渲染场景中设置虚拟截屏相机;
S730:使用所述虚拟截屏相机对渲染场景执行图像拍摄。
在获取用户输入的截屏操作指令后,虚拟现实设备500可以对截屏操作指令进行解析,以从截屏操作指令中解析出指定的截屏输出类型。根据虚拟现实设备500所支持播放的片源类型不同,截屏输出类型可以包括多种。例如,截屏输出类型可以包括2D图片等常规图片类型,以及3D图片、全景图片等立体图片类型。为了便于描述,在本申请的部分实施例中,将2D图片等常规图片类型称为第一类型,将3D图片、全景图片等立体图片类型称为第二类型。
通过解析截屏操作指令获得截屏输出类型以后,虚拟现实设备500还可以根据截屏输出类型在渲染场景中设置虚拟截屏相机,以使用虚拟截屏相机对渲染场景执行图像拍摄,获得一个或多个角度上的图像画面,生成中间图像。其中,虚拟截屏相机是渲染引擎中的一种图像输出模型,是一种预先定义的功能软件模块,用于对渲染场景进行拍摄,从而根据拍摄的内容获得截屏图像。
显然,在指定不同的截屏输出类型时,在渲染场景中设置的虚拟截屏相机的位置和数量也不同。即在一些实施例中,如果截屏输出类型为第一类型,在渲染场景中设置一个居中的虚拟截屏相机;如果截屏输出类型为第二类型,在渲染场景中设置多个虚拟截屏相机,并且在渲染场景中,可以按照设置的截屏输出类型,保持多个虚拟截屏相机之间的相对位置关系。
例如,如图24所示,如果截屏输出类型为3D图片,在渲染场景中设置左侧虚拟截屏相机和右侧虚拟截屏相机。即LeftCamera、RightCamera。其中,LeftCamera放置在渲染场景中的左侧,用于模拟用户的左眼;RightCamera放置在渲染场景中的右侧,用于模拟用户的右眼。在虚拟现实设备500执行截屏操作指令时,可以通过LeftCamera渲染获得左眼图像画面,通过RightCamera渲染获得右眼图像,从而获得双眼视角下的中间图像。
如果截屏输出类型为全景图片,在渲染场景中设置多个虚拟截屏相机,虚拟相机的数量可以根据全景图片的全景视野角度以及每个虚拟相机的拍摄视野角度之间的关系确定,即可以设置多个虚拟截屏相机的拍摄视野角度总和大于或等于全景视野角度。
例如,如图25所示,当全景图片的全景视野角度为360°时,可以在渲染场景中设置至少4个拍摄视野角度大于或等于90°的虚拟截屏相机。即多个虚拟截屏相机包括前方虚拟截屏相机(FrontCamera)、后方虚拟截屏相机(BackCamera)、左侧虚拟截屏相机(LeftCamera0)以及右侧虚拟截屏相机(RightCamera0)。其中,LeftCamera0的拍摄方向为左侧、RightCamera0拍摄方向为右侧、FrontCamera拍摄方向为前方、BackCamera拍摄方向为后方。在虚拟现实设备500执行截屏操作指令时,4个虚拟相机可以分别在左右前后四个方向上进行图像拍摄,从而获得左右前后4个角度上的中间图像。
需要说明的是,为了指定截屏结果的图像类型,还可以在用户输入截屏操作指令后,在当前界面中弹出类型选择界面,以供用户选择此次截屏操作的输出类型。例如,在用户同时按下“电源键”和“音量+”以后,虚拟现实设备500会在当前界面中弹出类型选择窗口,类型选择窗口中可以包括“2D模式”和“3D模式”等多个模式选项,并在用户选择任一选项后,生成截屏操作指令。
但由于截屏操作具有时效性,即用户通常希望在较短的时间内完成截屏,因此为了快速完成截屏操作,还可以统一设置虚拟现实设备500同时输出多种类型的截屏结果。例如,在用户输入截屏操作指令后,通过上述截屏方法,同时截取2D图片、3D图片以及360全景图片,并将这些图片进行分组保存,以供用户查看。
即在一些实施例中,在虚拟现实设备500的渲染场景可以预先设置多个虚拟截屏相机,并在执行截屏操作时,通过多个虚拟截屏相机同时在多个角度上执行图像拍摄,以输出中间图像。再根据截屏操作指令中指定的输出类型,选择图像进行拼接处理,获得相应类型的截屏图像。
例如,输出的中间图像中可以包括:由居中相机(CenterCamera)拍摄获得的正视图像;由LeftCamera和RightCamera拍摄获得的左眼图像和右眼图像;由LeftCamera0、RightCamera0、FrontCamera和BackCamera拍摄获得的左侧图像、右侧图像、前方图像和后方图像。当用户指定输出2D图片时,可以提取正视图像作为2D片源型的截屏图像;当用户指定输出3D图片时,可以提取左眼图像和右眼图像,并拼接形成3D片 源型的截屏图像。当用户指定输出全景图片时,则提取左侧图像、右侧图像、前方图像和后方图像,并通过拼接以及变形处理,形成全景图片。
实际应用中,所述截屏图像包括2D图片、3D图片以及全景图片中的一种或多种的组合。由于部分实施例在生成2D的截屏图像时,虚拟现实设备500无需对中间图像进行拼接,直接将中间图像保存。因此,如图26所示,在生成截屏图像的步骤中,所述控制器被进一步配置为:
S911:检测截屏操作指令指定的截屏图像所包括的图片类型;
S912:如果截屏图像仅包括2D图片,将中间图像保存为截屏图像;
S913:如果截屏图像包括3D图片和/或全景图片,执行拼接多个角度的中间图像的步骤。
虚拟现实设备500在执行生成截屏图像的步骤前,可以先对截屏操作指令中指定的截屏图像所包括的图片类型进行检测,即对截屏操作指令中的具体截屏输出类型进行检测。根据检测结果,如果截屏图像包括3D图片和全景图片中的任一种类型,则需要对中间图像执行拼接处理,以生成最终的截屏图像,即虚拟现实设备500可以执行拼接多个角度的中间图像的步骤。
而如果截屏图像仅为2D图片类型,则可以直接将中间图像进行保存,以获得截屏图像。可见,通过在输出2D图片时跳过图像拼接过程,不仅可以减小对虚拟现实设备500运算资源的占用,而且可以提高截屏图像的生成效率。
另外,在本申请的部分实施例中,如果用户指定截屏图像为2D图片,还可以直接通过渲染引擎获取待渲染图像,并对待渲染图像进行复制,以获得截屏图像。其中,所述待渲染图像为未进行畸变处理时,左侧显示器或右侧显示器待显示的图像。例如,当用户指定截屏输出结果为2D图片时,可以直接获取渲染引擎中,左显示器对应的虚拟显示相机拍摄的图像,并将图像进行复制保存为截屏图片文件。
如图27所示,在一些实施例,对于所述截屏图像中的3D图片,在执行将拼接多个角度的中间图像的步骤时,所述控制器被进一步配置为:
S921:获取中间图像;
S922:将所述左眼中间图像和右眼中间图像拼接为一幅截屏图像;
S923:存储所述截屏图像。
其中,所述中间图像包括左眼中间图像和右眼中间图像。虚拟现实设备500可在LeftCamera和RightCamera拍摄获得中间图像后,分别对拍摄结果,即左眼中间图像和右眼中间图像进行提取,并按照3D片源的画面排布类型,将左眼中间图像和右眼中间图像拼接为一幅图像中,以获得截屏图像。最后对截屏图像按照设定的路径完成存储。
由于不同的3D片源可以设置有不同的画面排布方式,如左右型3D片源是将左眼图像设置在画面帧数据的左侧区域中,将右眼图像设置在画面帧数据的右侧区域;而上下型3D片源是将左眼图像设置在画面帧数据的上部区域中,将右眼图像设置在画面帧数据的下部区域中。因此,在拼接截屏图像时,需要先对待保存3D片源的画面排布方式进行设定,并且在存储截屏图像时,还可以通过添加标签、描述信息等方式对截屏图像的画面排布方式进行说明,以保证截屏获得的3D图像能够在其他设备中显示出3D效果。
例如,虚拟现实设备500将LeftCamera、RightCamera渲染出的画面LeftImage(w×h)和RightImage(w×h)组合成一幅左右排布的图像中,输出图像的左侧图为LeftImage,输出的图右侧为RightImage。
对于所述截屏图像中的360全景图片,虚拟现实设备500需要对LeftCamera0、RightCamera0、FrontCamera和BackCamera拍摄获得的中间图像执行拼接,从而获得 全景效果的图片。其中,全景效果是指通过图片合成技术,将90度至360度的视野范围内的场景全部展现在一个二维平面上的效果。全景效果图像可以通过柱形或球形等特殊形状的显示面板进行显示,并支持控制环视方向,即可左、可右、可近、可远的移动展示,使用户可以获得身临其境的效果。
对于所述截屏图像中的360全景图片,虚拟现实设备500需要对LeftCamera0、RightCamera0、FrontCamera和BackCamera拍摄获得的中间图像执行拼接,从而获得全景效果的图片。其中,全景效果是指通过图片合成技术,将90度至360度的视野范围内的场景全部展现在一个二维平面上的效果。全景效果图像可以通过柱形或球形等特殊形状的显示面板进行显示,并支持控制环视方向,即可左、可右、可近、可远的移动展示,使用户可以获得身临其境的效果。
为了将中间图像拼接形成全景图片,在一些实施例中,如图28所示,对于360°全景图片,所述控制器被进一步配置为:
S931:获取前向中间图像、后向中间图像、左向中间图像以及右向中间图像;
S932:对比相邻两个中间图像的画面内容,以确定拼接位置;
S933:根据拼接位置,对每个中间图像执行拉伸处理;
S934:合成并存储拉伸结果,以获得全景效果的截屏图像。
在执行拼接多个角度的中间图像,以生成截屏图像的步骤中,虚拟现实设备500可以先提取FrontCamera、BackCamera、LeftCamera0以及RightCamera0生成的中间图像。再通过识别图像中相似内容的位置,并结合相似内容的位置对图像执行拼接处理。例如,由于相邻两个虚拟相机之间存在部分视角重叠,因此在前向中间图像的左侧区域可以识别出与左向中间图像右侧区域内容相似的图案,基于此,虚拟现实设备500可以根据相邻图片的相似内容,对重叠区域进行检测,并定位出拼接位置,再按照拼接位置对各中间图像进行裁切。
由于中间图像是在四个方向上拍摄获得,并且根据视角形状,越靠近相机位置,相似的图像内容区域越多,因此拼接位置呈现为由图片上部向下部方向逐渐收拢的形状,即在裁切后,每个方向上的有效图案呈现为顶部宽,底部窄的梯形图案。
而为了将各方向上的图像合成在一幅全景图内,在拼接过程中,需要对图片的部分区域执行拉伸处理。例如,按照拼接位置,对每个中间图像的下部执行拉伸处理,根据拼接位置的形状不同,对每个区域的拉伸量也不同。即靠近底部的区域拉伸量较大,而靠近顶部的区域拉伸量较小。经拉伸处理后,可以将裁切后的图像转化为矩形图像,再经过合成,即可获得全景效果的截屏图像,如图29所示。
需要说明的是,为了获得与用户观看到的画面内容相同的截屏结果,上述实施例中所述的虚拟截屏相机,在输出2D或3D类型的图片时,也需要与虚拟现实设备500的位姿传感器进行关联,即虚拟截屏相机可以跟随用户的运动,调整拍摄方向。而在输出全景类型图片时,则无需虚拟截屏相机跟随用户的运动调整拍摄方向,因此可以在渲染场景中将虚拟截屏相机设置为固定形式。
例如,可以在Unity 3D场景中放置3个随动的虚拟截屏相机,依次为LeftCamera、RightCamera、CenterCamera。其中,CenterCamera放在LeftCamera、RightCamera中间位置,三个Camera垂直方向均居中。并在Unity 3D场景中放置4个固定虚拟截屏相机,依次为LeftCamera0、RightCamera0、FrontCamera、BackCamera。其中,LeftCamera0固定面向左侧方向、RightCamera0固定面向右侧方向、FrontCamera固定面向前方、BackCamera固定面向后方。
接下来描述用户查看截图图像过程。
浏览界面是通过虚拟现实设备500的渲染引擎进行渲染后输出至显示器中的界面,包括图片展示区域、操作区域以及背景区域。各区域可以通过在渲染场景获得具体画 面内容。例如,图片展示区域对应的画面内容,可以通过渲染场景中设置的显示面板,并在该显示面板上实时呈现的被播放的截屏图片内容;操作区域对应的画面内容,是在渲染场景中设置的UI模型,用于执行对应的用户操作;背景区域对应的画面内容,是通过渲染场景天空盒呈现的画面图案,可以包括平面图案内容画面也可以包括设置在渲染场景中的其他模型画面内容。其中,所述天空盒是虚拟现实设备500为了呈现各种界面而设置的背景画面内容,可以是黑色背景、纯色背景或带有具体图案的其他背景。
由于显示面板为平面形状,因此浏览界面中的图片展示区域也可以呈现为平面形状。操作区域可以根据不同的浏览界面呈现为不同的画面内容,背景区域则根据天空盒类型呈现不同的画面。例如,如图30所示,为了模拟室内观看场景,背景区域中可以展示沙发等室内家居画面。可见,在图30示出的浏览界面中,当截屏图片中包括渲染场景画面(如桌椅、地面、背景墙等)内容时,渲染场景画面与天空盒画面不适应,使得画面混乱,不能给予用户较好的沉浸感体验。
为了获得更好的沉浸感体验,在本申请的部分实施例中,还提供一种虚拟现实设备500,包括显示器和控制器。其中,显示器用于显示播放界面,控制器可以运行截屏图片播放方法程序,从而按照所述截屏图片播放方法播放截屏图片。即如图31所示,控制器被配置为执行以下程序步骤:
S10:获取用户输入的用于播放截屏图片的控制指令。
S11:响应于所述控制指令,解析待播放的截屏图片文件,以获得截屏图像画面和视场角。
在获得用户输入的控制指令后,虚拟现实设备500可以响应于用户输入的控制指令,对待播放的截屏图片文件进行解析,包括解压缩、读取像素信息等,以获得截屏图像画面信息。在解析截屏图片文件的过程中,虚拟现实设备500还可以对截屏图片对应的渲染场景信息进行读取,以通过渲染场景信息确定视场角。
由于用户在虚拟现实设备500上观看的画面内容,是在渲染场景中,以Camera为中心,以R为半径的球内进行展示。其中,用户可以看到的范围,和虚拟现实设备500的视场角(field angle of view,FOV)相关,视场角各边界之间的范围即为用户可以看到的范围。
需要说明的是,在本实施例中,当截屏图片中包括渲染场景画面时,可以通过上述截屏图片播放方法进行显示,而当截屏图片中不包括渲染场景画面时,则无需按照上述截屏图片播放方法进行显示。因此,在解析待播放的截屏图片文件时,还可以对截屏图片中是否带有渲染场景画面进行检测。例如,可以通过读取截屏图片文件的描述信息,确定截屏文件的来源,当读取到截屏图片文件是由虚拟现实设备500生成的,则可以进一步对画面中有效区域的形状进行检测。而当检测到图片未进行畸变处理时,则确定当前截屏图片是通过渲染场景中的纹理数据获得,可能存在渲染场景画面,此时可以按照上述方式对截屏图片进行解析,以获得截屏图像画面和视场角等数据。
S12:根据所述视场角调用播放器模型。
在读取视场角以后,虚拟现实设备500还可以根据读取的视场角,调用播放器模型。其中,所述播放器模型用于在渲染场景中,对截屏图像画面内容进行展示,因此播放器模型是在渲染场景中预先根据所述视场角建立的曲面模型。
由于用户通过虚拟现实设备500可以看到的画面,是在视场角下的球面区域,因此,为了获得更好的沉浸感体验,播放器模型可以设置为球面形状。针对不同的视场角,播放器模型的球面范围也不同,例如广角虚拟现实设备下的球面形状范围要大于常规虚拟现实设备下的球面形状范围。
在虚拟现实设备500中,可以预先存储适用于对应视场角的播放器模型,即设置 有多个不同规格的球面模型。当虚拟现实设备500读取出当前视场角以后,可以按照视场角的数值在模型列表中进行匹配,并提取匹配命中的播放器模型,以添加至渲染场景中,用于展示截屏图像画面。
S13:将所述截屏图像画面映射至所述播放器模型。
在调用播放器模型后,虚拟现实设备500还可以将截屏图像画面映射至播放器模型,即通过画面中像素点的位置关系,将截屏图像画面展示在播放器模型上。由于待播放的截屏图片为平面型图片,而播放器模型显示区域为曲面形状,因此虚拟现实设备500可以合并或添加截屏图片中的像素点,从而将平面型图片展示在曲面区域内。
在本申请实施例中,通过将截屏图像画面映射至播放器模型,可以在完成映射后,在播放器模型上展示截屏图像画面,如图8所示。由于播放器模型对应的球面区域可以覆盖视场角,因此通过播放器模型可以使截屏图像画面能够充满用户视野,即通过截屏图像画面代替传统浏览界面中的天空盒画面,缓解截屏图片中的渲染场景画面与天空盒画面重叠显示,以带来更好的沉浸感体验。
在获得截屏图像画面的过程中,虚拟现实设备500还可以对执行图像拍摄时的位置信息进行记录,包括记录拍摄时的拍摄位置和视场角等信息。例如,当使用截屏相机进行图像拍摄时,可以记录截屏相机在当前渲染场景中的位置,同时记录截屏相机的视场角。由于所记录的位置信息可以用于在播放截屏图片文件时进行解析,从而还原虚拟渲染场景,因此为了获得更好的还原效果,还可以对渲染场景中的虚拟物体位置信息进行记录,如记录显示面板位置等。
在记录视场角以后,虚拟现实设备500可以对截屏图像画面进行保存。由于通过图像拍摄获得的图像是一种像素信息,需要转化成特定格式的图片文件才能被虚拟现实设备500或其他设备在后续使用中读取、调用和发送。因此在保存截屏图像画面时,虚拟现实设备500可以对截屏图像画面进行编码、压缩等处理,以生成图片文件。生成的图片文件可保存在虚拟现实设备500存储器内指定的文件保存路径中,或者通过通信连接发送给其他设备。在存储截屏图片文件的过程中,可以将记录的位置信息也整合至图片文件内,以便后续播放时解析获得。
可见,在上述实施例中,虚拟现实设备500可以在获取截屏操作指令后,通过在渲染场景中进行图像拍摄,从而获得未畸变的截屏图像画面,用于生成截屏图片文件。这种截屏方式不仅能够避免畸变处理影响画面内容,而且能够使截屏获得的图片文件中携带视场角、拍摄位置等位置信息,便于播放文件时进行解析。
上述实施例中,可以通过预先创建的符合当前视场角的播放器模型呈现截屏图像画面,但由于截屏图片可以来源于不同的虚拟现实设备,而不同的虚拟现实设备可能具有不同的视场角,即在用户使用的虚拟现实设备500中,可能未预先存储有对应视场角的播放器模型。为此,如图32所示,在一些实施例中,根据所述视场角调用播放器模型的步骤中,所述控制器被进一步配置为:
S1210:获取播放器模型列表;
S1220:使用所述视场角在所述播放器模型列表中匹配播放器模型;
S1230:如果在所述播放器模型列表中匹配到所述视场角下的播放器模型,调用匹配命中的所述播放器模型;
S1240:如果在所述播放器模型列表中未匹配到所述视场角下的播放器模型,根据所述视场角创建播放器模型。
虚拟现实设备500在读取视场角后,可以根据读取的视场角匹配播放器模型。在匹配过程中,虚拟现实设备500可以先获取播放器模型列表,在通过播放器模型列表完成模型匹配。在播放器模型列表中可以包括多个表项,每个表项中记载有当前虚拟现实设备500中的一个播放器模型的存储地址以及其对应的视场角。
控制器再根据视场角匹配播放器模型列表中的各个表项,当任一表项中记载的视场角数值与读取的视场角数值相等时,即代表在播放器模型列表中匹配到视场角下的播放器模型,因此可以调用该模型,并加载至渲染场景中。而当播放器模型列表中不存在与视场角值相等的表项时,则确定在播放器模型列表中未匹配到视场角下的播放器模型,此时,为了能够继续对当前截屏图片进行播放,虚拟现实设备可以根据当前视场角以及截屏图片,创建新的播放器模型。
其中,播放器模型可以由虚拟现实设备500通过渲染引擎完成创建,也可以通过第三方应用程序完成创建。例如,建模的工具包括:Maya软件、3dsmax软件、ZBrush软件、Headus UVLayout软件、BodyPaint 3D软件、PS软件和Vray渲染器软件等。可以通过一个第三方应用完成模型创建,也可以通过多个第三方应用协同完成模型创建。模型创建成功后,将其导入到unity开发工程中,并添加到渲染场景,从而实现将截图呈现在用户的整个视野内,获得与截图场景下相同的体验效果。
在一些实施例中,如图33所示,为了创建新的播放器模型,根据所述视场角创建播放器模型的步骤中,所述控制器还被进一步配置为:
S1241:获取待播放截屏图片的分辨率;
S1242:根据所述分辨率以及所述视场角计算曲面半径;
S1243:按照所述曲面半径在渲染场景中创建球坐标系;
S1244:在所述球坐标系中截取所述视场角下的曲面范围,以生成播放器模型。
由于播放器模型是球面的一部分,因此在创建播放器模型时,可以将播放器模型通过球坐标系进行表示。其中,球坐标系是三维坐标系的一种,用以确定三维空间中点、线、面以及体的位置,它以坐标原点为参考点,由方位角、仰角和距离构成。
如图34所示,在球坐标系中,可以用ρ表示球面点到原点的距离,ρ的取值范围是0≤ρ≤+∞。在ρz平面上,从z轴正半轴向ρ偏转的角度是
的取值范围是
从x轴偏转到平面的角度是θ,θ的取值范围是0≤θ≤2π,可通过定义球坐标系中所述视场角下的曲面范围,生成播放器模型。
由于
在球面的最大值为180°,当Camera的可视角度为FOV,则在垂直方向的可视范围是FOV,在球坐标系中
的起始值为(180-FOV)/2=90-FOV/2,
的结束值为90-FOV/2+FOV=90+FOV/2;即
的垂直区域的范围是(90-FOV/2,90+FOV/2)。将该范围转化成弧度表示,则
的取值范围是(90-FOV/2)/180到(90+FOV/2)/180。
同理,θ在球面的最大值为360°,在水平方向的可视范围为FOV,则θ的起始值为(360-FOV)/2=180-FOV/2,θ的结束值为180-FOV/2+FOV=180+FOV/2;即θ的水平区域的范围为180-FOV/2到180+FOV/2。将该范围转化成弧度表示,则θ的取值范围为(180-FOV/2)/180到(180+FOV/2)/180。
基于上述球坐标系的内容,虚拟现实设备500可以在未匹配到当前视场角对应的播放器模型时,通过读取待播放截屏图片的分辨率,确定当前图片的尺寸以及最适合当前图片进行显示的状态信息,如适合进行展示的空间形状、观看距离等数据。再根据分辨率以及视场角计算曲面半径,即确定球坐标系中的ρ,从而按照计算获得的曲面半径在渲染场景中创建球坐标系。
虚拟现实设备500再根据视场角对应的取值范围,在球坐标系中截取曲面范围,以生成播放器模型。即在创建球坐标系后,在球坐标系中截取垂直方向在(90-FOV/2,90+FOV/2)内的区域范围;水平方向在(180-FOV/2,180+FOV/2)内的区域范围。生成播放器模型后,虚拟现实设备500可以将生成的播放器模型加载到渲染场景中,用于呈现截屏图像画面。
可见,上述实施例中,虚拟现实设备500可以通过视场角匹配调用或者创建播放器模型,以通过适应于当前截屏图片的播放器模型对截屏图片进行播放。通过使用截 屏图片画面内容代替浏览界面中的天空盒画面,可缓解天空盒画面与截屏图片内容之间的不协调问题,提高用户的沉浸感体验。
在一些实施例中,为了将所述截屏图像画面映射至播放器模型,所述控制器被进一步配置为:
S1310:根据截屏图像画面构建二维纹理坐标,以及根据所述播放器模型构建球面纹理坐标;
S1320:设定所述二维纹理坐标和所述球面纹理坐标的范围;
S1330:按照所述球面纹理坐标上每个点的法向量坐标,将所述二维纹理坐标中的点映射到所述球面纹理坐标中。
当播放器模型创建成功后,虚拟现实设备500可以将截屏获得的图片展示在该播放模型,由于截屏图片为平面纹理形状,而播放模型上可进行展示的形状为球面纹理形状。因此,如图35所示,在本实施例中,将截屏图像画面映射到播放模型上,就是将一个平面纹理映射到球面上。
具体的,虚拟现实设备500可以先根据截屏图像画面构建二维纹理坐标,并根据播放器模型构建球面纹理坐标,再通过设定二维纹理坐标和球面纹理坐标的范围,以确定二维纹理坐标和球面纹理坐标之间的对应关系,从而按照球面纹理坐标上每个点的法向量坐标,将二维纹理坐标中的点映射到球面纹理坐标中。
例如,如图36所示,可以通过图中的外部方框表示二维纹理坐标,其范围是(u,v)min=(0,0);(u,v)max=(1,1)。再通过图中方框内的圆形表示球面法向量坐标,其x,y分量的范围是(x,y)min=(-1,-1);(x,y)max=(1,1)。可见,将二维纹理坐标映射到球面坐标即两组坐标的映射,也就是将区间(x,y)min-(x,y)max映射到区间(u,v)min-(u,v)max。
为了提高映射的精度,虚拟现实设备500还可以按照截屏图像画面的分辨率,对截屏图像画面执行切分;再针对切分所获得的每个子区域执行纹理采样;并使用反正弦函数,将子区域内纹理采样点坐标转化为球面点坐标。
例如,虚拟现实设备500可以使用反正弦函数y=arcsin(x)。反正弦函数y=arcsin(x)的定义域x=(-1,1),值域是y=(-π/2,π/2)。结合三维球体的半径为r,水平转动角度为h([0,2π]),上下转动角度为p([-π/2,π/2]),即球面上一点的三维坐标
经过反向变换可得到θ=arcsin(z/r),
因此,当把上下转动角度p对应到纹理的V方向,把水平转动角度h对应到纹理的U方向,UV的范围都是[0,1]。在知道球面坐标xyz和半径r以后,球面点对应的纹理坐标,即:U=arctan(y/x)/2/π;V=arcsin(z/r)/π+0.5。根据上述结果,虚拟现实设备500可以将二维纹理坐标转化为球面坐标,实现在播放器模型上展示截屏图片画面。
在上述实施例中,虚拟现实设备500可以在显示截屏图片时,根据截屏图片中的场景使用相对应的播放器模型对截屏图像画面进行呈现。但在实际应用中,由于部分虚拟现实设备500可以输出多种类型的截屏图片,例如,可以输出2D图片、3D图片以及全景图片等。而针对不同类型的图片,虚拟现实设备500需要采用不同的播放方式,即如图37所示,在一些实施例中,解析待播放的截屏图片文件的步骤中,所述控制器被进一步配置为:
S1110:读取待播放截屏图片的画面类型;
S1120:如果所述画面类型为第一类型,执行解析待播放的截屏图片文件,以获得截屏图像画面和视场角的步骤;
S1130:如果所述画面类型为第二类型,隐藏播放界面中的渲染背景,以在渲染场景中展示所述截屏图片。
由于虚拟现实设备500截屏所输出的图片类型中,2D图片为常规图像形状,因此 可以按照上述截屏图片播放方法进行显示。而3D图片中包括分别对应于左眼和右眼的两部分画面,两部分画面可以按照特定的排布方式呈现在截屏图片中,例如,左右型3D图片的左眼图像在图片左侧,右眼图像在图片右侧;上下型3D图片的左眼图像在图片的上部,右眼图像在图片下部。因此,在播放3D图片时,虚拟现实设备500在播放器模型中展示的画面会包括左眼图像和右眼图像,即出现显示错误的问题。
对此,本实施例中,虚拟现实设备500可以在解析待播放截屏图片时,读取截屏图片的画面类型。其中,所述截屏画面类型包括第一类型和第二类型,第一类型可以是2D图片等常规图像,而第二类型是3D图片等图片中带有左眼图像和右眼图像等多个画面部分的图片。通过读取截屏图片的画面类型,如果画面类型是第一类型,则可以按照上述实施例中的方式,对待播放的截屏图片文件进行解析,以获得截屏图像画面和视场角。
如果画面类型是第二类型,由于截屏图片文件本身带有3D效果,因此可以直接在渲染场景中展示截屏图片,为用户带来沉浸感体验。显然,在展示截屏图片的过程中,可以通过设置将3D图片中的左眼图像输出给左显示器;将3D图片中的右眼图像输出给右显示器。例如,针对3D图片进行图像切分,将左眼图像和右眼图像分离,并同时在渲染场景中进行展示。通过设置左眼图像对左显示器对应的虚拟显示相机可见,设置右眼图像对右显示器对应的虚拟显示相机可见,从而实现图像画面在左显示器和右显示器中的输出。在显示3D图片时,虚拟现实设备500还可以对渲染场景中的原天空盒区域进行隐藏,仅保留截屏图片内容,以缓解天空盒画面对截屏图片画面造成干扰。
另外,对于全景图片类型,由于其可以直接展示在球形的曲面上,因此在确定待播放截屏图片类型为全景图像时,虚拟现实设备500可以直接将全景图像显示在播放器模型对应的球面上,从而获得环绕的效果。
由以上实施例可知,虚拟现实设备500可以在将截屏图像画面映射到播放器模型后,在渲染场景中展示截屏图像画面内容。为了能够将渲染场景中的画面内容输出到显示器进行显示,如图38所示,在一些实施例中,将所述截屏图像画面映射至所述播放器模型的步骤后,所述控制器被进一步配置为:
S1401:在渲染场景中添加映射有截屏图像画面的所述播放器模型;
S1402:设置所述播放器模型在所述渲染场景中的位置,以使所述截屏图像画面覆盖整个所述视场角;
S1403:通过虚拟显示相机拍摄当前渲染场景,以输出所述截屏图像画面。
虚拟现实设备500在将截屏图像画面映射到播放器模型上以后,可以将带有截屏图像画面的播放器模型添加到渲染场景中。再通过设置播放器模型在渲染场景中的位置,以使截屏图像画面能够覆盖当前虚拟现实设备500的视场角,即如图39所示,使截屏图像画面充满用户的视野范围。
在渲染场景中添加播放界面的全部内容后,虚拟现实设备500还可以通过虚拟显示相机对当前渲染场景进行拍摄,从而实时输出显示画面。虚拟现实设备500的渲染场景中可以设置有两个虚拟显示相机,两个虚拟显示相机可以分别对应于虚拟现实设备500的左右显示器,从而模拟人眼观看方式,为用户呈现出立体感效果。虚拟显示相机可以跟随虚拟现实设备500中的姿态传感器调整拍摄角度,从而随着用户在佩戴时的动作,调整画面内容,以使用户获得更好的沉浸感体验。
本申请提供的实施例之间的相似部分相互参见即可,以上提供的具体实施方式只是本申请总的构思下的几个示例,并不构成本申请保护范围的限定。对于本领域的技 术人员而言,在不付出创造性劳动的前提下依据本申请方案所扩展出的任何其他实施方式都属于本申请的保护范围。
Claims (10)
- 一种虚拟现实设备,其特征在于,包括:显示器,被配置为显示用户界面,所述用户界面包括图片成像区域和天空盒区域,所述图片成像区域用于呈现多媒体内容;所述天空盒区域位于图像区域的四周,用于呈现渲染背景内容;控制器,被配置为:获取用户输入的用于播放截屏图片的控制指令;响应于所述控制指令,解析待播放的截屏图片文件,以获得截屏图像画面和视场角;根据所述视场角调用播放器模型,所述播放器模型为在渲染场景中预先根据所述视场角建立的曲面模型;将所述截屏图像画面映射至所述播放器模型。
- 根据权利要求1所述的虚拟现实设备,其特征在于,在所述获取用户输入的用于播放截屏图片的控制指令之前,所述控制器被进一步配置为:接收用户输入的截屏指令;响应于所述截屏指令,对当前渲染场景执行图像拍摄,以获得截屏图像画面;记录执行图像拍摄时在所述渲染场景中的拍摄位置以及视场角;保存所述截屏图像画面和所述视场角,以生成截屏图片文件。
- 根据权利要求1所述的虚拟现实设备,其特征在于,根据所述视场角调用播放器模型的步骤中,所述控制器被进一步配置为:获取播放器模型列表;使用所述视场角在所述播放器模型列表中匹配播放器模型;如果在所述播放器模型列表中匹配到所述视场角下的播放器模型,调用匹配命中的所述播放器模型;如果在所述播放器模型列表中未匹配到所述视场角下的播放器模型,根据所述视场角创建播放器模型。
- 根据权利要求3所述的虚拟现实设备,其特征在于,根据所述视场角创建播放器模型的步骤中,所述控制器被进一步配置为:获取待播放截屏图片的分辨率;根据所述分辨率以及所述视场角计算曲面半径;按照所述曲面半径在渲染场景中创建球坐标系;在所述球坐标系中截取所述视场角下的曲面范围,以生成播放器模型。
- 根据权利要求1所述的虚拟现实设备,其特征在于,将所述截屏图像画面映射至所述播放器模型的步骤中,所述控制器被进一步配置为:根据截屏图像画面构建二维纹理坐标,以及根据所述播放器模型构建球面纹理坐标;设定所述二维纹理坐标和所述球面纹理坐标的范围;按照所述球面纹理坐标上每个点的法向量坐标,将所述二维纹理坐标中的点映射到所述球面纹理坐标中。
- 根据权利要求5所述的虚拟现实设备,其特征在于,将所述二维纹理坐标中的点映射到所述球面纹理坐标中的步骤中,所述控制器被进一步配置为:按照所述截屏图像画面的分辨率,对所述截屏图像画面执行切分;针对切分所获得的每个子区域执行纹理采样;使用反正弦函数,将子区域内纹理采样点坐标转化为球面点坐标。
- 根据权利要求1所述的虚拟现实设备,其特征在于,解析待播放的截屏图片文件的步骤中,所述控制器被进一步配置为:读取待播放截屏图片的画面类型;如果所述画面类型为第一类型,执行解析待播放的截屏图片文件,以获得截屏图像画面和视场角的步骤;如果所述画面类型为第二类型,隐藏播放界面中的渲染背景,以在渲染场景中展示所述截屏图片。
- 根据权利要求1所述的虚拟现实设备,其特征在于,将所述截屏图像画面映射至所述播放器模型的步骤后,所述控制器被进一步配置为:在渲染场景中添加映射有截屏图像画面的所述播放器模型;设置所述播放器模型在所述渲染场景中的位置,以使所述截屏图像画面覆盖整个所述视场角;通过虚拟显示相机拍摄当前渲染场景,以输出所述截屏图像画面。
- 一种虚拟现实设备,其特征在于,包括:显示器,被配置为显示用户界面,所述用户界面包括图片成像区域和天空盒区域,所述图片成像区域用于呈现多媒体内容;所述天空盒区域位于图像区域的四周,用于呈现渲染背景内容;控制器,被配置为:接收用户输入的截屏指令;响应于所述截屏指令,对当前渲染场景执行图像拍摄,以获得截屏图像画面;记录执行图像拍摄时在所述渲染场景中的拍摄位置以及视场角;保存所述截屏图像画面和所述视场角,以生成截屏图片文件。
- 一种截屏图片播放方法,其特征在于,应用于虚拟现实设备,所述虚拟现实设备包括显示器和控制器,所述截屏图片播放方法包括:获取用户输入的用于播放截屏图片的控制指令;响应于所述控制指令,解析待播放的截屏图片文件,以获得截屏图像画面和视场角;根据所述视场角调用播放器模型,所述播放器模型为在渲染场景中预先根据所述视场角建立的曲面模型;将所述截屏图像画面映射至所述播放器模型。
Applications Claiming Priority (12)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110065120.XA CN112732089A (zh) | 2021-01-18 | 2021-01-18 | 一种虚拟现实设备及快捷交互方法 |
CN202110065120.X | 2021-01-18 | ||
CN202110065015.6 | 2021-01-18 | ||
CN202110065017.5A CN112732088B (zh) | 2021-01-18 | 2021-01-18 | 一种虚拟现实设备及单目截屏方法 |
CN202110065017.5 | 2021-01-18 | ||
CN202110065015 | 2021-01-18 | ||
CN202110097842.3 | 2021-01-25 | ||
CN202110097842.3A CN114286142B (zh) | 2021-01-18 | 2021-01-25 | 一种虚拟现实设备及vr场景截屏方法 |
CN202110284754.4 | 2021-03-17 | ||
CN202110284754.4A CN114327700A (zh) | 2021-01-18 | 2021-03-17 | 一种虚拟现实设备及截屏图片播放方法 |
CN202110290401.5 | 2021-03-18 | ||
CN202110290401.5A CN113064684B (zh) | 2021-01-18 | 2021-03-18 | 一种虚拟现实设备及vr场景截屏方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2022151883A1 true WO2022151883A1 (zh) | 2022-07-21 |
Family
ID=82446852
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/CN2021/137060 WO2022151883A1 (zh) | 2021-01-18 | 2021-12-10 | 虚拟现实设备 |
Country Status (1)
Country | Link |
---|---|
WO (1) | WO2022151883A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116310152A (zh) * | 2023-05-24 | 2023-06-23 | 南京维赛客网络科技有限公司 | 基于unity平台的步进式虚拟场景搭建、漫游方法及虚拟场景 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6559846B1 (en) * | 2000-07-07 | 2003-05-06 | Microsoft Corporation | System and process for viewing panoramic video |
CN106293395A (zh) * | 2016-08-03 | 2017-01-04 | 深圳市金立通信设备有限公司 | 一种虚拟现实眼镜及其界面交互方法 |
CN107071557A (zh) * | 2017-04-27 | 2017-08-18 | 中兴通讯股份有限公司 | 一种播放视频的方法和设备 |
-
2021
- 2021-12-10 WO PCT/CN2021/137060 patent/WO2022151883A1/zh active Application Filing
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6559846B1 (en) * | 2000-07-07 | 2003-05-06 | Microsoft Corporation | System and process for viewing panoramic video |
CN106293395A (zh) * | 2016-08-03 | 2017-01-04 | 深圳市金立通信设备有限公司 | 一种虚拟现实眼镜及其界面交互方法 |
CN107071557A (zh) * | 2017-04-27 | 2017-08-18 | 中兴通讯股份有限公司 | 一种播放视频的方法和设备 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116310152A (zh) * | 2023-05-24 | 2023-06-23 | 南京维赛客网络科技有限公司 | 基于unity平台的步进式虚拟场景搭建、漫游方法及虚拟场景 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2018188499A1 (zh) | 图像、视频处理方法和装置、虚拟现实装置和存储介质 | |
CN110636353B (zh) | 一种显示设备 | |
CN114286142B (zh) | 一种虚拟现实设备及vr场景截屏方法 | |
CN111541907A (zh) | 物品显示方法、装置、设备及存储介质 | |
US11044398B2 (en) | Panoramic light field capture, processing, and display | |
JP2003284093A (ja) | 立体画像処理方法および装置 | |
JP2020004325A (ja) | 画像処理装置、画像処理方法およびプログラム | |
CN112732089A (zh) | 一种虚拟现实设备及快捷交互方法 | |
US11062422B2 (en) | Image processing apparatus, image communication system, image processing method, and recording medium | |
WO2022151883A1 (zh) | 虚拟现实设备 | |
CN113066189B (zh) | 一种增强现实设备及虚实物体遮挡显示方法 | |
CN114302221A (zh) | 一种虚拟现实设备及投屏媒资播放方法 | |
JP2003284095A (ja) | 立体画像処理方法および装置 | |
WO2022193931A1 (zh) | 一种虚拟现实设备及媒资播放方法 | |
WO2022151882A1 (zh) | 虚拟现实设备 | |
CN111381750B (zh) | 电子装置及其控制方法和计算机可读存储介质 | |
JP6714942B1 (ja) | コミュニケーションシステム、コンピュータプログラム、及び情報処理方法 | |
CN111630848B (zh) | 图像处理装置、图像处理方法、程序和投影系统 | |
CN115129280A (zh) | 一种虚拟现实设备及投屏媒资播放方法 | |
CN108305210B (zh) | 数据处理方法、装置及存储介质 | |
JP2003284094A (ja) | 立体画像処理方法および装置 | |
CN112732088B (zh) | 一种虚拟现实设备及单目截屏方法 | |
WO2022111005A1 (zh) | 虚拟现实设备及vr场景图像识别方法 | |
US20200410962A1 (en) | Information displaying method and electronic device therefor | |
CN114286077B (zh) | 一种虚拟现实设备及vr场景图像显示方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 21919073 Country of ref document: EP Kind code of ref document: A1 |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
122 | Ep: pct application non-entry in european phase |
Ref document number: 21919073 Country of ref document: EP Kind code of ref document: A1 |