首页> 中国专利> 用于使用户界面中的内容分层的计算机化的系统和方法

用于使用户界面中的内容分层的计算机化的系统和方法

摘要

提供计算机实现的系统和方法用于分析和确定在显示器上渲染的虚拟环境的性质。所公开的实施例包括例如渲染虚拟环境的方法,该方法包括用一个或多个处理器执行的操作。该方法的操作可以包括生成多个对象层,该对象层表示许用高度值。该方法还可以包括用多个对象填充环境,其中,每个对象与对应于一个对象层的高度值相关联。该方法还可包括确定任意两个对象是否形成遮蔽对。该方法还可包括计算每个遮蔽对的投影指数,其反映遮蔽对象与被遮蔽对象之间的高度差的大小。该方法还可包括根据所计算的投影指数渲染虚拟环境。

著录项

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2020-04-24

    授权

    授权

  • 2018-02-06

    著录事项变更 IPC(主分类):G06F3/01 变更前: 变更后: 申请日:20150623

    著录事项变更

  • 2017-07-21

    实质审查的生效 IPC(主分类):G06F3/01 申请日:20150623

    实质审查的生效

  • 2017-02-22

    公开

    公开

说明书

相关申请的交叉引证

本申请要求与2014年6月24日提交的美国临时专利申请第62/016,630号的权益,其全部内容通过引证结合于此。

背景技术

本公开总体上涉及用于向用户显示内容的计算机化的系统和方法。更具体地,且非限制性地,公开的实施例涉及用于显示虚拟环境中的内容的系统和方法,该虚拟环境包括虚拟三维环境。

当今,图形用户界面反映用于向用户传输内容和信息的一种重要方法。在现代数字时代,用户与各种装置上的这些界面交互,这些装置包括计算机、移动电话、电视、个人数字助手、手持式系统、收音机、音乐播放器、打印机、平板电脑、信报亭以及其他装置。许多传统的界面通常以二维方式向用户显示内容。

发明内容

所公开的实施例包括用于分析、渲染、处理和确定包括虚拟三维交互环境的虚拟环境内的对象的性质的系统和方法。所公开的实施例的方面提供了用于在虚拟环境内创建对象层、基于对象层确定对象的虚拟高度以及基于两个对象之间的(例如,虚拟的)视高差渲染被遮蔽对象上的投影的系统和方法。所公开的实施例的方面还提供了用于在虚拟环境内处理对象操作以与用户期望一致的方法和系统。

所公开的实施例包括例如用于渲染虚拟环境的系统,该系统包括存储一组指令的存储器以及耦接至存储器的一个或多个处理器,一个或多个处理器被配置成执行该一组指令以执行一个或多个操作。该操作可以包括在虚拟环境中生成多个对象层,该对象层表示虚拟环境内的许用高度值。该操作还可以包括用多个对象填充环境,其中,每个对象均与对应于对象层之一的高度值相关联。该操作还可包括确定任意两个对象是否形成遮蔽对,其中,遮蔽对包括遮蔽对象和被遮蔽对象,并且其中,遮蔽对象与遮蔽对象层相关联,该遮蔽对象层具有比与被遮蔽对象相关联的被遮蔽对象层更大的高度值。该操作还可以包括确定每个遮蔽对的投影指数,投影指数反映遮蔽对象层与被遮蔽对象层之间的高度差的大小。该操作还可以包括根据所计算的投影指数渲染虚拟环境。

所公开的实施例还可以包括例如用于渲染虚拟环境的方法,该方法包括由一个或多个处理器执行的操作。该方法的操作可以包括在虚拟环境中生成多个对象层,该对象层表示虚拟环境内的许用高度值。该方法还可以包括用多个对象填充环境,其中,每个对象均与对应于对象层之一的高度值相关联。该方法还可包括确定任意两个对象是否形成遮蔽对,其中,遮蔽对包括遮蔽对象和被遮蔽对象,并且其中,遮蔽对象与遮蔽对象层相关联,所述遮蔽对象层具有比与被遮蔽对象相关联的被遮蔽对象层更大的高度值。该方法还可以包括确定每个遮蔽对的投影指数,投影指数反映遮蔽对象层与被遮蔽对象层之间的高度差的大小。该方法还可以包括根据所计算的投影指数渲染虚拟环境。

所公开的实施例还可以包括例如用于在移动装置上显示的虚拟三维环境中渲染拖放过程的系统。该系统可以包括存储一组指令的存储器以及配置成执行所述一组指令以执行一个或多个操作的一个或多个处理器。该操作可以包括生成多个对象层,该对象层表示虚拟环境内的许用高度值。该操作还可以包括检测用户已下压与拖拉对象层相关联的拖拉对象,该拖拉对象层对应于比与投放容器对象相关联的投放容器层更小的高度值。该操作还可以包括渲染具有比拖拉对象层更小的高度值的新投放容器。该操作还可以包括检测拖放动作并根据所检测的拖放动作渲染虚拟三维环境。

所公开的实施例还可以包括例如用于在移动装置上显示的虚拟三维环境中渲染拖放过程的方法。该方法可以包括生成多个对象层,该对象层表示虚拟环境内的许用高度值。该方法还可以包括检测用户已下压与拖拉对象层相关联的拖拉对象,该拖拉对象层对应于比与投放容器对象相关联的投放容器层更小的高度值。该方法还可以包括渲染具有比拖拉对象层更小的高度值的新投放容器。该方法还可以包括检测拖放动作并根据所检测的拖放动作渲染虚拟三维环境。

