CN117590928A - 一种三维空间中的多窗口处理方法、设备及系统 - Google Patents

一种三维空间中的多窗口处理方法、设备及系统 Download PDF

Info

Publication number
CN117590928A
CN117590928A CN202310659375.8A CN202310659375A CN117590928A CN 117590928 A CN117590928 A CN 117590928A CN 202310659375 A CN202310659375 A CN 202310659375A CN 117590928 A CN117590928 A CN 117590928A
Authority
CN
China
Prior art keywords
window
dimensional
windows
information
transformation matrix
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202310659375.8A
Other languages
English (en)
Inventor
岳雅婷
范顺豪
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Hongyu Technology Co ltd
Original Assignee
Beijing Hongyu Technology Co ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beijing Hongyu Technology Co ltd filed Critical Beijing Hongyu Technology Co ltd
Priority to CN202310659375.8A priority Critical patent/CN117590928A/zh
Publication of CN117590928A publication Critical patent/CN117590928A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/011Arrangements for interaction with the human body, e.g. for user immersion in virtual reality
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/03Arrangements for converting the position or the displacement of a member into a coded form
    • G06F3/033Pointing devices displaced or positioned by the user, e.g. mice, trackballs, pens or joysticks; Accessories therefor
    • G06F3/0346Pointing devices displaced or positioned by the user, e.g. mice, trackballs, pens or joysticks; Accessories therefor with detection of the device orientation or free movement in a 3D space, e.g. 3D mice, 6-DOF [six degrees of freedom] pointers using gyroscopes, accelerometers or tilt-sensors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0481Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/005General purpose rendering architectures

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Computer Graphics (AREA)
  • Processing Or Creating Images (AREA)

Abstract

本发明涉及计算机系统领域,提供了一种三维空间中的多窗口处理方法、设备及系统,通过接收一个或多个窗口的属性信息,所述窗口包括二维窗口和/或三维窗口;根据一个或多个窗口的属性信息,生成对应的变换矩阵;基于变换矩阵,对一个或多个窗口进行处理,其中,基于变换矩阵对一个或多个窗口进行处理包括:基于变换矩阵,对一个或多个窗口进行显示,以及基于变换矩阵,将三维空间中的事件转换至目标窗口,并发送至目标窗口。本发明能够实现在三维环境中同时显示一个或多个二维窗口及三维窗口,进而使得用户同时对这些窗口进行交互,提高扩展现实设备的应用场景,提升用户体验。

Description

