KR20200121357A - 물리적 조작을 사용한 오브젝트 생성 - Google Patents

물리적 조작을 사용한 오브젝트 생성 Download PDF

Info

Publication number
KR20200121357A
KR20200121357A KR1020207026920A KR20207026920A KR20200121357A KR 20200121357 A KR20200121357 A KR 20200121357A KR 1020207026920 A KR1020207026920 A KR 1020207026920A KR 20207026920 A KR20207026920 A KR 20207026920A KR 20200121357 A KR20200121357 A KR 20200121357A
Authority
KR
South Korea
Prior art keywords
user
interactable object
user interaction
interactable
content
Prior art date
Application number
KR1020207026920A
Other languages
English (en)
Inventor
팀 줄뫼흘
안드레아 이사벨 몬토야
로버트 존 커밍스 맥도날드
사키나 그로스
제네비브 맥
Original Assignee
매직 립, 인코포레이티드
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 매직 립, 인코포레이티드 filed Critical 매직 립, 인코포레이티드
Publication of KR20200121357A publication Critical patent/KR20200121357A/ko

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/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
    • G06F3/012Head tracking input arrangements
    • 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/1633Constructional details or arrangements of portable computers not specific to the type of enclosures covered by groups G06F1/1615 - G06F1/1626
    • G06F1/1684Constructional details or arrangements related to integrated I/O peripherals not covered by groups G06F1/1635 - G06F1/1675
    • G06F1/1694Constructional details or arrangements related to integrated I/O peripherals not covered by groups G06F1/1635 - G06F1/1675 the I/O peripheral being a single or a set of motion sensors for pointer control or gesture input obtained by sensing movements of the portable computer
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/955Retrieval from the web using information identifiers, e.g. uniform resource locators [URL]
    • G06F16/9566URL specific, e.g. using aliases, detecting broken or misspelled links
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/957Browsing optimisation, e.g. caching or content distillation
    • 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/016Input arrangements with force or tactile feedback as computer generated output to the user
    • 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/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
    • 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
    • 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/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)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Computer Graphics (AREA)
  • Databases & Information Systems (AREA)
  • Architecture (AREA)
  • Data Mining & Analysis (AREA)
  • User Interface Of Digital Computer (AREA)
  • Preparation Of Compounds By Using Micro-Organisms (AREA)
  • Medicines Containing Material From Animals Or Micro-Organisms (AREA)
  • Control And Other Processes For Unpacking Of Materials (AREA)
  • Processing Or Creating Images (AREA)

Abstract

3D 혼합 현실 환경에서 상호작용 가능한 오브젝트들의 내비게이션 및 조작을 위한 개선된 시스템들 및 방법들이 설명된다. 브라우저 윈도우들 및 벽 장식품들과 같은 상호작용 가능한 오브젝트들의 생성 및 배치를 위한 물리적 조작을 구현하기 위한 개선된 시스템들 및 방법들이 제공된다. 방법은 사용자 상호작용의 시작시 제1 프리즘 내에 포함된 상호작용 가능한 오브젝트의 선택을 나타내는 데이터를 수신하는 단계를 포함한다. 방법은 또한 상호작용 가능한 오브젝트와 사용자 상호작용의 종료를 나타내는 데이터를 수신하는 단계를 포함한다. 방법은, 사용자 상호작용의 시작과 종료 사이에 제1 프리즘으로부터 상호작용 가능한 오브젝트를 제거하는 것에 대응하는 사용자의 물리적 움직임을 나타내는 데이터를 수신하는 단계를 더 포함한다. 게다가, 방법은, 상호작용 가능한 오브젝트와 사용자 상호작용의 종료시 상호작용 가능한 오브젝트와 연관된 데이터를 포함하기 위한 제2 프리즘을 생성하는 단계를 포함한다.

Description