所公开的实施例的其他特征和优点在下面的说明书部分地提出、部分地将从说明书显而易见或者可通过所公开的实施例的实践习得。通过在所述权利要求中具体指出的元件和组合将实现并获得所公开实施例的特征和优点。

应该理解到,前述一般描述和下面的详细描述仅是示例性的且解释性的,并且不限于如要求保护的所公开的实施例。

附图构成说明书的一部分。附图示出了本公开的一些实施例,并且与说明书一起用于解释在所附权利要求中提出的所公开的实施例的原理。

附图说明

图1示出了符合所公开的实施例的在客户端装置上显示的示例性三维图形用户界面。

图2示出了符合所公开的实施例的用于执行过程的示例性计算机系统。

图3示出了符合所公开的实施例的在客户端装置上显示的示例性三维图形用户界面。

图4示出了符合所公开的实施例的用于渲染界面中的对象的示例性系统优先级层级。

图5示出了符合所公开的实施例的用于基于对象高度差渲染投影的示例性过程的流程图。

图6示出了符合所公开的实施例的示例性对象层环境和渲染效果。

图7A至7D示出了符合所公开的实施例的示例性遮蔽对象处理环境和渲染效果。

图8示出了符合所公开的实施例的示例性对象层创建和渲染过程的流程图。

图9A至9D示出了符合所公开的实施例的遮蔽环境中的示例性拖放过程。

图9E示出了符合所公开的实施例的遮蔽环境中的示例性拖放过程的流程图。

图10A至10B示出了符合所公开的实施例的示例性窗口对象渲染环境。

具体实施方式

现将详细参考在附图中示出的本公开的实施例。在可能的情况下,在整个附图中相同的参考标号将用于表示相同或类似的部件。

所公开的实施例涉及用于分析、确定、渲染和处理包括虚拟三维交互环境的虚拟环境内的对象的性质。在一些方面,所公开的实施例可以基于符合所公开的实施例的虚拟高度、优先级参数、创建的对象层和/或其他这种信息确定这些性质。在某些方面,所公开的实施例可以执行这些过程以在传统的而为环境和界面上提供用于增强用户体验的虚拟三维环境。在一些方面,所公开的实施例通过所计算的投射在被遮蔽对象上的阴影来渲染虚拟环境以给出深度的外观。所公开的实施例也可以依照对象高度投射阴影,这可基于所产生的对象层,从而用现实世界的对象和照明性质模仿用户的期望。

在包括虚拟三维交互环境的虚拟交互环境中确定对象高度并渲染投影可以提供一个或多个优点。例如,在投影可为用于表示对象深度的主要提示的虚拟环境中,可能有利的是提供用于以一致的、标准化的和/或美观的方式渲染、处理和操作投影的过程。此外,可能有利的是创建这样的虚拟环境,其中,投影用物理阴影和照明性质来反映用户体验以增强用户体验并提供更强的沉浸感。

图1示出了符合所公开的实施例的显示在客户端装置上的示例性三维图形用户界面。在一些方面,三维交互与传统的二位交互的不同之处可以在于其允许对象与高度值相关联。在某些实施例中,三维虚拟环境可以与环境深度相关联,环境深度反映最大视在高度不同的任意两个渲染对象。在某些实施例中,三维虚拟环境可以包括虚拟相机以用于提供观看并渲染三维环境的透视角。在一些方面,显示这种三维情景的装置可以被配置成经由符合所公开的实施例的一个或多个过程(诸如,投影、遮蔽等)指示对象的深度。

图2示出了符合所公开的实施例的某些方面的、可以实现的示例性计算机系统200的框图。例如,在一些方面,计算机系统200可以反映与执行本文公开的一个或多个过程的装置(例如,图3的客户端装置)相关联的计算机系统。在一些实施例中,计算机系统200可以包括一个或多个处理器202,该处理器连接至通信主干网206,诸如总线或外部通信网络(例如,数字数据通信的任意介质,诸如,LAN、MAN、WAN、细胞网络、WiFi网络、NFC链路、蓝牙、GSM网络、PCS网络、I/O连接、诸如USB的任意有线连接,以及诸如HTTP、TCP/IP、RFID等的任意相关联的协议)。

在某些方面,计算机系统200可以包括主存储器208。主存储器208可以包括随机访问存储器(RAM),其表示存储用处理器202执行的计算机程序、指令组、代码或数据的有形的且永久的计算机可读介质。当由处理器202执行时,这种指令、计算机程序等能使处理器202执行符合所公开的实施例的一个或多个过程或功能,在一些方面,这种指令可以包括处理器202可用解译器执行的、(例如来自编译器的)机器代码和/或提出文件内附代码(filescontaining code)。

在一些方面,主存储器208还可以包括或连接至辅助存储器210。辅助存储器210可以包括盘式驱动器212(例如,HDD、SSD)和/或可去除的存储驱动器214,诸如磁带驱动器、闪存、光驱、CD/DVD驱动器,等。可去除的存储驱动器214可以本领域技术人员已知的方式从可去除的存储单元218读取或写入该可去除的存储单元。可去除的存储单元218可表示磁带、光盘或由可去除的存储驱动器214读取和写入的其他存储介质。可去除的存储单元218可以表示存储有由处理器202执行的计算机程序、指令组、代码或数据的有形且永久的计算机可读介质。

在其他实施例中,辅助存储器210可以包括用于使计算机程序或其他程序指令加载到计算机系统200中的其他装置。这种装置可以包括例如其他可去除的存储单元218或界面220。这种装置的实例可以包括可移动存储芯片(例如,EPROM、RAM、ROM、DRAM、EEPROM、闪存装置或其他易失性或非易失性存储装置)和相关联的插座,或者允许指令和数据从可去除的存储单元218传输至计算机系统200的其他可去除的存储单元218和界面220。