一种三维空间中的多窗口处理方法、设备及系统
技术领域
本发明涉及计算机系统及人机交互领域,尤其涉及一种三维空间中的多窗口处理方法、设备及系统。
背景技术
目前虚拟现实(Virtual Reality,VR)设备上,主流的使用场景是游戏和观影,主要提供的是沉浸式的体验,即一个三维(3D)应用占据整个空间,用户同时只能与一个三维应用交互。但是在很多情况下,用户存在多任务操作需求,即用户希望在VR设备上使用一个应用时,也可以实现与其它应用交互,例如,用户在VR设备上玩游戏时,接收到了消息、短信或电话等,用户希望能够有弹出信息提示,并可以轻松的回复消息,同时又不需要退出或中止当前正在使用的应用。
在增强现实(Augmented Reality)或混合现实(Mixed Reality)设备上,用户能够看到真实的环境,这时用户体验以非沉浸式为主,用户希望能够在360度空间内,同时运行多个三维内容,例如在办公场景里,用户希望能够在桌面上同时放置一个三维闹钟应用,一个三维日历应用,一个三维笔记本应用。但基于当前技术,用户同时只能在空间中打开一个三维应用,其他应用会中止或隐藏,用户体验较差。
传统的PC操作系统如Windows为二维(2D)多窗口的系统,用户通过在一个二维屏幕上的多个二维窗口与多个应用交互。扩展现实设备(包含AR、VR、MR等设备)设备为用户提供了三维空间下的显示与交互能力,因此亟需一种方法能够在三维空间里实现多窗口效果,进一步地实现三维多窗口能力,提升用户对扩展现实设备的使用体验,方便提供非沉浸模式的三维内容开发。
发明内容
本发明用于解决现有技术中,扩展现实设备仅能显示一应用的窗口,使得用户无法同时与多个应用交互,因此,现有扩展现实设备的窗口显示方式存在用户交互方式有限,用户体验差的问题。
为了解决上述技术问题,本发明一方面提供一种三维空间中的多窗口处理方法,包括:
步骤S101、接收一个或多个窗口的属性信息,所述窗口包括二维窗口和/或三维窗口;
步骤S103、根据一个或多个窗口的属性信息,生成对应的变换矩阵;
步骤S105、基于变换矩阵,对一个或多个窗口进行处理。
作为本发明进一步实施例中,所述接收一个或多个窗口的属性信息,包括:接收来自一个或多个窗口的事件生成的窗口的属性信息。
作为本发明进一步实施例中,所述步骤S105包括:
根据变换矩阵,将来自三维空间的事件变换到一个或多个窗口,并发送给对应窗口。
作为本发明进一步实施例中,基于变换矩阵,对一个或多个窗口进行处理,还包括:
一个或多个窗口根据自身逻辑的处理事件,生成对应的窗口的属性信息;
将一个或多个窗口生成的窗口的属性信息进行合成。
作为本发明进一步实施例中,窗口的属性信息包括坐标系、和/或位置、和/或旋转、和/或大小。
作为本发明进一步实施例中,所述窗口属性信息包括窗口装饰信息,其用于对所述窗口进行控制。
作为本发明进一步实施例中,所述窗口的属性信息包括显示信息、和/或交互信息、和/或自身逻辑触发信息。
作为本发明进一步实施例中,所述显示信息包括在窗口创建或窗口属性变换时生成、或者用户视角变化触发时生成。
作为本发明进一步实施例中,所述基于变换矩阵,对一个或多个窗口进行处理包括:
基于窗口属性信息及用户视角姿态信息,确定投影变换矩阵;
基于所述投影变换矩阵,对一个或多个窗口进行处理。
作为本发明进一步实施例中,所述步骤S105包括:
将所述投影变换矩阵发送至相应窗口;
所述相应窗口利用投影变换矩阵对所述窗口内部场景进行渲染得到的双目二维图像;
根据所述相应窗口最新的窗口的属性信息,以及所述相应窗口最新对应的双目二维图像,进行合成渲染得到并显示所述三维空间的双目画面。
作为本发明进一步实施例中,所述步骤S105还包括:
所述窗口根据应用逻辑生成的渲染指令;
根据所述相应窗口最新的窗口的属性信息,以及渲染指令,进行合成渲染得到并显示所述三维空间的双目画面。
作为本发明进一步实施例中,所述步骤S105还包括:
将所述投影变换矩阵发送至相应窗口;
所述相应窗口利用投影变换矩阵生成的渲染指令;
根据所述相应窗口最新的窗口的属性信息,以及渲染指令,进行合成渲染得到并显示所述三维空间的双目画面。
作为本发明进一步实施例中,在进行合成渲染之前,基于所述窗口装饰信息,加入装饰内容,完成合成渲染得到并显示所述三维空间的双目画面。
作为本发明进一步实施例中,在用户输入产生窗口交互事件时生成所述交互信息。
作为本发明进一步实施例中,所述步骤S105包括:
基于窗口交互事件和窗口的属性信息生成所述交互信息;
基于所述交互信息和窗口交互事件生成目标窗口坐标系,并发送至目标窗口。
作为本发明进一步实施例中,所述目标窗口包括沉浸式模式和窗口模式。
作为本发明进一步实施例中,在应用自身逻辑发生变化时生成自身逻辑触发信息。
作为本发明进一步实施例中,所述自身逻辑触发信息用于修改所述变换矩阵、指示在沉浸式和窗口模式之间切换或触发窗口装饰信息。
作为本发明进一步实施例中,当所述目标窗口进入沉浸式模式后,将所述目标窗口对应的子空间转换为所述三维空间。
作为本发明进一步实施例中,其他窗口保持不变,从而实现目标窗口的内容叠加显示其他窗口内容。
作为本发明进一步实施例中,当接收超过所述目标窗口范围内的窗口的属性信息时,将所述交互信息转换至目标窗口坐标系,将转换后的所述交互信息及交互事件发送至目标窗口处理。
作为本发明进一步实施例中,所述窗口的属性信息基于用户操作或应用自身逻辑触发进行更新。
本发明第二方面提供一种三维空间中的多窗口处理系统,包括:
接收单元,其用于接收一个或多个窗口的属性信息,所述窗口包括二维窗口和/或三维窗口;
变换矩阵生成单元,其用于根据一个或多个窗口的属性信息,生成对应的变换矩阵;
处理单元,其用于基于变换矩阵,对一个或多个窗口进行处理。
本发明第三方面提供一种扩展现实设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现前述任一实施例所述方法的指令。
本发明第四方面提供一种三维空间中的多窗口处理系统,如权利要求24的所述扩展现实设备以及服务器,所述服务器包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现前述任一实施例所述方法的指令。
本发明第五方面提供一种计算机存储介质,其上存储有计算机程序,所述计算机程序被扩展现实设备的处理器运行时,执行根据前述任何以实施例所述的方法的指令。
本发明提供的三维空间中的多窗口处理方法、设备及系统,通过接收一个或多个窗口的属性信息,所述窗口包括二维窗口和/或三维窗口;根据一个或多个窗口的属性信息,生成对应的变换矩阵;基于变换矩阵,对一个或多个窗口进行处理,其中,基于变换矩阵对一个或多个窗口进行处理包括:基于变换矩阵,对一个或多个窗口进行显示,以及基于变换矩阵,将三维空间中的事件转换至目标窗口,并发送至目标窗口。基于变换矩阵及用户观察角度,合成显示来自不同应用。本发明能够实现在三维环境中同时显示一个或多个二维窗口及三维窗口,进而使得用户同时对这些窗口进行交互,提高扩展现实设备的应用场景,提升用户体验。
为让本发明的上述和其他目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附图式,作详细说明如下。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1A示出了本发明实施例三维空间中的多窗口处理方法的流程图;
图1B示出了本发明实施例三维空间中的多窗口处理方法的第一具体流程图;
图2示出了本发明实施例投影变换矩阵确定过程的流程图;
图3示出了本发明实施例三维空间中的多窗口处理方法的第二具体流程图;
图4A示出了本发明实施例三维窗口及二维窗口坐标系示意图;
图4B示出了本发明实施例扩展现实设备中三维空间中的多窗口显示示意图;
图5示出了本发明实施例三维空间中的多窗口处理方法的第三具体流程图;
图6示出了本发明实施例三维空间中的多窗口处理方法的第四具体流程图;
图7示出了本发明实施例三维空间中的多窗口处理方法的第五具体流程图;
图8示出了本发明实施例三维空间中的多窗口处理方法的第六具体流程图;
图9示出了本发明实施例三维多窗口系统侧多窗口处理方法的流程图;
图10示出了本发明实施例应用侧多窗口处理方法的流程图;
图11示出了本发明实施例三维多窗口系统侧的三维空间中的多窗口处理装置的结构图;
图12示出了本发明实施例应用侧的三维空间中的多窗口处理装置的结构示意图;
图13示出了本发明实施例扩展现实设备的结构图。
附图符号说明:
401、窗口装饰信息
1101、第一交互单元;
1102、投影变换矩阵计算单元;
1103、第二交互单元;
1104、第三交互单元;
1105、合成单元;
1201、窗口的属性信息发送单元;
1202、投影变换矩阵接收单元;
1203、交互事件处理单元;
1204、渲染单元;
1205、渲染相关信息发送单元;
1302、扩展现实设备;
1304、处理器;
1306、存储器;
1308、驱动机构;
1310、输入/输出模块;
1312、输入设备;
1314、输出设备;
1316、呈现设备;
1318、图形用户接口;
1320、网络接口;
1322、通信链路;
1324、通信总线。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、装置、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
本说明书提供了如实施例或流程图所述的方法操作步骤,但基于常规或者无创造性的劳动可以包括更多或者更少的操作步骤。实施例中列举的步骤顺序仅仅为众多步骤执行顺序中的一种方式,不代表唯一的执行顺序。在实际中的系统或装置产品执行时,可以按照实施例或者附图所示的方法顺序执行或者并行执行。
现有扩展现实设备中,一个三维应用占据整个空间,用户仅能同时对一个三维应用交互,而实际上,用户存在在扩展现实设备中同时使用多个三维应用或混合使用二维应用与三维应用的需求,或同时使用一个或多个应用创建的多个三维窗口,或混合使用二维窗口与三维窗口的需求(例如用户观看三维视频或进行三维游戏时,需要回复即时信息;用户需要同时查看多个窗口,以选择目标窗口等),现有扩展现实设备的系统无法同时对多个三维应用或同时对三维应用及二维应用进行交互,因此,现有扩展现实设备在使用时存在使用场景的局限性,无法满足用户在使用场景上的需求,对于用户来说存在用户体验差的问题。
为了解决现有技术中存在的上述问题,本发明一实施例中,提供一种三维空间中的多窗口处理方法,如图1A所示,包括:
步骤S101、接收一个或多个窗口的属性信息,所述窗口包括二维窗口和/或三维窗口;
步骤S103、根据一个或多个窗口的属性信息,生成对应的变换矩阵;
步骤S105、基于变换矩阵,对一个或多个窗口进行处理。
详细的说,三维窗口是一个可显示与交互的三维空间中的子空间,具体的,该子空间(即三维窗口)具有如下特性:
(1)子空间是一个360度空间或三维空间,有自己独立的坐标系;
(2)通过一个变换矩阵可将子空间嵌入到一个空间中,例如窗口定义的子空间通过变换矩阵嵌入到整个三维空间内;
(3)子空间显示/交互的边界可人为设定,例如设置为一矩形(二维窗口),一个长方体(三维窗口),或根据窗口属性信息确定,例如根据窗口大小确定的投影变换矩阵(三维窗口)来确定子空间显示/交互边界;子空间显示/交互的边界还可由子空间包含的对象内容来决定,例如有窗口对应对象内容的地方均为子空间可显示/交互的区域。
上述二维窗口及三维窗口可显示于扩展现实设备,且二维窗口及三维窗口可来源于同一应用或不同应用,即不同的进程。这些应用可安装于扩展现实设备本地,或安装于扩展现实设备的接入设备,或安装于服务器,或安装于云端虚拟机上。
本发明所述的二维窗口与现有智能终端、计算机的窗口相同,但其同时拥有在三维空间中的位置旋转缩放属性。应用(窗口)与扩展现实设备中的三维多窗口系统之间可采用消息传输接口通信,例如IPC通信。
上述步骤S103生成的变换矩阵可由三维多窗口系统生成,还可由窗口生成提供,变换矩阵由窗口提供时,还可做作为窗口的属性信息中的一个参数。
上述步骤S103生成的变换矩阵能够实现世界坐标系与窗口坐标系之间数据的转换。变换矩阵基于用户操作、系统事件或应用自身逻辑触发进行更新。
上述步骤S105,能够实现多个二维窗口和/或三维窗口的合并显示,并在多个窗口合并显示的基础上,实现与各窗口的交互。本发明能够提高扩展现实设备的应用场景,提升用户体验。
本发明一实施例中,上述步骤S101中,接收一个或多个窗口的属性信息,包括:接收来自一个或多个窗口的事件生成的窗口的属性信息。具体的,窗口的事件可由窗口应用的自身逻辑发生变化时触发,还可以由控制设备触发。
本发明一实施例中,所述步骤S105包括:
根据变换矩阵,将来自三维空间的事件变换到一个或多个窗口,并发送给对应窗口。
本发明一实施例中,所述步骤S105还包括:
一个或多个窗口根据自身逻辑的处理事件,生成对应的窗口的属性信息;
将一个或多个窗口生成的窗口的属性信息进行合成。
本实施例中,窗口的属性信息至少包括显示信息,其中,显示信息包括:图像信息(二维窗口的二维图像及三维窗口的三维场景)或渲染指令(用于指导生成渲染图像)。
具体实施时,将一个或多个窗口生成的窗口的属性信息进行合成包括:基于变换矩阵及用户双目视角姿态信息,确定投影变换矩阵;基于投影变换矩阵,对一个或多个窗口生成的窗口的属性信息中的显示信息进行合成渲染,得到并显示双目画面。
本发明一实施例中,窗口的属性信息包括坐标系、位置、旋转和大小至少其中之一。
本发明一实施例中,窗口的属性信息还包括:窗口装饰信息,其中,所述窗口装饰信息包括UI控件,其用于对所述窗口进行控制。具体的窗口装饰信息在上述合成步骤后,添加至合成画面的相应位置。
本发明一实施例中,窗口的属性信息还包括:显示信息、和/或交互信息、和/或自身逻辑触发信息。其中,显示信息包括在窗口创建或窗口属性变换时生成、或者用户视角变化触发时生成,具体的,显示信息为待显示二维画面,对于三维窗口,其二维画面基于投影变换矩阵确定。显示信息还可以为渲染指令。交互信息于用户输入产生窗口交互事件时生成。自身逻辑触发信息在应用自身逻辑发生变化时生成,自身逻辑触发信息用于修改变换矩阵、指示在沉浸式和窗口模式之间切换或触发窗口装饰信息。
本发明一实施例中,基于变换矩阵,对一个或多个窗口进行处理包括:
基于窗口属性信息及用户双目视角姿态信息,确定投影变换矩阵;
基于所述投影变换矩阵,对一个或多个窗口进行处理,即对一个或多个窗口进行合并渲染得到双目画面,显示双目画面。
本发明一具体实施方式中,基于所述投影变换矩阵,对一个或多个窗口进行处理包括:
将所述投影变换矩阵发送至相应窗口;
所述相应窗口利用投影变换矩阵对所述窗口内部场景进行渲染得到的双目二维图像;
根据所述相应窗口最新的窗口的属性信息,以及所述相应窗口对应的双目二维图像,进行合成渲染得到并显示所述三维空间的双目画面。
本发明一具体实施方式中,基于投影变换矩阵,对一个或多个窗口进行处理包括:
窗口根据应用逻辑生成渲染指令;
根据所述相应窗口最新的窗口的属性信息,以及渲染指令,进行合成渲染得到并显示所述三维空间的双目画面。
本发明一具体实施方式中,基于投影变换矩阵,对一个或多个窗口进行处理包括:
将所述投影变换矩阵发送至相应窗口;
所述相应窗口利用投影变换矩阵生成渲染指令;
根据所述相应窗口最新的窗口的属性信息,以及渲染指令,进行合成渲染得到并显示所述三维空间的双目画面。
进一步的,在合成渲染之前,基于所述窗口装饰信息,加入装饰内容,完成合成渲染得到并显示所述三维空间的双目画面。
本发明一实施例中,上述步骤S105还包括:基于窗口交互事件和窗口的属性信息生成相交信息;基于相交信息和窗口交互事件生成目标窗口坐标系,并发送至目标窗口,由目标窗口的应用响应窗口交互事件。
其中,相交信息的确定过程可参考后续实施例,此处不再详述。
对于三维窗口来说,包括沉浸式模式及窗口模式。沉浸式模式下,用户可观看窗口下所有角度的内容,窗口模式下,可显示窗口范围内的内容,或不局限于窗口的尺寸,为了增加趣味性或完整性等,可显示超越窗口范围内的对象,且用户可对各模式下显示的内容进行交互。
本发明一实施例中,当所述目标窗口进入沉浸式模式后,将所述目标窗口对应的子空间转换为所述三维空间。
进一步的,一些实施方式中,其他窗口保持不变,从而实现目标窗口的内容叠加显示其他窗口内容。
本发明一实施例中,在沉浸式模式叠加多窗口显示的基础上,还包括:
接收用户输入的至少一个交互事件;
对于每一交互事件,若该交互事件包含指向信息,则确定指向信息指向的窗口及相交信息,将指向信息指向范围内像素所属的窗口作为目标窗口;
将相交信息转换至目标窗口坐标系,将转换后的相交信息及交互事件发送至目标窗口的应用处理。
本实施例能够在沉浸式模式叠加多窗口显示的基础上实现对沉浸式模式显示的内容以及叠加窗口显示内容的交互,提高用户体验。
本发明一实施例中,当接收超过所述目标窗口范围内的窗口的属性信息时,将所述交互信息转换至目标窗口坐标系,将转换后的所述交互信息及交互事件发送至目标窗口处理。
本发明一实施例中,还提供一种三维空间中的多窗口处理系统,包括:
接收单元,其用于接收一个或多个窗口的属性信息,所述窗口包括二维窗口和/或三维窗口;
变换矩阵生成单元,其用于根据一个或多个窗口的属性信息,生成对应的变换矩阵;
处理单元,其用于基于变换矩阵,对一个或多个窗口进行处理。
本发明一实施例中,还提供一种三维空间中的多窗口处理系统,包括前述实施例所述的扩展现实设备以及服务器,服务器包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现前述任一实施例所述方法的指令。
本发明一实施例中,还提供一种三维空间中的多窗口处理方法,应用于支持显示三维内容的设备中或支持显示三维内容设备的服务器中,所述三维任务系统中接入有可创建三维窗口的应用,具体的,如图1B所示,包括:
步骤11,应用创建三维窗口后或监测到窗口属性变化后,发送窗口的属性信息至三维多窗口系统;
步骤12,三维多窗口系统接收三维窗口创建时或窗口属性变化时发送的窗口的属性信息,根据用户双目视角姿态信息及每个窗口的属性信息,计算三维窗口的投影变换矩阵,并将其发送至相应三维窗口的应用;
步骤13,应用接收三维窗口的投影变换矩阵,根据三维窗口的投影变换矩阵,将窗口内部的三维场景渲染成双目二维图像或生成渲染指令;
步骤14,三维多窗口系统接收双目二维图像或渲染指令;根据各窗口最新的窗口的属性信息,以及各窗口对应的双目二维图像或渲染指令,进行合成渲染得到并显示双目画面。
本实施例能够实现在三维环境中同时显示多个同一应用或多个应用提供的三维窗口,进而使得用户同时对多个三维窗口进行交互,提高扩展现实设备的应用场景,提升用户体验。同时,本实施例还可在窗口模式下,使得窗口内画面根据用户视角姿态变化而变化,提高用户体验。
详细地说,步骤11执行于三维窗口创建时及三维窗口属性变化时。具体的,窗口创建指令可由连接至扩展现实设备上的控制设备输入,控制设备包括但不限于智能终端、手柄等。窗口属性变化由应用根据预先设定逻辑控制或由用户通过控制设备输入的交互事件控制。示例性的,窗口创建方式例如为用户触发已安装应用列表中的应用,应用列表可竖排排列、横排排列、环形排列等,三维窗口属性变化触发方式例如为用户通过拖拽窗口的边界及边角实现,本发明对窗口创建方式以及三维窗口属性变化触发方式不做限定。
一些实施方式中,窗口的属性信息包括:窗口位置、窗口大小、窗口旋转、窗口维度类型等基本信息及窗口画布信息。其中,窗口位置由窗口中心位置的三维坐标表示,窗口大小用于限定窗口的三维尺寸。窗口旋转指的是窗口的旋转角度,为窗口在三维空间中的基本属性,用于指导二维双目图像的合成渲染。窗口维度类型用于区分窗口为二维窗口还是三维窗口。窗口画布信息用于承载窗口将三维场景渲染成二维双目图像的结果,用于最终系统的合成。
步骤12执行于用户双目姿态信息变化时以及新接收到窗口的属性信息时。用户双目视角姿态信息包括双目的位置和双目旋转数据。一些实施方式中,用户双目视角姿态信息可由扩展现实设备上的用户姿态检测设备测得,以XR设备为例,XR设备中的IMU数据可提供头部旋转数据,双目位置数据可由双目相对于头部的信息计算得到。其它实施方式中,用户双目视角信息可根据用户移动位置信息,利用SLAM算法对用户移动位置信息进行计算得到。
投影变换矩阵指的是左右眼各一个投影矩阵,如图2所示,步骤12的具体实施步骤包括:
步骤201,将用户双目视角姿态信息作为投影变换矩阵所代表视椎体的起点位置;
步骤202,根据窗口的属性信息中的窗口位置及视椎体的起点位置,确定视椎体朝向;
步骤203,根据窗口的属性信息中的窗口大小,确定视椎体近平面和远平面信息;
步骤204,根据视椎体的起点位置、朝向、近平面及远平面,确定三维窗口的投影变换矩阵。
其中,视椎体的近平面和远平面用来决定窗口内部三维场景的可视范围,超出窗口范围的内容,处于视椎体之外,不会被渲染到窗口的画面中。
步骤13中的双目二维图像于三维窗口内画面变化时或投影变换矩阵变化时生成,即只要三维窗口内画面变化或投影变换矩阵变化,则三维窗口会生成双目二维图像或渲染指令并发送至三维多窗口系统。具体的,双目二维图像指的是左右眼各一个图像,基于投影变换矩阵对窗口内部三维场景进行渲染的具体实施步骤可参考现有三维场景渲染为二维图像的过程,此处不再详述。
步骤13中,根据三维窗口的投影变换矩阵生成渲染指令包括:根据投影变换矩阵,确定三维窗口内的三维内容,即在投影变换矩阵所代表的视椎体范围内确定三维对象;根据三维窗口内的三维内容,生成渲染指令。
详细的说,三维窗口内的三维内容可以是应用直接生成的,还可以是通过读取文件解析得到的,三维内容可以通过几何、材质等传统三维模型方式描述,从fbx,obj等三维模型文件格式读取,也可以通过NeRF等其他方式描述。三维内容的文件也可以是其他自定义的文件格式。应用将三维内容解析转化为渲染对象的元数据,其中,元数据包括渲染对象的模型几何信息、文字内容、材质等描述信息,以及位置、旋转、缩放等属性信息。
具体实施时,为了用户提供更完整、更丰富的体验,应用可以选择指定不依据窗口大小来确定显示范围,而是根据窗口内想要显示的渲染对象内容来确定窗口所代表子空间的范围,如窗口内所有对象所占的空间都属于子空间的范围,根据与窗口内对象的交互来确定当前交互事件是与哪个窗口进行交互。这种情况下,系统将发送用户的投影变换矩阵(与窗口大小无关)给应用,应用可以在窗口大小范围之外显示内容,实现更灵活的应用效果。如应用中包含一棵树和一个鸟窝,小鸟可以从鸟窝中飞出,在空间中的更大范围内自由飞行,想要实现这种效果,应用可以指定采用渲染对象内容来确定窗口所代表子空间的范围,从而允许小鸟在更大范围内自由飞行的效果。
步骤14能够将窗口坐标系的图像统一至世界坐标系,双目画面指的是左右眼各一个图像,各窗口指的是已创建的窗口,具体实施时,各窗口中画面更新频率不同,扩展现实设备当前显示的窗口中,如有窗口属性发生变化,则会执行步骤11至步骤13,如用户双目视角发送变化,则会执行步骤12至步骤13,然后根据变化窗口当前最新窗口的属性信息及其它未变化窗口的历史最新窗口的属性信息,变化窗口对应的双目二维图像或渲染指令,以及其它未变化窗口对应的双目二维图像或渲染指令,进行合成渲染,得到双目画面。
本实施例通过计算各三维窗口的投影变换矩阵,能够保证各窗口内的三维场景投影到二维平面的正确性,使得用户看到正确的显示效果。
本发明进一步实施例中,三维多窗口系统还接入有可创建二维窗口的应用,其中,创建二维窗口与创建三维窗口的应用可以为同一应用,即,一应用既可以创建二维窗口,还可创建三维窗口。具体的,如图3所示,还包括:
步骤301,应用在二维窗口创建时或窗口属性变化时发送窗口的属性信息至三维多窗口系统;在二维窗口内画面变化时发送的二维图像;
步骤302,三维多窗口系统接收二维窗口的属性信息及二维画面;将二维窗口发送的二维图像设置为双目二维图像;根据各窗口最新的窗口的属性信息,以及各窗口对应的双目二维图像或渲染指令,进行合成渲染得到并显示双目画面。
实施时,步骤301与步骤11可同步执行,对于二维应用来说,不会区分左右眼图像,在进行合成渲染时,如图4A所示,设置应用的二维窗口的z方向值为0,并将应用中窗口的二维图像设置为双目二维图像,进而使得二维图像可利用步骤14实现合成渲染。图4A中,左侧为三维窗口的坐标系,右侧为二维窗口的坐标系。
窗口属性变化时,会伴随窗口内画面变化,即接收窗口的属性信息时,还会接收二维图像。
当扩展现实设备中存在窗口内画面变动时,如三维窗口变化,则执行步骤12至步骤14实现窗口界面更新,如二维窗口变化,则执行步骤14实现窗口界面更新。
举例来说,如图4B所示,图4B中同时显示了一个二维窗口A,用于实现视频通信,两个三维窗口B及C,其中,三维窗口B播放三维视频(图中未显示三维效果,具体体验类似于戴眼镜观看3D电影的效果),三维窗口C显示的是三维模型,支持360°观察交互。具体实施时,还可支持用户自定义窗口界面的背景。
本实施例能够实现同时显示二维窗口及三维窗口,提升用户体验。
本发明进一步实施例中,在显示多个三维窗口和/或二维窗口的基础上,还可由用户控制各三维窗口,具体的,如图5所示,三维多窗口系统还执行如下步骤:
步骤501,接收用户输入的至少一个交互事件;
步骤502,对于每一交互事件,若该交互事件包含指向信息,则根据指向信息确定目标窗口以及指向信息中方向与目标窗口间的相交信息;
步骤503,将指向信息中方向与目标窗口间的相交信息从世界坐标系转换至目标窗口坐标系,将转换后的相交信息及交互事件发送至目标窗口的应用处理。
实施时,对于每一交互事件,若该交互事件未包含指向信息,则将当前处于激活状态的窗口作为目标窗口,将交互事件发送至目标窗口。
步骤501中,可由用户操作手柄、手势、语音、眼动、头控、鼠标键盘等控制设备输入窗口交互事件。
一些控制设备输入的交互事件包含指向信息,例如手柄,手势,眼动,头控,鼠标等,指向信息可视作一条射线,利用控制设备的3Dof或6Dof信息(包含位置和旋转),从控制设备的位置出发,指向无限远的地方,射线方向根据控制设备的姿态确定(旋转)。或者,指向信息也通过直接触碰来确定交互对象,如使用手指触碰按钮。一些控制设备输入的交互事件中无指向信息,例如语音、键盘等,会将交互事件发送至当前处于激活状态的窗口,其中,激活状态的窗口确定方式包括:新创建的窗口或用户最近主动交互过的窗口。
交互事件还包括指令事件,指令事件包括但不限于放大缩小窗口,移动窗口位置、旋转窗口、进入窗口内部,关闭窗口、创建新窗口等。
步骤502实施时可利用三维射线检测机制或碰撞检测等方法确定目标窗口及相交信息。具体的,包括:先根据指向信息及三维多窗口系统中已显示窗口的位置信息,进行相交计算,以确定指向穿过的窗口以及指向信息中方向与目标窗口间的相交信息;当指向穿过的窗口包括多个时,将最先穿过的窗口作为目标窗口。当指向未穿过窗口时,无法确定目标窗口,用户交互事件不会发送给任何窗口所属的应用,但可以由系统逻辑执行一些全局操作,如呼出系统菜单等。相交计算的具体实施过程可参考现有技术,此处不再详述。
当一用户或多个用户同时使用了多个指向性控制设备时,如两个手柄,会有多条射线指向一个或多个窗口。具体实施时,会将射线相关的交互事件发送至射线相关的目标窗口,如左手的射线指向窗口A,则左手的按键事件发送给窗口A,右手的射线指向窗口B,则右手的按键事件发送给窗口B。
通过步骤503,使得目标窗口在接收到交互事件时,可直接进行响应。具体的,根据交互事件触发应用逻辑,对场景内容进行修改。
实施时,用户可通过移动位置(例如移动头部,手部,身体等)实现窗口状态与窗口内部三维场景切换,当交互事件为进入窗口内部时,进入沉浸式状态,即可以认为窗口大小为无限大,此时,用户可观看到目标窗口内部360°的所有内容。当用户移动进入某个窗口内部时,即双目位置位于窗口范围内,此时的窗口投影变换矩阵的近平面和远平面设置为与全局投影变换矩阵相同的值,即当用户移动进入到某个窗口内部时,可以看到这个窗口内完整的场景,相当于这个窗口处于沉浸式模式的效果,这个窗口的场景占据了用户全部视野。
如图6所示,当目标窗口为三维窗口,且交互事件为进入目标窗口的沉浸式模式时,三维空间中的多窗口处理过程包括:
步骤601,三维多窗口系统根据用户双目视角姿态信息,计算目标窗口的投影变换矩阵(即全局投影变换矩阵),并将其发送至目标窗口的应用;
步骤602,目标窗口应用根据接收到的投影变换矩阵对三维场景进行渲染得到的双目二维图像或生成渲染指令,将双目二维图像或渲染指令发送至三维多窗口系统;
步骤603,三维多窗口系统根据目标窗口的属性信息,以及目标窗口对应的双目二维图像或渲染指令,进行渲染得到并显示双目画面。
本实施例能够实现从窗口状态进入沉浸式状态。
进一步实施例中,在目标窗口进入沉浸式状态后,还继续执行上述步骤11至步骤14或步骤301至步骤302。
本实施例能够保障用户在沉浸式状态后,还可由用户触发显示多个窗口,进而满足用户在沉浸式状态下,操作多个窗口的需求,例如用户在三维观影状态下,有回信息的需求,此时用户可创建通信窗口,进而实现观影同时回复信息。
本发明一实施例中,如图7所示,在沉浸式模式叠加多窗口显示的基础上,三维空间中的多窗口处理方法还包括:
步骤701,三维多窗口系统接收用户输入的至少一个交互事件;
对于每一交互事件,若该交互事件包含指向信息,则确定指向信息指向范围内像素所属的窗口及相交信息,相交信息也可以通过直接触碰来确定交互对象,如使用手指触碰按钮,将指向信息指向范围内像素所属的窗口作为目标窗口;根据变换矩阵将相交信息转换至目标窗口坐标系,将转换后的相交信息及交互事件发送至目标窗口的应用处理;
对于每一交互事件,若该交互事件未包含指向信息,则将当前处于激活状态的窗口作为目标窗口;将交互事件发送至目标窗口。
步骤702,应用根据相交信息及交互事件执行相应逻辑。当显示画面变化时,执行上述步骤12至步骤14,或步骤301至302。
当退出沉浸式状态时,进入多窗口显示的模式,可利用上述步骤11至步骤14的方式实现窗口合并显示,同时用户还可以对三维窗口内部画面进行控制及观看。
本发明一实施例中,上述步骤13中,当三维多窗口系统接收的是三维窗口利用投影变换矩阵生成的渲染指令时,且渲染指令包含超过窗口大小属性所指定的范围内的对象信息,如图8所示,合并显示后还包括:
步骤801,三维多窗口系统接收用户输入的至少一个交互事件;对于每一交互事件,若该交互事件包含指向信息,则确定指向信息指向的第一个对象所属的窗口及相交信息,相交信息也可以通过直接触碰来确定交互对象,如使用手指触碰按钮,将指向对象所属的窗口作为目标窗口;根据变换矩阵将相交信息转换至目标窗口坐标系,将转换后的相交信息及交互事件发送至目标窗口处理。
步骤802,应用根据相交信息及交互事件执行相应逻辑。当显示画面变化时,执行上述步骤12至步骤14,或步骤301至302。
本实施例能够使得各窗口展示的对象能够实现交互,进一步提升用户的交互体验。
本发明一实施例中,为了便于用户对窗口的控制,窗口上还设置有装饰信息,具体的,上述步骤11实施时,还接收窗口装饰信息,窗口装饰信息包括UI控件,用于实现对窗口的控制,UI控件包括但不限于放大控件、缩小控件、关闭控件等。具体实施时,装饰信息还可包括标题栏等。
步骤14渲染得到双目画面之后,还包括:根据窗口的属性信息,将窗口装饰信息添加至双目画面上,添加结果如图4B中窗口装饰信息401所示。
实施时,窗口装饰信息除了包括UI控件外,还可包括动画显示控件,以使装饰显示动画效果,与背景融为一体,提升趣味性。
本发明一实施例中,上述步骤12中,对于每一三维窗口的投影变换矩阵,三维多窗口系统发送该三维窗口的投影变换矩阵至该三维窗口之前,还执行如下步骤:根据该三维窗口的属性信息及用户双目视角姿态信息,判断该三维窗口是否在用户视野范围内,若否,则不发送投影变换矩阵至该三维窗口,若是,则发送投影变换矩阵至该三维窗口;或
上述步骤12中,三维多窗口系统发送该根据用户双目视角姿态信息及每个窗口的属性信息,计算三维窗口的投影变换矩阵之前,还执行如下步骤:对于每一窗口的属性信息,根据该窗口的属性信息及用户双目视角姿态信息判断三维窗口是否在用户视野范围内,若是,则计算三维窗口的投影变换矩阵。
其中,窗口界面的可见范围可以认为是全局投影变换矩阵代表的视椎体范围,结合全局投影变换矩阵及用户双目视角姿态信息,确定用户视野范围,即哪些窗口可被用户看到。
本实施例能够节约应用窗口渲染及系统渲染的性能,提高画面合成效率。
本发明一实施例中,三维多窗口系统接收到三维窗口应用发送的渲染指令后,先将渲染指令中相对于窗口坐标系的位置信息转换为世界坐标系,根据所有窗口最新转换后的渲染指令及各窗口最新的窗口的属性信息,对窗口进行合成渲染,得到双目画面。
实施时,由于窗口画面更新频率不同,当用户视角范围内其中一窗口画面发生变化时,则执行合成渲染的处理。
窗口创建及窗口画面变化可由窗口响应用户交互事件时触发。
一些实施方式中,系统渲染与应用窗口渲染的方式还可混合使用,具体的,上述步骤14为根据窗口最新的双目二维图像及其最新的窗口的属性信息,以及窗口最新的渲染指令及其最新的窗口的属性信息,进行合成渲染得到并显示双目画面。
一些实施方式中,窗口的渲染指令包括:渲染对象的元数据。其中,元数据包括渲染对象的描述信息以及属性信息,描述信息例如为几何信息(形状、大小等)、文字内容以及材质等信息,属性信息例如为位置、旋转、缩放等信息。元数据还可以为渲染对象模型,系统可根据渲染对象模型生成渲染对象图像。实施时,属性信息可由用户指定,以实现对窗口的互动,丰富用户体验。
一些实施方式中,元数据还可包括运动模型,运动模型中规定了对象的运动规律,例如对象为蝴蝶,蝴蝶的运动模型限定了蝴蝶飞舞的运动规律。三维多窗口系统可根据运动模型实时计算出对象的增量元数据及增量姿态信息,在完成坐标系转换后,与其它窗口内内容合并渲染得到动态的双目画面。
该种方式能够减少应用与系统之间的数据传输量,提升画面生成效率。
一些实施方式中,用户交互事件对应的是一系列调整操作,应用窗口执行调整操作后,根据调整前后变化信息,生成包括增量信息和/或姿态增量信息的渲染指令至系统,系统根据接收到的渲染指令及用户双目视角姿态信息进行合并渲染。
本发明一实施例中,还提供一种应用于三维多窗口系统侧的多窗口处理方法,如图9所示,包括:
步骤901,接收三维窗口创建时或窗口属性变化时发送的窗口的属性信息;
步骤902,根据用户双目视角姿态信息及每个窗口的属性信息,计算三维窗口的投影变换矩阵,并将其发送至相应三维窗口的应用;
步骤903,接收应用利用投影变换矩阵对窗口内部三维场景进行渲染得到的双目二维图像;或接收应用利用投影变换矩阵生成的渲染指令;
步骤904,根据各窗口最新的窗口的属性信息,以及各窗口对应的双目二维图像或渲染指令,进行合成渲染得到并显示双目画面。本发明一实施例中,还提供一种应用于应用侧的多窗口处理方法,如图10所示,包括:
步骤1001,创建三维窗口后或监测到窗口属性变化后,发送窗口的属性信息至三维多窗口系统;
步骤1002,接收三维多窗口系统发送的三维窗口的投影变换矩阵,其中,三维窗口的投影变换矩阵由三维多窗口系统根据用户双目视角姿态信息及所述窗口的属性信息计算得到;
步骤1003,根据三维窗口的投影变换矩阵,将窗口内部的三维场景渲染成双目二维图像或生成渲染指令;
步骤1004,发送窗口的双目二维图或渲染指令像至三维多窗口系统,以使三维多窗口系统根据各窗口最新的属性信息,以及各窗口最新的双目二维图像或渲染指令进行合成渲染得到并显示双目画面。
步骤1001中窗口的属性信息包括:窗口位置、窗口大小、旋转、窗口维度类型及窗口画布信息。窗口的属性信息的初始值由应用指定,可以任意设置。后续可以由系统或用户进行调整。
步骤1003将三维场景渲染为二维图像的具体实施过程可参考现有技术,本发明对此不作限定。
本发明通过系统根据应用提供的窗口的属性信息及用户双目视角姿态信息确定投影变换矩阵,由应用根据投影变换矩阵将窗口内三维系统渲染成双目二维图像或生成渲染指令,由系统对所有窗口的双目二维图像或渲染指令合成渲染得到双目画面,使得能够在一扩展现实设备中显示多个三维窗口,为用户提供更多交互场景,提升用户体验。
基于同一发明构思,本发明还提供一种三维空间中的多窗口处理装置,如下面的实施例所述。由于三维空间中的多窗口处理装置解决问题的原理与三维空间中的多窗口处理方法相似,因此三维空间中的多窗口处理装置的实施可以参见三维空间中的多窗口处理方法,重复之处不再赘述。
具体的,如图11所示,应用于三维多窗口系统中的三维空间中的多窗口处理装置包括:
第一交互单元1101,用于接收三维窗口创建时或窗口属性变化时发送的窗口的属性信息;
投影变换矩阵计算单元1102,用于根据用户双目视角姿态信息及每个窗口的属性信息,计算三维窗口的投影变换矩阵,并将其发送至三维窗口的应用;
第二交互单元1103,用于接收应用利用投影变换矩阵对窗口内部三维场景进行渲染得到的双目二维图像;或接收应用利用投影变换矩阵生成的渲染指令;
第三交互单元1104,用户接收用户的交互事件,并判断所述交互事件的交互目标应用,将交互事件发送给目标应用。
合成单元1105,用于根据各窗口最新的窗口的属性信息及各窗口对应的双目二维图像或渲染指令,进行合成渲染得到并显示双目画面。
如图12所示,应用于三维窗口应用的三维空间中的多窗口处理装置包括:
窗口的属性信息发送单元1201,用于创建三维窗口后或监测到窗口属性变化后,发送窗口的属性信息至三维多窗口系统;
投影变换矩阵接收单元1202,用于接收所述三维多窗口系统发送的三维窗口的投影变换矩阵,其中,所述三维窗口的投影变换矩阵由所述三维多窗口系统根据用户双目视角姿态信息及所述窗口的属性信息计算得到;
交互事件处理单元1203,用于接收系统分发的对所述应用的交互事件,执行对应的应用逻辑进行处理。
渲染单元1204,用于根据所述三维窗口的投影变换矩阵,将窗口内部的三维场景渲染成双目二维图像或生成渲染指令;
渲染相关信息发送单元1205,用于发送窗口的双目二维图像或渲染指令至所述三维多窗口系统,以使所述三维多窗口系统根据各窗口最新的属性信息,以及各窗口对应的双目二维图像或渲染指令进行合成渲染得到并显示双目画面。
通过本发明技术方案的实施,能够将扩展现实设备显示的三维空间划分为多个子空间(每一窗口),各子空间之间还可相互独立或相互互动,例如通过触发A窗口的按钮,控制B窗口场景的变化等,窗口之间的联动效果可以是应用内部逻辑来确定的,用户可分别对各子空间内场景进行交互,提高扩展现实设备的使用的灵活性,提升用户体验。
本发明一实施例中,还提供一种扩展现实设备,如图13所示,扩展现实设备902可以包括一个或多个处理器1304,诸如一个或多个中央处理单元(CPU),每个处理单元可以实现一个或多个硬件线程。扩展现实设备1302还可以包括任何存储器1306,其用于存储诸如代码、设置、数据等之类的任何种类的信息。非限制性的,比如,存储器1306可以包括以下任一项或多种组合:任何类型的RAM,任何类型的ROM,闪存设备,硬盘,光盘等。更一般地,任何存储器都可以使用任何技术来存储信息。进一步地,任何存储器可以提供信息的易失性或非易失性保留。进一步地,任何存储器可以表示扩展现实设备1302的固定或可移除部件。在一种情况下,当处理器1304执行被存储在任何存储器或存储器的组合中的相关联的指令时,扩展现实设备1302可以执行相关联指令的任一操作。扩展现实设备1302还包括用于与任何存储器交互的一个或多个驱动机构1308,诸如硬盘驱动机构、光盘驱动机构等。
扩展现实设备1302还可以包括输入/输出模块1310(I/O),其用于接收各种输入(经由输入设备1312)和用于提供各种输出(经由输出设备1314)。一个具体输出机构可以包括呈现设备1316和相关联的图形用户接口(GUI)1318。在其他实施例中,还可以不包括输入/输出模块1310(I/O)、输入设备1312以及输出设备1314,仅作为网络中的一台扩展现实设备。扩展现实设备1302还可以包括一个或多个网络接口1320,其用于经由一个或多个通信链路1322与其他设备交换数据。一个或多个通信总线1324将上文所描述的部件耦合在一起。
通信链路1322可以以任何方式实现,例如,通过局域网、广域网(例如,因特网)、点对点连接等、或其任何组合。通信链路1322可以包括由任何协议或协议组合支配的硬连线链路、无线链路、路由器、网关功能、名称服务器等的任何组合。
本发明实施例还提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行上述方法的步骤。
本发明实施例还提供一种计算机可读指令,其中当处理器执行所述指令时,其中的程序使得处理器执行前述任一实施例所示的方法。
应理解,在本发明的各种实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。
还应理解,在本发明实施例中,术语“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系。例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本发明中字符“/”,一般表示前后关联对象是一种“或”的关系。
本领域普通技术人员可以意识到,结合本发明中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本发明所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口、装置或单元的间接耦合或通信连接,也可以是电的,机械的或其它的形式连接。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本发明实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以是两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分,或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
本发明中应用了具体实施例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。