물리적 조작을 사용한 오브젝트 생성
[0001] 본 개시내용은 2018년 2월 22일에 출원되고 명칭이 "Window Creation With Physical Manipulation"인 미국 가출원 제62/634,007호; 2018년 5월 1일에 출원되고 명칭이 "Object Creation With Physical Manipulation"인 제62/665,251호를 우선권으로 주장한다. 본 개시내용은 2017년 5월 1일에 출원되고 명칭이 "Spatially Deconstructed Browser"인 미국 가출원 제62/492,292호에 관한 것이다. 이로써, 앞서 말한 특허 출원들의 전체 내용들은, 전체적으로 설명된 것처럼 인용에 의해 본원에 명백하고 완전히 통합된다.
[0002] 본 개시내용은 공간적인 3D 환경에서 브라우징 기술을 구현하기 위한 시스템들 및 방법들에 관한 것이다.
[0003] 웹 페이지를 보기 위한 전형적인 방법은 컴퓨터, 스마트폰, 태블릿 등의 모니터 상에서 웹 페이지를 개방하는 것이다. 사용자는, 웹 페이지 상에 디스플레이된 상이한 콘텐츠를 보기 위해 웹 페이지를 스크롤링할 것이다. 일반적으로, 사용자가 컴퓨터 모니터를 보든지, 스마트폰을 보든지 또는 태블릿을 보든지 간에, 콘텐츠가 모니터 상에 어떻게 디스플레이되는지에 관한 고정된 포맷이 존재한다.
[0004] 가상 현실, 증강 현실 및/또는 혼합 현실 시스템들(이후에 총괄적으로 "혼합 현실" 시스템들로 지칭됨)에서, 사용자에게 콘텐츠를 디스플레이하기 위한 3차원 환경이 제공된다. 문제는, 브라우저들 내에서 2D 콘텐츠를 디스플레이 또는 조작하는 종래의 접근법들이 3D 환경에서 사용될 때 매우 잘 작동하지 않는다는 것이다.
[0005] 예컨대, 컴퓨팅 환경에서 새로운 윈도우를 생성하기 위한 프로세스가 고려된다. 전형적으로, 마우스 또는 유사한 디바이스는 윈도우를 생성하기 위한 메뉴 구조를 조작하는 데 사용되고, 여기서 이어서 마우스는 해당 새로운 윈도우를 원하는 위치로 드래그하는 데 사용된다. 그러나, 종래의 2D 웹 브라우저들에서, 디스플레이 디바이스의 디스플레이 영역이 콘텐츠를 디스플레이하는 모니터의 스크린 영역으로 제한되기 때문에, 이는, 종래의 브라우저들이 해당 모니터 디스플레이 영역 내에서 콘텐츠를 생성 및 배치하는 방법만을 알도록 구성된다는 것을 의미한다. 따라서, 새로운 윈도우들을 비-2D 환경들(이를테면, 혼합 현실 시스템들)에서 생성할 때, 종래의 윈도우 생성 접근법들은 매우 제한적인데, 왜냐하면 3D 환경들이 모니터 디스플레이 영역의 엄격한 한계에 제한되지 않기 때문이다. 이로써, 종래의 브라우징 기술들이 콘텐츠를 생성 및 디스플레이하기 위해 3D 환경을 활용할 수 있는 기능 또는 능력을 갖지 않기 때문에, 종래의 2D 브라우저들은 3D 환경에서 사용될 때 차선책으로(sub-optimally) 수행된다.
[0006] 이 문제는 또한 컴퓨팅 환경에서 다른 타입들의 오브젝트들에서도 존재하고, 여기서 컴퓨팅 환경들과 상호작용하는 종래의 접근법들은 3D 환경에서 오브젝트들을 조작하기 위한 효율적인 접근법들을 고려하지 않는다. 예컨대, 종래의 컴퓨팅 시스템은 새롭게 생성된 오브젝트들의 배치(이를테면, 벽에 디지털 사진 걸기)를 구현하기 위한 효과적인 메커니즘들을 제공하지 않는다.
[0007] 따라서, 3D 환경에서 오브젝트들의 생성 및 조작을 구현하기 위한 개선된 접근법에 대한 필요성이 존재한다.
[0008] 상호작용 가능한 오브젝트들의 생성 및 배치를 위한 물리적 조작을 구현하기 위한 개선된 시스템들 및 방법들이 제공된다. 일부 실시예들에서, 새롭게 생성된 가상 오브젝트들(즉, 상호작용 가능한 오브젝트와 연관된 데이터)을 사용자 환경의 임의의 적합한 위치에 배치하는 능력이 혼합 현실 시스템의 사용자에게 제공되고, 여기서 해당 상호작용 가능한 오브젝트의 배치는 사용자의 물리적 조작 활동들에 의해 달성된다.
[0009] 브라우저 윈도우들의 생성 및 배치를 위한 물리적 조작을 구현하기 위한 개선된 시스템들 및 방법들이 제공된다. 일부 실시예들에서, 브라우저 윈도우를 사용자 환경의 임의의 적합한 위치에 배치하는 능력이 혼합 현실 시스템의 사용자에게 제공되고, 여기서 해당 윈도우의 배치는 사용자의 물리적 조작 활동들에 의해 달성된다. 브라우저 윈도우들의 내비게이션 및 조작을 위한 개선된 시스템들 및 방법들은, 공간적으로 조직된 3D 환경에서 분해되어 디스플레이되는 2D 콘텐츠의 맥락에 적용될 수 있다. 이는, 2D 콘텐츠의 식별, 2D 콘텐츠에서 엘리먼트들의 식별, 주변 표면들의 식별, 식별된 엘리먼트들을 식별된 주변 표면들로의 맵핑, 및 엘리먼트들을 주변 표면들 상에 가상 콘텐츠로서의 디스플레이를 포함할 수 있다.
[0010] 일부 실시예들은 단일 사용자 상호작용으로 벽 장식품들의 생성 및 배치를 위한 물리적 조작을 구현하기 위한 개선된 시스템들 및 방법들에 관한 것이다. 일부 실시예들에서, 벽 장식품을 사용자 환경의 임의의 적합한 위치에 배치하는 능력이 혼합 현실 시스템의 사용자에게 제공되고, 여기서 해당 벽 장식품의 배치는 사용자의 물리적 조작 활동들에 의해 달성된다.
[0011] 본 발명의 양상들, 목적들, 및 장점들의 추가적인 세부사항들은 아래의 상세한 설명, 도면들, 및 청구항들에서 설명된다. 앞서 설명된 일반적인 설명과 다음의 상세한 설명 둘 모두는 예시적이고 설명적인 것이며, 본 발명의 범위에 대한 제한인 것으로 의도되지 않는다.
[0012] 일 실시예에서, 방법은 사용자 상호작용이 시작될 때 제1 프리즘 내에 포함된 상호작용 가능한 오브젝트의 선택을 나타내는 데이터를 수신하는 단계를 포함한다. 방법은 또한 상호작용 가능한 오브젝트와 사용자 상호작용의 종료를 나타내는 데이터를 수신하는 단계를 포함한다. 방법은, 사용자 상호작용의 시작과 종료 사이에 제1 프리즘으로부터 상호작용 가능한 오브젝트를 제거하는 것에 대응하는 사용자의 물리적 움직임을 나타내는 데이터를 수신하는 단계를 더 포함한다. 게다가, 방법은, 상호작용 가능한 오브젝트와 사용자 상호작용의 종료시 상호작용 가능한 오브젝트와 연관된 데이터를 포함하기 위한 제2 프리즘을 생성하는 단계를 포함한다.
[0013] 하나 이상의 실시예들에서, 방법은 또한 상호작용 가능한 오브젝트가 제1 프리즘의 경계들 외부에 위치될 때, 사용자 상호작용의 시작과 종료 사이에 상호작용 가능한 오브젝트의 위치에서 상호작용 가능한 오브젝트와 연관된 데이터의 시각적 미리보기를 디스플레이하는 단계를 포함한다. 방법은 또한 상호작용 가능한 오브젝트의 선택을 나타내는 데이터 및 상호작용 가능한 오브젝트와 사용자 상호작용의 종료를 나타내는 데이터를 사용자 입력 디바이스가 제공하는 단계를 포함할 수 있다. 사용자 입력 디바이스는 햅틱 제어기일 수 있다. 햅틱 제어기는 적어도 6 자유도를 갖는 토템 디바이스에 대응할 수 있다. 사용자의 물리적 움직임은 햅틱 제어기와 연관된 프로세싱 시스템에서 이벤트 오브젝트들로 변환될 수 있고, 여기서 이벤트 오브젝트들은 햅틱 제어기의 움직임 또는 포지셔닝을 위한 데이터와 상관된다. 사용자 상호작용의 종료시 상호작용 가능한 오브젝트의 위치는, 상호작용 가능한 오브젝트의 선택 후에, 햅틱 제어기에 대한 트리거가 해제되는 위치를 식별함으로써 결정될 수 있다. 사용자 입력 디바이스는 사용자 제스처를 검출하기 위한 카메라일 수 있다. 상호작용 가능한 오브젝트의 선택을 나타내는 데이터는 선택 제스처에 대응할 수 있다. 상호작용 가능한 오브젝트와 사용자 상호작용의 종료를 나타내는 데이터는 해제 제스처에 대응할 수 있다.
[0014] 하나 이상의 실시예들에서, 상호작용 가능한 오브젝트의 선택을 나타내는 데이터는 링크와 상호작용하는 사용자의 신체의 적어도 일부에 대응한다. 링크와 연관된 URL에 대한 콘텐츠에 액세스함으로써 링크의 미리보기가 생성될 수 있다. 방법은 또한 사용자의 물리적 움직임을 나타내는 데이터를 수신하는 단계를 포함할 수 있고, 사용자의 물리적 움직임은 미리보기의 물리적 움직임에 대응한다. 상호작용 가능한 오브젝트는 사용자 상호작용을 사용하여 개방될 뿐만 아니라 배치될 수 있다. 상호작용 가능한 오브젝트에 대한 배향은, 사용자 상호작용의 종료시 상호작용 가능한 오브젝트의 위치의 표면 법선을 결정하고, 상호작용 가능한 오브젝트와 연관된 데이터의 배향을 결정하고, 그리고 좌표 위치의 표면 법선과, 상호작용 가능한 오브젝트와 연관된 데이터의 배향을 정렬함으로써 결정될 수 있다. 상호작용 가능한 오브젝트는 벽 장식품을 포함할 수 있다.
[0015] 다른 실시예에서, 방법은 상호작용 가능한 오브젝트를 식별하는 단계를 포함한다. 방법은 또한 상호작용 가능한 오브젝트에 대응하는 사용자의 물리적 움직임을 식별하는 단계를 포함한다. 방법은, 사용자의 물리적 움직임에 기반하여, 상호작용 가능한 오브젝트와 연관된 데이터에 대한 좌표 위치를 결정하는 단계를 더 포함한다. 게다가, 방법은 상호작용 가능한 오브젝트와 연관된 데이터를 사용자의 물리적 움직임에 대응하는 좌표 위치에 배치하는 단계를 포함한다.
[0016] 하나 이상의 실시예들에서, 사용자 입력 디바이스는 사용자의 물리적 움직임을 검출하는 데 사용된다. 사용자 입력 디바이스는 햅틱 제어기일 수 있다. 햅틱 제어기는 적어도 6 자유도를 갖는 토템 디바이스에 대응할 수 있다. 사용자의 물리적 움직임은 햅틱 제어기와 연관된 프로세싱 시스템에서 이벤트 오브젝트들로 변환될 수 있고, 여기서 이벤트 오브젝트들은 햅틱 제어기의 움직임 또는 포지셔닝을 나타내는 데이터와 상관된다. 상호작용 가능한 오브젝트에 대한 좌표 위치는 사용자의 물리적 움직임 후에 햅틱 제어기에 대한 트리거가 해제되는 위치를 식별함으로써 결정될 수 있다.
[0017] 하나 이상의 실시예들에서, 사용자 입력 디바이스는 사용자 제스처를 검출하기 위한 카메라이다. 개방할 상호작용 가능한 오브젝트는 사용자 신체의 일부와 상호작용하는 링크를 식별함으로써 식별될 수 있다. 링크와 연관된 URL에 대한 콘텐츠에 액세스함으로써 링크의 미리보기가 생성될 수 있다. 사용자의 물리적 움직임은 미리보기의 물리적 움직임에 대응할 수 있다. 상호작용 가능한 오브젝트는 컴퓨팅 디바이스의 단일 사용자 상호작용을 사용하여 개방될 뿐만 아니라 배치될 수 있다. 상호작용 가능한 오브젝트에 대한 배향은, 좌표 위치의 표면 법선을 결정하고, 상호작용 가능한 오브젝트와 연관된 데이터의 배향을 결정하고, 그리고 좌표 위치의 표면 법선과, 상호작용 가능한 오브젝트와 연관된 데이터의 배향을 정렬함으로써 결정될 수 있다. 상호작용 가능한 오브젝트는 벽 장식품을 포함할 수 있다.
[0018] 또 다른 실시예에서, 시스템은 3차원 콘텐츠를 디스플레이하도록 구성된 혼합 현실 디스플레이 디바이스를 포함한다. 시스템은 또한 사용자의 물리적 움직임을 검출하도록 구성된 사용자 입력 디바이스를 포함한다. 시스템은 사용자 입력 디바이스로부터 데이터를 수신하고 프로세싱하는 프로세서, 프로세서에 의해 실행 가능한 프로그래밍 가능 코드를 보유하기 위한 메모리를 더 포함한다. 프로그램 가능한 코드는 상호작용 가능한 오브젝트를 식별하기 위한 명령, 상호작용 가능한 오브젝트에 대응하는 사용자의 물리적 움직임을 식별하기 위한 명령, 사용자의 물리적 움직임에 기반하여 상호작용 가능한 오브젝트와 연관된 데이터에 대한 좌표 위치를 결정하기 위한 명령, 및 상호작용 가능한 오브젝트와 연관된 데이터를 사용자의 물리적 움직임에 대응하는 좌표 위치에 배치하기 위한 명령을 포함한다.
[0019] 하나 이상의 실시예들에서, 사용자 입력 디바이스는 햅틱 제어기이다. 햅틱 제어기는 적어도 6 자유도를 갖는 토템 디바이스에 대응할 수 있다. 사용자의 물리적 움직임은 프로세서에서 이벤트 오브젝트들로 변환될 수 있고, 여기서 이벤트 오브젝트들은 햅틱 제어기의 움직임 또는 포지셔닝을 나타내는 데이터와 상관된다. 상호작용 가능한 오브젝트에 대한 좌표 위치는 사용자의 물리적 움직임 후에 햅틱 제어기에 대한 트리거가 해제되는 위치를 식별함으로써 결정될 수 있다.
[0020] 하나 이상의 실시예들에서, 사용자 입력 디바이스는 사용자 제스처를 검출하기 위한 카메라이다. 개방할 상호작용 가능한 오브젝트는 사용자 신체의 일부와 상호작용하는 링크를 식별함으로써 식별될 수 있다. 링크와 연관된 URL에 대한 콘텐츠에 액세스함으로써 링크의 미리보기가 생성될 수 있다. 사용자의 물리적 움직임은 미리보기의 물리적 움직임에 대응할 수 있다. 상호작용 가능한 오브젝트는 벽 장식품을 포함할 수 있다. 프로그래밍 가능한 코드는 또한, 좌표 위치의 표면 법선을 결정하고, 상호작용 가능한 오브젝트와 연관된 데이터의 배향을 결정하고, 그리고 좌표 위치의 표면 법선과, 상호작용 가능한 오브젝트와 연관된 데이터의 배향을 정렬함으로써 상호작용 가능한 오브젝트에 대한 배향을 결정하기 위한 명령들을 포함할 수 있다.
[0021] 또 다른 실시예에서, 컴퓨터 프로그램 제품은 컴퓨터 판독 가능 매체에 포함되고, 컴퓨터 판독 가능 매체는 일련의 명령들을 저장하고, 일련의 명령들은, 프로세서에 의해 실행될 때, 프로세서로 하여금 상호작용 가능한 오브젝트를 식별하는 단계를 포함하는 방법을 실행하게 한다. 방법은 또한 상호작용 가능한 오브젝트에 대응하는 사용자의 물리적 움직임을 식별하는 단계를 포함한다. 방법은, 사용자의 물리적 움직임에 기반하여, 상호작용 가능한 오브젝트와 연관된 데이터에 대한 좌표 위치를 결정하는 단계를 더 포함한다. 게다가, 방법은 상호작용 가능한 오브젝트와 연관된 데이터를 사용자의 물리적 움직임에 대응하는 좌표 위치에 배치하는 단계를 포함한다.
[0022] 하나 이상의 실시예들에서, 사용자 입력 디바이스는 윈도우에 대응하는 사용자의 물리적 움직임을 검출하는 데 사용된다. 사용자 입력 디바이스는 햅틱 제어기일 수 있다. 햅틱 제어기는 적어도 6 자유도를 갖는 토템 디바이스에 대응할 수 있다. 사용자의 물리적 움직임은 햅틱 제어기와 연관된 프로세싱 시스템에서 이벤트 오브젝트들로 변환될 수 있고, 여기서 이벤트 오브젝트들은 햅틱 제어기의 움직임 또는 포지셔닝을 나타내는 데이터와 상관된다. 상호작용 가능한 오브젝트에 대한 좌표 위치는 사용자의 물리적 움직임 후에 햅틱 제어기에 대한 트리거가 해제되는 위치를 식별함으로써 결정될 수 있다.
[0023] 하나 이상의 실시예들에서, 사용자 입력 디바이스는 사용자 제스처를 검출하기 위한 카메라이다. 개방할 윈도우는 사용자 신체의 일부와 상호작용하는 링크를 식별함으로써 식별될 수 있다. 링크와 연관된 URL에 대한 콘텐츠에 액세스함으로써 링크의 미리보기가 생성될 수 있다. 사용자의 물리적 움직임은 미리보기의 물리적 움직임에 대응할 수 있다. 상호작용 가능한 오브젝트는 컴퓨팅 디바이스의 단일 사용자 상호작용을 사용하여 개방될 뿐만 아니라 배치될 수 있다. 단일 사용자 상호작용은 컴퓨팅 디바이스 상의 버튼의 단일 누름을 포함할 수 있다. 일련의 명령들은 추가로, 좌표 위치의 표면 법선을 결정하고, 상호작용 가능한 오브젝트와 연관된 데이터의 배향을 결정하고, 그리고 좌표 위치의 표면 법선과, 상호작용 가능한 오브젝트와 연관된 데이터의 배향을 정렬함으로써 상호작용 가능한 오브젝트에 대한 배향을 결정한다.
[0024] 다른 실시예에서, 방법은 사용자 상호작용의 시작시 상호작용 가능한 오브젝트의 선택을 나타내는 데이터를 수신하는 단계를 포함한다. 방법은 또한 상호작용 가능한 오브젝트와 사용자 상호작용의 종료를 나타내는 데이터를 수신하는 단계를 포함한다. 방법은 사용자 상호작용의 종료시 상호작용 가능한 오브젝트의 위치를 결정하는 단계를 더 포함한다. 게다가, 방법은 사용자 상호작용의 종료시 상호작용 가능한 오브젝트의 위치에 상호작용 가능한 오브젝트와 연관된 데이터를 배치하는 단계를 포함한다.
[0025] 하나 이상의 실시예들에서, 방법은 또한 상호작용 가능한 오브젝트의 선택을 나타내는 데이터 및 상호작용 가능한 오브젝트와 사용자 상호작용의 종료를 나타내는 데이터를 사용자 입력 디바이스가 제공하는 단계를 포함한다. 사용자 입력 디바이스는 햅틱 제어기일 수 있다. 햅틱 제어기는 적어도 6 자유도를 갖는 토템 디바이스에 대응할 수 있다. 사용자의 물리적 움직임은 햅틱 제어기와 연관된 프로세싱 시스템에서 이벤트 오브젝트들로 변환될 수 있고, 여기서 이벤트 오브젝트들은 햅틱 제어기의 움직임 또는 포지셔닝을 위한 데이터와 상관된다. 사용자 상호작용의 종료시 상호작용 가능한 오브젝트의 위치는, 상호작용 가능한 오브젝트의 선택 후에, 햅틱 제어기에 대한 트리거가 해제되는 위치를 식별함으로써 결정될 수 있다.
[0026] 하나 이상의 실시예들에서, 사용자 입력 디바이스는 사용자 제스처를 검출하기 위한 카메라이다. 상호작용 가능한 오브젝트의 선택을 나타내는 데이터는 선택 제스처에 대응할 수 있다. 상호작용 가능한 오브젝트와 사용자 상호작용의 종료를 나타내는 데이터는 해제 제스처에 대응할 수 있다. 상호작용 가능한 오브젝트의 선택을 나타내는 데이터는 링크와 상호작용하는 사용자의 신체의 적어도 일부에 대응할 수 있다. 링크와 연관된 URL에 대한 콘텐츠에 액세스함으로써 링크의 미리보기가 생성될 수 있다. 방법은 또한 사용자의 물리적 움직임을 나타내는 데이터를 수신하는 단계를 포함할 수 있고, 여기서 사용자의 물리적 움직임은 미리보기의 물리적 움직임에 대응한다. 상호작용 가능한 오브젝트는 사용자 상호작용을 사용하여 개방될 뿐만 아니라 배치될 수 있다. 상호작용 가능한 오브젝트에 대한 배향은 사용자 상호작용의 종료시 상호작용 가능한 오브젝트의 위치의 표면 법선을 결정하고, 상호작용 가능한 오브젝트와 연관된 데이터의 배향을 결정하고, 그리고 좌표 위치의 표면 법선과, 상호작용 가능한 오브젝트와 연관된 데이터의 배향을 정렬함으로써 결정될 수 있다. 상호작용 가능한 오브젝트는 벽 장식품을 포함할 수 있다.
[0027] 또 다른 실시예에서, 방법은 사용자 상호작용의 시작시 상호작용 가능한 오브젝트의 선택을 나타내는 데이터를 수신하는 단계를 포함한다. 방법은 또한 상호작용 가능한 오브젝트와 사용자 상호작용의 종료를 나타내는 데이터를 수신하는 단계를 포함한다. 방법은 사용자 상호작용의 종료시 상호작용 가능한 오브젝트의 위치를 결정하는 단계를 더 포함한다. 게다가, 방법은, 사용자 상호작용의 종료시 상호작용 가능한 오브젝트의 위치가 상호작용 가능한 오브젝트의 초기 프리즘 외부에 있을 때, 사용자 상호작용의 종료시 상호작용 가능한 오브젝트와 연관된 데이터에 대한 새로운 프리즘을 생성하는 단계를 포함한다.
[0028] 하나 이상의 실시예들에서, 방법은 또한, 상호작용 가능한 오브젝트가 초기 프리즘의 경계들 외부에 위치될 때, 사용자 상호작용의 시작과 종료 사이에 상호작용 가능한 오브젝트의 위치에서 상호작용 가능한 오브젝트와 연관된 데이터의 시각적 미리보기를 디스플레이하는 단계를 포함한다. 방법은 또한 상호작용 가능한 오브젝트의 선택을 나타내는 데이터 및 상호작용 가능한 오브젝트와 사용자 상호작용의 종료를 나타내는 데이터를 사용자 입력 디바이스가 제공하는 단계를 포함할 수 있다. 사용자 입력 디바이스는 햅틱 제어기이다. 햅틱 제어기는 적어도 6 자유도를 갖는 토템 디바이스에 대응할 수 있다. 사용자의 물리적 움직임은 햅틱 제어기와 연관된 프로세싱 시스템에서 이벤트 오브젝트들로 변환될 수 있고, 여기서 이벤트 오브젝트들은 햅틱 제어기의 움직임 또는 포지셔닝을 위한 데이터와 상관된다. 사용자 상호작용의 종료시 상호작용 가능한 오브젝트의 위치는, 상호작용 가능한 오브젝트의 선택 후에, 햅틱 제어기에 대한 트리거가 해제되는 위치를 식별함으로써 결정될 수 있다.
[0029] 하나 이상의 실시예들에서, 사용자 입력 디바이스는 사용자 제스처를 검출하기 위한 카메라이다. 상호작용 가능한 오브젝트의 선택을 나타내는 데이터는 선택 제스처에 대응할 수 있다. 상호작용 가능한 오브젝트와 사용자 상호작용의 종료를 나타내는 데이터는 해제 제스처에 대응할 수 있다. 상호작용 가능한 오브젝트의 선택을 나타내는 데이터는 링크와 상호작용하는 사용자의 신체의 적어도 일부에 대응할 수 있다. 링크와 연관된 URL에 대한 콘텐츠에 액세스함으로써 링크의 미리보기가 생성될 수 있다. 방법은 또한 사용자의 물리적 움직임을 나타내는 데이터를 수신하는 단계를 포함할 수 있고, 여기서 사용자의 물리적 움직임은 미리보기의 물리적 움직임에 대응한다. 상호작용 가능한 오브젝트는 사용자 상호작용을 사용하여 개방될 뿐만 아니라 배치될 수 있다. 상호작용 가능한 오브젝트에 대한 배향은, 사용자 상호작용의 종료시 상호작용 가능한 오브젝트의 위치의 표면 법선을 결정하고, 상호작용 가능한 오브젝트와 연관된 데이터의 배향을 결정하고, 그리고 좌표 위치의 표면 법선과, 상호작용 가능한 오브젝트와 연관된 데이터의 배향을 정렬함으로써 결정될 수 있다. 상호작용 가능한 오브젝트는 벽 장식품을 포함할 수 있다.
[0030] 또 다른 실시예에서, 방법은 사용자 상호작용이 시작될 때 제1 프리즘 내에 포함된 상호작용 가능한 오브젝트의 선택을 나타내는 데이터를 수신하는 단계를 포함한다. 방법은 또한 사용자 상호작용의 시작과 종료 사이에 사용자 상호작용에 대응하는 사용자의 물리적 움직임을 나타내는 데이터가 상호작용 가능한 오브젝트가 사용자 상호작용의 종료시 제1 프리즘 외부에 있다는 것을 나타낼 때, 상호작용 가능한 오브젝트와 연관된 데이터를 포함하기 위한 제2 프리즘을 사용자 상호작용의 종료시 상호작용 가능한 오브젝트의 위치에서 생성하는 단계를 포함한다.
[0031] 하나 이상의 실시예들에서, 방법은 또한 상호작용 가능한 오브젝트의 선택을 나타내는 데이터 및 사용자 상호작용의 시작과 종료 사이에 사용자 상호작용에 대응하는 사용자의 물리적 움직임을 나타내는 데이터를 사용자 입력 디바이스가 제공하는 단계를 포함한다. 사용자 입력 디바이스는 햅틱 제어기일 수 있다. 햅틱 제어기는 적어도 6 자유도를 갖는 토템 디바이스에 대응할 수 있다. 사용자의 물리적 움직임은 햅틱 제어기와 연관된 프로세싱 시스템에서 이벤트 오브젝트들로 변환될 수 있고, 여기서 이벤트 오브젝트들은 햅틱 제어기의 움직임 또는 포지셔닝을 위한 데이터와 상관된다. 사용자 상호작용의 종료시 상호작용 가능한 오브젝트의 위치는, 상호작용 가능한 오브젝트의 선택 후에, 햅틱 제어기에 대한 트리거가 해제되는 위치를 식별함으로써 결정될 수 있다.
[0032] 하나 이상의 실시예들에서, 사용자 입력 디바이스는 사용자 제스처를 검출하기 위한 카메라이다. 상호작용 가능한 오브젝트의 선택을 나타내는 데이터는 선택 제스처에 대응할 수 있다. 상호작용 가능한 오브젝트와 사용자 상호작용의 종료를 나타내는 데이터는 해제 제스처에 대응할 수 있다. 상호작용 가능한 오브젝트의 선택을 나타내는 데이터는 링크와 상호작용하는 사용자의 신체의 적어도 일부에 대응할 수 있다. 링크와 연관된 URL에 대한 콘텐츠에 액세스함으로써 링크의 미리보기가 생성될 수 있다. 사용자의 물리적 움직임은 미리보기의 물리적 움직임에 대응할 수 있다. 상호작용 가능한 오브젝트는 사용자 상호작용을 사용하여 개방될 뿐만 아니라 배치될 수 있다. 상호작용 가능한 오브젝트에 대한 배향은, 사용자 상호작용의 종료시 상호작용 가능한 오브젝트의 위치의 표면 법선을 결정하고, 상호작용 가능한 오브젝트와 연관된 데이터의 배향을 결정하고, 그리고 좌표 위치의 표면 법선과, 상호작용 가능한 오브젝트와 연관된 데이터의 배향을 정렬함으로써 결정될 수 있다. 상호작용 가능한 오브젝트는 벽 장식품을 포함할 수 있다.
[0033] 또 다른 실시예에서, 시스템은 3차원 콘텐츠를 디스플레이하도록 구성된 혼합 현실 디스플레이 디바이스를 포함한다. 시스템은 또한 사용자의 물리적 움직임을 검출하도록 구성된 사용자 입력 디바이스를 포함한다. 시스템은 사용자 입력 디바이스로부터 데이터를 수신하고 프로세싱하는 프로세서를 더 포함한다. 게다가, 시스템은 프로세서에 의해 실행 가능한 프로그래밍 가능 코드를 보유하기 위한 메모리를 포함하고, 여기서 프로그램 가능한 코드는 사용자 상호작용의 시작시 제1 프리즘 내에 포함된 상호작용 가능한 오브젝트의 선택을 나타내는 데이터를 수신하기 위한 명령, 상호작용 가능한 오브젝트와 사용자 상호작용의 종료를 나타내는 데이터를 수신하기 위한 명령, 사용자 상호작용의 시작과 종료 사이에 제1 프리즘으로부터 상호작용 가능한 오브젝트를 제거하는 것에 대응하는 사용자의 물리적 움직임을 나타내는 데이터를 수신하기 위한 명령, 및 상호작용 가능한 오브젝트와 사용자 상호작용의 종료시 상호작용 가능한 오브젝트와 연관된 데이터를 포함하기 위한 제2 프리즘을 생성하기 위한 명령을 포함한다.
[0034] 또 다른 실시예에서, 시스템은 3차원 콘텐츠를 디스플레이하도록 구성된 혼합 현실 디스플레이 디바이스를 포함한다. 시스템은 또한 사용자의 물리적 움직임을 검출하도록 구성된 사용자 입력 디바이스를 포함한다. 시스템은 사용자 입력 디바이스로부터 데이터를 수신하고 프로세싱하는 프로세서를 더 포함한다. 게다가, 시스템은 프로세서에 의해 실행 가능한 프로그래밍 가능 코드를 보유하기 위한 메모리를 포함하고, 여기서 프로그램 가능 코드는 사용자 상호작용의 시작시 상호작용 가능한 오브젝트의 선택을 나타내는 데이터를 수신하기 위한 명령, 상호작용 가능한 오브젝트와 사용자 상호작용의 종료를 나타내는 데이터를 수신하기 위한 명령, 사용자 상호작용의 종료시 상호작용 가능한 오브젝트의 위치를 결정하기 위한 명령, 및 사용자 상호작용의 종료시 상호작용 가능한 오브젝트의 위치가 상호작용 가능한 오브젝트의 초기 프리즘 외부에 있을 때, 사용자 상호작용의 종료시 상호작용 가능한 오브젝트와 연관된 데이터에 대한 새로운 프리즘을 생성하기 위한 명령을 포함한다.
[0035] 또 다른 실시예에서, 시스템은 3차원 콘텐츠를 디스플레이하도록 구성된 혼합 현실 디스플레이 디바이스를 포함한다. 시스템은 또한 사용자의 물리적 움직임을 검출하도록 구성된 사용자 입력 디바이스를 포함한다. 시스템은 사용자 입력 디바이스로부터 데이터를 수신하고 프로세싱하는 프로세서를 더 포함한다. 게다가, 시스템은 프로세서에 의해 실행 가능한 프로그래밍 가능 코드를 보유하기 위한 메모리를 포함하고, 여기서 프로그램 가능 코드는 사용자 상호작용의 시작시 제1 프리즘 내에 포함된 상호작용 가능한 오브젝트의 선택을 나타내는 데이터를 수신하기 위한 명령, 및 사용자 상호작용의 시작과 종료 사이에 사용자 상호작용에 대응하는 사용자의 물리적 움직임을 나타내는 데이터가 상호작용 가능한 오브젝트가 사용자 상호작용의 종료시 제1 프리즘 외부에 있다는 것을 나타낼 때, 상호작용 가능한 오브젝트와 연관된 데이터를 포함하기 위한 제2 프리즘을 사용자 상호작용의 종료시 상호작용 가능한 오브젝트의 위치에서 생성하기 위한 명령을 포함한다.
[0036] 도면들은 본 개시내용의 다양한 실시예들의 설계 및 유용성을 예시한다. 도면들이 실척대로 도시된 것이 아니고, 유사한 구조들 또는 기능들의 엘리먼트들이 도면들 전반에 걸쳐 유사한 참조 번호들로 표현된다는 것이 주목되어야 한다. 본 개시내용의 다양한 실시예들의 위에서-언급된 그리고 다른 장점들 및 목적들을 어떻게 획득하는지 더 잘 인지하기 위해, 위에서 간략하게 설명된 본 개시내용의 더 상세한 설명이 본 개시내용의 특정 실시예들을 참조하여 렌더링될 것이며, 그러한 특정 실시예들은 첨부 도면들에 예시되어 있다. 이들 도면들은 본 개시내용의 단지 전형적인 실시예들을 묘사할 뿐이고 그에 따라 본 개시내용의 범위를 제한하는 것으로 고려되지 않아야 한다는 것을 이해하면서, 본 개시내용은 첨부 도면들의 사용을 통해 추가적인 특성 및 세부사항으로 설명 및 기술될 것이다.
[0037] 도 1은 일부 실시예들에 따라, 사용자의 3D 환경에 디스플레이될 2D 콘텐츠를 분해하기 위한 증강 현실 환경을 예시한다.
[0038] 도 2는 일부 실시예들에 따른, 사용자의 3D 환경으로의 2D 콘텐츠의 엘리먼트들의 예시적인 맵핑을 예시한다.
[0039] 도 3은 일부 실시예들에 따른, 3D 환경에 디스플레이될 2D 콘텐츠를 분해하기 위한 방법을 예시하는 흐름도이다.
[0040] 도 4는 일부 실시예들에 따른, 2D 콘텐츠에서 엘리먼트들을 식별하기 위한 방법을 예시하는 흐름도이다.
[0041] 도 5는 일부 실시예들에 따른, 2D 콘텐츠로부터 분해된 엘리먼트들을 저장하기 위한 테이블의 예를 도시한다.
[0042] 도 6은 일부 실시예들에 따른, 사용자의 로컬 환경으로부터 표면들을 식별하기 위한 방법을 예시하는 흐름도이다.
[0043] 도 7은 일부 실시예들에 따른, 사용자의 로컬 환경으로부터 식별된 표면들의 인벤토리를 저장하기 위한 테이블의 예를 도시한다.
[0044] 도 8은 일부 실시예들에 따른, 2D 콘텐츠로부터의 엘리먼트들을 이용가능한 표면들에 맵핑하기 위한 방법을 예시하는 흐름도이다.
[0045] 도 9는 일부 실시예들에 따른, 사용자의 로컬 환경으로부터의 표면들로의 2D 콘텐츠로부터의 엘리먼트들의 맵핑을 저장하기 위한 테이블의 예를 도시한다.
[0046] 도 10a는 상호작용 가능한 오브젝트들과 연관된 데이터의 물리적 배치 및 조작을 구현하기 위한 접근법의 흐름도를 도시한다.
[0047] 도 10b는 브라우저 윈도우들의 물리적 배치 및 조작을 구현하기 위한 접근법의 흐름도를 도시한다.
[0048] 도 10c는 벽 장식품들의 물리적 배치 및 조작을 구현하기 위한 접근법의 흐름도를 도시한다.
[0049] 도 11a-f는 혼합 현실 환경에 윈도우들을 물리적으로 배치하기 위한 접근법의 예시된 예를 제공한다.
[0050] 도 12a-f는 혼합 현실 환경에 상호작용 가능한 오브젝트들과 연관된 데이터를 물리적으로 배치하기 위한 접근법의 예시된 예를 제공한다.
[0051] 도 13은 본 개시내용의 실시예를 구현하는 데 적절한 예시적인 컴퓨팅 시스템의 블록도이다.
[0052] 다양한 실시예들이 이제 도면들을 참조하여 상세히 설명될 것이며, 이들은 당업자가 본 개시내용을 실시할 수 있게 하기 위해 본 개시내용의 예시적인 예들로서 제공된다. 특히, 아래의 예들 및 도면들은 본 개시내용의 범위를 제한하도록 의도되지 않는다. 본 개시내용의 특정 엘리먼트들이 알려진 컴포넌트들(또는 방법들 또는 프로세스들)을 사용하여 부분적으로 또는 완전히 구현될 수 있는 경우, 그러한 알려진 컴포넌트들(또는 방법들 또는 프로세스들) 중에서 본 개시내용의 이해를 위해 필요한 부분들만 설명될 것이며, 그러한 알려진 컴포넌트들(또는 방법들 또는 프로세스들)의 다른 부분들의 상세한 설명은 본 개시내용을 불분명하게 하지 않도록 생략될 것이다. 추가로, 다양한 실시예들은 예시를 통해 본원에서 참조되는 컴포넌트들에 대한 현재 및 미래의 알려진 등가물들을 포함한다.
웹 페이지 분해
[0053] 본 개시내용의 실시예들은 공간적으로 조직된 3D 환경에서 디스플레이될 2D 웹 페이지를 분해할 것이다. 2D 웹 페이지는 머리-장착 시스템, 모바일 디바이스(예컨대, 셀 폰), 태블릿, 텔레비전, 애플리케이션 등의 웹 브라우저 상에서 시작될 수 있다. 일부 실시예들에서, 2D 웹 페이지는 랩톱 컴퓨터, 데스크톱 컴퓨터, 2D 웹 페이지에 대한 링크를 갖는 이메일 애플리케이션, 2D 웹 페이지에 대한 링크를 참조하거나 포함하는 전자 메시지 등과 같은 다른 애플리케이션 또는 디바이스로부터 수신될 수 있다.
[0054] 도 1을 참조하면, 환경(100)은 아래에 설명된 프로세스들(예컨대, 사용자의 물리적 환경(105)에서 3D 표면들 상에 디스플레이될 웹 페이지로부터 2D 콘텐츠를 분해함)을 구현하기 위한 물리적 환경 및 시스템들을 나타낸다. 환경(100)의 대표적인 물리적 환경 및 시스템은 머리-장착 시스템(160)을 통해 사용자(108)에 의해 보이는 것과 같은 사용자의 물리적 환경(105)을 포함한다. 환경(100)의 대표적인 시스템은 네트워크(120)에 동작가능하게 커플링된 웹 브라우저(110)를 통해 2D 콘텐츠(예컨대, 웹 페이지)에 액세스하는 것을 추가로 포함한다. 네트워크(120)는 인터넷, 내부 네트워크, 사설 클라우드 네트워크, 공개 클라우드 네트워크 등일 수 있다. 웹 브라우저(110)는 또한 네트워크(120)를 통해 프로세서(170)에 동작가능하게 커플링된다. 프로세서(170)가 머리-장착 시스템(160)과 별개의 분리된 컴포넌트로서 도시되지만, 대안적인 실시예에서, 프로세서(170)는 머리-장착 시스템(160)의 하나 이상의 컴포넌트들과 통합될 수 있고 그리고/또는 환경(100) 내의 다른 시스템 컴포넌트들, 이를테면, 예컨대, 컴퓨팅 네트워크(125) 및 저장 디바이스들(130)에 액세스하는 네트워크(120)에 통합될 수 있다. 프로세서(170)는 정보, 이를테면 머리-장착 시스템(160), 로컬 저장 디바이스(140), 웹 브라우저(110), 컴퓨팅 네트워크(125) 및 저장 디바이스들(130)로부터 수신된 비디오, 오디오 및 콘텐츠를 수신 및 프로세싱하기 위한 소프트웨어(150)로 구성될 수 있다. 소프트웨어(150)는 네트워크(120)를 통해 컴퓨팅 네트워크(125) 및 저장 디바이스들(130)과 통신할 수 있다. 소프트웨어(150)는 프로세서(170) 상에 설치될 수 있거나, 또는 다른 실시예에서; 소프트웨어의 특징들 및 기능성들은 프로세서(170)에 통합될 수 있다. 프로세서(170)는 또한 사용자(108)의 인근으로부터의 외부 저장 디바이스 상에 원격으로 저장된 정보에 의존하지 않고서 신속한 액세스를 위해 프로세서(170)에 의해 사용되는 정보를 저장하기 위한 로컬 저장 디바이스(140)로 구성될 수 있다. 다른 실시예들에서, 프로세서(170)는 머리-장착 시스템(160) 내에 통합될 수 있다.
[0055] 사용자의 물리적 환경(105)은, 사용자가 주위를 이동하고 머리-장착 시스템(160)을 통해 사용자의 물리적 환경(105)을 볼 때 사용자(108)의 물리적 주변이다. 예컨대, 도 1을 참조하면, 사용자의 물리적 환경(105)은 2개의 벽들(예컨대, 메인 벽(180) 및 측벽(184), 메인 벽 및 측벽은 사용자의 뷰에 대해 상대적임) 및 테이블(188)을 갖는 룸을 도시한다. 메인 벽(180) 상에, 특정 2D 콘텐츠를 투사할 후보 표면일 수 있는 물리적 경계(예컨대, 벽 또는 창문 등에 매달리거나 부착된 그림)를 갖는 물리적 표면을 표시하기 위해 흑색 실선으로 묘사된 직사각형 표면(182)이 있다. 측벽(184) 상에, 물리적 경계(예컨대, 벽 또는 창문 등에 매달리거나 부착된 그림)를 갖는 물리적 표면을 표시하기 위해 흑색 실선으로 묘사된 제2 직사각형 표면(186)이 있다. 테이블(188) 상에, 상이한 오브젝트들이 있을 수 있다. 1) 특정 2D 콘텐츠가 저장 및 디스플레이될 수 있는 가상 롤로덱스(Rolodex)(190); 2) 특정 2D 콘텐츠를 투사할 물리적 경계를 갖는 물리적 표면을 표현하기 위해 흑색 실선으로 묘사된 수평 표면(192); 및 3) 예컨대, 특정 2D 콘텐츠가 저장 및 디스플레이될 수 있는 스택된 가상 신문을 표현하기 위해 흑색 점선으로 묘사된 가상 정사각형 표면들(194)의 다수의 스택들.
[0056] 웹 브라우저(110)는 또한 인터넷으로부터의 또는 인트라넷/사설 네트워크 내의 블로그 페이지를 디스플레이할 수 있다. 추가적으로, 웹 브라우저(110)는 또한 디지털 2D 콘텐츠를 디스플레이하는 임의의 기술일 수 있다. 2D 콘텐츠는 예컨대, 웹 페이지들, 블로그들, 디지털 사진들, 비디오들, 뉴스 기사들, 뉴스레터들 또는 음악을 포함할 수 있다. 2D 콘텐츠는 네트워크(120)를 통해 사용자(108)에 의해 액세스가능한 저장 디바이스들(130)에 저장될 수 있다. 일부 실시예들에서, 2D 콘텐츠는 또한 스트리밍 콘텐츠, 예컨대, 라이브 비디오 피드들 또는 라이브 오디오 피드들일 수 있다. 저장 디바이스들(130)은, 예컨대, 데이터베이스, 파일 시스템, 영구적 메모리 디바이스, 플래시 드라이브, 캐시 등을 포함할 수 있다. 일부 실시예들에서, 2D 콘텐츠(예컨대, 웹 페이지)를 포함하는 웹 브라우저(110)는 컴퓨팅 네트워크(125)를 통해 디스플레이된다.
[0057] 컴퓨팅 네트워크(125)는 웹 브라우저(110) 상의 웹 페이지에 디스플레이하기 위한 2D 콘텐츠를 리트리브(retrieve) 및 저장하기 위해 저장 디바이스들(130)에 액세스한다. 일부 실시예들에서, 로컬 저장 디바이스(140)는 관심대상 2D 콘텐츠를 사용자(108)에게 제공할 수 있다. 로컬 저장 디바이스(140)는, 예컨대, 플래시 드라이브, 캐시, 하드 드라이브, 데이터베이스, 파일 시스템 등을 포함할 수 있다. 로컬 저장 디바이스(140)에 저장된 정보는 최근에 액세스된 2D 콘텐츠 또는 3D 공간에서 최근에 디스플레이된 콘텐츠를 포함할 수 있다. 로컬 저장 디바이스(140)는 3D 공간 환경(예컨대, 사용자 물리적 환경(105) 내의 3D 표면들) 상에 2D 콘텐츠를 디스플레이하기 위해 2D 콘텐츠를 분해하는 것을 돕기 위해 특정 콘텐츠를 로컬로 소프트웨어(150)에 제공함으로써 환경(100)의 시스템들에 대한 성능에서의 개선들을 허용한다.
[0058] 소프트웨어(150)는 사용자의 물리적 환경(105) 내에 디스플레이될 2D 콘텐츠를 분해하는 기능들을 수행하기 위해 비-일시적 컴퓨터 판독가능 매체 내에 저장된 소프트웨어 프로그램들을 포함한다. 소프트웨어(150)는 프로세서(170) 상에서 실행될 수 있고, 프로세서(170)는 사용자(108)에게 로컬로 부착될 수 있거나, 또는 일부 다른 실시예들에서, 소프트웨어(150) 및 프로세서(170)는 머리-장착 시스템(160) 내에 포함될 수 있다. 일부 실시예들에서, 소프트웨어(150)의 특징들 및 기능들의 부분들은 사용자(108)로부터 원격인 컴퓨팅 네트워크(125) 상에서 저장 및 실행될 수 있다. 예컨대, 일부 실시예들에서, 2D 콘텐츠를 분해하는 것은 컴퓨팅 네트워크(125) 상에서 발생할 수 있고, 분해 결과들은 저장 디바이스들(130) 내에 저장될 수 있고, 분해된 2D 콘텐츠를 제공하기 위한 사용자의 로컬 환경의 표면들의 인벤토리를 만드는 것은 프로세서(170) 내에서 발생할 수 있고, 표면들 및 맵핑들의 인벤토리는 로컬 저장 디바이스(140) 내에 저장된다. 일 실시예에서, 2D 콘텐츠를 분해하고, 로컬 표면들의 인벤토리를 만들고, 2D 콘텐츠의 엘리먼트들을 로컬 표면들에 맵핑하고 2D 콘텐츠의 엘리먼트들을 디스플레이하는 프로세스들 모두는 프로세서(170) 및 소프트웨어(150) 내에서 로컬로 발생할 수 있다.
[0059] 머리-장착 시스템(160)은 사용자 인터페이스, 사용자-감지 시스템, 환경 감지 시스템 및 프로세서(모두 미도시)를 포함하는 VR(virtual reality) 또는 AR(augmented reality) 머리-장착 시스템일 수 있다. 머리-장착 시스템(160)은 디지털 세계와 상호작용하고 이를 경험하기 위한 인터페이스를 사용자(108)에게 제공한다. 이러한 상호작용은 사용자 및 디지털 세계, 환경(100)과 인터페이싱하는 하나 이상의 다른 사용자들 및 디지털 및 물리적 세계 내의 오브젝트들을 수반할 수 있다.
[0060] 사용자 인터페이스는 사용자 인터페이스를 통한 사용자 입력에 의해 2D 콘텐츠를 수신하는 것 및 2D 콘텐츠 내의 엘리먼트들을 선택하는 것을 포함할 수 있다. 사용자 인터페이스는 햅틱 인터페이스 디바이스들, 키보드, 마우스, 조이스틱, 모션 캡처 제어기, 광학 추적 디바이스 및 오디오 입력 디바이스 중 적어도 하나 또는 조합일 수 있다. 햅틱 인터페이스 디바이스는 인간이 신체 감각들 및 움직임들을 통해 컴퓨터와 상호작용하게 허용하는 디바이스이다. 햅틱은 컴퓨팅 디바이스 상에서 액션들 또는 프로세스들을 수행하기 위한 촉각 피드백 또는 다른 신체 감각들을 포함하는 인간-컴퓨터 상호작용 기술의 타입을 지칭한다.
[0061] 사용자-감지 시스템은 머리-장착 시스템(160)을 착용하고 있는 사용자(108)와 관련된 특정 특징들, 특성들 또는 정보를 검출하도록 동작가능한 하나 이상의 센서들(162)을 포함할 수 있다. 예컨대, 일부 실시예들에서, 센서들(162)은 사용자(108)의 실제-시간 광학 특성들/측정들, 이를테면, 예컨대, 동공 수축/확장, 각각의 동공의 각도 측정/포지셔닝, 구형성, 눈 형상(시간이 지남에 따라 눈 형상이 변할 때) 및 다른 해부학적 데이터 중 하나 이상을 검출할 수 있는 카메라 또는 광학 검출/스캐닝 회로를 포함할 수 있다. 이러한 데이터는 사용자의 뷰잉 경험을 향상시키기 위해 머리-장착 시스템(160)에 의해 사용될 수 있는 정보(예컨대, 사용자의 시각 초점 포인트)를 제공하거나 이를 계산하기 위해 사용될 수 있다.
[0062] 환경-감지 시스템은 사용자의 물리적 환경(105)으로부터 데이터를 획득하기 위한 하나 이상의 센서들(164)을 포함할 수 있다. 센서들(164)에 의해 검출된 오브젝트들 또는 정보는 머리-장착 시스템(160)에 대한 입력으로서 제공될 수 있다. 일부 실시예들에서, 이러한 입력은 가상 세계와의 사용자 상호작용을 표현할 수 있다. 예컨대, 데스크(예컨대, 테이블(188)) 상의 가상 키보드를 보고 있는 사용자(예컨대, 사용자(108))는 사용자가 가상 키보드 상에 타이핑하는 것처럼 자신의 손가락들로 제스처를 취할 수 있다. 이동하는 손가락들의 모션은 센서들(164)에 의해 캡처되고 입력으로서 머리-장착 시스템(160)에 제공될 수 있고, 입력은 가상 세계를 변경하거나 새로운 가상 오브젝트들을 생성하기 위해 사용될 수 있다.
[0063] 센서들(164)은 예컨대, 계속해서 및/또는 간헐적으로 투사된 적외선 구조화된 광을 통해, 장면 정보를 해석하기 위해, 예컨대, 일반적으로 외향 카메라 또는 스캐너를 포함할 수 있다. 환경-감지 시스템은 정적 오브젝트들, 동적 오브젝트들, 사람들, 제스처들 및 다양한 조명, 대기 및 음향 조건들을 포함하는 로컬 환경을 검출 및 등록함으로써 사용자(108) 주위에서 사용자의 물리적 환경(105)의 하나 이상의 엘리먼트들을 맵핑하기 위해 사용될 수 있다. 따라서, 일부 실시예들에서, 환경-감지 시스템은, 로컬 컴퓨팅 시스템(예컨대, 프로세서(170))에 임베딩되고 센서들(164)에 의해 검출된 하나 이상의 오브젝트들 또는 정보를 디지털적으로 재구성하도록 동작가능한 이미지-기반 3D 재구성 소프트웨어를 포함할 수 있다.
[0064] 하나의 예시적인 실시예에서, 환경-감지 시스템은, 모션 캡처 데이터(제스처 인식을 포함함), 깊이 감지, 얼굴 인식, 오브젝트 인식, 고유의 오브젝트 피처 인식, 음성/오디오 인식 및 프로세싱, 음향 소스 로컬화, 잡음 감소, 적외선 또는 유사한 레이저 투사뿐만 아니라 단색 및/또는 컬러 CMOS 센서들(또는 다른 유사한 센서들), 시야 센서들 및 다양한 다른 광학-향상 센서들 중 하나 이상을 제공한다. 환경-감지 시스템은 앞서 논의된 것들 이외의 다른 컴포넌트들을 포함할 수 있음이 인지되어야 한다.
[0065] 위에서 논의된 바와 같이, 프로세서(170)는 일부 실시예들에서, 환경(100)의 시스템의 다른 컴포넌트들과 통합된 머리-장착 시스템(160)의 다른 컴포넌트들과 통합될 수 있거나, 또는 도 1에 도시된 바와 같이 분리된 디바이스(웨어러블 또는 사용자(108)로부터 별개임)일 수 있다. 프로세서(170)는 물리적, 유선 연결을 통해 또는 무선 연결, 이를테면, 예컨대, 모바일 네트워크 연결들(셀룰러 전화 및 데이터 네트워크들을 포함함), Wi-Fi, 블루투스 또는 임의의 다른 무선 연결 프로토콜을 통해 머리-장착 시스템(160)의 다양한 컴포넌트들에 연결될 수 있다. 프로세서(170)는 메모리 모듈, 통합된 및/또는 추가적인 그래픽 프로세싱 유닛, 무선 및/또는 유선 인터넷 연결성, 및 소스(예컨대, 컴퓨팅 네트워크(125) 및 머리-장착 시스템(160)의 사용자-감지 시스템 및 환경-감지 시스템)로부터의 데이터를 이미지 및 오디오 데이터로 변환할 수 있는 코덱 및/또는 펌웨어를 포함할 수 있고, 이미지들/비디오 및 오디오는 사용자 인터페이스(미도시)를 통해 사용자(108)에게 제공될 수 있다.
[0066] 프로세서(170)는 머리-장착 시스템(160)의 다양한 컴포넌트들에 대한 데이터 프로세싱뿐만 아니라 머리-장착 시스템(160)과 웹 브라우저(110) 및 컴퓨팅 네트워크(125)에 의해 디스플레이 또는 액세스되는 웹 페이지들로부터의 2D 콘텐츠 간의 데이터 교환을 다룬다. 예컨대, 프로세서(170)는 사용자(108)와 컴퓨팅 네트워크(125) 간의 데이터 스트리밍을 버퍼링 및 프로세싱하고, 이로써 원활하고 연속적이고 높은 신뢰도의 사용자 경험을 가능하게 하기 위해 사용될 수 있다.
[0067] 웹 페이지로부터의 2D 콘텐츠를 엘리먼트들로 분해하고 3D 환경에서 표면들 상에 디스플레이될 엘리먼트들을 맵핑하는 것은 지능형 및 논리적 방식으로 달성될 수 있다. 미리 결정된 세트의 규칙들은, 2D 콘텐츠/웹 페이지 내에서 식별된 특정 타입들의 엘리먼트들/콘텐츠를 어디에 배치할지를 추천, 제안 또는 지시하기 위해 이용가능할 수 있다. 예컨대, 특정 타입들의 2D 콘텐츠 엘리먼트들은 하나 이상의 엘리먼트들을 저장 및 디스플레이할 수 있는 물리적 또는 가상 오브젝트 표면에 맵핑될 필요가 있을 수 있는 하나 이상의 콘텐츠 엘리먼트들을 가질 수 있는 반면, 다른 타입들의 2D 콘텐츠 엘리먼트들은 단일 오브젝트, 이를테면 웹 페이지 내의 메인 비디오 또는 메인 기사일 수 있고, 이러한 경우, 단일 오브젝트는 사용자에게 단일 오브젝트를 디스플레이하기에 가장 타당한 표면에 맵핑될 수 있다.
[0068] 도 2는 일부 실시예들에 따른, 사용자의 3D 환경으로의 2D 콘텐츠의 엘리먼트들의 예시적인 맵핑을 예시한다. 환경(200)은 웹 브라우저(110) 및 사용자의 물리적 환경(105)에 의해 디스플레이 또는 액세스되는 2D 콘텐츠(예컨대, 웹 페이지)를 묘사한다. 화살표 머리를 갖는 점선들은 사용자의 물리적 환경(105)에 맵핑 및 디스플레이되는 2D 콘텐츠(예컨대, 웹 페이지)로부터 엘리먼트들(예컨대, 특정 타입들의 콘텐츠)을 묘사한다. 2D 콘텐츠로부터의 특정 엘리먼트들은 웹 설계자 힌트들 또는 미리-정의된 브라우저 규칙들 중 어느 하나에 기반하여 사용자의 물리적 환경(105)의 특정 물리적 또는 가상 오브젝트들에 맵핑된다.
[0069] 예로서, 웹 브라우저(110)에 의해 액세스 또는 디스플레이되는 2D 콘텐츠는 다수의 탭들을 갖는 웹 페이지일 수 있고, 현재 활성 탭(260)이 디스플레이되고 2차 탭(250)이 웹 브라우저(110) 상에 디스플레이하기 위해 선택될 때까지 현재 숨겨져 있다. 전형적으로 웹 페이지가 활성 탭(260) 내에 디스플레이된다. 이러한 특정 예에서, 활성 탭(260)은 메인 비디오(220), 사용자 코멘트들(230) 및 제안된 비디오들(240)을 포함하는 YOUTUBE 페이지를 디스플레이하고 있다. 도 2의 이러한 예시적인 예에 묘사된 바와 같이, 메인 비디오(220)는 수직 표면(182) 상에 디스플레이하기 위해 맵핑될 수 있고, 사용자 코멘트들(230)은 수평 표면(192) 상에 디스플레이하기 위해 맵핑될 수 있고, 제안된 비디오들(240)은 수직 표면(182)과 상이한 수직 표면(186) 상에 디스플레이하기 위해 맵핑될 수 있다. 부가적으로, 2차 탭(250)은 가상 롤로덱스(190) 상에 그리고/또는 멀티-스택 가상 오브젝트(194) 상에 디스플레이하기 위해 맵핑될 수 있다. 일부 실시예들에서, 2차 탭(250) 내의 특정 콘텐츠는 멀티-스택 가상 오브젝트(194)에 저장될 수 있다. 다른 실시예들에서, 2차 탭(250) 내에 상주하는 전체 콘텐츠는 멀티-스택 가상 오브젝트(194) 상에 저장 및/또는 디스플레이될 수 있다. 마찬가지로, 가상 롤로덱스(190)는 2차 탭(250)으로부터 특정 콘텐츠를 포함할 수 있거나 또는 가상 롤로덱스(190)는 2차 탭(250) 내에 상주하는 전체 콘텐츠를 포함할 수 있다.
[0070] 수직 표면(182)은 룸(사용자의 물리적 환경(105)으로 묘사됨)의 메인 벽(180) 상에 이미 있을 수 있는 임의의 타입의 구조, 이를테면 창문 유리 또는 사진 프레임일 수 있다. 일부 실시예들에서, 수직 표면(182)은, 사용자(108)가 메인 비디오(220)를 보기에 적합한 수직 표면(182)의 프레임의 최적의 사이즈를 머리-장착 시스템(160)이 결정하는 빈 벽일 수 있다. 수직 표면(182)의 사이즈의 이러한 결정은, 사용자(108)가 메인 벽(180)으로부터 있는 거리, 메인 비디오(220)의 사이즈 및 디멘션, 메인 비디오(220)의 품질, 커버되지 않은 벽 공간의 양, 및/또는 메인 벽(180)을 보고 있을 때 사용자의 포즈에 적어도 부분적으로 기반할 수 있다. 예컨대, 만약 메인 비디오(220)의 품질이 높은 해상도라면, 수직 표면(182)의 사이즈는 더 클 수 있는데, 이는 메인 비디오(220)의 품질이 수직 표면(182)에 의해 악영향을 받지 않을 것이기 때문이다. 그러나, 만약 메인 비디오(220)의 비디오 품질이 열악한 품질이라면, 큰 수직 표면(182)을 갖는 것은 비디오 품질을 크게 방해할 수 있고, 이러한 경우, 본 개시내용의 방법들 및 시스템들은 픽실레이션(pixilation)으로부터 열악한 비디오 품질을 최소화하기 위해 수직 표면(182)을 더 작게 리사이징/재정의할 수 있다.
[0071] 수직 표면(186)은, 수직 표면(182)과 같이, 사용자의 물리적 환경(105) 내의 인접한 벽(예컨대, 측벽(184)) 상의 수직 표면이다. 일부 실시예들에서, 사용자(108)의 배향에 기반하여, 측벽(184) 및 수직 표면(186)은 인클라인(incline) 상의 경사진 표면들인 것으로 나타날 수 있다. 인클라인 상의 경사진 표면들은 수직 및 수평 표면들 외에도 표면들의 배향의 타입일 수 있다. YOUTUBE 웹 페이지로부터 제안된 비디오들(240)은 측벽(184) 상의 수직 표면(186) 상에 배치되어, 사용자(108)가 이러한 예에서 자신들의 머리를 단순히 약간 오른쪽으로 이동시킴으로써 제안된 비디오들을 볼 수 있게 허용할 수 있다.
[0072] 가상 롤로덱스(190)는 머리-장착 시스템(160)에 의해 생성되고 사용자(108)에게 디스플레이되는 가상 오브젝트일 수 있다. 가상 롤로덱스(190)는 사용자(108)가 한 세트의 가상 페이지들을 양방향으로 순환시키기 위한 능력을 가질 수 있다. 가상 롤로덱스(190)는 전체 웹 페이지들을 포함할 수 있거나, 이는 개별 기사들 또는 비디오들 또는 오디오들을 포함할 수 있다. 이러한 예에 도시된 바와 같이, 가상 롤로덱스(190)는 2차 탭(250)으로부터의 콘텐츠의 일부를 포함할 수 있거나, 일부 실시예들에서, 가상 롤로덱스(190)는 2차 탭(250)의 전체 페이지를 포함할 수 있다. 일부 실시예들에서, 가상 롤로덱스(190)는 또한 제1 탭의 콘텐츠 중 전부 또는 일부를 포함할 수 있다. 사용자(108)는 가상 롤로덱스(190) 내의 특정 탭에 간단히 초점을 맞춤으로써 가상 롤로덱스(190) 내의 콘텐츠를 양방향으로 순환시킬 수 있고, 머리-장착 시스템(160) 내의 하나 이상의 센서들(예컨대, 센서들(162))은 사용자(108)의 눈 초점을 검출하고, 가상 롤로덱스(190) 내의 탭들을 순환시키며, 그에 따라서 사용자(108)에 대한 관련 정보를 획득할 것이다. 일부 실시예들에서, 사용자(108)는 가상 롤로덱스(190)로부터 관련 정보를 선정하고, 관련 정보를 이용가능한 주변 표면 또는 또 다른 가상 오브젝트, 이를테면, 사용자(108)에 매우 근접한 가상 디스플레이(미도시) 중 어느 하나에 디스플레이하도록 머리-장착 시스템(160)에 명령할 수 있다.
[0073] 가상 롤로덱스(190)와 유사한 멀티-스택 가상 오브젝트(194)는 하나 이상의 탭들로부터의 완전한 콘텐츠들, 또는 사용자(108)가 북마크하거나, 미래의 뷰잉을 위해 저장하거나 개방한 다양한 웹페이지들 또는 탭들(즉, 비활성 탭들)로부터의 특정 콘텐츠들에 이르는 콘텐츠를 포함할 수 있다. 멀티-스택 가상 오브젝트(194)는 또한 신문의 실세계 스택과 유사하다. 멀티-스택 가상 오브젝트(194) 내의 각각의 스택은 특정 신문 기사, 페이지, 잡지 이슈, 레시피 등에 관련될 수 있다. 2D 콘텐츠 소스로부터의 2D 콘텐츠 엘리먼트 또는 콘텐츠를 배치하기 위한 표면을 제공하는 이러한 동일한 목적을 달성하기 위해 다수의 타입들의 가상 오브젝트들이 존재할 수 있다는 것을 당업자는 인지할 수 있다.
[0074] 웹 브라우저(110)에 의해 액세스 또는 디스플레이된 2D 콘텐츠가 단지 웹 페이지 이상일 수 있다는 것을 당업자는 인지할 수 있다. 일부 실시예들에서, 2D 콘텐츠는 포토 앨범들로부터의 사진들, 영화들로부터의 비디오들, TV 쇼들, YOUTUBE 비디오들, 상호작용 형태들 등일 수 있다. 또 다른 실시예들에서, 2D 콘텐츠는 e-책들 또는 책을 디스플레이하는 임의의 전자 수단일 수 있다. 마지막으로, 다른 실시예들에서, 2D 콘텐츠가 아직 설명되지 않은 다른 타입들의 콘텐츠일 수 있는데, 왜냐하면 2D 콘텐츠가 일반적으로 정보가 현재 제공되는 방법이기 때문이다. 만약 전자 디바이스가 2D 콘텐츠를 소비하면, 2D 콘텐츠는 2D 콘텐츠를 3D 세팅(예컨대, AR)에서 분해하고 디스플레이하기 위해 머리-장착 시스템(160)에 의해 사용될 수 있다.
[0075] 일부 실시예들에서, 액세스된 2D 콘텐츠를 맵핑하는 것은 (예컨대, 브라우저로부터) 2D 콘텐츠를 추출하는 것 및 (콘텐츠가 더 이상 브라우저에 있지 않고 표면 상에만 있도록) 2D 콘텐츠를 표면 상에 놓는 것을 포함할 수 있고, 일부 실시예들에서, 맵핑하는 것은 (예컨대, 브라우저로부터) 콘텐츠를 복제하는 것 및 (콘텐츠가 브라우저에 뿐만 아니라 표면 상에 있도록) 콘텐츠를 표면 상에 놓는 것을 포함할 수 있다.
[0076] 2D 콘텐츠를 분해하는 것은 인터넷 및 컴퓨터-관련 기술 영역에서 존재하는 기술적 문제점이다. 웹 페이지들과 같은 2D 콘텐츠들은, 사용자를 위한 스크린 상의 웹 페이지들 내에 엘리먼트들을 어디에 그리고 어떻게 디스플레이할지를 컴퓨터 프로세서들 및 기술적 컴포넌트들에 명령하기 위해 특정 타입들의 프로그래밍 언어들, 이를테면, HTML을 사용하여 구성된다. 앞서 논의된 바와 같이, 웹 설계자는 전형적으로 엘리먼트들(예컨대, 콘텐츠)을 2D 캔버스 내에 배치하고 디스플레이하기 위해 2D 캔버스(예컨대, 스크린)의 범위 내에서 작업한다. HTML 태그들은 HTML 문서 또는 HTML 문서 내의 부분들이 어떻게 포맷되는지를 결정하는 데 사용된다. 일부 실시예들에서, (추출 또는 복제된) 2D 콘텐츠는 HTML 태그 레퍼런스를 유지할 수 있고, 일부 실시예들에서, HTML 태그 레퍼런스가 재정의될 수 있다.
[0077] 도 3은 일부 실시예들에 따른, 3D 환경에 디스플레이될 2D 콘텐츠를 분해하기 위한 방법을 예시하는 흐름도이다. 방법은 310에서 2D 콘텐츠를 식별하는 단계, 320에서 2D 콘텐츠에서 엘리먼트들을 식별하는 단계, 330에서 주변 표면들을 식별하는 단계, 340에서 식별된 2D 콘텐츠에서 식별된 엘리먼트들을 식별한 주변 표면들로부터의 식별된 표면들에 맵핑하는 단계, 및 350에서 가상 콘텐츠로서 엘리먼트들을 선택된 표면들 상에 디스플레이하는 단계를 포함하고, 선택된 표면들은 식별된 표면들로의 엘리먼트들의 맵핑으로부터 선택된다.
[0078] 310에서 2D 콘텐츠를 식별하는 것은 디지털 콘텐츠를 서치하기 위해 머리-장착 시스템(160)의 사용을 수반할 수 있다. 310에서 2D 콘텐츠를 식별하는 것은 또한 네트워크(120)에 연결된 서버들(예컨대, 저장 디바이스들(130)) 상의 디지털 콘텐츠에 액세스하는 것을 포함할 수 있다. 310에서 2D 콘텐츠를 식별하는 것은 사용자(108)가 관심을 갖는 웹 페이지들에 대한 인터넷을 브라우징하는 것을 포함할 수 있다. 일부 실시예들에서, 310에서 2D 콘텐츠를 식별하는 것은 인터넷 상의 콘텐츠를 서치하기 위한, 사용자(108)에 의해 정해진 음성-활성화된 커맨드들을 포함할 수 있다. 예컨대, 사용자(108)는 디바이스(예컨대, 머리-장착 시스템(160))와 상호작용할 수 있고, 여기서 사용자(108)는, 비디오를 서치하기 위한 커맨드를 말하고 이어서 비디오의 네임 및 비디오의 간략한 설명을 말함으로써 특정 비디오를 서치하도록 디바이스에 요청함으로써 인터넷 상의 특정 비디오를 서치한다. 이어서, 디바이스는, 사용자(108)가 디바이스의 2D 브라우저 상에 디스플레이되는 비디오를 보도록 허용하기 위해, 인터넷을 서치하고 비디오를 2D 브라우저 상에 풀 업할 수 있다. 이어서, 사용자(108)는, 비디오가, 사용자(108)가 공간 3D 환경에서 보고 싶은 비디오라는 것을 확인할 수 있다.
[0079] 일단 2D 콘텐츠가 식별되면, 방법은, 사용자(108)에게 디스플레이하기 위한 2D 콘텐츠 내의 이용가능한 엘리먼트들의 인벤토리를 만들기 위해, 320에서 2D 콘텐츠의 엘리먼트들을 식별한다. 2D 콘텐츠 내의 엘리먼트들은, 예컨대, 웹 페이지 상에서 포스팅되는 비디오들, 기사들 및 뉴스레터들, 소셜 미디어 웹사이트 상의 코멘트들 및 포스팅들, 블로그 포스트들, 다양한 웹사이트들 상에서 포스팅되는 사진들, 오디오 책들 등을 포함할 수 있다. 2D 콘텐츠(예컨대, 웹 페이지) 내의 이들 엘리먼트들은, 웹 페이지 상의 어디에 특정 엘리먼트가 배치되는지 및 일부 경우들에서 엘리먼트가 웹 페이지 상에 디스플레이되는 때 및 방법을 정의하기 위해 콘텐츠 설계자에 의해 제공된 HTML 태그들과 연관된 속성들을 갖는 HTML 태그들을 포함할 수 있다. 일부 실시예들에서, 본 개시내용의 방법들 및 시스템들은, 3D 세팅에서 엘리먼트를 어디에 그리고 어떻게 디스플레이하는지를 결정하기 위해 340에서 맵핑 프로세스를 돕도록 콘텐츠 설계자에 의해 제공된 힌트들 및 제안들로서 이들 HTML 태그들 및 속성들을 활용할 수 있다. 예컨대, 아래는 웹 페이지 개발자에 의해 제공된 예시적인 HTML 웹 페이지 코드이다.
웹 페이지 개발자에 의해 제공된 예시적인 HTML 웹 페이지 코드
Figure pct00001
[0080] 웹 페이지 개발자에 의해 제공된 예시적인 HTML 웹 페이지 코드는 웹 페이지 상에 메인 비디오를 어떻게 디스플레이할지에 대한 선호도, 및 추천(또는 제안)되는 비디오들을 어떻게 디스플레이할지에 대한 선호도를 포함한다. 특히, 이러한 HTML 웹 페이지 코드는, 비디오를 디스플레이하기 위한 수직 표면을 특정하기 위해 "수직"의 타입 값을 사용하여 메인 비디오를 어떻게 디스플레이할지를 지정하기 위해 "스타일"의 태그를 사용한다. 추가적으로, "스타일" 태그 내에서, 웹 페이지 개발자에 의해 제공된 추가적인 힌트들은, 웹 페이지(예컨대, 메인 비디오) 내의 어떤 HTML 엘리먼트/콘텐츠가 어떤 잠재적인 표면 영역에 맵핑되어야 하는지를 우선순위화하는 데 사용하기 위한 매칭 알고리즘에 대한 "우선순위" 선호도를 포함할 수 있다. 예시적인 HTML 웹 페이지 코드에서, 우선순위는 수직 평면 레이아웃을 갖는 비디오에 대해 100의 값으로 세팅되었고, 여기서 이러한 예에서, 더 높은 우선순위 값은 더 높은 우선순위를 표시한다. 부가적으로, 이러한 예에서, 제안된 비디오들을 배치하기 위한 선호도는 스택 레이아웃의 "수평"의 타입 값을 갖는 스택에 웹 페이지 개발자에 의해 표시되고, 여기서 스택된 오브젝트들(예컨대, 이 경우에, 다른 제안된 비디오에 관하여 제안된 비디오) 사이의 거리는 20 cm이어야 한다.
[0081] 도 4는 일부 실시예들에 따른, 2D 콘텐츠에서 엘리먼트들을 식별하기 위한 방법을 예시하는 흐름도이다. 도 4는 일부 실시예들에 따른, 도 3의 320에서 2D 콘텐츠에서 엘리먼트들을 식별하는 것을 개시하는 상세한 흐름이다. 도 4는, 410에서 2D 콘텐츠 내의 콘텐츠 엘리먼트들을 식별하는 단계에서 시작되면, 이는 도 3의 320에서 2D 콘텐츠에서 엘리먼트들을 식별하는 단계와 유사하다. 방법은 420에서 콘텐츠의 배치에 관련된 속성들을 태그들로부터 식별하는 다음 단계로 진행한다. 앞서 논의된 바와 같이, 웹 페이지 설계자는, 웹 페이지를 설계 및 구성하면서, 각각의 엘리먼트를 어디에 그리고 어떻게 디스플레이할지를 정의하기 위해, 웹 페이지 내의 엘리먼트들과 HTML 태그들을 연관시킬 수 있다. 이들 HTML 태그들은 또한 웹 페이지의 특정 부분 상의 엘리먼트의 배치에 관련한 속성들을 포함할 수 있다. 머리-장착 시스템(160)이 검출하고 특정 엘리먼트가 어디에 디스플레이될 수 있는지에 관한 입력으로서 사용할 시스템의 다른 컴포넌트들과 이들 HTML 태그들을 조정할 것은 이들 HTML 태그들 및 이들의 속성들이다.
[0082] 각각의 엘리먼트로부터 힌트들 또는 태그들을 추출하는 것은 430에서 수행된다. 힌트들 또는 태그들은 전형적으로 2D 콘텐츠/웹 페이지의 콘텐츠 설계자 및/또는 웹 페이지 개발자에 의해 제공된 포맷팅 힌트들 또는 포맷팅 태그들이다. 앞서 논의된 바와 같이, 콘텐츠 설계자는, 웹 페이지 또는 스크린의 특정 부분에 2D 콘텐츠의 엘리먼트들을 디스플레이하도록 웹 브라우저(110)에 명령하기 위해, "웹 페이지 개발자에 의해 제공된 예시적인 HTML 웹 페이지 코드"에 도시된 바와 같은, 예컨대, HTML 태그 형태의 명령들 또는 힌트들을 제공할 수 있다. 일부 실시예들에서, 웹 페이지 설계자는 추가적인 포맷팅 규칙들을 정의하기 위해 추가적인 HTML 태그 속성들을 사용할 수 있다. 예컨대, 만약 사용자가 특정 컬러(예컨대, 적색)에 대한 감소된 민감도를 갖고, 적색을 디스플레이하지 않고, 대신에 다른 컬러를 사용하면, 또는 앞서 논의된 바와 같이, 만약 수직 표면 상에 디스플레이될 선호도를 갖는 비디오가 수직 표면 상에 디스플레이될 수 없다면, 대안적으로 비디오를 다른 (물리적) 표면 상에 디스플레이하거나 가상 표면을 생성하고, 비디오를 가상 표면 상에 디스플레이한다. 아래는 HTML 페이지 내의 각각의 엘리먼트로부터 힌트들/태그들을 추출하도록 HTML 페이지 전반에 걸쳐 파싱(parse)하기 위해 브라우저에서 구현된 예시적인 HTML 페이지 파서이다.
브라우저에서 구현된 예시적인 HTML 페이지 파서
Figure pct00002
Figure pct00003
[0083] 예시적인 HTML 페이지 파서는, 2D 콘텐츠(예컨대, 웹 페이지) 내의 특정 엘리먼트들/오브젝트들에 대한 디스플레이 선호도들을 제공하는 데 사용되는 HTML 태그들을 포함하는 HTML 페이지가 어떻게 파싱되고 식별되고 그리고/또는 추출/복제될 수 있는지를 보여준다. 예시적인 HTML 페이지 파서에 개시된 바와 같이, 2D 콘텐츠(예컨대, 웹 페이지) 내의 엘리먼트들은 개시된 샘플 코드를 사용하여 파싱될 수 있다. 다양한 엘리먼트 네임들 및 값들을 사용하는 특정 HTML 태그들은, 특정 엘리먼트가 (예컨대, 엘리먼트를 특정 표면에 맵핑함으로써) 3D 환경의 사용자에게 어떻게 디스플레이되는지를 결정하기 위해, HTML 페이지 파서(예컨대, ML.layout, ML.container 등)에 의해 식별/추출될 수 있다.
[0084] 하나 이상의 엘리먼트들에 대한 대안적 디스플레이 형태들을 룩업/서치하는 단계는 440에서 수행된다. 특정 포맷팅 규칙들은 웹 페이지 상의 이미지에 대해 특정될 수 있다. 예컨대, 만약 웹 브라우저(110)가 3D 버전의 이미지를 디스플레이할 수 있다면, 웹 페이지 설계자는, 이미지가 대안적인 버전의 이미지(예컨대, 3D 버전의 이미지)를 가질 수 있다는 것을 웹 브라우저(110)가 인식하게 허용하기 위해, 추가적인 태그를 배치하거나 특정 태그의 특정 속성들을 정의할 수 있다. 이어서, 웹 브라우저(110)는 3D 인에이블 브라우저에 디스플레이될 대안적인 버전의 이미지(예컨대, 3D 버전의 이미지)에 액세스할 수 있다.
[0085] 식별된 엘리먼트들을 2D 콘텐츠 내에 저장하는 것이 450에서 수행된다. 방법은, 식별된 엘리먼트들을 특정 표면들에 맵핑하기 위해 맵핑 루틴(예컨대, 도 3의 340에서 엘리먼트들을 식별된 표면들에 맵핑함)에 의해 사용되도록 식별된 엘리먼트들을 비-일시적인 저장 매체 내에 저장할 수 있다. 비-일시적 저장 매체는 저장 디바이스(130) 또는 로컬 저장 디바이스(140)와 같은 데이터 저장 디바이스를 포함할 수 있다. 엘리먼트들은 아래에서 설명되는 도 5에 개시된 테이블과 같은 특정 테이블에 저장될 수 있다. 일부 실시예들에서, 2D 콘텐츠 내의 식별된 엘리먼트들은 일시적 저장 매체에 저장될 수 있다.
[0086] 도 5는 일부 실시예들에 따른, 2D 콘텐츠로부터 분해된 엘리먼트들을 저장하기 위한 테이블의 예를 도시한다. 엘리먼트 테이블(500)은 도 4의 410에서 2D 콘텐츠 내에서 엘리먼트들을 식별한 결과들을 데이터베이스에 저장할 수 있는 예시적인 표이다. 엘리먼트 테이블(500)은, 예컨대, 엘리먼트 식별(ID)(510), 엘리먼트가 3D 표면 상에서 어디에 배치될 수 있는지에 대한 선호도 표시자(520), 특정 엘리먼트가 패런트 엘리먼트 내에 포함되는 경우 패런트 엘리먼트 ID(530), 엘리먼트가 차일드 엘리먼트를 포함할 수 있는 경우 차일드 엘리먼트 ID(540), 및 엘리먼트들의 다수의 버전들을 디스플레이하는 것과 호환 가능한 엘리먼트를 디스플레이하는 데 사용되는 표면 또는 가상 오브젝트를 가질 필요성을 보증할 수 있는 다수의 실시예들을 엘리먼트가 포함하는지 여부를 표시하기 위한 다중 엔티티 표시자(550)를 포함하는, 2D 콘텐츠 내의 하나 이상의 엘리먼트들에 관한 정보를 포함한다. 패런트 엘리먼트는, 서브-엘리먼트들(예컨대, 차일드 엘리먼트들)을 포함할 수 있는, 2D 콘텐츠 내의 엘리먼트/오브젝트이다. 예컨대, 220(예컨대, 메인 비디오(220))의 값을 갖는 엘리먼트 ID는 260(예컨대, 활성 탭(260))의 패런트 엘리먼트 ID 값을 가지며, 이는 메인 비디오(220)가 활성 탭(260)의 차일드 엘리먼트임을 표시한다. 아니면, 상이한 방식으로 언급하면, 메인 비디오(220)는 활성 탭(260) 내에 포함된다. 동일한 예를 계속하면, 메인 비디오(220)는 사용자 코멘트들(230)이 메인 비디오(220)와 연관되는지를 표시하는 차일드 엘리먼트 ID(230)(예컨대, 사용자 코멘트들(230))를 갖는다. 당업자는 엘리먼트 테이블(500)이 관계형 데이터베이스 또는 임의의 타입의 데이터베이스의 테이블일 수 있다는 것을 인지할 수 있다. 부가적으로, 엘리먼트 테이블(500)은 도 4의 410에서 2D 콘텐츠 내에서 엘리먼트들을 식별한 결과들을 포함하는 컴퓨터 메모리(예컨대, 캐시)의 어레이일 수 있다.
[0087] 엘리먼트 테이블(500)의 행들(560)의 각각의 행은 웹 페이지 내로부터의 엘리먼트에 대응한다. 엘리먼트 ID(510)는 각각의 엘리먼트에 대한 고유 식별자(예컨대, 엘리먼트 ID)를 포함하는 열이다. 일부 실시예들에서, 엘리먼트의 고유성은 엘리먼트 ID(510) 열 및 테이블 내의 다른 열(예컨대, 만약 콘텐츠 설계자에 의해 식별된 하나 초과의 선호도가 존재하면 선호도(520) 열)의 조합으로서 정의될 수 있다. 선호도(520)는, 열의 값이 콘텐츠 설계자/개발자(예컨대, 웹 페이지 설계자)에 의해 정의된 HTML 태그들 및 속성들에 적어도 부분적으로 기반하여 결정되고 도 4의 430에서 각각의 엘리먼트로부터 힌트들 또는 태그들을 추출하는 데 있어 개시된 바와 같이 시스템 및 방법에 의해 식별되는 열이다. 다른 실시예들에서, 선호도(520) 열은, 웹 페이지 내의 특정 타입들의 엘리먼트들이 3D 환경 내에서 디스플레이되어야 하는 곳을 특정하기 위해 미리 정의된 브라우저 규칙들에 적어도 부분적으로 기반하여 결정될 수 있다. 이러한 미리 정의된 규칙들은 3D 환경에서 엘리먼트를 배치할 최상의 곳을 결정하기 위한 시스템들 및 방법들에 대한 제안들을 제공할 수 있다.
[0088] 패런트 엘리먼트 ID(530)는, 현재 행 내의 이러한 특정 엘리먼트가 디스플레이되거나 관련된 패런트 엘리먼트의 엘리먼트 ID를 포함하는 열이다. 웹 페이지 내의 특정 엘리먼트는 페이지의 다른 엘리먼트 내에 임베딩되거나, 배치되거나 웹 페이지 상의 다른 콘텐츠 엘리먼트와 관련될 수 있다. 예컨대, 현재의 실시예에서, 엘리먼트 ID(510) 열의 제1 엔트리는 도 2의 메인 비디오(220)에 대응하는 엘리먼트 ID(220)의 값을 저장한다. 메인 비디오(220)에 대응하는 선호도 속성(520) 열의 선호도 값은 HTML 태그들 및/또는 속성들에 기반하여 결정되고, 현재 실시예에서, 이 엘리먼트는 사용자의 물리적 환경(105)의 "메인" 위치에 배치되어야 한다는 것이다. 사용자(108)의 현재 위치에 의존하여, 그 메인 위치는 거실의 벽, 또는 사용자(108)가 현재 보고 있는 부엌의 스토브 최상부 후드일 수 있거나, 또는 만약 넓은-개방 공간에 있다면, 메인 비디오(220)가 투사될 수 있는 사용자(108)의 사이트 라인 앞에 투사되는 가상 오브젝트일 수 있다. 2D 콘텐츠의 엘리먼트들이 사용자(108)에게 어떻게 디스플레이되는지에 대한 더 많은 정보는 추후 섹션에 개시될 것이다. 현재 예를 계속하여, 패런트 엘리먼트 ID(530) 열은 도 2의 활성 탭(260)에 대응하는 엘리먼트 ID(260)의 값을 저장한다. 따라서, 메인 비디오(220)는 활성 탭(260)의 차일드이다.
[0089] 차일드 엘리먼트 ID(540)는, 현재 행 내의 이러한 특정 엘리먼트가 디스플레이되거나 관련된 차일드 엘리먼트의 엘리먼트 ID를 포함하는 열이다. 웹 페이지 내의 특정 엘리먼트는 페이지의 다른 엘리먼트 내에 임베딩되거나, 배치되거나 웹 페이지 상의 다른 엘리먼트와 관련될 수 있다. 현재 예를 계속하여, 차일드 엘리먼트 ID(540) 열은 도 2의 사용자 코멘트들(230)에 대응하는 엘리먼트 ID(230)의 값을 저장한다.
[0090] 다중 엔티티 표시자(550)는 엘리먼트들의 다수의 버전들을 디스플레이하는 것과 호환 가능한 엘리먼트를 디스플레이하는 데 사용되는 표면 또는 가상 오브젝트를 가질 필요성을 보증할 수 있는 다수의 엔티티들을 엘리먼트가 포함하는지를 표시하는 열이다(예컨대, 엘리먼트는 사용자 코멘트들(230)일 수 있고, 여기서 메인 비디오(220)에 대해, 이용가능한 하나 초과의 코멘트가 존재할 수 있음). 현재 예를 계속하여, 다중 엔티티 표시자(550) 열은 메인 비디오(220)가 활성 탭(260)의 다수의 메인 비디오들을 갖지 않거나 이에 대응하지 않음을 표시하기 위해 "N"의 값을 저장한다(예컨대, 메인 비디오(220)의 다수의 버전들 "없음").
[0091] 현재 예를 계속하여, 엘리먼트 ID(510) 열의 제2 엔트리는 도 2의 사용자 코멘트들(230)에 대응하는 엘리먼트 ID(230)의 값을 저장한다. 사용자 코멘트들(230)에 대응하는 선호도(520) 열의 선호도 값은 사용자 코멘트들(230)이 사용자의 물리적 환경(105) 내의 어딘가에 수평 표면 상에 배치되어야 함을 표시하기 위해 "수평"의 선호도를 나타낸다. 앞서 논의된 바와 같이, 수평 표면은 사용자의 물리적 환경(105)에서 이용가능한 수평 표면들에 기반하여 결정될 것이다. 일부 실시예들에서, 사용자의 물리적 환경(105)은 수평 표면을 갖지 않을 수 있으며, 이 경우에 본 개시내용의 시스템들 및 방법들은 사용자 코멘트들(230)을 디스플레이하기 위해 수평 표면을 갖는 가상 오브젝트를 식별/생성할 수 있다. 현재 예를 계속하여, 패런트 엘리먼트 ID(530) 열은 도 2의 메인 비디오(220)에 대응하는 값 엘리먼트 ID(220)를 저장하고, 다수의 엔티티 표시자(550) 열은 사용자 코멘트들(230)이 하나 초과의 값(예컨대, 하나 초과의 사용자 코멘트)을 포함할 수 있음을 표시하기 위해 "Y"의 값을 저장한다.
[0092] 엘리먼트 테이블(500) 내의 나머지 행들은 사용자(108)가 관심을 갖는 나머지 엘리먼트들에 대한 정보를 포함한다. 일단 분석이 2D 콘텐츠에 대해 수행되면, 만약 다른 사용자가 동일한 2D 콘텐츠에 관심이 있다면, 2D 콘텐츠의 장래의 분석을 위해 이것이 시스템 및 방법에 의해 보유될 수 있기 때문에, 410에서 2D 콘텐츠 내의 엘리먼트들을 식별한 결과들을 저장하는 것이 컴퓨터 그 자체의 기능을 개선한다는 것을 당업자는 인지할 것이다. 이 특정 2D 콘텐츠를 분해하기 위한 시스템 및 방법은 그것이 이전에 이미 완료되었으므로 회피될 수 있다.
[0093] 일부 실시예들에서, 엘리먼트 테이블(500)은 저장 디바이스(130)들에 저장될 수 있다. 다른 실시예들에서, 엘리먼트 테이블(500)은 최근에 본 2D 콘텐츠에 대한 신속한 액세스를 위해 또는 최근에 본 2D 콘텐츠에 대한 가능한 재방문을 위해 로컬 저장 디바이스(140)에 저장될 수 있다. 또 다른 실시예들에서, 엘리먼트 테이블(500)은 사용자(108)로부터 원격으로 위치된 저장 디바이스들(130) 및 사용자(108)에 로컬로 위치된 로컬 저장 디바이스(140) 둘 모두에 저장될 수 있다.
[0094] 도 3을 참조하면, 방법은 330에서 주변 표면들을 계속 식별한다. 사용자(108)는 머리-장착 시스템(160)이 주변 표면들, 이를테면, 벽, 테이블, 그림, 창문 프레임, 스토브, 냉장고, TV 등을 캡처 및 식별하게 허용하도록 머리-장착 시스템(160)을 통해 사용자의 물리적 환경(105)을 볼 수 있다. 머리-장착 시스템(160)은 머리-장착 시스템(160) 상의 센서들 및 카메라들 또는 임의의 다른 타입의 유사한 디바이스 때문에 사용자의 물리적 환경(105) 내의 실제 오브젝트들을 인식한다. 일부 실시예들에서, 머리-장착 시스템(160)은 사용자의 물리적 환경(105) 내에서 관찰된 실제 오브젝트들을 저장 디바이스(130) 또는 로컬 저장 디바이스(140) 내에 저장된 가상 오브젝트들과 매칭하여 이러한 가상 오브젝트들에 이용가능한 표면들을 식별할 수 있다. 실제 오브젝트들은 사용자의 물리적 환경(105) 내에서 식별된 오브젝트들이다. 가상 오브젝트들은 사용자의 물리적 환경 내에 물리적으로 존재하지 않지만, 가상 오브젝트들이 사용자의 물리적 환경에 존재하는 것처럼 나타나도록 사용자에게 디스플레이될 수 있는 오브젝트들이다. 예컨대, 머리-장착 시스템(160)은 사용자의 물리적 환경(105) 내에서 테이블의 이미지를 검출할 수 있다. 테이블 이미지는 저장 디바이스(130) 또는 로컬 저장 디바이스(140)에서의 신속하고 효율적인 비교 및 매칭을 위해 3D 포인트 클라우드 오브젝트로 감소될 수 있다. 만약 실제 오브젝트와 3D 포인트 클라우드 오브젝트(예컨대, 테이블)의 매칭이 검출되면, 시스템 및 방법은 테이블을 표현하는 3D 포인트 클라우드 오브젝트가 수평 표면을 갖는 것으로 정의되기 때문에 수평 표면을 갖는 것으로 테이블을 식별할 것이다. 주변 표면들의 식별에 대한 더 상세한 설명이 아래의 도 6에 개시된다.
[0095] 일부 실시예들에서, 가상 오브젝트들은 추출된 오브젝트들일 수 있고, 여기서 추출된 오브젝트는 사용자의 물리적 환경(105) 내에서 식별된 물리적 오브젝트일 수 있지만, (예컨대, 물리적 오브젝트의 특정 특징을 강조하도록 물리적 오브젝트의 컬러를 변경하기 위해서 등) 물리적 오브젝트 그 자체에 대해 행해질 수 없을 수 있는 추가적인 프로세싱 및 연관성들이 추출된 오브젝트에 대해 이루어질 수 있도록 물리적 오브젝트의 장소에서 가상 오브젝트로서 사용자에게 디스플레이된다. 부가적으로, 추출된 오브젝트들은 2D 콘텐츠(예컨대, 브라우저로부터의 웹 페이지)로부터 추출되고 사용자(108)에게 디스플레이되는 가상 오브젝트들일 수 있다. 예컨대, 사용자(108)는 사용자의 물리적 환경(105) 내에서 디스플레이되도록 웹 페이지/2D 콘텐츠 상에 디스플레이되는 웹 페이지로부터 소파와 같은 오브젝트를 선택할 수 있다. 시스템은 선택된 오브젝트(예컨대, 소파)를 인식하고 추출된 오브젝트(예컨대, 소파)가 사용자의 물리적 환경(105)에 물리적으로 존재하는 것처럼 추출된 오브젝트(예컨대, 소파)를 사용자(108)에게 디스플레이할 수 있다. 부가적으로, 가상 오브젝트들은 또한, 심지어 사용자의 물리적 환경(105)에 물리적으로 존재하는 않지만, 2D 콘텐츠 관점으로부터의 디스플레이 콘텐츠로부터, 사용자에게 특정 콘텐츠를 제공하기 위한 이상적인 디스플레이 표면일 수 있는, 콘텐츠를 디스플레이하기 위한 표면들(예컨대, 특정 콘텐츠를 보기 위해 사용자에 아주 가까이 있는 투명한 디스플레이 스크린)을 갖는 오브젝트들을 포함할 수 있다.
[0096] 도 6은 일부 실시예들에 따른, 사용자의 로컬 환경으로부터 표면들을 식별하기 위한 방법을 예시하는 흐름도이다. 도 6은 도 3의 330에서 주변 표면들을 식별하는 것을 개시하는 상세한 흐름이다. 도 6은, 610에서 사용자의 현재 주변을 식별하는 것으로 시작되며, 이는 도 3의 330에서 주변 표면들을 식별하는 것과 유사하다. 방법은 620에서 사용자의 포즈를 결정하는 다음의 단계로 진행한다.
[0097] 620에서 사용자의 포즈를 결정하는 것은 사용자의 포즈가 사용자의 물리적 환경(105) 내의 오브젝트들에 관하여 사용자(108)에 대한 원근감을 제공할 것이기 때문에, 사용자의 현재 주변을 식별하는 중요한 단계이다. 예컨대, 도 1을 다시 참조하면, 머리-장착 시스템(160)을 사용하는 사용자(108)는 사용자의 물리적 환경(105)을 관찰하고 있다. 620에서 사용자의 포즈(즉, 세계에 대한 벡터 및/또는 원점 포지션 정보)를 결정하는 것은, 예컨대, (1) 사용자(108)가 지면과 관하여 얼마나 키가 큰지, (2) 사용자(108)가 룸의 이미지들을 캡처하고 돌아다니기 위해 자신의 머리를 회전시켜야 하는 각도, 및 (3) 사용자(108)와 테이블(188), 메인 벽(180) 및 측벽(184) 간의 거리를 머리 장착 시스템(160)이 이해하는 데 도움을 줄 것이다. 추가적으로, 사용자(108)의 포즈는 또한 사용자의 물리적 환경(105) 내의 다른 표면들과 함께, 수직 표면들(182 및 186)을 관찰할 때 머리-장착 시스템(160)의 각도를 결정하는데 도움이 된다.
[0098] 630에서, 방법은 주변 표면들의 디멘션들을 식별한다. 사용자의 물리적 환경(105) 내의 각각의 후보 표면은 대응하는 디멘션으로 태깅되고 분류된다. 일부 실시예들에서, 사용자의 물리적 환경(105) 내의 각각의 후보 표면은 또한 대응하는 배향으로 태깅되고 분류된다. 이 정보는, 표면의 디멘션, 표면의 배향, 사용자(108)가 특정 표면으로부터 떨어진 거리, 및 엘리먼트를 위해 디스플레이될 필요가 있는 정보의 타입에 적어도 부분적으로 기반하여, 어떤 엘리먼트가 어떤 표면들에 맵핑되어야 하는지를 식별하는데 도움이 될 것이다. 예컨대, 풍부한 정보를 포함할 수 있는 기사 또는 블로그보다 비디오가 더 멀리 도시될 수 있으며 여기서 만약 작은 디멘션들을 갖는 떨어진 벽 상에 디스플레이된다면, 기사의 텍스트 사이즈는 사용자가 알아보기에 너무 작을 수 있다.
[0099] 640에서, 방법은, 엘리먼트들을 특정 표면들에 맵핑하기 위해 맵핑 루틴(예컨대, 도 3의 340에서 엘리먼트들을 식별된 표면들에 맵핑함)에 의해 사용되도록 주변 표면들의 인벤토리를 비-일시적인 저장 매체 내에 저장할 수 있다. 비-일시적인 저장 매체는 데이터 저장 디바이스, 이를테면 저장 디바이스들(130) 또는 로컬 저장 디바이스(140)를 포함할 수 있다. 식별된 표면들은 아래에서 설명되는 도 7에 개시된 테이블과 같은 특정 테이블에 저장될 수 있다. 일부 실시예들에서, 식별된 표면들은 일시적 저장 매체에 저장될 수 있다.
[00100] 도 7은 일부 실시예들에 따른, 사용자의 로컬 환경으로부터 식별된 표면들의 인벤토리를 저장하기 위한 테이블의 예를 도시한다. 표면 테이블(700)은 주변 표면들을 식별하는 프로세스의 결과들을 데이터베이스에 저장할 수 있는 예시적인 테이블이다. 표면 테이블(700)은, 예컨대, 표면 ID(710), 폭(720), 높이(730), 배향(740), 실제 또는 가상 표시자(750), 다수(760) 및 포지션(770)을 포함하는 데이터 열들을 갖는 사용자의 물리적 환경(105) 내의 표면들에 관한 정보를 포함한다. 당업자는 표면 테이블(700)이 관계형 데이터베이스 또는 임의의 타입의 데이터베이스의 테이블일 수 있다는 것을 인지할 수 있다. 부가적으로, 표면 테이블(700)은 도 3의 330에서 주변 표면들을 식별한 결과들을 저장하는 컴퓨터 메모리(예컨대, 캐시) 내의 어레이일 수 있다.
[00101] 표면 테이블(700)의 행들(780)의 각각의 행은 사용자의 물리적 환경(105)으로부터의 표면 또는 사용자의 물리적 환경(105) 내에서 사용자(108)에게 디스플레이될 수 있는 가상 표면에 대응할 수 있다. 표면 ID(710)는 특정 표면을 고유하게 식별하기 위한 고유 식별자(예컨대, 표면 ID)를 포함하는 열이다. 특정 표면의 디멘션들은 폭(720) 및 높이(730) 열들에 저장된다.
[00102] 배향(740)은 사용자(108)에 대한 표면의 배향(예컨대, 수직, 수평 등)을 표시하는 열이다. 실제/가상(750)은, 특정 표면이 머리-장착 시스템(160)을 사용하여 사용자(108)에 의해 지각되는 바와 같이 사용자의 물리적 환경(105) 내의 실제 오브젝트 상에 위치되는지 여부, 또는 특정 표면이 머리-장착 시스템(160)에 의해 생성되고 사용자의 물리적 환경(105) 내에 디스플레이될 가상 오브젝트 상에 위치되는지를 표시하는 열이다. 머리-장착 시스템(160)은, 사용자(108)가 디스플레이하기 원하는 일정량의 콘텐츠를 디스플레이하기에 충분한 표면들을 사용자의 물리적 환경(105)이 포함할 수 없는 상황들에 대해 가상 오브젝트들을 생성해야 할 수 있다. 이들 실시예들에서, 머리-장착 시스템(160)은 디스플레이를 위해 식별된 특정 타입들의 엘리먼트들을 디스플레이하기에 적합한 표면 디멘션들을 가질 수 있는 기존 가상 오브젝트들의 데이터베이스로부터 서치할 수 있다. 데이터베이스는 저장 디바이스들(130) 또는 로컬 저장 디바이스(140)로부터의 것일 수 있다.
[00103] 다수(760)는, 표면/오브젝트가 엘리먼트의 다수의 버전들을 디스플레이하는 것과 호환 가능한지 여부를 나타내는 열이고(예컨대, 엘리먼트는 도 2의 2차 탭(250)일 수 있음), 여기서 특정 웹 브라우저(110)에 대해, 하나 초과의 2차(즉, 비활성) 탭(예컨대, 탭당 하나의 웹 페이지)이 존재할 수 있다. 다수(760) 열이 “다수"의 값을 갖는다면(이를테면, 도 2의 가상 롤로덱스(190)에 대응하는 190의 값을 저장하는 표면 ID 열의 제4 엔트리, 및 도 2의 다중-스택 가상 오브젝트(194)에 대응하는 194의 값을 저장하는 표면 ID 열의 제5 엔트리에 대한 경우), 시스템 및 방법은, 엘리먼트의 다수의 버전들을 가질 수 있는 엘리먼트가 존재하면, 비활성 탭들의 경우에서와 같이, 이들이 다수의 버전들을 수용할 수 있는 표면들의 타입들이라는 것을 알 것이다.
[00104] 포지션(770)은 레퍼런스 프레임 또는 레퍼런스 포인트에 대한 물리적 표면의 포지션을 표시하는 열이다. 물리적 표면의 포지션은 도 7의 포지션(770)의 열 헤더에 나타낸 바와 같이 표면의 중심인 것으로 미리-결정될 수 있다. 다른 실시예들에서, 포지션은 표면의 다른 레퍼런스 포인트(예컨대, 표면의 앞, 뒤, 최상부 또는 최하부)인 것으로 미리-결정될 수 있다. 포지션 정보는 일부 레퍼런스 프레임 또는 레퍼런스 포인트에 대한 물리적 표면의 중심으로부터의 벡터 및/또는 포지션 정보로서 표현될 수 있다. 표면 테이블(700)에서 포지션을 표현하기 위한 몇몇의 방식들이 존재할 수 있다. 예컨대, 표면 테이블(700) 내의 표면 ID(194)에 대한 포지션의 값은 벡터 정보 및 레퍼런스 프레임 정보(예컨대, '프레임' 아랫첨자)를 예시하기 위해 요약으로 표현된다. x, y, z는 각각의 공간 디멘션 내의 3D 좌표들이며, 프레임은 3D 좌표들이 레퍼런스의 어느 프레임에 대한 것인지를 나타낸다.
[00105] 예컨대, 표면 ID(186)는 실세계 원점에 대하여 (1.3, 2.3, 1.3)이 되기 위한 표면(186)의 중심의 포지션을 나타낸다. 다른 예로서, 표면 ID(192)는 사용자 레퍼런스 프레임에 대하여 (x,y,z)가 되기 위한 표면(192)의 중심의 포지션을 나타내고, 표면 ID(190)는 다른 표면(182)에 대하여 (x,y,z)가 되기 위한 표면(190)의 중심의 포지션을 나타낸다. 레퍼런스 프레임은 레퍼런스의 어느 프레임이 현재 사용되고 있는지를 명확하게 하는 데 중요하다. 레퍼런스 프레임으로서 실세계 원점의 경우, 그것은 일반적으로 정적 레퍼런스 프레임이다. 그러나, 다른 실시예들에서, 레퍼런스 프레임이 사용자 레퍼런스 프레임일 때, 사용자는 이동 레퍼런스 프레임일 수 있으며, 그 경우, 만약 사용자가 이동중이고 사용자 레퍼런스 프레임이 레퍼런스 프레임으로서 사용되면, 평면(또는 벡터 정보)은 사용자에 따라 이동하고 변할 수 있다. 일부 실시예들에서, 각각의 표면에 대한 레퍼런스 프레임은 동일할 수 있다(예컨대, 사용자 레퍼런스 프레임). 다른 실시예들에서, 표면 테이블(700) 내에 저장된 표면들에 대한 레퍼런스 프레임은 표면에 의존하여 상이할 수 있다(예컨대, 사용자 레퍼런스 프레임, 세계 레퍼런스 프레임, 룸 내의 다른 표면 또는 오브젝트 등).
[00106] 현재의 예에서, 표면 테이블(700) 내에 저장된 값들은 도 2의 사용자의 물리적 환경(105) 내에서 식별된 물리적 표면들(예컨대, 수직 표면들(182 및 186), 및 수평 표면(192)) 및 가상 표면들(예컨대, 가상 롤로덱스(190) 및 멀티-스택 가상 오브젝트(194))을 포함한다. 예컨대, 현재의 실시예에서, 표면 ID(710) 열의 제1 엔트리는 도 2의 수직 표면(182)에 대응하는 표면 ID(182)의 값을 저장한다. 수직 표면(182)의 폭 및 높이에 각각 대응하는 폭(720) 열 내의 폭 값 및 높이(730) 열 내의 높이 값은 수직 표면(182)이 48"(W)×36"(H)의 디멘션을 갖는다는 것을 표시한다. 유사하게, 배향(740) 열 내의 배향 값은 수직 표면(182)이 "수직"의 배향을 갖는다는 것을 표시한다. 추가적으로, 실제/가상(750) 열 내의 실제/가상 값은 수직 표면(182)이 "R"(예컨대, 실제) 표면이라는 것을 표시한다. 다수(760) 열 내의 다수 값은 수직 표면(182)이 "단일"이라는 것(예컨대, 단지 단일 콘텐츠만을 홀딩할 수 있다는 것)을 표시한다. 마지막으로, 포지션(770) 열은 (2.5, 2.3, 1.2)사용자의 벡터 정보를 갖는 사용자(108)에 대한 수직 표면(182)의 포지션을 표시한다.
[00107] 표면 테이블(700) 내의 나머지 행들은 사용자의 물리적 환경(105) 내의 나머지 표면들에 대한 정보를 포함한다. 당업자는, 도 3의 330에서 주변 표면들을 식별한 결과들을 저장하는 것이 컴퓨터 그 자체의 기능을 개선한다는 것을 인식할 수 있는데, 그 이유는, 일단 이러한 분석이 주변 표면들에 대해 수행되었다면, 만약 다른 사용자 또는 동일한 사용자(108)가 동일한 물리적 환경(105)에 있지만 상이한 2D 콘텐츠에 관심이 있다면, 그것이 사용자의 주변 표면들의 미래의 분석을 위하여 머리-장착 시스템(160)에 의해 유지될 수 있기 때문이다. 330에서 주변 표면들을 식별하기 위한 프로세싱 단계들은, 이들 프로세싱 단계들이 이전에 이미 완료되었으므로 회피될 수 있다. 유일한 차이들은, 상이한 2D 콘텐츠를 갖는 엘리먼트들을 식별하는 엘리먼트 테이블(500)에 적어도 부분적으로 기반하여, 이용가능할 추가적인 또는 상이한 가상 오브젝트들을 식별하는 것을 포함할 수 있다.
[00108] 일부 실시예들에서, 표면 테이블(700)은 저장 디바이스들(130)에 저장된다. 다른 실시예들에서, 표면 테이블(700)은 최근에 본 2D 콘텐츠에 대한 신속한 액세스를 위해 또는 최근에 본 2D 콘텐츠에 대한 가능한 재방문을 위해 사용자(108)의 로컬 저장 디바이스(140)에 저장된다. 그러나 다른 실시예들에서, 표면 테이블(700)은 사용자(108)로부터 원격으로 위치된 저장 디바이스들(130) 및 사용자(108)에게 로컬로 위치된 로컬 저장 디바이스(140) 둘 모두에 저장될 수 있다.
[00109] 도 3을 참조하면, 방법은, 2D 콘텐츠에서 엘리먼트들을 식별하는 것(320)으로부터의 식별된 엘리먼트들과 330에서 주변 표면들을 식별하는 것으로부터의 식별된 주변 표면들의 조합을 사용하여 그리고 일부 실시예들에서는 가상 오브젝트들을 추가적인 표면들로서 사용하여, 340에서 엘리먼트들을 식별된 표면들에 맵핑하는 것으로 계속된다. 식별된 엘리먼트들을 식별된 표면들에 맵핑하는 것은 다수의 팩터들을 수반할 수 있으며, 이들 중 일부는 HTML 페이지 파서, 이를테면, 앞서 논의된 예시적인 HTML 페이지 파서를 사용함으로써 2D 콘텐츠 설계자/저자에 의해 정의된 HTML 태그 엘리먼트들을 통하여 2D 콘텐츠 설계자/저자에 의해 제공된 힌트들을 분석하는 것을 포함할 수 있다. 다른 팩터들은 AR 브라우저, AR 인터페이스, 및/또는 클라우드 스토리지에 의해 제공된 바와 같은 특정 2D 콘텐츠와 어떻게 그리고 어디에 맵핑되는지의 규칙들의 미리-정의된 세트로부터 선택하는 것을 포함할 수 있다. 도 8은 2D 콘텐츠로부터의 하나 이상의 엘리먼트들을 식별된 표면들에 맵핑하는 맵핑 프로세스의 상세한 흐름을 제공한다.
[00110] 도 8은 일부 실시예들에 따른, 2D 콘텐츠로부터의 엘리먼트들을 표면들에 맵핑하기 위한 방법을 예시하는 흐름도를 도시한다. 도 8은 도 3의 340에서 엘리먼트들을 식별된 표면들에 맵핑하는 것을 개시하는 상세한 흐름이다.
[00111] 810에서, 방법은, 식별된 엘리먼트가 2D 콘텐츠 설계자에 의해 제공된 힌트들을 포함하는지 여부를 결정한다. 2D 콘텐츠 설계자는, 2D 콘텐츠 설계자가 2D 콘텐츠를 원래 설계할 때 특정 엘리먼트를 최상으로 디스플레이할 위치에 관한 힌트들을 제공할 수 있다. 예컨대, 도 2의 메인 비디오(220)는 활성 탭(260) 내의 웹 페이지 상에 디스플레이된 YOUTUBE 비디오일 수 있다. 2D 콘텐츠 설계자(예컨대, 웹 페이지 설계자)는, 메인 비디오(220)가 사용자(108)의 직접적인 뷰 내의 평탄한 수직 표면 상에 최상으로 디스플레이된다는 것을 표시하기 위한 힌트를 제공할 수 있다. 일부 실시예들에서, 이는, 3D 디스플레이 환경이 이용가능한 경우, 2D 콘텐츠 내의 특정 콘텐츠 엘리먼트가 디스플레이될 수 있는 방법을 추가로 정의하기 위해, 2D 웹 페이지 콘텐츠에 대해 원래 설계된 기존의 HTML 태그 엘리먼트들을 사용함으로써 달성될 수 있다. 다른 예로서, 2D 콘텐츠 설계자는, 특정 웹 페이지에 대한 2D 이미지 대신에 3D 이미지가 이용가능하다는 것을 명시하는 힌트를 제공할 수 있다. 예컨대, 2D 이미지의 경우, 2D 콘텐츠 설계자는, 2D 콘텐츠의 소스를 식별하기 위한 기본 HTML 태그들을 제공하는 것 외에도, 2D 이미지의 3D 버전의 소스를 식별하기 위해 다른 드물게 사용되는 HTML 태그들을 제공할 수 있고, 그리고 게다가, 만약 이미지의 3D 버전이 사용되면, 이를 사용자의 뷰 앞에(예컨대, 3D 레이아웃의 메인 프레임에) 눈에 띄게 디스플레이하기 위한 힌트를 제공할 수 있다. 일부 실시예들에서, 2D 콘텐츠 설계자는, 2D 콘텐츠를 렌더링하는 웹 브라우저(110)가 향상된 3D 이미지를 레버리징(leverage)하기 위한 3D 디스플레이 기능성들을 가질 수 있는 경우에만, 2D 이미지의 3D 이미지 위치에 이러한 추가적인 '힌트'를 제공할 수 있다. 당업자는, 특정 콘텐츠 엘리먼트가 본원에서 개시된 것 이외의 2D 레이아웃에 배치되어야 할 곳에 관한 힌트들을 2D콘텐츠 설계자가 제공할 수 있는 많은 다른 방식들이 존재하며, 이들이 2D 콘텐츠 설계자가 2D 내의 콘텐츠의 특정 또는 모든 엘리먼트들을 최상으로 디스플레이하기 위한 힌트들을 제공할 수 있는 상이한 방식들의 일부 예들이라는 것을 인지할 수 있다.
[00112] 다른 실시예에서, HTML 태그 표준은, AR/VR 특정 타입들의 브라우저들에 대한 사용자의 주변의 3D 오브젝트 배치의 힌트들, 이를테면, 앞서 논의된 웹 페이지 개발자에 의해 제공된 예시적인 HTML 웹 페이지를 제공하기 위한 새로운 HTML 태그들 또는 유사한 마크-업 언어의 생성을 포함할 수 있다. 이러한 기록의 일환으로, 이러한 새로운 HTML 태그들은 HTML 언어 내의 표준 태그들로서 아직 생성 및/또는 채택되지 않았다. 그러나, 일단 HTML 표준이 이들 타입들의 추가적인 태그들을 포함하면, 현재 방법들 및 시스템들의 특정 실시예들은 식별된 표면들에 대한 식별된 엘리먼트들의 맵핑을 추가로 제공하기 위해 이들 새로운 태그들을 레버리징할 것이다. 당업자는, 콘텐츠 엘리먼트들이 3D 환경에서 얼마나 최상으로 디스플레이되어야 할지에 대한 힌트들을 추가로 제공하도록 수정 또는 채택될 수 있는 HTML 태그들 이외의 많은 다른 언어들이 있고, 새로운 HTML 태깅 표준들이 그러한 목표를 달성하기 위한 단지 하나의 방식일 뿐이라는 것을 인지할 수 있다.
[00113] 820에서, 방법은 2D 콘텐츠로부터의 하나 이상의 콘텐츠 엘리먼트들을 특정 타입들의 3D 표면들에 맵핑하기 위해 2D 콘텐츠 설계자에 의해 제공된 힌트들을 사용할지 또는 규칙들의 미리-정의된 세트들을 사용할지를 결정한다. 일부 실시예들에서, 특정 콘텐츠 엘리먼트에 대해 2D 콘텐츠 설계자에 의해 제공되는 힌트들이 없는 경우, 시스템 및 방법은 미리-정의된 규칙들의 세트를 사용하여, 콘텐츠 엘리먼트를 표면들에 맵핑하기 위한 최상의 방법을 결정할 수 있다. 다른 실시예들에서, 2D 콘텐츠 설계자에 의해 제공되는 콘텐츠 엘리먼트의 배치에 대한 힌트들이 있을 수 있는 경우에도, 시스템 및 방법은 또한 콘텐츠 엘리먼트들을 표면들에 맵핑하기 위해 미리-정의된 규칙들의 세트들을 사용하는 것이 최상일 수 있다고 결정할 수 있다. 그러나, 다른 실시예들에서, 시스템 및 방법은 2D 콘텐츠 설계자에 의해 제공되는 힌트들이 충분하다고 결정하고, 그에 따라, 힌트들을 사용하여 콘텐츠 엘리먼트들을 표면들에 맵핑할 수 있다. 결국, 콘텐츠 엘리먼트들을 표면들에 맵핑하기 위해, 미리-정의된 규칙들을 사용할지 또는 2D 콘텐츠 설계자에 의해 제공되는 힌트들을 사용할지 여부를 결정하는 것은 AR 브라우저의 궁극적인 결정이다.
[00114] 830에서, 2D 콘텐츠 설계자에 의해 제공된 힌트들을 사용하는 것이 진행하기 위한 방식이라고 결정되었다고 가정하면, 방법은 힌트들을 분석하고, 힌트에 적어도 부분적으로 기반하여 특정 콘텐츠 엘리먼트를 디스플레이하는 데 사용될 수 있는 식별된 주변 표면들의 인벤토리를 서치한다(예컨대, 표면 테이블(700)에 질의함). 840에서, 방법은, 제공된 힌트에 기반하여, 특정 콘텐츠 엘리먼트에 대한 최적합 표면을 선택하기 위해 최적합 알고리즘을 실행한다. 최적합 알고리즘은, 예컨대, 특정 웹 페이지 내의 특정 콘텐츠 엘리먼트에 대한 “메인 콘텐츠”의 힌트를 얻고, 3D 환경의 사용자(108)에 대해 앞 그리고 중심에 있는 이용가능한 식별된 주변 표면들 중에서 3D 표면을 식별하려고 시도할 수 있다. 예컨대, 도 2의 메인 비디오(220)가 활성 탭(260) 내에서 도 5의 엘리먼트 테이블(500)의 선호도(520) 열 내의 "메인"의 선호도 값을 갖고 수직 표면(182)이, 사용자(108)의 직접적인 비전 내에 있고 메인 비디오(220)를 디스플레이하기 위한 최적의 사이즈가 정해진 디멘션을 갖는 표면이기 때문에, 메인 비디오(220)는 수직 표면(182)에 맵핑된다.
[00115] 850에서, 방법은, 콘텐츠 엘리먼트들을 그들의 각각 맵핑된 표면들 상에 디스플레이하기 위해 디스플레이 알고리즘에 의해 사용되도록 표면 테이블로의 엘리먼트들의 맵핑 시에, 표면들이 식별된 주변 표면들이든지 또는 사용자의 주변 환경에 디스플레이된 가상 오브젝트들이든지 간에, 콘텐츠 엘리먼트들에 대한 맵핑 결과들을 비-일시적 저장 매체에 저장한다. 비-일시적인 저장 매체는 데이터 저장 디바이스, 이를테면 저장 디바이스들(130) 또는 로컬 저장 디바이스(140)를 포함할 수 있다. 맵핑 결과들은 아래에서 설명되는 도 9에 개시된 테이블과 같은 특정 테이블에 저장될 수 있다.
[00116] 도 9는 일부 실시예들에 따른, 표면들로의 2D 콘텐츠로부터의 콘텐츠 엘리먼트들의 맵핑을 저장하기 위한 테이블의 예를 도시한다. 맵핑 테이블(900)은 표면들로의 콘텐츠 엘리먼트들의 맵핑 프로세스들의 결과들을 데이터베이스에 저장하는 예시적인 테이블이다. 맵핑 테이블(900)은, 예컨대, 콘텐츠 엘리먼트에 관한 정보(예컨대, 엘리먼트 ID) 및 콘텐츠 엘리먼트가 맵핑되는 표면에 관한 정보(예컨대, 표면 ID)를 포함한다. 당업자는, 맵핑 테이블(900)이 관계 데이터베이스 또는 임의의 타입의 데이터베이스 또는 저장 매체에 저장되는 테이블일 수 있다는 것을 인지할 수 있다. 부가적으로, 맵핑 테이블(900)은 도 3의 340에서 식별된 주변 표면들로의 엘리먼트들의 맵핑의 결과들을 포함하는 컴퓨터 메모리(예컨대, 캐시)의 어레이일 수 있다.
[00117] 맵핑 테이블(900)의 각각의 행은 사용자의 물리적 환경(105) 또는 사용자(108)에게 디스플레이되는 가상 오브젝트 중 어느 하나 내의 표면에 맵핑되는 2D 콘텐츠로부터의 콘텐츠 엘리먼트에 대응하며, 여기서 가상 오브젝트는 사용자의 물리적 환경(105) 내의 오브젝트인 것으로 나타난다. 예컨대, 현재의 실시예에서, 엘리먼트 ID 열의 제1 엔트리는 메인 비디오(220)에 대응하는 엘리먼트 ID(220)의 값을 저장한다. 메인 비디오(220)에 대응하는 표면 ID 행 내의 표면 ID 값은 수직 표면(182)에 대응하는 182이다. 이러한 방식으로, 메인 비디오(220)는 수직 표면(182)에 맵핑된다. 유사하게, 사용자 코멘트들(230)은 수평 표면(192)에 맵핑되고, 제안된 비디오들(240)은 수직 표면(186)에 맵핑되며, 2차 탭(250)은 가상 롤로덱스(190)에 맵핑된다. 맵핑 테이블(900) 내의 엘리먼트 ID들은 도 5의 엘리먼트 테이블(500)에 저장된 엘리먼트 ID들에 연관될 수 있다. 맵핑 테이블(900) 내의 표면 ID들은 도 7의 표면 테이블(700)에 저장된 표면 ID들에 연관될 수 있다.
[00118] 도 8을 참조하면, 860에서, 미리-정의된 규칙들을 사용하는 것이 진행하기 위한 방식이라고 결정되었다고 가정하면, 방법은 표면들에 대한 콘텐츠 엘리먼트들의 맵핑 규칙들을 포함하는 데이터베이스에 질의하며, 웹 페이지 내의 특정 콘텐츠 엘리먼트에 대해 어느 타입들의 표면들이 콘텐츠 엘리먼트를 맵핑하기 위해 고려되어야 하는지를 결정한다. 예컨대, 도 2로부터의 메인 비디오(220)에 대해 리턴된 규칙들은, 메인 비디오(220)가 수직 표면들에 맵핑되어야 한다는 것을 표시할 수 있으며, 따라서, 표면 테이블(700)을 서치한 이후, 다수의 후보 표면들(예컨대, 수직 표면들(182 및 186), 및 가상 롤로덱스(190))이 드러난다. 870에서, 규칙들의 미리-정의된 세트들은, 이용가능한 후보 표면들로부터 어느 표면이 이러한 메인 비디오(220)에 대해 최적합한지를 선정하기 위해 최적합 알고리즘을 실행할 수 있다. 최적합 알고리즘에 적어도 부분적으로 기반하여, 후보 표면들 전부 때문에 메인 비디오(220)가 수직 표면(182)에 맵핑되어야 한다고 결정되며, 수직 표면(182)은 사용자(108)의 직접적인 시선 내에 있는 표면이고, 수직 표면(182)은 비디오를 디스플레이하기 위한 최상의 디멘션을 갖는다. 일단 하나 이상의 엘리먼트들의 맵핑이 결정되면, 850에서, 방법은 앞서 설명된 바와 같이, 표면 테이블로의 엘리먼트들의 맵핑 시에 콘텐츠 엘리먼트들에 대한 맵핑 결과들을 비-일시적인 저장 매체에 저장한다.
[00119] 도 3을 참조하면, 방법은 350에서 맵핑된 표면들 상에 하나 이상의 엘리먼트들을 가상 콘텐츠로서 디스플레이하는 것으로 계속된다. 머리-장착 시스템(160)은 정보를 디스플레이하기 위해 머리-장착 시스템(160) 내에 하나 이상의 디스플레이 디바이스들, 이를테면 미니 투사기들(미도시)을 포함할 수 있다. 하나 이상의 엘리먼트들은 340에서 맵핑된 것으로 개개의 맵핑된 표면들 상에 디스플레이된다. 머리-장착 시스템(160)을 사용하여, 사용자(108)는 개개의 맵핑된 표면들 상에서 콘텐츠를 볼 것이다. 당업자는, 콘텐츠 엘리먼트들이 다양한 표면들(물리적 또는 가상) 상에 물리적으로 부착되는 것으로 나타나도록 디스플레이되지만, 실제로, 콘텐츠 엘리먼트들이 사용자(108)에 의해 지각되는 바와 같이 물리적 표면들 상에 실제로 투사되며, 가상 오브젝트들의 경우들에서, 가상 오브젝트들이 가상 오브젝트들의 개개의 표면들 상에 부착되는 것으로 나타나도록 디스플레이된다는 것을 인지할 수 있다. 당업자는, 사용자(108)가 그들의 머리를 돌리거나 또는 위 또는 아래를 볼 때, 머리-장착 시스템(160) 내의 디스플레이 디바이스들이 콘텐츠가 맵핑된 표면들에 부착되는 지각을 사용자(108)에게 추가로 제공하기 위해 콘텐츠 엘리먼트들을 그들 개개의 표면들에 부착되게 계속 유지할 수 있다는 것을 인지할 수 있다. 다른 실시예들에서, 사용자(108)는 사용자(108)의 머리, 손들, 눈들 또는 음성에 의해 수행되는 모션에 의해 사용자의 물리적 환경(105)의 콘텐츠를 변화시킬 수 있다.
오브젝트들의 물리적 조작
[00120] 본 발명의 일부 실시예들은 오브젝트들의 생성, 물리적 내비게이션 및 조작을 제공하기 위한 접근법에 관한 것이다. 사용자들과의 상호작용 범위를 오브젝트들을 조작하기 위해 종래의 마우스/키보드 타입 상호작용을 사용하여 2D 공간에 디스플레이된 오브젝트의 표현들로만 제한하는 알려진 컴퓨팅 시스템들과 달리, 본 실시예는 컴퓨팅 시스템과 물리적 상호작용들을 허용하는 3D 공간에서의 사용자들의 상호작용들에 관한 것이다. 이는, 사용자들이 상호작용 환경에서 오브젝트들의 움직임과 배치를 제어하기 위해 물리적 움직임들 및 제스처들을 활용하도록 허용한다.
[00121] 도 10a는 일부 실시예들에 따른 오브젝트들의 물리적 배치 및 조작을 구현하기 위한 접근법의 흐름도를 도시한다. 1001에서, 하나 이상의 상호작용 가능한 오브젝트들이 식별되고 호스트 애플리케이션을 위한 혼합 현실 시스템의 디스플레이 디바이스를 통해 사용자에게 제공된다. 상호작용 가능한 오브젝트들은 실제 오브젝트들 및 가상 오브젝트 둘 모두를 포함할 수 있다. 가상 오브젝트들은 가상화된 유니버스 내 구조(construct)들로만 존재하는 오브젝트들이며, 머리-장착 디스플레이 디바이스를 통해 사용자에게 컴퓨터-생성 렌더링들로서 생성/디스플레이된다. 실제 오브젝트들은 (예컨대, VR 애플리케이션에 대해) 실제 오브젝트에 대응하는 디지털 컴퓨터 생성 디스플레이 오브젝트 렌더링들로서 디스플레이되거나 (예컨대, AR 애플리케이션에 대해) 디스플레이 디바이스의 투명한 부분을 통해 실제 오브젝트 자체로서 볼 수 있다. 일부 실시예들에서, 상호작용 가능한 오브젝트들은, 상호작용 가능한 오브젝트와 사용자 또는 HMD 시스템 사이에서 상호작용이 검출될 때, HMD 시스템의 변화를 야기하는 실제 또는 가상 오브젝트들일 수 있다.
[00122] 1003에서, 상호작용 가능한 오브젝트들 중 하나 이상을 선택하기 위한 사용자 제어 입력이 수신된다. 이 선택은 포인터 오브젝트를 호버링하기 위해 제어기 디바이스(이를테면, 마우스 또는 햅틱 제어기)를 사용함으로써 가능하게 될 수 있고, 여기서 버튼 또는 트리거의 트리거링은, 포인터가 현재 위에서 호버링하는 오브젝트(들)를 선택하려는 사용자의 욕구를 식별한다. 포인터가 위에서 호버링하는 오브젝트는 상호작용 가능한 오브젝트의 소스 데이터에 대응하는 선택 가능한 링크/URL일 수 있다. 대안적으로, 사용자가 제어 디바이스를 조작할 필요없이, 사용자에 의한 물리적 움직임들/제스처들만으로 선택이 발생할 수 있다. 예컨대, 혼합 현실 시스템은 사용자의 손/팔의 움직임들을 추적하는 하나 이상의 카메라 디바이스들을 사용할 수 있으며, 따라서 사용자의 손이 상호작용 가능한 오브젝트/링크 위에서 호버링할 때를 식별할 수 있다. 특정 제스처들은 "선택" 제스처(예컨대, 사용자의 손이 오브젝트 또는 그 위를 지시하는 포인터 핑거를 잡고 있을 때와 같이 손이 선택 포지션에서 구성될 때, 손의 두 번 흔들기)로서 인식되도록 시스템 내에서 미리-구성될 수 있다. 따라서, 사용자의 손이 상호작용 가능한 오브젝트 위에서 호버링되는 동안 선택 제스처가 인식될 때, 해당 오브젝트는 사용자가 선택한 것으로 시스템에 의해 인식될 것이다. 선택 제스처들의 다른 실시예들은 "해제" 제스처들과 관련하여 아래에서 설명된다.
[00123] 1005에서, 혼합 현실 시스템은 선택된 오브젝트에 대한 사용자의 물리적 움직임을 식별하고 추적한다. 예컨대, 사용자가 제1 위치에서 오브젝트를 선택한 동안, 사용자는 해당 오브젝트를 제2 위치로 이동시키기를 원할 수 있다. 본 실시예에서, 제2 위치로의 오브젝트의 움직임은 제1 위치에서 제2 위치로의 사용자의 물리적 움직임에 의해 구현될 수 있다. 이것은, 예컨대, 사용자의 선택 팔을 제1 위치로부터 제2 위치로의 이동에 의해 그리고/또는 사용자가 제2 물리적 위치로 걸어가는 경우에 발생할 수 있다. 사용자의 물리적 움직임은 사용자가 잡고 있는 제어기 디바이스의 임의의 포지션 변화들을 식별함으로써, 예컨대, 제어기 디바이스 내에 임베딩될 수 있는 임의의 센서들/이미터들의 포지션 변화들을 통해 사용자가 잡고 있는 햅틱 제어기의 물리적 움직임을 추적함으로써 그리고/또는 제어기 디바이스 상의 임의의 마커들의 움직임을 시각적으로 추적함으로써 인식되고 추적될 수 있다. 대안적으로, 사용자의 물리적 움직임은, 예컨대, 카메라 디바이스가 사용자의 선택 팔/손의 움직임 및 위치를 시각적으로 추적하는 경우에, 사용자의 신체의 관련 부분(들)의 물리적 움직임을 식별함으로써 인식되고 추적될 수 있다.
[00124] 사용자가 물리적인 움직임에 참여하는 동안, 1007에서, 상호작용 가능한 오브젝트(들)와 연관된 데이터는 사용자의 움직임들과 상관된 새로운 포지션들/위치들에 대응하게 디스플레이된다. 예컨대, 사용자가 선택 팔로 오브젝트를 선택하고 현재 선택 팔을 제1 위치로부터 새로운 위치로 이동시키고 있다면, 상호작용 가능한 오브젝트(즉, 선택된 오브젝트)와 연관된 데이터는, 사용자 팔의 움직임에 대응하는 제2 위치에서 시각적으로 디스플레이될 것이다. 효율성 목적들로, 일부 실시예들은, 임의의 진행중인 움직임들 동안 상호작용 가능한 오브젝트와 연관된 데이터의 썸네일 디스플레이 및/또는 저해상도 미리보기만을 디스플레이할 수 있으며, 고해상도 디스플레이 버전은 오브젝트의 마지막 배치 시에만 구현된다.
[00125] 오브젝트는 이후에 "프리즘"으로 지칭되는 경계가 있는 볼륨에 렌더링될 수 있다. 각각의 프리즘은, 유니버스 애플리케이션이 프리즘 자체를 관리함으로써 VR/AR 환경에서 가상 콘텐츠의 배치 및 디스플레이를 관리할 수 있도록, 유니버스 애플리케이션이 VR/AR 환경에서 프리즘을 관리하고 디스플레이할 수 있게 하는 특성들 및 속성들을 가질 수 있다. 일부 실시예들에서, 프리즘은, 애플리케이션으로부터의 가상 콘텐츠가 디스플레이되는 큐빅 및/또는 직사각형 볼륨의 공간으로서 구현되며, 애플리케이션은, 애플리케이션이 하나 초과의 프리즘에 렌더링될 때 애플리케이션의 애플리케이션 인스턴스이다. 프리즘은 현재 위치에 대한 다중 애플리케이션 장면 그래프의 서브-트리를 나타낼 수 있다. 현재 위치에 이전에 배치된 하나 이상의 프리즘들을 리트리브하는 것은 외부 데이터베이스로부터 하나 이상의 프리즘들에 대한 인스턴스 데이터를 리트리브하는 것, 및 하나 이상의 프리즘들에 대한 인스턴스 데이터로 로컬 프리즘 데이터베이스를 재구성하는 것을 포함하고, 여기서 각각의 프리즘에 대한 인스턴스 데이터는 프리즘을 정의하는 프리즘 속성들의 데이터 구조를 포함하고, 프리즘 속성들은 위치, 배향, 범위 폭(extent width), 범위 높이, 범위 깊이, 앵커 타입 또는 앵커 포지션 중 적어도 하나를 포함하고, 여기서 각각의 프리즘에 대한 인스턴스 데이터는 애플리케이션에 의해 프리즘에 이전에 렌더링된 가상 콘텐츠의 상태 정보를 포함하는 애플리케이션 특정 속성들의 키 값 쌍들을 포함한다. 프리즘들을 구현하는 접근법에 관한 추가의 세부사항들은 2017년 12월 22일에 출원되고 명칭이 "METHODS AND SYSTEM FOR MANAGING AND DISPLAYING VIRTUAL CONTENT IN AN AUGMENTED REALITY SYSTEM"인 공동-계류중인 미국 출원 일련 번호 제62/610,101호에 설명되고, 이로써 상기 출원의 전체내용은 인용에 의해 본원에 포함된다.
[00126] 사용자가 상호작용 가능한 오브젝트를 선택하면서 인식 가능한 물리적 움직임을 만들 때, 상호작용 가능한 오브젝트에 대응하는 데이터를 보유하는 새로운 프리즘이 생성되고, 상호작용 가능한 오브젝트에 대응하는 데이터의 움직임을 구현하기 위해 새로운 위치로 이동된다. 선택된 오브젝트(들)에 대한 프리즘의 좌표 위치는 선택된 오브젝트의 새로운 위치를 나타내도록 유니버스 애플리케이션 내에서 수정되고, 여기서 프리즘의 적절한 속성들(이를테면, 위치 속성들)은 새로운 위치 좌표를 나타내도록 수정된다.
[00127] 오브젝트의 새로운 포지셔닝을 나타내기 위해 오브젝트의 다른 속성들이 또한 수정될 필요가 있을 수 있다. 예컨대, 오브젝트가 디스플레이되는 새로운 위치에서 오브젝트의 배향이 변할 수 있다. 새로운 디스플레이 위치에서 오브젝트의 디스플레이된 배향을 수정하기 위해 워핑이 적용될 수 있다. 워핑의 결과로서 수용할 수 없는 비디오 아티팩트들이 발생할 수 있는 경우(예컨대, 워핑이 디스플레이된 오브젝트 이미지를 과도하게 왜곡시키고 그리고/또는 워핑이 디스플레이될 수 없는 새로운 배향에 대한 과도한 양의 오브젝트 데이터를 발생시키는 경우), 새로운 위치에 디스플레이하기 위한 오브젝트를 렌더링하기 위해 재-렌더링이 발생할 수 있다.
[00128] 상호작용 가능한 오브젝트와 연관된 데이터에 대한 배향을 결정하기 위해 임의의 적절한 접근법이 취해질 수 있다. 예컨대, 일부 실시예들에서, 상호작용 가능한 오브젝트와 연관된 데이터의 배향은 실질적으로 평면 콘텐츠의 표면 법선일 수 있거나, 배향은 미리 정의되고, 콘텐츠가 보이도록 호스트 애플리케이션이 의도한 선호 방향을 나타내기 위해 상호작용 가능한 오브젝트와 연관된 데이터와 상관될 수 있다. 예로서, 아바타는 아바타의 눈들 사이의 지점으로부터 표면 법선을 갖는 배향 벡터를 가질 것이다. 배향은 또한 적용될 수 있는 임의의 다른 적절한 방식으로 결정될 수 있다.
[00129] 일부 지점에서, 사용자는 새로운 위치에 선택된 오브젝트의 마지막 배치를 구현하려고 할 수 있다. 이는, 예컨대, 사용자가 제어기 디바이스 상의 선택 버튼/트리거를 해제할 때를 식별함으로써 인식될 수 있다. 게다가, 제어기 디바이스가 사용되지 않는 경우에도, 사용자가 적절한 제스처를 취한 것을 식별함으로써 오브젝트의 배치를 위한 위치를 식별하기 위해 "해제 제스처"가 혼합 현실 시스템에 의해 미리 구성되어 인식될 수 있다. 1009에서, 선택된 오브젝트의 배치가 인식되고, 이어서 선택 가능한 오브젝트와 연관된 데이터의 마지막 렌더링이 해당 새로운 위치에서 이루어진다.
[00130] 일부 실시예들에서, 해제 제스처의 시작은 선택 제스처의 종료와 동일할 수 있다. 예컨대, 사용자의 손이 개방된 포지션에서 시작하여 핀치로 닫힐 수 있으며(예컨대, 선택 제스처), 사용자 입력은 동일한 핀치로 시작하여 개방된 포지션으로 계속 개방할 수 있다(예컨대, 해제 제스처). 이로써, 단일 사용자 입력/상호작용은 상호작용 가능한 오브젝트를 선택(즉, 선택 제스처) 및 해제(즉, 연속 해제 제스처)하는 데 사용될 수 있다. 일부 실시예들에서, 사용자는 URL 링크와 같은 선택 가능한 오브젝트를 핀칭하고(예컨대, 개방된 손으로 시작하여 손가락들의 끝들이 터치하도록 손가락들을 움직이고), URL 링크를 브라우저 윈도우 외부로 드래그하고, (예컨대, 핀치 움직임을 반전시킴으로써) URL을 해제할 수 있고, 이는 단일 사용자 상호작용으로 간주될 수 있다. 다른 실시예들에서, 가상 오브젝트를 선택하기 위해 제1 핀치가 사용될 수 있고, 상호작용 가능한 오브젝트를 해제하기 위해 제2 핀치가 사용될 수 있다.
[00131] 예시적인 실시예에 의해, 본 개시내용은 이제 물리적 내비게이션을 사용하는 브라우저를 위한 윈도우 생성을 설명할 것이다. 설명하기 위해, 혼합 현실 시스템들에서, 사용자의 작업 공간은 디스플레이 스크린의 사이즈에 의해 제한되지 않는다고 고려된다. 따라서, 종래의 브라우저들과 달리, 혼합 현실 시스템의 브라우저 윈도우는 사용자의 환경 내의 어디든 배치 및 유지될 수 있다. 문제는, 디스플레이 가능한 브라우저 위치가 디스플레이 스크린의 한계들로 제한되어야 한다는 가정 하에 종래의 브라우저 기술들이 구성된다는 것이다.
[00132] 종래의 브라우저들의 이러한 한계를 해결하기 위해, 본 발명의 일부 실시예들은 브라우저 윈도우들의 물리적 내비게이션 및 조작을 제공하는 접근법에 관한 것이다. 일반적인 아이디어는, 브라우저 윈도우를 사용자 환경의 임의의 적합한 위치에 배치하는 능력이 혼합 현실 시스템의 사용자에게 제공되고, 여기서 해당 윈도우의 배치는 사용자의 물리적 조작 활동들에 의해 달성된다는 것이다.
[00133] 도 10b는 브라우저 윈도우들의 물리적 배치 및 조작을 구현하기 위한 접근법의 흐름도를 도시한다. 1002에서, 사용자는, 브라우저 윈도우 상의 링크 위에서 호버링하기 위해 포인팅 오브젝트(이를테면, 커서/포인터)를 조작한다. 브라우저를 구현하는 기본 컴퓨팅 시스템/OS 내에서, 포인터 오브젝트의 포지션이 추적되고 식별된다(1052). 이는, 예컨대, 시스템 내에서 하나 이상의 이벤트 오브젝트들을 추적하고 검토함으로써 발생할 수 있고, 여기서 이벤트 오브젝트들은 마우스 포인터에 대한 움직임 이벤트들에 관련된다. 이벤트 오브젝트에 대한 마우스/커서 포지션이 보고되고, 윈도우에 부착된 핸들러에 의해 수신될 수 있다.
[00134] 1004에서, 사용자는 조작 제어 메커니즘을 사용하여 트리거 제어부를 누르고 유지한다. 예컨대, 토템으로서 구현된 햅틱 제어기는, 사용자가 링크를 통해 트리거를 누르고 유지하는 것을 허용하는 데 사용될 수 있다. 토템은 AR/VR 헤드셋에 대한 토템의 포지션 및 배향을 추적하는 핸드-헬드 제어기이다. 일부 실시예들에서, 토템은, 사용자가 토템을 위 또는 아래로 이동시킴으로써 (구형 쉘 상의) 고도 및 방위각 주위에서 포인터를 움직일 수 있는 6 DOF(degree-of-freedom) 제어기일 수 있다. 오브젝트를 더 가깝게 또는 더 멀리 이동시키기 위해, 사용자는 "밀거나" "당기기" 위해 토템 상의 조이스틱을 사용할 수 있다. 1054에서, 기본 OS는 발생한 트리거링 이벤트를 나타내는 이벤트 오브젝트를 수신한다.
[00135] 1006에서, 링크 콘텐츠의 미리보기가 생성될 수 있다. 일부 실시예들에서, 이는, 트리거링이 검출된 링크와 연관된 URL에 액세스함으로써 (1056에서) 수행된다. URL은, 위치(예컨대, 웹 사이트)에 대한 위치 식별자(예컨대, IP 어드레스)가 식별되는 해당 위치를 식별하기 위해 파싱된다. 이어서, 연결(예컨대, TCP 연결)이 설정되고, 여기서 이어서 렌더링되는 콘텐츠를 식별하기 위해 HTTP 서버와의 통신들이 수행된다. 본 실시예에서, 링크 콘텐츠의 "썸네일" 기반 렌더링이 생성되도록 미리보기 기반으로 콘텐츠 렌더링이 수행된다.
[00136] 토템 트리거를 계속 유지하는 동안, 사용자는 토템이 원하는 새로운 윈도우 위치를 가리키도록 물리적 내비게이션(예컨대, 손, 팔 및 신체 움직임들)을 수행한다. 이는 윈도우 위치의 물리적 내비게이션을 발생시킨다(1008). 물리적 움직임들은, 토템의 움직임 및/또는 포지셔닝을 위한 데이터와 상관되는, 토템 디바이스의 동작에 의해 생성되고 그리고/또는 그 동작에 관련되는 이벤트 오브젝트들로 변환될 수 있다(1058). 사용자의 물리적 움직임에 대해 검출된 이러한 움직임/포지셔닝은 미리보기 윈도우의 움직임/포지셔닝에 적용되며, 미리보기 윈도우의 동적 포지셔닝은 사용자의 물리적 움직임들에 대응하여 사용자에게 디스플레이된다.
[00137] 1010에서, 이어서 사용자는 윈도우를 배치하기 위해 원하는 위치에서 토템 트리거를 해제한다. 이 지점에서, 1060에서, 토템 트리거가 해제된 위치에 대응하는 좌표들에서 브라우저 윈도우가 생성된다. 일부 실시예들에 따라, VR/AR 환경에서 각각의 애플리케이션에 의해 독립적으로 일대일 기반으로 브라우저 윈도우들을 관리하는 대신에, 윈도우는 대신 프리즘에 렌더링된다.
[00138] 도 11a-f는 혼합 현실 환경에 윈도우들을 물리적으로 배치하기 위한 이 접근법의 예시된 예를 제공한다. 도 11a는, 머리-장착 시스템(160)을 통해 사용자(108)가 보는 물리적 환경을 포함하는 혼합 현실 환경의 표현을 도시한다. 콘텐츠(예컨대, 웹 페이지)는, 네트워크(120)를 통해 액세스되는 웹 브라우저(1104)를 통해 보여질 수 있다. 브라우저(1104)에 도시된 콘텐츠는 하나 이상의 선택 가능한 링크들(1106)을 포함할 수 있다.
[00139] 네트워크(120)는 인터넷, 내부 네트워크, 사설 클라우드 네트워크, 공개 클라우드 네트워크 등일 수 있다. 웹 브라우저(1104)는 또한 네트워크(120)를 통해 프로세서(170)에 동작가능하게 커플링된다. 프로세서(170)가 머리-장착 시스템(160)과 별개의 분리된 컴포넌트로서 도시되지만, 대안적인 실시예에서, 프로세서(170)는 머리-장착 시스템(160)의 하나 이상의 컴포넌트들과 통합될 수 있고 그리고/또는 환경(100) 내의 다른 시스템 컴포넌트들, 이를테면, 예컨대, 컴퓨팅 네트워크(125) 및 스토리지 디바이스들(130)에 액세스하는 네트워크(120)에 통합될 수 있다. 프로세서(170)는 정보, 이를테면 머리-장착 시스템(160), 로컬 스토리지 디바이스(140), 웹 브라우저(1104), 컴퓨팅 네트워크(125) 및 스토리지 디바이스들(130)로부터 수신된 비디오, 오디오 및 콘텐츠를 수신 및 프로세싱하기 위한 소프트웨어로 구성될 수 있다.
[00140] 머리-장착 시스템(160)은 사용자 인터페이스, 사용자-감지 시스템, 환경 감지 시스템 및 프로세서(모두 미도시)를 포함하는 VR(virtual reality) 또는 AR(augmented reality) 머리-장착 시스템일 수 있다. 머리-장착 시스템(160)은 디지털 세계와 상호작용하고 이를 경험하기 위한 인터페이스를 사용자(108)에게 제공한다. 이러한 상호작용은 사용자 및 디지털 세계, 환경(100)과 인터페이싱하는 하나 이상의 다른 사용자들 및 디지털 및 물리적 세계 내의 오브젝트들을 수반할 수 있다.
[00141] 사용자 인터페이스는 사용자 인터페이스를 통한 사용자 입력에 의해 2D 콘텐츠를 수신하는 것 및 2D 콘텐츠 내의 엘리먼트들을 선택하는 것을 포함할 수 있다. 사용자 인터페이스는 햅틱 인터페이스 디바이스들, 키보드, 마우스, 조이스틱, 모션 캡처 제어기, 광학 추적 디바이스 및 오디오 입력 디바이스 중 적어도 하나 또는 조합일 수 있다. 토템(1102)과 같은 햅틱 인터페이스 디바이스는 인간이 신체 감각들 및 움직임들을 통해 컴퓨터와 상호작용하게 허용하는 디바이스이다. 햅틱은 컴퓨팅 디바이스 상에서 액션들 또는 프로세스들을 수행하기 위한 촉각 피드백 또는 다른 신체 감각들을 포함하는 인간-컴퓨터 상호작용 기술의 타입을 지칭한다.
[00142] 사용자-감지 시스템은 머리-장착 시스템(160)을 착용하고 있는 사용자(108)와 관련된 특정 특징들, 특성들 또는 정보를 검출하도록 동작가능한 하나 이상의 센서들을 포함할 수 있다. 예컨대, 일부 실시예들에서, 센서들은 사용자(108)의 실제-시간 광학 특성들/측정들, 이를테면, 예컨대, 동공 수축/확장, 각각의 동공의 각도 측정/포지셔닝, 구형성(spherocity), 눈 형상(시간이 지남에 따라 눈 형상이 변할 때) 및 다른 해부학적 데이터 중 하나 이상을 검출할 수 있는 카메라 또는 광학 검출/스캐닝 회로를 포함할 수 있다. 이러한 데이터는 사용자의 뷰잉 경험을 향상시키기 위해 머리-장착 시스템(160)에 의해 사용될 수 있는 정보(예컨대, 사용자의 시각 초점 포인트)를 제공하거나 이를 계산하기 위해 사용될 수 있다. 환경-감지 시스템은 또한 사용자의 물리적 환경으로부터 데이터를 획득하기 위한 하나 이상의 센서들을 포함할 수 있다. 센서들에 의해 검출된 오브젝트들 또는 정보는 머리-장착 시스템(160)에 대한 입력으로서 제공될 수 있다. 일부 실시예들에서, 이러한 입력은 가상 세계와의 사용자 상호작용을 표현할 수 있다.
[00143] 도 11b에 예시된 바와 같이, 사용자는 브라우저(1104) 내에서 선택 가능한 링크(1106)를 누르고 유지할 수 있다. 사용자(108)에 의해 제어 가능한 포인터(1108)는 선택 가능한 링크(1108) 위에서 호버링하는 데 사용될 수 있다. 사용자가 링크 위에서 호버링할 때, 이어서 사용자는 토템(1102) 상의 트리거를 누르고 유지할 수 있다.
[00144] 도 11c에 도시된 바와 같이, 사용자가 토템 트리거를 누르고 유지할 때, 미리보기 윈도우(1110a)가 사용자에게 디스플레이된다. 미리보기 윈도우(1110a)는 링크(1106)에 속하는 콘텐츠에 대응한다.
[00145] 미리보기 윈도우(1110a)는 미리보기 윈도우(1110a)의 디스플레이된 위치를 변경하기 위해 물리적 방식으로 사용자(108)에 의해 조작될 수 있다. 예컨대, 토템 트리거를 계속 유지하는 동안, 사용자는, 예컨대, 도 11d에 도시된 바와 같이, 토템을 잡고 있는 팔을 새로운 위치/포지션으로 이동시킴으로써 자신의 신체의 일부를 물리적으로 이동시킬 수 있다. 도 11e에 예시된 바와 같이, 사용자의 신체의 물리적 움직임은 미리보기 윈도우(1110a)의 위치를 변경한다. 이것은, 예컨대, 이동된 신체 부분에 고정된 토템(1102)의 포지션/배향의 변화를 검출(예컨대, 사용자의 손에 고정된 토템의 움직임의 검출)함으로써 달성될 수 있고, 여기서 물리적 움직임의 검출은 미리보기 윈도우의 대응하는 움직임으로 변환된다. 이로써, 미리보기 윈도우의 새로운 포지션의 디스플레이(그리고 움직이는 동안의 윈도우 디스플레이)는, 예컨대, 사용자의 물리적 움직임의 속도, 물리적 움직임의 거리, 물리적 움직임의 방향, 및/또는 물리적 움직임에 대응할 수 있는 임의의 다른 적절한 윈도우/디스플레이 파라미터들에 의해 제어될 수 있다. 예컨대, 팔 포지션의 상대적으로 작은 변위는 디스플레이된 미리보기 윈도우의 상대적으로 작은 움직임으로 변환될 것인 반면에, 상대적으로 더 먼 거리로 팔을 이동시키는 것은 디스플레이 윈도우 포지션의 상대적으로 더 큰 움직임으로 변환될 것이다. 또 다른 예로서, 팔의 더 느린 움직임은 움직이는 동안 미리보기 윈도우의 디스플레이되는 더 느린 움직임으로 변환될 것인 반면에, 팔을 상대적으로 더 빠르게 이동시키는 것이 움직이는 동안 미리보기 윈도우의 상대적으로 더 빠른 움직임으로 변환될 것이다.
[00146] 이어서, 사용자는 브라우저 윈도우가 배치될 위치를 선택할 수 있다. 도 11f에 예시된 바와 같이, 사용자가 토템 트리거를 해제할 때, 토템 트리거의 해제 시에 미리보기 윈도우의 위치는 생성될 새로운 브라우저 윈도우의 위치가 된다.
[00147] 따라서, 현재 실시예는, 링크를 선택하고, 이를 새로운 위치로 이동시키고, 오브젝트를 해제하여 사용자들이 자신들의 물리적 환경 내에 콘텐츠를 배치, 조직 및 저장할 수 있게 하는 새로운 윈도우를 생성하는 접근법을 제공한다. 종래의 데스크톱 및 모바일 환경들과 달리, 이 배치는 물리적 내비게이션을 통해 이루어지고, 사용자가 자신의 손, 팔 및/또는 신체를 사용하여 사용자 공간 주위에서 콘텐츠를 이동시키게 할 수 있다. 이러한 형태의 내비게이션은 데스크톱 및 모바일 브라우저들에 의해 사용되는 가상 내비게이션보다 더 훨씬 효율적이고, 사용자들에게 자신들의 공간 내의 브라우저 윈도우들의 생성 및 배치에 대한 더 많은 제어를 제공한다.
[00148] 위에서 설명된 바와 같이, 이 접근법은 또한, 사용자가 한 번의 사용자 상호작용(예컨대, 버튼의 단지 한 번의 누름)으로 새로운 윈도우를 개방할 뿐만 아니라 배치할 수 있게 하기 때문에 유리하다. 이는, 먼저 버튼을 눌러 새로운 윈도우를 개방하고 이어서 버튼을 눌러 새로운 윈도우를 제2 위치로 이동/배치하도록 사용자에게 요구하는 다른 상호작용 접근법들에 비해 상당한 개선책이다.
[00149] 또 다른 예시적인 실시예로서, 본 개시내용은 이제 물리적 조작을 사용하여 임의의 상호작용 가능한 오브젝트의 배치를 설명할 것이다. 특정 예시적인 실시예는 그림, 가상 텔레비전, 가상 모니터, 또는 벽 위치에 배치될 수 있는 임의의 다른 오브젝트와 같은 벽걸이 오브젝트의 배치에 관한 것이다. 이러한 예시적인 상황은, 사용자가 집 전체의 벽들에 걸고 싶은 한 세트의 벽 장식품들/사진들을 가질 수 있지만 사용자가 이들을 어디에 놓아야 할지를 정확히 알지 못할 수 있다는 아이디어에 관련된다. 따라서, 시스템은, 사용자에 의해 벽 상의 배치 위치로 물리적으로 조작될 수 있는 벽 장식품 애플리케이션에서 사진/그림의 디지털 사본들을 생성할 것이다.
[00150] 도 10c는 일부 실시예들에 따른, 벽 오브젝트들의 물리적 배치 및 조작을 구현하기 위한 접근법의 흐름도를 도시한다. 1022에서, 사용자는, 브라우저 윈도우와 같은 호스트 애플리케이션 상의 상호작용 가능한 콘텐츠(이를테면, 벽 오브젝트 표현(아이콘) 또는 벽 오브젝트에 대한 링크) 위에서 호버링하기 위해 사용자 선택 오브젝트(이를테면, 커서/포인터)를 조작한다. 호스트 애플리케이션을 구현하는 기본 컴퓨팅 시스템/OS 내에서, 사용자 선택 오브젝트의 포지션이 추적되고 식별된다(1072). 이는, 예컨대, 시스템 내에서 하나 이상의 이벤트 오브젝트들을 추적하고 검토함으로써 발생할 수 있으며, 여기서 이벤트 오브젝트들은 사용자 선택 오브젝트의 움직임 이벤트들과 관련된다. 이벤트 오브젝트에 대한 사용자 선택 오브젝트 포지션이 보고되고, 호스트 애플리케이션에 부착된 핸들러에 의해 수신될 수 있다.
[00151] 1024에서, 사용자는 토템 상의 트리거와 같은 조작 제어 메커니즘을 누르고 유지한다. 예컨대, 토템으로 구현된 햅틱 제어기는, 사용자가 링크, 또는 파일들, 애플리케이션 콘텐츠 등과 같은 다른 상호작용 가능한 콘텐츠를 선택하기 위해 트리거를 누르고 유지할 수 있게 하는 데 사용되어, 상호작용 가능한 콘텐츠가 조작될 때, 조작이 발생하기 전과 비교하여, 추가적인 데이터에 액세스될 수 있다. 1074에서, 기본 OS는, 조작 제어 메커니즘 이벤트(이를테면, 토템 트리거 누르거나 유지함)가 발생했음을 나타내는 이벤트 오브젝트를 수신한다. 조작 제어 메커니즘 이벤트는 상호작용 가능한 오브젝트의 선택, 또는 선택된 상호작용 가능한 오브젝트의 조작을 나타낼 수 있다.
[00152] 1026에서, 상호작용 가능한 오브젝트와 연관된 데이터에 대한 미리보기가 생성될 수 있다. 일부 실시예들에서, 이것은, 조작 제어 메커니즘이 검출된 링크와 연관된 URL과 같은 상호작용 가능한 오브젝트와 연관된 데이터에 액세스함으로써 (1076에서) 수행된다. 일부 실시예들에서, 상호작용 가능한 오브젝트 데이터는 위치(예컨대, 웹 사이트)에 대한 위치 식별자(예컨대, IP 어드레스)가 식별되는 해당 위치를 식별하도록 파싱된다. 이어서, 연결(예컨대, TCP 연결)이 설정되고, 여기서 이어서 렌더링되는 콘텐츠를 식별하기 위해 HTTP 서버와의 통신들이 수행된다. 일부 실시예들에서, 벽 장식품의 디지털 아웃라인이 미리보기로서 생성되도록, 콘텐츠 렌더링이 미리보기 기반으로 수행된다.
[00153] 조작 제어 메커니즘을 계속 활성화하는 동안, 사용자는, 상호작용 가능한 오브젝트와 연관된 데이터에 대해 사용자 선택 오브젝트를 원하는 벽 위치로 가리키기 위한 물리적 내비게이션(예컨대, 손, 팔 및/또는 신체 움직임들)을 수행한다. 일부 실시예들에서, 이것은 오브젝트 위치의 물리적 내비게이션을 발생시킬 수 있다(1028). 물리적 움직임들은, 토템의 움직임 및/또는 포지셔닝을 위한 데이터와 상관되는, 토템 디바이스의 동작에 의해 생성되고 그리고/또는 그 동작에 관련되는 이벤트 오브젝트들로 변환된다(1078). 사용자의 물리적 움직임에 대해 검출된 이러한 움직임/포지셔닝은 미리보기 벽 장식품의 움직임/포지셔닝에 적용되며, 미리보기 벽 장식품의 동적 포지셔닝은 사용자의 물리적 움직임들에 대응하여 사용자에게 디스플레이된다.
[00154] 1030에서, 이어서 사용자는, 상호작용 가능한 오브젝트와 연관된 데이터를 원하는 벽 위치에 배치하기 위해 원하는 위치에서 토템 트리거를 해제한다. 이 지점에서, 1080에서, 상호작용 가능한 오브젝트의 마지막 버전이, 토템 트리거가 해제된 위치에 대응하는 좌표들에서 생성된다. 벽 장식품의 전체 디지털 사본(예컨대, 소스 URL에서 로케이팅됨)은 배치 위치에서 상호작용 가능한 오브젝트의 마지막 렌더링을 생성하는 데 사용된다.
[00155] 도 12a-f는 혼합 현실 환경에서 벽 장식품을 물리적으로 배치하기 위한 이러한 접근법의 예시된 예를 제공한다. 이 도면은, 머리-장착 시스템(160)을 통해 사용자(108)가 보는 물리적 환경을 포함하는 혼합 현실 환경의 표현을 도시한다. 사용자는, 벽 장식품 오브젝트들이 배치될 수 있는 벽 공간(105)을 포함하는 다양한 위치들에 위치될 수 있다. 콘텐츠(예컨대, 상호작용 가능한 오브젝트들/벽 장식품들)는, 예컨대, 하나 이상의 아이콘들/선택 가능한 링크들/아이콘들(1106)을 통해 액세스될 수 있다.
[00156] 도 12b에 예시된 바와 같이, 사용자는 상호작용 가능한 오브젝트(1106)를 누르고 유지할 수 있고, 예컨대, 여기서 사용자(108)에 의해 동작되는 제어기는 상호작용 가능한 오브젝트(1106) 위에서 호버링하는 데 사용될 수 있다. 사용자가 오브젝트 위에서 호버링할 때, 이어서 사용자는 오브젝트를 선택하기 위해 제어기 상의 트리거를 누르고 유지할 수 있다.
[00157] 도 12c에 도시된 바와 같이, 사용자가 제어기 트리거를 누르고 유지할 때, 벽 장식품 오브젝트의 미리보기(1202)가 사용자에게 디스플레이된다. 미리보기(1202)는 링크(1106)에 위치된 벽 장식품의 디지털 아웃라인 및/또는 썸네일에 대응하고, 상호작용 가능한 오브젝트와 연관된 데이터의 시각적 표현이다.
[00158] 미리보기(1202)는 미리보기(1202)의 디스플레이된 위치를 변경하기 위해 물리적 방식으로 사용자(108)에 의해 조작될 수 있다. 예컨대, 토템 트리거를 계속 유지하는 동안, 사용자는, 예컨대, 도 12d에 도시된 바와 같이, 토템을 잡고 있는 팔을 새로운 위치/포지션으로 이동시킴으로써 자신의 신체의 일부를 물리적으로 이동시킬 수 있다. 도 12e에 예시된 바와 같이, 사용자 신체의 물리적 움직임은 미리보기(1202)의 위치를 대응하는 벽 위치로 변경한다. 이것은, 예컨대, 이동된 신체 부분에 고정된 토템(1102)의 포지션/배향의 변화를 검출(예컨대, 사용자의 손에 고정된 토템의 움직임의 검출)함으로써 달성될 수 있고, 여기서 물리적 움직임의 검출은 미리보기의 대응하는 움직임으로 변환된다. 이로써, 미리보기의 새로운 포지션의 디스플레이(그리고 움직이는 동안의 미리보기 디스플레이)는, 예컨대, 사용자의 물리적 움직임의 속도, 물리적 움직임의 거리, 물리적 움직임의 방향, 및/또는 물리적 움직임에 대응할 수 있는 임의의 다른 적절한 디스플레이 파라미터들에 의해 제어될 수 있다. 예컨대, 팔 포지션의 상대적으로 작은 변위는 디스플레이된 미리보기의 상대적으로 작은 움직임으로 변환될 것인 반면에, 상대적으로 더 먼 거리로 팔을 이동시키는 것은 미리보기 디스플레이의 상대적으로 더 큰 움직임으로 변환될 것이다. 또 다른 예로서, 팔의 더 느린 움직임은 움직이는 동안 미리보기의 디스플레이되는 더 느린 움직임으로 변환될 것인 반면에, 팔을 상대적으로 더 빠르게 이동시키는 것이 움직이는 동안 미리보기의 상대적으로 더 빠른 움직임으로 변환될 것이다.
[00159] 이어서, 사용자는 벽 장식품이 배치될 위치를 선택할 수 있다. 도 12f에 예시된 바와 같이, 사용자가 토템 트리거를 해제할 때, 토템 트리거 해제 시에 미리보기의 위치가 새롭게 생성된 벽 장식품의 위치가 된다. 이어서, 상호작용 가능한 오브젝트로부터 벽 장식품의 전체 디지털 사본이 리트리브되고, 선택된 배치 위치에서 디스플레이를 위해 렌더링된다.
[00160] 이 접근법에 대한 많은 이익들이 존재한다. 예컨대, 오브젝트들의 배치를 구현하기 위한 이러한 물리적 접근법은 사용자가 그들의 태스크들을 공간적으로 조직하고 그들의 물리적 공간을 사용하여 콘텐츠를 그룹화하고 관계들을 설정하며 실세계 오브젝트들과 같은 의미를 생성할 수 있다. 게다가, 가상 메뉴들 및 디폴트 오브젝트/윈도우 배치들만을 사용하는 것보다는, 물리적 내비게이션은 자신들의 손, 팔들, 몸을 이동시킴으로써 사용자가 콘텐츠를 수동으로 배치하게 허용한다. 이것이 공간 기억과 같이 대부분의 사람들에게 본능적으로 친숙한 구현된 물리적 기술들을 레버리지하고 사용자에게 더 많은 제어를 제공하기 때문에, 이것은 훨씬 더 효율적인 인터페이스이다. 이것은, 전통적인 데스크톱 및 모바일 브라우저들에서, 특히 새로운 오브젝트들/윈도우들이 전형적으로 현재 위치를 가리는 디폴트 위치에서 생성되는 경우에, 새로운 오브젝트들/윈도우들이 브라우저의 파일 메뉴 또는 링크 콘텍스트 메뉴들을 통해서만 생성된다는 점에서 현재 기술에 비해 개선책이다. 게다가, 컴퓨팅은 전형적으로 하나의 사용자 상호작용에서 새로운 디지털 오브젝트를 생성하고, 이어서 제2 사용자 상호작용으로 새롭게 생성된 디지털 콘텐츠를 배치하도록 사용자에게 요구하는 반면에, 개선책은 위의 동작들 둘 모두를 행하기 위해 하나의 사용자 상호작용만을 요구한다.
부가적인 실시예들
[00161] 본 개시내용의 부가적인 실시예들이 아래에 설명된다. 이들 부가적인 실시예들은 위에 개시된 실시예들로부터의 엘리먼트들을 통합할 수 있고, 이들 부가적인 실시예들의 엘리먼트들은 위에 개시된 실시예들에 통합될 수 있다.
1. 방법은:
상호작용 가능한 오브젝트를 식별하는 단계;
상호작용 가능한 오브젝트에 대응하는 사용자의 물리적 움직임을 식별하는 단계;
사용자의 물리적 움직임에 기반하여, 상호작용 가능한 오브젝트와 연관된 데이터에 대한 좌표 위치를 결정하는 단계; 및
상호작용 가능한 오브젝트와 연관된 데이터를 사용자의 물리적 움직임에 대응하는 좌표 위치에 배치하는 단계를 포함한다.
2. 제1 실시예의 방법에 있어서, 사용자 입력 디바이스는 사용자의 물리적 움직임을 검출하는 데 사용된다.
3. 제2 실시예의 방법에 있어서, 사용자 입력 디바이스는 햅틱 제어기이다.
4. 제3 실시예의 방법에 있어서, 햅틱 제어기는 적어도 6 자유도를 갖는 토템 디바이스에 대응한다.
5. 제3 실시예의 방법에 있어서, 사용자의 물리적 움직임은 햅틱 제어기와 연관된 프로세싱 시스템에서 이벤트 오브젝트들로 변환되고, 여기서 이벤트 오브젝트들은 햅틱 제어기의 움직임 또는 포지셔닝을 나타내는 데이터와 상관된다.
6. 제3 실시예의 방법에 있어서, 상호작용 가능한 오브젝트에 대한 좌표 위치는 사용자의 물리적 움직임 후에 햅틱 제어기에 대한 트리거가 해제되는 위치를 식별함으로써 결정된다.
7. 제2 실시예의 방법에 있어서, 사용자 입력 디바이스는 사용자 제스처를 검출하기 위한 카메라이다.
8. 제1 실시예의 방법에 있어서, 개방할 상호작용 가능한 오브젝트는 사용자 신체의 일부와 상호작용하는 링크를 식별함으로써 식별된다.
9. 제8 실시예의 방법에 있어서, 링크와 연관된 URL에 대한 콘텐츠에 액세스함으로써 링크의 미리보기가 생성된다.
10. 제9 실시예의 방법에 있어서, 사용자의 물리적 움직임은 미리보기의 물리적 움직임에 대응한다.
11. 제1 실시예의 방법에 있어서, 상호작용 가능한 오브젝트는 컴퓨팅 디바이스의 단일 사용자 상호작용을 사용하여 개방될 뿐만 아니라 배치된다.
12. 제1 실시예의 방법에 있어서,
상호작용 가능한 오브젝트에 대한 배향은:
좌표 위치의 표면 법선을 결정하고;
상호작용 가능한 오브젝트와 연관된 데이터의 배향을 결정하고; 그리고
좌표 위치의 표면 법선과, 상호작용 가능한 오브젝트와 연관된 데이터의 배향을 정렬함으로써 결정된다.
13. 제1 실시예의 방법에 있어서, 상호작용 가능한 오브젝트는 벽 장식품을 포함한다.
14. 시스템은:
3차원 콘텐츠를 디스플레이하도록 구성된 혼합 현실 디스플레이 디바이스;
사용자의 물리적 움직임을 검출하도록 구성된 사용자 입력 디바이스;
사용자 입력 디바이스로부터 데이터를 수신하고 프로세싱하는 프로세서;
프로세서에 의해 실행 가능한 프로그래밍 가능한 코드를 보관하기 위한 메모리를 포함하고,
프로그램 가능한 코드는 상호작용 가능한 오브젝트를 식별하기 위한 명령, 상호작용 가능한 오브젝트에 대응하는 사용자의 물리적 움직임을 식별하기 위한 명령, 사용자의 물리적 움직임에 기반하여 상호작용 가능한 오브젝트와 연관된 데이터에 대한 좌표 위치를 결정하기 위한 명령, 및 상호작용 가능한 오브젝트와 연관된 데이터를 사용자의 물리적 움직임에 대응하는 좌표 위치에 배치하기 위한 명령을 포함한다.
15. 제14 실시예의 시스템에 있어서, 사용자 입력 디바이스는 햅틱 제어기이다.
16. 제15 실시예의 시스템에 있어서, 햅틱 제어기는 적어도 6 자유도를 갖는 토템 디바이스에 대응한다.
17. 제15 실시예의 시스템에 있어서, 사용자의 물리적 움직임은 프로세서에서 이벤트 오브젝트들로 변환되고, 여기서 이벤트 오브젝트들은 햅틱 제어기의 움직임 또는 포지셔닝을 나타내는 데이터와 상관된다.
18. 제15 실시예의 시스템에 있어서, 상호작용 가능한 오브젝트에 대한 좌표 위치는 사용자의 물리적 움직임 후에 햅틱 제어기에 대한 트리거가 해제되는 위치를 식별함으로써 결정된다.
19. 제14 실시예의 시스템에 있어서, 사용자 입력 디바이스는 사용자 제스처를 검출하기 위한 카메라이다.
20. 제14 실시예의 시스템에 있어서, 개방할 상호작용 가능한 오브젝트는 사용자 신체의 일부와 상호작용하는 링크를 식별함으로써 식별된다.
21. 제20 실시예의 시스템에 있어서, 링크와 연관된 URL에 대한 콘텐츠에 액세스함으로써 링크의 미리보기가 생성된다.
22. 제20 실시예의 시스템에 있어서, 사용자의 물리적 움직임은 미리보기의 물리적 움직임에 대응한다.
23. 제14 실시예의 시스템에 있어서, 상호작용 가능한 오브젝트는 벽 장식품을 포함한다.
24. 제14 실시예의 시스템에 있어서, 프로그램 가능한 코드는:
좌표 위치의 표면 법선을 결정하고;
상호작용 가능한 오브젝트와 연관된 데이터의 배향을 결정하고; 그리고
좌표 위치의 표면 법선과, 상호작용 가능한 오브젝트와 연관된 데이터의 배향을 정렬함으로써 상호작용 가능한 오브젝트에 대한 배향을 결정하기 위한 명령들을 더 포함한다.
25. 컴퓨터 프로그램 제품은 컴퓨터 판독 가능 매체 상에 포함되고, 컴퓨터 판독 가능 매체는 일련의 명령들을 저장하고, 일련의 명령들은, 프로세서에 의해 실행될 때, 프로세서로 하여금 방법을 실행하게 하고, 방법은:
상호작용 가능한 오브젝트를 식별하는 단계;
상호작용 가능한 오브젝트에 대응하는 사용자의 물리적 움직임을 식별하는 단계;
사용자의 물리적 움직임에 기반하여, 상호작용 가능한 오브젝트와 연관된 데이터에 대한 좌표 위치를 결정하는 단계; 및
상호작용 가능한 오브젝트와 연관된 데이터를 사용자의 물리적 움직임에 대응하는 좌표 위치에 배치하는 단계를 포함한다.
26. 제25 실시예의 컴퓨터 프로그램 제품에 있어서, 사용자 입력 디바이스는 윈도우에 대응하는 사용자의 물리적 움직임을 검출하는 데 사용된다.
27. 제26 실시예의 컴퓨터 프로그램 제품에 있어서, 사용자 입력 디바이스는 햅틱 제어기이다.
28. 제27 실시예의 컴퓨터 프로그램 제품에 있어서, 햅틱 제어기는 적어도 6 자유도를 갖는 토템 디바이스에 대응한다.
29. 제27 실시예의 컴퓨터 프로그램 제품에 있어서, 사용자의 물리적 움직임은 햅틱 제어기와 연관된 프로세싱 시스템에서 이벤트 오브젝트들로 변환되고, 여기서 이벤트 오브젝트들은 햅틱 제어기의 움직임 또는 포지셔닝을 나타내는 데이터와 상관된다.
30. 제27 실시예의 컴퓨터 프로그램 제품에 있어서, 상호작용 가능한 오브젝트에 대한 좌표 위치는 사용자의 물리적 움직임 후에 햅틱 제어기에 대한 트리거가 해제되는 위치를 식별함으로써 결정된다.
31. 제26 실시예의 컴퓨터 프로그램 제품에 있어서, 사용자 입력 디바이스는 사용자 제스처를 검출하기 위한 카메라이다.
32. 제25 실시예의 컴퓨터 프로그램 제품에 있어서, 개방할 윈도우는 사용자 신체의 일부와 상호작용하는 링크를 식별함으로써 식별된다.
33. 제32 실시예의 컴퓨터 프로그램 제품에 있어서, 링크와 연관된 URL에 대한 콘텐츠에 액세스함으로써 링크의 미리보기가 생성된다.
34. 제33 실시예의 컴퓨터 프로그램 제품에 있어서, 사용자의 물리적 움직임은 미리보기의 물리적 움직임에 대응한다.
35. 제25 실시예의 컴퓨터 프로그램 제품에 있어서, 상호작용 가능한 오브젝트는 컴퓨팅 디바이스의 단일 사용자 상호작용을 사용하여 개방될 뿐만 아니라 배치된다.
36. 제35 실시예의 컴퓨터 프로그램 제품에 있어서, 단일 사용자 상호작용은 컴퓨팅 디바이스 상의 버튼의 단일 누름을 포함한다.
37. 제25 실시예의 컴퓨터 프로그램 제품에 있어서, 일련의 명령들은 추가로:
좌표 위치의 표면 법선을 결정하고;
상호작용 가능한 오브젝트와 연관된 데이터의 배향을 결정하고; 그리고
좌표 위치의 표면 법선과, 상호작용 가능한 오브젝트와 연관된 데이터의 배향을 정렬함으로써 상호작용 가능한 오브젝트에 대한 배향을 결정한다.
38. 방법은:
사용자 상호작용의 시작시 상호작용 가능한 오브젝트의 선택을 나타내는 데이터를 수신하는 단계,
상호작용 가능한 오브젝트와 사용자 상호작용의 종료를 나타내는 데이터를 수신하는 단계,
사용자 상호작용의 종료시 상호작용 가능한 오브젝트의 위치를 결정하는 단계, 및
사용자 상호작용의 종료시 상호작용 가능한 오브젝트와 연관된 데이터를 상호작용 가능한 오브젝트의 위치에 배치하는 단계를 포함한다.
39. 제38 실시예의 방법에 있어서, 상호작용 가능한 오브젝트의 선택을 나타내는 데이터 및 상호작용 가능한 오브젝트와 사용자 상호작용의 종료를 나타내는 데이터를 사용자 입력 디바이스가 제공하는 단계를 더 포함한다.
40. 제39 실시예의 방법에 있어서, 사용자 입력 디바이스는 햅틱 제어기이다.
41. 제40 실시예의 방법에 있어서, 햅틱 제어기는 적어도 6 자유도를 갖는 토템 디바이스에 대응한다.
42. 제40 실시예의 방법에 있어서, 사용자의 물리적 움직임은 햅틱 제어기와 연관된 프로세싱 시스템에서 이벤트 오브젝트들로 변환되고, 이벤트 오브젝트들은 햅틱 제어기의 움직임 또는 포지셔닝을 위한 데이터와 상관된다.
43. 제40 실시예의 방법에 있어서, 사용자 상호작용의 종료시 상호작용 가능한 오브젝트의 위치는, 상호작용 가능한 오브젝트의 선택 후에, 햅틱 제어기에 대한 트리거가 해제되는 위치를 식별함으로써 결정된다.
44. 제39 실시예의 방법에 있어서, 사용자 입력 디바이스는 사용자 제스처를 검출하기 위한 카메라이다.
45. 제44 실시예의 방법에 있어서, 상호작용 가능한 오브젝트의 선택을 나타내는 데이터는 선택 제스처에 대응한다.
46. 제44 실시예의 방법에 있어서, 상호작용 가능한 오브젝트와 사용자 상호작용의 종료를 나타내는 데이터는 해제 제스처에 대응한다.
47. 제38 실시예의 방법에 있어서, 상호작용 가능한 오브젝트의 선택을 나타내는 데이터는 링크와 상호작용하는 사용자의 신체의 적어도 일부에 대응한다.
48. 제47 실시예의 방법에 있어서, 링크와 연관된 URL에 대한 콘텐츠에 액세스함으로써 링크의 미리보기가 생성된다.
49. 제48 실시예의 방법에 있어서, 사용자의 물리적 움직임을 나타내는 데이터를 수신하는 단계를 더 포함하고, 사용자의 물리적 움직임은 미리보기의 물리적 움직임에 대응한다.
50. 제38 실시예의 방법에 있어서, 상호작용 가능한 오브젝트는 사용자 상호작용을 사용하여 개방될 뿐만 아니라 배치된다.
51. 제38 실시예의 방법에 있어서, 상호작용 가능한 오브젝트에 대한 배향은:
사용자 상호작용의 종료시 상호작용 가능한 오브젝트의 위치의 표면 법선을 결정하고;
상호작용 가능한 오브젝트와 연관된 데이터의 배향을 결정하고; 그리고
좌표 위치의 표면 법선과, 상호작용 가능한 오브젝트와 연관된 데이터의 배향을 정렬함으로써 결정된다.
52. 제39 실시예의 방법에 있어서, 상호작용 가능한 오브젝트는 벽 장식품을 포함한다.
53. 방법은:
사용자 상호작용의 시작시 상호작용 가능한 오브젝트의 선택을 나타내는 데이터를 수신하는 단계,
상호작용 가능한 오브젝트와 사용자 상호작용의 종료를 나타내는 데이터를 수신하는 단계,
사용자 상호작용의 종료시 상호작용 가능한 오브젝트의 위치를 결정하는 단계, 및
사용자 상호작용의 종료시 상호작용 가능한 오브젝트의 위치가 상호작용 가능한 오브젝트의 초기 프리즘 외부에 있을 때, 사용자 상호작용의 종료시 상호작용 가능한 오브젝트와 연관된 데이터에 대한 새로운 프리즘을 생성하는 단계를 포함한다.
54. 제53 실시예의 방법에 있어서, 상호작용 가능한 오브젝트가 초기 프리즘의 경계들 외부에 위치될 때, 사용자 상호작용의 시작과 종료 사이에 상호작용 가능한 오브젝트의 위치에서 상호작용 가능한 오브젝트와 연관된 데이터의 시각적 미리보기를 디스플레이하는 단계를 더 포함한다.
55. 제53 실시예의 방법에 있어서, 상호작용 가능한 오브젝트의 선택을 나타내는 데이터 및 상호작용 가능한 오브젝트와 사용자 상호작용의 종료를 나타내는 데이터를 사용자 입력 디바이스가 제공하는 단계를 더 포함한다.
56. 제55 실시예의 방법에 있어서, 사용자 입력 디바이스는 햅틱 제어기이다.
57. 제56 실시예의 방법에 있어서, 햅틱 제어기는 적어도 6 자유도를 갖는 토템 디바이스에 대응한다.
58. 제56 실시예의 방법에 있어서, 사용자의 물리적 움직임은 햅틱 제어기와 연관된 프로세싱 시스템에서 이벤트 오브젝트들로 변환되고, 이벤트 오브젝트들은 햅틱 제어기의 움직임 또는 포지셔닝을 위한 데이터와 상관된다.
59. 제56 실시예의 방법에 있어서, 사용자 상호작용의 종료시 상호작용 가능한 오브젝트의 위치는, 상호작용 가능한 오브젝트의 선택 후에, 햅틱 제어기에 대한 트리거가 해제되는 위치를 식별함으로써 결정된다.
60. 제55 실시예의 방법에 있어서, 사용자 입력 디바이스는 사용자 제스처를 검출하기 위한 카메라이다.
61. 제60 실시예의 방법에 있어서, 상호작용 가능한 오브젝트의 선택을 나타내는 데이터는 선택 제스처에 대응한다.
62. 제60 실시예의 방법에 있어서, 상호작용 가능한 오브젝트와 사용자 상호작용의 종료를 나타내는 데이터는 해제 제스처에 대응한다.
63. 제53 실시예의 방법에 있어서, 상호작용 가능한 오브젝트의 선택을 나타내는 데이터는 링크와 상호작용하는 사용자의 신체의 적어도 일부에 대응한다.
64. 제63 실시예의 방법에 있어서, 링크와 연관된 URL에 대한 콘텐츠에 액세스함으로써 링크의 미리보기가 생성된다.
65. 제64 실시예의 방법에 있어서, 사용자의 물리적 움직임을 나타내는 데이터를 수신하는 단계를 더 포함하고, 사용자의 물리적 움직임은 미리보기의 물리적 움직임에 대응한다.
66. 제53 실시예의 방법에 있어서, 상호작용 가능한 오브젝트는 사용자 상호작용을 사용하여 개방될 뿐만 아니라 배치된다.
67. 제53 실시예의 방법에 있어서, 상호작용 가능한 오브젝트에 대한 배향은:
사용자 상호작용의 종료시 상호작용 가능한 오브젝트의 위치의 표면 법선을 결정하고;
상호작용 가능한 오브젝트와 연관된 데이터의 배향을 결정하고; 그리고
좌표 위치의 표면 법선과, 상호작용 가능한 오브젝트와 연관된 데이터의 배향을 정렬함으로써 결정된다.
68. 제53 실시예의 방법에 있어서, 상호작용 가능한 오브젝트는 벽 장식품을 포함한다.
69. 방법은:
사용자 상호작용의 시작시 제1 프리즘 내에 포함된 상호작용 가능한 오브젝트의 선택을 나타내는 데이터를 수신하는 단계, 및
사용자 상호작용의 시작과 종료 사이에 사용자 상호작용에 대응하는 사용자의 물리적 움직임을 나타내는 데이터가 상호작용 가능한 오브젝트가 사용자 상호작용의 종료시 제1 프리즘 외부에 있다는 것을 나타낼 때, 상호작용 가능한 오브젝트와 연관된 데이터를 포함하기 위한 제2 프리즘을 사용자 상호작용의 종료시 상호작용 가능한 오브젝트의 위치에서 생성하는 단계를 포함한다.
70. 제69 실시예의 방법에 있어서, 상호작용 가능한 오브젝트의 선택을 나타내는 데이터 및 사용자 상호작용의 시작과 종료 사이에 사용자 상호작용에 대응하는 사용자의 물리적 움직임을 나타내는 데이터를 사용자 입력 디바이스가 제공하는 단계를 더 포함한다.
71. 제70 실시예의 방법에 있어서, 사용자 입력 디바이스는 햅틱 제어기이다.
72. 제71 실시예의 방법에 있어서, 햅틱 제어기는 적어도 6 자유도를 갖는 토템 디바이스에 대응한다.
73. 제71 실시예의 방법에 있어서, 사용자의 물리적 움직임은 햅틱 제어기와 연관된 프로세싱 시스템에서 이벤트 오브젝트들로 변환되고, 이벤트 오브젝트들은 햅틱 제어기의 움직임 또는 포지셔닝을 위한 데이터와 상관된다.
74. 제71 실시예의 방법에 있어서, 사용자 상호작용의 종료시 상호작용 가능한 오브젝트의 위치는, 상호작용 가능한 오브젝트의 선택 후에, 햅틱 제어기에 대한 트리거가 해제되는 위치를 식별함으로써 결정된다.
75. 제70 실시예의 방법에 있어서, 사용자 입력 디바이스는 사용자 제스처를 검출하기 위한 카메라이다.
76. 제75 실시예의 방법에 있어서, 상호작용 가능한 오브젝트의 선택을 나타내는 데이터는 선택 제스처에 대응한다.
77. 제75 실시예의 방법에 있어서, 상호작용 가능한 오브젝트와 사용자 상호작용의 종료를 나타내는 데이터는 해제 제스처에 대응한다.
78. 제69 실시예의 방법에 있어서, 상호작용 가능한 오브젝트의 선택을 나타내는 데이터는 링크와 상호작용하는 사용자의 신체의 적어도 일부에 대응한다.
79. 제78 실시예의 방법에 있어서, 링크와 연관된 URL에 대한 콘텐츠에 액세스함으로써 링크의 미리보기가 생성된다.
80. 제79 실시예의 방법에 있어서, 사용자의 물리적 움직임은 미리보기의 물리적 움직임에 대응한다.
81. 제69 실시예의 방법에 있어서, 상호작용 가능한 오브젝트는 사용자 상호작용을 사용하여 개방될 뿐만 아니라 배치된다.
82. 제69 실시예의 방법에 있어서, 상호작용 가능한 오브젝트에 대한 배향은:
사용자 상호작용의 종료시 상호작용 가능한 오브젝트의 위치의 표면 법선을 결정하고;
상호작용 가능한 오브젝트와 연관된 데이터의 배향을 결정하고; 그리고
좌표 위치의 표면 법선과, 상호작용 가능한 오브젝트와 연관된 데이터의 배향을 정렬함으로써 결정된다.
83. 제69 실시예의 방법에 있어서, 상호작용 가능한 오브젝트는 벽 장식품을 포함한다.
84. 시스템은:
3차원 콘텐츠를 디스플레이하도록 구성된 혼합 현실 디스플레이 디바이스;
사용자의 물리적 움직임을 검출하도록 구성된 사용자 입력 디바이스;
사용자 입력 디바이스로부터 데이터를 수신하고 프로세싱하는 프로세서;
프로세서에 의해 실행 가능한 프로그래밍 가능한 코드를 보관하기 위한 메모리를 포함하고,
프로그램 가능한 코드는 사용자 상호작용의 시작시 제1 프리즘 내에 포함된 상호작용 가능한 오브젝트의 선택을 나타내는 데이터를 수신하기 위한 명령, 상호작용 가능한 오브젝트와 사용자 상호작용의 종료를 나타내는 데이터를 수신하기 위한 명령, 사용자 상호작용의 시작과 종료 사이에 제1 프리즘으로부터 상호작용 가능한 오브젝트를 제거하는 것에 대응하는 사용자의 물리적 움직임을 나타내는 데이터를 수신하기 위한 명령, 및 상호작용 가능한 오브젝트와 사용자 상호작용의 종료시 상호작용 가능한 오브젝트와 연관된 데이터를 포함하기 위한 제2 프리즘을 생성하기 위한 명령을 포함한다.
85. 시스템은:
3차원 콘텐츠를 디스플레이하도록 구성된 혼합 현실 디스플레이 디바이스;
사용자의 물리적 움직임을 검출하도록 구성된 사용자 입력 디바이스;
사용자 입력 디바이스로부터 데이터를 수신하고 프로세싱하는 프로세서;
프로세서에 의해 실행 가능한 프로그래밍 가능한 코드를 보관하기 위한 메모리를 포함하고,
프로그램 가능 코드는 사용자 상호작용의 시작시 상호작용 가능한 오브젝트의 선택을 나타내는 데이터를 수신하기 위한 명령, 상호작용 가능한 오브젝트와 사용자 상호작용의 종료를 나타내는 데이터를 수신하기 위한 명령, 사용자 상호작용의 종료시 상호작용 가능한 오브젝트의 위치를 결정하기 위한 명령, 및 사용자 상호작용의 종료시 상호작용 가능한 오브젝트의 위치가 상호작용 가능한 오브젝트의 초기 프리즘 외부에 있을 때, 사용자 상호작용의 종료시 상호작용 가능한 오브젝트와 연관된 데이터에 대한 새로운 프리즘을 생성하기 위한 명령을 포함한다.
86. 시스템은:
3차원 콘텐츠를 디스플레이하도록 구성된 혼합 현실 디스플레이 디바이스;
사용자의 물리적 움직임을 검출하도록 구성된 사용자 입력 디바이스;
사용자 입력 디바이스로부터 데이터를 수신하고 프로세싱하는 프로세서;
프로세서에 의해 실행 가능한 프로그래밍 가능한 코드를 보관하기 위한 메모리를 포함하고,
프로그램 가능 코드는 사용자 상호작용의 시작시 제1 프리즘 내에 포함된 상호작용 가능한 오브젝트의 선택을 나타내는 데이터를 수신하기 위한 명령, 및 사용자 상호작용의 시작과 종료 사이에 사용자 상호작용에 대응하는 사용자의 물리적 움직임을 나타내는 데이터가 상호작용 가능한 오브젝트가 사용자 상호작용의 종료시 제1 프리즘 외부에 있다는 것을 나타낼 때, 상호작용 가능한 오브젝트와 연관된 데이터를 포함하기 위한 제2 프리즘을 사용자 상호작용의 종료시 상호작용 가능한 오브젝트의 위치에서 생성하기 위한 명령을 포함한다.
시스템 아키텍처 개요
[00162] 도 13은 본 개시내용의 실시예를 구현하는 데 적절한 예시적인 컴퓨팅 시스템(1400)의 블록도이다. 컴퓨팅 시스템(1400)은 서브시스템들 및 디바이스들, 이를테면, 프로세서(1407), 시스템 메모리(1408)(예컨대, RAM), 정적 저장 디바이스(1409)(예컨대, ROM), 디스크 드라이브(1410)(예컨대, 자기 또는 광학), 통신 인터페이스(1414)(예컨대, 모뎀 또는 이더넷 카드), 디스플레이(1411)(예컨대, CRT 또는 LCD), 입력 디바이스(1412)(예컨대, 키보드 및 마우스)를 상호연결하는, 정보를 통신하기 위한 버스(1406) 또는 다른 통신 메커니즘을 포함한다.
[00163] 본 발명의 일 실시예에 따라, 컴퓨팅 시스템(1400)은 시스템 메모리(1408)에 포함된 하나 이상의 명령들의 하나 이상의 시퀀스들을 실행하는 프로세서(1407)에 의해 특정한 동작들을 수행한다. 이러한 명령들은 다른 컴퓨터 판독가능/사용가능 매체로부터, 이를테면, 정적 저장 디바이스(1409) 또는 디스크 드라이브(1410)로부터 시스템 메모리(1408)로 판독될 수 있다. 대안적 실시예들에서, 개시내용을 구현하기 위해 소프트웨어 명령들 대신에 또는 그와 조합하여, 하드 와이어드(hard-wired) 회로가 사용될 수 있다. 따라서, 개시내용의 실시예들은 하드웨어 회로 및/또는 소프트웨어의 임의의 특정한 조합으로 제한되지 않는다. 일 실시예에서, "로직"이란 용어는 개시내용의 일부 또는 전부를 구현하는 데 사용되는 소프트웨어 또는 하드웨어의 임의의 조합을 의미할 것이다.
[00164] 본원에서 사용되는 "컴퓨터 판독가능 매체" 또는 "컴퓨터 사용가능 매체"란 용어는, 실행을 위해 프로세서(1407)에 명령들을 제공하는 데 참여하는 임의의 매체를 지칭한다. 이러한 매체는, 비-휘발성 매체 및 휘발성 매체를 포함(그러나 이에 제한되지 않음)하는 많은 형태들을 취할 수 있다. 비-휘발성 매체는 예컨대, 광학 또는 자기 디스크들, 이를테면, 디스크 드라이브(1410)를 포함한다. 휘발성 매체는 동적 메모리, 이를테면, 시스템 메모리(1408)를 포함한다.
[00165] 컴퓨터 판독가능 매체의 공통 형태들은, 예컨대, 플로피 디스크, 플렉시블 디스크, 하드 디스크, 자기 테이프, 임의의 다른 자기 매체, CD-ROM, 임의의 다른 광학 매체, 펀치 카드들, 종이 테이프, 홀들의 패턴들을 갖는 임의의 다른 물리적 매체, RAM, PROM, EPROM, FLASH-EPROM, 임의의 다른 메모리 칩 또는 카트리지, 또는 컴퓨터가 판독할 수 있는 임의의 다른 매체를 포함한다.
[00166] 본 개시내용의 실시예에서, 본 개시내용을 실시하기 위한 명령들의 시퀀스들의 실행은 단일 컴퓨팅 시스템(1400)에 의해 수행된다. 본 개시내용의 다른 실시예들에 따라, 통신 링크(1415)(예컨대, LAN, PTSN 또는 무선 네트워크)에 의해 커플링된 둘 이상의 컴퓨팅 시스템들(1400)은 서로 조정하여 개시내용을 실시하는 데 요구된 명령들의 시퀀스를 수행할 수 있다.
[00167] 컴퓨팅 시스템(1400)은 통신 링크(1415) 및 통신 인터페이스(1414)를 통해 프로그램(즉, 애플리케이션 코드)을 포함하는 명령들, 메시지들 및 데이터를 송신 및 수신할 수 있다. 수신된 프로그램 코드는 그것이 수신될 때 프로세서(1407)에 의해 실행되고, 그리고/또는 나중의 실행을 위해 디스크 드라이브(1410) 또는 다른 비-휘발성 스토리지에 저장될 수 있다. 컴퓨팅 시스템(1400)은 외부 저장 디바이스(1431) 상의 데이터베이스(1432)에 대한 데이터 인터페이스(1433)를 통해 통신할 수 있다.
[00168] 전술된 명세서에서, 본 개시내용은 그 특정 실시예들을 참조하여 설명되었다. 그러나, 본 개시내용의 더 넓은 사상 및 범위를 벗어나지 않고 다양한 수정들 및 변경들이 본 개시내용에 이루어질 수 있다는 것이 자명할 것이다. 예컨대, 위에서 설명된 프로세스 흐름들은 프로세스 액션들의 특정 순서를 참조하여 설명된다. 그러나, 설명된 프로세스 액션들 중 많은 프로세스 액션들의 순서는 본 개시내용의 범위 또는 동작에 영향을 미치지 않고 변경될 수 있다. 그에 따라서, 명세서 및 도면들은 제약적인 의미라기 보다는 예시적인 것으로 간주되어야 한다.