计算机系统200还可以包括一个或多个通信接口224。通信接口224可以允许软件和数据在计算机系统200与外部系统(例如,除了主干线206以外)之间传输。通信接口224可以包括调制解调器、网络接口(例如,以太网卡)、通信端口、PCMCIA槽和卡,等。通信接口224可以信号形式传输软件和数据,该信号可以是电子信号、电磁信号、光信号或能够由通信接口224接收的其他信号。这些信号可以经由通信路径(即,通道228)提供至通信接口224。通道228运载信号并且可以使用电线、线缆、光纤、RF链路和/或其他通信通道实现。在一个实施例中,信号包括发送至处理器202的数据包。表示处理包的信息还可以信号的形式从处理器202发送通过通信路径228。

在某些方面,本文描述的计算机实现的方法可以在计算机系统的单处理器,诸如计算机系统200的处理器202上实现。在其他实施例中,这些计算机实现的方法可以使用单计算机系统内的一个或多个处理器和/或与网络连通的独立计算机系统内的一个或多个处理器实现。

在关于图2的某些实施例中,术语“存储装置”和“存储介质”可以表示特定装置,包括但不限于,主存储器208、辅助存储器210、安装在硬盘驱动器212中的硬盘,以及可去除的存储单元218。而且,术语“计算机可读介质”可以表示的装置包括但不限于安装在硬盘驱动器212中的硬盘、主存储器208和辅助存储器210的任意组合,以及可去除的存储单元218,其可向计算机系统200的处理器202提供计算机程序和/或指令组。这种计算机程序和指令组可以存储在一个或多个计算机可读介质内。在某些方面,计算机程序和指令组还可以经由通信接口224接收并存储在一个或多个计算机可读介质上。

图3示出了符合所公开的实施例的在装置上显示的示例性虚拟三维图形用户界面。在某些方面,装置(例如,客户端装置310)可以包括用于向用户显示一个或多个交互对象(例如,交互对象332A和332B)的一个或多个显示器(例如,显示器320)、与其相关联和/或与其交互。

在一些方面,客户端装置310可以包括符合所公开的实施例的任意计算机装置、数据处理装置或显示装置。例如,装置310可以包括个人电脑、手提电脑、平板电脑、笔记本电脑、手持式电脑、个人数字助手、便携式导航装置、移动电话、可佩戴装置、嵌入式装置、智能电话、电视、体感显示器、手持式系统、数字收音机、音乐播放器、打印机、信报亭以及能够处理信息并向显示器提供信息的任何其他或替代计算机装置。在某些方面,客户端装置310可以用一个或多个处理器、基于计算机的系统(例如,图2的示例性计算机系统)或显示系统(例如,关于显示器320描述的显示器)实现。在一些方面,客户端装置310可以包括一个或多个客户端装置。

在某些方面,客户端装置310可以包括一个或多个显示器320、与其相关联或与其交互。在一些方面,显示器320可以包括用于描绘信息的显示装置或面板。例如,显示器320可以包括一个或多个阴极射线管(CRT)显示器、液晶显示器(LCD)、等离子显示器、发光二极管(LED)显示器、触摸屏式显示器、投影显示器(例如,投射在屏幕或表面上的图像、全息图像等)、有机发光二极管(OLED)显示器、场发射显示器(FED)、主动矩阵显示器、真空荧光(VFR)显示器、三维(3D)显示器、电子纸(电子墨水)显示器、微显示器或这些显示器的任意组合。在一些实施例中,显示器320可以包括在客户端装置310中。在其他实施例中,显示器320可以构成在通信网络上与客户端装置310通信的独立装置(例如,如上文关于图2讨论的)。

在某些方面,装置310可以被配置成显示并渲染图形用户界面以用于向用户提供数据、信息、图片、视频、应用、窗口、视图、对象等。在一些实施例中,界面可包括一个或多个交互对象(例如,对象332A和/或332B)。在某些方面,交互对象可以表示在界面上显示的一个或多个项目、单元或信息包。例如,交互对象(例如,对象332A)可以包括应用窗口(例如,与IOS相关联的窗口、微软窗口、谷歌安卓、苹果OSX、其他拥有专利的窗口等)、视图、按钮、文本框、图标、图片、视频、字段、检索字段、通知栏、对象容器或能够提供信息和/或接收输入的任何其他可视提示。在某些方面,交互对象可以包括、包含或含有其他交互对象。例如,与应用窗口相关联的交互对象可以包括与应用相关联的其他交互对象(例如,按钮、字段、文本等)。

如图3所示装置310可以被配置成在显示器320上显示一个或多个深度指示器(例如,指示器334A和334B)。在一些实施例中,深度指示器可以反映对应交互对象的视深或视高的图示的或图形的指示。在某些实施例中,例如,深度指示器可以采用投射或向内阴影的形式,其代表对应的交互对象在虚拟三维环境中位于另一个上方或下方(例如,如关于指示器334A和334B所示)。所显示的深度指示器(例如,投影)的性质、尺寸、形状、颜色、范围强度、一致性、均匀性、不透明度、梯度、饱和度、亮度等可以通过符合所公开的实施例的过程确定。在某些方面,这些参数可以根据在界面上渲染的其对应交互对象和其他对象(例如,其他交互对象和其他深度指示器)的相对虚拟高度而变化。

装置310可以被配置成允许渲染的对象(例如,交互对象)位于虚拟环境内的任意虚拟高度处。在某些实施例中,虚拟高度可以反映渲染的物体位于底部位置(例如,表示最低可能的高度值,诸如0、-1等)上方的视距。在一些实施例中,虚拟环境可以与反映最大视高不同的任意两个渲染对象的环境深度相关联。在某些实施例中,这个环境深度可以位于与观看、显示和渲染虚拟环境的虚拟相机相距一些虚拟距离。

在一些实施例中,装置310可以被配置成允许对象(例如,交互对象)仅位于包含于虚拟环境中的一个或多个对象层内(例如,在环境的虚拟边界内)。在某些方面,对象层可以表示所渲染的对象可以具有的许用高度值。在某些方面,对象层可以包括连续谱(例如,允许虚拟环境内的所有可能的高度值)。在其他实施例中,对象层可以包括离散值(例如,对象可以仅位于在虚拟环境内的某些高度处)。在一些实施例中,客户端装置310中实现的过程可以被配置成响应于例如符合所公开的实施例的用户输入、系统过程、所接收的数据或其他触发而改变对象的相对高度(例如,改变对象所在的对象层)。

在某些方面,对象层可以形成许用高度值的层级(例如,对象层),其表示装置310可以如何在虚拟情景中渲染对象。例如,图4示出了符合所公开的实施例的用于渲染界面中的对象的示例性系统优先级层级400。在一些方面,层级400可以包括反映虚拟环境内的高度值(例如,对象层高度)级别的一个或多个卷(volume)。在一些实施例中,与较高优先级的卷相关联的对象将对用户而言看上去位于与较低优先级卷相关联的对象前面,这是因为较高的优先级将位于比较低优先级的对象层更高的对象层中。在某些方面,卷可以与一个或多个对象层相关联。此外,在一些方面,不同的卷可以与不同数量的对象层相关联。

在某些实施例中,卷可以位于与虚拟环境相关联的环境深度的边界内。例如,在一个实施例中,卷(和与卷相关联的任意对象层)可以位于由底面414(例如,其表示对象可以具有的最低高度值)和屏幕面412(例如,其表示对象可以具有的最高高度值)限定的虚拟边界内。在一些实施例中,虚拟环境的深度可以从屏幕面412和底面414的高度差确定。符合所公开的实施例,装置310可以被配置成渲染仅在位于面412和414之间允许的对象层内的对象。

在一些方面,卷可以表示与渲染物体的级别对应的一般高度值。例如,在某些实施例中,装置310可以被配置成将用于高优先级系统过程的渲染对象(例如,某些系统覆盖、警报、通知栏和/或包括在其中的任意对象)与系统卷402相关。在这个实例中,位于系统卷402内的对象将位于其他卷中的那些对象上方的高度处(例如,这些对象将位于其他对象上方的对象层中)。在某些方面,位于与系统卷402相关联的对象层内的对象将对用户而言看上去位于其他卷内的对象的“前面”,这是因为那些对象位于较低高度值的对象层上方的对象层中。以这种方式,每个对象和/或每个对象层可以基于对象的级别和/或对象层的级别与相应卷相关联。

在另一实例中,层级400可以包括位于高优先级系统卷402下方的场境切换卷404。在某些方面,场境切换卷可以与在客户端装置310上处理的某些系统和应用功能相关联。例如,在一个实施例中,场境切换卷404可以与以下相关联:与意图解疑有关的功能、与应用或其他卷(例如,卷406A、406B、406C等)相关联的所考虑的内容视图以及类似功能相关联。

层级400还可以包括与比场境切换卷404低的高度值相关联的一个或多个应用卷(例如,卷406A、406B、406C等)。在某些实施例中,应用卷可以包括通常与在客户端装置310上运行的应用过程相关联的对象。例如,应用卷可以包括与应用相关联的对象(诸如,文本、按钮、字段、窗口、视图等)或位于运行的应用内的任何其他对象。

层级400可以包括其他卷,诸如应用切换卷408和低优先级系统卷410。在某些方面,例如,应用切换卷可以反映与最近打开的应用相关联的对象层或符合应用之间切换的过程。在一些方面,低优先级系统卷410可以表示总存在的对象、位于背景中、可以是顶部系统卷的一部分,等。

虽然图4示出了某些卷具有某一尺寸、名称和优先级,但应该认识到,层级400可以包括位于虚拟环境的任意许用高度内的任意数量的卷。此外,关于卷的某些术语(例如,“系统卷”)的使用旨在是示意性的而非限制性的。

所公开的实施例可以实现为提供用于确定对象之间的高度值并因此渲染环境的系统和方法。图5示出了符合本公开的实施例的用于基于对象高度差渲染投影的示例性过程的流程图。在某些方面,过程500可以在实现一个或多个计算机系统或处理器(例如,图2的计算机系统200)的客户端装置310中实现。

如图5所示,过程500可以包括获得在环境中渲染的两个对象的高度(步骤502)。在一些方面,过程500可以基于对象所在的对象层确定这些高度。例如,如果对象位于与特定高度相关联的对象层内,则过程500可以确定出对象位于与其所在的对象层相等的高度处。在其他实施例中,过程500可以基于与对象相关联的其他参数(例如,存储在装置310的存储器、主存储器等中的高度值,诸如,与z坐标或位置相关联的高度)确定对象的高度。

在某些实施例中,过程500可以将两个对象的高度相比较以确定与两个对象相关联的高度差(步骤504)。在一些实施例中,高度差可以反映在虚拟环境中一个对象在另一个对象上方或下方的视距。例如,如果第一对象位于具有10个单位的高度值的对象层中并且第二对象位于具有4个单位的高度值的对象层中,则过程500可以确定出第一对象位于第二对象上方6个单位的量。在一些实施例中,与这种测量相关联的单位可以构成独立于密度的像素,虽然其他单位组(例如,厘米、任意单位,等)是可能的。

在一些方面,过程500可以包括基于对象之间的高度差计算两个对象之间的投影指数(步骤506)。在某些实施例中,投影指数可以表示由较高高度值的对象投射在较低高度值的对象上的阴影的特征。在某些方面,投影指数可以反映两个对象之间的高度差的大小。例如,投影指数可以表示投影的强度、颜色、梯度、尺寸、形状、亮度等以表现环境中的两个对象之间的各种视高差。例如,位于第二对象正上方的第一对象可以投射比位于比第一对象更高高度处的第三对象更小、更不明显、更微弱、更亮等的阴影。在一些方面,位于相同层和/或相邻层中的对象不能在彼此上投射阴影(例如,如关于图7A至7D描述的)。例如,装置310可以确定对于高度差不超过一阈值的两个对象而言投影指数为零。

在某些方面,过程500还可以被配置成将投影指数设定为其他值。例如,在一个实施例中,装置310可以被配置成将某些类型的对象(例如,工具栏、系统对象等)、位于某些对象层内的对象、具有在一些阈值以下的高度差的对象等确定为完全不能投射阴影。例如,装置310可以确定出遮蔽对象与特定类型或种类的对象(例如,工具条、系统对象等)相关联,并且可以将由这种类型产生的所有阴影将为零(例如,通过将投影指数修改为零)。在另一实例中,装置310可以被配置成对于某一类型的、位于某一层中的或具有某一高度差的物体,将所计算的投影指数覆盖、限制、增加、改变或以其他方式修改成最小值或最大值(例如,阴影强度极限)。装置310可以例如将与这个对象相关联的投影指数限制为特定阴影强度极限或范围等。

在某些实施例中,过程500可以包括基于投影指数渲染虚拟环境中的投影(步骤508)。在一些方面,渲染投影可以包括渲染与较低高度值相关联的对象(例如,被遮蔽对象)上的投影。在某些方面中,渲染的投影可以与其他结合。例如,如果第一对象位于第二对象上方,第二对象进而位于第三对象上方,则过程500可以将从第一对象到第三对象上的投影与从第二对象到第三对象上的投影结合。

图6示出了符合所公开的实施例的示例性对象层环境600和渲染效果。在一些方面,环境600可以包括基面602,其表示环境600内的对象可具有的最低许用高度(例如,环境600内的最低可能对象)。在一些方面,基面602可以表现与特定环境相关联的底面414,但不要求这种关系。例如,基面602可以位于底面414上方,位于例如与应用卷相关联的最低可能对象层上。

在某些实施例中,环境600可以包括处于位于基面602上方的对象层中的搁置状态604中的对象。在某些方面,与搁置状态604相关联的对象层可以直接位于基面602上方(例如,具有的投影指数为零),但不要求这种关系。在某些方面,装置310可以被配置成确定处于搁置状态604的对象与基面602之间的高度差并因此渲染情景(例如,如关于图5描述的)。例如,如图6所示,装置310可以执行过程以确定处于搁置状态604的对象位于基面602正上方的对象层中,并计算反映对象不在基面602上投射阴影的投影指数(例如,如相对于对象610所示)。

在一些实施例中,环境600可以包括位于与搁置对象604和/或基面602相关联的对象层上方的一个或多个对象层中的对象。例如,环境600可以包括位于聚焦状态606和/或下压状态608中的对象。在某些方面,装置310可以被配置成渲染处于聚焦状态的对象,以在环境600中高亮、强调或切出某些对象。装置910可以基于在装置上运行的应用或操作系统中的指令确定将目标放置成聚焦状态。类似地,在一些实施例中,装置310可以被配置成将用户下压的对象(例如,立刻、在阈值量的时间之后等)发送到与下压状态608相关联的对象层中。此外,装置310可以在用户键入与拖放动作一致的输入时将目标放置成下压状态608(例如,进行与图9A至9E一致的处理)。

装置310可以被配置成计算处于这些状态的对象之间的高度差,并因此渲染情景。例如,装置310可以被配置成确定处于下压状态608中的对象与基面602之间的相对高度差大于处于聚焦状态606中的对象与底面602之间的高度差。在这个实例中,装置310可以将这个信息可视地告知用户的方式渲染环境(例如,与投影指数一致)。例如,如图6所示,与对象614相关联的阴影大于与对象612相关联的阴影,其表示对象614位于对象612上方的对象层中。装置310可以渲染该情景以便以符合所公开的实施例的任意方式(例如,投影的强度、颜色、范围、饱和度等)反映这个信息。

如本文使用的,术语“聚焦状态”、“下压状态”和“搁置状态”旨在是示意性的而非限制性额。此外,虽然图6示出了对象可采用的三个可能状态(例如,对象层),但所公开的实施例提供了任意数量的这种状态、对象层以及用于渲染对象的许用高度值。

所公开的实施例可以提供用于渲染存在遮蔽的对象和投影的系统和方法。例如,图7A至7D示出了符合所公开的实施例的示例性被遮蔽对象操作环境和渲染效果。如图7A所示,装置310可以渲染遮蔽对象702部分地遮蔽第二对象(例如,处于搁置状态604的对象)的环境。在某些方面,遮蔽对象可以包括符合所公开的实施例的任何交互对象。装置310可以基于例如确定遮蔽对象的对象覆盖的横向范围(例如,x和y坐标)在一些阈值量以上以及确定遮蔽对象的高度大于被遮蔽对象的高度,来确定遮蔽对象遮蔽一被遮蔽对象。在一些方面,装置310可以被配置成渲染符合所公开的实施例的环境(例如,如图7B所示)。

例如,装置310可以被配置成确定处于搁置状态604的对象不将阴影投射在基面602上(例如,由于高度差落在阈值距离以下)。装置310还可以确定遮蔽对象702具有比搁置对象和基面702更大的高度值(例如位于更高的对象层中)。在这个实例中,装置310还可以被配置成基于符合所公开的实施例的其他因素(例如,对象702是不投射阴影的对象类别的实例)确定遮蔽对象702不将阴影投射在其下方的对象上(例如,基面602和处于搁置状态604的对象)。

装置310可以被配置成响应于符合所公开实施例的用户输入、系统过程或任何其他标记而改变对象位置(例如,改变对象所处的对象层)。如图7C所示,例如,装置310可以被配置成响应于用户输入(例如,用户触摸、下压、点击对象、这样做达阈值量的时间,等)将对象从底面状态604(或另一状态)移动至下压状态608。在图7C所示的实例中,下压状态608与比搁置状态604更大的高度值相关联。在一些方面,装置301可以被配置成根据反映移动对象的更新位置渲染环境。例如,如图7D所示,装置310可以确定移动至下压状态608的对象现在将在基面602上投射阴影。在这个实例中,与下压状态相关联的对象层位于遮蔽对象702下方的一高度处。在一些方面,装置310可以防止处于下压状态608的对象由于例如与处于下压状态608的对象和遮蔽对象702相关联的对象类别或符合所公开实施例的任何其他过程而位于遮蔽对象702上方的对象层中。

图8示出了符合所公开的实施例的示例性对象层创建和渲染过程800的流程图。在某些方面,过程800可以在实现一个或多个计算机系统或处理器(例如图2的计算机系统200)的客户端装置310中实现。

在一些实施例中,过程800可以包括生成虚拟环境中向其填充对象的多个对象层(步骤802)。在一些方面,生成的对象层可以在虚拟环境内形成离散的高度水平。在其他方面,对象层可以构成环境内的连续高度值(例如,对象可以采用底面414与屏幕面412之间的任意高度值)。

在某些方面,过程800可以包括用一个或多个对象(例如,交互对象)填充虚拟环境(步骤804)。在一些实施例中,填充环境可以包括将每个对象指定为特定对象层,将每个对象指定为特定高度,将每个对象指定为特定优先卷,或用于具体说明、表示虚拟环境内的对象的绝对、相对或近似高度的任何其他这种过程。

在一些方面,过程800可以包括确定在虚拟环境中填充的或可见的任何对象是否遮蔽另一对象(步骤806)。在某些实施例中,过程800通过例如比较两个对象的坐标(例如,笛卡尔坐标系中的x、y和/或z位置)、与两个对象相关联的两个对象层的高度值、确定与观看环境的虚拟相机相关联的相机性质(例如,相机位置、相机的视角、相机的视场,等)等可以确定一个对象是否遮蔽另一个对象。例如,过程800通过确定对象覆盖的横向范围(例如,x和y坐标)在一些阈值量以上、比较其高度(例如,其相应对象层的高度)以及确定处于一层上的一个对象高于或低于另一个对象,可以确定遮蔽对象遮蔽被遮蔽对象。因为遮蔽可以需要环境中的至少两个对象,所以一个遮蔽另一个的一组对象可以被称为“遮蔽对”,而这种描述并非限制性的。

在某些方面,过程800可以包括计算符合所公开的实施例(符合关于图5描述的过程)的每个遮蔽对的投影指数(步骤808)。在一些实施例中,过程800然后可以根据一个或多个投影指数渲染虚拟三维环境(步骤810)。在一些方面,例如,渲染情景可以包括基于每个遮蔽对的投影指数确定所有投影的总和或净效果,并因此渲染情景。例如,过程800可以相加、相乘或以其他方式结合情景中的每个对象的投影指数(例如,通过结合对象作为其中成员的每个遮蔽对的指数)以使其适当地渲染。在一些实施例中,过程800还可以限制所结合的投影指数以符合最大值和最小值(例如,阴影强度极限或聚合阴影强度极限)。

所公开的实施例还提供了用于处理用户交互、系统过程以及存在被遮蔽对象的对象操纵并因此渲染情景的方法和系统。例如,图9A至9D示出了符合所公开的实施例的处于遮蔽环境中的示例性拖放过程的框图。类似地,图9E示出了符合所公开的实施例的示例性拖放过程的流程图。在某些方面,参考图9A至9E描述的过程可以在实现一个或多个计算机系统或处理器(例如,图2的计算机系统200)的客户端装置310中实现。

例如,图9A示出了必须将处于下压状态608的对象拖放到与浮动动作对象902相关联的容器(投放容器)中的示例性环境。如图9A的实例描述的,处于状态608的下压按钮可以由遮蔽对象702遮蔽,并且浮动动作对象902可位于比处于下压状态608中的对象更大的高度处。在这个实例中,浮动动作对象902可以表现与具有比处于下压状态608中的对象和/或遮蔽对象702的高度值更大和/或相等的高度值的对象层相关联的投放容器。在一些方面,浮动动作对象902可以包括用于处理符合所公开的实施例的拖放功能的任意交互对象。