Claims (26)

1.一种三维空间中的多窗口处理方法,其特征在于,包括:
步骤S101、接收一个或多个窗口的属性信息,所述窗口包括二维窗口和/或三维窗口;
步骤S103、根据一个或多个窗口的属性信息,生成对应的变换矩阵;
步骤S105、基于变换矩阵,对一个或多个窗口进行处理。
2.如权利要求1所述三维空间中的多窗口处理方法,其特征在于,所述接收一个或多个窗口的属性信息,包括:接收来自一个或多个窗口的事件生成的窗口的属性信息。
3.如权利要求1所述三维空间中的多窗口处理方法,其特征在于,所述步骤S105包括:
根据变换矩阵,将来自三维空间的事件变换到一个或多个窗口,并发送给对应窗口。
4.如权利要求1或3所述三维空间中的多窗口处理方法,其特征在于,基于变换矩阵,对一个或多个窗口进行处理,还包括:
一个或多个窗口根据自身逻辑的处理事件,生成对应的窗口的属性信息;
将一个或多个窗口生成的窗口的属性信息进行合成。
5.如权利要求1所述三维空间中的多窗口处理方法,其特征在于,窗口的属性信息包括坐标系、和/或位置、和/或旋转、和/或大小。
6.如权利要求5所述三维空间中的多窗口处理方法,其特征在于,所述窗口属性信息包括窗口装饰信息,其用于对所述窗口进行控制。
7.如权利要求6所述三维空间中的多窗口处理方法,其特征在于,所述窗口的属性信息包括显示信息、和/或交互信息、和/或自身逻辑触发信息。
8.如权利要求7所述三维空间中的多窗口处理方法,其特征在于,所述显示信息包括在窗口创建或窗口属性变换时生成、或者用户视角变化触发时生成。
9.如权利要求1所述三维空间中的多窗口处理方法,其特征在于,所述基于变换矩阵,对一个或多个窗口进行处理包括:
基于窗口属性信息及用户视角姿态信息,确定投影变换矩阵;
基于所述投影变换矩阵,对一个或多个窗口进行处理。
10.如权利要求9所述三维空间中的多窗口处理方法,其特征在于,所述步骤S105包括:
将所述投影变换矩阵发送至相应窗口;
所述相应窗口利用投影变换矩阵对所述窗口内部场景进行渲染得到的双目二维图像;
根据所述相应窗口最新的窗口的属性信息,以及所述相应窗口最新对应的双目二维图像,进行合成渲染得到并显示所述三维空间的双目画面。
11.如权利要求1所述三维空间中的多窗口处理方法,其特征在于,所述步骤S105还包括:
所述窗口根据应用逻辑生成的渲染指令;
根据所述相应窗口最新的窗口的属性信息,以及渲染指令,进行合成渲染得到并显示所述三维空间的双目画面。
12.如权利要求9或11所述三维空间中的多窗口处理方法,其特征在于,所述步骤S105还包括:
将投影变换矩阵发送至相应窗口;
所述相应窗口利用投影变换矩阵生成的渲染指令;
根据所述相应窗口最新的窗口的属性信息,以及渲染指令,进行合成渲染得到并显示所述三维空间的双目画面。
13.如权利要求10~12任意一项所述三维空间中的多窗口处理方法,其特征在于,在进行合成渲染之前,基于所述窗口装饰信息,加入装饰内容,完成合成渲染得到并显示所述三维空间的双目画面。
14.如权利要求7所述三维空间中的多窗口处理方法,其特征在于,在用户输入产生窗口交互事件时生成所述交互信息。
15.如权利要求14所述三维空间中的多窗口处理方法,其特征在于,所述步骤S105包括:
基于窗口交互事件和窗口的属性信息生成所述交互信息;
基于所述交互信息和窗口交互事件生成目标窗口坐标系,并发送至目标窗口。
16.如权利要求15所述三维空间中的多窗口处理方法,其特征在于,所述目标窗口包括沉浸式模式和窗口模式。
17.如权利要求6所述三维空间中的多窗口处理方法,其特征在于,在应用自身逻辑发生变化时生成自身逻辑触发信息。
18.如权利要求17所述三维空间中的多窗口处理方法,其特征在于,所述自身逻辑触发信息用于修改所述变换矩阵、指示在沉浸式和窗口模式之间切换或触发窗口装饰信息。
19.如权利要求16所述三维空间中的多窗口处理方法,其特征在于,当所述目标窗口进入沉浸式模式后,将所述目标窗口对应的子空间转换为所述三维空间。
20.如权利要求19所述三维空间中的多窗口处理方法,其特征在于,其他窗口保持不变,从而实现目标窗口的内容叠加显示其他窗口内容。
21.如权利要求19所述三维空间中的多窗口处理方法,其特征在于,当接收超过所述目标窗口范围内的窗口的属性信息时,将所述交互信息转换至目标窗口坐标系,将转换后的所述交互信息及交互事件发送至目标窗口处理。
22.如权利要求1所述三维空间中的多窗口处理方法,其特征在于,所述窗口的属性信息基于用户操作或应用自身逻辑触发进行更新。
23.一种三维空间中的多窗口处理系统,其特征在于,包括:
接收单元,其用于接收一个或多个窗口的属性信息,所述窗口包括二维窗口和/或三维窗口;
变换矩阵生成单元,其用于根据一个或多个窗口的属性信息,生成对应的变换矩阵;
处理单元,其用于基于变换矩阵,对一个或多个窗口进行处理。
24.一种扩展现实设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至22任意一项所述方法的指令。
25.一种三维空间中的多窗口处理系统,其特征在于,包括:如权利要求24的所述扩展现实设备以及服务器,所述服务器包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现权利要求1至22任意一项所述方法的指令。
26.一种计算机存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被扩展现实设备的处理器运行时,执行根据权利要求1至22任意一项所述方法的指令。
CN202310659375.8A 2023-06-05 2023-06-05 一种三维空间中的多窗口处理方法、设备及系统 Pending CN117590928A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310659375.8A CN117590928A (zh) 2023-06-05 2023-06-05 一种三维空间中的多窗口处理方法、设备及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310659375.8A CN117590928A (zh) 2023-06-05 2023-06-05 一种三维空间中的多窗口处理方法、设备及系统