Claims (25)

  1. 사용자 상호작용의 시작시 제1 프리즘 내에 포함된 상호작용 가능한 오브젝트의 선택을 나타내는 데이터를 수신하는 단계,
    상기 상호작용 가능한 오브젝트와 상기 사용자 상호작용의 종료를 나타내는 데이터를 수신하는 단계,
    상기 사용자 상호작용의 시작과 종료 사이에 상기 제1 프리즘으로부터 상기 상호작용 가능한 오브젝트를 제거하는 것에 대응하는 상기 사용자의 물리적 움직임을 나타내는 데이터를 수신하는 단계, 및
    상기 상호작용 가능한 오브젝트와 상기 사용자 상호작용의 종료시 상기 상호작용 가능한 오브젝트와 연관된 데이터를 포함하기 위한 제2 프리즘을 생성하는 단계를 포함하는,
    방법.
  2. 제1 항에 있어서,
    상기 상호작용 가능한 오브젝트가 상기 제1 프리즘의 경계들 외부에 위치될 때, 상기사용자 상호작용의 시작과 종료 사이에 상기 상호작용 가능한 오브젝트의 위치에서 상기 상호작용 가능한 오브젝트와 연관된 데이터의 시각적 미리보기를 디스플레이하는 단계를 더 포함하는,
    방법.
  3. 제1 항에 있어서,
    상기 상호작용 가능한 오브젝트의 선택을 나타내는 데이터 및 상기 상호작용 가능한 오브젝트와 상기 사용자 상호작용의 종료를 나타내는 데이터를 사용자 입력 디바이스가 제공하는 단계를 더 포함하는,
    방법.
  4. 제3 항에 있어서,
    상기 사용자 입력 디바이스는 햅틱 제어기인,
    방법.
  5. 제4 항에 있어서,
    상기 햅틱 제어기는 적어도 6 자유도를 갖는 토템 디바이스에 대응하는,
    방법.
  6. 제4 항에 있어서,
    상기 사용자의 물리적 움직임은 상기 햅틱 제어기와 연관된 프로세싱 시스템에서 이벤트 오브젝트들로 변환되고, 상기 이벤트 오브젝트들은 상기 햅틱 제어기의 움직임 또는 포지셔닝을 위한 데이터와 상관되는,
    방법.
  7. 제4 항에 있어서,
    상기 사용자 상호작용의 종료시 상기 상호작용 가능한 오브젝트의 위치는, 상기 상호작용 가능한 오브젝트의 선택 후에, 상기 햅틱 제어기에 대한 트리거가 해제되는 위치를 식별함으로써 결정되는,
    방법.
  8. 제3 항에 있어서,
    상기 사용자 입력 디바이스는 사용자 제스처를 검출하기 위한 카메라인,
    방법.
  9. 제8 항에 있어서,
    상기 상호작용 가능한 오브젝트의 선택을 나타내는 데이터는 선택 제스처에 대응하는,
    방법.
  10. 제8 항에 있어서,
    상기 상호작용 가능한 오브젝트와 상기 사용자 상호작용의 종료를 나타내는 데이터는 해제 제스처에 대응하는,
    방법.
  11. 제1 항에 있어서,
    상기 상호작용 가능한 오브젝트의 선택을 나타내는 데이터는 링크와 상호작용하는 상기 사용자의 신체의 적어도 일부에 대응하는,
    방법.
  12. 제11 항에 있어서,
    상기 링크와 연관된 URL에 대한 콘텐츠에 액세스함으로써 상기 링크의 미리보기가 생성되는,
    방법.
  13. 제12 항에 있어서,
    상기 사용자의 물리적 움직임을 나타내는 데이터를 수신하는 단계를 더 포함하고, 상기 사용자의 물리적 움직임은 상기 미리보기의 물리적 움직임에 대응하는,
    방법.
  14. 제1 항에 있어서,
    상기 상호작용 가능한 오브젝트는 상기 사용자 상호작용을 사용하여 개방될 뿐만 아니라 배치되는,
    방법.
  15. 제1 항에 있어서,
    상기 상호작용 가능한 오브젝트에 대한 배향은:
    상기 사용자 상호작용의 종료시 상기 상호작용 가능한 오브젝트의 위치의 표면 법선을 결정하고;
    상기 상호작용 가능한 오브젝트와 연관된 데이터의 배향을 결정하고; 그리고
    좌표 위치의 표면 법선과, 상기 상호작용 가능한 오브젝트와 연관된 데이터의 배향을 정렬함으로써 결정되는,
    방법.
  16. 제1 항에 있어서,
    상기 상호작용 가능한 오브젝트는 벽 장식품(wall hanging)을 포함하는,
    방법.
  17. 상기 상호작용 가능한 오브젝트를 식별하는 단계;
    상기 상호작용 가능한 오브젝트에 대응하는 사용자의 물리적 움직임을 식별하는 단계;
    상기 사용자의 물리적 움직임에 기반하여, 상기 상호작용 가능한 오브젝트와 연관된 데이터에 대한 좌표 위치를 결정하는 단계; 및
    상기 상호작용 가능한 오브젝트와 연관된 데이터를 상기 사용자의 물리적 움직임에 대응하는 상기 좌표 위치에 배치하는 단계를 포함하는,
    방법.
  18. 3차원 콘텐츠를 디스플레이하도록 구성된 혼합 현실 디스플레이 디바이스;
    사용자의 물리적 움직임을 검출하도록 구성된 사용자 입력 디바이스;
    상기 사용자 입력 디바이스로부터 데이터를 수신하고 프로세싱하는 프로세서;
    상기 프로세서에 의해 실행 가능한 프로그래밍 가능한 코드를 보관하기 위한 메모리를 포함하고,
    상기 프로그램 가능한 코드는 상호작용 가능한 오브젝트를 식별하기 위한 명령, 상기 상호작용 가능한 오브젝트에 대응하는 사용자의 물리적 움직임을 식별하기 위한 명령, 상기 사용자의 물리적 움직임에 기반하여 상기 상호작용 가능한 오브젝트와 연관된 데이터에 대한 좌표 위치를 결정하기 위한 명령, 및 상기 상호작용 가능한 오브젝트와 연관된 데이터를 상기 사용자의 물리적 움직임에 대응하는 상기 좌표 위치에 배치하기 위한 명령을 포함하는,
    시스템.
  19. 컴퓨터 판독 가능 매체에 포함된 컴퓨터 프로그램 제품으로서,
    상기 컴퓨터 판독 가능 매체는 일련의 명령들을 저장하고, 상기 일련의 명령들은, 프로세서에 의해 실행될 때, 상기 프로세서로 하여금 방법을 실행하게 하고, 상기 방법은:
    상기 상호작용 가능한 오브젝트를 식별하는 단계;
    상기 상호작용 가능한 오브젝트에 대응하는 사용자의 물리적 움직임을 식별하는 단계;
    상기 사용자의 물리적 움직임에 기반하여, 상기 상호작용 가능한 오브젝트와 연관된 데이터에 대한 좌표 위치를 결정하는 단계; 및
    상기 상호작용 가능한 오브젝트와 연관된 데이터를 상기 사용자의 물리적 움직임에 대응하는 상기 좌표 위치에 배치하는 단계를 포함하는,
    컴퓨터 프로그램 제품.
  20. 상기 사용자 상호작용의 시작시 상호작용 가능한 오브젝트의 선택을 나타내는 데이터를 수신하는 단계,
    상기 상호작용 가능한 오브젝트와 상기 사용자 상호작용의 종료를 나타내는 데이터를 수신하는 단계,
    상기 사용자 상호작용의 종료시 상기 상호작용 가능한 오브젝트의 위치를 결정하는 단계, 및
    상기 사용자 상호작용의 종료시 상기 상호작용 가능한 오브젝트와 연관된 데이터를 상기 상호작용 가능한 오브젝트의 위치에 배치하는 단계를 포함하는,
    방법.
  21. 상기 사용자 상호작용의 시작시 상호작용 가능한 오브젝트의 선택을 나타내는 데이터를 수신하는 단계,
    상기 상호작용 가능한 오브젝트와 상기 사용자 상호작용의 종료를 나타내는 데이터를 수신하는 단계,
    상기 사용자 상호작용의 종료시 상기 상호작용 가능한 오브젝트의 위치를 결정하는 단계, 및
    상기 사용자 상호작용의 종료시 상기 상호작용 가능한 오브젝트의 위치가 상기 상호작용 가능한 오브젝트의 초기 프리즘 외부에 있을 때, 상기 사용자 상호작용의 종료시 상기 상호작용 가능한 오브젝트와 연관된 데이터에 대한 새로운 프리즘을 생성하는 단계를 포함하는,
    방법.
  22. 사용자 상호작용의 시작시 제1 프리즘 내에 포함된 상호작용 가능한 오브젝트의 선택을 나타내는 데이터를 수신하는 단계, 및
    상기 사용자 상호작용의 시작과 종료 사이에 상기 사용자 상호작용에 대응하는 상기 사용자의 물리적 움직임을 나타내는 데이터가 상기 상호작용 가능한 오브젝트가 상기 사용자 상호작용의 종료시 상기 제1 프리즘 외부에 있다는 것을 나타낼 때, 상기 상호작용 가능한 오브젝트와 연관된 데이터를 포함하기 위한 제2 프리즘을 상기 사용자 상호작용의 종료시 상기 상호작용 가능한 오브젝트의 위치에서 생성하는 단계를 포함하는,
    방법.
  23. 3차원 콘텐츠를 디스플레이하도록 구성된 혼합 현실 디스플레이 디바이스;
    사용자의 물리적 움직임을 검출하도록 구성된 사용자 입력 디바이스;
    상기 사용자 입력 디바이스로부터 데이터를 수신하고 프로세싱하는 프로세서;
    상기 프로세서에 의해 실행 가능한 프로그래밍 가능한 코드를 보관(hold)하기 위한 메모리를 포함하고,
    상기 프로그램 가능한 코드는 사용자 상호작용의 시작시 제1 프리즘 내에 포함된 상호작용 가능한 오브젝트의 선택을 나타내는 데이터를 수신하기 위한 명령, 상기 상호작용 가능한 오브젝트와 상기 사용자 상호작용의 종료를 나타내는 데이터를 수신하기 위한 명령, 상기 사용자 상호작용의 시작과 종료 사이에 상기 제1 프리즘으로부터 상기 상호작용 가능한 오브젝트를 제거하는 것에 대응하는 상기 사용자의 물리적 움직임을 나타내는 데이터를 수신하기 위한 명령, 및 상기 상호작용 가능한 오브젝트와 상기 사용자 상호작용의 종료시 상기 상호작용 가능한 오브젝트와 연관된 데이터를 포함하기 위한 제2 프리즘을 생성하기 위한 명령을 포함하는,
    시스템.
  24. 3차원 콘텐츠를 디스플레이하도록 구성된 혼합 현실 디스플레이 디바이스;
    사용자의 물리적 움직임을 검출하도록 구성된 사용자 입력 디바이스;
    상기 사용자 입력 디바이스로부터 데이터를 수신하고 프로세싱하는 프로세서;
    상기 프로세서에 의해 실행 가능한 프로그래밍 가능한 코드를 보관하기 위한 메모리를 포함하고,
    상기 프로그램 가능 코드는 사용자 상호작용의 시작시 상호작용 가능한 오브젝트의 선택을 나타내는 데이터를 수신하기 위한 명령, 상기 상호작용 가능한 오브젝트와 상기 사용자 상호작용의 종료를 나타내는 데이터를 수신하기 위한 명령, 상기 사용자 상호작용의 종료시 상기 상호작용 가능한 오브젝트의 위치를 결정하기 위한 명령, 및 상기 사용자 상호작용의 종료시 상기 상호작용 가능한 오브젝트의 위치가 상기 상호작용 가능한 오브젝트의 초기 프리즘 외부에 있을 때, 상기 사용자 상호작용의 종료시 상기 상호작용 가능한 오브젝트와 연관된 데이터에 대한 새로운 프리즘을 생성하기 위한 명령을 포함하는,
    시스템.
  25. 3차원 콘텐츠를 디스플레이하도록 구성된 혼합 현실 디스플레이 디바이스;
    사용자의 물리적 움직임을 검출하도록 구성된 사용자 입력 디바이스;
    상기 사용자 입력 디바이스로부터 데이터를 수신하고 프로세싱하는 프로세서;
    상기 프로세서에 의해 실행 가능한 프로그래밍 가능한 코드를 보관하기 위한 메모리를 포함하고,
    상기 프로그램 가능 코드는 사용자 상호작용의 시작시 제1 프리즘 내에 포함된 상호작용 가능한 오브젝트의 선택을 나타내는 데이터를 수신하기 위한 명령, 및 상기 사용자 상호작용의 시작과 종료 사이에 상기 사용자 상호작용에 대응하는 상기 사용자의 물리적 움직임을 나타내는 데이터가 상기 상호작용 가능한 오브젝트가 상기 사용자 상호작용의 종료시 상기 제1 프리즘 외부에 있다는 것을 나타낼 때, 상기 상호작용 가능한 오브젝트와 연관된 데이터를 포함하기 위한 제2 프리즘을 상기 사용자 상호작용의 종료시 상기 상호작용 가능한 오브젝트의 위치에서 생성하기 위한 명령을 포함하는,
    시스템.
KR1020207026920A 2018-02-22 2019-02-21 물리적 조작을 사용한 오브젝트 생성 KR20200121357A (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201862634007P 2018-02-22 2018-02-22
US62/634,007 2018-02-22
US201862665251P 2018-05-01 2018-05-01
US62/665,251 2018-05-01
PCT/US2019/018920 WO2019165044A1 (en) 2018-02-22 2019-02-21 Object creation with physical manipulation

Publications (1)

Publication Number Publication Date
KR20200121357A true KR20200121357A (ko) 2020-10-23

Family

ID=67688428

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020207026920A KR20200121357A (ko) 2018-02-22 2019-02-21 물리적 조작을 사용한 오브젝트 생성

Country Status (9)

Country Link
US (3) US11087563B2 (ko)
EP (1) EP3756079A4 (ko)
JP (2) JP7139436B2 (ko)
KR (1) KR20200121357A (ko)
CN (1) CN111801641A (ko)
AU (1) AU2019225931A1 (ko)
CA (1) CA3091026A1 (ko)
IL (2) IL301281A (ko)
WO (1) WO2019165044A1 (ko)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20230108352A (ko) 2017-05-01 2023-07-18 매직 립, 인코포레이티드 콘텐츠를 공간 3d 환경에 매칭
KR102556889B1 (ko) 2017-12-22 2023-07-17 매직 립, 인코포레이티드 혼합 현실 시스템에서 가상 콘텐츠를 관리하고 디스플레이하기 위한 방법들 및 시스템
AU2019225989A1 (en) 2018-02-22 2020-08-13 Magic Leap, Inc. Browser for mixed reality systems
KR20200121357A (ko) * 2018-02-22 2020-10-23 매직 립, 인코포레이티드 물리적 조작을 사용한 오브젝트 생성
EP3640767A1 (de) * 2018-10-17 2020-04-22 Siemens Schweiz AG Verfahren zum bestimmen mindestens eines bereichs in mindestens einem eingabemodell für mindestens ein zu platzierendes element
US11263824B2 (en) * 2018-11-14 2022-03-01 Unity IPR ApS Method and system to generate authoring conditions for digital content in a mixed reality environment
WO2020226832A1 (en) * 2019-05-06 2020-11-12 Apple Inc. Device, method, and computer-readable medium for presenting computer-generated reality files
US11315326B2 (en) * 2019-10-15 2022-04-26 At&T Intellectual Property I, L.P. Extended reality anchor caching based on viewport prediction
US11640228B2 (en) * 2021-01-06 2023-05-02 Adobe Inc. Accessing virtually rendered digital content
CA3226429A1 (en) * 2021-07-22 2023-01-26 The University Of British Columbia System and apparatus for remote interaction with an object
US20230040610A1 (en) * 2021-08-06 2023-02-09 Apple Inc. Object placement for electronic devices
CN117093070A (zh) * 2023-06-05 2023-11-21 北京虹宇科技有限公司 扩展现实空间中的应用形态控制方法、装置及设备

Family Cites Families (105)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5923318A (en) * 1996-04-12 1999-07-13 Zhai; Shumin Finger manipulatable 6 degree-of-freedom input device
US6720949B1 (en) * 1997-08-22 2004-04-13 Timothy R. Pryor Man machine interfaces and applications
US6629065B1 (en) 1998-09-30 2003-09-30 Wisconsin Alumni Research Foundation Methods and apparata for rapid computer-aided design of objects in virtual reality and other environments
US9208270B2 (en) 2000-08-02 2015-12-08 Comsol Ab System and method for establishing bidirectional links between multiphysics modeling and design systems
US7043695B2 (en) 2000-09-19 2006-05-09 Technion Research & Development Foundation Ltd. Object positioning and display in virtual environments
EP1556805B1 (en) 2002-10-22 2011-08-24 Artoolworks Tracking a surface in a 3-dimensional scene using natural visual features of the surface
JP4212564B2 (ja) 2005-02-28 2009-01-21 ザイオソフト株式会社 画像処理方法および画像処理プログラム
US20070074125A1 (en) 2005-09-26 2007-03-29 Microsoft Corporation Preview information for web-browsing
US7595810B2 (en) 2006-03-22 2009-09-29 Apple Inc. Methods of manipulating a screen space of a display device
US20090028142A1 (en) 2007-07-25 2009-01-29 Schmidt Brian K Streaming data content in a network
US8245241B2 (en) 2007-10-02 2012-08-14 International Business Machines Corporation Arrangements for interactivity between a virtual universe and the world wide web
US10872322B2 (en) * 2008-03-21 2020-12-22 Dressbot, Inc. System and method for collaborative shopping, business and entertainment
WO2009146130A2 (en) 2008-04-05 2009-12-03 Social Communications Company Shared virtual area communication environment based apparatus and methods
US9952673B2 (en) 2009-04-02 2018-04-24 Oblong Industries, Inc. Operating environment comprising multiple client devices, multiple displays, multiple users, and gestural control
US20160077677A1 (en) 2008-05-20 2016-03-17 Israel Valdes Apparatus and method for user configurable content
US8924862B1 (en) 2008-09-05 2014-12-30 Cisco Technology, Inc. Optimizing desktop sharing for wireless clients during networked collaboration
KR101082487B1 (ko) 2010-01-29 2011-11-11 키위플 주식회사 객체 인식시스템 및 이를 이용하는 객체 인식 방법
US20130278631A1 (en) * 2010-02-28 2013-10-24 Osterhout Group, Inc. 3d positioning of augmented reality information
US20120212484A1 (en) 2010-02-28 2012-08-23 Osterhout Group, Inc. System and method for display content placement using distance and location information
JP2013521576A (ja) * 2010-02-28 2013-06-10 オスターハウト グループ インコーポレイテッド 対話式ヘッド取付け型アイピース上での地域広告コンテンツ
US9069577B2 (en) 2010-11-23 2015-06-30 Apple Inc. Grouping and browsing open windows
EP2691935A1 (en) 2011-03-29 2014-02-05 Qualcomm Incorporated System for the rendering of shared digital interfaces relative to each user's point of view
US9354899B2 (en) 2011-04-18 2016-05-31 Google Inc. Simultaneous display of multiple applications using panels
CN103702726B (zh) 2011-05-23 2016-01-13 乐高公司 玩具搭建系统、产生构建指令的方法和数据处理系统
US8912979B1 (en) 2011-07-14 2014-12-16 Google Inc. Virtual window in head-mounted display
KR20140066258A (ko) * 2011-09-26 2014-05-30 마이크로소프트 코포레이션 투시 근안 디스플레이에 대한 센서 입력에 기초한 비디오 디스플레이 수정
US9734633B2 (en) 2012-01-27 2017-08-15 Microsoft Technology Licensing, Llc Virtual environment generating system
US9575652B2 (en) * 2012-03-31 2017-02-21 Microsoft Technology Licensing, Llc Instantiable gesture objects
US9671566B2 (en) 2012-06-11 2017-06-06 Magic Leap, Inc. Planar waveguide apparatus with diffraction element(s) and system employing same
US9069455B2 (en) * 2012-06-22 2015-06-30 Microsoft Technology Licensing, Llc 3D user interface for application entities
US20130342572A1 (en) 2012-06-26 2013-12-26 Adam G. Poulos Control of displayed content in virtual environments
US9292085B2 (en) 2012-06-29 2016-03-22 Microsoft Technology Licensing, Llc Configuring an interaction zone within an augmented reality environment
WO2014031899A1 (en) 2012-08-22 2014-02-27 Goldrun Corporation Augmented reality virtual content platform apparatuses, methods and systems
US9461876B2 (en) 2012-08-29 2016-10-04 Loci System and method for fuzzy concept mapping, voting ontology crowd sourcing, and technology prediction
US9070194B2 (en) 2012-10-25 2015-06-30 Microsoft Technology Licensing, Llc Planar surface detection
US9407824B2 (en) 2012-11-01 2016-08-02 Google Inc. Multi-directional content capture on mobile devices
KR101984915B1 (ko) 2012-12-03 2019-09-03 삼성전자주식회사 증강 현실 컨텐츠 운용 방법 및 이를 지원하는 단말기와 시스템
US9317972B2 (en) 2012-12-18 2016-04-19 Qualcomm Incorporated User interface for augmented reality enabled devices
AU2014204252B2 (en) 2013-01-03 2017-12-14 Meta View, Inc. Extramissive spatial imaging digital eye glass for virtual or augmediated vision
WO2014110502A1 (en) 2013-01-11 2014-07-17 The Regents Of The University Of Michigan Monitoring proximity of objects at construction jobsites via three-dimensional virtuality in real-time
US20140225922A1 (en) 2013-02-11 2014-08-14 Rocco A. Sbardella System and method for an augmented reality software application
JP2014157466A (ja) 2013-02-15 2014-08-28 Sony Corp 情報処理装置及び記憶媒体
GB201303707D0 (en) * 2013-03-01 2013-04-17 Tosas Bautista Martin System and method of interaction for mobile devices
EP2967322A4 (en) 2013-03-11 2017-02-08 Magic Leap, Inc. System and method for augmented and virtual reality
US20140267228A1 (en) 2013-03-14 2014-09-18 Microsoft Corporation Mapping augmented reality experience to various environments
KR20230113418A (ko) 2013-03-15 2023-07-28 매직 립, 인코포레이티드 디스플레이 시스템 및 방법
US20140282274A1 (en) * 2013-03-15 2014-09-18 Qualcomm Incorporated Detection of a gesture performed with at least two control objects
US20150277699A1 (en) * 2013-04-02 2015-10-01 Cherif Atia Algreatly Interaction method for optical head-mounted display
KR20140133361A (ko) * 2013-05-10 2014-11-19 삼성전자주식회사 디스플레이 장치 및 그 ui 화면 제공 방법
US10262462B2 (en) 2014-04-18 2019-04-16 Magic Leap, Inc. Systems and methods for augmented and virtual reality
US9129430B2 (en) 2013-06-25 2015-09-08 Microsoft Technology Licensing, Llc Indicating out-of-view augmented reality images
US10861224B2 (en) 2013-07-23 2020-12-08 Hover Inc. 3D building analyzer
SG11201601713WA (en) * 2013-09-06 2016-04-28 Mars Flag Corp Information processing apparatus, search server, web server, and computer program
US20180225885A1 (en) 2013-10-01 2018-08-09 Aaron Scott Dishno Zone-based three-dimensional (3d) browsing
KR101512084B1 (ko) 2013-11-15 2015-04-17 한국과학기술원 가상현실 기반의 3차원 웹 검색 인터페이스를 제공하는 웹 검색 시스템 및 그 제공 방법
US9354778B2 (en) 2013-12-06 2016-05-31 Digimarc Corporation Smartphone-based methods and systems
US9411422B1 (en) 2013-12-13 2016-08-09 Audible, Inc. User interaction with content markers
US20150185825A1 (en) 2013-12-30 2015-07-02 Daqri, Llc Assigning a virtual user interface to a physical object
US20150206343A1 (en) 2014-01-17 2015-07-23 Nokia Corporation Method and apparatus for evaluating environmental structures for in-situ content augmentation
US9201578B2 (en) 2014-01-23 2015-12-01 Microsoft Technology Licensing, Llc Gaze swipe selection
KR102184402B1 (ko) * 2014-03-06 2020-11-30 엘지전자 주식회사 글래스 타입의 이동 단말기
US10203762B2 (en) 2014-03-11 2019-02-12 Magic Leap, Inc. Methods and systems for creating virtual and augmented reality
US20150302651A1 (en) 2014-04-18 2015-10-22 Sam Shpigelman System and method for augmented or virtual reality entertainment experience
US9361732B2 (en) 2014-05-01 2016-06-07 Microsoft Technology Licensing, Llc Transitions between body-locked and world-locked augmented reality
US20150331240A1 (en) 2014-05-15 2015-11-19 Adam G. Poulos Assisted Viewing Of Web-Based Resources
US10156967B2 (en) 2014-05-31 2018-12-18 Apple Inc. Device, method, and graphical user interface for tabbed and private browsing
WO2015192117A1 (en) 2014-06-14 2015-12-17 Magic Leap, Inc. Methods and systems for creating virtual and augmented reality
US20160027214A1 (en) 2014-07-25 2016-01-28 Robert Memmott Mouse sharing between a desktop and a virtual world
US9858720B2 (en) 2014-07-25 2018-01-02 Microsoft Technology Licensing, Llc Three-dimensional mixed-reality viewport
US9734634B1 (en) * 2014-09-26 2017-08-15 A9.Com, Inc. Augmented reality product preview
US10726593B2 (en) 2015-09-22 2020-07-28 Fyusion, Inc. Artificially rendering images using viewpoint interpolation and extrapolation
JP5767386B1 (ja) 2014-12-15 2015-08-19 株式会社コロプラ ヘッドマウントディスプレイシステム、ヘッドマウントディスプレイへ表示するための方法、及びプログラム
US10335677B2 (en) 2014-12-23 2019-07-02 Matthew Daniel Fuchs Augmented reality system with agent device for viewing persistent content and method of operation thereof
US20160300392A1 (en) 2015-04-10 2016-10-13 VR Global, Inc. Systems, media, and methods for providing improved virtual reality tours and associated analytics
US9465891B1 (en) 2015-04-29 2016-10-11 Data Cocoon LLC Tessellated data visualization system
WO2016203792A1 (ja) 2015-06-15 2016-12-22 ソニー株式会社 情報処理装置、情報処理方法及びプログラム
EP3113106A1 (en) 2015-07-02 2017-01-04 Nokia Technologies Oy Determination of environmental augmentation allocation data
EP3308304A4 (en) 2015-08-18 2018-05-16 Samsung Electronics Co., Ltd. Method and system for bookmarking a webpage
US10057078B2 (en) 2015-08-21 2018-08-21 Samsung Electronics Company, Ltd. User-configurable interactive region monitoring
US10318225B2 (en) * 2015-09-01 2019-06-11 Microsoft Technology Licensing, Llc Holographic augmented authoring
CN113190111A (zh) 2015-10-08 2021-07-30 Pcms控股公司 一种方法和设备
EP3862852A1 (en) 2015-10-20 2021-08-11 Magic Leap, Inc. Selecting virtual objects in a three-dimensional space
TWI567691B (zh) * 2016-03-07 2017-01-21 粉迷科技股份有限公司 立體空間的場景編輯方法與系統
US20170256096A1 (en) 2016-03-07 2017-09-07 Google Inc. Intelligent object sizing and placement in a augmented / virtual reality environment
CN111329553B (zh) * 2016-03-12 2021-05-04 P·K·朗 用于手术的装置与方法
US10373381B2 (en) 2016-03-30 2019-08-06 Microsoft Technology Licensing, Llc Virtual object manipulation within physical environment
US10268266B2 (en) 2016-06-29 2019-04-23 Microsoft Technology Licensing, Llc Selection of objects in three-dimensional space
EP3479160A4 (en) 2016-06-30 2020-03-25 Magic Leap, Inc. ESTIMATE OF THE POSE IN A 3D SPACE
US10489978B2 (en) * 2016-07-26 2019-11-26 Rouslan Lyubomirov DIMITROV System and method for displaying computer-based content in a virtual or augmented environment
EP3497676A4 (en) 2016-08-11 2020-03-25 Magic Leap, Inc. AUTOMATIC POSITIONING OF A VIRTUAL OBJECT IN A THREE-DIMENSIONAL SPACE
US20180082480A1 (en) * 2016-09-16 2018-03-22 John R. White Augmented reality surgical technique guidance
KR102317776B1 (ko) 2016-10-05 2021-10-25 매직 립, 인코포레이티드 표면 모델링 시스템들 및 방법들
US11290572B2 (en) * 2016-11-07 2022-03-29 Constructive Labs System and method for facilitating sharing of virtual three-dimensional space
US10599823B2 (en) 2016-11-18 2020-03-24 Invensense, Inc. Systems and methods for coordinating applications with a user interface
US10271043B2 (en) 2016-11-18 2019-04-23 Zspace, Inc. 3D user interface—360-degree visualization of 2D webpage content
US20180150204A1 (en) 2016-11-30 2018-05-31 Google Inc. Switching of active objects in an augmented and/or virtual reality environment
WO2018176014A1 (en) * 2017-03-24 2018-09-27 Inmentis, Llc Social media system with navigable, artificial-intelligence-based graphical user interface with a carousel view
KR20230108352A (ko) 2017-05-01 2023-07-18 매직 립, 인코포레이티드 콘텐츠를 공간 3d 환경에 매칭
US10304251B2 (en) 2017-06-15 2019-05-28 Microsoft Technology Licensing, Llc Virtually representing spaces and objects while maintaining physical properties
US10719870B2 (en) * 2017-06-27 2020-07-21 Microsoft Technology Licensing, Llc Mixed reality world integration of holographic buttons in a mixed reality device
US20190005724A1 (en) 2017-06-30 2019-01-03 Microsoft Technology Licensing, Llc Presenting augmented reality display data in physical presentation environments
US10444975B2 (en) * 2017-07-18 2019-10-15 Google Llc Graphical icon manipulation
US10803663B2 (en) 2017-08-02 2020-10-13 Google Llc Depth sensor aided estimation of virtual reality environment boundaries
KR102556889B1 (ko) * 2017-12-22 2023-07-17 매직 립, 인코포레이티드 혼합 현실 시스템에서 가상 콘텐츠를 관리하고 디스플레이하기 위한 방법들 및 시스템
KR20200121357A (ko) * 2018-02-22 2020-10-23 매직 립, 인코포레이티드 물리적 조작을 사용한 오브젝트 생성

Also Published As

Publication number Publication date
EP3756079A4 (en) 2021-04-28
AU2019225931A1 (en) 2020-08-20
EP3756079A1 (en) 2020-12-30
JP7139436B2 (ja) 2022-09-20
US20230267697A1 (en) 2023-08-24
US20210097775A1 (en) 2021-04-01
US11087563B2 (en) 2021-08-10
CN111801641A (zh) 2020-10-20
US11636660B2 (en) 2023-04-25
JP2021514089A (ja) 2021-06-03
IL276629B1 (en) 2023-04-01
JP2022168082A (ja) 2022-11-04
WO2019165044A1 (en) 2019-08-29
IL276629A (en) 2020-09-30
US20210335053A1 (en) 2021-10-28
IL301281A (en) 2023-05-01
IL276629B2 (en) 2023-08-01
CA3091026A1 (en) 2019-08-29

Similar Documents

Publication Publication Date Title
US11636660B2 (en) Object creation with physical manipulation
KR102555443B1 (ko) 콘텐츠를 공간 3d 환경에 매칭
EP3756169B1 (en) Browser for mixed reality systems
CN115601671B (zh) 用于向用户显示虚拟内容的系统和方法
JP7311643B2 (ja) モード式ウィンドウを介したセキュアな認可
KR20140064326A (ko) 태그 정보 저장 방법 및 장치와 태그 정보를 이용한 이미지 검색 방법 및 장치
US20150138077A1 (en) Display system and display controll device
US20240211113A1 (en) Browser for mixed reality systems
Lu et al. Classification, application, challenge, and future of midair gestures in augmented reality
KR20170022860A (ko) 실제 사물의 사용성을 증강하는 가상 콘텐츠 제공 장치 및 방법

Legal Events

Date Code Title Description
A201 Request for examination