在一些方面,装置301可以被配置成操纵环境中的对象以允许用户将处于下压状态608中的对象投放到与浮动动作对象902相关联的容器中。装置310可以基于所公开的实施例的任何过程确定进行这种操纵。例如,装置310可以确定对象已保持在下压状态608达阈值时间段,并且情境中具有较高高度值的对象(例如,浮动动作对象902)与投射对象的类别相关联。

如图9B所示,装置310可以被配置成去除、删除、滑移、渐隐遮蔽对象702或将其移动远离处于下压状态的对象。在一些方面,装置310可将场境动作对象906放置(例如,生成和显示)在处于下压状态608中的对象下方代替遮蔽对象702的位置处。在某些方面,场境动作对象906可以表示现与遮蔽对象702视觉相同或类似的对象,但其位于处于下压状态608中的对象下方的高度处。在一些实施例中,装置310可以创建和渲染场境动作对象906,使得其具有与遮蔽对象702类似或相同的阴影特性。例如,装置310可以在场境动作对象906中保持、关联和/或指定与遮蔽对象702相关联的任意投影指数的值,尽管场境动作对象906存在与不同的对象层中。以这种方式,场境动作对象906可以从其源遮蔽对象702承继可见和渲染性质。在其他方面,不需要这种更换或维护,使得例如装置渲染场境动作对象906,就像其为与遮蔽对象702无关地位于其当前层中的新对象。

在某些实施例中,装置310还可以在浮动动作对象902和处于下压状态608的对象下方的高度处创建、生成、显示和放置场境浮动动作对象904。在一些方面,场境浮动动作对象904可以承继来自源浮动动作对象902的性质,诸如,相同或类似的外观和/或与浮动动作对象902相关联的一个或多个投影指数。装置310可以使用符合所公开实施例的任意过程渲染场境浮动动作对象904。例如,场境浮动动作对象904可以出现、渐显、从显示器的一侧飞入、从基于浮动动作对象902的位置的中心点扩张(例如,如图9B和图9C所示)等。场境浮动动作对象904本身的性质还可以与浮动动作对象902的性质无关。例如,装置310可以渲染场境浮动动作对象904,使得其本身具有基于其本身的对象层的投影指数,且不是浮动动作对象902的投影指数。

在某些方面,并且如图9C的示例性环境所示,装置310可以修改被遮蔽对象702的外观。例如,装置310可以使遮蔽对象702临时地或永久地从情景消失。在某些实施例中,这种去除可以使用户自由想形象化和操纵处于下压状态608的对象。在一些实施例中,装置310还可以修改、去除、消除、渐隐、滑移、移动和/或减小浮动动作对象902的外观,并且类似地修改、增加、强调和/或改变场境浮动动作对象904的外观(例如,以表示其可以接收处于下压状态608的对象)。

在一些方面,如图9D所示,装置310可以修改(例如,减小、去除、改变其外观)浮动动作对象902,离开具有下压按钮608、场境浮动动作对象904(例如,含有与去除的浮动动作对象902相同的数据)和/或场境动作对象906(例如,含有与去除的遮蔽对象702相同的数据)的环境。以这种方式,装置310可以被配置成使用户、系统和其他过程自由地操纵对象、与对象交互或配合,而不考虑遮蔽、投影、高度值或其他渲染环境效果。

图9E示出了在示例性拖放过程900中的前述实施例的某些方面的流程图。在某些方面,过程900可以在实现一个或多个计算机系统或处理器(例如图2的计算机系统200)的客户端装置310中实现。

过程900可以包括生成多个对象层(步骤910)。例如,对象层可以表现在显示装置上渲染的虚拟环境内的离散的或连续的许用高度值。在一些方面,过程900还可以包括用符合所公开实施例的一个或多个对象(例如关于图8以及本文公开的其他实施例描述的)填充环境(步骤920)。

在某些实施例中,过程900可以包括检测用户已经下压拖拉对象(步骤930)。在一些方面,过程900可以确定用户已键入表示拖拉对象的选择或下压达输入某一阈值时间量(例如,一秒)。此外或可替换地,过程900可以确定拖拉对象已位于下压状态608达阈值时间量,或符合所公开的实施例的任何其他检测。在一方面,例如,过程900可以确定当前在装置上是否显示任何投放容器,并且如果这样,则确定投放容器的高度,从而确定是否需要进一步处理。而且,例如,当投放容器之一的高度高于拖拉对象的高度(例如,基于其相应对象层的高度)、投放容器之一完全被遮蔽,等时,可以需要进一步处理。

过程900可以包括确定处于下压状态的对象是否被另一对象遮蔽(例如,如关于图8的过程或本文的其他过程描述的)。当过程900确定处于下压状态608的对象被一个或多个其他对象(例如,遮蔽对象702)遮蔽时,过程900可以从显示器去除遮蔽对象702(步骤940)。这个去除过程可以采用符合所公开的实施例的任意形式,诸如,将遮蔽对象702滑动远离显示器、使其渐隐、改变其颜色或透明度、使其消失等(例如,如关于图9A至图9D描述的)。

在一些方面,当过程900确定一个或多个投放容器与具有比下压(拖拉)对象608的高度更大的高度的对象层相关联时,过程900可以渲染环境中的一个或多个新投放容器(例如,场境浮动动作对象904)(步骤950)。新投放容器可以位于(例如,指定)具有比下压拖拉对象608的高度更小的高度的对象层中(例如,如图9A至图9C所示)。在某些实施例中,新投放容器可以与位于下压的拖拉对象608上方的一个或多个投放容器(例如,浮动动作对象902)视觉上类似或相同。在一些实施例中,例如,新投放容器(例如,场境浮动动作对象904)可以被指定或承继更高投放容器(例如,浮动动作对象902)的一个或多个投影指数,尽管其位于更低的对象层。在一些方面,过程900还可以包括修改位于下压拖拉对象(例如,处于下压状态608)上方的一个或多个投放容器902的外观,包括将其从显示去除、改变其颜色或透明度、或符合所公开的实施例的任何其他修改。

过程900可以处理符合所公开的实施例的拖放动作(步骤960)。在一些方面,处理拖放动作可以包括检测反映显示器上的拖拉动作的用户输入并因此渲染环境(例如,响应于用户输入移动与屏幕上的拖拉对象相关联的对象和界面、随着拖拉对象遮蔽以及由其他对象遮蔽而更新投影指数,等)。例如,过程900可以检测用户在投放容器(例如,场境浮动动作对象904)上已拖拉处于下压状态608的对象、检测信令通知投放拖拉对象的输入(例如,对象不再处于下压状态),并且进行必要的处理以如在装置310上运行的应用和操作系统限定地进行对象向容器中的投放。

在另一实例中,过程900可以(例如,对于拖拉对象作为其中成员的每个遮蔽对)响应于检测和渲染拖放动作修改和/或更新拖拉对象的一个或多个投影指数。在一个实施例中,例如,过程900可以将拖拉对象的一个、几个或所有投影指数设为零、另一预定值或以其他方式限制可接受的投影指数的范围(例如,将这种指数限制为预定范围的值)。此外,过程900可以类似的方式修改投放容器(例如,浮动动作对象902、场境浮动动作对象904,等)、遮蔽对象702和/或场境动作对象906的一个或多个投影指数(例如,将这种对象作为其中成员的每个遮蔽对的投影指数设定为零或将这些值限制为预定极限或范围)。在一些方面,过程900可以从显示器去除临时的新投放容器904和/或场境动作对象906,并将这些对象恢复为其初始状态。例如,过程900可以将浮动动作对象902和遮蔽对象702返回到其初始对象层中,如图9A所示。

所公开的实施例还提供了用于操作、处理和渲染嵌套对象的方法和系统。例如,图10A至图10B示出了符合所公开的实施例的示例性窗口对象渲染环境1000。在某些方面,参考图10A至图10D描述的过程可以在实现一个或多个计算机系统或处理器(例如,图2的计算机系统200)的客户端装置310中实现。

在一些实施例中,环境1000可以包括含有观看对象1004A和1004B的窗口对象1002。在一些方面,观看对象1004A和1004B本身可以分别包括或含有嵌套观看对象1006A和1006B。在某些实施例中,含有观看对象1004A和1004B以及嵌套观看对象1006A和1006B的窗口对象1002可以包括符合所公开的实施例的任何交互对象(例如,应用窗口、视图、按钮等)。如图10A所示,装置310可以被配置成确定情景内的对象的高度并因此渲染环境(例如,如由存在的投影所表示的)。

在某些方面,装置310可以被配置成追踪在情境中渲染的对象的高度,以操作、处理并渲染彼此遮蔽的嵌套观看对象。在一些实施例中,装置310可以通过例如维持情景中的所有对象的高度、指定特定卷或类别(例如,应用窗口、应用卷,等)的某些对象的优先级、生成嵌套对象的承继特性等来执行这些步骤。例如,如图10B所示,装置310可以被配置成确定观看对象1004A具有大于观看窗口的高度值,并因此渲染这些对象(例如,在观看对象1004B及其嵌套观看对象1006B上方渲染观看对象1004A及其嵌套观看对象1006A)。

为了示意性的目的呈现出前文的描述。所公开的精确形式或实施例是非详尽的且不限于此。实施例的修改和适应将从说明书的考虑以及所公开实施例的时间中显而易见。例如,所描述的实现方式包括硬件和软件,但符合本公开的系统和方法可以仅实现为硬件。

基于所写的描述以及说明书中的方法的计算机程序在软件开发者的技术内。可以使用各种编程技术生成各种程序或程序模块。例如,可以在Java、C、C++、汇编语言或任意这种编程语言中或借助于这些设计程序段或程序模块。这种软件段或模块中的一个或多个可以集成在装置系统或现有的通信软件中。

此外,虽然本文描述的示意性实施例,但范围包括具有基于本公开的等价元件、修改、省略、组合(例如,各个实施例上的各方面的组合)、改编和/或更改的任意和全部实施例。权利要求中的元件基于权利要求中使用的语言而广义地理解,并且不限于本说明书中或在应用的过程期间描述的实例,该实例被认为是非独占的。而且,所公开的方法的步骤可以任意方式修改,包括重新排序步骤和/或插入或删除步骤。

本公开的特征和优点从详细描述中显而易见,并由此,所附的权利要求旨在覆盖落在本公开的真实实质和范围内的所有系统和方法。如本文使用的,不定冠词“一个(a)”和“一个(an)”在开放权利要求中表示“一个或多个”,其含有连词“包括”、“包含”和/或“具有”。而且,由于本领域技术人员将容易进行多种修改和变化,所以不期望将本公开限制为所示和所描述的精确结构和操作,并因此,可以采用落在本公开的范围内的所有合适的修改和等价物。

本领域技术人员从本文公开的描述的考虑及实施例的实践中将认识到其他实施例。描述和实例旨在被认为仅是示例性的,所公开的实施例的真实范围和实质由所附权利要求表示。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号