Publications (1)

Publication Number Publication Date
CN117590928A true CN117590928A (zh) 2024-02-23

Family

ID=89918920

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310659375.8A Pending CN117590928A (zh) 2023-06-05 2023-06-05 一种三维空间中的多窗口处理方法、设备及系统

Country Status (1)

Country Link
CN (1) CN117590928A (zh)

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06222899A (ja) * 1993-01-28 1994-08-12 Nec Corp マルチウィンドウ表示方式
US5880733A (en) * 1996-04-30 1999-03-09 Microsoft Corporation Display system and method for displaying windows of an operating system to provide a three-dimensional workspace for a computer system
JP2000322600A (ja) * 1999-05-07 2000-11-24 Nec Software Chugoku Ltd インターネット3次元マルチウィンドウ制御表示システムおよびインターネット3次元マルチウィンドウ制御表示方法
US20050022139A1 (en) * 2003-07-25 2005-01-27 David Gettman Information display
CN107423014A (zh) * 2017-06-30 2017-12-01 百度在线网络技术(北京)有限公司 多窗口渲染方法及装置
CN113342220A (zh) * 2021-05-11 2021-09-03 杭州灵伴科技有限公司 窗口渲染方法、头戴式显示套件和计算机可读介质
CN115546410A (zh) * 2022-09-22 2022-12-30 北京正负无限科技有限公司 窗口展示方法、装置、电子设备及存储介质

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06222899A (ja) * 1993-01-28 1994-08-12 Nec Corp マルチウィンドウ表示方式
US5880733A (en) * 1996-04-30 1999-03-09 Microsoft Corporation Display system and method for displaying windows of an operating system to provide a three-dimensional workspace for a computer system
JP2000322600A (ja) * 1999-05-07 2000-11-24 Nec Software Chugoku Ltd インターネット3次元マルチウィンドウ制御表示システムおよびインターネット3次元マルチウィンドウ制御表示方法
US20050022139A1 (en) * 2003-07-25 2005-01-27 David Gettman Information display
CN107423014A (zh) * 2017-06-30 2017-12-01 百度在线网络技术(北京)有限公司 多窗口渲染方法及装置
CN113342220A (zh) * 2021-05-11 2021-09-03 杭州灵伴科技有限公司 窗口渲染方法、头戴式显示套件和计算机可读介质
CN115546410A (zh) * 2022-09-22 2022-12-30 北京正负无限科技有限公司 窗口展示方法、装置、电子设备及存储介质

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
武雪玲;任福;杜清运;: "混合硬件跟踪定位的空间信息虚实配准", 地理与地理信息科学, no. 03, 15 May 2010 (2010-05-15) *

