CN112020731A - 3d模型的多设备编辑 - Google Patents

3d模型的多设备编辑 Download PDF

Info

Publication number
CN112020731A
CN112020731A CN201980027675.6A CN201980027675A CN112020731A CN 112020731 A CN112020731 A CN 112020731A CN 201980027675 A CN201980027675 A CN 201980027675A CN 112020731 A CN112020731 A CN 112020731A
Authority
CN
China
Prior art keywords
model
view
viewpoint
providing
readable storage
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
CN201980027675.6A
Other languages
English (en)
Inventor
N·N·王
B·B·洛金斯
R·R·德克斯特
T·L·卡塞拉
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 CN112020731A publication Critical patent/CN112020731A/zh
Pending legal-status Critical Current

Links

Images

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/14Digital output to display device ; Cooperation and interconnection of the display device with other functional units
    • G06F3/1454Digital output to display device ; Cooperation and interconnection of the display device with other functional units involving copying of the display data of a local workstation or window to a remote workstation or window so that an actual copy of the data is displayed simultaneously on two or more displays, e.g. teledisplay
    • 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
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/33Intelligent editors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/34Graphical or visual programming
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/35Creation or generation of source code model driven
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T17/00Three dimensional [3D] modelling, e.g. data description of 3D objects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T19/00Manipulating 3D models or images for computer graphics
    • G06T19/006Mixed reality
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N13/00Stereoscopic video systems; Multi-view video systems; Details thereof
    • H04N13/20Image signal generators
    • H04N13/275Image signal generators from 3D object models, e.g. computer-generated stereoscopic image signals
    • 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/0484Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
    • G06F3/04842Selection of displayed objects or displayed text elements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2200/00Indexing scheme for image data processing or generation, in general
    • G06T2200/24Indexing scheme for image data processing or generation, in general involving graphical user interfaces [GUIs]
    • 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/024Multi-user, collaborative environment
    • 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/028Multiple view windows (top-side-front-sagittal-orthogonal)
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/1066Session management
    • H04L65/1069Session establishment or de-establishment

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Graphics (AREA)
  • Computer Hardware Design (AREA)
  • Architecture (AREA)
  • Human Computer Interaction (AREA)
  • Geometry (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • User Interface Of Digital Computer (AREA)
  • Processing Or Creating Images (AREA)

Abstract

本文所公开的各种具体实施包括使两个或更多个设备能够在相同或不同布景/查看模式中(例如,以单视场方式、以立体方式、在SR中等)同时查看或编辑相同3D模型的设备、***和方法。在一个示例中,一个或多个用户能够使用不同设备在相同布景中交互以使用来自不同视点的不同视图来查看或编辑相同3D模型。所述设备可各自从相同3D模型的不同视点显示不同视图,并且当对该3D模型作出变化时,保持所述设备上的所述视图的一致性。

Description

3D模型的多设备编辑
技术领域
本公开总体涉及三维(3D)模型,并且具体地涉及使用多个设备来查看、创建和编辑3D模型的***、方法和设备。
背景技术
计算设备使用三维(3D)模型来表示现实世界或虚拟3D对象和场景的表面或体积。例如,3D模型可使用3D空间中的点集合来表示对象,这些点由限定该模型中的表面外观的各种几何实体诸如三角形、线或曲面和纹理映射连接。一些软件开发布景(包括一些集成开发布景(IDE))促进包括3D模型的项目的创建。然而,这些软件开发布景无法提供足以使3D模型可视化的工具。软件开发布景通常从3D模型的默认或用户定义的视点呈现单个视图。开发者通常限于从该视点查看3D模型(例如,作为3D模型基于该视点在单个平面监视器上的2D投影)。对于开发者而言在另选视点之间来回切换(例如通过手动改变视点值(例如,视点姿势坐标、视点查看角度等))通常是耗时且繁琐的。另外,现有软件开发布景未向开发者提供以多种不同方式查看3D模型的方法,所述多种不同方式例如为单视场方式(例如,当使用单个监视器设备时3D模型会出现在最终用户面前的时候)、立体方式(例如,当使用双屏幕设备诸如头戴式设备(HMD)时3D模型会出现在最终用户面前的时候)、在模拟现实(SR)中(例如,在虚拟坐标系内或当3D模型在与来自物理布景的对象组合时会出现的时候)。
发明内容
本文所公开的各种具体实施包括使两个或更多个设备能够在相同或不同布景/查看模式中(例如,以单视场方式、以立体方式、在SR中等)同时查看或编辑相同3D模型的设备、***和方法。在一个示例中,一个或多个用户能够使用不同设备在相同布景中交互以使用来自不同视点的不同视图来查看或编辑相同3D模型。这些设备可各自从相同3D模型的不同视点显示不同视图,并且当对3D模型作出变化时,保持这些设备上的视图的一致性。
在一些具体实施中,在具有一个或多个处理器和计算机可读存储介质的第一设备(诸如台式计算机、膝上型计算机、平板电脑等设备)处执行方法。该方法涉及在第一设备上显示软件开发布景诸如集成开发布景(IDE)的第一用户界面。第一用户界面包括基于第一视点的3D模型的第一视图。例如,第一设备可提供软件开发布景界面中的单视场(即,单屏幕)视图,该视图包括基于所选择的视点位置和默认角度的该对象的2D投影,该默认角度被选择为提供以3D模型的中心为中心的视图。第二设备上的第二用户界面提供基于与第一视点不同的第二视点的3D模型的第二视图。例如,在第二设备是头戴式设备(HMD)的情况下,第二视点可基于HMD的位置或取向。第一设备可将与3D模型相对应的数据对象直接或间接发送到第二设备以使第二设备能够显示第二视图。在一些具体实施中,3D模型保持在与第一设备和第二设备分开的服务器上,并且第一设备和第二设备均从服务器接收数据对象和关于3D模型的其他信息并将对3D对象作出的变化传送回服务器。在一些具体实施中,第一设备和第二设备中的一者或两者是头戴式设备(HMD)。
该方法还在第一设备上接收向3D对象提供变化的输入,并且响应于该输入,而提供与该变化相对应的数据。基于该数据,更新第二设备上的3D对象的第二视图以保持第一视图和第二视图中的3D对象之间的一致性。例如,如果第一用户在第一设备上将桌子的3D模型的颜色改变为白色,则第一设备将与该变化相对应的数据发送到第二设备,第二设备更新第二视图以也将第二设备上描绘的3D模型的颜色改变为白色。
因此如以上示例和本文别处所示的一些具体实施实现了在多个设备上使用不同视图同时查看或编辑3D对象。这些具体实施克服了常规单视图软件开发设置布景的许多缺点。这些具体实施提供了改善的用户查看编辑体验以及改善了通信和数据存储的效率。
根据一些具体实施,一种设备包括一个或多个处理器、非暂态存储器以及一个或多个程序;该一个或多个程序被存储在非暂态存储器中并且被配置为由一个或多个处理器执行,并且该一个或多个程序包括用于执行或使得执行本文所述方法中的任一种的指令。根据一些具体实施,一种非暂态计算机可读存储介质中存储有指令,这些指令在由设备的一个或多个处理器执行时使该设备执行或使执行本文所述方法中的任一种。根据一些具体实施,一种设备包括:一个或多个处理器、非暂态存储器以及用于执行或使执行本文所述方法中的任一种的装置。
附图说明
因此,本公开可被本领域的普通技术人员理解,更详细的描述可参考一些例示性具体实施的方面,其中一些具体实施在附图中示出。
图1是根据一些具体实施的示例性***的框图,其中两个设备链接在一起以同时查看或编辑相同3D模型。
图2是根据一些具体实施的图1的***的框图,其中第二设备是头戴式设备。
图3是根据一些具体实施的使用图2的第一设备上的用户界面对3D模型作出的变化的框图。
图4是根据一些具体实施的对图2的第二设备上的用户界面上显示的3D模型作出的变化的框图。
图5是示出根据一些具体实施的示例性第一设备的设备部件的框图。
图6是示出根据一些具体实施的示例性第二设备的设备部件的框图。
图7是用于使多个设备能够交互以使用来自不同视点的不同视图来查看或编辑相同3D模型的方法的流程图表示。
图8是用于基于检测到第二设备来建立第一设备与第二设备之间的链路的方法的流程图表示。
根据通常的做法,附图中示出的各种特征部可能未按比例绘制。因此,为了清楚起见,可以任意地扩展或减小各种特征部的尺寸。另外,一些附图可能未描绘给定的***、方法或设备的所有部件。最后,在整个说明书和附图中,类似的附图标号可用于表示类似的特征部。
具体实施方式
描述了许多细节以便提供对附图中所示的示例具体实施的透彻理解。然而,附图仅示出了本公开的一些示例方面,因此不应被视为限制。本领域的普通技术人员将会知道,其他有效方面或变体不包括本文所述的所有具体细节。此外,没有详尽地描述众所周知的***、方法、部件、设备和电路,以免模糊本文所述的示例性具体实施的更多相关方面。
参考图1,呈现了示例性***5的框图,其中两个设备10、20经由链路50链接以同时查看或编辑相同3D模型。第一设备10经由有线或无线链路链接到第二设备20,该有线或无线链路包括但限于有线通信,诸如使用通用串行总线(USB)电缆/接口、USB-C电缆/接口、THUNDERBOLTv1、v2或v3电缆/接口、IEEE 1394电缆/接口(例如,FIREWIRE、i.LINK、LYNX)、IEEE 802.3x电缆/接口(例如,以太网)等的那些;和无线通信,诸如使用IEEE 803.11传输(例如,WiFi)、IEEE 802.11传输(例如,WLAN)、IEEE 802.16x传输(例如,WiMAX)、短波长传输(例如,BLUETOOTH)、IEEE 802.15.4传输(例如,ZIGBEE)、GSM传输、ECMA-340和ISO/IEC18092(例如,近场通信(NFC))等的那些。链路50可为直接的,即设备10、20之间没有中间设备或网络节点。例如,链路50可涉及经由***到每个设备中的单根电缆或经由设备10与设备20之间的蓝牙通信来将设备10直接连接到设备20。链路50可为间接的,即具有一个或多个中间设备或网络节点。例如,链路50可通过经由互联网发送的通信来将设备10连接到设备20。
第一设备10被配置为提供集成开发布景(IDE)的用户界面100,该用户界面包括IDE工具栏105、具有代码块120a-n的代码编辑器110和第一视图115。一般来讲,IDE提供用于开发应用程序和包括3D模型其他的内容的集成工具。IDE可包括开发者用来创建应用程序和包括3D模型的其他电子内容的源代码编辑器,诸如代码编辑器110。在没有IDE的情况下,开发者通常将需要在文本编辑器中编写代码,访问单独开发工具,并且例如在单独应用程序和/或终端上单独地编译、渲染或运行该代码。IDE可将此类开发特征集成到单个用户界面中。通常(但不是必需),IDE用户界面将包括用于创建代码(例如,代码编辑器110)或参数的工具和用于查看所创建的项目的最终用户将看到什么的工具(例如,从特定视点显示所创建的3D模型125的渲染的第一视图115)。
IDE工具栏105包括促进电子内容/3D模型项目的创建和编辑的各种工具。例如,IDE可包括用于为多文件项目发起目录和包的“新建项目”菜单项等;用于为这个项目创建新文件的“新建文件”菜单项;用于为这些文件中的一个或多个文件创建代码(例如,Java、XML等)的编辑器窗口;用于输入参数的参数工具;用于使编译器开始编译该项目、运行编译后的应用程序或以其他方式渲染包括3D模型125的内容的构建/运行/渲染工具等。IDE可被配置为试图在后台编译/渲染开发者正在编辑的内容。如果开发者犯错(例如,省略分号、打字错误等),则IDE可呈现即时警告,例如通过在代码、参数上或在3D模型125上的第一视图115内呈现警告颜色、高亮或图标。
可(例如,经由键盘、文本识别等)将3D模型代码或参数输入到用户界面100以限定3D模型125的外观。例如,此类代码或参数可指定3D模型125或3D模型125的一部分的外观将具有特定颜色(例如,白色),具有特定纹理(例如,使用特定文件中找到的纹理),具有特定反射特征,具有特定不透明度/透明度特征等。类似地,此类代码或参数可指定3D模型125或3D模型125的一部分的位置、形状、尺寸、旋转和其他此类属性。例如,此类代码或参数可指定桌子的3D模型125的中心在x,y,z坐标系中的位置(50,50,50)处,并且3D模型125的宽度为100个单位。
一些IDE包括图形编辑窗口,诸如在其中提供第一视图115的窗口,所述窗口使开发者能够查看和以图形方式修改其项目。例如,开发者可通过在图形编辑窗口上拖动3D模型的一个或多个点或其他特征来调整其项目中的3D模型的大小。IDE基于所接收到的输入来对3D模型125的代码块120a-n或参数作出一个或多个对应变化。图形编辑窗口可为呈现最终用户将看到什么的相同窗口。换句话讲,图形编辑窗口可用于呈现经编译/渲染的3D模型125并且允许经由3D模型125的经编译/渲染的显示(例如,经由第一视图115内的交互)来编辑3D模型125。
各种具体实施使两个或更多个设备诸如设备10、20能够在相同或不同布景/查看模式中(例如,以单视场方式、以立体方式、在SR中等)同时查看或编辑3D模型125。为了使第二设备20能够同时查看或编辑3D模型125,在设备10、20之间建立链路50。
在一些具体实施中,第一设备10向第二设备20提供3D模型125,使得第二设备20可显示与第一视图115不同的3D模型125的第二视图215。例如,用于在第一设备10上以第一视图115显示3D模型125的视点可不同于用于在第二设备上以第二视图215显示3D模型125的视点。在图1的示例中,第一视图115的视点基于与第二视图215的视点不同的查看位置和查看角度。在一个示例中,用于第一视图115的视点基于不取决于现实世界中的第一设备10的位置或取向的默认或用户指定的位置,而用于第二视图215的视点取决于现实世界中的第二设备20的位置或取向。这样,一个或多个用户可从不同视点同时查看3D模型125。
可在相同或不同物理布景中在设备10、20上提供第一视图115和第二视图215。“物理布景”是指无需电子***帮助个体就可感知或个体就可与之交互的世界。物理布景(例如,物理森林)包括物理对象(例如,物理树、物理结构和物理动物)。个体可直接与物理布景相互作用或感知物理布景,诸如通过触摸、视觉、嗅觉、听觉和味觉。
第一视图115和第二视图215中的一者或两者可涉及模拟现实(SR)体验。第一视图115可使用第一SR布景,并且第二视图215可使用与第一SR布景相同或不同的第二SR布景。与物理布景相比,SR布景是指经由电子***个体可感知或个体可与之交互的完全或部分由计算机创建的布景。在SR中,监测个体移动的子集,并且响应于此,以符合一个或多个物理定律的方式使SR布景中的一个或多个虚拟对象的一个或多个属性变化。例如,SR***可检测到个体向前走几步,并且响应于此,以类似于此类情景和声音在物理环境中会如何变化的方式来调节呈现给个体的图形和音频。也可响应于移动的表示(例如,音频指令)而进行对SR布景中一个或多个虚拟对象的一个或多个属性的修改。
个体可使用他的任何感觉(包括触觉、嗅觉、视觉、味觉和声音)与SR对象进行交互或感知SR对象。例如,个体可与创建多维(例如,三维)或空间听觉布景或实现听觉透明性的听觉对象进行交互或感知听觉对象。多维或空间听觉布景为个体提供了在多维空间中对离散听觉源的感知。在具有或不具有计算机创建的音频的情况下,听觉透明性选择性地结合来自物理布景的声音。在一些SR布景中,个体可仅与听觉对象进行交互或仅感知听觉对象。
SR的一个示例是虚拟现实(VR)。VR布景是指被设计为仅包括针对至少一种感觉的计算机创建的感官输入的模拟布景。VR布景包括个体可与之交互或对其进行感知的多个虚拟对象。个体可通过在计算机创建的布景内模拟个体动作的子集或通过对个体或其在计算机创建的布景内的存在的模拟,来与VR布景中的虚拟对象进行交互或感知VR布景中的虚拟对象。
SR的另一个示例是混合现实(MR)。MR布景是指被设计为将计算机创建的感官输入(例如,虚拟对象)与来自物理布景的感官输入或其表示集成的模拟布景。在现实谱系上,混合现实布景介于(但不包括)一端的VR布景和另一端的完全物理布景之间。
在一些MR布景中,计算机创建的感官输入可以适应于来自物理布景的感官输入的变化。另外,用于呈现MR布景的一些电子***可以监测相对于物理布景的取向或位置,以使虚拟对象能够与真实对象(即来自物理布景的物理对象或其表示)交互。例如,***可监测运动,使得虚拟植物相对于物理建筑物看起来是静止的。
混合现实的一个示例是增强现实(AR)。AR布景是指至少一个虚拟对象叠加在物理布景或其表示之上的模拟布景。例如,电子***可具有不透明显示器和至少一个成像传感器,成像传感器用于捕获物理布景的图像或视频,这些图像或视频是物理布景的表示。***将图像或视频与虚拟对象组合,并在不透明显示器上显示该组合。个体使用***经由物理布景的图像或视频间接地查看物理布景,并且观察叠加在物理布景之上的虚拟对象。当***使用一个或多个图像传感器捕获物理布景的图像,并且使用那些图像在不透明显示器上呈现AR布景时,所显示的图像被称为视频透传。另选地,用于显示AR布景的电子***可具有透明或半透明显示器,个体可通过该显示器直接查看物理布景。该***可在透明或半透明显示器上显示虚拟对象,使得个体使用该***观察叠加在物理布景之上的虚拟对象。又如,***可包括将虚拟对象投影到物理布景中的投影***。虚拟对象可例如在物理表面上或作为全息图被投影,使得个体使用该***观察叠加在物理布景之上的虚拟对象。
增强现实布景也可指其中物理布景的表示被计算机创建的感官信息改变的模拟布景。例如,物理布景的表示的一部分可被以图形方式改变(例如,放大),使得所改变的部分仍可代表一个或多个初始捕获的图像但不是忠实再现的版本。又如,在提供视频透传时,***可改变传感器图像中的至少一者以施加不同于一个或多个图像传感器捕获的视点的特定视点。再如,物理布景的表示可通过以图形方式将其部分进行模糊处理或消除其部分而被改变。
混合现实的另一个示例是增强虚拟(AV)。AV布景是指计算机创建布景或虚拟布景并入来自物理布景的至少一个感官输入的模拟布景。来自物理布景的一个或多个感官输入可为物理布景的至少一个特征的表示。例如,虚拟对象可呈现由一个或多个成像传感器捕获的物理对象的颜色。又如,虚拟对象可呈现出与物理布景中的实际天气条件相一致的特征,如经由天气相关的成像传感器或在线天气数据所识别的。在另一个示例中,增强现实森林可具有虚拟树木和结构,但动物可具有从对物理动物拍摄的图像精确再现的特征。
在一些具体实施中,设备10、20各自被配置为具有软件、固件或硬件的合适组合以管理和协调用户的模拟现实(SR)体验。许多电子***使得个体能够与各种SR布景进行交互或感知各种SR布景。一个示例包括头戴式***。头戴式***可具有不透明显示器和一个或多个扬声器。另选地,头戴式***可以被设计为接收外部显示器(例如,智能电话)。头戴式***可具有分别用于拍摄物理布景的图像/视频或捕获物理布景的音频的一个或多个成像传感器或麦克风。头戴式***也可具有透明或半透明显示器。透明或半透明显示器可结合基板,表示图像的光通过该基板被引导到个体的眼睛。显示器可结合LED、OLED、数字光投影仪、激光扫描光源、硅上液晶,或这些技术的任意组合。透射光的基板可以是光波导、光组合器、光反射器、全息基板或这些基板的任意组合。在一个具体实施中,透明或半透明显示器可在不透明状态与透明或半透明状态之间选择性地转换。又如,电子***可以是基于投影的***。基于投影的***可使用视网膜投影将图像投影到个体的视网膜上。另选地,投影***还可将虚拟对象投影到物理布景中(例如,投影到物理表面上或作为全息图)。SR***的其他示例包括平视显示器、能够显示图形的汽车挡风玻璃、能够显示图形的窗口、能够显示图形的镜片、耳机或耳塞、扬声器布置、输入机构(例如,具有或不具有触觉反馈的控制器)、平板电脑、智能电话,以及台式计算机或膝上型计算机。
在一个示例中,第一视图115提供了在VR坐标系中显示没有现实世界内容的3D对象的VR查看模式,而第二视图215提供了在现实世界坐标系中显示具有现实世界内容的3D对象的MR查看模式。这种MR查看模式包括将3D模型与现实世界内容组合的视觉内容。MR可为视频透视(例如,其中现实世界内容由相机捕获并与3D模型一起显示在显示器上)或光学透视(例如,其中现实世界内容直接或通过玻璃查看并且用所显示的3D模型补充)。例如,MR***可通过将所渲染的三维(3D)图形整合到由板载相机捕获的实时视频流中而在消费者蜂窝电话的显示器上为用户提供视频透视MR。作为另一个示例,MR***可通过将所渲染的3D图形叠加到可穿戴透视头戴式显示器(“HMD”)当中而为用户提供光学透视MR,从而借助于所叠加的3D模型以电子方式增强用户对现实世界的光学视图。
在一些具体实施中,设备10、20两者提供3D对象125的MR视图。在一个示例中,每个设备10、20显示3D对象125的视图,该视图包括不同现实世界内容,具体取决于围绕相应设备或以其他方式由相应设备观察到的现实世界内容。设备10、20中的每个设备被配置为使用利用其自身相机或其他传感器检测到的图像或其他现实世界信息。在一些具体实施中,为了提供MR查看模式,设备10、20使用相应设备10、20上的相机所捕获的一个或多个相机图像的至少一部分。在该示例中,每个设备10、20使用围绕其的现实世界信息来提供视图。该双MR查看模式实现使一个或多个用户能够易于在多个且潜在不同的MR场景中观察3D模型125。
图2是图1的***5的框图,其中第二设备20是被配置为穿戴在用户25的头部上的头戴式设备(HMD)。在该示例中,第二用户界面200包括第二视图215,该第二视图提供具有第二视图左眼部分220a和第二视图右眼部分220b的立体查看模式。第二视图左眼部分220a包括针对左眼的3D模型125的视图,并且第二视图右眼部分220b包括针对右眼的3D模型125的视图。用于渲染针对左眼和右眼的3D模型125的视点可略微不同。例如,可通过以下方式确定3D模型125的相对位置:投影3D模型125并且基于用户双眼之间的预期或实际距离来使它们相对于彼此偏移。
在涉及HMD或其他可移动设备的一些具体实施中,用于提供第二视图215的视点基于第二设备20的位置或取向。因此,当用户25移动其身体或头部并且第二设备20的位置和取向发生变化时,用于在第二视图215中显示3D模型125的视点也会改变。例如,如果用户25四处走动,那么用户25能够改变其视点,从而从其其他侧面、从更近或更远、从自上而下的观察位置和角度、从自下而上的观察位置和角度等来查看3D模型125。
在一些具体实施中,如图2所示,由用户25穿戴的头戴式设备(HMD)提供第二视图215。此类HMD可包围用户25的视场。HMD可包括被配置为显示3D模型的一个或多个屏幕或其他显示器。在图2的示例中,HMD包括两个屏幕/显示器,一个用于左眼并且一个用于右眼。在一些具体实施中,HMD包括一个或多个屏幕或其他显示器以显示具有在用户的视场中的现实世界内容的3D模型。在一些具体实施中,HMD以一个或多个屏幕被定位成显示具有在用户25的视场中的现实世界内容的3D模型的方式被穿戴。
在一些具体实施中,第二设备20是被配置为呈现3D模型125的手持式电子设备(例如,智能电话或平板电脑)。在一些具体实施中,提供第二视图215的第二设备20是被配置为呈现3D模型125的腔室、壳体或空间,其中用户25不穿戴或手持该设备。
在一些具体实施中,经由第一设备10的用户界面100或设备200的用户界面200对3D模型作出的变化在这两个设备10、20上保持或以其他方式同步。例如,图3和图4示出了如何检测经由第一设备10的用户界面100作出的变化并将其用于更新设备200的用户界面200。
图3是示出使用图1的第一设备上的用户界面100对3D模型125作出的变化的框图。用户界面100使其用户能够改变视点或以其他方式修改3D模型125或与该3D模型交互。在一些具体实施中,用户界面100被配置为接收改变3D模型125的外观或位置特征的用户输入。在该示例中,用户已改变代码块120a-n中的一个或多个代码块,已使用IDE工具栏105的工具来改变3D模型125的参数,或已以图形方式编辑第一视图115中的3D模型125以延长3D模型125的腿305。响应于向3D模型125提供该变化的输入,第一设备10例如经由链路50向第二设备提供与该变化相对应的数据以用于第二视图215。基于该数据来更新3D模型的第二视图215以保持第一视图115和第二视图215中的3D模型125之间的一致性。
图4是示出对图2的第二设备上的第二视图215中显示的3D模型125作出的变化的框图。所描绘的3D模型125的腿305被延长以对应于第一视图115中的3D模型125的腿305的延长。对第一视图115中的所描绘的3D模型125作出的任何变化均描绘于第二视图215中的3D模型125中。相反,对第二视图215中的3D模型125作出的任何变化均描绘于第一视图115中的3D模型125中。这样,两个或更多个设备诸如设备10、20能够在相同或不同布景/查看模式中(例如,以单视场方式、以立体方式、在VR中、在MR中等)同时查看或编辑相同3D模型125。
由3D模型125表示的对象的示例包括但不限于桌子、地板、墙壁、书桌、书、水体、山、场地、车辆、柜台、人脸、人的手、人的头发、另一个人体部位、整个人体、动物或其他生物体、衣服、一张纸、杂志、书、车、机器或其他人造物体,以及任何其他可被识别和表示的3D物品或物品组。3D模型125可附加地或另选地包括创建的内容,该创建的内容可对应于或可不对应于现实世界内容,包括但不限于外星人、巫师、宇宙飞船、独角兽和计算机生成图形及其他此类项目。
图5是示出根据一些具体实施的第一设备10的设备部件的框图。尽管示出了一些具体特征,但本领域的技术人员将从本公开中认识到,为简洁起见并且为了不模糊本文所公开的具体实施的更多相关方面,未示出各种其他特征。为此,作为非限制性示例,在一些具体实施中,第一设备10包括一个或多个处理单元502(例如,微处理器、ASIC、FPGA、GPU、CPU、处理核心等)、一个或多个输入/输出(I/O)设备及传感器506、一个或多个通信接口508(例如,USB、FIREWIRE、THUNDERBOLT、IEEE 802.3x、IEEE 802.11x、IEEE 802.16x、GSM、CDMA、TDMA、GPS、IR、BLUETOOTH、ZIGBEE、SPI、I2C或类似类型的接口)、一个或多个编程(例如,I/O)接口510、一个或多个显示器512、一个或多个面向内部或面向外部的图像传感器***514、存储器520以及用于互连这些部件和各种其他部件的一条或多条通信总线504。
在一些具体实施中,一条或多条通信总线504包括互连和控制***部件之间的通信的电路。在一些具体实施中,一个或多个I/O设备和传感器506包括触摸屏、软键、键盘、虚拟键盘、按钮、旋钮、操纵杆、开关、拨号盘、惯性测量单元(IMU)、加速度计、磁力仪、陀螺仪、温度计、一个或多个生理传感器(例如,血压监测器、心率监测器、血氧传感器、血糖传感器等)、一个或多个麦克风、一个或多个扬声器、触觉引擎、一个或多个深度传感器(例如,结构化光、飞行时间等)等的至少一者。在一些具体实施中,由一个或多个I/O设备和传感器506检测到的第一设备10的移动、旋转或位置向第一设备10提供输入。
在一些具体实施中,一个或多个显示器512被配置为呈现用户界面100。在一些具体实施中,一个或多个显示器512对应于全息、数字光处理(DLP)、液晶显示器(LCD)、硅上液晶(LCoS)、有机发光场效应晶体管(OLET)、有机发光二极管(OLED)、表面传导电子发射器显示器(SED)、场发射显示器(FED)、量子点发光二极管(QD-LED)、微机电***(MEMS)或类似显示器类型。在一些具体实施中,一个或多个显示器512对应于衍射、反射、偏振、全息等波导显示器。在一个示例中,第一设备10包括单个显示器。在另一个示例中,第一设备10包括针对每只眼睛的显示器。在一些具体实施中,一个或多个显示器512能够呈现MR或VR内容。
在一些具体实施中,一个或多个图像传感器***514被配置为获得与第一设备10的本地场景的至少一部分相对应的图像数据。一个或多个图像传感器***514可包括一个或多个RGB相机(例如,具有互补金属氧化物半导体(CMOS)图像传感器或电荷耦合器件(CCD)图像传感器)、单色相机、IR相机或者基于事件的相机等。在各种具体实施中,一个或多个图像传感器***514还包括发射光的照明源,诸如闪光灯。
存储器520包括高速随机存取存储器,诸如DRAM、SRAM、DDR RAM或其他随机存取固态存储器设备。在一些具体实施中,存储器520包括非易失性存储器,诸如一个或多个磁盘存储设备、光盘存储设备、闪存存储器设备或其他非易失性固态存储设备。存储器520任选地包括与一个或多个处理单元502远程定位的一个或多个存储设备。存储器520包括非暂态计算机可读存储介质。在一些具体实施中,存储器520或存储器520的非暂态计算机可读存储介质存储以下程序、模块和数据结构,或它们的子集,包括可选的操作***530以及一个或多个应用程序540。操作***530包括用于处理各种基础***服务和用于执行硬件相关任务的过程。
在一些具体实施中,一个或多个应用程序540中的每个应用程序被配置为使用户能够使用不同设备来使用不同视图查看或编辑相同3D模型。为此,在各种具体实施中,一个或多个应用程序540包括用于提供集成开发布景(IDE)和相关联的用户界面100的IDE单元542,以及用于扩展IDE的查看/编辑会话以能够在一个或多个其他设备上查看的会话扩展单元544。在一些具体实施中,会话扩展单元542被配置为发送和接收对一个或多个其他设备的通信,例如共享3D模型125或经由用户界面100或用户界面200对3D模型125作出的变化的通信。在一些具体实施中,会话扩展单元542发送通信以直接用3D模型125或对3D模型125作出的变化来更新第二设备上的共享存储区域。在一些具体实施中,会话扩展单元542发送通信以接收在第二设备上的共享存储区域中对3D模型作出的变化,使得经由IDE单元542对3D模型的渲染可被更新或以其他方式同步。在一些具体实施中,会话扩展单元542通过服务器或其他中间设备发送通信,该服务器或其他中间设备向第二设备提供该变化。
图5更多地用作存在于特定具体实施中的各种特征部的功能描述,与本文所述的具体实施的结构示意图不同。如本领域的普通技术人员将认识到的,单独显示的项目可以组合,并且一些项目可以分开。例如,图5中单独示出的一些功能模块可以在单个模块中实现,并且单个功能块的各种功能可在各种具体实施中通过一个或多个功能块来实现。模块的实际数量和特定功能的划分以及如何在其中分配特征部将根据具体实施而变化,并且在一些具体实施中,部分地取决于为特定具体实施选择的硬件、软件或固件的特定组合。
图6是示出根据一些具体实施的第二设备20的设备部件的框图。尽管示出了一些具体特征,但本领域的技术人员将从本公开中认识到,为简洁起见并且为了不模糊本文所公开的具体实施的更多相关方面,未示出各种其他特征。为此,作为非限制性示例,在一些具体实施中,第二设备20包括一个或多个处理单元602(例如,微处理器、ASIC、FPGA、GPU、CPU、处理核心等)、一个或多个输入/输出(I/O)设备及传感器606、一个或多个通信接口608(例如,USB、FIREWIRE、THUNDERBOLT、IEEE 802.3x、IEEE 802.11x、IEEE 802.16x、GSM、CDMA、TDMA、GPS、IR、BLUETOOTH、ZIGBEE、SPI、I2C或类似类型的接口)、一个或多个编程(例如,I/O)接口610、一个或多个显示器612、一个或多个面向内部或面向外部的图像传感器***614、存储器620以及用于互连这些部件和各种其他部件的一条或多条通信总线604。
在一些具体实施中,一条或多条通信总线604包括互连和控制***部件之间的通信的电路。在一些具体实施中,一个或多个I/O设备和传感器606包括触摸屏、软键、键盘、虚拟键盘、按钮、旋钮、操纵杆、开关、拨号盘、惯性测量单元(IMU)、加速度计、磁力仪、陀螺仪、温度计、一个或多个生理传感器(例如,血压监测器、心率监测器、血氧传感器、血糖传感器等)、一个或多个麦克风、一个或多个扬声器、触觉引擎、一个或多个深度传感器(例如,结构化光、飞行时间等)等的至少一者。在一些具体实施中,由一个或多个I/O设备和传感器606检测到的第二设备20的移动、旋转或位置向第二设备20提供输入。
在一些具体实施中,一个或多个MR显示器612被配置为呈现将在另一个设备上查看或编辑的3D模型的视图。在一些具体实施中,一个或多个MR显示器612对应于全息、数字光处理(DLP)、液晶显示器(LCD)、硅上液晶(LCoS)、有机发光场效应晶体管(OLET)、有机发光二极管(OLED)、表面传导电子发射器显示器(SED)、场发射显示器(FED)、量子点发光二极管(QD-LED)、微机电***(MEMS)或类似显示器类型。在一些具体实施中,一个或多个显示器612对应于衍射、反射、偏振、全息等波导显示器。在一个示例中,第二设备20包括单个显示器。在另一个示例中,第二设备20包括针对每只眼睛的显示器。在一些具体实施中,一个或多个显示器612能够呈现MR或VR内容。
在一些具体实施中,一个或多个图像传感器***614被配置为获得与第二设备20的本地场景的至少一部分相对应的图像数据。一个或多个图像传感器***614可包括一个或多个RGB相机(例如,具有互补金属氧化物半导体(CMOS)图像传感器或电荷耦合器件(CCD)图像传感器)、单色相机、IR相机或者基于事件的相机等。在各种具体实施中,一个或多个图像传感器***614还包括发射光的照明源,诸如闪光灯。
存储器620包括高速随机存取存储器,诸如DRAM、SRAM、DDR RAM或其他随机存取固态存储器设备。在一些具体实施中,存储器620包括非易失性存储器,诸如一个或多个磁盘存储设备、光盘存储设备、闪存存储器设备或其他非易失性固态存储设备。存储器620任选地包括与一个或多个处理单元602远程定位的一个或多个存储设备。存储器620包括非暂态计算机可读存储介质。在一些具体实施中,存储器620或存储器620的非暂态计算机可读存储介质存储以下程序、模块和数据结构,或它们的子集,包括可选的操作***630以及一个或多个应用程序640。操作***630包括用于处理各种基础***服务和用于执行硬件相关任务的过程。
在一些具体实施中,一个或多个应用程序640被配置为提供用户界面200,该用户界面提供将在第一设备10上查看或编辑的3D对象125的第二视图215。为此,在各种具体实施中,一个或多个应用程序640包括查看器/编辑器单元642以便随3D模型125的视图提供查看或编辑器。在一些具体实施中,查看器/编辑器单元642被配置为使用共享存储器单元644中的3D模型125的副本。在该示例中,查看器/编辑器单元642监测共享存储器单元644的变化,例如基于从第一设备10接收到的通信来在共享存储器单元中更新的对3D模型125的副本作出的变化。基于检测到共享存储器单元644中的变化,查看器/编辑器单元642更新第二设备20上提供的3D模型的第二视图215。类似地,在一些具体实施中,经由第二设备20上提供的3D模型的第二视图215来对3D模型作出变化。查看器/编辑器单元642将这些变化存储到共享存储器单元644,使得这些变化可被第一设备10识别并且用于保持第一设备125上的3D对象125的对应/同步版本。
在一些具体实施中,第二设备20是头戴式设备(HMD)。这种HMD可包括容纳各种部件的外壳(或壳体)。外壳可包括(或耦接到)设置在外壳的近侧(相对于用户25)端部处的眼垫。在一些具体实施中,眼垫是塑料或橡胶件,其舒适且贴合地将HMD保持在用户25的面部上的适当位置(例如,围绕用户25的眼睛)。外壳可容纳显示器,该显示器显示图像,朝向用户25的一只或两只眼睛发射光。
图6更多地用作存在于特定具体实施中的各种特征部的功能描述,与本文所述的具体实施的结构示意图不同。如本领域的普通技术人员将认识到的,单独显示的项目可以组合,并且一些项目可以分开。例如,图6中单独示出的一些功能模块可以在单个模块中实现,并且单个功能块的各种功能可在各种具体实施中通过一个或多个功能块来实现。模块的实际数量和特定功能的划分以及如何在其中分配特征部将根据具体实施而变化,并且在一些具体实施中,部分地取决于为特定具体实施选择的硬件、软件或固件的特定组合。
图7是用于使多个设备能够在相同布景中交互以使用来自不同视点的不同视图来查看或编辑相同3D模型的方法700的流程图表示。在一些具体实施中,方法700由设备(例如,图1至图5的第一设备10)执行。方法700可在移动设备、台式计算机、膝上型计算机或服务器设备上执行。在一些具体实施中,方法700由处理逻辑部件(包括硬件、固件、软件或其组合)执行。在一些具体实施中,方法700由执行存储在非暂态计算机可读介质(例如,存储器)中的代码的处理器执行。
在框710处,方法700在第一设备上显示集成开发布景(IDE)的第一用户界面,该第一用户界面包括基于第一视点的3D模型的第一视图。
在框720处,方法700显示第二用户界面,该第二用户界面包括基于与第一视点不同的第二视点的3D模型的第二视图。在一些具体实施中,第一设备将与3D模型相对应的数据对象直接发送到第二设备,而没有任何中间设备。在某个具体实施中,第一设备经由一个或多个中间设备将与3D模型相对应的数据对象间接发送到第二设备。在一些具体实施中,3D模型保持在与第一设备和第二设备分开的服务器上,并且第一设备和第二设备均从服务器接收数据对象和关于3D模型的其他信息并将对3D对象作出的变化传送回服务器。在一些具体实施中,第一设备和第二设备中的一者或两者是头戴式设备(HMD)。
第二视点可不同于第一视点。例如,第一视点可基于与第二视点不同的查看位置或查看角度。在一些具体实施中,这些视点中的一个视点(例如,用于第一视图的第一视点)基于用户输入来识别,并且另一个视点(例如,用于第二视图的第二视点)基于现实世界布景中的第二设备的位置或取向来识别。例如,第一视点可基于用户为第一视图的视点选择3D坐标空间中的特定坐标位置,而第二视点可基于现实世界坐标系中的HMD第二设备的位置/方向/角度。因此,在该示例和其他具体实施中,第一视点独立于设备位置和取向,而第二视点取决于设备位置和取向。
在一些具体实施中,第一视图和第二视图均是单视场的,均是立体的,或这些视图中的一个视图是单视场的并且另一个视图是立体的。在一个示例中,其中一个设备(例如,第一设备)包括提供3D模型的单视场视图的单屏幕,并且另一个设备(例如,第二设备)包括双屏幕,该双屏幕具有3D模型的略微不同视点/渲染以提供3D模型的立体视图。
在一些具体实施中,第一视图和第二视图均是VR,均是MR,或这些视图中的一个视图是VR并且另一个视图是MR。在一个示例中,第一视图基于将3D模型与来自第一设备上的相机所捕获的现实世界布景的内容组合的MR布景,并且第二视图基于将3D模型与来自第二设备上的相机所捕获的现实世界布景的内容组合的MR布景。在另一个示例中,这些设备中的一个设备(例如,第一设备或第二设备)所捕获的现实世界内容用于提供这两个设备上的MR查看体验,例如这两个设备包括3D模型和这些设备中的一个设备所捕获的共享现实世界内容。在另一个示例中,其中一个设备(例如,第一设备)提供不包括现实世界内容的3D模型的VR视图,并且另一个设备(例如,第二设备)提供不包括现实世界内容的3D模型的MR视图。
在框730处,方法700在第一设备上接收向3D模型提供变化的输入。例如,第一设备的用户可向IDE工具、代码、参数或图形编辑器之一提供键盘输入、鼠标输入、触摸输入、语音输入或其他输入以改变3D模型的属性或特征。例如,用户可改变3D模型的尺寸、颜色、纹理、取向等,添加3D模型或3D模型的一部分,删除3D模型或3D模型的一部分等。
在框740处,方法700提供与该变化相对应的数据以更新第二视图,从而保持第一视图和第二视图中的3D模型之间的一致性。在一些具体实施中,第一设备将直接或间接通信发送到第二设备,该第二设备识别该变化。在一些具体实施中,第一设备将直接或间接通信发送到第二设备,该第二设备基于该变化来更新存储3D模型的副本的共享存储器并且相应地更新第二视图。在一些具体实施中,经由有线或无线连接直接将该通信从第一设备发送到第二设备。在一些具体实施中,例如经由服务器或其他中间设备间接将该通信发送到第二设备。这种服务器可保持3D模型并且在多个其他设备之中的其他设备上共享对3D模型作出的变化以确保在给定时间访问3D模型的所有设备上的一致性。
在一些具体实施中,合并或联合这些变化以改善***的效率。例如,这可涉及检测3D模型的初始状态和最终状态之间的多个变化,以及提供与3D模型的初始状态和最终状态之间的差异相对应的数据。如果3D模型首先向左移动10个单位然后向右移动5个单位,则可发送使3D模型向左移动5个单位的单个通信。在一些具体实施中,以这种方式合并在预先确定的阈值时间窗口内(例如,每0.1秒、每秒等)接收到的所有变化以避免使这些设备的处理和存储能力过载。
在一些具体实施中,在第一设备与第二设备之间建立链路以使3D对象的变化能够在第一设备和第二设备上同时显示。在一些具体实施中,经由操作***(OS)级服务调用来建立该链路。这种链路可为有线的或无线的。该链路还可调用或访问第二设备上的共享存储器。守护进程可将该共享存储器映射到其进程空间中,使得其变成第一设备的导管以无缝地链接第二设备,从而提供共享查看/编辑体验。
设备之间的链路可用于启用设备之间的共享查看/编辑会话。在一些具体实施中,通过促进这种会话的创建和/或3D模型在这种会话内的共享来增强用户体验。在一些具体实施中,由第一设备自动地检测第一设备与第二设备之间的无线或有线连接或其他链路。基于无线或有线连接的检测,第一设备发起共享查看/编辑会话。在一些具体实施中,第一设备将通信发送到第二设备以自动地启动第二设备上的第二用户界面。这可涉及启动该设备上的查看器/编辑器应用程序,并且建立第二设备上的共享存储器,该共享存储器可由所启动的查看器/编辑器应用程序访问以及直接由来自第一设备的通信访问。
设备之间促进共享查看/编辑体验的链路可另外用于以仅在另一个设备上可用的功能来增强其中一个设备上的体验。例如,第一设备可具有互联网接入,因此可访问对于第二设备不可用的资产商店。然而,当用户在第二设备上编辑时,他或她可经由该链路访问资产商店上可用的资产。用户不需要知道第一设备正用于经由该链路提供增强的用户体验。
在一些具体实施中,用户友好过程用于建立为共享查看/编辑会话,如相对于图8所描述。图8是用于基于检测到第二设备和用户输入来建立第一设备与第二设备之间的链路的方法800的流程图表示。在一些具体实施中,方法800由设备(例如,图1至图5的第一设备10)执行。方法800可在移动设备、台式计算机、膝上型计算机或服务器设备上执行。在一些具体实施中,方法800由处理逻辑部件(包括硬件、固件、软件或其组合)执行。在一些具体实施中,方法800由执行存储在非暂态计算机可读介质(例如,存储器)中的代码的处理器执行。
在框810处,方法800检测用于建立链路的能够访问的第二设备。在一些具体实施中,这涉及检测已经由USB或其他电缆来连接另一个设备。在一些具体实施中,这涉及检测已在这些设备之间建立无线通信信道。在一些具体实施中,这可附加地或另选地涉及识别连接的设备是特定设备、设备类型或者与特定用户、所有者或账户相关联的设备。
在框820处,方法800提供识别与第二设备建立链路的选项的消息。呈现文本、图形或音频消息,例如,询问用户是否希望将当前查看/编辑会话扩展到另一个所检测的设备。
在框830处,方法800接收输入以建立链路,并且在框840处,方法800建立第一设备与第二设备之间的链路以启用共享查看/编辑会话。在一些具体实施中,基于接收到该输入,第一设备将通信发送到第二设备以自动地启动第二设备上的第二用户界面并且将第二用户界面连接到当前编辑会话。建立链路可涉及发起第二设备上的共享存储器并且将3D模型复制到共享存储器。建立链路可涉及启动第二设备上的查看器/编辑器并且指示第二设备访问共享存储器中的3D模型的副本以在第二视图中显示。
在框850处,方法800在第一设备或第二设备上检测到3D模型的更新时更新第二设备上的共享存储器以保持3D模型的同时显示。第一设备和第二设备均可被配置为基于其自身用户界面上的3D模型的变化来更新共享存储器并且周期性地检查共享存储器中是否有另一个设备作出的变化以用于更新其自身用户界面。
本文阐述了许多具体细节以提供对要求保护的主题的全面理解。然而,本领域的技术人员将理解,可以在没有这些具体细节的情况下实践要求保护的主题。在其他实例中,没有详细地介绍普通技术人员已知的方法、设备或***,以便不使要求保护的主题晦涩难懂。
除非另外特别说明,否则应当理解,在整个说明书中,利用诸如“处理”、“计算”、“计算出”、“确定”和“识别”等术语的论述是指计算设备的动作或过程,诸如一个或多个计算机或类似的电子计算设备,其操纵或转换表示为计算平台的存储器、寄存器或其他信息存储设备、传输设备或显示设备内的物理电子量或磁量的数据。
本文论述的一个或多个***不限于任何特定的硬件架构或配置。计算设备可以包括部件的提供以一个或多个输入为条件的结果的任何合适的布置。合适的计算设备包括基于多用途微处理器的计算机***,其访问存储的软件,该软件将计算***从通用计算设备编程或配置为实现本发明主题的一种或多种具体实施的专用计算设备。可以使用任何合适的编程、脚本或其他类型的语言或语言的组合来在用于编程或配置计算设备的软件中实现本文包含的教导内容。
本文所公开的方法的具体实施可以在这样的计算设备的操作中执行。上述示例中呈现的框的顺序可以变化,例如,可以将框重新排序、组合或者分成子框。某些框或过程可以并行执行。
本文中“适用于”或“被配置为”的使用意味着开放和包容性的语言,其不排除适用于或被配置为执行额外任务或步骤的设备。另外,“基于”的使用意味着开放和包容性,因为“基于”一个或多个所述条件或值的过程、步骤、计算或其他动作在实践中可以基于额外条件或超出所述的值。本文包括的标题、列表和编号仅是为了便于解释而并非旨在为限制性的。
还将理解的是,虽然术语“第一”、“第二”等可能在本文中用于描述各种元素,但是这些元素不应当被这些术语限定。这些术语只是用于将一个元件与另一元件区分开。例如,第一节点可以被称为第二节点,并且类似地,第二节点可以被称为第一节点,其改变描述的含义,只要所有出现的“第一节点”被一致地重命名并且所有出现的“第二节点”被一致地重命名。第一节点和第二节点都是节点,但它们不是同一个节点。
本文中所使用的术语仅仅是为了描述特定具体实施并非旨在对权利要求进行限制。如在本具体实施的描述和所附权利要求中所使用的那样,单数形式的“一个”和“该”旨在也涵盖复数形式,除非上下文清楚地另有指示。还将理解的是,本文中所使用的术语“和/或”是指并且涵盖相关联的所列出的项目中的一个或多个项目的任何和全部可能的组合。还将理解的是,术语“包括”(“comprises”或“comprising”)本说明书中使用时是指定存在所陈述的特征、整数、步骤、操作、元件或部件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元件、部件或其分组。
如本文所使用的,术语“如果”可以被解释为表示“当所述先决条件为真时”或“在所述先决条件为真时”或“响应于确定”或“根据确定”或“响应于检测到”所述先决条件为真,具体取决于上下文。类似地,短语“如果确定[所述先决条件为真]”或“如果[所述先决条件为真]”或“当[所述先决条件为真]时”被解释为表示“在确定所述先决条件为真时”或“响应于确定”或“根据确定”所述先决条件为真或“当检测到所述先决条件为真时”或“响应于检测到”所述先决条件为真,具体取决于上下文。
本发明的前述描述和概述应被理解为在每个方面都是例示性和示例性的,而非限制性的,并且本文所公开的本发明的范围不仅由例示性具体实施的详细描述来确定,而是根据专利法允许的全部广度。应当理解,本文所示和所述的具体实施仅是对本发明原理的说明,并且本领域的技术人员可以在不脱离本发明的范围和实质的情况下实现各种修改。

Claims (53)

1.一种方法,包括:
在具有一个或多个处理器和计算机可读存储介质的第一设备处:
在所述第一设备上显示软件开发布景的第一用户界面,所述第一用户界面包括基于第一视点的3D模型的第一视图,其中第二设备上的第二用户界面包括基于第二视点的所述3D模型的第二视图,所述第二视点不同于所述第一视点,并且所述第二设备是头戴式设备(HMD);
在所述第一设备上接收向所述3D模型提供变化的输入;以及
响应于向所述3D模型提供所述变化的所述输入,提供与所述变化相对应的数据,其中基于所述数据来更新所述3D模型的所述第二视图以保持所述第一视图和所述第二视图中的所述3D模型之间的一致性。
2.根据权利要求1所述的方法,还包括:
将与所述3D模型相对应的数据对象直接从所述第一设备提供给所述第二设备;以及
将与所述变化相对应的所述数据直接从所述第一设备提供给所述第二设备。
3.根据权利要求1所述的方法,还包括:
将与所述3D模型相对应的数据对象间接从所述第一设备提供给所述第二设备;以及
将与所述变化相对应的所述数据间接从所述第一设备提供给所述第二设备。
4.根据权利要求1所述的方法,其中所述3D模型保持在与所述第一设备和所述第二设备分开的服务器上,其中与所述3D模型相对应的数据对象和与所述变化相对应的所述数据由所述服务器提供给所述第二设备。
5.根据权利要求1-4中任一项所述的方法,其中所述第一视点基于与所述第二视点不同的查看位置。
6.根据权利要求1-5中任一项所述的方法,其中所述第一视点基于与所述第二视点不同的查看角度。
7.根据权利要求1-6中任一项所述的方法,其中所述第一视图是单视场的并且所述第二视图是立体的。
8.根据权利要求1-7中任一项所述的方法,其中所述第一视点基于用户输入来识别,并且所述第二视点基于现实世界布景中的所述第二设备的位置或取向来识别。
9.根据权利要求1-8中任一项所述的方法,其中所述第一视点独立于设备位置和取向,并且所述第二视点取决于设备位置和取向。
10.根据权利要求1-9中任一项所述的方法,其中所述第一视图或所述第二视图基于包括所述3D模型的虚拟现实(VR)布景。
11.根据权利要求1-10中任一项所述的方法,其中所述第一视图基于将所述3D模型与来自所述第一设备上的相机所捕获的现实世界布景的内容组合的混合现实(MR)布景。
12.根据权利要求1-11中任一项所述的方法,其中所述第二视图基于将所述3D模型与来自所述第二设备上的相机所捕获的现实世界布景的内容组合的混合现实(MR)布景。
13.根据权利要求1-2或5-12中任一项所述的方法,所述方法还包括在所述第一设备与所述第二设备之间建立通信链路以使所述3D对象的变化能够在所述第一设备和所述第二设备上同步显示。
14.根据权利要求13所述的方法,其中经由操作***(OS)级服务调用来建立所述链路。
15.根据权利要求13-14中任一项所述的方法,其中所述链路包括所述第一设备与所述第二设备之间的无线连接。
16.根据权利要求13-14中任一项所述的方法,其中所述链路包括所述第一设备与所述第二设备之间的有线连接。
17.根据权利要求1-2或5-16中任一项所述的方法,其中所述第二设备上的共享存储器包括所述3D模型的副本。
18.根据权利要求17所述的方法,其中提供与所述变化相对应的所述数据包括基于所述数据来更新所述第二设备上的所述共享存储器中的所述3D模型的所述副本。
19.根据权利要求1-18中任一项所述的方法,其中所述第一设备包括具有机械键的键盘。
20.根据权利要求1-2或5-16中任一项所述的方法,所述方法还包括:
检测所述第一设备与所述第二设备之间的无线或有线连接;以及
基于所述无线或有线连接的所述检测,将通信发送到所述第二设备以自动地启动所述第二设备上的所述第二用户界面。
21.根据权利要求1-2或5-16中任一项所述的方法,所述方法还包括:
检测所述第一设备与所述第二设备之间的无线或有线连接;
基于所述无线或有线连接的所述检测,在所述第一用户界面上提供将所述第二设备链接到所述用户界面的当前编辑会话中的选项;
接收选择所述选项的输入;以及
基于接收到所述输入,将通信发送到所述第二设备以自动地启动所述第二设备上的所述第二用户界面并且将所述第二用户界面连接到所述当前编辑会话。
22.根据权利要求1-21中任一项所述的方法,其中提供与所述变化相对应的数据包括:
检测所述3D模型的初始状态和最终状态之间的多个变化;以及
提供与所述3D模型的所述初始状态和所述最终状态之间的差异相对应的数据。
23.一种***,包括:
非暂态计算机可读存储介质;和
一个或多个处理器,所述一个或多个处理器耦接至所述非暂态计算机可读存储介质,其中所述非暂态计算机可读存储介质包括程序指令,所述程序指令在所述一个或多个处理器上执行时,使所述***执行包括以下操作的操作:
在第一设备上显示软件开发布景的第一用户界面,所述第一用户界面包括基于第一视点的3D模型的第一视图,其中第二设备上的第二用户界面包括基于第二视点的所述3D模型的第二视图,所述第二视点不同于所述第一视点,并且所述第二设备是头戴式设备(HMD);
在所述第一设备上接收向所述3D模型提供变化的输入;以及
响应于向所述3D模型提供所述变化的所述输入,提供与所述变化相对应的数据,其中基于所述数据来更新所述3D模型的所述第二视图以保持所述第一视图和所述第二视图中的所述3D模型之间的一致性。
24.根据权利要求23所述的***,其中所述操作还包括:
将与所述3D模型相对应的数据对象直接从所述第一设备提供给所述第二设备;以及
将与所述变化相对应的所述数据直接从所述第一设备提供给所述第二设备。
25.根据权利要求23所述的***,其中所述操作还包括:
将与所述3D模型相对应的数据对象间接从所述第一设备提供给所述第二设备;以及
将与所述变化相对应的所述数据间接从所述第一设备提供给所述第二设备。
26.根据权利要求23所述的***,其中所述3D模型保持在与所述第一设备和所述第二设备分开的服务器上,其中所述服务器被配置为将与所述3D模型相对应的数据对象和与所述变化相对应的所述数据提供给所述第二设备。
27.根据权利要求23-26中任一项所述的***,其中所述第一视图是单视场的并且所述第二视图是立体的。
28.根据权利要求23-27中任一项所述的***,其中所述第一视点独立于设备位置和取向。
29.根据权利要求23-28中任一项所述的***,其中所述第一视图或所述第二视图基于包括所述3D模型的虚拟现实(VR)布景。
30.根据权利要求23-29中任一项所述的***,其中所述第一视图基于将所述3D模型与来自所述第一设备上的相机所捕获的现实世界布景的内容组合的混合现实(MR)布景。
31.根据权利要求23-30中任一项所述的***,其中所述第二视图基于将所述3D模型与来自所述第二设备上的相机所捕获的现实世界布景的内容组合的混合现实(MR)布景。
32.根据权利要求23-24或27-31中任一项所述的***,其中所述第二设备上的共享存储器包括所述3D模型的副本。
33.根据权利要求32所述的***,其中提供与所述变化相对应的所述数据包括基于所述数据来更新所述第二设备上的所述共享存储器中的所述3D模型的所述副本。
34.一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储可在计算机上执行以执行操作的程序指令,所述操作包括:
在第一设备上显示软件开发布景的第一用户界面,所述第一用户界面包括基于第一视点的3D模型的第一视图,其中第二设备上的第二用户界面包括基于第二视点的所述3D模型的第二视图,所述第二视点不同于所述第一视点,并且所述第二设备是头戴式设备(HMD);
在所述第一设备上接收向所述3D模型提供变化的输入;以及
响应于向所述3D模型提供所述变化的所述输入,提供与所述变化相对应的数据,其中基于所述数据来更新所述3D模型的所述第二视图以保持所述第一视图和所述第二视图中的所述3D模型之间的一致性。
35.根据权利要求34所述的非暂态计算机可读存储介质,其中所述操作还包括:
将与所述3D模型相对应的数据对象直接从所述第一设备提供给所述第二设备;以及
将与所述变化相对应的所述数据直接从所述第一设备提供给所述第二设备。
36.根据权利要求34所述的非暂态计算机可读存储介质,其中所述操作还包括:
将与所述3D模型相对应的数据对象间接从所述第一设备提供给所述第二设备;以及
将与所述变化相对应的所述数据间接从所述第一设备提供给所述第二设备。
37.根据权利要求34所述的非暂态计算机可读存储介质,其中所述3D模型保持在与所述第一设备和所述第二设备分开的服务器上,其中所述服务器被配置为将与所述3D模型相对应的数据对象和与所述变化相对应的所述数据提供给所述第二设备。
38.根据权利要求34-37中任一项所述的非暂态计算机可读存储介质,其中所述第一视点基于与所述第二视点不同的查看位置或查看角度。
39.根据权利要求34-38中任一项所述的非暂态计算机可读存储介质,其中所述第一视图是单视场的并且所述第二视图是立体的。
40.根据权利要求34-39中任一项所述的非暂态计算机可读存储介质,其中所述第一视点基于用户输入来识别,并且所述第二视点基于现实世界布景中的所述第二设备的位置或取向来识别。
41.根据权利要求34-40中任一项所述的非暂态计算机可读存储介质,其中所述第一视点独立于设备位置和取向,并且所述第二视点取决于设备位置和取向。
42.根据权利要求34-41中任一项所述的非暂态计算机可读存储介质,其中所述第一视图或所述第二视图基于包括所述3D模型的虚拟现实(VR)布景。
43.根据权利要求34-42中任一项所述的非暂态计算机可读存储介质,其中所述第一视图基于将所述3D模型与来自所述第一设备上的相机所捕获的现实世界布景的内容组合的混合现实(MR)布景。
44.根据权利要求34-43中任一项所述的非暂态计算机可读存储介质,其中所述第二视图基于将所述3D模型与来自所述第二设备上的相机所捕获的现实世界布景的内容组合的混合现实(MR)布景。
45.根据权利要求34-35或38-44中任一项所述的非暂态计算机可读存储介质,其中操作还包括在所述第一设备与所述第二设备之间建立通信链路以使所述3D对象的变化能够在所述第一设备和所述第二设备上同时显示。
46.根据权利要求45所述的非暂态计算机可读存储介质,其中经由操作***(OS)级服务调用来建立所述链路。
47.根据权利要求45-46中任一项所述的非暂态计算机可读存储介质,其中所述链路包括所述第一设备与所述第二设备之间的无线连接。
48.根据权利要求45-46中任一项所述的非暂态计算机可读存储介质,其中所述链路包括所述第一设备与所述第二设备之间的有线连接。
49.根据权利要求34-35或38-48中任一项所述的非暂态计算机可读存储介质,其中所述第二设备上的共享存储器包括所述3D模型的副本。
50.根据权利要求49所述的非暂态计算机可读存储介质,其中提供与所述变化相对应的所述数据包括基于所述数据来更新所述第二设备上的所述共享存储器中的所述3D模型的所述副本。
51.根据权利要求34-35或38-50所述的非暂态计算机可读存储介质,其中所述操作还包括:
检测所述第一设备与所述第二设备之间的无线或有线连接;以及
基于所述无线或有线连接的所述检测,将通信发送到所述第二设备以自动地启动所述第二设备上的所述第二用户界面。
52.根据权利要求34-35或38-50所述的非暂态计算机可读存储介质,其中所述操作还包括:
检测所述第一设备与所述第二设备之间的无线或有线连接;
基于所述无线或有线连接的所述检测,在所述第一用户界面上提供将所述第二设备链接到所述用户界面的当前编辑会话中的选项;
接收选择所述选项的输入;以及
基于接收到所述输入,将通信发送到所述第二设备以自动地启动所述第二设备上的所述第二用户界面并且将所述第二用户界面连接到所述当前编辑会话。
53.根据权利要求34-52中任一项所述的非暂态计算机可读存储介质,其中提供与所述变化相对应的数据包括:
检测所述3D模型的初始状态和最终状态之间的多个变化;以及
提供与所述3D模型的所述初始状态和所述最终状态之间的差异相对应的数据。
CN201980027675.6A 2018-04-24 2019-04-18 3d模型的多设备编辑 Pending CN112020731A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201862661756P 2018-04-24 2018-04-24
US62/661,756 2018-04-24
PCT/US2019/028027 WO2019209608A1 (en) 2018-04-24 2019-04-18 Multi-device editing of 3d models

Publications (1)

Publication Number Publication Date
CN112020731A true CN112020731A (zh) 2020-12-01

Family

ID=66440145

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201980027675.6A Pending CN112020731A (zh) 2018-04-24 2019-04-18 3d模型的多设备编辑

Country Status (5)

Country Link
US (1) US20210034319A1 (zh)
EP (1) EP3785235A1 (zh)
KR (1) KR20200135496A (zh)
CN (1) CN112020731A (zh)
WO (1) WO2019209608A1 (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11334326B2 (en) * 2019-02-27 2022-05-17 Adrian Andres Rodriguez-Velasquez Systems, devices, and methods of developing or modifying software using physical blocks
US11992934B2 (en) * 2021-01-13 2024-05-28 MediVis, Inc. Stereo video in augmented reality
US20220350937A1 (en) * 2021-04-30 2022-11-03 Dassault Systemes Solidworks Corporation Linking Views/States of 3D Models and Propagating Updates in Same
US20230341990A1 (en) * 2022-04-20 2023-10-26 Htc Corporation Visual content generating method, host, and computer readable storage medium
US20240176596A1 (en) * 2022-11-30 2024-05-30 International Business Machines Corporation Virtual-reality-based software development

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130234934A1 (en) * 2010-12-22 2013-09-12 Zspace, Inc. Three-Dimensional Collaboration
US20160027216A1 (en) * 2014-07-25 2016-01-28 Alexandre da Veiga Three-dimensional mixed-reality viewport

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1999006909A1 (en) * 1997-08-01 1999-02-11 Muse Technologies, Inc. Shared multi-user interface for multi-dimensional synthetic environments
US9298334B1 (en) * 2011-02-18 2016-03-29 Marvell International Ltd. Method and apparatus for providing a user interface having a guided task flow among a plurality of devices
WO2012135546A1 (en) * 2011-03-29 2012-10-04 Qualcomm Incorporated Anchoring virtual images to real world surfaces in augmented reality systems
US9678617B2 (en) * 2013-01-14 2017-06-13 Patrick Soon-Shiong Shared real-time content editing activated by an image
EP3329466A4 (en) * 2016-06-10 2019-03-13 DIRTT Environmental Solutions, Ltd. ARCHITECTURAL DESIGN ENVIRONMENT WITH MIXED REALITY

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130234934A1 (en) * 2010-12-22 2013-09-12 Zspace, Inc. Three-Dimensional Collaboration
US20160027216A1 (en) * 2014-07-25 2016-01-28 Alexandre da Veiga Three-dimensional mixed-reality viewport

Also Published As

Publication number Publication date
KR20200135496A (ko) 2020-12-02
WO2019209608A1 (en) 2019-10-31
EP3785235A1 (en) 2021-03-03
US20210034319A1 (en) 2021-02-04

Similar Documents

Publication Publication Date Title
KR102582375B1 (ko) 2d/3d 혼합 콘텐츠의 검출 및 디스플레이
US20210034319A1 (en) Multi-device editing of 3d models
CN111880644A (zh) 多用户即时定位与地图构建(slam)
CN112639685B (zh) 模拟现实(sr)中的显示设备共享和交互
CN112074800B (zh) 用于在沉浸水平之间切换的技术
US11709370B2 (en) Presentation of an enriched view of a physical setting
KR102406878B1 (ko) 컴퓨터 생성 렌더링 환경을 위한 시각적 검색 세분화
US10984607B1 (en) Displaying 3D content shared from other devices
CN112740280A (zh) 计算高效的模型选择
KR102695480B1 (ko) 2d/3d 혼합 콘텐츠의 검출 및 디스플레이
CN112654951A (zh) 基于现实世界数据移动头像
KR20240125530A (ko) 2d/3d 혼합 콘텐츠의 검출 및 디스플레이
CN116965014A (zh) 3d环境内基于上下文的对象查看

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