CN113412471A - 三维内容中的对象定位和移动 - Google Patents

三维内容中的对象定位和移动 Download PDF

Info

Publication number
CN113412471A
CN113412471A CN202080013118.1A CN202080013118A CN113412471A CN 113412471 A CN113412471 A CN 113412471A CN 202080013118 A CN202080013118 A CN 202080013118A CN 113412471 A CN113412471 A CN 113412471A
Authority
CN
China
Prior art keywords
display object
adjusting
input
display
implementations
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
CN202080013118.1A
Other languages
English (en)
Inventor
A·C·格梅尔
G·迪克斯内
N·玛索德
R·S·伯戈因
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.)
Apple Inc
Original Assignee
Apple Inc
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 Apple Inc filed Critical Apple Inc
Publication of CN113412471A publication Critical patent/CN113412471A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T19/00Manipulating 3D models or images for computer graphics
    • G06T19/20Editing of 3D images, e.g. changing shapes or colours, aligning objects or positioning parts
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/16Constructional details or arrangements
    • G06F1/1613Constructional details or arrangements for portable computers
    • G06F1/163Wearable computers, e.g. on a belt
    • 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/017Gesture based interaction, e.g. based on a set of recognized hand gestures
    • 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/0304Detection arrangements using opto-electronic means
    • 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
    • G06F3/04815Interaction 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/451Execution arrangements for user interfaces
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45504Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T19/00Manipulating 3D models or images for computer graphics
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2210/00Indexing scheme for image generation or computer graphics
    • G06T2210/21Collision detection, intersection
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2219/00Indexing scheme for manipulating 3D models or images for computer graphics
    • G06T2219/20Indexing scheme for editing of 3D models
    • G06T2219/2004Aligning objects, relative positioning of parts

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)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Computer Graphics (AREA)
  • Architecture (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

本文所公开的各种具体实施包括使得能够在3D布局中,例如在提供于设备上的增强现实(ER)设置中,更直观且有效地定位对象的设备、系统和方法。在一些具体实施中,基于在该对象的定位期间选择性地启用的模拟物理模型来自动定位对象。在一些具体实施中,对象基于模拟物理模型和对准规则自动定位。在一些具体实施中,对象基于标准自动分组在一起,使得与第二对象分组在一起的第一对象响应于该第二对象的移动而自动随该第二对象移动,但能够独立于该第二对象移动。

Description

三维内容中的对象定位和移动
技术领域
本公开整体涉及创建三维(3D)内容,并且具体地涉及用于将对象插入和定位到3D布局中的此类内容中的系统、方法和设备。
背景技术
创建3D内容可能非常耗时、非直观且困难。此类创建通常需要使用鼠标或其他基于计算机的输入设备来在精确位置并相对于其他3D对象费力地定位和旋转3D对象。
发明内容
本文所公开的各种具体实施包括使得能够在3D布局中更直观且有效地定位对象的设备、系统和方法。
在一些具体实施中,具有处理器的电子设备实现一种方法。该方法获得发起将显示对象定位在三维(3D)图形布局中的位置处的输入。在响应于所获得的输入定位显示对象之后,该方法使用至少一个模拟物理模型来调整显示对象的位置。例如,显示对象的位置可根据模拟重力和/或根据该显示对象与3D图形布局中的另一对象的碰撞而在3D图形布局中平移。在调整显示对象的位置之后,该方法禁用用于显示对象的至少一个模拟物理模型。
在一些具体实施中,具有处理器的电子设备通过选择性地使用物理模型来实现将对象定位在3D布局中的方法。该电子设备获得发起将对象定位在用户界面中显示的3D布局中的输入。例如,在提供于设备上的增强现实(ER)布景中,用户可选择虚拟桌子对象以添加到正在开发的应用程序的3D布局,伸出手虚拟握持桌子,并且从该位置释放、放下或投放桌子。
该电子设备在将对象定位在3D布局中期间启用该对象的模拟物理模型。在一些具体实施中,物理模型仅针对该对象启用,而不针对其他对象启用。在一些具体实施中,针对该对象和基于选择标准而选择的其他所选择对象启用物理模型,例如,以使得用户能够使用桌子来推送沙发,同时防止用户无意中将花瓶撞倒在地板上。
该电子设备基于发起定位的输入和模拟物理模型来将对象定位在3D布局中。在一个示例中,用户放下桌子,并且桌子将基于模拟的重力落到地板上的某个位置。在另一个示例中,用户推动椅子,并且当椅子碰到墙壁时,基于模拟椅子和墙壁之间的物理交互,椅子将停止移动。对象的移动可仅基于模拟物理模型或者基于模拟物理模型和附加移动影响因素,诸如导致对象移动到与另一对象对准的位置的对准标准。该电子设备基于确定对象的定位已结束,禁用对象和在定位过程期间针对其启用模拟物理模型的任何其他对象的模拟物理模型。例如,一旦已放置了对象,就可关闭针对该对象和相关对象的物理模型。
在一些具体实施中,具有处理器的电子设备实现基于模拟物理模型和对准标准将3D布局中的对象移动到某个位置的方法。该电子设备获得发起将对象定位在用户界面中显示的3D布局中的输入。例如,在提供于设备上的ER布景中,3D应用程序创建者或其他用户可选择椅子对象以添加到正在开发的应用程序的布局,并将椅子放在靠近桌子的位置上方。该电子设备发起对象沿移动路径朝向3D布局中的第一最终位置的移动。例如,第一最终位置可以在桌子一侧附近的地板上。基于模拟物理模型来确定第一最终位置。在对象开始移动到第一最终位置时,该设备基于将对象与基于第一最终位置识别的第二对象对准来确定该对象的第二最终位置。例如,当椅子开始朝向地板移动时,设备可以快速识别椅子将落在桌子附近,并且计算与桌子更好对准的椅子的不同最终位置。该电子设备基于第二最终位置改变对象在移动期间的移动路径。例如,可改变椅子的移动路径以将基于物理模型的定位与基于对准的定位融合。这可提供更平滑的移动,这对用户来讲没那么不协调或换句话讲没那么反感。
在一些具体实施中,具有处理器的电子设备实现一种基于标准在对象放置期间分组的方法,其中该分组将第一对象与第二对象相关联,使得该第一对象响应于该第二对象的移动而自动随第二对象移动,但其中该第一对象能够独立于该第二对象移动。该电子设备获得发起将对象定位在用户界面中显示的三维(3D)布局中的输入。例如,在提供于设备上的ER布景中,3D应用程序创建者或其他用户可选择花瓶对象以添加到正在开发的应用程序的布局,伸出手,并将花瓶释放或放落在桌子上方。该电子设备基于发起定位的输入来将对象定位在3D布局中,例如,基于基于模拟的重力模拟对象的下落来选择桌子上的位置。该电子设备使得能够基于标准例如接近度、表面类型、对象类型等对对象和第二对象进行分组。基于该分组,该对象响应于该第二对象的移动而自动随第二对象移动,但该对象能够独立于该第二对象移动。在花瓶/桌子示例中,当移动桌子时,花瓶移动,但花瓶可以独立于桌子移动。
根据一些具体实施中,非暂态计算机可读存储介质中存储有指令,所述指令是计算机可执行的以执行或使得执行本文所述的任何方法。根据一些具体实施,一种设备包括一个或多个处理器、非暂态存储器以及一个或多个程序;该一个或多个程序被存储在非暂态存储器中并且被配置为由一个或多个处理器执行,并且该一个或多个程序包括用于执行或使得执行本文所述方法中的任一种的指令。
附图说明
因此,本公开可被本领域的普通技术人员理解,更详细的描述可参考一些例示性具体实施的方面,其中一些具体实施在附图中示出。
图1是根据一些具体实施的示例性操作环境的框图。
图2是根据一些具体实施的示例性控制器的框图。
图3是根据一些具体实施的示例性设备的框图。
图4是根据一些具体实施的示出选择性地使用物理模型进行场景创建的示例性方法的流程图。
图5是根据一些具体实施的示出发起在ER布景中放置对象的用户动作的框图。
图6是根据一些具体实施的示出图5的对象在基于选择性使用物理模型而被定位在ER布景中之后的最终位置的框图。
图7是根据一些具体实施的示出根据模拟物理模型在于场景中放置对象期间移动该对象并与另一对象对准的示例性方法的流程图。
图8是示出发起在图5和图6的ER布景中放置第二对象的用户动作的框图。
图9是根据一些具体实施的示出图8的第二对象在基于物理模型和对准规则定位之后的最终位置的框图。
图10是根据一些具体实施的示出使得能够基于标准在对象放置期间分组的示例性方法的流程图。
图11是示出发起在图5和图6的ER布景中放置第二对象的用户动作的框图。
图12是根据一些具体实施的示出图11的第二对象在被定位并与另一对象分组在一起之后的最终位置的框图。
图13是示出当推动第一对象时图11和图12的第二对象与该第一对象一起移动的框图。
图14是示出当推动第二对象时图11至图13的第二对象独立于第一对象移动的框图。
根据通常的做法,附图中示出的各种特征部可能未按比例绘制。因此,为了清楚起见,可以任意地扩展或减小各种特征部的尺寸。另外,一些附图可能未描绘给定的系统、方法或设备的所有部件。最后,在整个说明书和附图中,类似的附图标号可用于表示类似的特征部。
具体实施方式
描述了许多细节以便提供对附图中所示的示例具体实施的透彻理解。然而,附图仅示出了本公开的一些示例方面,因此不应被视为限制。本领域的普通技术人员将会知道,其他有效方面或变体不包括本文所述的所有具体细节。此外,没有详尽地描述众所周知的系统、方法、部件、设备和电路,以免模糊本文所述的示例性具体实施的更多相关方面。
图1是根据一些具体实施的示例性操作环境100的框图。尽管示出了相关特征,但本领域的普通技术人员将从本公开中认识到,为简洁起见并且为了不模糊本文所公开的示例性具体实施的更多相关方面,未示出各种其他特征。为此,作为非限制性示例,操作环境100包括控制器110和设备120,该控制器和该设备中的一者或两者可处于物理布景105中。物理布景是指各个人可在不使用电子系统的情况下感测和/或交互的世界。物理布景诸如物理公园包括物理元素,诸如物理野生动物、物理树木和物理植物。人们可例如使用一种或多种感觉(包括视觉、嗅觉、触觉、味觉和听觉)直接感测物理布景和/或以其他方式与物理布景进行交互。
在一些具体实施中,控制器110被配置为管理和协调用户的增强现实(ER)体验。用户可以是ER体验的内容创建者或消费者。在一些具体实施中,控制器110包括软件、固件或硬件的合适组合。下文参考图2更详细地描述控制器110。在一些具体实施中,控制器110是相对于物理布景105处于本地或远程位置的计算设备。
在一个示例中,控制器110是位于物理布景105内的本地服务器。在另一示例中,控制器110是位于物理布景105之外的远程服务器(例如,云服务器、中央服务器等)。在一些具体实施中,控制器110经由一个或多个有线或无线通信信道144(例如,蓝牙、IEEE 802.11x、IEEE802.16x、IEEE 802.3x等)与设备120通信地耦接。
在一些具体实施中,设备120被配置为向用户呈现ER体验。在一些具体实施中,设备120包括软件、固件或硬件的合适组合。下文参考图3更详细地描述设备120。在一些具体实施中,控制器110的功能由设备120提供或与该设备结合。
根据一些具体实施,当用户出现在物理布景105内时,设备120向用户呈现增强现实(ER)体验。与物理布景相比,增强型现实(ER)布景是指各种人通过使用电子系统可感测和/或以其他方式与之交互的完全地(或部分地)计算机生成的布景。在ER中,部分地监视人的移动,并且响应于此,以与一个或多个物理定律一致的方式来改变与ER布景中的至少一个虚拟对象对应的至少一个属性。例如,响应于ER系统检测到人向上看,ER系统可以以与此类声音和外观会在物理布景中改变的方式一致的方式来调整呈现给人的各种音频和图形。也可例如响应于移动的表示(例如,语音命令)而进行对ER布景中的虚拟对象的属性的调整。
人可以利用一种或多种感觉,诸如视觉、嗅觉、味觉、触觉和听觉来感测ER对象和/或与ER对象交互。例如,人可感测创建多维或空间声学布景的对象和/或与其交互。多维或空间声学布景为个人提供了在多维空间中对离散声源的感知。此类对象还可实现声学透明性,该声学透明性可在具有或没有计算机生成的音频的情况下选择性地结合来自物理布景的音频。在某些ER布景中,人可仅感测音频对象和/或仅与其交互。
虚拟现实(VR)是ER的一个示例。VR布景是指被配置为仅包括针对一种或多种感觉的计算机生成的感官输入的增强布景。VR布景包括人可以感测和/或交互的多个虚拟对象。人可通过在计算机生成的布景内模拟人动作中的至少一些动作和/或通过模拟人或其在计算机生成的布景内的存在来感测VR布景中的虚拟对象和/或与其交互。
混合现实(MR)是ER的另一个示例。MR布景是指被配置为将计算机生成的感官输入(例如,虚拟对象)与来自物理布景的感官输入或来自物理布景的感官输入的表示进行集成的增强布景。在现实频谱上,MR布景介于一端处的完全物理布景和另一端处的VR布景之间并且不包括这些布景。
在一些MR布景中,计算机生成的感官输入可基于来自物理布景的感官输入的变化而被调整。另外,用于呈现MR布景的一些电子系统可以检测相对于物理布景的位置和/或取向,以实现真实对象(即来自物理布景的物理元素或其表示)与虚拟对象之间的交互。例如,系统可检测移动并相应地调整计算机生成的感官输入,使得例如虚拟树相对于物理结构看起来是固定的。
增强现实(AR)是MR的示例。AR布景是指一个或多个虚拟对象叠加在物理布景(或其表示)之上的增强布景。例如,电子系统可包括不透明显示器和用于捕获物理布景的视频和/或图像的一个或多个成像传感器。例如,此类视频和/或图像可以是物理布景的表示。视频和/或图像与虚拟对象组合,其中该组合随后被显示在不透明显示器上。物理布景可由人经由物理布景的图像和/或视频间接地查看。因此,人可观察叠加在物理布景上的虚拟对象。当系统捕获物理布景的图像并且使用所捕获的图像在不透明显示器上显示AR布景时,所显示的图像被称为视频透传。另选地,透明或半透明显示器可被包括在用于显示AR布景的电子系统中,使得个体可通过透明或半透明显示器直接查看物理布景。虚拟对象可被显示在半透明或透明显示器上,使得个体观察叠加在物理布景上的虚拟对象。在另一个示例中,可利用投影系统以便将虚拟对象投影到物理布景上。例如,虚拟对象可在物理表面上被投影,或作为全息图,使得个体观察叠加在物理布景之上的虚拟对象。
AR布景也可指其中物理布景的表示被计算机生成的感官数据修改的增强布景。例如,物理布景的表示的至少一部分能够以图形方式修改(例如,放大),使得所修改的部分仍可表示初始捕获的图像(但不是完全复制的版本)。另选地,在提供视频透传时,可修改一个或多个传感器图像,以便施加与由图像传感器捕获的视点不同的特定视点。再如,物理布景的表示的部分可通过以图形方式将该部分进行模糊处理或消除该部分而被改变。
增强虚拟(AV)是MR的另一个示例。AV布景是指虚拟的或计算机生成的布景结合来自物理布景的一个或多个感官输入的增强布景。此类感官输入可包括物理布景的一个或多个特征的表示。虚拟对象可例如结合与由成像传感器捕获的物理元素相关联的颜色。另选地,虚拟对象可采用与例如对应于物理布景的当前天气状况一致的特征,诸如经由成像识别的天气状况、在线天气信息和/或与天气相关的传感器。又如,AR公园可包括虚拟结构、植物和树木,尽管AR公园布景内的动物可包括从物理动物的图像准确复制的特征。
各种系统允许人们感测ER布景和/或与其交互。例如,头戴式系统可包括一个或多个扬声器和不透明显示器。又如,外部显示器(例如,智能电话)可结合到头戴式系统内。头戴式系统可包括用于捕获物理布景的音频的麦克风和/或用于捕获物理布景的图像/视频的图像传感器。头戴式系统中还可包括透明或半透明显示器。半透明或透明显示器可例如包括基板,(表示图像的)光通过该基板被引导到人的眼睛。显示器还可包含LED、OLED、硅基液晶、激光扫描光源、数字光投影仪或它们的任何组合。光透射穿过的基板可以是光学反射器、全息基板、光波导、光合路器或它们的任何组合。透明或半透明显示器可例如选择性地在透明/半透明状态和不透明状态之间转变。又如,电子系统可以是基于投影的系统。在基于投影的系统中,视网膜投影可用于将图像投影到人的视网膜上。另选地,基于投影的系统还可将虚拟对象投影到物理布景中,例如,诸如将虚拟对象投影为全息图或投影到物理表面上。ER系统的其他示例包括被配置为显示图形的窗口、头戴式耳机、耳机、扬声器布置、被配置为显示图形的透镜、平视显示器、被配置为显示图形的汽车挡风玻璃、输入机构(例如,具有或不具有触觉功能的控制器)、台式或膝上型计算机、平板电脑或智能电话。
图2是根据一些具体实施的控制器110的示例的框图。尽管示出了一些具体特征,但本领域的技术人员将从本公开中认识到,为简洁起见并且为了不模糊本文所公开的具体实施的更多相关方面,未示出各种其他特征。为此,作为非限制性示例,在一些具体实施中,控制器110包括一个或多个处理单元202(例如,微处理器、专用集成电路(ASIC)、现场可编程门阵列(FPGA)、图形处理单元(GPU)、中央处理单元(CPU)、处理核心等)、一个或多个输入/输出(I/O)设备206、一个或多个通信接口208(例如,通用串行总线(USB)、FIREWIRE、THUNDERBOLT、IEEE 802.3x、IEEE 802.11x、IEEE 802.16x、全球移动通信系统(GSM),码分多址(CDMA)、时分多址(TDMA)、全球定位系统(GPS)、红外(IR)、蓝牙、ZIGBEE或相似类型接口)、一个或多个编程(例如,I/O)接口210、存储器220以及用于互连这些部件和各种其他部件的一条或多条通信总线204。
在一些具体实施中,该一条或多条通信总线204包括互连系统部件和控制系统部件之间的通信的电路。在一些具体实施中,一个或多个I/O设备206包括键盘、鼠标、触控板、操纵杆、一个或多个麦克风、一个或多个扬声器、一个或多个图像传感器、一个或多个显示器等中的至少一种。
存储器220包括高速随机存取存储器,诸如动态随机存取存储器(DRAM)、静态随机存取存储器(SRAM)、双倍数据速率随机存取存储器(DDR RAM)或者其他随机存取固态存储器设备。在一些具体实施中,存储器220包括非易失性存储器,诸如一个或多个磁盘存储设备、光盘存储设备、闪存存储器设备或其他非易失性固态存储设备。存储器220任选地包括远离所述一个或多个处理单元202定位的一个或多个存储设备。存储器220包括非暂态计算机可读存储介质。在一些具体实施中,存储器220或者存储器220的非暂态计算机可读存储介质存储下述程序、模块和数据结构或者它们的子集,其中包括任选的操作系统230和ER体验模块240。
操作系统230包括用于处理各种基础系统服务和用于执行硬件相关任务的过程。在一些具体实施中,ER模块240被配置为创建、编辑或体验ER体验。3D内容创建单元242被配置为创建和编辑将用作一个或多个用户的ER体验的一部分的3D内容(例如,用于一个或多个用户的单个ER体验,或用于一个或多个用户的相应组的多个ER体验)。可由ER模块240提供内容创建ER体验以促成此类内容的创建。例如,用户可查看或以其他方式体验基于ER的用户界面,该基于ER的用户界面允许用户例如基于通过手势、语音命令、输入设备输入等提供输入来选择、放置、移动和以其他方式配置正在创建或编辑的3D内容中的虚拟对象。对象定位单元244被配置为使用本文所公开的定位技术(例如,使用模拟物理模型、对准规则、分组等)在此类3D内容创建或编辑体验期间促成对象的定位。虽然这些模块和单元被示出为驻留在单个设备(例如,控制器110)上,但应当理解,在其他具体实施中,这些模块和单元的任何组合可位于单独的计算设备中。
此外,图2更多地用作存在于特定具体实施中的各种特征部的功能描述,与本文所述的具体实施的结构示意图不同。如本领域的普通技术人员将认识到的,单独显示的项目可以组合,并且一些项目可以分开。例如,图2中单独示出的一些功能模块可以在单个模块中实现,并且单个功能块的各种功能可在各种具体实施中通过一个或多个功能块来实现。模块的实际数量和特定功能的划分以及如何在其中分配特征部将根据具体实施而变化,并且在一些具体实施中,部分地取决于为特定具体实施选择的硬件、软件或固件的特定组合。
图3是根据一些具体实施的设备120的示例的框图。尽管示出了一些具体特征,但本领域的技术人员将从本公开中认识到,为简洁起见并且为了不模糊本文所公开的具体实施的更多相关方面,未示出各种其他特征。为此,作为非限制性示例,在一些具体实施中,设备120包括一个或多个处理单元302(例如,微处理器、ASIC、FPGA、GPU、CPU、处理核心等)、一个或多个输入/输出(I/O)设备及传感器306、一个或多个通信接口308(例如,USB、FIREWIRE、THUNDERBOLT、IEEE 802.3x、IEEE802.11x、IEEE 802.16x、GSM、CDMA、TDMA、GPS、IR、BLUETOOTH、ZIGBEE、SPI、I2C或类似类型的接口)、一个或多个编程(例如,I/O)接口310、一个或多个显示器312、一个或多个面向内部或面向外部的图像传感器314、存储器320以及用于互连这些部件和各种其他部件的一条或多条通信总线304。
在一些具体实施中,一条或多条通信总线304包括互连和控制系统部件之间的通信的电路。在一些具体实施中,一个或多个I/O设备及传感器306包括惯性测量单元(IMU)、加速度计、磁力计、陀螺仪、温度计、一个或多个生理传感器(例如,血压监测仪、心率监测仪、血液氧传感器、血糖传感器等)、一个或多个传声器、一个或多个扬声器、触觉引擎或者一个或多个深度传感器(例如,结构光、飞行时间等)等。
在一些具体实施中,一个或多个显示器312被配置为向用户呈现ER体验。在一些具体实施中,一个或多个显示器312对应于全息、数字光处理(DLP)、液晶显示器(LCD)、硅上液晶(LCoS)、有机发光场效应晶体管(OLET)、有机发光二极管(OLED)、表面传导电子发射器显示器(SED)、场发射显示器(FED)、量子点发光二极管(QD-LED)、微机电系统(MEMS)或类似显示器类型。在一些具体实施中,一个或多个显示器312对应于衍射、反射、偏振、全息等波导显示器。例如,设备120包括单个显示器。又如,设备120包括针对用户的每只眼睛的显示器。
在一些具体实施中,所述一个或多个图像传感器系统314被配置为获取与包括用户的眼睛的用户的面部的至少一部分对应的图像数据。例如,该一个或多个图像传感器系统314包括一个或多个RGB相机(例如,具有互补金属氧化物半导体(CMOS)图像传感器或电荷耦合器件(CCD)图像传感器)、单色相机、IR相机、基于事件的相机等。在各种具体实施中,所述一个或多个图像传感器系统314还包括发射光在用户的面部的所述一部分上的照明源,诸如闪光灯或闪光源。
存储器320包括高速随机存取存储器,诸如DRAM、SRAM、DDR RAM或其他随机存取固态存储器设备。在一些具体实施中,存储器320包括非易失性存储器,诸如一个或多个磁盘存储设备、光盘存储设备、闪存存储器设备或其他非易失性固态存储设备。存储器320任选地包括远离所述一个或多个处理单元302定位的一个或多个存储设备。存储器320包括非暂态计算机可读存储介质。在一些具体实施中,存储器320或者存储器320的非暂态计算机可读存储介质存储下述程序、模块和数据结构或者它们的子集,其中包括可选的操作系统330和ER模块340。
操作系统330包括用于处理各种基础系统服务和用于执行硬件相关任务的过程。在一些具体实施中,ER模块340被配置为创建、编辑或体验ER体验。3D内容创建单元342被配置为创建和编辑将用作一个或多个用户的ER体验的一部分的3D内容(例如,用于一个或多个用户的单个ER体验,或用于一个或多个用户的相应组的多个ER体验)。可由ER模块340提供内容创建ER体验以促成此类内容的创建。例如,用户可查看或以其他方式体验基于ER的用户界面,该基于ER的用户界面允许用户例如基于通过手势、语音命令、输入设备输入等提供输入来选择、放置、移动和以其他方式配置正在创建或编辑的3D内容中的虚拟对象。对象定位单元344被配置为使用本文所公开的定位技术(例如,使用模拟物理模型、对准规则、分组等)在此类3D内容创建或编辑体验期间促成对象的定位。虽然这些模块和单元被示出为驻留在单个设备(例如,设备120)上,但应当理解,在其他具体实施中,这些模块和单元的任何组合可位于单独的计算设备中。
此外,图3更多地用作存在于特定具体实施中的各种特征部的功能描述,与本文所述的具体实施的结构示意图不同。如本领域的普通技术人员将认识到的,单独显示的项目可以组合,并且一些项目可以分开。例如,图3中单独示出的一些功能模块可以在单个模块中实现,并且单个功能块的各种功能可在各种具体实施中通过一个或多个功能块来实现。模块的实际数量和特定功能的划分以及如何在其中分配特征部将根据具体实施而变化,并且在一些具体实施中,部分地取决于为特定具体实施选择的硬件、软件或固件的特定组合。
在一些具体实施中,具有处理器的电子设备实现一种方法。该方法获得发起将显示对象定位在三维(3D)图形布局中的位置处的输入。在一个示例中,获得发起将显示对象定位在3D布局中的输入涉及使用可操作地耦接到电子设备的处理器的图像传感器来获得输入对象的3D移动,例如以检测用户的手势或身体姿势或输入设备的移动。
在响应于所获得的输入定位显示对象之后,该方法使用至少一个模拟物理模型来调整显示对象的位置。例如,显示对象的位置可根据模拟重力和/或根据该显示对象与3D图形布局中的另一对象的碰撞而在3D图形布局中平移。又如,调整显示对象的位置涉及确定显示对象和第二显示对象是否共享对象分类法中的共同分类,以及根据确定显示对象和第二显示对象共享共同分类,将显示对象和第二显示对象中的至少一者朝向彼此平移。又如,该方法识别3D图形布局中的平面,并且通过将显示对象移动到该平面上来调整显示对象的位置。
在调整显示对象的位置之后,该方法禁用用于显示对象的至少一个模拟物理模型。例如,显示对象可能不再经受基于模拟重力的移动,或者可能不再经受基于与用户、输入设备或其他显示对象的模拟碰撞的移动。
在一些具体实施中,将该显示对象与第二显示对象分组在一起。根据此类分组,第二显示对象响应于表示显示对象的移动的输入而与该显示对象一起移动,但该显示对象的位置响应于表示第二对象的移动的输入而保持。
图4是示出选择性地使用物理模型进行场景创建的示例性方法的流程图。在一些具体实施中,方法400由设备(例如,图1至图3的控制器100或设备120)执行。可在移动设备、头戴式设备(HMD)、台式计算机、膝上型计算机、服务器设备处或由彼此通信的多个设备执行方法400。在一些具体实施中,方法400由处理逻辑部件(包括硬件、固件、软件或其组合)执行。在一些具体实施中,方法400由执行存储在非暂态计算机可读介质(例如,存储器)中的代码的处理器执行。
在框402处,方法400获得发起将对象定位在用户界面中显示的三维(3D)布局中的输入。在一个示例中,3D应用程序创建器选择桌子对象以添加到正在开发的应用程序的布局,在虚拟握持桌子时向外拉伸,并且释放、放下或投放桌子以将桌子从其位置发送到期望位置。在一些具体实施中,对象(诸如该示例中的桌子)选自包括多个对象(例如,桌子、椅子、沙发、电器、设备、画作、按钮、用户界面控件等)的对象搁架。可通过识别3D输入设备的3D手势或3D移动(例如,用户使用六自由度输入设备移动桌子)来获得输入。输入可包括放下动作、投放动作、滑动动作或任何其他类型的基于用户的动作。
在框404处,方法400在将对象定位在3D布局中期间启用该对象的模拟物理模型。在一些具体实施中,模拟物理模型仅针对该对象启用,而不针对其他对象启用。在一些具体实施中,可使一些对象诸如地板、墙壁、天花板和其他不可移动对象启用物理模型,例如,以防止用户将椅子定位在墙壁的中间。在一些具体实施中,针对该对象和一些其他对象启用模拟物理模型。这些其他对象可基于考虑其他对象的类型、与其他对象的距离/对象的接近度、用户的移动或手势的速度、对象是墙壁还是其他不可移动对象、用户的偏好以及其他标准的选择标准来选择。可以自动地或手动地选择标准,使得用户能够例如使用书籍来推动其他书籍,但不会无意地碰倒一叠用户界面图标。针对其启用模拟物理模型的不可移动对象或其他对象可被加亮或以其他方式与其他对象进行图形区分。在一些具体实施中,图形指示器用于区分或识别正在定位的活动对象以及该活动对象可根据模拟物理模型与之进行交互的任何不可移动对象或其他对象。
在框406处,方法400基于发起定位的输入和模拟物理模型来将对象定位在3D布局中。例如,用户放下桌子,并且桌子基于重力落到地板上。在另一个示例中,用户推动椅子,并且椅子在碰到墙壁时停止移动。移动的确定可单独基于物理模型、基于物理模型和对准规则,或基于移动标准和规则的其他组合。
在框408处,方法400基于确定对象的定位已结束来禁用对象的模拟物理模型。例如,一旦已放置了对象,就关闭针对对象的物理模型。物理模型可在定位之后立即关闭、在预先确定的时间量之后关闭或基于用户输入或一些其他事件关闭。
图5和图6示出了基于选择性使用物理模型而定位的对象。图5是示出发起将对象525放置在ER布景505中的用户动作的框图。图5描绘了用户握持对象525(例如,虚拟桌子),打算放下桌子以将桌子定位在地板130上。图6是示出对象525在基于选择性使用物理模型而被定位在ER布景505中之后的最终位置的框图。具体地讲,对象525基于重力落到地板130上,并且在图6中被描绘为处于其最终位置。
图7是示出根据模拟物理模型在于场景中放置对象期间移动该对象并与另一对象对准的示例性方法的流程图。在一些具体实施中,方法700由设备(例如,图1至图3的控制器100或设备120)执行。可在移动设备、头戴式设备(HMD)、台式计算机、膝上型计算机、服务器设备处或由彼此通信的多个设备执行方法700。在一些具体实施中,方法700由处理逻辑部件(包括硬件、固件、软件或其组合)执行。在一些具体实施中,方法700由执行存储在非暂态计算机可读介质(例如,存储器)中的代码的处理器执行。
在框702处,方法700获得发起将对象定位在用户界面中显示的3D布局中的输入。获得此类输入可涉及与上文相对于框402所述类似的过程。
在框704处,方法700发起对象沿基于模拟物理模型的移动路径朝向3D布局中的第一最终位置的移动。例如,该移动可以是对象从虚拟空间中的位置落向地板上的最终位置。在此类示例中,方法700可检测到对象已被释放,然后基于对象的虚拟属性(例如,质量、当前速度方向、当前速度大小等)和其他属性(例如,地球的质量)来确定该对象的模拟下落。重力和其他基于物理模型的移动的建模可基于不同复杂度和准确度的物理公式、模型和系统。例如,方法700可在考虑或不考虑空气阻力的情况下基于重力,基于模拟真实重力的模拟加速度,或基于不同于真实重力的模拟加速度来对下落进行建模,以促进更有效的计算等。
基于模拟物理模型而发起的移动通常将朝向(经由直线、弧线等)最终位置,但在发起移动时不需要明确地确定该最终位置。此类最终位置可以但不必基于确定对象将搁置在某个位置(例如,搁置在桌子上、地板上、抵靠墙壁、抵靠另一个对象、由绳或来自上方的其他对象悬挂等)而在移动期间的初始时间或稍后时间点处确定。
在框706处,方法700基于将该对象与第二对象对准来确定该对象的第二最终位置。基于第一最终位置来识别第二对象,例如,识别出最终位置位于与第二对象相关联的边界框内。对第二最终位置的确定可在该对象已被移动到第一最终位置之前发生。例如,当对象开始朝向第一最终位置移动时,方法700可计算不同的最终位置以与该第一最终位置附近的另一对象对准。对象的对准可涉及平移或旋转该对象,例如,在6个自由度上移动。作为具体示例,当椅子基于重力开始朝向与桌子相邻的地板上的位置移动时,方法700识别出椅子将落在桌子附近并且改变椅子的最终位置(中心坐标和在6个自由度上的取向)以与桌子对准。在一些具体实施中,确定第二最终位置包括确定与第一对象相关联的方向矢量(例如,前向矢量)和与第二对象相关联的对准规则,以及基于该方向矢量和对准规则将该对象与第二对象对准。椅子/桌子示例中的这种对准规则可以指定椅子的中心应与桌子的侧边、中心或其他特征部相距X,并且椅子应面向桌子的侧边、中心或其他特征部。
对象的对准规则可涉及一个或多个边界框,该一个或多个边界框指定位于边界框内的对象(例如,特定类型的对象)的对准。例如,四边形桌子的对准规则可以指定位于与桌子的第一侧边相关联的第一边界框内的椅子基于第一组对准规则而定位,位于与桌子的第二侧边相关联的第二边界框内的椅子基于第二组对准规则而定位,位于与桌子的第三侧边相关联的第三边界框内的椅子基于第三组对准规则而定位,并且位于与桌子的第四侧边相关联的第四边界框内的椅子基于第四组对准规则而定位。对准规则可被保存为对象的元数据。例如,桌子的元数据可指定相对于某些边界框放置的对象应如何与桌子对准。
多个对准规则可适用于对象在特定情况下的定位。例如,椅子的定位可以基于地板对准规则(指定椅子的腿将抵靠地板)和桌子对准规则(指定椅子朝向桌子的取向或距桌子的指定距离)。方法700可被配置为基于对准规则优先级考虑冲突的对准规则,例如,指定地板的对准规则比桌子的对准规则具有更高的优先级。在一些具体实施中,方法700尝试遵守对准规则,只要这样做将不违反物理约束(例如,不将椅子定位在墙壁或其他不可移动对象内)或更高优先级的对准规则。在一些具体实施中,方法700确定尽可能接近地满足对准规则的对准(例如,将椅子移离桌子0.2英尺而非移离桌子0.5英尺),同时避免与另一个约束或更高优先级的对准规则(例如,使椅子紧靠墙壁但不进入墙壁中)发生冲突。
在框708处,方法700基于第二最终位置改变对象在移动期间的移动路径。对象的移动路径改变以将基于物理模型的定位与基于对准的定位融合或以其他方式调整。该融合可通过避免或减少在基于模拟物理模型的移动结束时的任何抖动或突然对准/移动来改善用户体验,例如,在对象移动时而不是在移动的最后一帧之中或之后改变该对象的取向。继续上述椅子/桌子示例,当椅子横向平移以与桌子相邻并且当椅子旋转以面向桌子的中心时,椅子可基于模拟重力向下落向地板。在一些具体实施中,移动路径通过顺序地显示给用户的多个帧来描绘,并且改变移动路径涉及沿着在多个帧处的移动路径改变对象的位置。
图8和图9示出了根据模拟物理模型在放置对象期间移动对象并且与另一对象对准。图8是示出发起放置第二对象810的用户动作的框图。在该示例中,用户120向外拖动第二对象810(例如,虚拟椅子)使之靠近对象525(例如,虚拟桌子)保持在地板130上方并且释放第二对象810。用户120期望第二对象810在与对象525相邻的位置处落到地板130上。图9是示出图8的第二对象810在基于物理模型和对准规则定位之后的最终位置的框图。具体地讲,第二对象810最初竖直下落,但在下落期间改变了移动路径(例如,向右平移并旋转)以搁置在与对象525相邻的对准位置。因此,第二对象810基于模拟物理模型和桌子的对准规则两者同时移动。
图10是示出基于标准实现在场景中放置对象期间的分组的示例性方法1000的流程图。在一些具体实施中,方法1000由设备(例如,图1至图3的控制器100或设备120)执行。可在移动设备、头戴式设备(HMD)、台式计算机、膝上型计算机、服务器设备处或由彼此通信的多个设备执行方法1000。在一些具体实施中,方法1000由处理逻辑部件(包括硬件、固件、软件或其组合)执行。在一些具体实施中,方法1000由执行存储在非暂态计算机可读介质(例如,存储器)中的代码的处理器执行。
在框1002处,方法1000获得发起将对象定位在用户界面中显示的三维(3D)布局中的输入。获得此类输入可涉及与上文相对于框402所述类似的过程。在框1004处,方法1000基于发起定位的输入来将对象定位在3D布局中。在一些具体实施中,对象保持在用户将其定位的位置处。在其他具体实施中,例如,对象基于基于模拟物理模型的移动或对准规则移动到某个位置。
在框1006处,方法1000基于标准实现对该对象和第二对象的分组,其中对象响应于第二对象的移动而自动随第二对象移动,但该对象能够独立于第二对象移动。该标准可基于接近度,例如,如果对象在彼此的预定距离内,则对象被自动分组。该标准可基于对象类型,例如,当另一对象是桌子类型的对象时,对象基于与该另一对象顶部的接近度被自动分组。该标准可基于表面类型,例如,对象基于第二对象为桌子、托盘等被自动分组。该标准可基于表面属性,例如,对象基于第二对象是平坦的、大致水平的等而被自动分组。在一些具体实施中,基于确定该对象位于与第二对象相关联的边界框内,确定该对象与第二对象的特定表面接触,或者基于确定该对象已基于对准规则相对于第二对象自动定位来实现分组。
在一些具体实施中,基于确定对象不再满足标准来对对象自动解除分组。例如,如果将花瓶分组在托盘的顶部上,则可基于检测到花瓶不再位于托盘顶部表面上(例如,当用户拿起花瓶并将其移动到另一表面的顶部上的位置时)来对对象自动解除分组。
图11至图14示出了基于标准实现在场景中放置对象期间的分组。图11是示出发起在图5和图6的ER布景中放置第二对象1110的用户动作的框图。在该示例中,用户120向外拿出第二对象1110(例如,虚拟书籍)使之保持在对象525(例如,虚拟桌子)上方并且释放第二对象1110。用户120期望第二对象1110落下并搁置在对象525的顶部上。第二对象如预期的那样移动,并且自动与对象525分组在一起。图12是示出第二对象1110在对象525上被定位和分组之后的最终位置的框图。图13为示出当推动对象525时第二对象1110如何与对象525一起移动,即当移动对象525时,对象525、对象1110如何一起移动的框图。此外,不管桌子525的移动或旋转的速度如何,对象1110都与桌子525一起移动,在此类移动之前、期间和之后保持在与桌子525相同的相对位置。这可能与基于模拟物理模型的移动不同,在后者中摩擦可能使得对象1110在桌子的缓慢水平移动期间与桌子一起移动,但可能使得对象1110在更快的移动或倾斜/旋转桌子的移动期间掉落或滑落。图14为示出当推动第二对象1110时第二对象1110如何独立于对象525移动,即第二对象1110移动而对象525不移动的框图。
本文所公开的各种具体实施提供了用于定位直观且易于使用的对象的技术。当对象基于模拟物理模型移动时,此类移动对于习惯于根据现实世界物理模型与3D对象进行交互的用户而言通常是自然的。根据本文的一些具体实施的选择性地使用此类模拟物理模型来选择性地打开和关闭针对一个或多个特定对象的此类物理模型可改善用户体验。如果仅针对所选择的对象启用模拟物理模型,则用户可更容易地避免无意的对象交互,因为未针对其启用模拟物理模型的对象无法无意地移动、翻倒、损坏等。
将基于物理模型的移动与基于对准规则的移动相结合也可改善用户体验。利用此类对象移动,用户通常可避免必须花费时间令人乏味地对准或定位对象。在3D开发环境中开发3D应用程序和其他内容的背景下的自动精确放置可节省用户的大量时间。使用户能够容易地朝向预期位置放下、推动或投放对象。在这样做之后,用户查看/体验移动到适当对准位置的对象,而不必需要采取进一步的动作。用户的交互可以是最少的,例如,需要用户仅大致定位对象,以实现期望的对象位置。
此外,通过基于标准实现分组来直观且容易地对对象分组以用于组合移动(例如,其中分组将第一对象与第二对象相关联,使得第一对象响应于第二对象的移动而自动随第二对象移动,但其中第一对象能够独立于第二对象移动)也可改善用户体验。对象可被自动分组,然后直观地移动,而无需用户费力地识别对象组,指定此类组中的对象的移动参数,并且稍后对此类对象解除分组。相反,对象可在适当的情况下自动分组在一起,例如基于分组标准,这些分组标准模拟或以其他方式类似于对象在现实世界中如何交互、如何按照用户自然期望的那样移动,并且在情况不再适当时自动解除分组。
本文所公开的技术适用于多种不同的上下文。在一些具体实施中,这些技术用于创建或编辑将被包括在基于ER的游戏、应用程序、视频或用户界面中的3D内容。在一些具体实施中,这些技术用于将对象放置在ER布景中的房间或其他室内环境中。在其他具体实施中,这些技术用于将对象放置在ER布景中的虚拟户外世界中,该虚拟户外世界包括例如树木、草、建筑结构。在一些具体实施中,这些技术用于创建彼此对准的有序对象。在其他具体实施中,所述技术用于创建随机或无序关系,例如,通过允许用户根据模拟物理模型放下一桶掉落和散开的对象。
本文所公开的技术适用于刚体对象和软体对象,并且可用于流体、多部分对象、包含肌肉系统部件的对象以及包含骨骼系统部件的对象。对象内的部件可基于应用于对象并位于对象内的模拟物理模型而移动。在一些具体实施中,对象具有用于确定对象的移动的权重分配或其他虚拟特性。在一些具体实施中,对象可基于基于对象的组成或其他特性的模拟物理模型以及弯曲、粉碎或破裂规则而弯曲、粉碎或破裂。
本文定义的各种过程考虑了获取和利用用户的个人信息的选项。例如,可利用此类个人信息以便在电子设备上提供改进的隐私屏幕。然而,在收集此类个人信息的程度上,此类信息应在用户知情同意的情况下获取。如本文所描述的,用户应了解和控制其个人信息的使用。
个人信息将由适当方仅用于合法和合理的目的。利用此类信息的各方将遵守至少符合适当法律法规的隐私政策和惯例。此外,此类政策应是完善的、用户可访问的,并且被认为符合或高于政府/行业标准。此外,除任何合理和合法的目的外,各方不得分发、出售或以其他方式分享此类信息。
然而,用户可限制各方能访问或以其他方式获取个人信息的程度。例如,可调整设置或其他偏好,使得用户可决定其个人信息是否可由各种实体访问。此外,虽然在使用个人信息的上下文中描述了本文所定义的一些特征,但可在不需要使用此类信息的情况下实现这些特征的各方面。例如,如果收集到用户偏好、账户名称和/或位置历史,则该信息可被模糊化或以其他方式一般化,使得该信息不会识别相应用户。
本文阐述了许多具体细节以提供对要求保护的主题的全面理解。然而,本领域的技术人员将理解,可以在没有这些具体细节的情况下实践要求保护的主题。在其他实例中,没有详细地介绍普通技术人员已知的方法、设备或系统,以便不使要求保护的主题晦涩难懂。
除非另外特别说明,否则应当理解,在整个说明书中,利用诸如“处理”、“计算”、“计算出”、“确定”和“识别”等术语的论述是指计算设备的动作或过程,诸如一个或多个计算机或类似的电子计算设备,其操纵或转换表示为计算平台的存储器、寄存器或其他信息存储设备、传输设备或显示设备内的物理电子量或磁量的数据。
本文论述的一个或多个系统不限于任何特定的硬件架构或配置。计算设备可以包括部件的提供以一个或多个输入为条件的结果的任何合适的布置。合适的计算设备包括基于多用途微处理器的计算机系统,其访问存储的软件,该软件将计算系统从通用计算设备编程或配置为实现本发明主题的一种或多种具体实施的专用计算设备。可以使用任何合适的编程、脚本或其他类型的语言或语言的组合来在用于编程或配置计算设备的软件中实现本文包含的教导内容。
本文所公开的方法的具体实施可以在这样的计算设备的操作中执行。上述示例中呈现的框的顺序可以变化,例如,可以将框重新排序、组合或者分成子框。某些框或过程可以并行执行。
本文中“适用于”或“被配置为”的使用意味着开放和包容性的语言,其不排除适用于或被配置为执行额外任务或步骤的设备。另外,“基于”的使用意味着开放和包容性,因为“基于”一个或多个所述条件或值的过程、步骤、计算或其他动作在实践中可以基于额外条件或超出所述的值。本文包括的标题、列表和编号仅是为了便于解释而并非旨在为限制性的。
还将理解的是,虽然术语“第一”、“第二”等可能在本文中用于描述各种对象,但是这些对象不应当被这些术语限定。这些术语只是用于将一个对象与另一对象区分开。例如,第一节点可以被称为第二节点,并且类似地,第二节点可以被称为第一节点,其改变描述的含义,只要所有出现的“第一节点”被一致地重命名并且所有出现的“第二节点”被一致地重命名。第一节点和第二节点都是节点,但它们不是同一个节点。
本文中所使用的术语仅仅是为了描述特定具体实施并非旨在对权利要求进行限制。如在本具体实施的描述和所附权利要求中所使用的那样,单数形式的“一个”和“该”旨在也涵盖复数形式,除非上下文清楚地另有指示。还将理解的是,本文中所使用的术语“或”是指并且涵盖相关联的所列出的项目中的一个或多个项目的任何和全部可能的组合。还将理解的是,术语“包括”或“包含”在本说明书中使用时指定存在所陈述的特征、整数、步骤、操作、对象或部件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、对象、部件或其分组。
如本文所使用的,术语“如果”可以被解释为表示“当所述先决条件为真时”或“在所述先决条件为真时”或“响应于确定”或“根据确定”或“响应于检测到”所述先决条件为真,具体取决于上下文。类似地,短语“如果确定[所述先决条件为真]”或“如果[所述先决条件为真]”或“当[所述先决条件为真]时”被解释为表示“在确定所述先决条件为真时”或“响应于确定”或“根据确定”所述先决条件为真或“当检测到所述先决条件为真时”或“响应于检测到”所述先决条件为真,具体取决于上下文。
本发明的前述具体实施方式和发明内容应被理解为在每个方面都是例示性和示例性的,而非限制性的,并且本文所公开的本发明的范围不仅由例示性具体实施的详细描述来确定,而是根据专利法允许的全部广度。应当理解,本文所示和所述的具体实施仅是对本发明原理的说明,并且本领域的技术人员可以在不脱离本发明的范围和实质的情况下实现各种修改。

Claims (21)

1.一种方法,所述方法包括:
在具有处理器的电子设备处:
获得发起将显示对象定位在三维(3D)图形布局中的位置处的输入;
在响应于所获得的输入定位所述显示对象之后,使用至少一个模拟物理模型来调整所述显示对象的所述位置;和
在调整所述显示对象的所述位置之后,禁用用于所述显示对象的所述至少一个模拟物理模型。
2.根据权利要求1所述的方法,其中所述获得发起将所述显示对象定位在所述3D布局中的所述输入包括使用可操作地耦接到所述电子设备的所述处理器的图像传感器来获得输入对象的3D移动。
3.根据权利要求1至2中任一项所述的方法,其中调整所述显示对象的所述位置包括根据模拟的重力在所述3D图形布局中平移。
4.根据权利要求1至3中任一项所述的方法,其中调整所述显示对象的所述位置包括根据所述显示对象与所述3D图形布局中的另一对象的碰撞来平移所述显示对象。
5.根据权利要求1所述的方法,其中调整所述显示对象的所述位置包括:
确定所述显示对象和第二显示对象是否共享对象分类法中的共同分类,以及根据确定所述显示对象和所述第二显示对象共享共同分类,将所述显示对象和所述第二显示对象中的至少一者朝向彼此平移。
6.根据权利要求1至5中任一项所述的方法,所述方法还包括:
识别所述3D图形布局中的平面,并且其中使用至少一个模拟物理模型来调整所述显示对象的所述位置包括将所述显示对象移动到所述平面上。
7.根据权利要求1至6中任一项所述的方法,所述方法还包括:将所述显示对象和第二显示对象分组,其中将所述显示对象和所述第二显示对象分组包括:
响应于表示所述显示对象的移动的输入,将所述第二显示对象与所述显示对象一起移动;和
响应于表示所述第二对象的移动的输入,保持所述显示对象的所述位置。
8.一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储能够在设备上执行以执行操作的指令,所述操作包括:
获得发起将显示对象定位在三维(3D)图形布局中的位置处的输入;
在响应于所获得的输入定位所述显示对象之后,使用至少一个模拟物理模型来调整所述显示对象的所述位置;和
在调整所述显示对象的所述位置之后,禁用用于所述显示对象的所述至少一个模拟物理模型。
9.根据权利要求8所述的非暂态计算机可读存储介质,其中所述获得发起将所述显示对象定位在所述3D布局中的所述输入包括使用可操作地耦接到所述电子设备的所述处理器的图像传感器来获得输入对象的3D移动。
10.根据权利要求8至9中任一项所述的非暂态计算机可读存储介质,其中调整所述显示对象的所述位置包括根据模拟的重力在所述3D图形布局中平移。
11.根据权利要求8至10中任一项所述的非暂态计算机可读存储介质,其中调整所述显示对象的所述位置包括根据所述显示对象与所述3D图形布局中的另一对象的碰撞来平移所述显示对象。
12.根据权利要求8所述的非暂态计算机可读存储介质,其中调整所述显示对象的所述位置包括:
确定所述显示对象和第二显示对象是否共享对象分类法中的共同分类,以及根据确定所述显示对象和所述第二显示对象共享共同分类,将所述显示对象和所述第二显示对象中的至少一者朝向彼此平移。
13.根据权利要求8至12所述的非暂态计算机可读存储介质,其中所述操作还包括:
识别所述3D图形布局中的平面,并且其中使用至少一个模拟物理模型来调整所述显示对象的所述位置包括将所述显示对象移动到所述平面上。
14.根据权利要求8至13中任一项所述的非暂态计算机可读存储介质,其中所述操作还包括:将所述显示对象和第二显示对象分组,其中将所述显示对象和所述第二显示对象分组包括:
响应于表示所述显示对象的移动的输入,将所述第二显示对象与所述显示对象一起移动;和
响应于表示所述第二对象的移动的输入,保持所述显示对象的所述位置。
15.一种系统,所述系统包括:
非暂态计算机可读存储介质;和
一个或多个处理器,所述一个或多个处理器耦接到所述非暂态计算机可读存储介质,其中所述非暂态计算机可读存储介质包括程序指令,所述程序指令在所述一个或多个处理器上执行时,使所述系统执行包括以下操作的操作:
获得发起将显示对象定位在三维(3D)图形布局中的位置处的输入;
在响应于所获得的输入定位所述显示对象之后,使用至少一个模拟物理模型来调整所述显示对象的所述位置;和
在调整所述显示对象的所述位置之后,禁用用于所述显示对象的所述至少一个模拟物理模型。
16.根据权利要求15所述的系统,其中所述获得发起将所述显示对象定位在所述3D布局中的所述输入包括使用可操作地耦接到所述电子设备的所述处理器的图像传感器来获得输入对象的3D移动。
17.根据权利要求15至16中任一项所述的系统,其中调整所述显示对象的所述位置包括根据模拟的重力在所述3D图形布局中平移。
18.根据权利要求15至17中任一项所述的系统,其中调整所述显示对象的所述位置包括根据所述显示对象与所述3D图形布局中的另一对象的碰撞来平移所述显示对象。
19.根据权利要求15所述的系统,其中调整所述显示对象的所述位置包括:
确定所述显示对象和第二显示对象是否共享对象分类法中的共同分类,以及根据确定所述显示对象和所述第二显示对象共享共同分类,将所述显示对象和所述第二显示对象中的至少一者朝向彼此平移。
20.根据权利要求15至19中任一项所述的系统,其中所述操作还包括:
识别所述3D图形布局中的平面,并且其中使用至少一个模拟物理模型来调整所述显示对象的所述位置包括将所述显示对象移动到所述平面上。
21.根据权利要求15至20中任一项所述的系统,其中所述操作还包括将所述显示对象和第二显示对象分组,其中将所述显示对象和所述第二显示对象分组包括:
响应于表示所述显示对象的移动的输入,将所述第二显示对象与所述显示对象一起移动;和
响应于表示所述第二对象的移动的输入,保持所述显示对象的所述位置。
CN202080013118.1A 2019-02-08 2020-02-06 三维内容中的对象定位和移动 Pending CN113412471A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201962802978P 2019-02-08 2019-02-08
US62/802,978 2019-02-08
PCT/US2020/016914 WO2020163549A1 (en) 2019-02-08 2020-02-06 Object positioning and movement in three dimensional content

Publications (1)

Publication Number Publication Date
CN113412471A true CN113412471A (zh) 2021-09-17

Family

ID=69780308

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202080013118.1A Pending CN113412471A (zh) 2019-02-08 2020-02-06 三维内容中的对象定位和移动

Country Status (5)

Country Link
US (1) US20210365107A1 (zh)
KR (1) KR20210111821A (zh)
CN (1) CN113412471A (zh)
DE (1) DE112020000725T5 (zh)
WO (1) WO2020163549A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114529705A (zh) * 2022-04-22 2022-05-24 山东捷瑞数字科技股份有限公司 一种三维引擎编辑器的界面布局处理方法

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11657588B2 (en) 2020-10-16 2023-05-23 Adobe Inc. Physics based manipulation
US11943565B2 (en) * 2021-07-12 2024-03-26 Milestone Systems A/S Computer implemented method and apparatus for operating a video management system

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130286004A1 (en) * 2012-04-27 2013-10-31 Daniel J. McCulloch Displaying a collision between real and virtual objects
WO2017052880A1 (en) * 2015-09-25 2017-03-30 Intel Corporation Augmented reality with off-screen motion sensing
CN107393019A (zh) * 2017-07-31 2017-11-24 天堃众联科技(深圳)有限公司 一种基于粒子的布料模拟方法与装置
US20180060948A1 (en) * 2016-08-24 2018-03-01 Wal-Mart Stores, Inc. Apparatus and method for providing a virtual shopping environment
US20180189974A1 (en) * 2017-05-19 2018-07-05 Taylor Clark Machine learning based model localization system

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
IL303843B1 (en) * 2016-08-11 2024-02-01 Magic Leap Inc Automatic positioning of a virtual object in three-dimensional space
WO2018207662A1 (ja) * 2017-05-11 2018-11-15 ソニー株式会社 情報処理装置、情報処理方法、及びプログラム

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130286004A1 (en) * 2012-04-27 2013-10-31 Daniel J. McCulloch Displaying a collision between real and virtual objects
WO2017052880A1 (en) * 2015-09-25 2017-03-30 Intel Corporation Augmented reality with off-screen motion sensing
US20180060948A1 (en) * 2016-08-24 2018-03-01 Wal-Mart Stores, Inc. Apparatus and method for providing a virtual shopping environment
US20180189974A1 (en) * 2017-05-19 2018-07-05 Taylor Clark Machine learning based model localization system
CN107393019A (zh) * 2017-07-31 2017-11-24 天堃众联科技(深圳)有限公司 一种基于粒子的布料模拟方法与装置

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114529705A (zh) * 2022-04-22 2022-05-24 山东捷瑞数字科技股份有限公司 一种三维引擎编辑器的界面布局处理方法
CN114529705B (zh) * 2022-04-22 2022-07-19 山东捷瑞数字科技股份有限公司 一种三维引擎编辑器的界面布局处理方法

Also Published As

Publication number Publication date
DE112020000725T5 (de) 2022-01-05
KR20210111821A (ko) 2021-09-13
US20210365107A1 (en) 2021-11-25
WO2020163549A1 (en) 2020-08-13

Similar Documents

Publication Publication Date Title
US11348316B2 (en) Location-based virtual element modality in three-dimensional content
US20210365107A1 (en) Object positioning and movement in three dimensional content
US11836282B2 (en) Method and device for surfacing physical environment interactions during simulated reality sessions
CN112074800B (zh) 用于在沉浸水平之间切换的技术
US20220269338A1 (en) Augmented devices
US11867917B2 (en) Small field of view display mitigation using virtual object display characteristics
US20220326837A1 (en) Methods for providing an immersive experience in an environment
US20240054734A1 (en) Method and device for presenting an audio and synthesized reality experience
WO2019143933A1 (en) Configuring objective-effectuators for synthesized reality settings
KR102632448B1 (ko) 계산 효율적인 모델 선택
CN113574849A (zh) 用于后续对象检测的对象扫描
CN113678173A (zh) 用于虚拟对象的基于图绘的放置的方法和设备
WO2020068740A1 (en) Model with multiple concurrent timescales
CN117480472A (zh) 用于在环境中提供沉浸式体验的方法
WO2021231128A1 (en) Spatial video capture and replay
WO2021242551A1 (en) Communication sessions using object information

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