Similar Documents

Publication Publication Date Title
US10489978B2 (en) System and method for displaying computer-based content in a virtual or augmented environment
US10657716B2 (en) Collaborative augmented reality system
CN108762482B (zh) 一种大屏幕和增强现实眼镜间数据交互方法和系统
EP3223116B1 (en) Multiplatform based experience generation
US11275481B2 (en) Collaborative augmented reality system
US7782319B2 (en) Three-dimensional orientation indicator and controller
US10839572B2 (en) Contextual virtual reality interaction
EP1854065B1 (en) User interfaces
US10192363B2 (en) Math operations in mixed or virtual reality
CN103425479A (zh) 用于远程设备的用户接口虚拟化
US7554541B2 (en) Widgets displayed and operable on a surface of a volumetric display enclosure
US20220229535A1 (en) Systems and Methods for Manipulating Views and Shared Objects in XR Space
WO2019095360A1 (zh) 虚拟场景中菜单处理方法、装置及存储介质
US20210150731A1 (en) Interactive body-driven graphics for live video performance
US20210216349A1 (en) Machine interaction
JP2017151806A (ja) 情報処理プログラム、情報処理システム、情報処理方法、および情報処理装置
CN117590928A (zh) 一种三维空间中的多窗口处理方法、设备及系统
CN114416270A (zh) 页面显示方法、装置、设备和介质
JP2024506879A (ja) 仮想表現を提示するための方法及び装置、コンピュータ機器及び記憶媒体
JPH1166351A (ja) 3次元仮想空間内部におけるオブジェクト動作制御方法および装置とオブジェクト動作制御プログラムを記録した記録媒体
JP2001209826A (ja) 仮想空間の編集方法、仮想空間の編集装置、コンピュータプログラム記憶媒体および仮想現実感提示装置
US20230400960A1 (en) Systems and Methods for Interacting with Three-Dimensional Graphical User Interface Elements to Control Computer Operation
KR102392675B1 (ko) 3차원 스케치를 위한 인터페이싱 방법 및 장치
US20230376161A1 (en) Mouse cursor and content migration between 3d space and physical flat displays
CN117093069A (zh) 一种混合应用的跨维度交互方法、装置及设备

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination