CN116547718A - 用户界面 - Google Patents
用户界面 Download PDFInfo
- Publication number
- CN116547718A CN116547718A CN202180053344.7A CN202180053344A CN116547718A CN 116547718 A CN116547718 A CN 116547718A CN 202180053344 A CN202180053344 A CN 202180053344A CN 116547718 A CN116547718 A CN 116547718A
- Authority
- CN
- China
- Prior art keywords
- virtual camera
- model
- input
- image blocks
- generated
- 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
Links
- 238000000034 method Methods 0.000 claims abstract description 42
- 238000009877 rendering Methods 0.000 claims abstract description 32
- 238000013507 mapping Methods 0.000 claims abstract description 20
- 230000003993 interaction Effects 0.000 claims description 26
- 238000012545 processing Methods 0.000 claims description 16
- 230000015654 memory Effects 0.000 claims description 9
- 230000004044 response Effects 0.000 claims description 8
- 239000013598 vector Substances 0.000 claims description 6
- 230000001419 dependent effect Effects 0.000 claims 6
- 239000004973 liquid crystal related substance Substances 0.000 claims 4
- 238000004590 computer program Methods 0.000 claims 1
- 230000000694 effects Effects 0.000 description 17
- 206010028813 Nausea Diseases 0.000 description 6
- 238000004364 calculation method Methods 0.000 description 6
- 230000008693 nausea Effects 0.000 description 6
- 230000009471 action Effects 0.000 description 5
- 230000008569 process Effects 0.000 description 4
- 241000226585 Antennaria plantaginifolia Species 0.000 description 3
- 230000008901 benefit Effects 0.000 description 3
- 230000001934 delay Effects 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 230000035807 sensation Effects 0.000 description 3
- 230000000007 visual effect Effects 0.000 description 3
- 241000699670 Mus sp. Species 0.000 description 2
- 210000000887 face Anatomy 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 230000001154 acute effect Effects 0.000 description 1
- 230000002411 adverse Effects 0.000 description 1
- 230000003190 augmentative effect Effects 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 238000005452 bending Methods 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 230000007423 decrease Effects 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 230000006866 deterioration Effects 0.000 description 1
- 230000001627 detrimental effect Effects 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 239000003973 paint Substances 0.000 description 1
- 238000003909 pattern recognition Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 230000002195 synergetic effect Effects 0.000 description 1
- 230000003936 working memory Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T17/00—Three dimensional [3D] modelling, e.g. data description of 3D objects
-
- 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/0481—Interaction 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
- G06F3/04815—Interaction with a metaphor-based environment or interaction object displayed as three-dimensional, e.g. changing the user viewpoint with respect to the environment or object
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/10—Geometric effects
- G06T15/20—Perspective computation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/10—Segmentation; Edge detection
- G06T7/11—Region-based segmentation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/60—Analysis of geometric attributes
- G06T7/64—Analysis of geometric attributes of convexity or concavity
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/70—Determining position or orientation of objects or cameras
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N23/00—Cameras or camera modules comprising electronic image sensors; Control thereof
- H04N23/60—Control of cameras or camera modules
- H04N23/69—Control of means for changing angle of the field of view, e.g. optical zoom objectives or electronic zooming
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N23/00—Cameras or camera modules comprising electronic image sensors; Control thereof
- H04N23/60—Control of cameras or camera modules
- H04N23/695—Control of camera direction for changing a field of view, e.g. pan, tilt or based on tracking of objects
-
- 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/011—Arrangements for interaction with the human body, e.g. for user immersion in virtual reality
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T19/00—Manipulating 3D models or images for computer graphics
- G06T19/006—Mixed reality
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/20—Special algorithmic details
- G06T2207/20092—Interactive image processing based on input by user
- G06T2207/20101—Interactive definition of point of interest, landmark or seed
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Geometry (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Computer Graphics (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Human Computer Interaction (AREA)
- Computing Systems (AREA)
- Processing Or Creating Images (AREA)
- User Interface Of Digital Computer (AREA)
Abstract
一种生成用户界面的方法,包括:获得指示输入平面内多个元件的相应位置的输入数据;以及生成三维结构的表面的模型。该表面具有圆对称性性,并且包括两个弯曲的极冠和弯曲的赤道带,其中,每个极冠的曲率大于赤道带的曲率。该方法包括将元件映射到模型上的相应位置,并且确定虚拟相机的位置和方向,其中,虚拟相机的确定的位置在模型外部。该方法包括确定包含模型的凹形内部部分的虚拟相机的视场,并且渲染对应于确定的视场并且包括映射到凹形内部部分上的位置的元件的模型的投影。
Description
技术领域
本文公开的实施例涉及生成用于由显示设备显示的用户界面。
背景技术
诸如计算机、平板电脑、智能电视和智能手机之类的电子设备通常使用图形用户界面(GUI)来向用户显示信息,并促进用户和设备之间的交互。许多GUI(例如,作为计算机的操作系统的一部分提供的GUI)是基于分层驱动的菜单的。已经观察到,对于某些应用,基于分层驱动菜单的GUI不直观,并且可能为了找到感兴趣的特定项目而难以导航。分层驱动菜单的一种替代方案是GUI,在该GUI中,物体呈现在三维结构的表面上。在国际专利公开WO2011/151367A1中讨论了这种GUI的一个示例,其中,在中空三维结构(例如,球体)的弯曲内表面上呈现物体。向用户提供旋转三维结构和放大表面的控件,以便查看表面的不同部分上的物体。以这种方式,与在常规二维GUI中呈现项目的情况相比,可以在屏幕上显示更多给定大小的物体,并且所提供的控件使得用户比使用常规二维GUI时更容易和更直观地定位项目并与之交互。
尽管具有上述优点,但是在三维结构的表面上呈现物体的GUI并不常见。很可能这至少部分是由于与这种GUI的实现相关联的各种问题。具体地,当表面被投影到二维显示器上查看时,曲面的某些区域上出现的物体看起来是扭曲的。例如,当物体呈现在球体的内表面上时,除了显示器的小的中心区域之外,在任何地方都会出现被称为枕开的失真效果。最大程度的失真发生在显示器的外围区域,如果显示器具有宽屏纵横比,尤其是那些朝向显示器的左手和右手边缘的区域。这种失真导致水平线的弯曲,而不是位于狭窄赤道区域的那些,这对于GUI的许多应用来说是特别不利的,例如,其中,用户希望选择位于一行中的一组项目,或者读取映射到表面的文本行。此外,由投影引起的表面的表观曲率不能准确地表示从用户位置查看物理三维结构的人所感知的曲率。这种所谓的透视失真会给用户带来不期望的影响,例如,当用户长时间查看GUI并与之交互时会感到不适和恶心。因此,失真对GUI的功能和可用性有不利影响。
发明内容
根据本公开的一个方面,提供了一种生成由显示设备显示的用户界面的计算机实现的方法、系统和包括指令集的计算机可读介质。
该方法包括:获得指示输入平面内多个元件中的每一个的相应位置的输入数据;以及生成三维结构的表面的模型。三维结构的表面围绕穿过两个极的轴具有圆对称性,并且包括两个弯曲的极冠和连接两个极冠的弯曲的赤道带,其中,每个弯曲的极冠包含相应的一个极,并且每个极冠在包含轴的平面中的横截面曲率大于赤道带在包含轴的平面中的横截面曲率。该方法还包括将输入平面内的多个元件的位置映射到生成的模型上的相应位置,并且确定虚拟相机相对于生成的模型的位置和方向。虚拟相机的确定的位置在生成的模型的外部。该方法包括根据虚拟相机的确定的位置和方向来确定虚拟相机的视场,该视场包含生成的模型的凹形内部部分,并且在用户界面中渲染生成的模型的投影,该投影对应于虚拟相机的确定的视场并且包括映射到生成的模型的凹形内部部分上的位置的多个元件的子集。
表面的几何形状和虚拟相机的位置和方向一起减少了在背景技术部分中讨论的失真的有害影响。该表面是歧管的一个示例,意味着该表面不包含纽结或不连续,使得如果从足够靠近该表面的位置查看,该表面的任何区域看起来都是平坦的和平面的。通过提供比赤道带的横截面曲率更大的极冠的横截面曲率,朝向显示器周边的枕开效应减小,因为远离显示器中心定位的直线看起来不太弯曲。此外,枕开效应最小化的区域在垂直方向上延伸。与虚拟相机位于模型内部相比,将虚拟相机定位在模型外部允许生成的模型的内部的更大比例包括在虚拟相机的视场内,而不会以引入透视失真的方式加宽视场。以这种方式,由虚拟相机的位置和方向引起的表面的表观曲率更准确地反映了从用户眼睛的物理位置查看的物理三维结构的表面曲率,这减轻了上述恶心和不适的感觉。
在一个示例中,虚拟相机的确定的方向使得两个极包括相对于确定的方向的上极和下极,并且虚拟相机的确定的位置更靠近上极而不是下极。
通过将虚拟相机定位成更靠近上极而不是下极,使得虚拟相机面向下朝向模型的中心线,最小失真的扩展区域在显示器的水平中心线上方渲染。在典型的配置中,用户的眼线通常与显示器中心线上方的区域对齐,使得用户水平地看向显示器的上部区域,并向下看向显示器的下部区域。通过将虚拟相机定位在更靠近上极的位置,最小失真的区域可以被最佳地定位,以便用户查看出现在用户界面的未失真部分中的物体并与之交互。此外,由于虚拟相机的位置与用户眼睛的物理位置相对应,因此恶心和不适的感觉进一步减少。
本公开的进一步的特征和优点将从本文描述的优选实施例的以下描述中变得显而易见,参考附图进行仅作为示例给出的以下描述。
附图说明
图1示出了被设置成生成用户界面的计算系统的示例;
图2是表示根据示例的由图1的计算系统执行以生成用户界面的方法的流程图;
图3示意性地示出了正在生成的GUI的示例,其中,在三维结构的表面上显示物体;
图4示出了从其中生成图3所示的表面的曲线;
图5A-图5C是示出当从两个不同的虚拟相机位置投影结构的内表面时透视失真的影响的示意图;
图6A示出了当映射到图3所示的表面上时正交网格的失真;
图6B示出了当映射到球面上时正交网格的失真;
图7示出了用户界面中的输入位置被投影到图3所示的表面上的交互位置的示例;
图8A和图8B示出了收缩圆环以生成图3所示的表面的图元部分;
图9A-图9C示出了虚拟相机响应于缩放请求而执行的动作的示例;
图10A-图10C示出了以相应不同的细节水平将输入图像分成图像块的示例。
具体实施方式
本公开的实施例涉及生成由显示设备显示的用户界面。具体地,本文描述的实施例解决了与在三维结构的表面上渲染视觉信息相关的挑战,具体是当视觉信息表示具有相关功能属性的项目时。图1示出了适用于生成用户界面的计算系统100的示例。该示例中的计算系统100包括存储器电路102和处理电路,其中,处理电路包括中央处理单元(CPU)104和图形处理单元(GPU)106。CPU 104被配置为执行由存储器电路104存储的机器可读指令,并且GPU 106被配置为根据CPU 104生成的指令渲染三维场景。为了促进三维场景的快速渲染,GPU 106包括直接存储器存取(DMA)108,用于从存储器102读取数据,而不需要来自CPU104的显式指令。GPU 106还可以包括多个处理核心110,用于并行执行渲染给定场景所需的计算。例如,当三维场景基于包括一组连接的多边形的模型时,每个处理核心110可以被分配渲染该组连接的多边形的相应子集的任务。GPU 106还可以包括高速缓存112,该高速缓存可以存储相对少量的光栅化图像数据,以供处理核心110在渲染期间快速访问。
在这个示例中,存储器电路102包括非易失性存储器以及工作存储器,例如,随机存取存储器(RAM),包括静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)和同步动态随机存取存储器(SDRAM)。
计算设备100包括网络接口114,用于通过网络(例如,因特网)与远程设备(例如,服务器系统或其他用户设备)通信。对于某些应用程序,计算设备100用于基于从远程服务器系统接收的数据生成GUI,例如,使用网络浏览器或专用软件应用访问的网络资源。
计算系统100连接到显示设备116,该显示设备在该示例中是平面的平板显示器,尽管在其他示例中可以是曲面显示器、投影仪、虚拟现实头戴式耳机或增强现实头戴式耳机的显示器,或者适于显示用户界面以供计算系统100的用户查看的任何其他设备。该示例中的显示设备116通过有线方式连接到计算设备100,但是在替代实施例中,显示设备可以无线连接到计算设备或者可以集成到计算设备,例如,在膝上型计算机、平板计算机或智能手机的情况下。
计算系统100还连接到用于从人类用户接收用户输入的输入设备118。输入设备118中的至少一个被布置成接收指示显示设备116上的输入位置的用户输入。这种输入设备的示例包括鼠标、轨迹板、触摸屏输入、前置相机或便于手势识别的其他运动检测设备以及用于确定用户正在看显示设备116的哪一部分的眼睛跟踪传感器。
图2示出了由计算系统100实现的用于生成由显示设备显示的用户界面的方法的示例。计算设备100在202获得指示输入平面内一组元件中的每一个的相应位置的输入数据。这些元件可以包括位于输入平面内的一个或多个光栅化图像的像素值和/或以向量图形格式定义的元件,用于定义位于输入平面内的物体的几何形状、颜色和其他视觉方面。图3示出了包含简单图像的输入平面300的示例,该简单图像包括示例性元件,例如,三角形、正方形和圆形。不是图像的一部分的正交网格覆盖在输入平面300上,以表示输入平面的底层几何形状。在该示例中,输入平面300具有2:1的纵横比,这是典型地用于球形摄影中的图像的纵横比,尽管在不脱离本公开的范围的情况下可以使用输入平面的其他纵横比。
在本示例中,在202获得的输入数据还包括将功能属性与输入平面300中的至少一部分元件相关联的功能数据。功能属性可以直接链接到输入平面内的元件,或者可以与输入平面中的位置相关联,例如,使用坐标或像素索引。功能属性控制元件的交互行为,例如,通过向文件或其他数据项提供导航信息以及指定当响应于用户输入激活一个元件时要执行的处理例程的指令。处理例程可以包括例如打开文件、显示图像、播放视频或音频文件、启动脚本或代码片段、或者修改用户界面的一个或多个方面。在特定示例中,输入平面300中的元件表示文件结构内的文件,并且功能属性包括用于定位文件的信息以及打开或预览定位的文件的指令,这取决于接收到的用户输入的类型。在一些示例中,功能数据可以被布置成使得多组功能属性与元件相关联,每组功能属性与用户界面的特定配置相关联。下文将描述具体的示例。
对于某些应用程序,在202获得的输入数据是远程生成的并经由计算设备100的网络接口114接收。这种应用程序的一个示例是在网络浏览器中生成用户界面,以便用户与网络服务器提供的资源进行交互。对于其他应用程序,输入数据可以在计算设备100本地生成,例如,在用户界面被用于查看计算设备100本地的文件结构内的文件的情况下。根据应用程序,输入数据可以由人类设计者使用适当的图形设计软件手动生成,或者可以以部分或完全自动化的方式生成,例如,使用根据预定的一组规则相对于彼此自动定位一组项目的软件组件,或者使用诸如机器学习、聚类或模式识别之类的技术。
在204,计算系统100生成三维结构的表面模型,用于在用户界面中渲染。该示例中的模型是多边形网格,该多边形网格由一组连接的多边形形成,这些多边形被布置成表示三维结构的表面。存在一系列软件库,用于生成多边形网格,以表示给定几何结构,例如,在Three.js JavaScriptTM库中定义的软件库或在MeshLabTM软件套件中使用的软件库。在本示例中,模型的多边形是三角形。三角形可用于生成任何表面的模型,其优势在于GPU通常被优化,以基于三角形而非其他类型的多边形来执行计算,从而提高渲染效率和速度。
在网络浏览器内呈现用户界面的示例中,使用Three.js JavaScript应用程序编程界面(API)在html5网页的<canvas>元素内生成并渲染表面的网格表示。Three.js API是专门为生成动画三维图形以供网络浏览器渲染而开发的,并且利用较低级别的WebGraphics LibraryTM(WebGL)API,该API支持将GPU加速的图形渲染,作为网页的<canvas>元素的一部分。在其他示例中,可以使用插件或专用软件应用程序来渲染表面的网格表示。
如上所述,在204生成的模型表示三维结构的表面。该表面具有拓扑和平滑度,使得该表面的任何区域看起来都是局部平面的。如下文将更详细解释的,该表面具有减轻与三维结构投影到二维中相关联的某些不期望的效果的几何特性。
图3示出了具有特定几何形状的三维结构的表面302的示例。表面302是一个封闭的外壳,围绕穿过虚拟三维空间中的两个极N和S的轴303具有圆对称性。表面302由两个弯曲的极冠304a、304b和连接两个极冠的弯曲的赤道带306形成,使得在极冠304a、304b和赤道带306之间的边界处没有不连续或扭结。第一极冠304a穿过极N,第二极冠304b穿过极S。极冠304a、304b和赤道带306中的每一个在包含轴303的平面(例如,包含图3所示的轴303和轴305的平面)中具有横截面曲率,其中,每个极冠的横截面曲率大于赤道带的横截面曲率。在该示例中,三个组件中的每一个的横截面曲率是恒定的,并且第一极冠304a的横截面曲率等于第二极冠304b的横截面曲率。在其他示例中,两个极冠可以具有彼此不同的曲率,和/或表面的一个或多个组件的横截面曲率可以随着位置而变化。
表面302围绕轴303的圆对称性意味着表面302可以被生成为围绕轴303的曲线的旋转表面。图4示出了曲线402,从该曲线生成图3的表面302。在这个示例中,曲线402围绕轴x具有反射对称性,并且由三个连续的圆弧404a、406、404b形成。弧406平滑地连接到每个弧404a、404b,使得弧406和404a共享切线T1,而弧406和404b共享切线T2。弧404a、404b围绕轴303的旋转形成极冠304a、304b,而弧406围绕轴303的旋转形成赤道带306。弧406的半径Rlong大于每个弧404a、404b的半径Rshort,导致每个极冠304a、304b具有比赤道带306的横截面曲率更大的横截面曲率。曲线402的形状以及表面302的最终形状由以下一组相互依赖的参数中的任意三个来指定:
·弧406的半径Rlong;
·弧404a、404b的半径Rshort;
·圆弧406离轴303的最大距离d(其定义了在垂直于轴303的平面中的表面的最大半径);以及
·由圆弧406的一半对着的角度θ。
由于比例不变性,任何一个长度参数都可以被设置为固定值,然后只需要另外两个参数来指定表面302的形状。不同组的参数值可能适用于不同的应用程序。例如,在用户界面用于显示文档的情况下,与半径Rlong相比,可以选择较小的d值,以便最小化赤道带的曲率。可选地,也可以选择大的角度θ值,以便赤道带306具有大的垂直范围。对于广泛的应用程序,几组合适的参数值位于2d≤Rlong≤4d和5弧度≤θ≤20弧度的范围内。发现适用于一系列应用程序的一组示例性参数由d=375、Rlong=1000、θ=12.5弧度给出。
在206,计算系统100将输入平面中的元件的位置映射到表面302的模型上的相应位置。在该示例中,使用UV映射技术来生成映射信息,该映射信息将输入平面中的元件位置与形成模型的三角形的顶点相关联。GPU 106使用该映射信息来确定如何在用户界面的实时渲染期间将元件“绘制”到三维取向的三角形上。在其他示例中,可以使用替代的映射技术,例如,投影映射,其中,元件的位置被直接映射到三维坐标。在以向量图形格式定义元件的示例中,元件的位置可以直接映射到三维坐标。
计算系统100在208确定虚拟相机308相对于表面302的模型的位置和方向。虚拟相机308的确定的位置和方向是用户界面的参数,可以在生成用户界面之前设置这些参数。尽管虚拟相机308可以随后移动,例如,响应于指示缩放表面302的特定部分的请求的用户输入,但是优选地确定具有有利属性的默认位置和方向,如将在下文中更详细解释的。虚拟相机308定义了一个参照系,当在用户界面上显示时,表面302看起来是从该参照系查看的。虚拟相机308的位置关于相对于表面302的模型固定的坐标系在三维中定义,尽管通过定义相对于虚拟相机308的坐标系并且相对于该坐标系定位模型,可以实现等效的布置。可以使用三个参数来指定虚拟相机308的方向,例如,相对于预定的默认方向,定义围绕三个正交轴旋转的三个欧拉角。在这种情况下,三个角度表示虚拟相机308相对于固定坐标系的俯仰、滚动和偏航。在其他实现方式中,表面302的模型的方向可以相对于虚拟相机308固定的坐标系来指定。
如图3所示,相对于虚拟相机308的方向,虚拟相机308被定向为使得极N是上极,极S是下极。换句话说,当从虚拟相机308的参照系查看时,极N基本上出现在极S上方。在本示例中,虚拟相机308相对于轴303的滚动为零,使得相机308不会相对于轴303侧向倾斜。在该示例中,虚拟相机308被定位成更靠近上极N而不是下极S,并且具有负俯仰角,使得虚拟相机308面向下朝向表面302的模型的凹形内部部分310。在其他示例中,虚拟相机308可以被定位成更靠近下极S而不是上极N,或者可以与这两个极等距。将虚拟相机308定位成更靠近下极S可能是有利的,例如,在用户界面用于呈现通常从下方查看的场景(例如,天空场景)的情况下,在这种情况下,虚拟相机308可以被定向成面向上朝向模型的凹形内部部分。
在210,计算系统100根据虚拟相机308的位置和方向来确定虚拟相机308的视场。视场定义了虚拟相机308可以查看的区域在水平和垂直方向上的角度范围。视场取决于虚拟相机308的位置和方向,并且还取决于视场在水平和垂直方向上的角度维度(或者,如果视场的方位固定,则在对角线方向上)。
在212,计算系统100渲染在用户界面中的表面302的模型的投影。该投影对应于虚拟相机308的确定的视场,并且包括从输入平面映射到模型的凹形内部部分310上的位置的元件的子集。投影包括从虚拟相机308的视角投影到显示平面312上的模型的一部分。显示平面312对应于在其上渲染用户界面的二维显示。在图3的示例中,虚拟相机308位于表面302的模型外部。映射到位于虚拟相机308和内部部分310之间的模型的凸形外部部分的元件被排除在渲染之外,给人虚拟相机308位于表面302的封闭外壳内部的印象。与虚拟相机308被定位在模型内部相比,将虚拟相机308定位在模型外部,允许模型的更大比例被包括在虚拟相机308的视场内。这补偿了由赤道带306的减小的曲率所产生的拉伸效应,而不需要虚拟相机308的视场的非常大的角度维度,否则将导致高度的透视失真,这可能导致用户的不适或恶心的感觉。
图5A-图5C示出了当渲染对应于内部部分310的表面302的投影时,将虚拟相机308定位在表面302内部和表面302外部的效果。如图5A所示,将虚拟相机308定位在表面302内部,导致需要相对较宽的视角来跨越内部部分310。如图5B所示,这个宽角与查看显示器504上的GUI的用户502的裸眼视角不匹配。这会导致透视失真,当用户长时间与GUI交互时,会产生恶心和不舒服的感觉。相比之下,如图5C所示,将虚拟相机308定位在表面外部,使得能够选择与用户502的视角相匹配的视角。以这种方式,减少了用户502感受到的不适。
在图3的示例中,在生成模型的过程中,给每个多边形分配定义模型的向外方向的相应法向量的参数。在渲染期间,可以从投影中排除具有面向外的法向量的多边形,这些法向量面向与相机的目标方向基本相反的方向。在其他示例中,当用户与用户界面交互时,可以由用户手动或自动打开或关闭某些多边形,例如,取决于当前缩放级别。在一个示例中,可以最初渲染对应于三维结构的外部部分的多边形,然后,当用户以阈值缩放因子向该结构缩放时,对应于外部部分的多边形可以关闭并从渲染中排除,使得对应于该结构的内部部分的多边形被替代地渲染,给人用户已经进入三维结构的印象。
在本示例中,表面302的几何形状和虚拟相机308的位置和方向具有协同效应,以最小化用户界面内出现的项目的失真。通过使极冠304a、304b的横截面曲率大于赤道带306的横截面曲率,出现在显示器的外围区域上的物体的失真被最小化。具体地,朝向显示器边缘的枕开效应减小,使得远离显示器中心的直线看起来不太弯曲。
通过将虚拟相机308定位成更靠近表面302的上极N而不是下极S,水平线看起来是直的零失真区域位于显示器的中心线上方。虚拟相机308的位置和方向与表面302的几何形状的组合由此导致在显示器的中心线上方渲染低失真的扩展区域。图6A示出了从输入平面映射到表面302上并且然后根据图1和图4B所示的虚拟相机308的确定位置和方向投影到显示器上的正交网格的示例。在该示例中,虚拟相机308直接面向表面302的生成表示上的目标点P,使得目标点P的投影在用户界面的中心渲染。当投影到显示平面上时,位于目标点P上方的水平线H看起来正好是直的。为了比较,图6B示出了从输入平面映射到球体的内部表面部分并且然后从位于球体中心的虚拟相机的视角投影到显示平面上的网格。在这种情况下,穿过目标点P’的水平线H’看起来是直的。
在图6B中,除了位于狭窄赤道区域(水平线H’周围)的那些之外的水平线明显弯曲,这对于GUI的许多应用程序是不利的,例如,其中,用户希望选择位于一行中的一组项目,或者读取映射到表面的文本行。在图6A中,远离水平线H的水平线比远离图6B中的水平线H’定位的水平线更接近于直线。对于垂直线,可以看到类似的曲率减小。因此,可以观察到,在图6A中,笔直的水平和垂直网格线看起来弯曲的枕开效应不太明显。
图6A和图6B的同心虚线框界定了相对较低、中等和高失真的区域(内框内的失真较低,内外框之间的失真中等,外框外的失真较高)。在图6B中,相对较低失真的区域较小,使得在图6A中投影到表面上的各个元件(例如,光栅化图像)将在除了显示器的小中心区域之外的任何地方显著失真。相对较低失真的区域在图6A中较大,特别是在垂直方向上延伸,这意味着投影到显示器上的各个元件失真较小。最终的投影更适合大多数GUI应用程序。
注意,在图6A中,与图6B相比,最小失真的区域在用户界面中显得更高。在典型的配置中,用户的眼线通常与显示器中心线上方的区域对齐,使得用户水平地看向显示器的上部区域,并向下看向显示器的下部区域。通过将虚拟相机定位在更靠近上极的位置,因此最小失真的区域被最佳地定位,以供用户执行诸如读取文本行之类的普通动作。此外,由虚拟相机的位置和方向引起的表面的表观曲率更准确地反映了从用户眼睛的物理位置查看的物理三维结构的曲率,这减轻了用户在二维显示器上查看三维场景时经常报告的不愉快感觉,例如,恶心。
计算设备100使用显示设备108显示模型的渲染投影以及映射到模型的内部部分310内的位置的元件子集,允许计算设备100的用户查看所显示的元件并与之交互。如上所述,在渲染投影内出现的某些元件与功能属性相关联,这些功能属性在被激活时使得计算设备100执行相应的处理例程。因此,重要的是,用户可以在表面302的生成表示中精确地选择元件或位置,以便激活这些元件的相关功能。
诸如计算机鼠标、触摸板、触摸屏显示器和某些类型的手势识别设备之类的输入设备允许用户提供指定平面内的点的输入,但是由于三维结构的曲面引起的失真,用户可能难以直接指定表面302上的交互位置。具体是,当用户界面包含大量紧密封装的项目时,在确定交互位置时的小错误可能会产生意想不到的后果。例如,用户可能偶然选择与他或她想要选择的项目相邻的项目。
通过本文描述的实施例,当计算系统100经由一个输入设备118接收用户输入时,关于三维结构的表面上的点确定交互位置。图7示出了一个示例,其中,计算系统100接收指定表面302的表示被投影到的显示平面312中的输入位置R的用户输入。计算系统100确定三维结构的表面302的模型上的对应交互位置,并且根据映射到交互位置的元件的功能属性来执行处理例程。为了精确且有效地确定交互位置,计算系统100首先确定在取决于所指示的输入位置的方向上穿过虚拟相机的三维行的参数。在图7的示例中,行L穿过虚拟相机308和显示平面312中的输入位置R。然后,生成的模型的凹形内部部分上的交互位置Q被确定为行L和表面之间的交点。在表面由使用相应不同的等式定义的表面部分(本文称为图元)的组合形成的情况下,交互位置Q被确定为行L和一个所述图元之间的交点。以这种方式,在生成的模型上确定交互位置被简化为具有精确确定的参数的行和具有精确数学定义的表面之间的计算。可以以低计算成本和任意精度来执行该计算。在一些情况下,行L可能在几个点上与几个图元相交,并且从这几个交点确定正确的交互位置。
对于图3中所示的表面302,极冠304a、304b中的每一个都是球体的一部分,因此,确定任一极冠304a、304b的表示上的交互位置,包括确定行与作为球面的图元之间的交点,从而产生具有两个解的二次方程,其中一个解对应于交互位置。赤道带由不同的图元形成,在一个示例中,该图元包括自相交纺锤环面的表面,也称为退化环面。图8A示出了半径为Rlong的两个圆800a、800b,其中心相距距离2RM。这两个圆800a、800b形成了具有长半径RM和短轴Rlong的圆环802的横截面,其中,RM>Rlong,使得圆环802是环形的,并且包含以旋转对称的轴303为中心的孔804。随着RM值减小,孔的尺寸变得更小,直到RM<Rlong,随后,当圆800a、800b彼此部分重叠时,孔804消失。由部分重叠的圆800a、800b围绕轴303旋转产生的圆环806具有重叠或退化部分808,如图8B中两条相交的实曲线之间所示。表面302的赤道带306具有与退化环面806的重叠部分808的表面的截面810相同的几何形状。因此,确定赤道带306上的交互位置包括确定行和退化环形图元之间的交点,产生具有四个解的四次方程,其中一个解对应于交互位置。在图8B的示例中,对应于图7的输入位置R的生成的模型的内部部分上的交互位置Q被确定为四个解S1-S4中的第三个解S3,这四个解以离虚拟相机308的位置的距离增加的方式排序。第二个解S2对应于行L和表面的凸形外部之间的交点,而第一和第四个解S1、S4对应于行L和退化环面图元的外表面之间的交点。
为了在项目之间查看和导航,用户界面配备有用于响应于用户输入来操纵用户界面的预定义操作是有利的。
在如上所述渲染并显示了模型的投影之后,计算系统100可以随后接收用户输入,该用户输入指示更新虚拟相机308相对于表面302的模型的位置和方向(或者等同地,更新模型相对于虚拟相机308的位置和方向)的请求。例如,用户可能希望旋转模型,以便查看模型的不同部分上的项目,当前在用户的视场之外,这等同于围绕穿过两个极的轴旋转虚拟相机308。当发生这种情况时,模型的一系列投影可以被实时渲染,以给出表面302的平滑旋转的效果,导致对应于虚拟相机308的更新的视场的另一投影,该视场包含模型的更新的凹形内部部分。该另一投影包括映射到模型的更新后的凹形内部部分的输入平面300的元件的另一子集。
在一些示例中,输入平面中的元件的位置到表面302的模型上的相应位置的映射是一对一的映射,使得输入平面中只有一个元件被映射到模型上的每个位置。在其他示例中,多个元件可以被映射到模型上的给定位置。例如,在虚拟相机308围绕模型完整旋转之后,可以显示不同的元件。对要渲染的元件的选择可以取决于例如在虚拟相机308围绕轴303旋转期间执行的转数。一个示例是日历,其中,时间维度被映射到围绕轴303的角度,并且其中,虚拟相机308围绕轴303的明显旋转导致沿着时间维度的连续滚动,而不是在单次旋转之后返回到起始点。例如,一次旋转可以对应于一年、一月、一周或一天的周期。
在一些示例中,用户更新虚拟相机308的位置、方向和视场的请求可以指示显示平面312中对应于表面302的模型上的目标位置的输入位置。然后虚拟相机308的位置、方向和视场的更新以及要渲染的产生的集合元件可以取决于对应的目标位置。在一个示例中,虚拟相机308围绕轴303旋转,直到虚拟相机308的视场与目标位置横向对齐,为用户提供了导航到模型的特定区域的便利方式。
在一些示例中,用户更新虚拟相机308的位置、方向和视场的请求可以包括放大模型上的给定目标位置的请求。缩放请求可以指示缩放因子。缩放因子可以由用户选择,例如,通过用户按住按钮一定时间、执行收缩动作或者将滚轮转动一定量。大于1的缩放因子表示朝向目标位置缩放,而介于0和1之间的缩放因子表示远离目标位置缩放。
优选地,如果用户朝向给定的目标位置缩放足够远,则目标位置以垂直入射的方式出现在虚拟相机308的视场中心。在这种情况下,直接围绕目标位置的模型区域看起来是平的,允许用户在没有失真的情况下查看目标位置的邻域。为了实现这一点,在接收到缩放请求时,虚拟相机308沿着取决于所确定的物体位置的路径移动,直到虚拟相机308被定位在所确定的目标位置处的模型的法线上。然后虚拟相机308被重新定向,以面向所确定的目标位置,并且虚拟相机308的视场的维度可以减小,使得模型的更小部分落在虚拟相机308的视场内。如果请求进一步缩放,则虚拟相机308保持正常,并且根据所请求的缩放因子调整视场的维度。
图9A-图9C示出了虚拟相机308响应缩放请求而执行的操作的示例。在该示例中,计算系统100接收缩放请求,该请求指示显示平面312中的输入位置R和大于1的缩放因子。计算系统100使用上述相交方法来确定模型的凹形内部部分上的目标位置Q。如图9A所示,在这个示例中,虚拟相机308最初没有定位在模型的目标位置Q处的法线N上,这意味着目标位置Q从虚拟相机308的视角看起来是倾斜入射的。
响应于缩放请求,虚拟相机308沿着取决于目标位置Q的轨迹T移动。在该示例中,轨迹T是与目标位置Q处的法线N相交的直线。轨迹T与法线N所成的角度是可以预先确定的参数。在另一个示例中(此处未示出),轨迹T和法线N以直角相交,导致虚拟相机308可以跟随以到达法线N的最短可能轨迹。虚拟相机308继续沿着轨迹T移动由所请求的缩放因子确定的距离,并且朝向目标位置Q调整虚拟相机308的方向。在图9B中,虚拟相机308已经沿着轨迹T移动了一定距离,但是还没有定位在法线N上。在图9C中,虚拟相机308定位在法线N上。在这一点上,目标位置Q以法线入射出现在虚拟相机308的视场中心。如果请求进一步缩放,则视场的维度变窄,而虚拟相机308不进一步移动或重新定向。给用户界面配备上述缩放算法极大地提高了用户界面的实用性。
与在三维结构的表面上呈现项目的用户界面的渲染相关联的技术问题在于,与渲染传统二维用户界面的成本相比,渲染的计算成本相对较高。当相机的位置和方向相对于模型移动时,例如,在旋转或缩放动作期间,以高速率执行实时渲染计算,以便渲染模型的投影序列,从而给用户平滑移动的印象。渲染计算的高计算成本会导致延迟,降低这些动作的感知平滑度。当用户界面以高分辨率渲染时,这个问题尤其严重,这是在三维结构的表面上呈现大量项目和/或同时渲染大量多边形的应用程序所需要的。
为了解决上述技术问题,在一个示例中,在202获得输入数据包括获得多组图像块,每组图像块包括以与不同的一组图像块的分辨率相比不同的分辨率(或者换句话说,不同的细节水平)光栅化的输入图像的一组元件。在一些示例中,计算设备100从远程服务器接收图像块,而在其他示例中,计算设备100在本地生成几组图像块。每个图像块包括预定大小的像素阵列的像素值,例如,128×128、256×256或512×512。
有利地,每个图像块包括由相应相对少量的数据表示的相对少量的像素,使得几个图像块可以同时保存在GPU 106的高速缓存112中。
为了生成这几组图像块,原始输入图像可以被分成对应于第一分辨率的第一组图像块。图10A示出了输入图像被分成8×16的图像块网格的示例。在一些应用程序中,输入图像可以是包括数百万或数十亿像素的非常高分辨率的图像,这些图像可以被分成数量大得多的图像块。
为了生成更多组的图像块,可以递归地调整输入图像的大小,在递归的每个步骤生成一组新的图像块。例如,可以通过在两个维度上将输入图像的像素数量减半(从而将面积减小到四分之一)来生成第二组图像块。然后,可以将调整大小的图像分成第二组图像块。第二组图像块中的每个通常包括与第一组图像块中的每个相同数量的像素,因此第二组图像块比第一组图像块包括更少的图像块。第二组图像块的分辨率低于第一组图像块的分辨率。图10B示出了大小调整后的输入图像被分成4×8的图像块网格。重复调整大小和划分的过程,产生多组图像块,每组图像块对应于以相应分辨率光栅化的输入图像。图10C示出了进一步调整大小的输入图像,这些图像被分成2×4的图像块网格。
在获得几组图像块之后,每个图像块的像素位置被映射到表面302的模型上的相应位置。可以为每组图像块独立地执行映射。在用户界面的渲染期间,根据虚拟相机308的确定的视场来选择至少一组图像块。优选地,给定虚拟相机308的当前视场,每组图像块被选择为具有合适的分辨率。合适的分辨率是平衡用户能够查看出现在用户界面上的项目并与之交互的需求以及管理渲染过程中所涉及的计算资源的需求的分辨率。例如,选择合适的分辨率来避免缓慢且计算量大的渲染过程,否则渲染过程会导致延迟。在本示例中,对于虚拟相机308的默认位置,选择具有最低分辨率的一组图像块。
如上所述,可以将来自所选组图像块的图像块加载到GPU的高速缓存112中。在一些情况下,只有所选组图像块的子集被加载到高速缓存112中,例如,在虚拟相机308的确定的视场内的子集以及在直接围绕虚拟相机308的确定的视场的区域内的子集,或者在距虚拟相机的确定的视场的预定距离内的子集。也有可能将所选组图像块的所有图像块加载到高速缓存112中。
计算设备100使用加载到高速缓存112中的图像块来渲染模型的投影,如前所述,高速缓存被设置成由GPU 106的处理节点110快速访问。因此,渲染计算可以以最小的延迟来执行。
当虚拟相机308的位置和方向响应于用户输入而移动时,高速缓存112中的图像块可以用对应于表面302的更新部分的图像块来替换。例如,当虚拟相机308的位置和方向因缩放请求而改变时,计算设备100可以确定视场的维度是否超过预定阈值。如果视场的维度已经超过预定阈值,则GPU 106可以用来自不同的一组图像块的图像块替换当前一组图像块的图像块。在如上所述朝向目标位置缩放的情况下,对应于初始细节水平的初始一组图像块可以用对应于另一更高细节水平的另一组图像块来替换。可以设置预定阈值,使得在用户能够察觉到放大时图像质量的恶化之前,替换初始一组的图像块。通过包括多组图像块和用于在不同的几组图像块之间交换的相关阈值,在任何时候渲染的图像块的数量以及因此图像块像素的总数可以保持在窄界限内,使得总是向用户呈现可接受的高细节水平,同时执行处理的计算成本足够低,以避免渲染延迟。实现这种平衡所需的图像块的组数可以取决于与用户界面交互的用户可用的最大缩放因子,或者换句话说,取决于虚拟相机308可能的最大和最小视场的尺寸比。发明人已经发现,至少三个细节水平适用于许多应用程序,五个细节水平对于32x的最大缩放因子是足够的。
尽管在上述示例中,不同的细节水平由包括以不同分辨率光栅化的共同一组元件的不同的几组图像块提供,但是在其他示例中,不同的细节水平可以被提供有彼此不同的元件和/或不同的功能属性。以这种方式,当用户朝向或远离模型上的目标位置缩放时,可以呈现不同的信息,和/或用户可以访问不同的交互功能,导致由同心表面形成的多层用户界面结构,用户可以在这些同心表面之间缩放。例如,在用户界面用于呈现物体阵列的情况下,当用户朝向给定物体缩放时,可能出现关于该物体的进一步信息。进一步信息可以具有相关联的功能,例如,是可点击的或者包括动画效果。在用户界面用于呈现分层文件结构的示例中,分层结构中的不同级别可以以不同的细节水平来呈现。
通常,高速缓存112中的图像块不会立即被替换,而是可以在GPU 106使用DMA108从存储器102检索图像块时依次替换。结果,来自两个不同组的图像块有时会同时保存在高速缓存112中,因此不同细节水平的图像块可以同时渲染。已经观察到,当同时渲染来自不同组的图像块时,有时会注意到边缘效应,其中,沿着相邻图像块之间的边界出现阶梯状黑线。这些效果是图像块的像素映射的结果,对于不同的几组图像块,图像块的像素被独立地映射到模型,这意味着像素的映射在边界处不完全匹配。为了避免这些影响,给定的一组图像块中的相邻图像块可以被布置为重叠。例如,每个图像块可以具有包括相同组内的相邻图像块的几个像素的边界。然后,映射每组图像块的光栅化像素的位置包括重叠每组图像块中相邻图像块的生成的边界。尽管映射在边界处可能不完全匹配,但是图像块的重叠防止了任何间隙的出现,因此防止了上述边缘效应。
上述实施例应被理解为本公开的说明性示例。设想了进一步的实施例。例如,表面形状和相机位置的组合可以用于渲染“环绕视频”,而不仅仅是图像。应当理解,关于任何一个实施例描述的任何特征可以单独使用,或者与所描述的其他特征结合使用,并且还可以与任何其他实施例的一个或多个特征结合使用,或者与任何其他实施例的任何组合结合使用。此外,在不脱离由所附权利要求限定的本公开的范围的情况下,也可以采用上面没有描述的等同物和修改。
Claims (25)
1.一种生成用于由显示设备显示的用户界面的计算机实现的方法,所述方法包括:
获得指示输入平面内的多个元件中的每一个的相应位置的输入数据;
生成三维结构的表面的模型,所述表面围绕穿过两个极的轴具有圆对称性,并且包括两个弯曲的极冠和连接两个极冠的弯曲的赤道带,其中,每个弯曲的极冠包含相应的一个极,并且每个极冠在包含所述轴的平面中的横截面曲率大于所述赤道带在包含所述轴的所述平面中的横截面曲率;
将所述输入平面内的所述多个元件的所述位置映射到生成的模型上的相应位置;
确定虚拟相机相对于所述模型的位置和方向,其中,所述虚拟相机的确定的位置在所述生成的模型的外部;
根据所述虚拟相机的所述确定的位置和所述方向来确定所述虚拟相机的视场,所述视场包含所述生成的模型的凹形内部部分;以及
在所述用户界面中渲染所述生成的模型的投影,所述投影对应于所述虚拟相机的确定的视场,并且包括映射到所述生成的模型的所述凹形内部部分上的位置的所述多个元件的子集。
2.根据权利要求1所述的方法,其中:
每个极冠是围绕包含具有第一半径的圆弧的极的轴的旋转表面,并且所述表面的所述赤道带是围绕包含具有第二半径的圆弧的极的轴的旋转表面,其中,所述第二半径大于所述第一半径。
3.根据权利要求1或2所述的方法,其中:
所述虚拟相机的确定的方向使得所述两个极包括相对于所述确定的方向的上极和下极;以及
所述虚拟相机的所述确定的位置更靠近所述上极而不是所述下极。
4.根据前述权利要求中任一项所述的方法,其中,所述输入数据进一步将功能属性与所述多个元件的至少一部分相关联,所述方法还包括:
接收指示所述用户界面中的输入位置的用户输入;
确定所述生成的模型的所述凹形内部部分上对应于所述用户界面中的指示的所述输入位置的交互位置;以及
根据映射到所述生成的模型上的确定的交互位置的元件的功能属性来执行处理例程。
5.根据权利要求4所述的方法,其中,确定所述生成的模型的所述凹形内部部分上的所述交互位置包括:
确定在取决于指示的所述输入位置的方向上穿过所述虚拟相机的行的参数;
将所述生成的模型的所述凹形内部部分上的交互位置确定为所述行和所述表面之间的交点。
6.根据从属于权利要求2时的权利要求5所述的方法,其中,确定所述交互位置包括将所述交互位置确定为所述行和包括所述赤道带的退化环形表面之间的四个交点之一。
7.根据权利要求1至3中任一项所述的方法,其中,所述凹形内部部分是第一凹形内部部分,所述投影是第一投影,所述多个元件的所述子集是第一子集,所述方法还包括:
接收用户输入;
根据所接收的用户输入更新所述虚拟相机的所述位置、所述方向和所述视场;以及
在所述用户界面中渲染所述生成的模型的第二投影,所述第二投影对应于所述虚拟相机的更新的视场,并且包括映射到所述生成的模型的第二凹形内部部分上的位置的所述多个元件的第二子集。
8.根据权利要求7所述的方法,其中:
更新所述虚拟相机的所述位置和所述方向包括围绕穿过所述两个极的所述轴旋转所述虚拟相机;以及
所述多个元件的所述第二子集取决于所述虚拟相机围绕所述轴旋转期间执行的旋转次数。
9.根据权利要求7所述的方法,其中:
所接收的用户输入指示在所述用户界面中的输入位置;以及
更新所述虚拟相机的所述位置、方向和视场包括:
确定对应于所述用户界面中的所指示的输入位置的所述模型的所述凹形内部部分上的目标位置;以及
根据确定的目标位置,更新所述虚拟相机的所述位置、所述方向和所述视场。
10.根据权利要求9所述的方法,其中,确定所述模型的所述凹形内部部分上的所述目标位置包括:
确定在取决于所指示的输入位置的方向上穿过所述虚拟相机的行的参数;以及
将所述目标位置确定为所述行和所述表面之间的交点。
11.根据权利要求9或10所述的方法,其中:
所接收的用户输入指示缩放因子;以及
更新所述虚拟相机的所述位置、所述方向和所述视场包括:
沿着取决于所述确定的目标位置的路径移动所述虚拟相机,直到所述虚拟相机被定位在所述生成的模型的所述确定的目标位置处的法线上;
将所述虚拟相机定向为面向所述确定的目标位置;以及
根据所指示的缩放因子调整所述虚拟相机的所述视场的维度。
12.根据权利要求11所述的方法,其中,所述路径是与所述生成的模型的所述法线相交的直线。
13.根据前述权利要求中任一项所述的方法,其中:
获得所述输入数据包括获得多组图像块,每组图像块包括以相应的细节水平光栅化的输入图像;
映射所述多个元件的所述位置包括将每组图像块的光栅化元件的位置映射到所述模型上的相应位置;以及
渲染所述生成的模型的所述投影包括:
根据所述虚拟相机的所述确定的视场,选择所生成的多组图像块中的一组或多组图像块;
将所生成的多组图像块中的所述一组或多组图像块加载到高速缓存中;以及
使用加载到所述高速缓存中的所述图像块渲染所述生成的模型的所述投影。
14.根据权利要求13所述的方法,其中,获得多个图像块包括:
生成由相应的不同比例因子缩放的所述输入图像的多个副本;以及
将所述输入图像的生成的缩放副本中的每一个分成多组图像块中的相应一组图像块。
15.根据权利要求13或14所述的方法,其中:
生成每组图像块包括生成重叠的图像块;以及
将每组图像块的所述光栅化元件的所述位置映射到所述生成的模型上的相应位置,包括重叠每组图像块中的相邻图像块的生成的边界。
16.根据从属于权利要求10时的权利要求13至15中任一项所述的方法,还包括:
确定调整后的视场维度已经超过预定阈值;以及
响应于确定所述调整后的视场维度已经超过所述预定阈值,在所述高速缓存中,用来自生成的组图像块中的不同的一组或多组图像块替换生成的多组图像块中的所述一组或多组的图像块。
17.根据权利要求13至16中任一项所述的方法,其中,所述生成的多组图像块包括至少三组图像块。
18.根据权利要求13至17中任一项所述的方法,其中,所述输入数据将不同的功能属性与所述多个元件的至少一部分相关联,用于相应的不同细节水平。
19.根据前述权利要求中任一项所述的方法,其中,所述生成的模型是包括多个连接的多边形的模型。
20.根据权利要求19所述的方法,其中,所述多个连接的多边形中的每个多边形是三角形。
21.根据权利要求19或20所述的方法,其中:
每个多边形具有相应的法向量,所述法向量指示所述生成的模型的朝外方向;以及
渲染所述生成的模型的投影包括排除具有与所述相机的目标方向相反的分量的法向量的多边形。
22.一种包括显示器、处理电路和存储器电路的系统,其中,所述存储器电路包括机器可读指令,当由所述处理电路执行时,所述机器可读指令促使所述系统:
获得指示输入平面内的多个元件中的每一个的相应位置的输入数据,所述输入数据将功能属性与所述多个元件的至少一部分相关联;
生成三维结构的表面的模型,所述表面围绕穿过两个极的轴具有圆对称性,并且包括两个弯曲的极冠和连接两个极冠的弯曲的赤道带,其中,每个弯曲的极冠包含相应的一个极,并且每个极冠在包含所述轴的平面中的横截面曲率大于所述赤道带在包含所述轴的所述平面中的横截面曲率;
将所述输入平面内的所述多个元件的所述位置映射到生成的模型上的相应位置;
确定虚拟相机相对于所述生成的模型的位置和方向,其中,所述虚拟相机的确定的位置在所述生成的模型的外部;
根据所述虚拟相机的确定的位置和方向来确定所述虚拟相机的视场,所述视场包含所述模型的凹形内部部分;
在用户界面中渲染所述生成的模型的投影,所述投影对应于所述虚拟相机的所述确定的视场,并且包括映射到所述生成的模型的所述凹形内部部分上的位置的所述多个元件的子集;以及
在所述显示器上显示所述用户界面。
23.根据权利要求22所述的系统,还包括输入设备,其中,所述系统被设置为:
从所述输入设备接收指示所述用户界面中的输入位置的用户输入;
确定所述生成的模型的所述凹形内部部分上对应于所述用户界面中的所指示的输入位置的交互位置;以及
根据映射到所述模型上的确定的交互位置的元件的功能属性来执行处理例程。
24.根据权利要求23所述的系统,还包括高速缓存,其中:
获得所述输入数据包括获得多组图像块,每组图像块包括以相应的细节水平光栅化的输入图像;
映射所述多个元件的所述位置包括将每组图像块的光栅化元件的位置映射到所述生成的模型上的相应位置;以及
渲染所述模型的生成的表示的所述投影包括:
根据所述虚拟相机的确定的视场选择所生成的多组图像块中的一组图像块;
将所生成的多组图像块中的所述一组图像块加载到所述高速缓存中;以及
使用加载到所述高速缓存中的所述图像块渲染所述生成的模型的所述投影。
25.一种包括机器可读指令的计算机程序产品,当由计算系统执行时,所述指令促使所述计算系统执行根据权利要求1至21中任一项所述的方法。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
GB2010022.8 | 2020-06-30 | ||
GB2010022.8A GB2596794B (en) | 2020-06-30 | 2020-06-30 | User interface |
PCT/EP2021/068090 WO2022003066A1 (en) | 2020-06-30 | 2021-06-30 | User interface |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116547718A true CN116547718A (zh) | 2023-08-04 |
Family
ID=71949906
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202180053344.7A Pending CN116547718A (zh) | 2020-06-30 | 2021-06-30 | 用户界面 |
Country Status (5)
Country | Link |
---|---|
US (1) | US20230126214A1 (zh) |
EP (1) | EP4172953A1 (zh) |
CN (1) | CN116547718A (zh) |
GB (1) | GB2596794B (zh) |
WO (1) | WO2022003066A1 (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2612335A (en) | 2021-10-28 | 2023-05-03 | Sphere Res Ltd | Tracking user focus |
CN114827569B (zh) * | 2022-04-24 | 2023-11-10 | 咪咕视讯科技有限公司 | 画面显示方法、装置、虚拟现实设备及存储介质 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB201009182D0 (en) * | 2010-06-01 | 2010-07-14 | Treadway Oliver | Method,apparatus and system for a graphical user interface |
US10614616B1 (en) * | 2017-09-26 | 2020-04-07 | Amazon Technologies, Inc. | Virtual reality user interface generation |
US10585294B2 (en) * | 2018-02-19 | 2020-03-10 | Microsoft Technology Licensing, Llc | Curved display on content in mixed reality |
WO2020072648A1 (en) * | 2018-10-02 | 2020-04-09 | Podop, Inc. | User interface elements for content selection in 360 video narrative presentations |
-
2020
- 2020-06-30 GB GB2010022.8A patent/GB2596794B/en active Active
-
2021
- 2021-06-30 WO PCT/EP2021/068090 patent/WO2022003066A1/en active Application Filing
- 2021-06-30 CN CN202180053344.7A patent/CN116547718A/zh active Pending
- 2021-06-30 EP EP21742324.3A patent/EP4172953A1/en active Pending
-
2022
- 2022-12-23 US US18/088,248 patent/US20230126214A1/en active Pending
Also Published As
Publication number | Publication date |
---|---|
WO2022003066A1 (en) | 2022-01-06 |
US20230126214A1 (en) | 2023-04-27 |
GB202010022D0 (en) | 2020-08-12 |
GB2596794B (en) | 2022-12-21 |
EP4172953A1 (en) | 2023-05-03 |
GB2596794A (en) | 2022-01-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20230126214A1 (en) | User interface | |
US8456484B2 (en) | Apparatus and methods for wrapping texture onto the surface of a virtual object | |
US11275436B2 (en) | Interface-based modeling and design of three dimensional spaces using two dimensional representations | |
US8610714B2 (en) | Systems, methods, and computer-readable media for manipulating graphical objects | |
CN106204712B (zh) | 分段线性不规则光栅化 | |
US8106927B2 (en) | Graphical user interfaces and occlusion prevention for fisheye lenses with line segment foci | |
EP3438919B1 (en) | Image displaying method and head-mounted display apparatus | |
US9858711B2 (en) | Efficient computation of shadows for circular light sources | |
AU2016308980B2 (en) | Image generating apparatus and image display control apparatus | |
CN108282694B (zh) | 全景视频渲染方法、装置及电子设备 | |
CN110999307A (zh) | 显示装置和服务器及其控制方法 | |
CN113724331B (zh) | 视频处理方法、视频处理装置和非瞬时性存储介质 | |
JP2019174984A (ja) | 表示制御装置、その制御方法、プログラム及び記憶媒体 | |
WO2017002483A1 (ja) | プログラム、情報処理装置、深度定義方法及び記録媒体 | |
CN109074670B (zh) | 信息处理装置、图像生成方法以及记录介质 | |
CN105378798A (zh) | 用于几何图形的抗混叠 | |
US20180130262A1 (en) | Display device and control method therefor | |
KR20230034351A (ko) | 얼굴 이미지 표시 방법, 장치, 전자기기 및 저장매체 | |
KR102056985B1 (ko) | 가상 현실 인터랙션 방법 및 그 장치 | |
CN109697747B (zh) | 矩形翻转动画生成方法及装置 | |
US11915349B1 (en) | Extrusion technique for curve rendering | |
JP3483276B2 (ja) | 3次元画像表示方法及び装置 | |
JP2023108550A (ja) | 情報処理装置及び情報処理プログラム | |
CN117676111A (zh) | 一种扩展现实图像的显示方法、装置及设备 | |
JP2012185399A (ja) | 地図画像処理装置及びその制御方法 |
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 |