KR102555443B1 - 콘텐츠를 공간 3d 환경에 매칭 - Google Patents

콘텐츠를 공간 3d 환경에 매칭 Download PDF

Info

Publication number
KR102555443B1
KR102555443B1 KR1020227027516A KR20227027516A KR102555443B1 KR 102555443 B1 KR102555443 B1 KR 102555443B1 KR 1020227027516 A KR1020227027516 A KR 1020227027516A KR 20227027516 A KR20227027516 A KR 20227027516A KR 102555443 B1 KR102555443 B1 KR 102555443B1
Authority
KR
South Korea
Prior art keywords
content
user
elements
content element
environment
Prior art date
Application number
KR1020227027516A
Other languages
English (en)
Other versions
KR20220115824A (ko
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 매직 립, 인코포레이티드
Priority to KR1020237023413A priority Critical patent/KR20230108352A/ko
Publication of KR20220115824A publication Critical patent/KR20220115824A/ko
Application granted granted Critical
Publication of KR102555443B1 publication Critical patent/KR102555443B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T19/00Manipulating 3D models or images for computer graphics
    • G06T19/20Editing of 3D images, e.g. changing shapes or colours, aligning objects or positioning parts
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T19/00Manipulating 3D models or images for computer graphics
    • G06T19/006Mixed reality
    • GPHYSICS
    • G02OPTICS
    • G02BOPTICAL ELEMENTS, SYSTEMS OR APPARATUS
    • G02B27/00Optical systems or apparatus not provided for by any of the groups G02B1/00 - G02B26/00, G02B30/00
    • G02B27/01Head-up displays
    • G02B27/017Head mounted
    • G02B27/0172Head mounted characterised by optical features
    • GPHYSICS
    • G02OPTICS
    • G02BOPTICAL ELEMENTS, SYSTEMS OR APPARATUS
    • G02B30/00Optical systems or apparatus for producing three-dimensional [3D] effects, e.g. stereoscopic images
    • 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/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0481Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
    • G06F3/04815Interaction with a metaphor-based environment or interaction object displayed as three-dimensional, e.g. changing the user viewpoint with respect to the environment or object
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/25Management operations performed by the server for facilitating the content distribution or administrating data related to end-users or client devices, e.g. end-user or client device authentication, learning user preferences for recommending movies
    • H04N21/254Management at additional data server, e.g. shopping server, rights management server
    • H04N21/2542Management at additional data server, e.g. shopping server, rights management server for selling goods, e.g. TV shopping
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/431Generation of visual interfaces for content selection or interaction; Content or additional data rendering
    • H04N21/4312Generation of visual interfaces for content selection or interaction; Content or additional data rendering involving specific graphical features, e.g. screen layout, special fonts or colors, blinking icons, highlights or animations
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/81Monomedia components thereof
    • H04N21/816Monomedia components thereof involving special video data, e.g 3D video
    • GPHYSICS
    • G02OPTICS
    • G02BOPTICAL ELEMENTS, SYSTEMS OR APPARATUS
    • G02B27/00Optical systems or apparatus not provided for by any of the groups G02B1/00 - G02B26/00, G02B30/00
    • G02B27/01Head-up displays
    • G02B27/0101Head-up displays characterised by optical features
    • G02B2027/0138Head-up displays characterised by optical features comprising image capture systems, e.g. camera
    • GPHYSICS
    • G02OPTICS
    • G02BOPTICAL ELEMENTS, SYSTEMS OR APPARATUS
    • G02B27/00Optical systems or apparatus not provided for by any of the groups G02B1/00 - G02B26/00, G02B30/00
    • G02B27/01Head-up displays
    • G02B27/0101Head-up displays characterised by optical features
    • G02B2027/014Head-up displays characterised by optical features comprising information/image processing systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/10Image acquisition modality
    • G06T2207/10028Range image; Depth image; 3D point clouds
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2210/00Indexing scheme for image generation or computer graphics
    • G06T2210/56Particle system, point based geometry or rendering
    • 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/004Annotating, labelling

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Graphics (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Human Computer Interaction (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Architecture (AREA)
  • Databases & Information Systems (AREA)
  • Optics & Photonics (AREA)
  • User Interface Of Digital Computer (AREA)
  • Processing Or Creating Images (AREA)
  • Apparatus For Radiation Diagnosis (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

공간적으로 구성된 3D 환경에서 콘텐츠 엘리먼트들을 표면들에 매칭하기 위한 시스템들 및 방법들. 그 방법은 콘텐츠를 수신하는 단계, 콘텐츠의 하나 이상의 엘리먼트들을 식별하는 단계, 하나 이상의 표면들을 결정하는 단계, 하나 이상의 엘리먼트들을 하나 이상의 표면들에 매칭하는 단계, 및 하나 이상의 표면들에 하나 이상의 엘리먼트들을 가상 콘텐츠로서 디스플레이하는 단계를 포함한다.

Description

콘텐츠를 공간 3D 환경에 매칭 {MATCHING CONTENT TO A SPATIAL 3D ENVIRONMENT}
[0001] 본 개시내용은 콘텐츠를 공간 3D 환경에 디스플레이하기 위한 시스템들 및 방법들에 관한 것이다.
[0002] 콘텐츠를 보기 위한 전형적인 방식은 디스플레이 디바이스의 디스플레이 스크린(예컨대, 컴퓨터의 모니터, 스마트폰, 태블릿 등)에 콘텐츠를 디스플레이할 애플리케이션을 여는 것이다. 사용자는 콘텐츠를 보기 위해 애플리케이션을 내비게이팅할 것이다. 일반적으로, 사용자가 디스플레이의 디스플레이 스크린을 보고 있을 때, 콘텐츠가 애플리케이션 내에서 그리고 디스플레이 디바이스의 디스플레이 스크린에서 디스플레이되는 방법에 관해서는 고정된 포맷이 있다.
[0003] VR(virtual reality), AR(augmented reality), 및/또는 MR(mixed reality) 시스템들(이후로 총괄적으로 "혼합 현실" 시스템들로서 지칭됨)을 이용시, 애플리케이션은 콘텐츠를 공간 3D(three-dimensional) 환경에서 디스플레이할 것이다. 디스플레이 스크린에 콘텐츠를 디스플레이하기 위한 종래의 접근법들은 공간 3D 환경에서 사용될 때 매우 양호하게 작동하지는 않는다. 하나의 이유는, 종래의 접근법들을 이용시, 디스플레이 디바이스의 디스플레이 영역은, 콘텐츠가 디스플레이되는 디스플레이 스크린의 스크린 영역으로 제한되는 2D 매체이기 때문이다. 결과적으로, 종래의 접근법들은 디스플레이 스크린의 그 스크린 영역 내에서 콘텐츠를 구성하고 디스플레이하는 방법만을 알도록 구성된다. 대조적으로, 공간 3D 환경은 디스플레이 스크린의 스크린 영역의 엄격한 범위(confine)들로 제한되지 않는다. 따라서, 종래의 접근법들은 콘텐츠를 디스플레이하기 위해 공간 3D 환경의 장점을 취하기 위한 기능성 또는 능력을 반드시 가질 필요가 없기 때문에, 종래의 접근법들은 공간 3D 환경에서 사용될 때 차선적으로(sub-optimally) 수행할 수 있다.
[0004] 따라서, 공간 3D 환경에서 콘텐츠를 디스플레이하기 위한 개선된 접근법이 필요하다.
[0005] 배경기술 부분에서 논의된 청구대상은 그 청구대상이 단지 배경기술 부분에서 언급된 것에 대한 결과로서 종래 기술인 것으로 가정되지 않아야 한다. 유사하게, 배경기술 부분에서 언급되거나 배경기술 부분의 청구대상과 연관된 문제점 및 그 문제점의 원인들에 대한 이해는 종래 기술에서 이전에 인식되었던 것으로 가정되지 않아야 한다. 배경기술 부분의 청구대상은 단지 상이한 접근법들을 표현할 수 있으며, 그 청구대상은 본질적으로 그리고 그 자체로 또한 개시내용들일 수 있다.
[0006] 본 개시내용의 실시예들은 공간적으로 구성된 3D 환경에서 정보를 디스플레이하기 위한 개선된 시스템 및 방법들을 제공한다. 방법은 콘텐츠를 수신하는 단계, 콘텐츠의 엘리먼트들을 식별하는 단계, 주변 표면들을 결정하는 단계, 식별된 엘리먼트들을 주변 표면들에 매칭하는 단계, 및 엘리먼트들을 가상 콘텐츠로서 주변 표면들에 디스플레이하는 단계를 포함한다. 본 개시내용의 추가적인 실시예들은 콘텐츠를 가상 현실 또는 증강 현실 시스템의 사용자에게 푸싱(push)하기 위한 개선된 시스템 및 방법들을 제공한다.
[0007] 일 실시예에서, 방법은 콘텐츠를 수신하는 단계를 포함한다. 방법은 또한, 콘텐츠의 하나 이상의 엘리먼트들을 식별하는 단계를 포함한다. 방법은 하나 이상의 표면들을 결정하는 단계를 더 포함한다. 게다가, 방법은 하나 이상의 엘리먼트들을 하나 이상의 표면들에 매칭하는 단계를 포함한다. 추가적으로, 방법은 하나 이상의 표면들에 하나 이상의 엘리먼트들을 가상 콘텐츠로서 디스플레이하는 단계를 포함한다.
[0008] 하나 이상의 실시예들에서, 콘텐츠는 풀링된(pulled) 콘텐츠 또는 푸싱된(pushed) 콘텐츠 중 적어도 하나를 포함한다. 하나 이상의 엘리먼트들을 식별하는 단계는 하나 이상의 엘리먼트들 각각에 대한 하나 이상의 속성들을 결정하는 단계를 포함할 수 있다. 하나 이상의 속성들은 우선순위 속성, 배향 속성, 종횡비 속성, 디멘션 속성, 영역 속성, 상대적인 뷰잉 포지션 속성, 컬러 속성, 콘트라스트 속성, 포지션 타입 속성, 마진 속성, 콘텐츠 타입 속성, 초점 속성, 가독성 인덱스 속성, 또는 배치할 표면 타입 속성 중 적어도 하나를 포함한다. 하나 이상의 엘리먼트들 각각에 대한 하나 이상의 속성들을 결정하는 단계는 콘텐츠의 명시적인 표시들에 기반한다.
[0009] 하나 이상의 실시예들에서, 하나 이상의 엘리먼트들 각각에 대한 하나 이상의 속성들을 결정하는 단계는 콘텐츠 내에서 하나 이상의 엘리먼트들의 배치에 기반한다. 방법은 하나 이상의 엘리먼트들을 하나 이상의 논리 구조들에 저장하는 단계를 더 포함한다. 하나 이상의 논리 구조들은 정렬된 어레이, 계층적 테이블, 트리 구조, 또는 논리 그래프 구조 중 적어도 하나를 포함한다. 하나 이상의 표면들은 물리적 표면들 또는 가상 표면들 중 적어도 하나를 포함한다. 하나 이상의 표면들을 결정하는 단계는 하나 이상의 표면들 중 적어도 하나를 결정하기 위해 환경을 해석하는 단계를 포함한다.
[0010] 하나 이상의 실시예들에서, 하나 이상의 표면들을 결정하는 단계는 원시 센서 데이터를 수신하는 단계, 단순화된 데이터를 생성하기 위해 원시 센서 데이터를 단순화하는 단계, 및 단순화된 데이터에 기반하여 하나 이상의 가상 표면들을 생성하는 단계를 포함한다. 하나 이상의 표면들은 하나 이상의 가상 표면들을 포함한다. 원시 센서 데이터를 단순화하는 단계는 필터링된 데이터를 생성하기 위해 원시 센서 데이터를 필터링하는 단계, 및 포인트 클라우드 포인트들에 의해 필터링된 데이터를 하나 이상의 그룹들로 그룹화하는 단계를 포함한다. 단순화된 데이터는 하나 이상의 그룹들을 포함한다. 하나 이상의 가상 표면들을 생성하는 단계는 하나 이상의 실세계 표면들을 결정하기 위해 하나 이상의 그룹들 각각을 통해 반복하는 단계, 및 하나 이상의 실세계 표면들에 기반하여 하나 이상의 가상 표면들을 생성하는 단계를 포함한다.
[0011] 하나 이상의 실시예들에서, 하나 이상의 표면들을 결정하는 단계는 하나 이상의 표면들 각각에 대한 하나 이상의 속성들을 결정하는 단계를 포함한다. 하나 이상의 속성들은 우선순위 속성, 배향 속성, 종횡비 속성, 디멘션 속성, 영역 속성, 상대적인 뷰잉 포지션 속성, 컬러 속성, 콘트라스트 속성, 포지션 타입 속성, 마진 속성, 콘텐츠 타입 속성, 초점 속성, 가독성 인덱스 속성, 또는 배치할 표면 타입 속성 중 적어도 하나를 포함한다. 방법은 또한, 하나 이상의 표면들을 하나 이상의 논리 구조들에 저장하는 단계를 포함한다. 하나 이상의 엘리먼트들을 하나 이상의 표면들에 매칭하는 단계는 하나 이상의 엘리먼트들을 우선순위화하는 단계, 하나 이상의 엘리먼트들의 각각의 엘리먼트에 대해서, 엘리먼트의 하나 이상의 속성들을 하나 이상의 표면들 각각의 하나 이상의 속성들에 비교하는 단계, 엘리먼트의 하나 이상의 속성들 및 하나 이상의 표면들 각각의 하나 이상의 속성들에 기반하여 매치 스코어를 계산하는 단계, 및 최고 매치 스코어를 갖는 최상 매칭 표면을 식별하는 단계를 포함한다. 추가적으로, 방법은 하나 이상의 엘리먼트들 각각에 대해서, 엘리먼트와 최상 매칭 표면 간의 연관성을 저장하는 단계를 포함한다.
[0012] 하나 이상의 실시예들에서, 하나의 엘리먼트가 하나 이상의 표면들에 매칭된다. 또한, 방법은 하나 이상의 표면들의 각각의 표면을 사용자에게 디스플레이하는 단계를 포함한다. 게다가, 방법은 디스플레이되는 하나 이상의 표면들로부터의 위닝(winning) 표면을 표시하는 사용자 선택을 수신하는 단계를 포함한다. 게다가 또한, 방법은 사용자 선택으로부터의 위닝 표면의 표면 속성들을 사용자 선호도들 데이터 구조에 저장하는 단계를 포함한다. 콘텐츠는 콘텐츠 제공자로부터 스트리밍된 데이터이다. 하나 이상의 엘리먼트들은 혼합 현실 디바이스를 통해 사용자에게 디스플레이된다.
[0013] 하나 이상의 실시예들에서, 방법은 사용자의 변경된 시야에 적어도 부분적으로 기반하여, 하나 이상의 엘리먼트들을 디스플레이하기 위한 하나 이상의 추가적인 표면 옵션들을 디스플레이하는 단계를 더 포함한다. 하나 이상의 추가적인 표면 옵션들을 디스플레이하는 단계는 변경된 시야에 대응하는 시간 임계치에 적어도 부분적으로 기반한다. 하나 이상의 추가적인 표면 옵션들을 디스플레이하는 단계는 머리포즈 변경 임계치에 적어도 부분적으로 기반한다.
[0014] 하나 이상의 실시예들에서, 방법은 또한, 매칭된 하나 이상의 표면들에 하나 이상의 엘리먼트들을 디스플레이하는 것을 오버라이딩(overriding)하는 단계를 포함한다. 하나 이상의 표면들에 하나 이상의 엘리먼트들을 디스플레이하는 것을 오버라이딩하는 단계는 과거에 자주 사용된 표면들에 적어도 부분적으로 기반한다. 방법은 또한, 상이한 표면으로 이동되어질, 하나 이상의 표면들에 디스플레이된 특정 엘리먼트를 사용자가 선택하는 것에 적어도 부분적으로 기반하여, 하나 이상의 표면들에 디스플레이된 하나 이상의 엘리먼트들을 상이한 표면으로 이동시키는 단계를 더 포함한다. 특정 엘리먼트는, 적어도 사용자가 볼 수 있는 상이한 표면으로 이동된다.
[0015] 하나 이상의 실시예들에서, 방법은 추가적으로, 제1 시야로부터 제2 시야로의 사용자의 시야 변경에 대한 응답으로, 제2 시야로의 사용자의 시야 변경을 따르도록, 새로운 표면들에 하나 이상의 엘리먼트들을 디스플레이하는 것을 느리게 이동시키는 단계를 포함한다. 하나 이상의 엘리먼트들은 단지, 사용자의 제2 시야 바로 앞으로 콘텐츠를 이동시키라는 확인이 사용자로부터 수신될 시에, 사용자의 제2 시야 바로 앞으로 이동할 수 있다. 방법은 사용자가 제1 위치로부터 제2 위치로 이동하는 것에 적어도 부분적으로 기반하여, 제1 위치에서 하나 이상의 표면들에 하나 이상의 엘리먼트들을 디스플레이하는 것을 중단시키고, 제2 위치에서 하나 이상의 다른 표면들에 하나 이상의 엘리먼트들을 디스플레이하는 것을 재개하는 단계를 포함한다. 하나 이상의 엘리먼트들을 디스플레이하는 것을 중단시키는 단계는 사용자가 이동하고 있다는 또는 제1 위치로부터 제2 위치로 이동하였다는 결정에 적어도 부분적으로 자동 기반한다. 하나 이상의 엘리먼트들을 디스플레이하는 것을 재개하는 단계는 하나 이상의 다른 표면들의 식별 및 제2 위치에서 하나 이상의 엘리먼트들로의 하나 이상의 다른 표면들의 매칭에 적어도 부분적으로 자동 기반한다.
[0016] 하나 이상의 실시예들에서, 하나 이상의 표면들을 결정하는 단계는 하나 이상의 엘리먼트들을 디스플레이하기 위한 하나 이상의 가상 오브젝트들을 식별하는 단계를 포함한다. 하나 이상의 가상 오브젝트들을 식별하는 단계는 적절한 표면들의 결핍을 표시하는, 하나 이상의 센서들로부터 수신되는 데이터에 적어도 부분적으로 기반한다. 하나 이상의 엘리먼트들 중 한 엘리먼트는 TV 채널이다. 사용자는 사용자에게 디스플레이되는 하나 이상의 아이템들 또는 서비스들을 구매함으로써, 디스플레이되는 하나 이상의 엘리먼트들 중 한 엘리먼트와 상호작용한다.
[0017] 하나 이상의 실시예들에서, 방법은 또한, 제1 위치로부터 제2 위치로의 환경의 변경을 검출하는 단계, 제2 위치에서의 하나 이상의 추가적인 표면들을 결정하는 단계, 제1 위치에서 현재 디스플레이되고 있는 하나 이상의 엘리먼트들을 하나 이상의 추가적인 표면들에 매칭하는 단계, 및 제2 위치에서의 하나 이상의 추가적인 표면들에 하나 이상의 엘리먼트들을 가상 콘텐츠로서 디스플레이하는 단계를 포함한다. 환경의 변경이 시간적인 임계치를 초과한 이후에, 하나 이상의 추가적인 표면들의 결정이 개시된다. 사용자가 제1 위치에서 디스플레이되는 활성 콘텐츠는 중단시키고 제2 위치에서 디스플레이될 활성 콘텐츠는 재개하며, 활성 콘텐츠는 사용자가 제1 위치에서 활성 콘텐츠를 중단시킨 경우와 동일한 상호작용 포인트에서 재개한다.
[0018] 하나 이상의 실시예들에서, 방법은 또한, 사용자가 제1 위치를 떠남에 따라, 사용자에게 전달되는 공간화된 오디오를 제1 위치에서의 디스플레이된 콘텐츠와 연관된 위치로부터 사용자의 머리 중심으로 지향된 오디오 가상 스피커들로 전환하는 단계, 및 사용자의 머리 중심으로 지향된 오디오 가상 스피커들로부터, 제2 위치에서 하나 이상의 엘리먼트들을 디스플레이하는 하나 이상의 추가적인 표면들로부터 사용자에게 전달되는 공간화된 오디오로 전환하는 단계를 포함한다.
[0019] 다른 실시예에서, 혼합 현실 시스템의 사용자에게 콘텐츠를 푸싱하기 위한 방법은 사용자의 환경으로부터 하나 이상의 이용가능한 표면들을 수신하는 단계를 포함한다. 방법은 또한, 하나 이상의 이용가능한 표면들로부터의 하나의 이용가능한 표면의 디멘션에 매칭하는 하나 이상의 콘텐츠들을 식별하는 단계를 포함한다. 방법은 하나 이상의 콘텐츠들의 하나 이상의 제약들을 하나의 이용가능한 표면의 하나 이상의 표면 제약들에 비교하는 것에 기반하여 스코어를 계산하는 단계를 더 포함한다. 게다가, 방법은 하나 이상의 콘텐츠들로부터 최고 스코어를 갖는 콘텐츠를 선택하는 단계를 포함한다. 게다가 또한, 방법은 하나의 이용가능한 표면에 대한 선택된 콘텐츠의 일-대-일 매칭을 저장하는 단계를 포함한다. 또한, 방법은 이용가능한 표면에서 선택된 콘텐츠를 사용자에게 디스플레이하는 단계를 포함한다.
[0020] 하나 이상의 실시예들에서, 사용자의 환경은 사용자의 개인 주택이다. 사용자의 환경으로부터의 하나 이상의 이용가능한 표면들은 사용자의 초점 뷰 영역 주변부이다. 하나 이상의 콘텐츠들은 광고들이다. 광고들은 특정 환경에 위치된 사용자들의 특정 그룹을 타겟으로 한다. 하나 이상의 콘텐츠들은 애플리케이션으로부터의 통지들이다. 애플리케이션은 소셜 미디어 애플리케이션이다. 하나 이상의 콘텐츠들의 하나 이상의 제약들 중 하나의 제약은 배향이다. 선택되는 콘텐츠는 3D 콘텐츠이다.
[0021] 다른 실시예에서, 증강 현실(AR) 디스플레이 시스템은, 하나 이상의 센서들과, 외향 카메라들을 포함하는 하나 이상의 카메라들을 포함하는 머리-장착 시스템을 포함한다. 시스템은 또한, 한 세트의 프로그램 코드 명령들을 실행하기 위한 프로세서를 포함한다. 게다가, 시스템은 한 세트의 프로그램 코드 명령들을 홀딩하기 위한 메모리를 포함하고, 한 세트의 프로그램 코드 명령들은 콘텐츠를 수신하는 것을 수행하기 위한 프로그램 코드를 포함한다. 프로그램 코드는 또한, 콘텐츠의 하나 이상의 엘리먼트들을 식별하는 것을 수행한다. 또한, 프로그램 코드는 또한 하나 이상의 표면들을 결정하는 것을 수행한다. 게다가, 프로그램 코드는 또한, 하나 이상의 엘리먼트들을 하나 이상의 표면들에 매칭하는 것을 수행한다. 또한 추가로, 프로그램 코드는 또한, 하나 이상의 표면들에 하나 이상의 엘리먼트들을 가상 콘텐츠로서 디스플레이하는 것을 수행한다.
[0022] 하나 이상의 실시예들에서, 콘텐츠는 풀링된 콘텐츠 또는 푸싱된 콘텐츠 중 적어도 하나를 포함한다. 하나 이상의 엘리먼트들을 식별하는 것은 하나 이상의 엘리먼트들을 식별하기 위해 콘텐츠를 해석하는 것을 포함한다. 하나 이상의 엘리먼트들을 식별하는 것은 하나 이상의 엘리먼트들 각각에 대한 하나 이상의 속성들을 결정하는 것을 포함한다. 게다가, 프로그램 코드는 또한, 하나 이상의 엘리먼트들을 하나 이상의 논리 구조들에 저장하는 것을 수행한다. 하나 이상의 표면들은 물리적 표면들 또는 가상 표면들 중 적어도 하나를 포함한다. 하나 이상의 표면들을 결정하는 것은 하나 이상의 표면들 중 적어도 하나를 결정하기 위해 환경을 해석하는 것을 포함한다.
[0023] 하나 이상의 실시예들에서, 하나 이상의 표면들을 결정하는 것은 원시 센서 데이터를 수신하는 것, 단순화된 데이터를 생성하기 위해 원시 센서 데이터를 단순화하는 것, 및 단순화된 데이터에 기반하여 하나 이상의 가상 표면들을 생성하는 것을 포함하며, 하나 이상의 표면들은 하나 이상의 가상 표면들을 포함한다. 하나 이상의 표면들을 결정하는 것은 하나 이상의 표면들 각각에 대한 하나 이상의 속성들을 결정하는 것을 포함한다. 게다가, 프로그램 코드는 또한, 하나 이상의 표면들을 하나 이상의 논리 구조들에 저장하는 것을 수행한다.
[0024] 하나 이상의 실시예들에서, 하나 이상의 엘리먼트들을 하나 이상의 표면들에 매칭하는 것은, 하나 이상의 엘리먼트들을 우선순위화하는 것, 하나 이상의 엘리먼트들의 각각의 엘리먼트에 대해서: 엘리먼트의 하나 이상의 속성들을 하나 이상의 표면들 각각의 하나 이상의 속성들에 비교하는 것, 엘리먼트의 하나 이상의 속성들 및 하나 이상의 표면들 각각의 하나 이상의 속성들에 기반하여 매치 스코어를 계산하는 것, 및 최고 매치 스코어를 갖는 최상 매칭 표면을 식별하는 것을 포함한다. 하나의 엘리먼트가 하나 이상의 표면들에 매칭된다. 콘텐츠는 콘텐츠 제공자로부터 스트리밍된 데이터이다.
[0025] 하나 이상의 실시예들에서, 프로그램 코드는 또한, 사용자의 변경된 시야에 적어도 부분적으로 기반하여, 하나 이상의 엘리먼트들을 디스플레이하기 위한 하나 이상의 표면 옵션들을 디스플레이하는 것을 수행한다. 프로그램 코드는 또한, 매칭된 하나 이상의 표면들에 하나 이상의 엘리먼트들을 디스플레이하는 것을 오버라이딩하는 것을 수행한다. 프로그램 코드는 또한, 상이한 표면으로 이동되어질, 하나 이상의 표면들에 디스플레이된 특정 엘리먼트를 사용자가 선택하는 것에 적어도 부분적으로 기반하여, 하나 이상의 표면들에 디스플레이된 하나 이상의 엘리먼트들을 상이한 표면으로 이동시키는 것을 수행한다. 프로그램 코드는 또한, 제1 시야로부터 제2 시야로의 사용자의 시야 변경에 대한 응답으로, 제2 시야로의 사용자의 시야 변경을 따르도록, 새로운 표면들에 하나 이상의 엘리먼트들을 디스플레이하는 것을 느리게 이동시키는 것을 수행한다.
[0026] 하나 이상의 실시예들에서, 프로그램 코드는 또한, 사용자가 제1 위치로부터 제2 위치로 이동하는 것에 적어도 부분적으로 기반하여, 제1 위치에서 하나 이상의 표면들에 하나 이상의 엘리먼트들을 디스플레이하는 것을 중단시키고, 제2 위치에서 하나 이상의 다른 표면들에 하나 이상의 엘리먼트들을 디스플레이하는 것을 재개하는 것을 수행한다. 하나 이상의 표면들을 결정하는 것은 하나 이상의 엘리먼트들을 디스플레이하기 위한 하나 이상의 가상 오브젝트들을 식별하는 것을 포함한다. 하나 이상의 엘리먼트들 중 한 엘리먼트는 TV 채널이다.
[0027] 하나 이상의 실시예들에서, 사용자는 사용자에게 디스플레이되는 하나 이상의 아이템들 또는 서비스들을 구매함으로써, 디스플레이되는 하나 이상의 엘리먼트들 중 한 엘리먼트와 상호작용한다. 프로그램 코드는 또한, 제1 위치로부터 제2 위치로의 환경의 변경을 검출하는 것, 제2 위치에서의 하나 이상의 추가적인 표면들을 결정하는 것, 제1 위치에서 현재 디스플레이되고 있는 하나 이상의 엘리먼트들을 하나 이상의 추가적인 표면들에 매칭하는 것, 및 제2 위치에서의 하나 이상의 추가적인 표면들에 하나 이상의 엘리먼트들을 가상 콘텐츠로서 디스플레이하는 것을 수행한다.
[0028] 다른 실시예에서, 증강 현실(AR) 디스플레이 시스템은, 하나 이상의 센서들과, 외향 카메라들을 포함하는 하나 이상의 카메라들을 포함하는 머리-장착 시스템을 포함한다. 시스템은 또한, 한 세트의 프로그램 코드 명령들을 실행하기 위한 프로세서를 포함한다. 시스템은 한 세트의 프로그램 코드 명령들을 홀딩하기 위한 메모리를 더 포함하고, 한 세트의 프로그램 코드 명령들은 사용자의 환경으로부터 하나 이상의 이용가능한 표면들을 수신하는 것을 수행하기 위한 프로그램 코드를 포함한다. 프로그램 코드는 또한, 하나 이상의 이용가능한 표면들로부터의 하나의 이용가능한 표면의 디멘션에 매칭하는 하나 이상의 콘텐츠들을 식별하는 것을 수행한다. 프로그램 코드는 추가로, 하나 이상의 콘텐츠들의 하나 이상의 제약들을 하나의 이용가능한 표면의 하나 이상의 표면 제약들에 비교하는 것에 기반하여 스코어를 계산하는 것을 수행한다. 프로그램 코드는 추가적으로, 하나 이상의 콘텐츠들로부터 최고 스코어를 갖는 콘텐츠를 선택하는 것을 수행한다. 게다가, 프로그램 코드는 하나의 이용가능한 표면에 대한 선택된 콘텐츠의 일-대-일 매칭을 저장하는 것을 수행한다. 프로그램 코드는 또한, 이용가능한 표면에서 선택된 콘텐츠를 사용자에게 디스플레이하는 것을 수행한다.
[0029] 하나 이상의 실시예들에서, 사용자의 환경은 사용자의 개인 주택이다. 사용자의 환경으로부터의 하나 이상의 이용가능한 표면들은 사용자의 초점 뷰 영역 주변부이다. 하나 이상의 콘텐츠들은 광고들이다. 하나 이상의 콘텐츠들은 애플리케이션으로부터의 통지들이다. 하나 이상의 콘텐츠들의 하나 이상의 제약들 중 하나의 제약은 배향이다. 선택되는 콘텐츠는 3D 콘텐츠이다.
[0030] 다른 실시예에서, 2D 콘텐츠를 분해(deconstructing)하기 위한, 컴퓨터-구현 방법은 콘텐츠의 하나 이상의 엘리먼트들을 식별하는 단계를 포함한다. 방법은 또한, 하나 이상의 주변 표면들을 식별하는 단계를 포함한다. 방법은 추가로, 하나 이상의 엘리먼트들을 하나 이상의 주변 표면들에 맵핑하는 단계를 포함한다. 게다가, 방법은 하나 이상의 표면들에 하나 이상의 엘리먼트들을 가상 콘텐츠로서 디스플레이하는 단계를 포함한다.
[0031] 하나 이상의 실시예들에서, 콘텐츠는 웹 페이지이다. 하나 이상의 엘리먼트들 중 한 엘리먼트는 비디오이다. 하나 이상의 주변 표면들은 물리적 환경 내의 물리적 표면들 또는 물리적 환경 내에 물리적으로 위치되지 않은 가상 오브젝트들을 포함한다. 가상 오브젝트는 멀티-스택 가상 오브젝트이다. 식별된 하나 이상의 엘리먼트들의 제1 세트의 결과들 및 식별된 하나 이상의 주변 표면들의 제2 세트의 결과들은 스토리지 디바이스 내의 데이터베이스 테이블들에 저장된다. 스토리지 디바이스는 로컬 스토리지 디바이스이다. 식별된 하나 이상의 주변 표면들의 결과들을 저장하는 데이터베이스 테이블은: 표면 id, 폭 디멘션, 높이 디멘션, 배향 설명, 및 레퍼런스 프레임에 대한 포지션을 포함한다.
[0032] 하나 이상의 실시예들에서, 콘텐츠의 하나 이상의 엘리먼트들을 식별하는 단계는 엘리먼트들의 배치에 대응하는 태그들로부터의 속성들을 식별하는 단계, 하나 이상의 엘리먼트들에 대한 태그들로부터 힌트들을 추출하는 단계, 및 하나 이상의 엘리먼트들을 저장하는 단계를 포함한다. 하나 이상의 주변 표면들을 식별하는 단계는 사용자 현재 주변 표면들을 식별하는 단계, 사용자의 포즈를 결정하는 단계, 주변 표면들의 디멘션들을 식별하는 단계, 및 하나 이상의 주변 표면들을 저장하는 단계를 포함한다. 하나 이상의 엘리먼트들을 하나 이상의 주변 표면들에 맵핑하는 단계는 맵핑을 위한 후보 주변 표면들을 식별하기 위해 사전-정의된 규칙들을 룩업하는 단계, 및 하나 이상의 엘리먼트들 각각에 대한 최상 최적합 표면을 선정하는 단계를 포함한다. 하나 이상의 엘리먼트들을 하나 이상의 주변 표면들에 디스플레이하는 단계는 증강 현실 디바이스에 의해 수행된다.
[0033] 다른 실시예에서, 콘텐츠의 콘텐츠 엘리먼트들을 공간 3D(three-dimensionl) 환경에 매칭하는 방법은 콘텐츠 구조화 프로세스, 환경 구조화 프로세스, 및 합성 프로세스를 포함한다.
[0034] 하나 이상의 실시예들에서, 콘텐츠 구조화 프로세스들은 콘텐츠를 판독하고, 콘텐츠를 구성하고 그리고/또는 접근성을 위해 논리/계층적 구조들에 저장한다. 콘텐츠 구조화 프로세스는 콘텐츠를 수신하기 위한 해석기를 포함한다. 해석기는 수신된 콘텐츠로부터 콘텐츠 엘리먼트들을 식별하기 위해, 수신된 콘텐츠를 해석한다. 해석기는, 콘텐츠 엘리먼트들 각각에 대해, 속성들을 식별/결정하고, 논리/계층적 구조들에 저장한다.
[0035] 하나 이상의 실시예들에서, 환경 구조화 프로세스는 표면들을 식별하기 위해 환경 관련된 데이터를 해석한다. 환경 구조화 프로세스는 하나 이상의 센서(들), CVPU(computer vision processing unit), 지각 프레임워크, 및 환경 해석기를 포함한다. 하나 이상의 센서(들)는 실세계 표면들에 관한 원시 데이터(예컨대, 환경으로부터의 구조들 및 오브젝트들의 포인트 클라우드들)를 CVPU에 제공한다. CVPU는 원시 데이터를 단순화하고 그리고/또는 필터링한다. CVPU는 다운스트림 프로세스들에 의해 표면들을 추출/식별/결정하기 위한 거리 및 평면성에 의해 나머지 데이터를 그룹 포인트 클라우드 포인트들로 변경한다. 지각 프레임워크는 CVPU로부터 그룹 포인트 클라우드 포인트들을 수신하고, 환경 해석기에 대한 환경 데이터를 준비한다. 지각 프레임워크는 구조들/표면들/평면들을 생성/결정하고, 하나 이상의 데이터 스토리지들을 파퓰레이팅한다. 환경 해석기는 환경에서 표면들을 결정하기 위해, 지각 프레임워크로부터 환경 데이터를 해석한다. 환경 해석기는 지각 프레임워크로부터 수신된 환경 데이터에 기반하여 오브젝트들을 식별하기 위해 오브젝트 인식을 사용한다.
[0036] 하나 이상의 실시예들에서, 합성 프로세스는, 어떤 콘텐츠 엘리먼트가 환경의 어떤 표면들 상에 렌더링/맵핑/디스플레이되어야 하는지를 결정하기 위해, 해석기로부터의 콘텐츠 엘리먼트들(예컨대, 논리 구조들에 저장된 콘텐츠 엘리먼트들의 테이블)을 환경 해석기(예컨대, 논리 구조들에 저장된 표면들의 테이블)로부터의 환경으로부터의 표면들과 매칭한다. 합성 프로세스는 매칭 모듈, 렌더링 모듈, 가상 오브젝트들 생성 모듈, 디스플레이 모듈, 및 수신 모듈을 포함한다.
[0037] 하나 이상의 실시예들에서, 매칭 모듈은 논리 구조들에 저장된 콘텐츠 엘리먼트들을 논리 구조들에 저장된 표면들에 페어링/매칭한다. 매칭 모듈은 콘텐츠 엘리먼트들의 속성들을 표면들의 속성들과 비교한다. 매칭 모듈은 유사한 및/또는 대향 속성들을 공유하는 표면들 및 콘텐츠 엘리먼트들에 기반하여 콘텐츠 엘리먼트들을 표면들에 매칭한다. 매칭 모듈은 하나 이상의 선호도들 데이터 구조들, 이를테면, 사용자 선호도들, 시스템 선호도들, 및/또는 전달가능 선호도들에 액세스할 수 있고, 매칭 프로세스에서 하나 이상의 선호도들 데이터 구조들을 사용할 수 있다. 매칭 모듈은, 콘텐츠 벡터(예컨대, 배향 속성), 머리포즈 벡터(예컨대, 표면이 아닌 VR/AR 디바이스의 속성), 또는 하나 이상의 표면들의 표면 법선 벡터 중 적어도 하나에 적어도 부분적으로 기반하여, 하나의 콘텐츠 엘리먼트를 하나 이상의 표면들에 매칭한다. 결과들은 추가적인 프로세싱을 위해 영구 스토로지 또는 캐시 메모리에 저장될 수 있다. 결과들은 매치들의 목록을 만들기 위해 테이블에 구성 및 저장될 수 있다.
[0038] 하나 이상의 실시예들에서, 선택적인 가상 오브젝트들 생성 모듈은, 콘텐츠 엘리먼트들을 디스플레이하기 위한 가상 오브젝트들을 생성하는 것이 최적의 선정이라는 결정에 기반하여, 콘텐츠 엘리먼트들을 디스플레이하기 위한 가상 오브젝트들을 생성하며, 여기서, 가상 오브젝트는 가상 평면 표면이다. 콘텐츠 엘리먼트들을 디스플레이하기 위한 가상 오브젝트들을 생성하는 것은, 복수의 센서들 중 특정 센서 또는 센서들로부터 수신된 데이터에 기반할 수 있거나, 또는 특정 센서 또는 센서들로부터의 센서 입력의 결핍에 의해 이루어질 수 있다. 복수의 센서들 중 환경-중심 센서들(이를테면 카메라들 또는 깊이 센서들)로부터 수신된 데이터는 사용자의 현재 물리적 환경에 기반하여 적절한 표면들의 결핍을 표시하거나, 또는 그러한 센서들은 표면의 존재를 전혀 분별할 수 없다.
[0039] 하나 이상의 실시예들에서, 렌더링 모듈은 콘텐츠 엘리먼트들을 개개의 매칭된 표면들로 렌더링하고, 매칭된 표면들은 실제 표면들 및/또는 가상 표면들을 포함한다. 렌더링 모듈은 콘텐츠 엘리먼트들을 매칭된 표면에 맞추기 위한 스케일로 렌더링한다. 제1 룸 내의 표면들(실제 및/또는 가상)에 매칭된 콘텐츠 엘리먼트들은, 사용자가 제1 룸으로부터 제2 룸으로 이동하는 경우에도, 제1 룸 내의 표면들에 매칭된 상태로 유지된다. 제1 룸 내의 표면들에 매칭된 콘텐츠 엘리먼트들은 제2 룸 내의 표면들로 맵핑되지 않는다. 사용자가 제1 룸으로 돌아감에 따라, 제1 룸 내의 표면들로 렌더링된 콘텐츠 엘리먼트들은 디스플레이를 재개할 것이며, 여기서, 다른 피처들, 이를테면 오디오 플레이 및/또는 플레이 시간은, 사용자가 절대로 룸을 떠난 적이 없었던 것처럼, 끊김없이 플레이를 재개할 것이다.
[0040] 하나 이상의 실시예들에서, 제1 룸 내의 표면들에 매칭된 콘텐츠 엘리먼트들은, 사용자가 제1 룸에서 떠나고 제2 룸에 들어갈 때, 제2 룸 내의 표면들에 매칭된다. 제1 룸 내의 표면들에 매칭된 제1 세트의 콘텐츠 엘리먼트들은 제1 룸 내의 표면들에 매칭된 상태로 유지되는 한편, 제1 룸 내의 표면들에 매칭된 제2 세트의 콘텐츠 엘리먼트들은 AR 시스템을 구현하는 디바이스와 함께 제2 룸으로 이동할 수 있다. 제2 세트의 콘텐츠 엘리먼트들은, 디바이스가 제1 룸으로부터 제2 룸으로 이동함에 따라, 디바이스와 함께 이동한다. 콘텐츠 엘리먼트가 제1 세트 또는 제2 세트에 있는지 여부를 결정하는 것은, 콘텐츠 엘리먼트의 속성, 콘텐츠 엘리먼트가 매칭되는 제1 룸 내의 하나 이상의 표면들의 속성, 사용자 선호도들, 시스템 선호도들, 및/또는 전달가능 세계 선호도들 중 적어도 하나에 적어도 부분적으로 기반한다. 콘텐츠 엘리먼트들은, 사용자가 표면의 근접도 내에 있지 않을 때 또는 사용자가 표면의 시야의 뷰에 있지 않을 때, 표면에 매칭될 수 있지만 표면으로 렌더링되지 않을 수 있다.
[0041] 일부 실시예들에서, 콘텐츠 엘리먼트는 한번에 상위 3개의 표면들 모두 상에 디스플레이된다. 사용자는 상위 3개의 표면들로부터 바람직한 표면으로서 표면을 선택할 수 있다. 콘텐츠 엘리먼트는, 콘텐츠 엘리먼트가 2개의 다른 표면들 상에 디스플레이될 수 있다고 사용자에게 표시하면서, 한번에 상위 3개의 표면들 중 하나 상에만 디스플레이된다. 그런다음, 사용자는 다른 표면 옵션들을 통해 내비게이팅할 수 있고, 사용자에 의해 각각의 표면 옵션이 활성화될 때, 콘텐츠 엘리먼트는 활성화된 표면 상에 디스플레이될 수 있다. 그런다음, 사용자는 표면 옵션들로부터 바람직한 표면으로서 표면을 선택할 수 있다.
[0042] 일부 실시예들에서, 사용자는, 토템으로 채널을 타겟으로 하여 텔레비전에 대한 채널을 추출하고, 토템 상의 트리거를 눌러서 채널을 선택하고 시간 기간(예컨대, 약 1초) 동안 트리거를 홀딩하고, 주위로 토템을 이동시켜서 추출된 TV 채널을 디스플레이하기 위한 환경 내의 원하는 위치를 식별하고, 토템 상의 트리거를 눌러서 추출된 TV 채널을 환경 내의 원하는 위치에 배치한다. 원하는 위치는 TV 채널을 디스플레이하는 데 적절한 표면이다. 원하는 위치에 프리즘이 생성되고, 선택된 채널 콘텐츠가 로딩되고 프리즘 내에 디스플레이된다. 주위로 토템을 이동시켜서 추출된 TV 채널을 디스플레이하기 위한 환경 내의 원하는 위치를 식별하는 동안, 시각 정보가 사용자에게 디스플레이된다. 시각 정보는, 채널을 예시하는 단일 이미지, 채널의 프리뷰를 예시하는 하나 이상의 이미지들, 또는 채널의 현재 콘텐츠를 예시하는 비디오 스트림 중 적어도 하나일 수 있다.
[0043] 일부 실시예들에서, 방법은, 사용자의 제1 시야를 식별하는 단계, 콘텐츠를 디스플레이하기 위한 하나 이상의 표면 옵션들을 생성하는 단계, 제1 시야로부터 사용자의 제2 시야로 변경하는 단계, 제2 시야에 대응하는 콘텐츠를 디스플레이하기 위한 하나 이상의 추가적인 표면 옵션들을 생성하는 단계, 제1 시야에 대응하는 하나 이상의 표면 옵션들 및 제2 시야에 대응하는 하나 이상의 추가적인 표면 옵션들을 제공하는 단계, 사용자가 제2 시야로 보고 있는 동안, 제1 시야에 대응하는 표면 상에 콘텐츠를 디스플레이하기 위한 사용자로부터의 선택을 수신하는 단계, 및 사용자가 선택된 표면 옵션을 보기 위해 표시된 방향으로 제1 시야로 다시 내비게이팅해야한다고 사용자에게 표시하는, 제1 시야의 방향의 표시를 디스플레이하는 단계를 포함한다.
[0044] 일부 실시예들에서, 방법은 사용자의 제1 시야 내의 제1 표면 상에 콘텐츠를 디스플레이하는 단계를 포함하며, 제1 시야는 제1 머리포즈에 대응한다. 방법은 또한, 시간 임계치를 초과하는 시간 기간 동안 제1 시야로부터 제2 시야로의 변경을 결정하는 단계, 제1 시야 내의 제1 표면으로부터 제2 시야 내의 하나 이상의 표면 옵션들로의 콘텐츠의 디스플레이 위치를 변경하기 위한 사용자에 대한 옵션을 디스플레이하는 단계를 포함한다. 제2 시야는 제2 머리포즈에 대응한다. 일부 실시예들에서, 시스템은, 사용자들의 시야가 제1 시야로부터 제2 시야로 변경되면, 콘텐츠의 디스플레이 위치를 변경하기 위해, 사용자에 대한 옵션을 즉시 디스플레이한다. 제1 머리포즈 및 제2 머리포즈는 머리포즈 변경 임계치보다 더 큰 포지션의 변경을 갖는다.
[0045] 일부 실시예들에서, 방법은 하나 이상의 제1 표면들 상에 콘텐츠를 렌더링 및 디스플레이하는 단계를 포함하며, 여기서, 콘텐츠를 보고 있는 사용자는 제1 머리포즈를 갖는다. 방법은 또한, 사용자가 제1 머리포즈로부터 제2 머리포즈로 변경한 것에 응답하여, 하나 이상의 제2 표면들 상에 콘텐츠를 렌더링하는 단계를 포함하며, 여기서, 콘텐츠를 보고 있는 사용자는 제2 머리포즈를 갖는다. 방법은 하나 이상의 제1 표면들로부터 하나 이상의 제2 표면들로 콘텐츠의 디스플레이 위치를 변경하기 위해 사용자에게 옵션을 제공하는 단계를 더 포함한다. 머리포즈 변경이 대응하는 머리포즈 변경 임계치보다 더 클 때, 디스플레이 위치를 변경하기 위한 옵션을 사용자에게 제공한다. 머리포즈 변경 임계치는 90도보다 더 크다. 머리포즈 변경은 임계 시간 기간보다 더 오래 유지된다. 머리포즈 변경은 머리포즈 변경 임계치보다 더 작으며, 여기서, 콘텐츠의 디스플레이 위치를 변경하기 위한 옵션은 제공되지 않는다.
[0046] 일부 실시예들에서, 방법은 사용자가 제1 위치로부터 제2 위치로 이동함에 따라 사용자에 의해 볼 수 있는 표면들의 리스트를 평가하는 단계를 포함하며, 표면들의 리스트는, 사용자가 콘텐츠를 서치하거나 또는 선택할 필요 없이, 사용자의 환경에 푸싱될 수 있는 특정 타입들의 콘텐츠를 디스플레이할 수 있다. 방법은 또한, 특정 타입들의 푸시 콘텐츠가 언제 그리고 어디에 디스플레이될 수 있는지를 표시하는 사용자의 선호도 속성을 결정하는 단계를 포함한다. 방법은 선호도 속성에 기반하여 하나 이상의 표면들 상에 푸시 콘텐츠를 디스플레이하는 단계를 더 포함한다.
[0047] 다른 실시예에서, 증강 현실 시스템의 사용자에게 콘텐츠를 푸싱하기 위한 방법은 하나 이상의 표면들, 및 하나 이상의 표면들의 대응하는 속성들을 결정하는 단계를 포함한다. 방법은 또한, 하나의 표면 속성에 적어도 부분적으로 기반하여 하나 이상의 표면들과 매칭하는 하나 이상의 콘텐츠 엘리먼트들을 수신하는 단계를 포함한다. 방법은, 콘텐츠 엘리먼트들의 속성들이 하나 이상의 표면들의 속성들과 얼마나 잘 매칭하는지에 적어도 부분적으로 기반하여 매칭 스코어를 계산하는 단계를 더 포함하며, 여기서, 매칭 스코어는 1-100의 스케일에 기반하고, 여기서, 100의 스코어는 최고 스코어이고, 1의 스코어는 최저 스코어이다. 방법은 추가적으로, 하나 이상의 콘텐츠 엘리먼트들로부터 최고 매칭 스코어를 갖는 콘텐츠 엘리먼트들을 선택하는 단계를 포함한다. 게다가, 방법은 표면들에 대한 콘텐츠 엘리먼트들의 매칭을 저장하는 단계를 포함한다. 추가적으로, 방법은 매칭된 표면들 상에 콘텐츠 엘리먼트들을 렌더링하는 단계를 포함한다.
[0048] 하나 이상의 실시예들에서, 콘텐츠 엘리먼트들은 통지들을 포함하며, 매칭 스코어는 특정 표면과의 매칭과 대조적으로 통지될 필요가 있는 콘텐츠 엘리먼트의 우선순위를 표시할 수 있는 속성들에 기반하여 계산된다. 바람직한 콘텐츠 엘리먼트를 선택하는 것은 콘텐츠 엘리먼트의 속성들이 표면들의 속성들과 얼마나 잘 매칭하는지에 대한 경쟁에 기반한다. 콘텐츠 엘리먼트는 콘텐츠 타입에 기반하여 선택되며, 여기서, 콘텐츠 타입은 소셜 미디어 연락처로부터의 통지 및/또는 3D 콘텐츠이다.
[0049] 일부 실시예들에서, 웹 링크들에 대한 3D 프리뷰를 생성하기 위한 방법은 한 세트의 새로운 HTML 태그들 및 웹 페이지에 연관된 특성들로서 웹 링크들에 대한 3D 프리뷰를 표현하는 단계를 포함한다. 방법은 또한, 3D 프리뷰를 렌더링하기 위해 표면 및/또는 오브젝트로서 3D 모델을 특정하는 단계를 포함한다. 방법은 3D 프리뷰를 생성하고 3D 모델 상에 3D 프리뷰를 로딩하는 단계를 더 포함한다. 3D 모델은 2D 웹 페이지로 에칭된 3D 볼륨이다.
[0050] 본원에서 설명되고 예시된 개별 실시예들 각각은 다른 몇몇 실시예들 중 임의의 실시예의 컴포넌트들 및 특징들로부터 쉽게 분리되거나 또는 그 컴포넌트들 및 특징들과 조합될 수 있는 이산 컴포넌트들 및 특징들을 갖는다.
[0051] 본 개시내용의 특징들, 목적들, 및 장점들의 추가적인 세부사항들은 아래의 상세한 설명, 도면들, 및 청구항들에서 설명된다. 앞서 설명된 일반적인 설명과 다음의 상세한 설명 둘 모두는 예시적이고 설명적인 것이며, 본 개시내용의 범위에 대한 제한인 것으로 의도되지 않는다.
[0052] 도면들은 본 개시내용의 다양한 실시예들의 설계 및 유용성을 예시한다. 도면들이 실척대로 도시된 것이 아니고, 유사한 구조들 또는 기능들의 엘리먼트들이 도면들 전반에 걸쳐 유사한 참조 번호들로 표현된다는 것이 주목되어야 한다. 본 개시내용의 다양한 실시예들의 위에서-언급된 그리고 다른 장점들 및 목적들을 어떻게 획득하는지 더 잘 인지하기 위해, 위에서 간략하게 설명된 본 개시내용의 더 상세한 설명이 본 개시내용의 특정 실시예들을 참조하여 렌더링될 것이며, 그러한 특정 실시예들은 첨부 도면들에 예시되어 있다. 이들 도면들은 본 개시내용의 단지 전형적인 실시예들을 묘사할 뿐이고 그에 따라 본 개시내용의 범위를 제한하는 것으로 고려되지 않아야 한다는 것을 이해하면서, 본 개시내용은 첨부 도면들의 사용을 통해 추가적인 특성 및 세부사항으로 설명 및 기술될 것이다.
[0053] 도 1a-1b는 일부 실시예들에 따른, 콘텐츠의 콘텐츠 엘리먼트들을 공간 3D(three-dimensional) 환경에 매칭시키는 예시적인 시스템들 및 컴퓨터 구현 방법들을 예시한다.
[0054] 도 2a-2e는 일부 실시예들에 따른, 콘텐츠 엘리먼트들을 공간 3D(three-dimensional) 환경 내의 표면들에 매칭하기 위한 예들을 예시한다.
[0055] 도 3a-3b는 일부 실시예들에 따른, 광 및 컬러 조건들에 대해 조정된 웹 콘텐츠의 예들을 예시한다.
[0056] 도 4는 일부 실시예들에 따른, 3D 환경에서 디스플레이되도록 표면들에 콘텐츠 엘리먼트들을 매칭하기 위한 방법을 예시하는 흐름도이다.
[0057] 도 5는 일부 실시예들에 따른, 콘텐츠 내의 엘리먼트들을 식별하기 위한 방법을 예시하는 흐름도이다.
[0058] 도 6은 일부 실시예들에 따른, 사용자의 환경으로부터 표면들을 결정하기 위한 방법을 예시하는 흐름도이다.
[0059] 도 7a-7b는 일부 실시예들에 따른, 콘텐츠로부터의 엘리먼트들을 표면들에 매칭하기 위한 다양한 방법들을 예시하는 흐름도이다.
[0060] 도 7c는 일부 실시예들에 따른, 사용자가 콘텐츠를 작업 영역으로 이동시키는 예를 예시하며, 그 작업 영역에서 콘텐츠는 디스플레이 표면에 후속적으로 디스플레이된다.
[0061] 도 8은 일부 실시예들에 따른 매칭 스코어 방법들을 예시한다.
[0062] 도 9는 일부 실시예들에 따른, 위치 특정 콘텍스트를 제공하는 세계 위치 콘텍스트 API의 예를 예시한다.
[0063] 도 10은 일부 실시예들에 따른, VR/AR 시스템의 사용자에게 콘텐츠를 푸싱하기 위한 방법을 예시하는 흐름도이다.
[0064] 도 11은 일부 실시예들에 따른, 표면들에 콘텐츠 엘리먼트들을 매칭/디스플레이하기 위한 증강 현실 환경을 예시한다.
[0065] 도 12는 일부 실시예들에 따른, 표면들에 콘텐츠 엘리먼트들을 매칭/디스플레이하는 증강 현실 환경을 예시한다.
[0066] 도 13a-13b는 일부 실시예들에 따른, 예시적인 양면 웹 페이지를 예시한다.
[0067] 도 14a-14b는 일부 실시예들에 따른, 콘텐츠로부터의 콘텐츠 엘리먼트들을 저장하기 위한 상이한 구조들의 예들을 도시한다.
[0068] 도 15는 일부 실시예들에 따른, 사용자의 로컬 환경으로부터 식별된 표면들의 목록을 저장하기 위한 테이블의 예를 도시한다.
[0069] 도 16은 일부 실시예들에 따른 웹링크들에 대한 예시적인 3D 프리뷰를 도시한다.
[0070] 도 17은 일부 실시예들에 따른, 웹 페이지로 에칭된 3D 볼륨들을 갖는 웹 페이지의 예를 도시한다.
[0071] 도 18은 일부 실시예들에 따른, 표면들에 대한 콘텐츠 엘리먼트들의 매칭/맵핑을 저장하기 위한 테이블의 예를 도시한다.
[0072] 도 19는 일부 실시예들에 따른, 표면들에 매칭된 콘텐츠 엘리먼트들을 포함하는 환경의 예를 도시한다.
[0073] 도 20a-20o는 일부 실시예들에 따른, 콘텐츠 엘리먼트들에 대한 동적 환경 매칭 프로토콜들의 예들을 예시한다.
[0074] 도 21은 일부 실시예들에 따른, 환경 변경들 동안의 오디오 전환들을 예시한다.
[0075] 도 22는 본 개시내용의 실시예들을 구현하는 데 적절한 예시적인 컴퓨팅 시스템의 블록 다이어그램이다.
[0076] 다양한 실시예들이 이제 도면들을 참조하여 상세히 설명될 것이며, 이들은 당업자가 본 개시내용을 실시할 수 있게 하기 위해 본 개시내용의 예시적인 예들로서 제공된다. 특히, 아래의 예들 및 도면들은 본 개시내용의 범위를 제한하도록 의도되지 않는다. 본 개시내용의 특정 엘리먼트들이 알려진 컴포넌트들(또는 방법들 또는 프로세스들)을 사용하여 부분적으로 또는 완전히 구현될 수 있는 경우, 그러한 알려진 컴포넌트들(또는 방법들 또는 프로세스들) 중에서 본 개시내용의 이해를 위해 필요한 부분들만 설명될 것이며, 그러한 알려진 컴포넌트들(또는 방법들 또는 프로세스들)의 다른 부분들의 상세한 설명은 본 개시내용을 불분명하게 하지 않도록 생략될 것이다. 추가로, 다양한 실시예들은 예시를 통해 본원에서 참조되는 컴포넌트들에 대한 현재 및 미래의 알려진 등가물들을 포함한다.
[0077] 본 개시내용의 실시예들은 공간적으로 구성된 3D 환경에 콘텐츠 또는 콘텐츠 엘리먼트들을 디스플레이한다. 예컨대, 콘텐츠 또는 콘텐츠 엘리먼트들은 푸싱된 콘텐츠, 풀링된 콘텐츠, 당사자 콘텐츠, 및 제3 자 콘텐츠를 포함할 수 있다. 푸싱된 콘텐츠는 서버(예컨대, 콘텐츠 설계자)가 클라이언트(예컨대, 사용자)에게 전송한 콘텐츠이며, 여기서, 초기 요청은 서버로부터 발생한다. 푸싱된 콘텐츠의 예들은, (a) 다양한 애플리케이션들로부터의 통지들, 이를테면 주식들 통지, 뉴스피드들, (b) 우선순위화된 콘텐츠, 이를테면 예컨대, 소셜 미디어 애플리케이션들로부터의 업데이트들 및 통지들, 이메일 업데이트들 등, 및/또는 (c) 광범위한 타겟 그룹들 및/또는 특정 타겟 그룹들 등을 타겟으로 하는 광고들을 포함할 수 있다. 풀링된 콘텐츠는 클라이언트(예컨대, 사용자)가 서버(예컨대, 콘텐츠 설계자)로부터 요청한 콘텐츠이며, 여기서, 초기 요청은 클라이언트로부터 발생한다. 풀링된 콘텐츠의 예들은, (a) 예컨대 브라우저를 사용하여 사용자에 의해 요청된 웹 페이지들, (b) 예컨대 데이터 스트리밍 애플리케이션, 이를테면 비디오 및/또는 오디오 스트리밍 애플리케이션을 사용하여 사용자에 의해 요청된 콘텐츠 제공자로부터의 스트리밍 데이터, 및/또는 (c) 사용자가 요청/액세스/질의할 수 있는 임의의 디지털 포맷 데이터를 포함할 수 있다. 당사자 콘텐츠는 클라이언트가 소유/사용하는 임의의 디바이스(예컨대, 클라이언트 디바이스들, 이를테면 모바일 디바이스, 태블릿, 카메라, 머리-장착 디스플레이 디바이스 등) 상에서 클라이언트(예컨대, 사용자)에 의해 생성되는 콘텐츠이다. 당사자 콘텐츠의 예들은 사진들, 비디오들 등을 포함한다. 제3 자 콘텐츠는 클라이언트가 아닌 당사자(예컨대, 텔레비전 네트워크, 영화 스트리밍 서비스 제공자들, 사용자 이외의 누군가에 의해 개발된 웹 페이지들, 및/또는 사용자에 의해 생성되지 않은 임의의 데이터)에 의해 생성되는 콘텐츠이다. 제3 자 콘텐츠의 예들은, 사용자 이외의 누군가에 의해 생성된 웹 페이지, 하나 이상의 소스들로부터 수신된 데이터/오디오/비디오 스트림들 및 연관된 콘텐츠, 사용자 이외의 누군가에 의해 생성된 임의의 데이터 등을 포함할 수 있다.
[0078] 콘텐츠는, 머리-장착 시스템, 모바일 디바이스(예컨대, 셀 폰), 태블릿, 텔레비전 상의 웹 페이지 및/또는 애플리케이션, 서버 등으로부터 발생할 수 있다. 일부 실시예들에서, 콘텐츠는 다른 애플리케이션 또는 디바이스, 이를테면 랩탑 컴퓨터, 데스크탑 컴퓨터, 콘텐츠에 대한 링크를 갖는 이메일 애플리케이션, 콘텐츠에 대한 링크를 참조 또는 포함하는 전자 메시지 등으로부터 수신될 수 있다. 다음의 상세한 설명은 콘텐츠로서 웹 페이지의 예를 포함한다. 그러나, 콘텐츠는 임의의 콘텐츠일 수 있고, 본원에서 개시된 원리들이 적용될 것이다.
블록 다이어그램들
[0079] 도 1a는 일부 실시예들에 따른, 콘텐츠의 콘텐츠 엘리먼트들을 공간 3D(three-dimensional) 환경에 매칭시키는 예시적인 시스템 및 컴퓨터 구현 방법을 예시한다. 시스템(100)은 콘텐츠 구조화 프로세스(120), 환경 구조화 프로세스(160) 및 합성 프로세스(140)를 포함한다. 시스템(100) 또는 이의 일부분들은 머리 장착 디스플레이 디바이스와 같은 디바이스상에서 구현될 수 있다.
[0080] 콘텐츠 구조화 프로세스(120)는 콘텐츠(110)를 판독하고 콘텐츠(110)를 논리 구조들로 구성/저장하여, 콘텐츠(110)로부터 콘텐츠 엘리먼트들을 프로그래밍 방식으로 추출하기에 쉽고 액세스 가능하게 콘텐츠(110)를 만든다. 콘텐츠 구조화 프로세스(120)는 해석기(115)를 포함한다. 해석기(115)는 콘텐츠(110)를 수신한다. 예컨대, 해석기(115)는 엔티티(예컨대, 콘텐츠 설계자)로부터 콘텐츠(110)를 수신한다. 엔티티는 예컨대 애플리케이션일 수 있다. 엔티티는 시스템(100)의 외부에 있을 수 있다. 콘텐츠(110)는 예컨대 앞서 설명된 바와 같이 푸싱된 콘텐츠, 풀링된 콘텐츠, 당사자 콘텐츠 및/또는 제3 자 콘텐츠일 수 있다. 콘텐츠(110)가 요청될 때, 외부 웹 서버는 콘텐츠(110)를 제공할 수 있다. 해석기(115)는 콘텐츠(110)의 콘텐츠 엘리먼트들을 식별하기 위해 콘텐츠(110)를 해석한다. 해석기(115)는 콘텐츠(110)의 목록을 만들기 위한 콘텐츠의 테이블과 같은 논리 구조들에서 콘텐츠 엘리먼트들을 식별하고, 후속적으로 구성 및 저장할 수 있다. 콘텐츠의 테이블은 예컨대 트리 구조, 이를테면 문서 트리 또는 그래프 및/또는 데이터베이스 테이블, 이를테면 관계형 데이터베이스 테이블일 수 있다.
[0081] 해석기(115)는 콘텐츠 엘리먼트들 각각에 대한 속성들을 식별/결정하고 저장할 수 있다. 콘텐츠 엘리먼트들 각각의 속성들은 콘텐츠(110)의 콘텐츠 설계자에 의해 명시적으로 표시될 수 있거나 또는 예컨대 콘텐츠(110) 내에의 콘텐츠 엘리먼트들의 배치에 기반하여 해석기(115)에 의해 결정 또는 추론될 수 있다. 예컨대, 콘텐츠 엘리먼트들 각각의 속성들은 콘텐츠(110) 내의 콘텐츠 엘리먼트들의 서로에 대한 배치에 기반하여 해석기(115)에 의해 결정되거나 또는 추론될 수 있다. 콘텐츠 엘리먼트들의 속성들은 아래에서 더 상세히 설명된다. 해석기(115)는 콘텐츠(110)로부터 해석된 개개의 속성들과 함께 모든 콘텐츠 엘리먼트들의 리스트를 생성할 수 있다. 콘텐츠 엘리먼트들을 해석하고 저장한 후에, 해석기(115)는 연관된 우선순위들에 기반하여 콘텐츠 엘리먼트들을 (예컨대, 가장 높은 우선순위로부터 가장 낮은 우선순위로) 정렬할 수 있다.
[0082] 콘텐츠 엘리먼트들을 논리 구조들에 구성 및 저장하는 일부 이익들은 일단 콘텐츠 엘리먼트들이 논리 구조들에 구성 및 저장되면 시스템(100)이 콘텐츠 엘리먼트들에 질의하고 이를 조작할 수 있다는 점이다. 예컨대, 노드들을 갖는 트리 구조로서 표현되는 계층적/논리 구조에서, 만일 노드가 삭제되면, 삭제된 노드 아래의 모든 것이 또한 삭제될 수 있다. 마찬가지로, 만일 노드가 이동되면, 노드 아래의 모든 것은 노드와 함께 이동할 수 있다.
[0083] 환경 구조화 프로세스(160)는 표면들을 식별하기 위해 환경 관련 데이터를 해석하는 프로세스이다. 환경 구조화 프로세스(160)는 센서(들)(162), CVPU(computer vision processing unit)(164), 지각 프레임워크(166) 및 환경 해석기(168)를 포함할 수 있다. 센서(들)(162)는 실세계 표면들에 관한 원시 데이터(예컨대, 환경으로부터 오브젝트들 및 구조들의 포인트 클라우드들)를 프로세싱을 위해 CVPU(164)에 제공한다. 센서(들)(162)의 예들은 GPS(global positioning system), 무선 신호 센서들(WiFi, Bluetooth 등), 카메라들, 깊이 센서들, 가속도계 트리아드 및 각도 레이트 센서 트리아드를 포함하는 IMU(inertial measurement unit), 자력계, 레이더, 기압계, 고도계, 가속도계, 광 계측기, 자이로스코프들 등을 포함할 수 있다.
[0084] CVPU(164)는 원시 데이터를 단순화 또는 필터링한다. 일부 실시예들에서, CVPU(164)는 단순화된 원시 데이터를 생성하기 위해 원시 데이터로부터 잡음을 필터링할 수 있다. 일부 실시예들에서, CVPU(164)는 사용되지 않을 수 있고 그리고/또는 현재 환경 스캐닝 임무와 관련되지 않을 수 있는 데이터를 원시 데이터 및/또는 단순화된 원시 데이터로부터 필터링하여, 필터링된 데이터를 생성할 수 있다. CVPU(164)는 거리/평면성에 의해 나머지 데이터를 그룹 포인트 클라우드 포인트들로 변경하여, 추출/식별/결정 표면들을 보다 쉽게 다운스트림에 만들 수 있다. CVPU(164)는 추가적인 프로세싱을 위해 프로세싱된 환경 데이터를 지각 프레임워크(166)에 제공한다.
[0085] 지각 프레임워크(166)는 CVPU(164)로부터 그룹 포인트 클라우드 포인트들을 수신하고, 환경 해석기(168)를 위한 환경 데이터를 준비한다. 지각 프레임워크(166)는 구조들/표면들/평면들(예컨대, 표면들의 리스트)을 생성/결정하고, 하나 이상의 데이터 스토리지들, 이를테면 예컨대 외부 데이터베이스, 로컬 데이터베이스, 전용 로컬 스토리지, 로컬 메모리, 등을 파퓰레이팅한다. 예컨대, 지각 프레임워크(166)는 CVPU(164)로부터 수신된 모든 그룹화된 포인트 클라우드 포인트들을 통해 반복하며, 실세계 표면들에 대응하는 가상 구조들/표면들/평면들을 생성/결정한다. 가상 평면은 가상으로 구성된 직사각형(예컨대, 렌더링 파이프라인에서 2개의 삼각형들로 분할됨)을 생성하는 4개의 정점들(그룹화된 포인트 클라우드 포인트들로부터 선택됨)일 수 있다. 지각 프레임워크(166)에 의해 생성/결정된 구조들/표면들/평면들은 환경 데이터로서 지칭된다. 실세계 표면들 위에 렌더링되고 중첩될 때, 가상 표면은 실질적으로 그의 대응하는 하나 이상의 실세계 표면들 위에 놓인다. 일부 실시예들에서, 가상 표면은 그의 대응하는 하나 이상의 실세계 표면들 위에 완전하게 놓인다. 지각 프레임워크(286)는 가상 표면들의 대응하는 실세계 표면들에의 일-대-일 또는 일-대-다 매칭/맵핑을 유지할 수 있다. 일-대-일 또는 일-대-다 매칭/맵핑이 질의에 사용될 수 있다. 지각 프레임워크(286)는 환경이 변할 때 일-대-일 또는 일-대-다 매칭/맵핑을 업데이트할 수 있다.
[0086] 환경 해석기(168)는 지각 프레임워크(166)로부터 환경 데이터를 해석하여, 환경에서 표면들을 결정한다. 환경 해석기(168)는 지각 프레임워크(166)로부터 수신된 환경 데이터에 기반하여 오브젝트들을 식별하기 위해 오브젝트 지각을 사용할 수 있다. 오브젝트 지각에 관한 더 상세한 설명은 "PLANAR WAVEGUIDE APPARATUS WITH DIFFRACTION ELEMENT(S) AND SYSTEM EMPLOYING SAME"라는 명칭을 갖는 미국특허 제9,671,566호, 및 "USING OBJECT RECOGNIZERS IN AN AUGMENTED OR VIRTUAL REALITY SYSTEM"라는 명칭을 갖는 미국특허 제9,761,055호에 설명되어 있으며, 이 특허들은 인용에 의해 통합된다. 환경 해석기(168)는 표면들의 목록을 만들기 위한 표면들의 테이블과 같은 논리 구조들에 표면들을 구성 및 저장할 수 있다. 표면들의 테이블은 예컨대 정렬된 어레이, 계층적 테이블, 트리 구조, 논리 그래프 구조 등일 수 있다. 일예에서, 정렬된 어레이는 양호한 최적합 표면이 결정될 때까지 선형적으로 반복될 수 있다. 일예에서, 특정 파라미터(예컨대, 가장 큰 표면적)에 의해 정렬된 트리 구조에 대해, 트리 내의 각각의 표면이 요청된 면적보다 작은 지 또는 큰지를 연속적으로 비교함으로써 최상 최적합 표면이 결정될 수 있다. 일예에서, 논리 그래프 데이터 구조에서, 최상 최적합 표면은 관련된 인접 파라미터(예컨대, 뷰어로부터의 거리)에 기반하여 서치될 수 있거나 또는 특정 표면 요청에 대한 신속한 서치를 갖는 테이블을 갖는다.
[0087] 위에서 설명된 데이터 구조들은 환경 해석기(168)가 표면 매칭을 프로세싱하고 임의의 다른 알고리즘들을 실행하기 위해, 결정된 표면들에 대응하는 데이터를 런타임으로 저장하는 경우 (그리고, 필요한 경우에 환경 변경들에 기반하여 데이터를 업데이트하는 경우)일 수 있다. 일 실시예에서, 환경 해석기(168)와 관련하여 위에서 설명된 데이터 구조들은 데이터가 더 영구적으로 저장되는 경우가 아닐 수 있다. 데이터는 지각 프레임워크(166)가 데이터를 수신하여 프로세싱할 때 지각 프레임워크(166)에 의해 더 영구적으로 저장될 수 있으며, 지각 프레임워크(166)는 런타임 메모리 RAM, 외부 데이터베이스, 로컬 데이터베이스 등일 수 있다. 표면들을 프로세싱하기 전에, 환경 해석기(168)는 영구 스토리지로부터 표면 데이터를 수신하고, 표면들로부터 논리 데이터 구조들을 파뮬레이팅하고, 그런다음 논리 데이터 구조들상에서 매칭 알고리즘을 실행할 수 있다.
[0088] 환경 해석기(168)는 표면들 각각에 대한 속성들을 결정하고 저장할 수 있다. 표면들 각각의 속성들은 해석기(115)로부터의 콘텐츠의 테이블에서의 콘텐츠 엘리먼트들의 속성들에 대하여 의미가 있을 수 있다. 표면들의 속성들은 아래에 더 상세히 설명된다. 환경 해석기(168)는 환경으로부터 해석된 개개의 속성들과 함께 모든 표면들의 리스트를 생성할 수 있다. 표면들을 해석하고 저장한 후에, 환경 해석기(168)는 연관된 우선순위들에 기반하여 표면들을 (예컨대, 가장 높은 우선순위로부터 가장 낮은 우선순위로) 정렬할 수 있다. 표면들의 연관된 우선순위들은 환경 해석기(168)가 표면들로부터 표면 데이터를 수신하고 영구 스토리지로부터 논리 데이터 구조들을 파퓰레이팅할 때 확립될 수 있다. 예컨대, 만일 논리 데이터 구조들이 바이너리 서치 트리를 포함하면, (규칙적인 열거 리스트로 수신된) 스토리지로부터의 각각의 표면에 대해, 환경 해석기(168)는 (예컨대, 표면의 하나 이상의 속성들에 기반하여) 먼저 우선순위를 계산하며, 그런다음 그의 적절한 위치에 있는 논리 데이터 구조에 표면을 삽입할 수 있다. 환경 해석기(168)는 포인트 클라우드들을 통해 해석할 수 있으며, 공간 내에서의 관계/포인트들의 근접도에 기반하여 표면들 및/또는 평면들을 추출한다. 예컨대, 환경 해석기(168)는 수평 및 수직 평면들을 추출하고 평면들에 크기를 연관시킬 수 있다.
[0089] 콘텐츠 구조화 프로세스(120)는 콘텐츠(110)를 통해 해석하며, 콘텐츠 엘리먼트들을 논리 구조들에 구성한다. 환경 구조화 프로세스(160)는 센서(들)(162)로부터의 데이터를 통해 해석하고, 환경으로부터의 표면들을 논리 구조들로 구성한다. 콘텐츠 엘리먼트들을 포함하는 논리 구조들 및 표면들을 포함하는 논리 구조들은 매칭 및 조작에 사용된다. 콘텐츠 엘리먼트들을 포함하는 논리 구조들은 표면들을 포함하는 논리 구조들과 (타입이) 상이할 수 있다.
[0090] 합성 프로세스(140)는 환경의 어떤 표면들 상에 어떤 콘텐츠 엘리먼트가 렌더링/맵핑/디스플레이되어야 하는지를 결정하기 위해 해석기(115)로부터의 콘텐츠 엘리먼트들(예컨대, 논리 구조들에 저장된 콘텐츠 엘리먼트들의 테이블)을 환경 해석기(168)로부터의 환경으로부터의 표면들(예컨대, 논리 구조들에 저장된 표면들의 테이블)과 매칭시키는 프로세스이다. 일부 실시예들에서, 도 1a에 예시된 바와 같이, 합성 프로세스(140)는 매칭 모듈(142), 렌더링 모듈(146) 및 선택적인 가상 오브젝트들 생성 모듈(144)을 포함할 수 있다. 일부 실시예에서, 도 1b에 예시된 바와 같이, 합성 프로세스(140)는 디스플레이 모듈(148) 및 수신 모듈(150)을 더 포함할 수 있다.
[0091] 매칭 모듈(142)은 논리 구조들에 저장된 콘텐츠 엘리먼트들을 논리 구조들에 저장된 표면들에 페어링/매칭한다. 매칭은 표면들에 대한 콘텐츠 엘리먼트들의 일-대-일 또는 일-대-다 매칭(예컨대, 하나의 표면에 대한 하나의 콘텐츠 엘리먼트의 매칭, 2개 이상의 표면들에 대한 하나의 콘텐츠 엘리먼트의 매칭, 하나의 표면에 대한 2개 이상의 콘텐츠 엘리먼트들의 매칭 등)일 수 있다. 일부 실시예들에서, 매칭 모듈(142)은 표면의 부분에 콘텐츠 엘리먼트를 페어링/매칭시킬 수 있다. 일부 실시예들에서, 매칭 모듈(142)은 하나의 표면에 하나 이상의 콘텐츠 엘리먼트들을 페어링/매칭시킬 수 있다. 매칭 모듈(142)은 콘텐츠 엘리먼트들의 속성들을 표면들의 속성들과 비교한다. 매칭 모듈(142)은 유사한 및/또는 반대 속성들을 공유하는 표면들 및 콘텐츠 엘리먼트들에 기반하여 표면들에 콘텐츠 엘리먼트들을 매칭시킨다. 콘텐츠 엘리먼트들이 논리 구조들에 저장되고 표면들이 논리 구조들에 저장되는 그러한 구성된 인프라구조를 사용하면, 매칭 모듈(142)에 의해 수행되는 정합 프로세스를 지원 및 개선하기 위해, 매칭 규칙들, 정책들 및 제약들이 용이하게 생성되고 업데이트되고 그리고 구현되게 허용한다.
[0092] 매칭 모듈(142)은 사용자 선호도들, 시스템 선호도들 및/또는 전달가능 선호도들과 같은 하나 이상의 선호도 데이터 구조들에 액세스할 수 있고, 매칭 프로세스에서 하나 이상의 선호도 데이터 구조들을 사용할 수 있다. 사용자 선호도들은 예컨대 과거 액션들에 기반한 집계 선호도들에 기반한 모델일 수 있으며, 특정 콘텐츠 엘리먼트 타입들에 특정적일 수 있다. 시스템 선호도들은, 하나의 콘텐츠 엘리먼트에 대해, 상위 2개 이상의 표면들을 포함할 수 있으며, 여기서 사용자는 바람직한 표면을 선택하기 위해 2개 이상의 표면들을 통해 내비게이팅하는 능력을 가질 수 있다. 상위 2개 이상의 표면들은 사용자 선호도들 및/또는 전달가능 선호도들에 기반할 수 있다. 전달가능 선호도들은 클라우드 데이터베이스로부터 리트리브될 수 있으며, 여기서 전달가능 선호도들은 예컨대 다른 사용자들, 유사한 사용자들, 모든 사용자들, 유사한 환경들, 콘텐츠 엘리먼트 타입들 등의 그룹화에 기반한 모델일 수 있다. 전달가능 선호도 데이터베이스는 큰 데이터 세트(예컨대, 사용자의 데이터 세트)가 누적되기 전에 조차, 적정한 매칭을 제공하기 위해 소비자 데이터(예컨대, 집계 소비자 데이터, 소비자 테스팅 데이터 등)로 미리 파퓰레이팅될 수 있다.
[0093] 매칭 모듈(142)은 콘텐츠 벡터(예컨대, 배향 속성), 머리포즈 벡터(예컨대, 표면이 아닌 VR/AR 디바이스의 속성) 및 하나 이상의 표면들의 표면 법선 벡터에 적어도 부분적으로 기반하여 하나의 콘텐츠 엘리먼트를 하나 이상의 표면들에 매칭시킨다. 콘텐츠 벡터, 머리포즈 벡터 및 표면 법선 벡터는 아래에서 상세히 설명된다.
[0094] 매칭 모듈(142)은 표면들에 대한 콘텐츠 엘리먼트들의 일-대-일 또는 일-대-다 매칭/맵핑(예컨대, 하나의 표면에 대한 하나의 콘텐츠 엘리먼트의 매칭/맵핑, 2개 이상의 표면들에 대한 하나의 콘텐츠 엘리먼트의 매칭/맵핑, 하나의 표면에 대한 2개 이상의 콘텐츠 엘리먼트들의 매칭/맵핑 등)을 갖는 매칭 결과들을 생성한다. 결과들은 추가적인 프로세싱을 위해 영구 스토리지 또는 캐시 메모리에 저장될 수 있다. 결과들은 매치들의 목록들을 만들기 위한 테이블에 저장될 수 있다.
[0095] 일부 실시예들에서, 매칭 모듈(142)은 하나의 콘텐츠 엘리먼트가 다수의 표면들 중 임의의 표면상에 렌더링되고 디스플레이될 수 있도록 그 하나의 콘텐츠 엘리먼트가 다수의 표면들에 매칭/맵핑될 수 있는 매칭 결과들을 생성할 수 있다. 예컨대, 콘텐츠 엘리먼트는 5개의 표면들에 매칭/맵핑될 수 있다. 그런다음, 사용자는 콘텐츠 엘리먼트가 나중에 디스플레이되어야 하는 바람직한 표면으로서 5개의 표면들로부터 하나의 표면을 선택할 수 있다. 일부 실시예들에서, 매칭 모듈(142)은 하나의 콘텐츠 엘리먼트가 다수의 표면들 중 상위 3개의 표면들에 매칭/맵핑될 수있는 매칭 결과들을 생성할 수 있다.
[0096] 일부 실시예들에서, 사용자가 바람직한 표면을 선정하거나 선택할 때, 사용자에 의해 이루어진 선택은 시스템(100)이 표면들에 대한 콘텐츠 엘리먼트들의 더 정확하고 정밀한 추천을 수행할 수 있도록 사용자 선호도들을 업데이트할 수 있다.
[0097] 만일 매칭 모듈(142)이 모든 콘텐츠 엘리먼트들을 적어도 하나의 표면에 매칭시키거나 콘텐츠 엘리먼트들을 폐기하면 (예컨대, 다른 표면들에 맵핑하기 위해, 또는 적절한 매치를 찾지 못하는 경우), 합성 프로세스(140)는 렌더링 모듈(146)로 진행할 수 있다. 일부 실시예들에서, 매칭 표면을 갖지 않는 콘텐츠 엘리먼트들에 대해, 매칭 모듈(142)은 가상 표면들에 대한 콘텐츠 엘리먼트들의 매칭/맵핑을 생성할 수 있다. 일부 실시예들에서, 매칭 모듈(142)은 매칭 표면을 갖지 않는 콘텐츠 엘리먼트들을 취소할 수 있다.
[0098] 선택적인 생성 가상 오브젝트 모듈(144)은 가상 평면 표면과 같은, 콘텐츠 엘리먼트들을 디스플레이하기 위한 가상 오브젝트들을 생성할 수 있다. 매칭 모듈(142)의 매칭 프로세스 동안, 가상 표면이 특정 콘텐츠 엘리먼트들을 디스플레이하기 위한 선택적 표면일 수 있음이 결정될 수 있다. 이러한 결정은 텍스처 속성, 점유 속성 및/또는 환경 해석기(168)에 의해 결정된 표면들의 다른 속성들 및/또는 해석기(115)에 의해 결정된 콘텐츠 엘리먼트들의 속성들에 기반할 수 있다. 표면들의 텍스처 속성과 점유 속성이 아래에 상세히 설명된다. 예컨대, 매칭 모듈(142)은 텍스처 속성 및/또는 점유 속성이 잠재적 표면에 대한 속성들을 실격시킬 수 있음을 결정할 수 있다. 매칭 모듈(142)은, 적어도 텍스처 속성 및/또는 점유 속성에 기반하여, 콘텐츠 엘리먼트가 대안적으로 대신에 가상 표면상에 디스플레이될 수 있음을 결정할 수 있다. 가상 표면의 포지션은 하나 이상의 (실제) 표면들의 포지션에 비례할 수 있다. 예컨대, 가상 표면의 포지션은 하나 이상의 (실제) 표면들의 포지션으로부터 멀어지는 특정 거리일 수 있다. 일부 실시예들에서, 매칭 모듈(142)은 적절한 (실제) 표면들이 존재하지 않음을 결정할 수 있거나, 센서들(162)은 어떠한 표면들도 전혀 검출하지 않을 수 있으며, 따라서 가상 오브젝트들 생성 모듈(144)은 콘텐츠 엘리먼트들을 디스플레이하기 위한 가상 표면들을 생성할 수 있다.
[0099] 일부 실시예들에서, 콘텐츠 엘리먼트들을 디스플레이하기 위한 가상 오브젝트들을 생성하는 것은 센서들(162) 중 특정 센서 또는 센서들로부터 수신된 데이터에 기반하거나 또는 특정 센서 또는 센서들로부터의 센서 입력의 부족에 기반할 수 있다. (카메라들 또는 깊이 센서들과 같은) 센서들(162)의 환경 중심 센서들로부터 수신된 데이터는 사용자의 현재 물리적 환경에 기반하여 적절한 표면들의 부족을 표시할 수 있거나, 또는 이러한 센서들은 표면의 존재를 전혀 분별하지 못할 수 있다(예컨대, 높은 흡수성 표면은 깊이 센서의 품질에 의존한 표면 식별을 어렵게 만들거나, 또는 연결성의 부족은 표면 정보를 제공할 수 있는 공유 가능한 특정 맵들에 대한 액세스를 불가능하게 한다).
[0100] 일부 실시예들에서, 만일 환경 해석기(168)가 특정 타임프레임내에서 센서들(162) 또는 지각 프레임워크(166)로부터 데이터를 수신하지 못하면, 환경 해석기(168)는 적절한 표면이 존재하지 않음을 수동적으로 결정할 수 있다. 일부 실시예들에서, 센서들(162)은 환경-중심 센서들이 표면들을 결정할 수 없음을 능동적으로 확인할 수 있고, 이러한 결정을 환경 해석기(168)에 또는 렌더링 모듈(146)에 전달할 수 있다. 일부 실시예들에서, 만일 환경 구조화(160)가 환경 해석기(168)에 의한 수동 결정 또는 센서(162)에 의한 능동 확인에 의해 합성(140)에 제공할 표면들을 갖지 않는 경우, 합성 프로세스(140)는 가상 표면을 생성하거나 또는 이를테면 저장 모듈(152)로부터 저장 또는 등록된 표면에 액세스할 수 있다. 일부 실시예들에서, 환경 해석기(168)는 디바이스들 자체 센서들(162)로부터의 입력없이, 이를테면 핫스팟 또는 제3 자 지각 프레임워크 또는 저장 모듈로부터 표면 데이터를 직접 수신할 수 있다.
[0101] 일부 실시예들에서, GPS와 같은 특정 센서들은 사용자가 예컨대 열린 공간 공원 또는 해변과 같이 콘텐츠 엘리먼트들을 디스플레이하기에 적절한 표면들을 갖지 않는 위치에 있거나 또는 데이터를 제공하는 유일한 센서가 맵핑 정보를 제공하지 않고 대신에 배향 정보를 제공하는 센서(이를테면, 자력계)임을 결정할 수 있다. 일부 실시예들에서, 특정 타입의 디스플레이 콘텐츠 엘리먼트들은 사용자의 물리적 환경에서 이용 가능하지 않거나 검출 가능하지 않는 타입의 디스플레이 표면을 요구할 수 있다. 예컨대, 사용자는 사용자의 호텔 룸으로부터의 위치까지 보행하는 방향들을 디스플레이하는 맵을 보기를 원할 수 있다. 사용자가 그 위치까지 내비게이팅할 때 사용자가 보행 맵의 뷰를 유지하도록 하기 위해, AR 시스템은 보행 맵을 디스플레이하기 위한 가상 표면 또는 스크린과 같은 가상 오브젝트를 생성하는 것을 고려할 필요가 있을 수 있는데, 왜냐하면 센서들(162)로부터 수신된 (또는 수신되지 않은) 데이터에 기반할 때, 호텔 내의 사용자의 룸의 시작 위치로부터 보행 맵 상의 목적지 위치까지의 보행 맵을 사용자가 계속해서 보게 허용할, 환경 해석기(168)에 의해 이용 가능하거나 또는 검출 가능한 충분한 표면들이 존재하지 않을 수 있기 때문이다. 예컨대, 사용자는 네트워크 연결성이 제한되거나 차단될 수 있는 엘리베이터에 들어가거나, 호텔을 떠나거나, 또는 콘텐츠 엘리먼트들을 디스플레이하기 위해 이용 가능한 표면들이 존재하지 않을 수 있거나 또는 센서가 원하는 표면을 정확하게 검출하기는 잡음이 너무 많은 공원과 같은 열린 영역을 통해 보행할 수 있을 수 있다. 이러한 예에서, AR 시스템은 디스플레이될 콘텐츠 및 네트워크 연결성의 부족 또는 적절한 디스플레이 표면들의 부족을 포함할 수 있는 잠재적 이슈들에 기반하여 (예컨대, 사용자의 현재 위치의 GPS 데이터에 기반하여), AR 시스템이 센서들(162)로부터 수신된 정보를 사용하여 적절한 디스플레이 표면들을 찾기 위해 환경 해석기(168)에 의존하는 것과 대조적으로 콘텐츠 엘리먼트들을 디스플레이할 가상 콘텐츠를 생성하는 것이 최상일 수 있다는 것을 결정할 수 있다. 일부 실시예들에서, 콘텐츠 엘리먼트들을 디스플레이하기 위해 생성된 가상 오브젝트는 프리즘일 수 있다. 프리즘들에 관한 더 상세한 설명은 "METHODS AND SYSTEM FOR MANAGING AND DISPLAYING VIRTUAL CONTENT IN A MIXED REALITY SYSTEM"라는 명칭으로 2017년 12월 22일에 출원된 공동 소유의 미국 가특허 출원 제62/610,101호에 설명되어 있으며, 이 가출원은 그 전체가 인용에 의해 통합된다. 당업자는 (실제) 표면들 상에 콘텐츠 엘리먼트들을 디스플레이하는 것과 대조적으로, 콘텐츠 엘리먼트들을 디스플레이할 가상 표면들을 생성하는 것이 더 유리할 수 있을 때에 대한 더 많은 예들를 인지할 수 있다.
[0102] 렌더링 모듈(146)은 콘텐츠 엘리먼트들을 그들의 매칭된 표면들로 렌더링한다. 매칭된 표면들은 실제 표면들 및/또는 가상 표면들을 포함할 수 있다. 일부 실시예들에서, 콘텐츠 엘리먼트와 표면 사이에서 매치가 이루어질 수 있지만, 매치는 완전한 매치가 아닐 수 있다. 예컨대, 콘텐츠 엘리먼트는 1000 x 500의 2D 영역을 요구할 수 있다. 그러나, 최상으로 매칭된 표면은 900 x 450의 디멘션을 가질 수 있다. 일예에서, 렌더링 모듈(146)은 900 x 450 표면에 최적합하도록 1000 x 500 콘텐츠 엘리먼트를 렌더링할 수 있으며, 900 x 450 표면은 예컨대 종횡비를 일정하게 유지하면서 콘텐츠 엘리먼트의 스케일링을 포함할 수 있다. 다른 예에서, 렌더링 모듈(146)은 900 x 450 표면 내에 적합하도록 1000 x 500 콘텐츠 엘리먼트를 잘라낼 수 있다.
[0103] 일부 실시예들에서, 시스템(100)을 구현하는 디바이스가 이동할 수 있다. 예컨대, 시스템(100)을 구현하는 디바이스는 제1 룸에서 제2 룸으로 이동할 수 있다.
[0104] 일부 실시예들에서, 제1 룸의 표면들(실제 및/또는 가상)에 매칭되는 콘텐츠 엘리먼트들은 제1 룸의 표면들에 매칭된 상태로 유지될 수 있다. 예컨대, 시스템(100)을 구현하는 디바이스는 제1 룸에서 제2 룸으로 이동할 수 있고, 그리고 제1 룸의 표면들에 매칭되는 콘텐츠 엘리먼트들은 제2 룸의 표면들에 매칭되지 않을 수 있고, 따라서 제2 룸의 표면들 상에 렌더링되지 않을 수 있다. 만약 이후에 디바이스가 제2 룸에서 제1 룸으로 이동한다면, 제1 룸의 표면들에 매칭된 콘텐츠 엘리먼트들은 제1 룸의 대응하는 표면들에 렌더링/디스플레이될 것이다. 일부 실시예들에서, 콘텐츠는, 디바이스의 시야를 벗어난 것처럼 디스플레이되지 않더라도, 제1 룸에서 계속 렌더링될 것이지만, 오디오 플레이 또는 플레이의 시간과 같은 특정 피처들은, 디바이스가 시야에서 매칭되는 콘텐츠로 돌아갈 때, 렌더링이 끊김없이 재개되도록(사용자가 종래의 TV에 영화를 플레이한 채로 룸을 떠난 것과 유사한 효과) 계속 동작할 것이다.
[0105] 일부 실시예들에서, 제1 룸의 표면들에 매칭되는 콘텐츠 엘리먼트들은 제2 룸의 표면들에 매칭될 수 있다. 예컨대, 시스템(100)을 구현하는 디바이스는 제1 룸에서 제2 룸으로 이동할 수 있고, 그리고 디바이스가 제2 룸에 있게된 후, 환경 구조화 프로세스(160) 및 합성 프로세스(140)가 발생/실시/실행될 수 있고, 콘텐츠 엘리먼트들은 제2 룸의 표면들(실제 및/또는 가상)에 매칭될 수 있다.
[0106] 일부 실시예들에서, 제1 룸의 표면들에 매칭되는 일부 콘텐츠 엘리먼트들은 제1 룸에 유지될 수 있는 반면, 제1 룸의 표면들에 매칭되는 다른 콘텐츠 엘리먼트들은 제2 룸으로 이동할 수 있다. 예컨대, 제1 룸의 표면들에 매칭되는 제1 세트의 콘텐츠 엘리먼트들은 제1 룸의 표면들에 매칭된 상태로 유지될 수 있지만, 제1 룸의 표면들에 매칭되는 제2 세트의 콘텐츠 엘리먼트들은 시스템(100)을 구현하는 디바이스와 함께 제2 룸으로 이동할 수 있다. 제2 세트의 콘텐츠 엘리먼트들은, 디바이스가 제1 룸에서 제2 룸으로 갈 때 디바이스와 함께 이동할 수 있다. 콘텐츠 엘리먼트가 제1 세트에 있는지 또는 제2 세트에 있는지의 여부는 콘텐츠 엘리먼트의 속성, 콘텐츠 엘리먼트가 매칭되는 제1 룸의 하나 이상의 표면들의 속성, 사용자 선호도들, 시스템 선호도들 및/또는 전달가능 세계 환경 선호도들에 기반하여 결정될 수 있다. 이러한 다양한 시나리오들의 기본은, 매칭 및 렌더링이 배타적 일 수 있다는 것이며; 콘텐츠는 표면에 매칭되지만 렌더링되지 않을 수 있다. 이는, 사용자 디바이스가 표면들을 지속적으로 매칭할 필요가 없기 때문에 컴퓨팅 사이클들 및 전력을 절약할 수 있고, 그리고 선택적 렌더링은 매칭된 표면에서의 콘텐츠 뷰잉의 재개시 레이턴시를 감소시킬 수 있다.
[0107] 도 1b는, 일부 실시예들에 따른, 콘텐츠의 콘텐츠 엘리먼트들을 공간 3D 환경에 매칭시키는 예시적인 시스템 및 컴퓨터 구현 방법을 예시한다. 시스템(105)은, 도 1a와 유사하게, 콘텐츠 구조화 프로세스(120), 환경 구조화 프로세스(160) 및 합성 프로세스(140)를 포함한다. 도 1b의 합성 프로세스(140)는 디스플레이 모듈(148) 및 수신 모듈(150)을 포함하는 추가적인 모듈들을 포함한다.
[0108] 앞서 언급된 바와 같이, 매칭 모듈(142)은 매칭 결과들을 생성할 수 있으며, 하나의 콘텐츠 엘리먼트가 다수의 표면들에 매칭되어/맵핑되어, 콘텐츠 엘리먼트가 다수의 표면들 중 임의의 하나의 표면 상에 렌더링되어 디스플레이될 수 있다. 디스플레이 모듈(148)은, 다수의 표면들 상에 또는 단일 표면의 다수의 부분들에서, 콘텐츠 엘리먼트, 또는 콘텐츠 엘리먼트의 개요, 또는 감소된 해상도 버전의 콘텐츠 엘리먼트(이 각각은 본원에서, "후보 뷰(candidate view)"로 지칭 됨)를 디스플레이한다. 일부 실시예들에서, 다중 표면 디스플레이는 연속적이어서, 사용자는 한번에 오직 하나의 후보 뷰만을 보고, 그리고 추가적인 후보 뷰 옵션들을 하나씩 순환시키거나 스크롤할 수 있다. 일부 실시예들에서, 모든 후보 뷰들이 동시에 디스플레이되고 사용자는 단일 후보 뷰를 (이를테면, 음성 커맨드, 하드웨어 인터페이스에 대한 입력, 눈-추적 등에 의해) 선택한다. 수신 모듈(150)은, 사용자로부터, 다수의 표면들 중의 표면 상에서 하나의 후보 뷰의 선택을 수신한다. 선택된 후보 뷰는 바람직한 표면으로 지칭될 수 있다. 바람직한 표면은 저장 모듈(152)에 사용자 선호도들 또는 전달가능 선호도로서 저장될 수 있고, 이로써 미래의 매칭들은, 수신 모듈(150)에서 매칭 모듈(142)로의 정보 흐름(156) 또는 저장 모듈(152)에서 매칭 모델(142)로의 정보 흐름(154)에 의해 표시된 바와 같이, 콘텐츠 엘리먼트들이 표면들에 매칭할 경우 이러한 선호도로부터 이익을 얻을 수 있다. 정보 흐름(156)은 반복적인 프로세스일 수 있으며, 이로써 일부 실시예들에 따라, 몇 번의 반복들 후에, 사용자 선호도들은 시스템 및/또는 전달가능 선호도들에 비해 우세해지기 시작할 수 있다. 이에 비해, 정보 흐름(154)은 고정된 출력일 수 있어서, 인스턴트(instant) 사용자에게 또는 동일한 환경에서 콘텐츠를 입력하거나 디스플레이하기를 원하는 다른 사용자에게 항상 매칭 우선순위가 부여될 것이다. 시스템 및/또는 전달가능 선호도들은 사용자 선호도들에 비해 우세할 수 있지만, 더 많은 정보 흐름(156)이 도 1a의 시스템(100) 또는 도 1b의 시스템(105)의 사용자의 사용에 대해 계속됨에 따라, 사용자 선호도들은 자연 학습 프로세스 알고리즘을 통해 시스템에 의해 바람직해지기 시작할 수 있다. 따라서, 일부 실시예들에서, 콘텐츠 엘리먼트는 환경 입력들 또는 다른 표면들의 이용가능성에 상관없이 바람직한 표면에 렌더링/디스플레이될 것이며, 그렇지 않았다면 매칭 모듈(142)이 콘텐츠 엘리먼트를 다른 곳에 배치했을 것이다. 유사하게, 정보 흐름(154)은, 환경에 결코 존재하지 않았으며 제1 사용자가 가졌던 바람직한 표면에 대한 반복적인 정보 흐름(156)을 구축하지 않았던 제2 사용자에 대한 바람직한 표면에 대한 렌더링/디스플레이 매칭을 지시할 수 있다.
[0109] 유리하게는, 일반적으로 센서 데이터 및 가상 모델들이 단기 컴퓨터 메모리에 저장되기 때문에, 바람직한 표면을 저장하는 영구 저장 모듈은, 만약 콘텐츠 배치 세션들 사이에서 디바이스가 중단되었다면 보다 신속하게 합성 프로세스(140)를 순환시킬 수 있다. 예컨대, 만약 센서들(162)이 제1 세션에서 콘텐츠를 매칭시키기 위해 환경 구조화(160)를 통해 가상 메시 재구성들을 생성하기 위해 깊이 정보를 수집하고 그리고 시스템이 해당 환경 데이터를 저장하는 랜덤 액세스 메모리를 중단시켜 비운다면, 시스템은 다음 매칭 세션에 대한 재시작시 환경 구조화 파이프 라인을 반복해야 할 것이다. 그러나, 컴퓨팅 자원들은, 환경 구조화 프로세스(160)의 완벽한 반복없이 바람직한 표면 정보로 매칭 모듈(142)을 업데이트하는 저장 모듈(152)에 의해 절약된다.
[0110] 일부 실시예들에서, 콘텐츠 엘리먼트는 한 번에 상위 3개의 표면들 상에 모두 디스플레이될 수 있다. 그런다음, 사용자는 상위 3개의 표면들로부터의 표면을 바람직한 표면으로서 선택할 수 있다. 일부 실시예들에서, 콘텐츠 엘리먼트는, 콘텐츠 엘리먼트가 2개의 다른 표면들 상에 디스플레이될 수 있다는 표시와 함께, 사용자에게 한번에 상위 3개의 표면들 중 오직 하나의 표면 상에만 디스플레이될 수 있다. 그런다음, 사용자는 다른 표면 옵션들을 내비게이팅할 수 있고, 그리고 각각의 표면 옵션이 사용자에 의해 활성화될 때, 콘텐츠 엘리먼트가 활성화된 표면 상에 디스플레이될 수 있다. 그런다음, 사용자는 표면 옵션들로부터의 표면을 바람직한 표면으로서 선택할 수 있다.
[0111] 도 2a-2e는 사용자의 물리적 환경(1105) 내의 3개의 가능한 위치들에 매칭된 콘텐츠 엘리먼트(예컨대, 컴퓨터의 모니터, 스마트폰, 태블릿, 텔레비전, 웹 브라우저, 스크린 등)를 묘사한다. 도 2a는 뷰잉 위치 제안(214)에 의해 표시된 3개의 가능한 위치들에 콘텐츠 엘리먼트가 매칭/맵핑되는 것을 도시한다. 뷰잉 위치 제안(214)에서 좌측편에 디스플레이된 3개의 백색 도트들은 3개의 디스플레이 위치들이 존재할 수 있음을 표시한다. "x"를 갖는 4번째 백색 도트는, 뷰잉 위치 제안(214)을 닫고 그리고 사용자가 "x"를 선정할 때, 선택된/강조표시된 디스플레이 위치에 기반한 바람직한 디스플레이 위치의 선택을 표시하는 닫기 버튼(close button)일 수 있다. 디스플레이 위치(212a)는 좌측편의 3개의 백색 도트들 중 강조표시된 첫번째 백색 도트에 의해 표시된 콘텐츠 엘리먼트를 디스플레이하기 위한 제1 옵션이다. 도 2b는 동일한 사용자 환경(1105)을 도시하며, 여기서 디스플레이 위치(212b)는 좌측편의 3개의 백색 도트들 중 강조표시된 두번째 백색 도트로 표시된 콘텐츠 엘리먼트를 디스플레이하기 위한 제2 옵션이다. 도 2c는 동일한 사용자 환경(1105)을 도시하며, 여기서 디스플레이 위치(212c)는 좌측편의 3개의 백색 도트들 중 강조표시된 세번째 백색 도트로 표시된 콘텐츠 엘리먼트를 디스플레이하기 위한 제3 옵션이다. 당업자는, 사용자가 선정할 디스플레이 옵션들을 보여주기 위한 다른 접근법들이 있을 수 있으며 그리고 도 2a-2c에 예시된 예가 단지 일 예임을 인지할 수 있다. 예컨대, 다른 접근법은 모든 디스플레이 옵션들을 한번에 디스플레이하고 사용자가 VR/AR 디바이스(예컨대, 제어기, 시선을 통함 등)를 사용하여 바람직한 옵션을 선택하게 하는 것일 수 있다.
[0112] AR 시스템들이 가상 콘텐츠가 투사될 수 있는 특정 시야들을 가지며 이러한 시야는 전형적으로 잠재적인 인간들의 전시야(full field of view)보다 작다는 것이 이해될 것이다. 인간들은 일반적으로 110도 내지 120도의 자연 시야를 가질 수 있으며, 일부 실시예들에서, 도 2d에 묘사된 AR 시스템(224)의 디스플레이 시야는 이 잠재력보다 작고, 이는 표면 후보(212c)는 사용자의 자연 시야 내에는 있지만 디바이스의 시야 밖에 있을 수 있다(예컨대, 시스템은 해당 표면 상에 콘텐츠를 렌더링할 수 있지만, 실제로는 콘텐츠를 디스플레이하지 않을 것이다)는 것을 의미한다. 일부 실시예들에서, 시야 속성(속성들은 아래에서 추가로 설명됨)은, 표면이 디바이스의 디스플레이 시야에 대해 디스플레이되는 콘텐츠를 지원할 수 있는지 여부를 나타내기 위해 표면에 할당된다. 일부 실시예들에서, 디스플레이의 시야를 벗어난 표면들은, 앞서 설명된 바와 같은 디스플레이 옵션들을 위해 사용자에게 제공되지 않는다.
[0113] 일부 실시예들에서, 도 2e에 묘사된 디폴트 포지션(212)은, 가상 표면으로서, 미리 정해진 거리에서(이를테면, 디바이스의 디스플레이 시스템의 특정 초점 길이 규격에서) 사용자의 바로 앞에 있다. 그런다음, 사용자는, 이를테면 환경에서 센서들(162)에 의해 측정된 머리포즈 또는 제스처 또는 다른 입력 수단에 의해, 디폴트 포지션(212)을 원하는 포지션(예컨대, 스토리지(285)로부터의 등록된 위치로, 또는 합성 프로세스(140)로부터의 매칭된 표면으로)으로 조정할 수 있다. 일부 실시예들에서, 디폴트 포지션은, 사용자가 환경을 통해 이동할 때, 디폴트 포지션(212)이 사용자 시야의 실질적으로 동일한 부분(이 실시예에서 디스플레이의 디바이스 필드와 동일한)에서 유지되도록, 사용자에 대해 고정된 채로 계속 머무를 수 있다.
[0114] 도 2e는 또한, 예로서, 가상 TV(television)를 예시하는 데, 이는 이 가상 TV와 연관된 3개의 TV 애플리케이션 프리뷰들(예컨대, TV App1, TV App2, TV App3)을 갖는 디폴트 포지션(212)에서의 가상 TV이다. 3개의 TV 애플리케이션들은 상이한 TV 채널들, 또는 상이한 TV 채널들/TV 콘텐츠 제공자들에 대응하는 상이한 TV 애플리케이션들에 대응할 수 있다. 사용자는, 가상 TV 아래에 보여지는 개개의 TV 애플리케이션/채널을 선택함으로써, TV 플레이를 위한 단일 채널을 추출할 수 있다. 사용자는, (a) 토템으로 채널을 타겟으로 함으로써, (b) 토템 상의 트리거를 눌러 채널을 선택하고 일정 시간 기간(예컨대, 약 1초) 동안 트리거를 홀딩함으로써, (c) 추출된 TV 채널을 디스플레이하기 위한 환경의 원하는 위치를 식별하기 위해 토템을 이리저리 이동시킴으로써, 그리고 (d) 환경에서의 원하는 위치에 추출된 TV 채널을 두기 위해 토템 상의 트리거를 누름으로써, TV에 대한 채널을 추출할 수 있다. 가상 콘텐츠를 선택하는 것은, "SELECTING VIRTUAL OBJECTS IN A THREE-DIMENSIONAL SPACE"이라는 명칭으로 2015년 10월 20일자에 출원되는 출원을 우선권으로 주장하는 미국 특허 출원 제15/296,869호에 추가로 설명되어 있으며, 이로써, 그 각각의 출원들의 내용들이 인용에 의해 본원에 포함된다.
[0115] 원하는 위치는 TV 채널을 디스플레이하기에 적합한 표면이거나, 또는 본 개시내용의 교시들에 따라 식별되는 다른 표면일 수 있다. 일부 실시예들에서, 새로운 프리즘이 원하는 위치에서 생성될 수 있으며, 선택된 채널 콘텐츠가 새로운 프리즘 내에 로딩되고 디스플레이된다. 토템들에 관한 추가 세부사항들은 "PLANAR WAVEGUIDE APPARATUS WITH DIFFRACTION ELEMENT(S) AND SYSTEM EMPLOYING SAME"라는 명칭의 미국 특허 제9,671,566호에 기술되어 있으며, 그 미국 특허는 그 전체가 인용에 의해 본원에 포함된다. 일부 실시예들에서, 3개의 TV 애플리케이션들은, 채널 콘텐츠의 동적 또는 정적 묘사들을 디스플레이함으로써 개개의 채널들에서 플레이되고 있는 것을 보기 위한 작은 어퍼처(aperture)들인 "채널 프리뷰들"일 수 있다. 일부 실시예들에서, (c) 추출된 TV 채널을 디스플레이하기 위한 환경의 원하는 위치를 식별하기 위해 토템을 이리저리 이동시키는 동안, 시각 정보(visual)가 사용자에게 보여질 수 있다. 시각 정보는, 예컨대, 채널을 예시하는 단일 이미지, 채널의 프리뷰를 예시하는 하나 이상의 이미지들, 채널의 현재 콘텐츠를 예시하는 비디오 스트림 등일 수 있다. 비디오 스트림은, 예컨대, 저해상도 또는 고해상도일 수 있으며, 이용가능한 자원들 및/또는 대역폭의 함수로써 (해상도, 프레임 레이트 등에서) 변할 수 있다.
[0116] 도 2a-2e는, (예컨대, 특정 머리포즈에 기반하여) 사용자 및/또는 디바이스의 오리지널 시야 내에 콘텐츠(예컨대, 가상 콘텐츠로서의 엘리먼트들)를 디스플레이하기 위한 상이한 디스플레이 옵션들을 예시한다. 일부 실시예들에서, 사용자 및/또는 디바이스의 시야는 변경될 수 있다(예컨대, 사용자는 한 시야에서 다른 시야로 자신의 머리를 이동시킨다). 변경된 시야의 결과로서, 콘텐츠를 디스플레이하기 위한 추가적인 표면 옵션들이, 사용자의 시야에서의 변경(예컨대, 머리포즈에서의 변경)에 적어도 부분적으로 기반하여, 사용자에게 이용가능하게 될 수 있다. 또한, 다른 표면들이 사용자의 그리고/또는 디바이스의 오리지널 시야에서 본래 이용가능하지 않았으나, 지금은 사용자의 시야의 변경에 기반하여 사용자에게 가시적이라는 것에 적어도 부분적으로 기반하여, 콘텐츠를 디스플레이하기 위한 추가적인 표면 옵션들이 이용가능해질 수 있다. 따라서, 도 2a-2d의 뷰 위치 옵션들(214)이 또한, 콘텐츠를 디스플레이하기 위한 추가적인 옵션들을 묘사할 수 있다. 예컨대, 도 2a-2d는 3개의 디스플레이 옵션들을 묘사한다. 사용자의 시야가 변함에 따라, 더 많은 디스플레이 옵션들이 이용가능해질 수 있으며, 이는 추가적인 디스플레이 옵션들을 표시하기 위해 더 많은 도트들을 디스플레이하는 뷰 위치 옵션들(214)을 야기할 수 있다. 마찬가지로, 만약 새로운 시야가 적은 표면 옵션들을 갖는다면, 뷰 위치 옵션들(214)은, 새로운 시야에 디스플레이될 콘텐츠를 위해 이용가능한 다수의 디스플레이 옵션들을 표시하기 위해, 3개 미만의 도트들을 디스플레이할 수 있다. 따라서, 사용자의 변경된 시야에 기반하는 콘텐츠를 디스플레이하기 위한 하나 이상의 추가적인 표면 옵션들이 선택을 위해 사용자에게 디스플레이될 수 있으며, 변경된 시야는 사용자 및/또는 디바이스의 머리포즈에서의 변경에 대응한다.
[0117] 일부 실시예들에서, 사용자 및/또는 디바이스는 제1 시야를 가질 수 있다. 제1 시야는 콘텐츠를 디스플레이하기 위한 표면 옵션들을 생성하는 데 사용될 수 있다. 예컨대, 제1 시야에서의 3개의 표면 옵션들은 콘텐츠 엘리먼트를 디스플레이하는 데 이용가능할 수 있다. 그런다음, 사용자는 자신의 시야를 제1 시야에서 제2 시야로 변경할 수 있다. 제2 시야는 콘텐츠를 디스플레이하기 위한 추가적인 표면 옵션들을 생성하는 데 사용될 수 있다. 예컨대, 제2 시야에서의 2개의 표면 옵션들은 콘텐츠 엘리먼트를 디스플레이하는 데 이용가능할 수 있다. 제1 시야의 표면들과 제2 시야의 표면들 간에는, 총 5개의 표면 옵션들이 있을 수 있다. 5개의 표면 옵션들은 위치 제안들을 볼 때 사용자에게 디스플레이될 수 있다. 만약 사용자가 제2 시야를 보고 있고 제1 시야에서 뷰잉 위치 제안을 선택한다면, 사용자는, 선택된 표면 옵션/뷰잉 위치를 보기 위해, 표시된 방향에서 제1 시야로 다시 내비게이팅해야 한다는 것을 사용자에게 표시하는 제1 시야 방향의 표시(예컨대, 화살표, 글로 등)를 수신할 수 있다.
[0118] 일부 실시예들에서, 사용자는 제1 시야에서 제1 표면 상에 디스플레이된 콘텐츠를 보고 있을 수 있다. 제1 시야는 연관된 제1 머리포즈를 가질 수 있다. 일정 시간 기간 후 사용자가 자신의 시야를 제1 시야에서 제2 시야로 변경하는 경우, 시스템은, 사용자에게, 제1 시야에서의 제1 표면으로부터 제2 시야에서의 하나 이상의 표면 옵션들로 콘텐츠의 디스플레이 위치를 변경하는 옵션을 제공할 수 있다. 제2 시야는 연관된 제2 머리포즈를 가질 수 있다. 일부 실시예들에서, 일단 사용자의 시야가 제1 시야에서 제2 시야로 그리고 그에 따라 사용자 및/또는 디바이스의 제1 머리포즈에서 사용자 및/또는 디바이스의 제2 머리포즈로 변경되었다면, 시스템은 콘텐츠를 이동시키기 위한 옵션을 사용자에게 즉시 제공할 수 있으며, 제1 머리포즈 및 제2 머리포즈는 머리포즈 변경 임계치보다 큰 포지션의 변경을 갖는다. 일부 실시예들에서, 사용자가 제2 시야 및 그에 따른 제2 머리포즈를 유지하기 위한 시간 임계치(예컨대, 5초)는, 시스템이 콘텐츠의 디스플레이 위치를 변경하기 위한 옵션을 사용자에게 제공하는지 여부를 결정할 수 있다. 일부 실시예들에서, 시야의 변경은, 콘텐츠의 디스플레이 위치를 변경하기 위한 옵션들을 제공하는 것으로부터 시스템을 트리거하기 위한, 약간의 변경, 이를테면 대응하는 머리포즈 변경 임계치 미만(예컨대, 제1 시야에 대한 임의의 방향 및 그에 따른 제1 머리포즈의 방향에서 90도 미만)일 수 있다. 일부 실시예들에서, 시스템이 사용자에게 콘텐츠의 디스플레이 위치를 변경하기 위한 옵션을 제공하기 전에, 머리포즈의 변경은 머리포즈 변경 임계치보다 더 클 수 있다(예컨대, 임의의 방향으로 90도 초과). 따라서, 변경된 시야에 기반하여 콘텐츠를 디스플레이하기 위한 하나 이상의 추가적인 표면 옵션들은 변경된 시야에 대응하는 시간 임계치에 적어도 부분적으로 기반하여 디스플레이될 수 있다. 일부 실시예들에서, 사용자의 변경된 시야에 기반하여 콘텐츠를 디스플레이하기 위한 하나 이상의 추가적인 표면 옵션들은 머리포즈 변경 임계치에 적어도 부분적으로 기반하여 디스플레이될 수 있다.
[0119] 일부 실시예들에서, 시스템은 하나 이상의 제1 표면들 상에 콘텐츠를 렌더링/디스플레이할 수 있으며, 여기서 콘텐츠를 보는 사용자는 제1 머리포즈를 갖는다. 콘텐츠를 보는 사용자는 자신 및/또는 디바이스의 머리포즈를 제1 머리포즈에서 제2 머리포즈로 변경할 수 있다. 머리포즈의 변경에 대한 응답으로, 시스템은 콘텐츠를 하나 이상의 제2 표면들 상에 렌더링/디스플레이할 수 있으며, 여기서 콘텐츠를 보는 사용자는 제2 머리포즈를 갖는다. 일부 실시예들에서, 시스템은 사용자에게, 하나 이상의 제1 표면들에서 하나 이상의 제2 표면들로 콘텐츠의 렌더링/디스플레이 위치를 변경하기 위한 옵션을 제공할 수 있다. 일부 실시예들에서, 시스템은, 일단 사용자의 머리포즈가 제1 머리포즈에서 제2 머리포즈로 변경되었다면, 콘텐츠를 이동시키기 위한 옵션을 사용자에게 즉시 제공할 수 있다. 일부 실시예들에서, 시스템은, 만약 머리포즈 변경이 대응하는 머리포즈 변경 임계치(예컨대, 90도)보다 크다면, 콘텐츠의 렌더링/디스플레이 위치를 변경하기 위한 옵션을 사용자에게 제공할 수 있다. 일부 실시예들에서, 시스템은, 만약 머리포즈 변경이 임계 시간 기간(예컨대, 5초) 동안 유지되는 경우, 콘텐츠의 렌더링/디스플레이 위치를 변경하기 위한 옵션을 사용자에게 제공할 수 있다. 일부 실시예들에서, 머리포즈의 변경은, 콘텐츠의 렌더링/디스플레이 위치를 변경하기 위한 옵션을 제공하는 것으로부터 시스템을 트리거하기 위한, 약간의 변경, 이를테면 대응하는 머리포즈 변경 임계치 미만(예컨대, 90도 미만)일 수 있다.
속성들
일반적 속성
[0120] 앞서 언급된 바와 같이, 해석기(115)는 콘텐츠 엘리먼트들 각각에 대한 속성들을 식별/결정하고 저장할 수 있고, 그리고 환경 해석기(168)는 표면들 각각에 대한 속성들을 결정하고 저장할 수 있다. 콘텐츠 엘리먼트들의 속성들은 콘텐츠(110)의 콘텐츠 설계자에 의해 명시적으로 표시될 수 있거나 또는 해석기(115)에 의해 결정되거나 이와 달리 추론될 수 있다. 표면들의 속성들은 환경 해석기(168)에 의해 결정될 수 있다.
[0121] 콘텐츠 엘리먼트들 및 표면들 둘 모두가 가질 수 있는 속성들은, 예컨대, 배향, 종횡비, 디멘션, 면적(예컨대, 사이즈), 상대적인 뷰잉 포지션, 컬러, 콘트라스트, 가독성 인덱스 및/또는 시간을 포함한다. 이러한 속성들에 관한 추가적인 세부사항들이 아래에서 제공된다. 당업자는 콘텐츠 엘리먼트들 및 표면이 추가적인 속성들을 가질 수 있다는 것을 인지할 수 있다.
[0122] 콘텐츠 엘리먼트들 및 표면들에 대해, 배향 속성은 배향을 표시한다. 배향 값은 수직, 수평 및/또는 특정 각도(예컨대, 수평에 대해 0도, 수직에 대해 90도, 또는 각진 배향에 대해 0-90도의 임의의 각도)를 포함할 수 있다. 특정한 각도 배향 속성은 각도 또는 방사로 특정/결정될 수 있거나, x-축 또는 y-축에 대해 특정/결정될 수 있다. 일부 실시예들에서, 기울어진 표면은 예컨대 상이한 예술 작품들을 도시하기 위해 경사진 각도로 흐르는 콘텐츠 물 흐름을 표시하기 위해 정의될 수 있다. 일부 실시예들에서, 콘텐츠 엘리먼트들에 대해, 애플리케이션의 내비게이션 바는 배향에서 수평으로 정의되지만 특정 각도로 기울어질 수 있다.
[0123] 콘텐츠 엘리먼트들 및 표면들에 대해, 종횡비 속성은 종횡비를 표시한다. 종횡비 속성은 예컨대 4:3 또는 16:9 비율로 특정될 수 있다. 콘텐츠 엘리먼트는 콘텐츠 엘리먼트 및 대응하는 하나 이상의 표면들의 종횡비 속성에 기반하여 스케일링될 수 있다. 일부 실시예들에서, 시스템은 콘텐츠 엘리먼트들의 다른 속성들(예컨대, 디멘션 및/또는 영역)에 기반하여 콘텐츠 엘리먼트들(예컨대, 비디오들)의 종횡비를 결정하고 결정된 종횡비에 기반하여 콘텐츠 엘리먼트들을 스케일링할 수 있다. 일부 실시예들에서, 시스템은 표면들의 다른 속성들에 기반하여 표면의 종횡비를 결정할 수 있다.
[0124] 종횡비 속성 내에, 콘텐츠 엘리먼트들의 콘텐츠 설계자가 콘텐츠 엘리먼트들에 대한 특정 종횡비가 유지 또는 변경되도록 추천하기 위해 사용할 수 있는 특정 특성이 있을 수 있다. 일 예에서, 이 특정 특성이 "유지하다" 또는 유사한 키워드 또는 어구로 세팅되면, 콘텐츠 엘리먼트의 종횡비가 유지될 것이다(즉, 변경되지 않음). 일 예에서, 이 특정 속성이 예컨대 "프리" 또는 유사한 키워드 또는 어구로 세팅되면, 예컨대 콘텐츠 엘리먼트의 종횡비는 콘텐츠 엘리먼트가 매칭되는 하나 이상의 표면들의 종횡비와 매칭하도록 변경(예컨대, 스케일링 또는 다른 방식)될 수 있다. 종횡비 속성의 디폴트 값은 콘텐츠 엘리먼트의 오리지널 종횡비를 유지하는 것일 수 있으며, 만약 콘텐츠 설계자가 콘텐츠 엘리먼트의 종횡비 속성에 대해 일부 다른 값들 또는 키워드들을 지정한다면, 그리고/또는 만약 시스템이 콘텐츠 엘리먼트를 하나 이상의 표면들에 더 잘 매칭하기 위해 종횡비 속성이 오버라이팅되어야 한다고 결정한다면, 종횡비 속성의 디폴트 값이 오버라이팅될 수 있다.
[0125] 콘텐츠 엘리먼트들 및 표면들에 대해, 디멘션 속성은 디멘션을 표시한다. 콘텐츠 엘리먼트들의 디멘션 속성은 픽셀들(예컨대, 800 x 600 픽셀들)의 함수로서 콘텐츠 엘리먼트들의 디멘션을 표시할 수 있다. 표면들의 디멘션 속성은 미터(예컨대, 0.8 미터 x 0.6 미터) 또는 임의의 다른 측정 단위의 함수로서 표면들의 디멘션을 표시할 수 있다. 표면들의 디멘션 속성은 표면들의 측정 가능한 범위들을 표시할 수 있으며, 측정 가능한 범위들은 길이, 폭, 깊이 및/또는 높이를 포함할 수 있다. 콘텐츠 엘리먼트들에 대해, 디멘션 속성은 콘텐츠 엘리먼트를 디스플레이할 표면의 특정 형상 및 외부 사이즈를 제안하도록 콘텐츠 설계자에 의해 특정될 수 있다.
[0126] 콘텐츠 엘리먼트들 및 표면들에 대해, 영역 속성은 영역 또는 사이즈를 표시한다. 콘텐츠 엘리먼트들의 영역 속성은 픽셀들(예컨대, 480,000 평방 픽셀들)의 함수로서 콘텐츠 엘리먼트들의 영역을 표시할 수 있다. 표면들의 영역 속성은 미터(예컨대, .48 평방 미터) 또는 임의의 다른 측정 단위의 함수로서 표면들의 영역을 표시할 수 있다. 표면들에 대해, 영역은 사용자에 의해 지각되는 지각된 영역일 수 있거나, 또는 절대 영역일 수 있다. 지각된 영역은 콘텐츠 엘리먼트가 사용자에게 더 가깝게 디스플레이될 때 콘텐츠 엘리먼트가 더 작은 사이즈로 지각되도록 사용자로부터 디스플레이된 콘텐츠 엘리먼트의 각도 및 거리와 함께 절대 영역을 증가시킴으로써 정의될 수 있고, 콘텐츠 엘리먼트가 사용자로부터 더 멀리 있는 경우, 콘텐츠 엘리먼트가 그에 따라서 확대될 수 있어서 콘텐츠 엘리먼트가 사용자에 의해 동일한 특정 사이즈로 여전히 지각될 수 있고, 콘텐츠 엘리먼트가 사용자에게 더 가깝게 있을 때는 그 반대로 된다. 절대 영역은 환경에서 디스플레이된 콘텐츠 엘리먼트로부터의 거리에 관계없이, 예컨대 평방 미터에 의해 간단히 정의될 수 있다.
[0127] 콘텐츠 엘리먼트들 및 표면들에 대해, 상대적인 뷰잉 포지션 속성은 사용자의 머리-포즈 벡터와 관련된 포지션과 관련된다. 머리-포즈 벡터는 사용자가 착용한 머리-장착 디바이스의 포지션 및 배향의 조합일 수 있다. 포지션은 환경-감지 시스템 및/또는 사용자-감지 시스템으로부터 수신된 정보를 사용하여 실세계 좌표계에서 추적되는 사용자의 머리에 착용되는 디바이스의 고정된 포인트일 수 있다. 사용자의 머리-포즈 벡터의 배향 컴포넌트는 머리-장착 디바이스에 로컬인 3-차원 디바이스 좌표계와 3-차원 실세계 좌표계 사이의 관계에 의해 정의될 수 있다. 디바이스 좌표계는 3개의 직교 방향들: 디바이스를 통한 사용자의 전방향 시선에 근접한 전방향(forward-facing) 뷰잉 방향, 디바이스의 직립 방향 및 디바이스의 우측 방향에 의해 정의될 수 있다. 다른 레퍼런스 방향들이 또한 선택될 수 있다. 환경-감지 시스템 및/또는 사용자-감지 시스템에서 센서들에 의해 획득된 정보는 실세계 좌표계와 관련한 로컬 좌표계의 배향을 결정하는 데 사용될 수 있다.
[0128] 디바이스 좌표계를 추가로 예시하기 위해, 사용자가 디바이스를 착용하고 거꾸로 매달린 경우, 그 사용자 및 디바이스에 대한 직립 방향은 실제로 지면을 향하는 방향(예컨대, 하향 중력 방향)이다. 그러나 사용자의 관점에서, 디바이스의 상대적인 직립 방향은 여전히 사용자의 직립 방향과 정렬되며; 예컨대, 만약 사용자가 거꾸로 매달린 동안 전형적으로 최상부에서 최하부로, 왼쪽에서 오른쪽으로 책을 읽는다면, 사용자는 정상적으로 서 있고 거꾸로 매달리지 않은 다른 사람들이 실세계 좌표계에서 거꾸로 책을 홀딩하는 것으로 볼 수 있지만, 사용자의 관점에 근사한 로컬 디바이스 좌표계와 관련하여 책은 직립으로 배향된다.
[0129] 콘텐츠 엘리먼트들에 대해, 상대적인 뷰잉 포지션 속성은 콘텐츠 엘리먼트들이 머리-포즈 벡터에 대해 어떤 포지션에 디스플레이되어야 하는지를 표시할 수 있다. 표면들의 경우, 상대적인 뷰잉 포지션 속성은 사용자의 머리 포즈 벡터에 대하여 환경에서의 표면의 포지션을 표시할 수 있다. 머리-포즈 벡터의 컴포넌트 벡터, 이를테면, 전방향 뷰잉 방향 벡터는 또한 표면의 상대적인 뷰잉 포지션 속성들을 결정하기 위한 및/또는 콘텐츠 엘리먼트들에 대한 상대적 뷰잉 포지션 속성을 결정하기 위한 표준들로서 사용될 수 있다는 것이 인지될 것이다. 예컨대, 콘텐츠 설계자는 콘텐츠 엘리먼트, 이를테면 검색 바가 사용자의 머리-포즈 벡터와 관련하여 사용자의 왼쪽 또는 오른쪽으로 항상 고작 30도 이어야 하고, 만약 사용자가 30도 이상 왼쪽 또는 오른쪽으로 이동하면, 탐색 바는 사용자의 머리-포즈 벡터의 왼쪽 또는 오른쪽으로 여전히 30도 내에 있도록 조정되어야 한다는 것을 표시할 수 있다. 일부 실시예들에서, 콘텐츠는 순간적으로 조정된다. 일부 실시예들에서, 시간 임계치가 충족되면 콘텐츠가 조정된다. 예컨대, 사용자가 왼쪽 또는 오른쪽으로 30도 이상 이동하고 5초의 시간 임계치가 지난 후 서치 바가 조정되어야 한다.
[0130] 사용자의 머리-포즈 벡터에 대해 각도 또는 각도들의 범위를 유지하기 위해 상대적인 뷰잉 각도가 특정될 수 있다. 예컨대, 콘텐츠 엘리먼트, 이를테면 비디오는 사용자의 전방향 뷰잉 벡터에 대략 직교하는 표면 상에 디스플레이되어야 한다는 것을 표시하는 상대적인 뷰잉 포지션 속성을 가질 수 있다. 만약 사용자가 정면을 보면서 벽과 같은 표면 앞에 서 있다면, 사용자의 전방향 뷰잉 벡터와 관련한 벽의 상대적인 뷰잉 포지션 속성은 콘텐츠 엘리먼트들의 상대적인 뷰잉 포지션 속성 요건을 만족시킬 수 있다. 그러나 만약 사용자가 바닥을 내려다 본다면, 벽의 상대적인 뷰잉 포지션 속성은 변경되고 바닥의 상대적인 뷰잉 포지션 속성은 콘텐츠 엘리먼트의 상대적인 뷰잉 포지션 속성 요건을 더 잘 충족시킨다. 이러한 시나리오에서, 콘텐츠 엘리먼트는 벽이 아닌 바닥에 투사되도록 이동될 수 있다. 일부 실시예들에서, 상대적인 뷰잉 포지션 속성은 사용자로부터의 깊이 또는 거리일 수 있다. 일부 실시예들에서, 상대적인 뷰잉 포지션 속성은 사용자의 현재 뷰잉 포지션과 관련한 상대적인 포지션일 수 있다.
[0131] 콘텐츠 엘리먼트들 및 표면들에 대해, 컬러 속성은 컬러를 표시한다. 콘텐츠 엘리먼트들에 대해, 컬러 속성은 하나 이상의 컬러들, 컬러들이 변경될 수 있는지 여부, 불투명도 등을 표시할 수 있다. 표면들에 대해, 컬러 속성은 하나 이상의 컬러들, 컬러 그라디언트들 등을 표시할 수 있다. 컬러 속성은 콘텐츠 엘리먼트들의 가독성 및/또는 지각 / 콘텐츠 엘리먼트들이 표면들에서 어떻게 지각될 것인지와 연관될 수 있다. 일부 실시예들에서, 콘텐츠 설계자는 콘텐츠 엘리먼트의 컬러를 예컨대 백색 또는 밝은 컬러로 정의할 수 있다. 일부 실시예들에서, 콘텐츠 설계자는 시스템이 콘텐츠 엘리먼트(예컨대, 회사 로고)의 컬러를 변경하기를 원하지 않을 수 있다. 이들 실시예들에서, 시스템은 가독성을 위해 필요한 콘트라스트를 생성하기 위해 콘텐츠 엘리먼트가 디스플레이되는 하나 이상의 표면들의 배경을 변경할 수 있다.
[0132] 콘텐츠 엘리먼트들 및 표면들에 대해, 콘트라스트 속성은 콘트라스트를 표시한다. 콘텐츠 엘리먼트들에 대해, 콘트라스트 속성은 현재 콘트라스트, 콘트라스트가 변경될 수 있는지 여부, 콘트라스트가 어떻게 변경될 수 있는지에 대한 방향 등을 표시할 수 있다. 표면들의 경우, 콘트라스트 속성은 현재 콘트라스트를 표시할 수 있다. 콘트라스트 선호도 속성은 콘텐츠 엘리먼트들의 가독성 및/또는 지각 / 콘텐츠 엘리먼트들이 표면들에서 어떻게 지각될 것인지와 연관될 수 있다. 일부 실시예들에서, 콘텐츠 설계자는 콘텐츠 엘리먼트가 표면의 배경에 대해 높은 콘트라스트로 디스플레이되기를 원할 수 있다. 예컨대, 콘텐츠 엘리먼트의 버전은 컴퓨터, 스마트폰, 태블릿 등의 모니터상의 웹 페이지에 흑색 배경의 백색 텍스트로서 제공될 수 있다. 또한 백색인 텍스트 콘텐츠 엘리먼트를 디스플레이하기 위해 백색 벽이 매칭될 수 있다. 일부 실시예들에서, 시스템은 콘트라스트 속성을 만족시키기 위해 콘트라스트를 제공하기 위해 텍스트 콘텐츠 엘리먼트를 더 어두운 컬러(예컨대, 블랙)로 변경할 수 있다.
[0133] 일부 실시예들에서, 시스템은 콘텐츠 엘리먼트를 변경하지 않고 컬러 및/또는 콘트라스트 속성들을 만족시키기 위해 컬러 및/또는 콘트라스트를 제공하기 위해 표면의 배경 컬러를 변경할 수 있다. 시스템은 (실제) 표면의 위치에서 가상 표면을 생성함으로써 (실제) 표면의 배경 컬러를 변경할 수 있으며, 여기서 가상 표면의 컬러는 원하는 배경 컬러이다. 예컨대, 만약 로고의 컬러들이 변경되지 않는다면, 시스템은 로고를 보존하면서 컬러 및/또는 콘트라스트 선호도 속성을 만족시키기 위해 컬러 콘트라스트를 제공하도록 표면의 배경 컬러를 변경함으로써 충분한 콘트라스트를 제공할 수 있다.
[0134] 콘텐츠 엘리먼트들 및 표면들에 대해, 가독성 인덱스 속성은 가독성 메트릭을 표시할 수 있다. 콘텐츠 엘리먼트들의 경우, 가독성 인덱스 속성은 콘텐츠 엘리먼트에 대해 유지되어야 하는 가독성 메트릭을 표시한다. 콘텐츠 엘리먼트들에 대해, 시스템은 다른 속성들에 대한 우선순위들을 결정하기 위해 가독성 인덱스 속성을 사용할 수 있다. 예컨대, 만약 콘텐츠 엘리먼트에 대해 가독성 인덱스가 "높음"인 경우 시스템은 이러한 속성들에 대한 우선순위들을 "높음"으로 세팅할 수 있다. 일부 예들에서, 심지어 콘텐츠 엘리먼트가 초점에 있고 충분한 콘트라스트가 있더라도, 시스템은 가독성 메트릭이 유지되는 것을 보장하기 위해 가독성 인덱스 속성에 기반하여 콘텐츠 엘리먼트를 스케일링할 수 있다. 일부 실시예들에서, 특정 콘텐츠 엘리먼트의 우선순위가 "높음"으로 설정되면, 특정 콘텐츠 엘리먼트에 대한 높은 가독성 인덱스 속성 값이 다른 콘텐츠 엘리먼트들에 대한 다른 명시적인 속성보다 우선하거나 또는 우선순위를 가질 수 있다. 표면들의 경우, 가독성 인덱스 속성은 텍스트를 포함하는 콘텐츠 엘리먼트들이, 만약 표면에 디스플레이된다면, 사용자에 의해 어떻게 지각될 것인지를 표시할 수 있다.
[0135] 텍스트 시인성은 순수한 VR 환경에 대해 해결하기 어려운 문제이다. 실세계 컬러, 밝기, 조명, 반사 및 다른 능력들이 AR 디바이스에 의해 렌더링된 텍스트를 읽기 위한 사용자 능력들에 직접 영향을 미쳐서 AR 환경에서 문제점이 더욱 복잡해 진다. 예컨대, 웹 브라우저에 의해 렌더링된 웹 콘텐츠는 주로 텍스트 구동될 수 있다. 예로서, (예컨대, 현재 W3C 카메라 API의 새로운 확장을 통한) JavaScript API 세트는 콘텐츠 설계자에게 현재 세계 팔레트 및 폰트 및 배경 컬러들에 대한 콘트라스트 대안 팔레트를 제공할 수 있다. JavaScript API의 세트는 콘텐츠 설계자가 실제 단어 컬러 스키마에 따라 웹 콘텐츠 컬러 스키마를 조정하여 콘텐츠 콘트라스트 및 텍스트 시인성(예컨대, 가독성)을 개선할 수 있는 고유한 능력을 제공할 수 있다. 콘텐츠 설계자들은 웹 콘텐츠에 대한 더 나은 시인성을 제공하기 위해 폰트 컬러를 설정함으로써 이 정보를 사용할 수 있다. 이러한 API들은 이 정보를 실시간으로 추적하는 데 사용될 수 있어서 웹 페이지는 그 콘트라스트 및 컬러 스키마를 상응하게 환경의 광 변경들로 조정할 수 있다. 예컨대, 도 3a는 광 컬러 방식으로 디스플레이될 웹 콘텐츠(313)의 텍스트를 어두운 실세계 환경에 대해 판독가능하게 적어도 조정함으로써 어두운 실세계 환경의 광 및 컬러 상태들에 대해 조정되는 웹 콘텐츠(313)를 예시한다. 도 3a에 예시된 바와 같이, 웹 콘텐츠(313)의 텍스트는 밝은 컬러를 가지며, 웹 콘텐츠(313)의 배경은 어두운 컬러를 갖는다. 도 3b는 어두운 광 컬러 방식으로 디스플레이될 웹 콘텐츠(315)의 텍스트를 밝은 실세계 환경에 대해 판독가능하게 적어도 조정함으로써 밝은 실세계 환경의 광 및 컬러 상태들에 대해 조정되는 웹 콘텐츠(315)를 예시한다. 도 3b에 예시된 바와 같이, 웹 콘텐츠(315)의 텍스트는 어두운 컬러를 가지며, 웹 콘텐츠(313)의 배경은 밝은 컬러를 갖는다. 당업자는 예컨대 웹 콘텐츠(313)의 배경 컬러(예컨대, 더 어두운 배경 및 더 밝은 텍스트) 또는 웹 콘텐츠(315)(예컨대, 더 밝은 배경 및 더 어두운 텍스트)와 같은 다른 팩터들이 실세계 환경의 광 및 컬러 조건들에 적어도 부분적으로 기반하여 텍스트가 더욱 판독가능할 수 있도록 컬러의 콘트라스트를 제공하기 위해 또한 조정될 수 있음을 이해할 수 있다.
[0136] 콘텐츠 엘리먼트들의 경우, 시간 속성은 콘텐츠 엘리먼트가 얼마나 오래 표시되어야 하는지를 표시한다. 시간 속성은 짧음(예컨대, 5 초 미만), 중간(예컨대, 5 초 내지 30 초 사이), 김(예컨대, 30 초 초과)일 수 있다. 일부 실시예들에서, 시간 속성은 무한할 수 있다. 만약 시간 속성이 무한대인 경우, 콘텐츠 엘리먼트는 취소 및/또는 또 다른 콘텐츠 엘리먼트가 로드될 때까지 유지될 수 있다. 일부 실시예들에서, 시간 속성은 입력의 함수일 수 있다. 일 예에서, 만약 콘텐츠 엘리먼트가 기사인 경우, 시간 속성은 사용자가 기사의 끝에 도달하여 임계 시간 기간 동안 거기에 머무르는 것을 표시하는 입력 함수일 수 있다. 일예에서, 만약 콘텐츠 엘리먼트가 비디오인 경우, 시간 속성은 사용자가 비디오의 끝에 도달했음을 표시하는 입력의 함수일 수 있다.
[0137] 표면들의 경우, 시간 속성은 표면이 얼마나 오랫동안 이용 가능한지를 표시한다. 시간 속성은 짧음(예컨대, 5 초 미만), 중간(예컨대, 5 초 내지 30 초 사이), 김(예컨대, 30 초 초과)일 수 있다. 일부 실시예들에서, 시간 속성은 무한할 수 있다. 일부 실시예들에서, 시간 속성은 예컨대, 센서(들)(162)로부터의 센서 입력의 함수일 수 있다. 센서(들)(162), 예컨대 IMU, 가속도계, 자이로 스코프 등으로부터 입력된 센서는 디바이스의 시야에 대한 표면의 이용 가능성을 예측하는 데 사용될 수 있다. 일 예에서, 만약 사용자가 걷고 있다면, 사용자 근처의 표면들은 짧은 시간 속성을 가질 수 있고, 사용자로부터 조금 더 떨어진 표면들은 중간 시간 속성을 가질 수 있으며, 멀리 떨어진 표면은 긴 시간 속성을 가질 수 있다. 일 예에서, 만약 사용자가 코치에 유휴 상태로 앉아 있는 경우, 사용자 앞의 벽은 임계치보다 큰 데이터의 변화가 센서(들)(162)로부터 수신될 때까지 - 그 후 사용자 앞 벽의 시간 속성은 무한대에서 다른 값으로 변할 수 있음 - 무한 시간 속성을 가질 수 있다.
콘텐츠 엘리먼트 속성들
[0138] 콘텐츠 엘리먼트들은 예컨대 우선순위, 표면들의 타입, 포지션 타입, 마진, 콘텐츠의 타입 및/또는 초점의 속성과 같은 콘텐츠 엘리먼트들에 특징적인 속성들을 가질 수 있다. 이들 속성들에 관한 추가적인 세부사항들이 아래에 제공된다. 당업자는 콘텐츠 엘리먼트들이 추가적인 속성들을 가질 수 있음을 인지할 수 있다.
[0139] 우선순위 속성은 콘텐츠 엘리먼트(예컨대, 비디오, 사진 또는 텍스트)에 대한 우선순위 값을 표시한다. 우선순위 값은 예컨대 0-100 범위의 숫자 값인 높은, 중간 또는 낮은 우선순위 및/또는 요구된 또는 요구되지 않은 표시자를 포함할 수 있다. 일부 실시예들에서, 우선순위 값이 콘텐츠 엘리먼트 자체에 대해 특정될 수 있다. 일부 실시예들에서, 우선순위 값이 특정한 속성들에 대해 특정될 수 있다. 예컨대, 콘텐츠 엘리먼트에 대한 가독성 인덱스 속성은 높게 설정될 수 있으며, 이는 콘텐츠 설계자가 콘텐츠 엘리먼트의 가독성에 중점을 두었음을 표시한다.
[0140] 표면 속성의 타입 또는 "표면 타입" 속성은 콘텐츠 엘리먼트가 매칭되어야 하는 표면의 타입을 표시한다. 표면 타입 속성은 특정 콘텐츠 엘리먼트들이 특정 위치들 및/또는 특정 표면들에 배치되어야 하는지의 여부와 같은 의미론에 기반할 수 있다. 일부 예들에서, 콘텐츠 설계자는 특정 콘텐츠 엘리먼트를 윈도우 또는 그림 위에 디스플레이하지 말 것을 제안할 수 있다. 일부 예들에서, 콘텐츠 설계자는 실질적으로 사용자 앞에서 가장 큰 수직 표면 상에 특정 콘텐츠 엘리먼트를 항상 디스플레이하도록 제안할 수 있다.
[0141] 포지션 타입 속성은 콘텐츠 엘리먼트의 포지션을 표시한다. 포지션 타입 속성은 동적이거나 고정적일 수 있다. 예컨대, 동적 포지션 타입은 콘텐츠 엘리먼트가 사용자의 손에 부착되어 사용자의 손이 이동될 때 콘텐츠 엘리먼트가 사용자의 손과 함께 동적으로 이동하도록 가정할 수 있다. 고정된 포지션 타입은, 예컨대 콘텐츠 엘리먼트가 표면, 사용자의 신체 또는 머리/뷰 포지션에 대한 환경 또는 가상 세계의 특정한 포지션에 대해 고정된 것으로 가정하고, 그 예들이 다음과 같이 더욱 상세하게 설명된다.
[0142] (a) 세계 고정, (b) 오브젝트/표면 고정, (c) 바디 고정, 및 (d) 머리 고정과 같은 상이한 레벨들의 "고정"이라는 용어가 또한 있을 수 있다. (a) 세계 고정의 경우, 콘텐츠 엘리먼트는 세계에 대해 고정된다. 예컨대, 만약 사용자가 세계를 이동하면, 콘텐츠 엘리먼트는 이동하지 않고 세계에 대한 위치에 고정되어 있다. (b) 오브젝트/표면 고정의 경우, 콘텐츠 엘리먼트는, 만약 오브젝트 또는 표면이 이동된 경우, 콘텐츠 엘리먼트가 객체 또는 표면과 함께 이동하도록 객체 또는 표면에 고정된다. 예컨대, 콘텐츠 엘리먼트는 사용자가 홀딩하고 있는 노트패드에 고정될 수 있다. 이 경우, 콘텐츠는 노트패드의 표면에 고정된 오브젝트이며, 그에 따라서 노트패드와 함께 이동한다. (c) 신체 고정의 경우, 콘텐츠 엘리먼트는 사용자의 신체에 대해 고정된다. 만약 사용자가 자신의 몸을 이동하면, 콘텐츠 엘리먼트는 사용자의 신체에 대해 고정된 포지션을 유지하기 위해 사용자와 함께 이동한다. (d) 머리 고정의 경우, 콘텐츠 엘리먼트는 사용자의 머리 또는 포즈에 대해 고정된다. 만약 사용자가 자신의 머리를 돌리면, 콘텐츠 엘리먼트가 사용자의 머리 움직임에 대해 이동할 것이다. 또한, 만약 사용자가 걸으면, 콘텐츠 엘리먼트도 또한 사용자의 머리에 대해 이동할 것이다.
[0143] 마진(또는 패딩) 속성은 콘텐츠 엘리먼트 주위의 마진을 표시한다. 마진 속성은 다른 콘텐츠 엘리먼트들에 대해 콘텐츠 엘리먼트들의 배치를 설명하는 레이아웃 속성이다. 예컨대, 마진 속성은 콘텐츠 엘리먼트 경계들로부터 다른 내용 엘리먼트의 가장 가까운 허용 경계까지의 거리를 표현한다. 일부 실시예들에서, 거리는 x, y, z 좌표-기반 마진이고, 콘텐츠 엘리먼트 경계들의 정점들 또는 다른 지정된 위치로부터 측정될 수 있고; 일부 실시예들에서, 거리는 극좌표-기반 마진이며, 콘텐츠 엘리먼트의 중심 또는 콘텐츠 엘리먼트의 정점들과 같은 다른 지정된 위치들로부터 측정될 수 있다. 일부 실시예들에서, 마진 속성은 콘텐츠 엘리먼트로부터 콘텐츠 엘리먼트 내부의 실제 콘텐츠까지의 거리를 정의한다. 일부 실시예들에서, 이를테면 분해된 콘텐츠 엘리먼트의 경우, 마진 속성은 분해된 콘텐츠 엘리먼트가 매칭되는 표면들의 경계들에 대해 마진이 얼마나 유지되어야 하는지를 나타내어서, 마진은 콘텐츠 엘리먼트와 매칭된 표면 간의 오프셋으로서 기능한다. 일부 실시예들에서, 마진 속성은 콘텐츠 엘리먼트 자체로부터 추출될 수 있다.
[0144] 콘텐츠의 타입 속성 또는 "콘텐츠 타입" 속성은 콘텐츠 엘리먼트에 대한 타입을 표시한다. 콘텐츠 타입은 레퍼런스 및/또는 대응하는 미디어에 대한 링크를 포함할 수 있다. 예컨대, 콘텐츠 타입 속성은 콘텐츠 엘리먼트를 이미지, 비디오, 음악 파일, 텍스트 파일, 비디오 이미지, 3D 이미지, 3D 모델, 컨테이너 콘텐츠(예컨대, 컨테이너 내에 랩핑될 수 있는 임의의 콘텐츠), 광고 및/또는 콘텐츠 설계자 정의된 렌더링 캔버스(예컨대, 2D 캔버스 또는 3D 캔버스)로서 특정할 수 있다. 콘텐츠 설계자 정의 렌더링 캔버스는 예컨대 게임들, 렌더링들, 맵들, 데이터 시각화들 등을 포함할 수 있다. 광고 콘텐츠 타입은, 사용자가 특정 콘텐츠 엘리먼트에 초점을 맞추거나 그 근처에 있을 때, 사운드 또는 광고가 사용자에게 제시되어야 하는 것을 정의하는 속성들을 포함할 수 있다. 광고는: (a) 징글과 같은 청각, (b) 비디오/이미지/텍스트와 같은 시각 정보 및/또는 (c) 사용자의 제어기 또는 헤드셋에서의 진동과 같은 촉각 표시자 등일 수 있다.
[0145] 초점 속성은 콘텐츠 엘리먼트에 초점이 맞춰져야 하는지 여부를 표시한다. 일부 실시예들에서, 초점은 콘텐츠 엘리먼트가 디스플레이되는 표면 및 사용자로부터의 거리의 함수일 수 있다. 만약 콘텐츠 엘리먼트에 대한 초점 속성이 항상 초점이 맞춰지는 것으로 세팅된다면, 시스템은 사용자가 콘텐츠 엘리먼트로부터 아무리 멀리 떨어져 있더라도 콘텐츠 엘리먼트에 초점이 맞춰지도록 유지한다. 만약 콘텐츠 엘리먼트에 대한 초점 속성이 특정되지 않는다면, 시스템은 사용자가 콘텐츠 엘리먼트로부터 특정 거리에 있을 때 콘텐츠를 초점에서 벗어나게 할 수 있다. 이는 콘텐츠 엘리먼트의 다른 속성들, 이를테면, 예컨대 치수 속성, 영역 속성, 상대적인 뷰잉 포지션 속성 등에 의존할 수 있다.
표면 속성들
[0146] 표면들은 표면들에 특정적인 속성들, 이를테면, 예컨대 표면 윤곽, 텍스처, 및/또는 점유 속성들을 가질 수 있다. 이러한 속성들에 관한 추가적인 세부사항들은 아래에서 제공된다. 당업자는 표면들이 추가적인 속성들을 가질 수 있음을 인지할 수 있다.
[0147] 일부 실시예들에서, 환경 해석기(168)는 하나의 표면 및/또는 모든 표면들에 대한 표면 법선 벡터들, 배향 벡터들 및/또는 업라이트 벡터(upright vector)들과 같은 표면 윤곽 속성들 (및 연관된 속성들)을 결정할 수 있다. 3D 경우에서, 포인트 P에서의 표면에 대한 표면 법선, 또는 단순히 법선은 포인트 P에서의 표면에 대한 접평면에 수직인 벡터이다. 용어 "법선(normal)"은 또한 형용사로서 사용될 수 있다; 평면에 수직인(normal) 라인, 힘에 대한 수직 성분, 법선 벡터 등.
[0148] 상기 논의된, 사용자를 둘러싸는 환경 표면들의 표면 법선 벡터들 및 머리-포즈 벡터의 적어도 하나의 컴포넌트는 매칭 모듈(142)에 중요할 수 있는데, 왜냐하면 표면들의 특정 속성들(예컨대, 사이즈, 텍스처, 종횡비 등)이 특정 콘텐츠 엘리먼트들(예컨대, 비디오, 3-차원 모델들, 텍스트 등)을 디스플레이하는 데 이상적일 수 있기는 하지만, 그러한 표면들은 사용자의 머리-포즈 벡터의 적어도 하나의 컴포넌트 벡터에 의해 근사되는 바와 같이 사용자의 시선에 대하여 대응하는 표면 법선의 불량한 포지셔닝을 가질 수 있기 때문이다. 표면 법선 벡터들을 사용자의 머리-포즈 벡터와 비교함으로써, 디스플레이되는 콘텐츠에 대해 그렇지 않으면 적합했을 수 있는 표면들이 실격되거나 필터링될 수 있다.
[0149] 예컨대, 표면의 표면 법선 벡터는 사용자의 머리-포즈 벡터와 실질적으로 동일한 방향일 수 있다. 이는 사용자와 표면들이 서로를 향하기보다는 동일한 방향(way)을 향하고 있음을 의미한다. 예컨대, 만약 사용자의 전방향 방향이 북쪽을 향하고 있다면, 북쪽을 가리키는 법선 벡터를 갖는 표면이 사용자의 뒷쪽을 향하고 있거나, 또는 사용자가 표면의 뒷쪽을 향하고 있다. 만약 표면이 사용자를 등지고 있어서 사용자가 표면을 볼 수 없다면, 그 특정 표면은, 존재할 수 있는 그러한 표면에 대한 유리한 속성 값들에도 불구하고, 콘텐츠를 디스플레이하기에 최적의 표면이 아닐 것이다.
[0150] 사용자의 전방향 뷰잉 방향에 근사하는 디바이스의 전방향 뷰잉 벡터와 표면 법선 벡터 간의 비교는 수치 값을 제공할 수 있다. 예컨대, 내적 함수를 사용하여, 2개의 벡터들을 비교하고, 그리고 2개의 벡터들 간의 상대적인 각도를 설명하는 수치 관계를 결정할 수 있다. 이러한 계산은 1과 -1 사이의 숫자를 산출할 수 있는데(더 음의 값들은 뷰잉에 더 유리한 상대적인 각도들에 대응함), 왜냐하면 표면이 사용자의 전방향 뷰잉 방향에 대해 직교에 가까워서, 그 표면 상에 배치된 가상 콘텐츠를 사용자가 편안하게 볼 수 있게 될 것이기 때문이다. 따라서, 식별된 표면 법선 벡터들에 기반하여, 양호한 표면 선택을 위한 특징들은 사용자의 머리-포즈 벡터 또는 그 컴포넌트들에 상대적일 수 있어서, 콘텐츠는 사용자의 전방향 뷰잉 벡터를 향하는 표면 상에 디스플레이되어야 한다. 머리-포즈 벡터 컴포넌트들과 표면 법선 컴포넌트들 간의 용인가능한 관계에 제약들이 있을 수 있음이 인지될 것이다. 예컨대, 사용자의 전방향 뷰잉 벡터와 음의 내적을 산출하는 모든 표면들이 콘텐츠 디스플레이를 위해 고려될 수 있는 것이 선택될 수 있다. 콘텐츠에 의존하여, 콘텐츠 제공자 또는 알고리즘 또는 사용자 선호도가 고려될 수 있으며, 이는 용인가능한 범위에 영향을 미친다. 비디오가 사용자의 전방향 방향에 대해 실질적으로 수직으로 디스플레이될 필요가 있는 경우들에서는, 더 작은 범위의 내적 출력들이 허용될 수 있다. 당업자는 다른 표면 속성들, 사용자 선호도들, 콘텐츠 속성들 등에 의존하여 많은 설계 옵션들이 가능하다는 것을 인지할 것이다.
[0151] 일부 실시예들에서, 표면은 사이즈 및 위치 및 머리-포즈 관점으로부터 크게 적합할 수 있지만, 표면은 텍스처 속성 및/또는 점유 속성과 같은 속성들을 포함할 수 있기 때문에 그러한 표면은 선택을 위한 양호한 옵션이 아닐 수 있다. 텍스처 속성은, 프리젠테이션에 이상적이지 않은 어수선한 표면에 제공하기 위해 깨끗하고 맑은 표면의 단순한 외관을 변경할 수 있는 재료 및/또는 설계를 포함할 수 있다. 예컨대, 벽돌 벽은 콘텐츠를 디스플레이하기에 이상적인 큰 빈 영역을 가질 수 있다. 그러나, 벽돌 벽에서의 적색의 스택된 벽돌들 때문에, 시스템은 벽돌 벽을 콘텐츠를 직접적으로 디스플레이하기에 바람직하지 않은 것으로 볼 수 있다. 이는, 표면의 텍스처가 벽돌과 모르타르(mortar) 간의 거칠기 변동, 및 콘텐츠와의 더 강한 콘트라스트 문제(contrast complication)들을 유도할 수 있는 비-중립적인 적색 컬러를 갖기 때문이다. 다른 원하지 않는 텍스처의 예는, 표면 거칠기 변동들을 생성하는 불균일한 애플리케이션 또는 기포들과 같은 결함들뿐만 아니라, 배경 설계 패턴 및 컬러들에 대한, 벽지 설계를 갖는 표면을 포함할 수 있다. 일부 실시예들에서, 벽지 설계는 많은 패턴들 및/또는 컬러들을 포함할 수 있어서, 벽지 위에 직접적으로 콘텐츠를 디스플레이하는 것은 콘텐츠를 유리한 뷰로 디스플레이하지 못할 수 있다. 점유 속성은 표면이 현재 다른 콘텐츠에 의해 점유되어 있음을 표시할 수 있으며, 그에 따라, 표면이 점유되었음을 표시하는 값을 갖는 특정 표면에 추가적인 콘텐츠를 디스플레이하게 되면, 새로운 콘텐츠가 점유 콘텐츠 위에 디스플레이되지 않게 야기하거나 또는 그 반대일 수 있다. 일부 실시예들에서, 점유 속성은 표면을 점유하는 작은 실세계 결함들 또는 오브젝트들의 존재를 나타낸다. 그러한 점유하는 실세계 오브젝트들은, 센서 스위트(162) 내의 깊이 센서에 분별될 수 없지만 센서들(162) 내의 카메라들에 의해 눈에 띄는 무시할 수 있는 표면적의 아이템들(이를테면, 크랙들 또는 네일들)을 포함할 수 있다. 다른 점유하는 실세계 오브젝트들은, 자신들이 배치된 표면과 낮은 텍스처 변동을 갖고, 표면과 상이한 것으로 일부 센서들(162)에 의해 구별되지 못할 수 있지만, 162의 카메라들이 인식할 수 있는, 벽들에 걸려있는 그림들 또는 포스터들을 포함할 수 있으며, 그리고 점유 속성은, 표면이 "빈 캔버스"인 것으로 시스템이 결정하는 것을 막기 위해 표면을 그에 따라 업데이트한다.
[0152] 일부 실시예들에서, 콘텐츠는, 그 상대적인 포지션이 (실제) 표면에 관련되는 가상 표면 상에 디스플레이될 수 있다. 예컨대, 만약 표면이 간단하거나/깨끗하지 않다고 텍스처 속성이 표시하고 그리고/또는 표면이 점유되어 있다고 점유 속성이 표시한다면, 콘텐츠는, 예컨대 마진 속성 공차 내에서, (실제) 표면 앞에 있는 가상 표면 상에 디스플레이될 수 있다. 일부 실시예들에서, 콘텐츠 엘리먼트에 대한 마진 속성은 표면의 점유 속성 및/또는 텍스처 속성의 함수이다.
흐름들
표면들에 대한 콘텐츠 엘리먼트들의 매칭(하이 레벨)
[0153] 도 4는 일부 실시예들에 따른, 콘텐츠 엘리먼트들을 표면들에 매칭하기 위한 방법을 예시하는 흐름도이다. 방법은, 콘텐츠를 수신하는 단계(410), 콘텐츠에서 콘텐츠 엘리먼트들을 식별하는 단계(420), 표면들을 결정하는 단계(430), 콘텐츠 엘리먼트들을 표면들에 매칭하는 단계(440), 및 매칭된 표면들 상에 콘텐츠 엘리먼트들을 가상 콘텐츠로서 렌더링하는 단계(450)를 포함한다. 해석기(115)는 콘텐츠(110)를 수신한다(410). 해석기(115)는 콘텐츠(110)에서 콘텐츠 엘리먼트들을 식별한다(420). 해석기(115)는 콘텐츠 엘리먼트들 각각에 대한 속성들을 식별/결정하고 저장할 수 있다. 환경 해석기(168)는 환경에서 표면들을 결정한다(430). 환경 해석기(168)는 표면들 각각에 대한 속성들을 결정 및 저장할 수 있다. 일부 실시예들에서, 환경 해석기(168)는 환경에서 표면들을 계속해서 결정한다(430). 일부 실시예들에서, 환경 해석기(168)는, 해석기(115)가 콘텐츠(110)를 수신하고(410) 그리고/또는 콘텐츠(110)에서 콘텐츠 엘리먼트들을 식별할 때(420), 환경에서 표면들을 결정한다(430). 매칭 모듈(142)은 콘텐츠 엘리먼트들의 속성들 및 표면들의 속성들에 기반하여, 콘텐츠 엘리먼트들을 표면들에 매칭한다(440). 렌더링 모듈(146)은 콘텐츠 엘리먼트들을 자신들의 매칭된 표면들에 렌더링한다(450). 저장 모듈(152)은, 미래의 사용을 위해, 이를테면, 미래에 그러한 표면 상에 콘텐츠 엘리먼트들을 배치하기 위해 사용자 지정에 의해 표면들을 등록한다. 일부 실시예들에서, 저장 모듈(152)은 지각 프레임워크(166) 내에 있을 수 있다.
콘텐츠에서 콘텐츠 엘리먼트들의 식별
[0154] 도 5는 일부 실시예들에 따른, 콘텐츠에서 콘텐츠 엘리먼트들을 식별하기 위한 방법을 예시하는 흐름도이다. 도 5는 일부 실시예들에 따른, 도 4의 콘텐츠에서 엘리먼트들을 식별하는 단계(420)를 개시하는 상세한 흐름이다. 방법은, 도 4의 콘텐츠에서 엘리먼트들을 식별하는 단계(420)와 유사한, 콘텐츠 내의 콘텐츠 엘리먼트들을 식별하는 단계(510)를 포함한다. 방법은 속성들을 식별/결정하는 다음 단계(520)로 진행된다. 예컨대, 속성들은 콘텐츠의 배치와 관련된 태그들로부터 식별/결정될 수 있다. 예컨대, 콘텐츠 설계자는, 콘텐츠를 설계 및 구성하는 동안, (위에서 설명된) 속성들을 사용하여 콘텐츠 엘리먼트들을 디스플레이하기 위한 위치 및 방법을 정의할 수 있다. 속성들은 서로에 대한 특정 장소들에서의 콘텐츠 엘리먼트들의 배치와 관련될 수 있다. 일부 실시예들에서, 속성들을 식별/결정하는 단계(520)는 속성들을 추론하는 것을 포함할 수 있다. 예컨대, 콘텐츠 엘리먼트들 각각의 속성들은, 서로에 대한 콘텐츠 내에서의 콘텐츠 엘리먼트들의 배치에 기반하여 결정 또는 추론될 수 있다. 각각의 콘텐츠 엘리먼트로부터 힌트들/태그들을 추출하는 단계는 530에서 수행된다. 힌트들 또는 태그들은, 콘텐츠의 콘텐츠 설계자에 의해 제공되는 포맷팅 힌트들 또는 포맷팅 태그들일 수 있다. 콘텐츠 엘리먼트들에 대한 대안적 디스플레이 형태들을 룩업/서치하는 단계는 540에서 수행된다. 특정 뷰잉 디바이스 상에 디스플레이되는 콘텐츠 엘리먼트들에 대해 특정 포맷팅 규칙들이 특정될 수 있다. 예컨대, 특정 포맷팅 규칙들은 웹 페이지 상의 이미지에 대해 특정될 수 있다. 시스템은 대안적 디스플레이 형태들에 액세스할 수 있다. 식별된 콘텐츠 엘리먼트들을 저장하는 단계는 550에서 수행된다. 방법은, 콘텐츠 엘리먼트들을 표면들에 매칭하기 위해 합성 프로세스(140)에서 사용되도록, 식별된 엘리먼트들을 비-일시적 스토리지 매체에 저장할 수 있다. 일부 실시예들에서, 콘텐츠 엘리먼트들은 일시적 스토리지 매체에 저장될 수 있다.
환경에서 표면들의 결정
[0155] 도 6은 일부 실시예들에 따른, 사용자의 환경으로부터 표면들을 결정하기 위한 방법을 예시하는 흐름도이다. 도 6은 도 4의 430에서의 표면들을 결정하는 단계를 개시하는 예시적인 상세한 흐름도이다. 도 6은 610에서 표면들을 결정하는 단계로 시작된다. 610에서 표면들을 결정하는 단계는, 센서들(162) 중 깊이 센서로부터 환경의 깊이 정보를 수집하고 그리고 재구성 및/또는 표면 분석을 수행하는 것을 포함할 수 있다. 일부 실시예들에서, 센서들(162)은 포인트들의 맵을 제공하며, 그리고 시스템(100)은 포인트들 사이에 일련의 연결된 정점들을 재구성하여, 환경을 나타내는 가상 메시를 생성한다. 일부 실시예들에서, 공통 표면을 나타내는 메시 특성들 또는 표면이 무엇일 수 있는지(예컨대, 벽, 천장 등)의 해석을 결정하기 위해 평면 추출 또는 분석이 수행된다. 방법은 620에서 사용자의 포즈를 결정하는 다음 단계로 진행되는데, 이는 센서들(162)로부터 머리-포즈 벡터를 결정하는 것을 포함할 수 있다. 일부 실시예들에서, 센서들(162)은 IMU(inertial measurement unit) 데이터를 수집하여 사용자의 디바이스의 회전을 결정하고, 일부 실시예들에서, 센서들(162)은 실세계에 대한 사용자의 디바이스의 포지션을 결정하기 위해 카메라 이미지들을 수집한다. 일부 실시예들에서, IMU와 카메라 이미지 데이터 중 하나 또는 둘 다로부터 머리-포즈 벡터가 도출된다. 620에서 사용자의 포즈를 결정하는 단계는 표면들을 식별하기 위한 중요한 단계인데, 왜냐하면 사용자의 포즈는 표면들에 관하여 사용자에 대한 관점을 제공할 것이기 때문이다. 630에서, 방법은 표면들의 속성들을 결정한다. 각각의 표면은 대응하는 속성들로 태깅 및 분류된다. 이 정보는, 콘텐츠 엘리먼트들과 표면들을 매칭할 때 사용될 것이다. 일부 실시예들에서, 도 1로부터의 센서(들)(162)는 프로세싱을 위해 원시 데이터를 CVPU(164)에 제공하며, 그리고 CVPU(164)는 환경 해석기(168)에 대한 데이터를 준비하기 위해, 프로세싱된 데이터를 지각 프레임워크(166)에 제공한다. 환경 해석기(168)는 지각 프레임워크(166)로부터의 환경 데이터를 해석하여, 환경에서의 표면들 및 대응하는 속성들을 결정한다. 640에서, 방법은 추출되는 엘리먼트들을 특정 표면들에 매칭/맵핑하기 위해 합성 프로세스/매칭/맵핑 루틴에 의해 사용되도록 표면들의 목록을 비-일시적 스토리지 매체에 저장한다. 비-일시적 스토리지 매체는 데이터 스토리지 디바이스를 포함할 수 있다. 결정된 표면들은 특정 테이블, 이를테면 아래에 설명되는 도 15에 개시된 테이블에 저장될 수 있다. 일부 실시예들에서, 식별된 표면들은 일시적 스토리지 매체에 저장될 수 있다. 일부 실시예들에서, 640에서의 저장하는 단계는 콘텐츠 엘리먼트들의 미래의 매칭을 위해 바람직한 표면으로서 표면을 지정하는 것을 포함한다.
표면들에 대한 콘텐츠 엘리먼트들의 매칭(세부사항)
[0156] 도 7a-7b는 콘텐츠 엘리먼트들을 표면들에 매칭하기 위한 다양한 방법들을 예시하는 흐름도들이다.
[0157] 도 7a는 일부 실시예들에 따른, 콘텐츠 엘리먼트들을 표면들에 매칭하기 위한 방법을 예시하는 흐름도를 묘사한다. 도 7a는 도 4의 440에서의 콘텐츠 엘리먼트들을 표면들에 매칭하는 단계를 개시하는 상세한 흐름이다.
[0158] 710에서, 방법은 식별된 콘텐츠 엘리먼트가 콘텐츠 설계자에 의해 제공되는 힌트들을 포함하는지 여부를 결정한다. 콘텐츠 설계자는 콘텐츠 엘리먼트를 최상으로 디스플레이할 위치에 대한 힌트들을 제공할 수 있다.
[0159] 일부 실시예들에서, 이는, 기존 태그 엘리먼트들(예컨대, HTML 태그 엘리먼트들)을 사용하여, 만약 3D 환경이 이용가능하다면 콘텐츠 엘리먼트가 디스플레이될 수 있는 방법을 추가로 정의함으로써, 달성될 수 있다. 다른 예로서, 콘텐츠 설계자는, 특정 콘텐츠 엘리먼트에 대한 자원으로서 2D 이미지 대신 3D 이미지가 이용가능하다는 것을 나타내는 힌트를 제공할 수 있다. 예컨대, 2D 이미지의 경우, 콘텐츠 설계자는, 콘텐츠 엘리먼트에 대한 자원을 식별하기 위한 기본 태그들을 제공하는 것 외에도, 2D 이미지에 대응하는 3D 이미지를 포함하는 자원을 식별하기 위해 드물게 사용되는 다른 태그들을 제공할 수 있고, 그리고 게다가, 만약 3D 이미지가 사용된다면, 이를 사용자의 뷰 앞에 눈에 띄게 디스플레이하기 위한 힌트를 제공할 수 있다. 일부 실시예들에서, 콘텐츠 설계자는, 콘텐츠를 렌더링하는 디스플레이 디바이스가 3D 이미지를 레버리징(leverage)하기 위한 3D 디스플레이 기능성들을 갖지 못할 수 있는 경우를 대비하여, 2D 이미지의 자원에 대한 이러한 추가적인 '힌트'를 제공할 수 있다.
[0160] 720에서, 방법은 콘텐츠 엘리먼트들을 표면들에 매칭/맵핑하기 위해, 콘텐츠 설계자에 의해 제공되는 힌트들을 사용할지 또는 사전-정의된 규칙들의 세트들을 사용할지 여부를 결정한다. 일부 실시예들에서, 특정 콘텐츠 엘리먼트에 대해 콘텐츠 설계자에 의해 제공되는 힌트들이 없는 경우, 시스템 및 방법은 사전-정의된 규칙들의 세트를 사용하여, 특정 콘텐츠 엘리먼트를 표면들에 매칭/맵핑하기 위한 최상의 방법을 결정할 수 있다. 일부 실시예들에서, 콘텐츠 설계자에 의해 제공되는 콘텐츠 엘리먼트에 대한 힌트들이 있을 수 있는 경우에도, 시스템 및 방법은 콘텐츠 엘리먼트들을 표면들에 매칭/맵핑하기 위해 사전-정의된 규칙들의 세트들을 사용하는 것이 최상일 수 있다고 결정할 수 있다. 예컨대, 만약 콘텐츠 제공자가 비디오 콘텐츠를 수평 표면 상에 디스플레이하기 위한 힌트를 제공하지만, 시스템이 비디오 콘텐츠를 수직 표면 상에 디스플레이하도록 사전-정의된 규칙에 대해 세팅된다면, 사전-정의된 규칙은 힌트를 오버라이딩할 수 있다. 일부 실시예들에서, 시스템 및 방법은 콘텐츠 설계자에 의해 제공되는 힌트들이 충분하다고 결정하고, 그에 따라, 힌트들을 사용하여 콘텐츠 엘리먼트들을 표면들에 매칭/맵핑할 수 있다. 결국, 콘텐츠 엘리먼트들을 표면들에 매칭/맵핑하기 위해, 사전-정의된 규칙들을 사용할지 또는 콘텐츠 설계자에 의해 제공되는 힌트들을 사용할지 여부를 결정하는 것은 시스템의 궁극적인 결정이다.
[0161] 730에서, 만약 시스템이 콘텐츠 설계자에 의해 제공되는 힌트들을 활용한다면, 시스템 및 방법은 힌트들을 분석하고, 그리고 힌트에 적어도 부분적으로 기반하여 특정 콘텐츠 엘리먼트를 디스플레이하는 데 사용될 수 있는 식별된 주변 표면들을 포함하는 논리 구조들을 서치한다.
[0162] 740에서, 시스템 및 방법은 최적합 알고리즘을 실행하여, 제공된 힌트들에 기반하여 특정 콘텐츠 엘리먼트에 대한 최적합 표면을 선정한다. 최적합 알고리즘은, 예컨대, 직접적인 뷰를 제안하는 특정 콘텐츠 엘리먼트에 대한 힌트를 취해서, 사용자 및/또는 디바이스의 현재 시야에 대해 정면과 중심에 있는 표면들을 식별하고자 시도할 수 있다.
[0163] 750에서, 시스템 및 방법은, 콘텐츠 엘리먼트들과 표면들의 매칭들을 갖는 매칭 결과들을 저장한다. 테이블은, 콘텐츠 엘리먼트들을 자신들의 매칭된/맵핑된 표면들 상에 각각 디스플레이하기 위해 디스플레이 알고리즘에 의해 사용되도록, 비-일시적 스토리지 매체에 저장될 수 있다.
[0164] 도 7b는 일부 실시예들에 따른, 콘텐츠 엘리먼트들로부터의 엘리먼트들을 표면들에 매칭/맵핑하기 위한 방법을 예시하는 흐름도를 묘사한다. 도 7b는 도 1의 다양한 엘리먼트들을 참조하여 도 4의 단계(440)에서 개시된 바와 같이, 논리 구조들에 저장된 표면들과 논리 구조들에 저장된 콘텐츠 엘리먼트들의 매칭/맵핑을 예시하는 흐름이다.
[0165] 715에서, 도 1의 콘텐츠 구조화 프로세스(120)로부터 기인하는 논리 구조들에 저장된 콘텐츠 엘리먼트들은 연관된 우선순위들에 기반하여 정렬된다. 일부 실시예들에서, 콘텐츠 설계자는 각각의 콘텐츠 엘리먼트에 대한 우선순위 속성들을 정의할 수 있다. 특정 콘텐츠 엘리먼트들이 환경 내에서 눈에 띄게 디스플레이되도록 보장하기 위해 콘텐츠 설계자가 각각의 콘텐츠 엘리먼트에 대한 우선순위를 세팅하는 것이 유리할 수 있다. 일부 실시예들에서, 예컨대, 콘텐츠 설계자가 콘텐츠 엘리먼트에 대한 우선순위를 정의하지 않았다면, 콘텐츠 구조화 프로세스(120)가 콘텐츠 엘리먼트에 대한 우선순위를 결정할 수 있다. 일부 실시예들에서, 만약 어떠한 콘텐츠 엘리먼트도 개발자가 제공한 우선순위 속성들을 갖지 않는다면, 시스템은 표면 배향의 내적 관계를 디폴트 우선순위 속성이 되게 할 것이다.
[0166] 725에서, 콘텐츠 엘리먼트들의 속성들을 표면들의 속성들과 비교하여, 콘텐츠 엘리먼트들과 매칭하는 표면들이 있는지 여부를 식별하고 최상의 매칭 표면을 결정한다. 예컨대, 최고 연관된 우선순위(예컨대, 도 14a에 대하여 아래에서 더 상세히 설명되는 "메인" 또는 부모 엘리먼트 ID)를 갖는 콘텐츠 엘리먼트로 시작하여, 시스템은 최상의 매칭 표면을 식별하기 위해 콘텐츠 엘리먼트의 속성들을 표면들의 속성들과 비교하고, 그런다음, 두 번째로 높은 연관된 우선순위를 갖는 콘텐츠 엘리먼트로 진행하는 식으로 하여, 그에 따라, 콘텐츠 엘리먼트들을 포함하는 논리 구조들을 연속적으로 횡단할 수 있다.
[0167] 735에서, 콘텐츠 엘리먼트의 속성들이 대응하는 최상의 매칭 표면의 속성들과 얼마나 잘 매칭하는지에 기반하여, 매칭 스코어가 계산된다. 당업자라면 많은 상이한 스코어링 알고리즘들 및 모델들을 사용하여 매칭 스코어를 계산할 수 있음을 인지할 수 있다. 예컨대, 일부 실시예들에서, 스코어는 콘텐츠 엘리먼트의 속성 값들과 표면의 속성 값의 간단한 합계이다. 도 8은 다양한 매칭 스코어 방법론들을 예시한다.
[0168] 도 8은 논리 구조에 있을 수 있는 속성들을 갖는 3개의 가상의 표면들 및 3개의 가상의 콘텐츠 엘리먼트들을 묘사하며, 이는 도 14a-14b에서 아래에서 더 상세히 설명된다. 엘리먼트 A는, 텍스처 또는 컬러보다, 표면 선택에 대해 내적 배향 표면 관계들에 대한 선호도를 더 크게 가질 수 있고; 엘리먼트 B는 원활한 텍스처에 대한 선호도를 가질 수 있지만, 다색의 콘텐츠이고, 더 적은 콘트라스트 제약들을 갖고, 컬러를 우선순위화하지 않으며; 엘리먼트 C는 가상 페인팅일 수 있고, 다른 속성들보다 컬러 속성에 대해 더 높은 선호도를 가질 수 있다. 당업자는 콘텐츠 엘리먼트 구조 내의 값이 콘텐츠 자체를 반영하거나(예컨대, 엘리먼트 C는 컬러를 높게 가중함), 또는 원하는 표면 속성을 반영할 수 있다(예컨대, 엘리먼트 B는 렌더링하기 위해 더 원활한 표면들을 선호함)는 것을 인지할 것이다. 추가로, 수치 값들로서 묘사되어 있지만, 이를테면 컬러 필드에서의 명시적인 컬러(들) 또는 룸에서의/사용자에 대한 정확한 사이즈 또는 포지션과 같은 다른 속성 값들도 물론 가능하다.
[0169] 745에서, 최고 매칭 스코어를 갖는 표면이 식별된다. 도 8에 예시된 합계 예를 다시 참조하면, 엘리먼트 A는 표면들 A 및 C에서 스코어가 최고이고, 엘리먼트 B는 표면 B에서 스코어가 최고이며, 엘리먼트 C는 표면 C에서 스코어가 최고이다. 이러한 예시적인 예에서, 시스템은 엘리먼트 A를 표면 A에, 엘리먼트 B를 표면 B에, 그리고 엘리먼트 C를 표면 C에 렌더링할 수 있다. 엘리먼트 A가 표면 A 및 C에서 완전히 동일한 스코어를 얻었지만 엘리먼트 C가 표면 C에서 최고 스코어를 얻는 것은 표면 A로의 엘리먼트 A의 할당을 촉구한다. 다른 말로, 시스템은 매칭된 스코어들의 제2 합계를 반복하여, 최고 집계 매칭 스코어를 생성하는 콘텐츠 엘리먼트들과 표면들의 조합을 결정할 수 있다. 도 8에서 내적에 대한 샘플 수들은 객관적인 측정이라기 보다는 속성 값을 반영하는데; 예컨대, -1 내적 결과가 유리한 수학적 관계이지만, 수학식에 네거티브 수들을 도입하는 것을 회피하기 위해, 표면 속성은 -1 내적 관계를 표면 속성에 대한 포지티브 1로서 스코어를 부여한다라는 것이 주목되어야 한다.
[0170] 일부 실시예들에서, 745에서의 최고 스코어들의 식별은 표면 리스트가 평가되고 있을 때 최고 매칭 스코어를 갖는 표면을 마킹하고 이전에 마킹된 표면을 언마킹함으로써, 또는 최고 매칭 스코어 및 최고 매칭 스코어를 갖는 표면에 대한 링크를 계속 파악함으로써, 또는 표면에 매칭된 모든 콘텐츠 엘리먼트들의 최고 매칭 스코어를 계속 파악함으로써 이루어진다. 일 실시예에서, 충분한 매칭 스코어를 갖는 표면이 식별되면, 이 표면은 표면 리스트로부터 제거되고 이에 따라 추가적인 프로세싱에서 제외될 수 있다. 일 실시예에서, 최고 매칭 스코어를 갖는 표면이 식별되면, 이 표면은 그 표면이 콘텐츠 엘리먼트와 매칭되었다는 표시와 함께 표면 리스트에 남아 있을 수 있다. 이 실시예에서, 몇몇의 표면들이 단일 콘텐츠 엘리먼트와 매칭될 수 있고, 각각에 대한 매치 스코어가 저장될 수 있다.
[0171] 일부 실시예들에서, 주변 표면 리스트로부터의 각각의 표면이 평가될 때, 매칭 스코어가 하나씩 계산되고, 매치가 결정되며(예컨대, 콘텐츠 엘리먼트의 나열된 속성들의 80% 이상이 표면에 의해 지원되어 매칭을 구성하고), 만약 매치가 결정된다면, 개개의 표면을 최상 매치로서 마킹하고 다음 표면에서 계속 진행하고, 만약 다음 표면이 더 나은 매치라면, 그 표면을 최상 매치로서 마킹한다. 콘텐츠 엘리먼트에 대해 모든 표면들이 평가되면, 여전히 최상 매치로서 마킹된 표면이 표면들에 정해진 최상 매치이다. 일부 실시예들에서, 최고 매칭 스코어는 양호한 매치로서 자격을 부여하기 위해 사전정의된 임계치보다 더 클 필요가 있을 수 있다. 예컨대, 만약 최상 매치 표면이 (지원되는 속성들의 수로 또는 타겟 매칭 스코어의 퍼센트로) 단지 40% 매치라고 결정되고, 양호한 매치로서 자격을 부여하기 위한 임계치가 75% 이상이라면, 사용자의 환경으로부터의 표면에 의존하는 것과 대조적으로 콘텐츠 엘리먼트를 디스플레이할 가상 오브젝트를 생성하는 것이 최상일 수 있다. 이는 사용자의 환경이 예컨대, 해변, 바다 및 하늘 이외의 식별가능한 표면들이 없는 해변인 경우에 특히 사실일 수 있다. 당업자는 이 프로세스에 대해 정의될 수 있는 그리고 많은 상이한 타입들의 알고리즘들의 단지 한 예인 많은 상이한 매칭/맵핑 알고리즘들이 존재함을 인지할 수 있다.
[0172] 750에서, 매칭/맵핑 결과들은 위에 개시된 바와 같이 저장된다. 일 실시예에서, 만약 745에서 표면이 표면 리스트로부터 제거되었다면, 저장된 매칭은 최종으로 고려될 수 있다. 일 실시예에서, 만약 745에서 표면이 표면 리스트에 남아 있고 몇몇의 표면들이 단일 콘텐츠 엘리먼트와 매칭되었다면, 충돌하는 콘텐츠 엘리먼트들 및 표면들 상에서 알고리즘이 실행되어 충돌들을 명확하게 하고 일-대-다 매칭 또는 다-대-일 매칭 대신에 일-대-일 매칭을 가질 수 있다. 만약 높은 우선순위 콘텐츠 엘리먼트가 표면에 매칭되지 않는다면, 높은 우선순위 콘텐츠 엘리먼트가 가상 표면에 매칭/맵핑될 수 있다. 만약 낮은 우선순위 콘텐츠 엘리먼트가 표면에 매칭되지 않는다면, 렌더링 모듈(146)은 낮은 우선순위 콘텐츠 엘리먼트를 렌더링하지 않도록 선정할 수 있다. 매칭 결과들은 특정 테이블, 이를테면 아래 설명되는 도 18에 개시된 테이블에 저장될 수 있다.
[0173] 도 7a를 다시 참조하면, 760에서, 사전정의된 규칙들을 사용하는 것이 진행할 방법이라고 결정되었다고 가정하여, 이 방법은 표면들에 대한 콘텐츠 엘리먼트들의 매칭 규칙들을 포함하는 데이터베이스를 질의하고 특정 콘텐츠 엘리먼트에 대해, 어떤 타입들의 표면들이 콘텐츠 엘리먼트를 매칭시키기 위해 고려되어야 하는지를 결정한다. 770에서, 규칙들의 사전-정의된 세트들은 콘텐츠 엘리먼트에 최적합한 이용가능한 후보 표면들로부터의 하나 이상의 표면들로부터 선정할 최적합 알고리즘을 실행할 수 있다. 최적합 알고리즘에 적어도 부분적으로 기반하여, 모든 후보 표면들 때문에 콘텐츠 엘리먼트가 특정 표면에 매칭/맵핑되어야 한다고 결정되고, 특정 표면이 콘텐츠 엘리먼트의 속성들과 속성들이 최상 매칭하는 표면이다. 콘텐츠 엘리먼트들과 표면들의 매칭이 결정되면, 750에서 이 방법은 앞서 설명된 바와 같이 표면들에 대한 콘텐츠 엘리먼트들의 매칭 결과들을 비-일시적 스토리지 매체의 테이블에 저장한다.
[0174] 일부 실시예들에서, 사용자는 매칭된 표면을 오버라이딩할 수 있다. 예컨대, 사용자는 표면이 매칭 알고리즘에 의해 콘텐츠에 대한 최적의 표면으로 결정된 경우에도, 콘텐츠를 디스플레이하기 위해 표면을 어디에 오버라이딩할지를 선정할 수 있다. 일부 실시예들에서, 사용자는 시스템에 의해 제공된 하나 이상의 표면 옵션들로부터 표면을 선택할 수 있으며, 하나 이상의 표면 옵션들은 최적 표면들보다 작은 표면들을 포함할 수 있다. 시스템은 사용자에게 하나 이상의 디스플레이 표면 옵션들을 제공할 수 있으며, 디스플레이 표면 옵션들은 사용자의 물리적 환경 내의 물리적 표면들, 사용자의 물리적 환경에서 콘텐츠를 디스플레이하기 위한 가상 표면들, 및/또는 가상 스크린들을 포함할 수 있다. 일부 실시예들에서, 저장된 스크린(예컨대, 가상 스크린)이 콘텐츠를 디스플레이하기 위해 사용자에 의해 선택될 수 있다. 예컨대, 사용자가 현재 위치되는 특정 물리적 환경에 대해, 사용자는 특정 타입들의 표면들(예컨대, 디폴트 스크린 사이즈, 사용자로부터의 위치 등을 갖는 저장된 스크린) 상에 특정 타입들의 콘텐츠(예컨대, 비디오들)를 디스플레이할 선호도를 가질 수 있다. 저장된 스크린은 과거에 자주 사용되는 표면일 수 있거나, 저장된 스크린은 특정 타입들의 콘텐츠를 디스플레이하기 위한 사용자의 프로파일 또는 선호도 설정에서 식별된 저장된 스크린일 수 있다. 따라서 하나 이상의 표면들에 하나 이상의 엘리먼트들의 디스플레이를 오버라이딩하는 것은 과거에 자주 사용되는 표면 및/또는 저장된 스크린에 적어도 부분적으로 기반할 수 있다.
[0175] 도 7c는 사용자가 콘텐츠(780)를 제1 표면으로부터 사용자가 이용가능한 임의의 표면으로 이동시키는 것이 가능할 수 있는 예를 예시한다. 예컨대, 사용자는 제1 표면으로부터 제2 표면(즉, 수직 벽(795))으로 콘텐츠(780)를 이동시키는 것이 가능할 수 있다. 수직 벽(795)은 작업 영역(784)을 가질 수 있다. 수직 벽(795)의 작업 영역(784)은 예컨대, 환경 해석기(168)에 의해 결정될 수 있다. 작업 영역(784)은 콘텐츠(780)가 디스플레이될 수 있는, 예컨대 다른 콘텐츠/오브젝트들에 의해 방해받지 않을 수 있는 디스플레이 표면(782)을 가질 수 있다. 디스플레이 표면(782)은 예컨대, 환경 해석기(168)에 의해 결정될 수 있다. 도 7c에 예시된 예에서, 작업 영역(784)은 디스플레이 표면(782)으로 예시된 바와 같이, 작업 영역(784)의 디스플레이 표면을 전체 작업 영역(784)보다 더 작게 할 수 있는 사진 프레임 및 램프를 포함한다. 수직 벽(795)으로의 콘텐츠의 이동(예컨대, 이동들(786a-786c))은 수직 벽(795)으로의, 작업 영역(784) 및/또는 디스플레이 표면(782)의 중심으로의 콘텐츠(780)의 완벽한 배치가 될 필요는 없을 수 있다. 대신에, 콘텐츠는 콘텐츠를 수직 벽으로 이동시키기 위한 사용자의 제스처에 기반하여 수직 벽(795)의 주변 작업 공간(예컨대, 작업 영역(784) 및/또는 디스플레이 표면(782))의 적어도 일부 내에서 이동될 수 있다. 콘텐츠(780)가 수직 벽(795), 작업 영역(784) 및/또는 디스플레이 표면(782) 내에 있는 한, 시스템은 콘텐츠(780)를 디스플레이 표면(782)에 디스플레이할 것이다.
[0176] 일부 실시예들에서, 주변 작업 공간은 타겟 디스플레이 표면(예컨대, 디스플레이 표면(782))을 둘러싸는 추상 경계이다. 일부 실시예들에서, 사용자의 제스처는 제1 표면에서 콘텐츠(780)를 선택하고 적어도 일부가 디스플레이 표면(782)의 주변 작업 공간 내에 있도록 콘텐츠(780)를 이동시키기 위한 토템/제어기(790)에 의한 선택일 수 있다. 그런다음, 콘텐츠(780)는 디스플레이 표면(782)의 윤곽들 및 배향에 정렬될 수 있다. 가상 콘텐츠를 선택하는 것은 "SELECTING VIRTUAL OBJECTS IN A THREE-DIMENSIONAL SPACE"라는 명칭으로 2015년 10월 20일자에 출원된 출원을 우선권으로 주장하는 미국 특허 출원 제15/296,869호에서 추가로 설명되고, 선택된 표면들에 콘텐츠를 정렬하는 것은 "AUTOMATIC PLACEMENT OF A VIRTUAL OBJECT IN A THREE-DIMENSIONAL SPACE"라는 명칭으로 2016년 8월 11일자에 출원된 것을 우선권으로 주장하는 미국 특허 출원 제15/673,135호에서 추가로 설명되며, 이들 각각의 출원의 내용은 이로써 인용에 의해 통합된다.
[0177] 일부 실시예들에서, 사용자의 제스처는 (a) 제1 표면으로부터 콘텐츠의 선택, (b) 제1 표면으로부터 제2 표면으로의 콘텐츠의 이동, 및 (c) 제2 표면에서의 콘텐츠의 배치의 표시를 포함할 수 있는 손 제스처일 수 있다. 일부 실시예들에서, 제1 표면으로부터 제2 표면으로의 콘텐츠의 이동은 제2 표면의 특정한 부분으로의 이동이다. 일부 실시예들에서, 제2 표면에 배치될 때의 콘텐츠는 제2 표면에 맞춘다/채운다(예컨대, 맞추거나, 채우는 등을 위해 스케일링한다). 일부 실시예들에서, 제2 표면에 배치된 콘텐츠는 그 콘텐츠가 제1 표면에 있을 때의 사이즈를 유지한다. 이러한 실시예들에서, 제2 표면은 제1 표면보다 더 클 수 있고 그리고/또는 제2 표면은 콘텐츠를 디스플레이하는 데 필요한 사이즈보다 더 클 수 있다. AR 시스템은 사용자가 콘텐츠를 디스플레이하기 위해 표시한 포지션에서 또는 그 인근에서 제2 표면에 콘텐츠를 디스플레이할 수 있다. 다른 말로, 제1 표면으로부터 제2 표면으로의 콘텐츠의 이동은 시스템이 콘텐츠를 제2 표면의 전체 작업가능한 공간에 완벽하게 배치할 것을 요구하지 않을 수 있다. 콘텐츠는 단지, 적어도 사용자가 볼 수 있는 제2 표면의 제1 주변 영역에서 적어도 끝나야 할 수 있다.
환경 중심 콘텐츠
[0178] 지금까지 개시된 것은 환경에서 콘텐츠 엘리먼트들을 어디에 디스플레이할지를 구동하는 콘텐츠였다. 다른 말로, 사용자는 사용자의 환경에 디스플레이될 다양한 콘텐츠(예컨대, 웹 페이지로부터 풀링된 콘텐츠)를 선택하고 있을 수 있다. 그러나 일부 실시예들에서, 환경은 사용자의 환경 및/또는 환경 내의 표면들에 적어도 부분적으로 기반하여 어떤 콘텐츠가 사용자에게 디스플레이되는지를 구동할 수 있다. 예컨대, 표면들의 리스트는 센서들(162)로부터의 데이터에 기반하여 환경 해석기(168)에 의해 지속적으로 평가되고 있다. 사용자가 한 환경에서 다른 환경으로 이동하거나 환경 내에서 돌아다닐 때 표면들의 리스트가 환경 해석기(168)에 의해 지속적으로 평가되고 있기 때문에, 사용자가 콘텐츠를 서치하거나 선택할 필요 없이 사용자의 환경으로 푸싱될 수 있는 특정 타입들의 콘텐츠(예컨대, 푸싱된 콘텐츠)를 디스플레이할 수 있고, 웹 페이지로부터 발생하지 않을 수 있는 새로운/추가적인 표면들이 이용가능해질 수 있다. 예컨대, 특정 타입들의 푸시 콘텐츠는 (a) 다양한 애플리케이션들로부터의 통지들, 이를테면 주식 통지, 뉴스피드들, (b) 우선순위화된 콘텐츠, 이를테면 예컨대, 소셜 미디어 애플리케이션들로부터의 업데이트들 및 통지들, 이메일 업데이트들 등, 및/또는 (c) 광범위한 타겟 그룹들 및/또는 특정한 타겟 그룹들을 타겟으로 하는 광고들 등을 포함할 수 있다. 이러한 타입들의 푸시 콘텐츠 각각은 광고를 광고의 가장 유효한 형태로 디스플레이하기 위해, 연관된 속성들, 이를테면 예컨대, 사이즈, 디멘션, 배향 등을 가질 수 있다. 환경에 의존하여, 특정 표면들은 이러한 환경 중심 콘텐츠(예컨대, 푸시 콘텐츠)를 표시되게 할 기회를 제공할 수 있다. 일부 실시예들에서, 풀링된 콘텐츠는 먼저 환경 내의 표면들에 매칭/맵핑될 수 있고, 푸싱된 콘텐츠는 풀링된 콘텐츠를 이에 매칭/맵핑되게 하지 않는 환경의 임의의 표면들에 매칭/맵핑될 수 있다.
[0179] 푸시 콘텐츠 타입의 예로서 광고들을 취할 때, 다양한 디멘션들 및 배향을 갖는 많은 표면들이 있을 수 있는 환경에 사용자가 있는 시나리오를 고려한다. 특정 광고들은 특정 위치들(예컨대, 지리적 위치들, 이를테면 집에서, 직장에서, 야구장에서, 식료품점에서 등, 그리고 아이템 위치들, 이를테면 환경 내의 특정 물리적 아이템들/제품들의 앞)뿐만 아니라, 특정 디멘션들 및 배향들을 갖는 표면들 상에 최상으로 디스플레이될 수 있다. 이러한 상황들에서, 시스템은 푸시 콘텐츠의 데이터베이스를 서치하여 어떤 푸시 콘텐츠가 환경의 표면들과 최상으로 매칭될 수 있는지를 결정할 수 있다. 만약 매치가 발견된다면, 특정 위치의 매칭된 표면 상에 콘텐츠가 디스플레이될 수 있다. 일부 실시예들에서, 시스템은 빌트-인 로직을 사용하여 푸싱된 콘텐츠를 결정하는 광고 서버에 표면들의 리스트를 제공한다.
[0180] 웹 페이지 윈도우 상의 어떤 부분들이 온라인 광고들이 디스플레이되도록 이용가능한 공간을 갖는지를 결정하기 위해 사용자가 보고 있는 웹 페이지의 레이아웃에 의존하는 통상의 온라인 광고들과는 달리, 본 개시내용은 환경 내의 표면들을 식별하여 특정 푸시 콘텐츠, 이를테면 예컨대, 광고들에 대한 후보 표면들을 결정하는 환경 해석기(168)를 포함한다.
[0181] 일부 실시예들에서, 사용자는 특정 타입들의 푸시 콘텐츠가 언제 그리고 어디에 디스플레이될 수 있는지에 대한 선호도 속성을 지시할 수 있다. 예컨대, 사용자는, 특정 사람들 또는 구성들로부터 높은 우선순위 콘텐츠를 갖는 선호도 속성이 사용자의 앞에 있는 표면 상에 눈에 띄게 디스플레이되는 한편, 다른 타입들의 푸시 콘텐츠, 이를테면 광고들이 사용자의 1차 초점 뷰 영역 주변의 더 작은 표면들 상에 디스플레이되어야 함을 표시할 수 있으며, 사용자의 1차 초점 뷰 영역은 사용자의 1차 초점 뷰 영역의 측면에 있는 주변 뷰와 대조적으로, 사용자가 보고 있는 방향을 향해 일반적으로 전방향에 있는 뷰 영역이다. 일부 실시예들에서, 사용자가 선택하는 높은 우선순위 콘텐츠 엘리먼트들(예컨대, 푸싱된 콘텐츠와 대조적으로 풀링된 콘텐츠)은 사용자의 환경에서(예컨대, 사용자의 초점 뷰잉 영역 내에서) 가장 눈에 띄는 표면들에 디스플레이되는 한편, 사용자의 초점 뷰잉 영역에 대한 주변부에 있는 매칭되지 않은/맵핑되지 않은 다른 표면들은 푸싱된 콘텐츠에 이용가능할 수 있다.
[0182] 일부 실시예들에서, 세계 위치 콘텍스트 API가 콘텐츠 설계자들/웹 개발자들/광고자들에게 제공되어 위치 인식 콘텐츠를 생성할 수 있다. 세계 위치 콘텍스트 API는 사용자가 현재 있는 특정 위치에 특정적인 로컬 콘텍스트를 설명하는 한 세트의 능력들을 제공할 수 있다. 세계 위치 콘텍스트 API는 특정한 종류들의 룸들(예컨대, 거실, 체육관, 오피스, 주방), 다양한 위치들로부터 사용자에 의해 실행된 특정한 질의들(예컨대, 사용자는 거실에서 영화, 체육관에서 음악, 주방에서 조리법 등을 서치하는 경향이 있음), 및 다양한 위치들에서 사용자에 의해 사용된 특정한 서비스들 및 애플리케이션들(예컨대, 오피스로부터 메일 클라이언트가 사용되고 거실로부터 Netflix가 사용됨)의 식별을 포함할 수 있는 위치 콘텍스트 정보를 제공할 수 있다. 콘텐츠 설계자는 콘텐츠 엘리먼트의 속성으로서 세계 위치 콘텍스트에 대하여 특정 액션들을 연관시킬 수 있다.
[0183] 콘텐츠 제공자들은 이 정보를 서치 히스토리, 오브젝트 인식기들 및 애플리케이션 데이터와 함께 사용하여 위치 특정한 콘텐츠를 제공할 수 있다. 예컨대, 만약 사용자가 주방에서 서치를 실행한다면, 서치 엔진이 사용자가 사용자의 주방에서 서치를 실행하고 있음을 알 것이므로 광고들 및 서치 결과들은 주로 음식과 관련될 것이다. 세계 위치 콘텍스트 API에 의해 제공되는 정보는 룸마다 또는 위치마다 정확하게 제공될 수 있어, 이를 지오로케이션보다 더 정확하고 지오펜싱보다 콘텍스트를 더 잘 인식하게 한다. 도 9는 세계 위치 콘텍스트 API가 위치 특정한 콘텍스트를 제공하기 위해 어떻게 사용될 수 있는지의 예이다. 예로서, 사용자의 주방(905)은 사용자의 현재 물리적 위치 내의 특정 표면들 상에 디스플레이된 위치 특정한 콘텐츠(915a, 915b 및/또는 915c)를 포함할 수 있다. 콘텐츠(915a)는 특정 식사를 위한 조리법일 수 있고, 콘텐츠(915b)는 식사의 광고일 수 있으며, 그리고/또는 915c는 주방에서 준비할 식사들의 제안들일 수 있다.
[0184] 도 10은 VR/AR 시스템의 사용자에게 콘텐츠를 푸싱하기 위한 방법(1000)의 예이다. 1010에서, 하나 이상의 표면들 및 이들의 속성들이 결정된다. 하나 이상의 표면들은 환경 구조화 프로세스(160)로부터 결정될 수 있으며, 환경 해석기(168)는 환경 데이터를 해석하여 환경의 표면들을 결정하고, 표면들을 논리 구조들로 구성하여 저장한다. 사용자의 환경은 표면에 대한 위치 속성, 이를테면 사용자의 개인 주택, 주택 내의 특정한 룸, 사용자의 작업 위치 등을 가질 수 있다. 하나 이상의 표면들은 사용자의 초점 뷰 영역 주변부에 있을 수 있다. 일부 실시예들에서, 하나 이상의 표면들은 사용자가 통지받길 원할 수 있는 푸싱 콘텐츠(예컨대, 권위 있는 엔티티들로부터의 응급 통지들, 화이트 리스트된 애플리케이션들/통지들 등)에 의존하여, 사용자의 초점 뷰 영역 내에 있을 수 있다. 표면들의 디멘션은 2D 및/또는 3D 디멘션일 수 있다.
[0185] 1020에서, 하나 이상의 표면들과 매칭하는 하나 이상의 콘텐츠 엘리먼트들이 수신된다. 일부 실시예들에서, 콘텐츠 엘리먼트들 또는 단일 콘텐츠 엘리먼트를 수신하는 것은 적어도 하나의 표면 속성에 기반한다. 예컨대, "주방"의 위치 속성은 음식 아이템들에 대응하는 콘텐츠 엘리먼트들이 푸싱되도록 촉구할 수 있다. 다른 예에서, 사용자는 제1 표면 상에서 제1 콘텐츠 엘리먼트를 보고 있을 수 있고, 그 콘텐츠 엘리먼트는 만약 특정 표면 속성들을 갖는 표면이 이용가능하다면 단지 제2 표면 상에 디스플레이할 자식 콘텐츠 엘리먼트를 갖는다.
[0186] 1030에서, 콘텐츠 엘리먼트들의 속성들이 표면들의 속성들과 얼마나 잘 매칭하는지에 기반하여 매칭 스코어가 계산된다. 일부 실시예들에서, 스코어링은 100의 스코어가 최고 스코어이고 1의 스코어가 최저 스코어인 1-100의 스케일에 기반할 수 있다. 당업자는 많은 상이한 스코어링 알고리즘들 및 모델들이 매칭 스코어를 계산하는 데 사용될 수 있음을 인식할 수 있다. 콘텐츠 엘리먼트들이 통지들을 포함하는 일부 실시예들에서, 속성들에 기반하여 계산된 매칭 스코어는 특정 표면과의 매치와 대조적으로 통지될 필요가 있는 콘텐츠 엘리먼트의 우선순위를 표시할 수 있다. 예컨대, 콘텐츠 엘리먼트가 소셜 미디어 애플리케이션으로부터의 통지인 경우, 스코어는 소셜 미디어 콘텐츠의 속성들 및 표면의 속성들에 기반한 매칭 스코어와 대조적으로, 사용자의 소셜 미디어 계정에서 사용자에 의해 정의된 통지의 우선순위 레벨에 기반할 수 있다.
[0187] 일부 실시예들에서, 사용자가 이들의 환경에서 비교적 고정되어 있을 때, 표면들의 리스트는 크게 변하지 않을 수 있다. 그러나 사용자가 모션 중일 때, 사용자가 이동하고 있는 스피드에 의존하여 표면들의 리스트가 매우 신속하게 변할 수 있다. 동적 상황들에서, 만약 사용자가 콘텐츠를 완전히 볼 수 있을 정도로 충분히 오래 고정되어 있지 않을 수 있다고 결정된다면, 낮은 매칭 스코어가 계산될 수 있다. 사용자가 전체 콘텐츠를 보기에 충분한 시간을 갖는지 여부에 대한 이러한 결정은 콘텐츠 설계자에 의해 정의된 속성일 수 있다.
[0188] 1040에서, 최고 매칭 스코어를 갖는 콘텐츠 엘리먼트들이 선택된다. 사용자에게 디스플레이하고자 하는 경쟁 콘텐츠 엘리먼트들(예컨대, 광고들)이 있을 때, 경쟁 콘텐츠를 분류하고 바람직한 콘텐츠 엘리먼트를 택할 요건들이 있을 수 있다. 여기서, 예로서, 바람직한 콘텐츠 엘리먼트를 선택하기 위한 하나의 옵션은 경쟁을 콘텐츠 엘리먼트의 속성들이 표면들의 속성들과 얼마나 잘 매칭하는지에 기반하게 하는 것이다. 다른 예로서, 위너는 콘텐츠 엘리먼트 제공자가 푸싱된 콘텐츠를 디스플레이하기 위해 지불하고자 할 수 있는 돈의 양에 적어도 부분적으로 기반하여 선택될 수 있다. 일부 실시예들에서, 바람직한 콘텐츠 엘리먼트는 콘텐츠 타입(예컨대, 3D 콘텐츠 또는 소셜 미디어 접촉으로부터의 통지)에 기반하여 선택될 수 있다.
[0189] 1050에서, 대응하는 표면에 대한 바람직한 콘텐츠의 매칭/맵핑이 캐시 메모리 또는 영구 메모리에 저장될 수 있다. 사용자가 모션 중이고 환경이 변하는 상황들에서, 사용자의 리턴 시에 사용자의 환경의 일부 히스토리를 유지할 수 있는 것이 중요할 수 있기 때문에 매칭의 저장이 중요할 수 있다. 매칭/맵핑은 테이블, 이를테면 도 18에 개시된 테이블에 저장될 수 있다. 1060에서, 콘텐츠는 대응하는 표면들 상에 렌더링된다. 매칭은 표면들에 대한 콘텐츠 엘리먼트들의 일-대-일 또는 일-대-다 매칭/맵핑일 수 있다.
[0190] 개시된 것은 환경에서 디스플레이하기 위한 콘텐츠를 분해하기 위한 시스템 및 방법들이다. 추가적으로, 시스템 및 방법들은 또한 콘텐츠를 가상 현실 또는 증강 현실 시스템의 사용자의 표면들에 푸싱할 수 있다.
예들
웹 페이지
[0191] 도 11을 참조하면, 환경(1100)은 본원에서 설명된 프로세스들(예컨대, 사용자의 물리적 환경(1105)에서 표면들 상에 디스플레이될 웹 페이지의 콘텐츠로부터 콘텐츠 엘리먼트들을 매칭함)을 구현하기 위한 물리적 환경 및 시스템들을 나타낸다. 환경(1100)의 나타내는 물리적 환경 및 시스템은 머리-장착 시스템(1160)을 통해 사용자(1108)에 의해 보이는 것과 같은 사용자의 물리적 환경(1105)을 포함한다. 환경(1100)의 나타내는 시스템은 네트워크(1120)에 동작가능하게 커플링된 웹 브라우저(1110)를 통해 콘텐츠(예컨대, 웹 페이지)에 액세스하는 것을 추가로 포함한다. 일부 실시예들에서, 콘텐츠에 대한 액세스는 애플리케이션(미도시), 이를테면 비디오 스트리밍 애플리케이션을 통할 수 있고, 비디오 스트리밍은 액세스되고 있는 콘텐츠일 수 있다. 일부 실시예들에서, 비디오 스트리밍 애플리케이션은 스포츠 구성일 수 있고 스트리밍되고 있는 콘텐츠는 실제 라이브 게임, 요약, 개요/강조들, 박스 스코어, 플레이-바이-플레이, 팀 통계, 플레이어 통계, 관련 비디오들, 뉴스피드들, 제품 정보 등일 수 있다.
[0192] 네트워크(1120)는 인터넷, 내부 네트워크, 사설 클라우드 네트워크, 공개 클라우드 네트워크 등일 수 있다. 웹 브라우저(1110)는 또한 네트워크(1120)를 통해 프로세서(1170)에 동작가능하게 커플링된다. 프로세서(1170)가 머리-장착 시스템(1160)과 별개의 분리된 컴포넌트로서 도시되지만, 대안적인 실시예에서, 프로세서(1170)는 머리-장착 시스템(1160)의 하나 이상의 컴포넌트들과 통합될 수 있고 그리고/또는 환경(1100) 내의 다른 시스템 컴포넌트들, 이를테면, 예컨대, 컴퓨팅 네트워크(1125) 및 스토리지 디바이스들(1130)에 액세스하는 네트워크(1120)에 통합될 수 있다. 프로세서(1170)는 정보, 이를테면 머리-장착 시스템(1160), 로컬 스토리지 디바이스(1140), 웹 브라우저(1110), 컴퓨팅 네트워크(1125) 및 스토리지 디바이스들(1130)로부터 수신된 비디오, 오디오 및 콘텐츠를 수신 및 프로세싱하기 위한 소프트웨어(1150)로 구성될 수 있다. 소프트웨어(1150)는 네트워크(1120)를 통해 컴퓨팅 네트워크(1125) 및 스토리지 디바이스들(1130)과 통신할 수 있다. 소프트웨어(1150)는 프로세서(1170) 상에 인스톨될 수 있거나, 또는 다른 실시예에서; 소프트웨어의 특징들 및 기능성들은 프로세서(1170)에 통합될 수 있다. 프로세서(1170)는 또한 사용자(1108)의 인근으로부터의 외부 스토리지 디바이스 상에 원격으로 저장된 정보에 의존함이 없이 신속한 액세스를 위해 프로세서(1170)에 의해 사용되는 정보를 저장하기 위한 로컬 스토리지 디바이스(1140)로 구성될 수 있다. 다른 실시예들에서, 프로세서(1170)는 머리-장착 시스템(1160) 내에 통합될 수 있다.
[0193] 사용자의 물리적 환경(1105)은, 사용자가 주위를 이동하고 머리-장착 시스템(1160)을 통해 사용자의 물리적 환경(1105)을 볼 때 사용자(1108)의 물리적 주변들이다. 예컨대, 도 1을 참조하면, 사용자의 물리적 환경(1105)은 2개의 벽들(예컨대, 메인 벽(1180) 및 측벽(1184), 메인 벽 및 측벽은 사용자의 뷰에 대해 상대적임) 및 테이블(1188)을 갖는 룸을 도시한다. 메인 벽(1180) 상에, 특정 콘텐츠를 투사할 후보 표면일 수 있는 물리적 경계(예컨대, 벽 또는 창문 등에 매달리거나 부착된 페인팅)를 갖는 물리적 표면을 표시하기 위해 흑색 실선으로 묘사된 직사각형 표면(1182)이 있다. 측벽(1184) 상에, 물리적 경계(예컨대, 벽 또는 창문 등에 매달리거나 부착된 페인팅)를 갖는 물리적 표면을 표시하기 위해 흑색 실선으로 묘사된 제2 직사각형 표면(1186)이 있다. 테이블(1188) 상에, 상이한 오브젝트들이 있을 수 있다. 1) 특정 콘텐츠가 저장 및 디스플레이될 수 있는 가상 롤로덱스(Rolodex)(1190); 2) 특정 콘텐츠를 투사할 물리적 경계를 갖는 물리적 표면을 표현하기 위해 흑색 실선으로 묘사된 수평 표면(1192); 및 3) 예컨대, 특정 콘텐츠가 저장 및 디스플레이될 수 있는 스택된 가상 신문을 표현하기 위해 흑색 점선으로 묘사된 가상 정사각형 표면들(1194)의 다수의 스택들. 당업자는, 위에서 설명된 물리적 경계들이 표면들을 이산 뷰잉 섹션들로 이미 분해하고 스스로 표면 속성일 수 있을 때 콘텐츠 엘리먼트들을 배치하는데 도움이 되지만, 적격인 표면을 인식하기 위해 필수적인 아님을 인지할 것이다.
[0194] 웹 브라우저(1110)는 또한 인터넷으로부터의 또는 인트라넷/사설 네트워크 내의 블로그 페이지를 디스플레이할 수 있다. 추가적으로, 웹 브라우저(1110)는 또한 디지털 콘텐츠를 디스플레이하는 임의의 기술일 수 있다. 디지털 콘텐츠는 예컨대, 웹 페이지들, 블로그들, 디지털 사진들, 비디오들, 뉴스 기사들, 뉴스레터들 또는 음악을 포함할 수 있다. 콘텐츠는 네트워크(1120)를 통해 사용자(1108)에 의해 액세스가능한 스토리지 디바이스들(1130)에 저장될 수 있다. 일부 실시예들에서, 콘텐츠는 또한 스트리밍 콘텐츠, 예컨대, 라이브 비디오 피드들 또는 라이브 오디오 피드들일 수 있다. 스토리지 디바이스들(1130)은, 예컨대, 데이터베이스, 파일 시스템, 영구적 메모리 디바이스, 플래시 드라이브, 캐시 등을 포함할 수 있다. 일부 실시예들에서, 콘텐츠(예컨대, 웹 페이지)를 포함하는 웹 브라우저(1110)는 컴퓨팅 네트워크(1125)를 통해 디스플레이된다.
[0195] 컴퓨팅 네트워크(1125)는 웹 브라우저(1110) 상의 웹 페이지에 디스플레이하기 위한 콘텐츠를 리트리브 및 저장하기 위해 스토리지 디바이스들(1130)에 액세스한다. 일부 실시예들에서, 로컬 스토리지 디바이스(1140)는 관심대상 콘텐츠를 사용자(1108)에게 제공할 수 있다. 로컬 스토리지 디바이스(1140)는, 예컨대, 플래시 드라이브, 캐시, 하드 드라이브, 데이터베이스, 파일 시스템 등을 포함할 수 있다. 로컬 스토리지 디바이스(1140)에 저장된 정보는 최근에 액세스된 콘텐츠 또는 3D 공간에서 최근에 디스플레이된 콘텐츠를 포함할 수 있다. 로컬 스토리지 디바이스(1140)는 3D 공간 환경(예컨대, 사용자 물리적 환경(1105) 내의 3D 표면들) 상에 콘텐츠를 디스플레이할 콘텐츠를 분해하는 것을 돕기 위해 특정 콘텐츠를 로컬로 소프트웨어(1150)에 제공함으로써 환경(1100)의 시스템들에 대한 성능에서의 개선들을 허용한다.
[0196] 소프트웨어(1150)는 사용자의 물리적 환경(1105) 내에 디스플레이될 콘텐츠를 분해하는 기능들을 수행하기 위해 비-일시적 컴퓨터 판독가능 매체 내에 저장된 소프트웨어 프로그램들을 포함한다. 소프트웨어(1150)는 프로세서(1170) 상에서 실행될 수 있고, 프로세서(1170)는 사용자(1108)에게 로컬로 부착될 수 있거나, 또는 일부 다른 실시예들에서, 소프트웨어(1150) 및 프로세서(1170)는 머리-장착 시스템(1160) 내에 포함될 수 있다. 일부 실시예들에서, 소프트웨어(1150)의 특징들 및 기능들의 부분들은 사용자(1108)로부터 원격인 컴퓨팅 네트워크(1125) 상에서 저장 및 실행될 수 있다. 예컨대, 일부 실시예들에서, 콘텐츠를 분해하는 것은 컴퓨팅 네트워크(1125) 상에서 발생할 수 있고, 분해 결과들은 스토리지 디바이스들(1130) 내에 저장될 수 있고, 분해된 콘텐츠를 제공하기 위한 사용자의 로컬 환경의 표면들의 목록을 만드는 것은 프로세서(1170) 내에서 발생할 수 있고, 표면들 및 매칭들/맵핑들의 목록은 로컬 스토리지 디바이스(1140) 내에 저장된다. 일 실시예에서, 콘텐츠를 분해하고, 로컬 표면들의 목록을 만들고, 콘텐츠의 엘리먼트들을 로컬 표면들에 매칭/맵핑하고 콘텐츠의 엘리먼트들을 디스플레이하는 프로세스들 모두는 프로세서(1170) 및 소프트웨어(1150) 내에서 로컬로 발생할 수 있다.
[0197] 머리-장착 시스템(1160)은 사용자 인터페이스, 사용자-감지 시스템, 환경 감지 시스템 및 프로세서(모두 미도시)를 포함하는 VR(virtual reality) 또는 AR(augmented reality) 머리-장착 시스템(예컨대, 혼합 현실 디바이스)일 수 있다. 머리-장착 시스템(1160)은 디지털 세계와 상호작용하고 이를 경험하기 위한 인터페이스를 사용자(1108)에게 제공한다. 이러한 상호작용은 사용자 및 디지털 세계, 환경(1100)과 인터페이싱하는 하나 이상의 다른 사용자들 및 디지털 및 물리적 세계 내의 오브젝트들을 수반할 수 있다.
[0198] 사용자 인터페이스는 사용자 인터페이스를 통한 사용자 입력에 의해 콘텐츠를 수신하는 것 및 콘텐츠 내의 엘리먼트들을 선택하는 것을 포함할 수 있다. 사용자 인터페이스는 햅틱 인터페이스 디바이스들, 키보드, 마우스, 조이스틱, 모션 캡처 제어기, 광학 추적 디바이스 및 오디오 입력 디바이스 중 적어도 하나 또는 조합일 수 있다. 햅틱 인터페이스 디바이스는 인간이 신체 감각들 및 움직임들을 통해 컴퓨터와 상호작용하게 허용하는 디바이스이다. 햅틱은 컴퓨팅 디바이스 상에서 액션들 또는 프로세스들을 수행하기 위한 촉각 피드백 또는 다른 신체 감각들을 포함하는 인간-컴퓨터 상호작용 기술의 타입을 지칭한다.
[0199] 사용자-감지 시스템은 머리-장착 시스템(1160)을 착용하고 있는 사용자(1108)와 관련된 특정 특징들, 특성들 또는 정보를 검출하도록 동작가능한 하나 이상의 센서들(1162)을 포함할 수 있다. 예컨대, 일부 실시예들에서, 센서들(1162)은 사용자(1108)의 실제-시간 광학 특성들/측정들, 이를테면, 예컨대, 동공 수축/확장, 각각의 동공의 각도 측정/포지셔닝, 구형성, 눈 형상(시간이 지남에 따라 눈 형상이 변할 때) 및 다른 해부학적 데이터 중 하나 이상을 검출할 수 있는 카메라 또는 광학 검출/스캐닝 회로를 포함할 수 있다. 이러한 데이터는 사용자의 뷰잉 경험을 향상시키기 위해 머리-장착 시스템(1160)에 의해 사용될 수 있는 정보(예컨대, 사용자의 시각 초점 포인트)를 제공하거나 이를 계산하기 위해 사용될 수 있다.
[0200] 환경-감지 시스템은 사용자의 물리적 환경(1105)으로부터 데이터를 획득하기 위한 하나 이상의 센서들(1164)을 포함할 수 있다. 센서들(1164)에 의해 검출된 오브젝트들 또는 정보는 머리-장착 시스템(1160)에 대한 입력으로서 제공될 수 있다. 일부 실시예들에서, 이러한 입력은 가상 세계와의 사용자 상호작용을 표현할 수 있다. 예컨대, 데스크(예컨대, 테이블(1188)) 상의 가상 키보드를 보고 있는 사용자(예컨대, 사용자(1108))는 사용자가 가상 키보드 상에 타이핑하는 것처럼 자신의 손가락들로 제스처를 취할 수 있다. 이동하는 손가락들의 모션은 센서들(1164)에 의해 캡처되고 입력으로서 머리-장착 시스템(1160)에 제공될 수 있고, 입력은 가상 세계를 변경하거나 새로운 가상 오브젝트들을 생성하기 위해 사용될 수 있다.
[0201] 센서들(1164)은 예컨대, 계속해서 및/또는 간헐적으로 투사된 적외선 구조화된 광을 통해, 장면 정보를 해석하기 위해, 예컨대, 일반적으로 외향 카메라 또는 스캐너를 포함할 수 있다. 환경-감지 시스템은 정적 오브젝트들, 동적 오브젝트들, 사람들, 제스처들 및 다양한 조명, 대기 및 음향 조건들을 포함하는 로컬 환경을 검출 및 등록함으로써 사용자(1108) 주위에서 사용자의 물리적 환경(1105)의 하나 이상의 엘리먼트들을 매칭/맵핑하기 위해 사용될 수 있다. 따라서, 일부 실시예들에서, 환경-감지 시스템은, 로컬 컴퓨팅 시스템(예컨대, 프로세서(1170))에 임베딩되고 센서들(1164)에 의해 검출된 하나 이상의 오브젝트들 또는 정보를 디지털적으로 재구성하도록 동작가능한 이미지-기반 3D 재구성 소프트웨어를 포함할 수 있다.
[0202] 하나의 예시적인 실시예에서, 환경-감지 시스템은, 모션 캡처 데이터(제스처 인식을 포함함), 깊이 감지, 얼굴 인식, 오브젝트 인식, 고유의 오브젝트 피처 인식, 음성/오디오 인식 및 프로세싱, 음향 소스 로컬화, 잡음 감소, 적외선 또는 유사한 레이저 투사 뿐만 아니라 단색 및/또는 컬러 CMOS 센서들(또는 다른 유사한 센서들), 시야 센서들 및 다양한 다른 광학-향상 센서들 중 하나 이상을 제공한다. 환경-감지 시스템은 앞서 논의된 것들 이외의 다른 컴포넌트들을 포함할 수 있음이 인지되어야 한다.
[0203] 위에서 논의된 바와 같이, 프로세서(1170)는 일부 실시예들에서, 환경(1100)의 시스템의 다른 컴포넌트들과 통합된 머리-장착 시스템(1160)의 다른 컴포넌트들과 통합될 수 있거나, 또는 도 1에 도시된 바와 같이 분리된 디바이스(웨어러블 또는 사용자(1108)로부터 별개임)일 수 있다. 프로세서(1170)는 물리적, 유선 연결을 통해 또는 무선 연결, 이를테면, 예컨대 모바일 네트워크 연결들(셀룰러 전화 및 데이터 네트워크들을 포함함), Wi-Fi, 블루투스 또는 임의의 다른 무선 연결 프로토콜을 통해 머리-장착 시스템(1160)의 다양한 컴포넌트들에 연결될 수 있다. 프로세서(1170)는 메모리 모듈, 통합된 및/또는 추가적인 그래픽 프로세싱 유닛, 무선 및/또는 유선 인터넷 연결성, 및 소스(예컨대, 컴퓨팅 네트워크(1125) 및 머리-장착 시스템(1160)의 사용자-감지 시스템 및 환경-감지 시스템)로부터의 데이터를 이미지 및 오디오 데이터로 변환할 수 있는 코덱 및/또는 펌웨어를 포함할 수 있고, 이미지들/비디오 및 오디오는 사용자 인터페이스(미도시)를 통해 사용자(1108)에게 제공될 수 있다.
[0204] 프로세서(1170)는 머리-장착 시스템(1160)의 다양한 컴포넌트들에 대한 데이터 프로세싱뿐만 아니라 머리-장착 시스템(1160)과 웹 브라우저(1110) 및 컴퓨팅 네트워크(1125)에 의해 디스플레이 또는 액세스되는 웹 페이지들로부터의 콘텐츠 간의 데이터 교환을 다룬다. 예컨대, 프로세서(1170)는 사용자(1108)와 컴퓨팅 네트워크(1125) 간의 데이터 스트리밍을 버퍼링 및 프로세싱하여, 원활하고 연속적이고 높은 신뢰도의 사용자 경험을 가능하게 하기 위해 사용될 수 있다.
[0205] 웹 페이지로부터의 콘텐츠를 콘텐츠 엘리먼트들로 분해하고 3D 환경에서 표면들 상에 디스플레이될 엘리먼트들을 매칭/맵핑하는 것은 지능형 및 논리적 방식으로 달성될 수 있다. 예컨대, 콘텐츠 파서(115)는 DOM(document object model) 파서일 수 있고, 콘텐츠의 엘리먼트들이 액세스가능하고 프로그래밍 방식으로 조작/추출하기 더 쉽도록, 입력(예컨대, 전체 HTML 페이지)을 수신하고 입력 내의 다양한 콘텐츠 엘리먼트들을 분해하고 분해된 콘텐츠 엘리먼트들을 논리적 구조로 저장할 수 있다. 미리 결정된 세트의 규칙들은 예컨대, 웹 페이지 내에서 식별된 특정 타입들의 엘리먼트들/콘텐츠를 어디에 배치할지를 추천, 제안 또는 지시하기 위해 이용가능할 수 있다. 예컨대, 특정 타입들의 콘텐츠 엘리먼트들은 하나 이상의 엘리먼트들을 저장 및 디스플레이할 수 있는 물리적 또는 가상 오브젝트 표면에 매칭/맵핑될 필요가 있을 수 있는 하나 이상의 콘텐츠 엘리먼트들을 가질 수 있는 반면, 다른 타입들의 콘텐츠 엘리먼트들은 단일 오브젝트, 이를테면 웹 페이지 내의 메인 비디오 또는 메인 기사일 수 있고, 이러한 경우, 단일 오브젝트는 사용자에게 단일 오브젝트를 디스플레이하기에 가장 타당한 표면에 매칭/맵핑될 수 있다. 일부 실시예들에서, 단일 오브젝트는, 단일 콘텐츠 오브젝트가 사용자의 환경 내의 표면(예컨대, 가상 표면 또는 물리적 표면) 상에 디스플레이될 수 있도록 비디오 애플리케이션으로부터 스트리밍된 비디오일 수 있다.
[0206] 도 12의 환경(1200)은 웹 브라우저(1110) 및 사용자의 물리적 환경(1105)에 의해 디스플레이 또는 액세스되는 콘텐츠(예컨대, 웹 페이지)를 묘사한다. 화살표 머리를 갖는 점선들은 사용자의 물리적 환경(1105)에 매칭/맵핑 및 디스플레이되는 콘텐츠(예컨대, 웹 페이지)로부터 엘리먼트들(예컨대, 특정 타입들의 콘텐츠)을 묘사한다. 콘텐츠로부터의 특정 엘리먼트들은 웹 설계자 힌트들 또는 사전-정의된 브라우저 규칙들 중 어느 하나에 기반하여 사용자의 물리적 환경(1105)의 특정 물리적 또는 가상 오브젝트들에 매칭/맵핑된다.
[0207] 예로서, 웹 브라우저(1110)에 의해 액세스 또는 디스플레이되는 콘텐츠는 다수의 탭들을 갖는 웹 페이지일 수 있고, 현재 활성 탭(1260)이 디스플레이되고 2차 탭(1250)이 웹 브라우저(1110) 상에 디스플레이하기 위해 선택될 때까지 현재 숨겨져 있다. 전형적으로 웹 페이지가 활성 탭(1260) 내에 디스플레이된다. 이러한 특정 예에서, 활성 탭(1260)은 메인 비디오(1220), 사용자 코멘트들(1230) 및 제안된 비디오들(1240)을 포함하는 YOUTUBE 페이지를 디스플레이하고 있다. 이러한 예시적인 도 12에 묘사된 바와 같이, 메인 비디오(1220)는 수직 표면(1182) 상에 디스플레이하기 위해 매칭/맵핑될 수 있고, 사용자 코멘트들(1230)은 수평 표면(1192) 상에 디스플레이하기 위해 매칭/맵핑될 수 있고, 제안된 비디오들(1240)은 수직 표면(1182)과 상이한 수직 표면(1186) 상에 디스플레이하기 위해 매칭/맵핑될 수 있다. 추가적으로, 2차 탭(1250)은 가상 롤로덱스(1190) 상에 또는 가상 롤로덱스(1190)로서 및/또는 멀티-스택 가상 오브젝트(1194) 상에 디스플레이하기 위해 매칭/맵핑될 수 있다. 일부 실시예들에서, 2차 탭(1250) 내의 특정 콘텐츠는 멀티-스택 가상 오브젝트(1194)에 저장될 수 있다. 다른 실시예들에서, 2차 탭(1250) 내에 상주하는 전체 콘텐츠는 멀티-스택 가상 오브젝트(1194) 상에 저장 및/또는 디스플레이될 수 있다. 마찬가지로, 가상 롤로덱스(1190)는 2차 탭(1250)으로부터 특정 콘텐츠를 포함할 수 있거나 또는 가상 롤로덱스(1190)는 2차 탭(1250) 내에 상주하는 전체 콘텐츠를 포함할 수 있다.
[0208] 일부 실시예들에서, 웹 브라우저(1110)의 콘텐츠 엘리먼트들(예컨대, 2차 탭(1250)의 웹 페이지의 콘텐츠 엘리먼트들)은 사용자의 물리적 환경(1105)에서 양면 평면형 윈도우 가상 오브젝트(미도시) 상에 디스플레이될 수 있다. 예컨대, 웹 페이지의 1차 콘텐츠가 평면형 윈도우 가상 오브젝트의 제1 측(예컨대, 전방 측) 상에 디스플레이될 수 있고, 추가적인 정보, 이를테면 1차 콘텐츠와 관련된 가외 콘텐츠가 평면형 윈도우 가상 오브젝트의 제2 측(예컨대, 후방 측) 상에 디스플레이될 수 있다. 예로서, 상인 웹 페이지(예컨대, BESTBUY)가 제1 측 상에 디스플레이될 수 있고, 쿠폰들 및 디스카운트들의 세트가 제2 측 상에 디스플레이될 수 있다. 디스카운트 정보는 제2 측 상에서 업데이트되고 있어서, 사용자가 제1 측(예컨대, 오직 랩톱 또는 제2 측 상의 홈 기기 디스카운트) 상에서 브라우징하고 있는 것의 현재 콘텍스트를 반영할 수 있다.
[0209] 웹 브라우저(1110)에서 보일 때 일부 웹 페이지들은 다수 걸쳐 있을 수 있다. 웹 브라우저(1110)에서 보일 때, 이러한 웹 페이지들은 웹 브라우저(1110)에서 스크롤링함으로써 또는 웹 브라우저(1110)에서 다수의 페이지들을 내비게이팅함으로써 보일 수 있다. 웹 브라우저(1110)로부터의 이러한 웹 페이지들을 사용자의 물리적 환경(1105)에 매칭/맵핑할 때, 이러한 웹 페이지들은 양면 웹 페이지들로서 매칭/맵핑될 수 있다. 도 13a-13b는 일부 실시예들에 따르면 예시적인 양면 웹 페이지들을 예시한다. 도 13a는 스무디 음료를 도시하는 반면, 도 13b는 스무디를 제조하기 위한 성분들 및 방향들을 포함하는 스무디 음료의 예시적인 후방 측/제2 측을 예시한다. 일부 실시예들에서, 메인 벽(1180)의 전방 측은 양면 웹 페이지의 제1 측을 포함할 수 있고 메인 벽(1180)의 후방 측은 양면 웹 페이지의 제2 측을 포함할 수 있다. 이러한 예에서, 사용자(1108)는 양면 웹 페이지의 양 측들을 보기 위해 메인 벽(1180) 주위를 걸어야 할 것이다. 일부 실시예들에서, 메인 벽(1180)의 전방 측은 양면 웹 페이지의 양 측들을 포함할 수 있다. 이러한 예에서, 사용자(1108)는 사용자 입력을 통해 양면 웹 페이지의 2개의 측들 간에 토글링할 수 있다. 양면 웹 페이지는 사용자 입력에 대한 응답으로 제1 측으로부터 제2 측으로 플립하는 것으로 나타날 수 있다. 양면 웹 페이지들은 웹 브라우저(1110)에서 보일 때 다수의 페이지들에 걸쳐 있는 웹 페이지들로부터 생성되고 있는 것으로 설명되지만, 양면 웹 페이지들은 임의의 웹 페이지 또는 그 부분들 또는 다수의 웹 페이지들로부터 생성될 수 있다. VR 및/또는 AR 시스템은 기존 콘텐츠(예컨대, 2차 탭(1250) 또는 웹 페이지)에 추가될 수 있는 HTML 특성들을 사용하기 쉬운 세트를 제공하여, 렌더링 모듈이 양면 2D 브라우저 평면형 윈도우 가상 오브젝트 상에 콘텐츠를 렌더링하는 것을 이용가능하게 할 수 있다. 예는 양면 평면형 윈도우 가상 오브젝트를 설명하지만, 가상 오브젝트는 임의의 수의 측들(N-측들)을 가질 수 있다. 예는 양면 평면형 윈도우 가상 오브젝트 상에 콘텐츠를 디스플레이하는 것을 설명하지만, 콘텐츠 엘리먼트들은 실제 오브젝트의 다수의 표면들(예를 들어, 문의 전방 측 및 문의 후방 측) 상에 있을 수 있다.
[0210] 수직 표면(1182)은 룸(사용자의 물리적 환경(1105)으로 묘사됨)의 메인 벽(1180) 상에 이미 있을 수 있는 임의의 타입의 구조, 이를테면 창문 유리 또는 사진 프레임일 수 있다. 일부 실시예들에서, 수직 표면(1182)은, 사용자(1108)가 메인 비디오(1220)를 보기에 적합한 수직 표면(1182)의 프레임의 최적의 사이즈를 머리-장착 시스템(1160)이 결정하는 빈 벽일 수 있다. 수직 표면(1182)의 사이즈의 이러한 결정은, 사용자(1108)가 메인 벽(1180)으로부터 있는 거리, 메인 비디오(1220)의 사이즈 및 디멘션, 메인 비디오(1220)의 품질, 커버되지 않은 벽 공간의 양, 및/또는 메인 벽(1180)을 보고 있을 때 사용자의 포즈에 적어도 부분적으로 기반할 수 있다. 예컨대, 만약 메인 비디오(1220)의 품질이 높은 분해능이라면, 수직 표면(1182)의 사이즈는 더 클 수 있는데, 이는 메인 비디오(1220)의 품질이 수직 표면(1182)에 의해 악영향을 받지 않을 것이기 때문이다. 그러나, 만약 메인 비디오(1220)의 비디오 품질이 열악한 품질이라면, 큰 수직 표면(1182)을 갖는 것은 비디오 품질을 크게 방해할 수 있고, 이러한 경우, 본 개시내용의 방법들 및 시스템들은 픽실레이션(pixilation)으로부터 열악한 비디오 품질을 최소화하기 위해 콘텐츠가 수직 표면(1182) 내에서 더 작게 디스플레이되는 방법을 리사이징/재정의할 수 있다.
[0211] 수직 표면(1186)은 수직 표면(1182)과 같이, 사용자의 물리적 환경(1105) 내의 인접한 벽(예컨대, 측벽(1184)) 상의 수직 표면이다. 일부 실시예들에서, 사용자(1108)의 배향에 기반하여, 측벽(1184) 및 수직 표면(1186)은 인클라인(incline) 상에 경사진 표면들인 것으로 나타날 수 있다. 인클라인 상의 경사진 표면들은 수직 및 수평 표면들 외에도 표면들의 배향의 타입일 수 있다. YOUTUBE 웹 페이지로부터 제안된 비디오들(1240)은 측벽(1184) 상의 수직 표면(1186) 상에 배치되어, 사용자(1108)가 이러한 예에서 자신들의 머리를 단순히 약간 오른쪽으로 이동시킴으로써 제안된 비디오들을 볼 수 있게 허용할 수 있다.
[0212] 가상 롤로덱스(1190)는 머리-장착 시스템(1160)에 의해 생성되고 사용자(1108)에게 디스플레이되는 가상 오브젝트이다. 가상 롤로덱스(1190)는 사용자(1108)가 한 세트의 가상 페이지들을 양방향으로 순환시키기 위한 능력을 가질 수 있다. 가상 롤로덱스(1190)는 전체 웹 페이지들을 포함할 수 있거나, 이는 개별 기사들 또는 비디오들 또는 오디오들을 포함할 수 있다. 이러한 예에 도시된 바와 같이, 가상 롤로덱스(1190)는 2차 탭(1250)으로부터의 콘텐츠의 일부를 포함할 수 있거나, 일부 실시예들에서, 가상 롤로덱스(1190)는 2차 탭(1250)의 전체 페이지를 포함할 수 있다. 사용자(1108)는 가상 롤로덱스(1190) 내의 특정 탭에 간단히 초점을 맞춤으로써 가상 롤로덱스(1190) 내의 콘텐츠를 양방향으로 순환시킬 수 있고, 머리-장착 시스템(1160) 내의 하나 이상의 센서들(예컨대, 센서들(1162))은 사용자(1108)의 눈 초점을 검출하고, 그에 따라서 사용자(1108)에 대한 관련 정보를 획득하기 위해 가상 롤로덱스(1190) 내의 탭들을 순환시킬 것이다. 일부 실시예들에서, 사용자(1108)는 가상 롤로덱스(1190)로부터 관련 정보를 선정하고, 관련 정보를 이용가능한 주변 표면 또는 또 다른 가상 오브젝트, 이를테면, 사용자(1108)에 매우 근접한 가상 디스플레이(미도시) 중 어느 하나에 디스플레이하도록 머리-장착 시스템(1160)에 명령할 수 있다.
[0213] 가상 롤로덱스(1190)와 유사한 멀티-스택 가상 오브젝트(1194)는 범위가, 하나 이상의 탭들로부터의 완전한 콘텐츠들, 또는 사용자(1108)가 북마크하거나, 미래의 뷰잉을 위해 저장하거나 개방한 다양한 웹페이지들 또는 탭들(즉, 비활성 탭들)로부터의 특정 콘텐츠들로부터인 콘텐츠를 포함할 수 있다. 멀티-스택 가상 오브젝트(1194)는 또한 신문의 실세계 스택과 유사하다. 멀티-스택 가상 오브젝트(1194) 내의 각각의 스택은 특정 신문 기사, 페이지, 잡지 이슈, 레시피 등에 관련될 수 있다. 콘텐츠 소스로부터의 콘텐츠 엘리먼트 또는 콘텐츠를 배치하기 위한 표면을 제공하는 이러한 동일한 목적을 달성하기 위해 다수의 타입들의 가상 오브젝트들이 존재할 수 있다는 것을 당업자는 인지할 수 있다.
[0214] 웹 브라우저(1110)에 의해 액세스 또는 디스플레이된 콘텐츠가 단지 웹 페이지 이상일 수 있다는 것을 당업자는 인지할 수 있다. 일부 실시예들에서, 콘텐츠는 포토 앨범들로부터의 사진들, 영화들로부터의 비디오들, TV 쇼들, YOUTUBE 비디오들, 상호작용 형태들 등일 수 있다. 또 다른 실시예들에서, 콘텐츠는 e-책들 또는 책을 디스플레이하는 임의의 전자 수단일 수 있다. 마지막으로, 다른 실시예들에서, 콘텐츠는 아직 설명되지 않은 다른 타입들의 콘텐츠일 수 있는데, 왜냐하면 콘텐츠가 일반적으로 정보가 현재 제공되는 방법이기 때문이다. 만약 전자 디바이스가 콘텐츠를 소비하면, 콘텐츠는 콘텐츠를 3D 세팅(예컨대, AR)에서 분해하고 디스플레이하기 위해 머리-장착 시스템(1160)에 의해 사용될 수 있다.
[0215] 일부 실시예들에서, 액세스된 콘텐츠를 매칭/맵핑하는 것은 (예컨대, 브라우저로부터) 콘텐츠를 추출하는 것 및 (콘텐츠가 더 이상 브라우저에 있지 않고 표면 상에만 있도록) 콘텐츠를 표면 상에 놓는 것을 포함할 수 있고, 일부 실시예들에서, 매칭/맵핑하는 것은 (예컨대, 브라우저로부터) 콘텐츠를 복제하는 것 및 (콘텐츠가 브라우저에 뿐만 아니라 표면 상에 있도록) 콘텐츠를 표면 상에 놓는 것을 포함할 수 있다.
[0216] 콘텐츠를 분해하는 것은 인터넷 및 컴퓨터-관련 기술 영역에서 존재하는 기술적 문제점이다. 웹 페이지들과 같은 디지털 콘텐츠들은, 사용자를 위한 스크린 상의 웹 페이지들 내에 엘리먼트들을 어디에 그리고 어떻게 디스플레이할지를 컴퓨터 프로세서들 및 기술적 컴포넌트들에 명령하기 위해 특정 타입들의 프로그래밍 언어들, 이를테면, HTML을 사용하여 구성된다. 앞서 논의된 바와 같이, 웹 설계자는 전형적으로 엘리먼트들(예컨대, 콘텐츠)을 2D 캔버스 내에 배치하고 디스플레이하기 위해 제한된 2D 캔버스(예컨대, 스크린) 내에서 작업한다. HTML 태그들은 HTML 문서 또는 HTML 문서 내의 부분들이 어떻게 포맷되는지를 결정하는 데 사용된다. 일부 실시예들에서, (추출 또는 복제된) 콘텐츠는 HTML 태그 레퍼런스를 유지할 수 있고, 일부 실시예들에서, HTML 태그 레퍼런스가 재정의될 수 있다.
[0217] 이러한 예에 관련하여 도 4를 간략히 참조하면, 410에서 콘텐츠를 수신하는 것은 디지털 콘텐츠를 서치하기 위한 머리-장착 시스템(1160)의 사용을 수반할 수 있다. 410에서 콘텐츠를 수신하는 것은 또한 네트워크(1120)에 연결된 서버들(예컨대, 저장 디바이스들(1130)) 상의 디지털 콘텐츠에 액세스하는 것을 포함할 수 있다. 410에서 콘텐츠를 수신하는 것은 사용자(1108)가 관심을 갖는 웹 페이지들에 대한 인터넷을 브라우징하는 것을 포함할 수 있다. 일부 실시예들에서, 410에서 콘텐츠를 수신하는 것은 인터넷 상의 콘텐츠를 서치하기 위한, 사용자(1108)에 의해 정해진 음성-활성화된 커맨드들을 포함할 수 있다. 예컨대, 사용자(1108)는 디바이스(예컨대, 머리-장착 시스템(1160))와 상호작용할 수 있고, 여기서 사용자(1108)는, 비디오를 서치하기 위한 커맨드를 말하고 그런다음 비디오의 네임 및 비디오의 간략한 설명을 말함으로써 특정 비디오를 서치하도록 디바이스에 요청함으로써 인터넷 상의 특정 비디오를 서치한다. 그런다음, 디바이스는, 사용자(1108)가 디바이스의 2D 브라우저 상에 디스플레이되는 비디오를 보도록 허용하기 위해, 인터넷을 서치하고 비디오를 2D 브라우저 상에 풀 업할 수 있다. 그런다음, 사용자(1108)는, 비디오가 사용자(1108)가 공간 3D 환경에서 보고 싶은 비디오라는 것을 확인할 수 있다.
[0218] 일단 콘텐츠가 수신되면, 방법은, 사용자(1108)에게 디스플레이하기 위한 콘텐츠 내의 콘텐츠 엘리먼트들의 목록을 만들기 위해, 420에서 콘텐츠의 콘텐츠 엘리먼트들을 식별한다. 콘텐츠 내의 콘텐츠 엘리먼트들은, 예컨대, 웹 페이지 상에서 포스팅되는 비디오들, 기사들 및 뉴스레터들, 소셜 미디어 웹사이트 상의 코멘트들 및 포스팅들, 블로그 포스트들, 다양한 웹사이트들 상에서 포스팅되는 사진들, 오디오 책들 등을 포함할 수 있다. 콘텐츠(예컨대, 웹 페이지) 내의 이들 엘리먼트들은 콘텐츠에 대한 스크립트 내의 HTML 태그들에 의해 분별가능할 수 있고, 특정 엘리먼트 상의 어디에 배치되는지, 및 일부 경우들에서, 엘리먼트가 언제 그리고 어떻게 디스플레이되는지를 정의하기 위해 콘텐츠 설계자에 의해 제공된 속성들을 갖는 HTML 태그들, 또는 HTML형 태그들을 더 포함할 수 있다. 일부 실시예들에서, 본 개시내용의 방법들 및 시스템들은, 3D 세팅에서 엘리먼트를 어디에 그리고 어떻게 디스플레이하는지를 결정하기 위해 440에서 매칭/맵핑 프로세스를 돕도록 콘텐츠 설계자에 의해 제공된 힌트들 및 제안들로서 이들 HTML 태그들 및 속성들을 활용할 수 있다. 예컨대, 아래는 콘텐츠 설계자(예컨대, 웹 페이지 개발자)에 의해 제공된 예시적인 HTML 웹 페이지 코드이다.
콘텐츠 설계자에 의해 제공된 예시적인 HTML 웹 페이지 코드
Figure 112022083174089-pat00001
[0219] 콘텐츠 설계자에 의해 제공된 예시적인 HTML 웹 페이지 코드는 웹 페이지 상에 메인 비디오를 어떻게 디스플레이할지에 대한 선호도, 및 추천(또는 제안)되는 비디오들을 어떻게 디스플레이할지에 대한 선호도를 포함한다. 선호도들은 태그들의 하나 이상의 속성들로서 운반될 수 있다. 콘텐츠 엘리먼트들에 대한 예시적인 속성들이 위에 그리고 아래에 설명된다. 속성들은 앞서 설명된 바와 같이 결정 또는 추론될 수 있다. 특히, 이러한 HTML 웹 페이지 코드는, 비디오를 디스플레이하기 위한 수직 표면을 지정하기 위해 "vertical"의 타입 값을 사용하여 메인 비디오를 어떻게 디스플레이할지를 특정하기 위해 "style"의 태그를 사용한다. 추가적으로, "style" 태그 내에서, 콘텐츠 설계자에 의해 제공된 추가적인 힌트들은, 웹 페이지(예컨대, 메인 비디오) 내의 어떤 HTML 엘리먼트/콘텐츠가 어떤 잠재적인 표면 영역에 매칭/맵핑되어야 하는지를 우선순위화하는 데 사용하기 위한 매칭 알고리즘에 대한 "priority" 선호도 속성을 포함할 수 있다. 예시적인 HTML 웹 페이지 코드에서, 우선순위는 수직 평면 레이아웃을 갖는 비디오에 대해 100의 값으로 세팅되었고, 여기서 이러한 예에서, 더 높은 우선순위 값은 더 높은 우선순위를 표시한다. 추가적으로, 이러한 예에서, 제안된 비디오들을 배치하기 위한 선호도 속성은 스택 레이아웃의 "horizontal"의 타입 값을 갖는 스택에 콘텐츠 설계자에 의해 표시되고, 여기서 스택된 오브젝트들(예컨대, 이 경우에, 다른 제안된 비디오에 관하여 제안된 비디오) 사이의 거리는 20 cm이어야 한다.
[0220] 일부 실시예들에서, 예컨대, <ml-container>와 같은 태그는, 해석기(예컨대, 해석기(115))가 콘텐츠 엘리먼트들이 3D 공간 환경에서 어디에 그리고 어떻게 디스플레이되어야 하는지를 결정하기 위해 태그 내에 특정된 속성들을 해석할 수 있도록, 콘텐츠 엘리먼트들이 환경(예컨대, 3D 공간 환경)에 어디에 그리고 어떻게 디스플레이되어야 하는지에 대한 특정 선호도 속성들(예컨대, 힌트들)을 콘텐츠 설계자가 제공하게 허용할 수 있다. 특정 선호도 속성들은 콘텐츠 엘리먼트들에 대한 디스플레이 선호도들을 정의하기 위한 하나 이상의 속성들을 포함할 수 있다. 속성들은 위에서 설명된 속성들 중 임의의 속성을 포함할 수 있다.
[0221] 콘텐츠 설계자에 의해 정의된 이들 제안들, 힌트들 및/또는 속성들이, 예컨대, <ml-container>와 같은 태그 내에 정의될 수 있고, 태그가 3D 공간 환경에서 콘텐츠 엘리먼트들을 디스플레이하기 위한 유사한 속성들을 표시할 수 있다는 것을 당업자는 인지할 수 있다. 추가적으로, 콘텐츠 설계자가 임의의 조합으로 속성들을 특정할 수 있다는 것을 당업자는 또한 인지할 수 있다. 본원에서 개시된 실시예들은, 콘텐츠 내의 콘텐츠 엘리먼트들을 어떻게 그리고 어디에 최상으로 디스플레이할지를 결정하도록 웹 페이지의 콘텐츠를 분석하기 위해, 파서(예컨대, 파서(115)) 또는 다른 유사한 기술들의 사용에 의해 원하는 디스플레이 결과를 해석할 수 있다.
[0222] 이러한 예와 관련하여 도 5를 간략히 참조하면, 510에서 콘텐츠 내의 엘리먼트들을 식별하는 것은 도 4의 420에서 콘텐츠의 엘리먼트들을 식별하는 것과 유사할 수 있다. 방법은 520에서 콘텐츠의 배치에 관련한 태그들로부터 속성들을 식별하는 다음 단계로 진행한다. 앞서 논의된 바와 같이, 콘텐츠 설계자는, 웹 페이지를 설계 및 구성하면서, 각각의 콘텐츠 엘리먼트를 어디에 그리고 어떻게 디스플레이할지를 정의하기 위해, 웹 페이지 내의 콘텐츠 엘리먼트들과 HTML 태그들을 연관시킬 수 있다. 이들 HTML 태그들은 또한 웹 페이지의 특정 부분 상의 콘텐츠 엘리먼트의 배치에 관련한 속성들을 포함할 수 있다. 이것은 이들 HTML 태그들, 및 머리-장착 시스템(1160)이 특정 엘리먼트가 어디에 디스플레이될 수 있는지에 관한 입력으로서 사용할 시스템의 다른 컴포넌트들을 검출하고 이들을 조정할 것이라는 해당 태그들의 속성들이다. 일부 실시예들에서, 예컨대, <ml-container>와 같은 태그는 3D 공간 환경의 콘텐츠 엘리먼트들의 디스플레이 선호도 속성들을 제안하기 위해 콘텐츠 설계자에 의해 특정된 속성들을 포함할 수 있고, 여기서 태그들은 콘텐츠 엘리먼트들와 연관된다.
[0223] 각각의 엘리먼트로부터 힌트들 또는 태그들을 추출하는 것은 530에서 수행된다. 힌트들 또는 태그들은 전형적으로 웹 페이지의 콘텐츠 설계자에 의해 제공된 포맷팅 힌트들 또는 포맷팅 태그들이다. 앞서 논의된 바와 같이, 콘텐츠 설계자는, 웹 페이지 또는 스크린의 특정 부분에 콘텐츠 엘리먼트들을 디스플레이하도록 웹 브라우저(1110)에 명령하기 위해, "웹 페이지 개발자에 의해 제공된 예시적인 HTML 웹 페이지 코드"에 도시된 바와 같은, 예컨대, HTML 태그 형태의 명령들 또는 힌트들을 제공할 수 있다. 일부 실시예들에서, 콘텐츠 설계자는 추가적인 포맷팅 규칙들을 정의하기 위해 추가적인 HTML 태그 속성들을 사용할 수 있다. 예컨대, 만약 사용자가 특정 컬러(예컨대, 적색)에 대한 감소된 민감도를 갖고, 적색을 디스플레이하지 않고, 대신에 다른 컬러를 사용하면, 또는 만약 수직 표면 상에 디스플레이되는 선호도를 갖는 비디오가 수직 표면 상에 디스플레이될 수 없다면, 대안적으로 비디오를 다른(물리적) 표면 상에 디스플레이하거나 가상 표면을 생성하고, 비디오를 가상 표면 상에 디스플레이한다. 아래는 HTML 페이지 내의 각각의 엘리먼트로부터 힌트들/태그들을 추출하도록 HTML 페이지 전반에 걸쳐 해석하기 위해 브라우저에서 구현된 예시적인 HTML 페이지 해석기이다.
브라우저에서 구현된 예시적인 HTML 페이지 해석기
Figure 112022083174089-pat00002
Figure 112022083174089-pat00003
[0224] 예시적인 HTML 페이지 해석기는, 특정 콘텐츠 엘리먼트들에 대한 디스플레이 선호도 속성들을 제공하는 데 사용되는 HTML 태그들을 포함하는 HTML 페이지가 어떻게 해석되고 식별되고 그리고/또는 추출/복제될 수 있는지를 보여준다. 예시적인 HTML 페이지 해석기에 개시된 바와 같이, 콘텐츠 엘리먼트들은 개시된 샘플 코드를 사용하여 해석될 수 있다. 다양한 엘리먼트 네임들 및 값들을 사용하는 특정 HTML 태그들은, 특정 엘리먼트가 (예컨대, 콘텐츠 엘리먼트와 특정 표면을 매칭시킴으로써) 3D 환경의 사용자에게 어떻게 디스플레이되는지를 결정하기 위해, HTML 페이지 해석기(예컨대, ML.layout, ML.container 등)에 의해 식별/추출될 수 있다.
[0225] 콘텐츠 엘리먼트들에 대한 대안적인 디스플레이 형태들을 룩 업/서치하는 것이 540에서 수행된다. 특정 뷰잉 디바이스 상에 디스플레이되는 콘텐츠 엘리먼트들에 대해 특정 포맷팅 규칙들이 특정될 수 있다. 예컨대, 웹 페이지 상의 이미지에 대해 특정 포맷팅 규칙들이 특정될 수 있다. 시스템은 대안적인 디스플레이 형태들에 액세스할 수 있다. 예컨대, 만약 웹 브라우저(1110)가 3D 버전의 이미지(또는 3D 에셋 또는 더 일반적으로 3D 미디어)를 디스플레이할 수 있다면, 웹 페이지 설계자는, 이미지가 대안적인 버전의 이미지(예컨대, 3D 버전의 이미지)를 가질 수 있다는 것을 웹 브라우저(1110)가 인식하게 허용하기 위해, 추가적인 태그를 배치하거나 특정 태그의 특정 속성들을 정의할 수 있다. 그런다음, 웹 브라우저(1110)는 3D 인에이블 브라우저에 디스플레이될 대안적인 버전의 이미지(예컨대, 3D 버전의 이미지)에 액세스할 수 있다.
[0226] 일부 실시예들에서, 웹 페이지 내의 3D 이미지는 3D 환경의 표면들 상에 디스플레이되도록 웹 페이지로부터 추출 가능하거나 또는 카피되지 않을 수 있다. 이들 실시예들에서, 3D 이미지는 사용자의 3D 환경 내에 디스플레이될 수 있으며, 여기서 3D 이미지는 회전하거나 글로 등을 하는 것으로 나타나고, 사용자는 3D 이미지와 상호작용할 수 있지만 3D 이미지를 포함하는 웹 페이지 내에서만 가능하다. 이들 실시예들에서, 3D 이미지가 웹 페이지로부터 추출되거나 카피되지 않았기 때문에, 3D 이미지의 디스플레이는 웹 페이지 내에 디스플레이된다. 이 경우에, 전체 웹 페이지가 추출되어 사용자의 3D 환경에서 디스플레이되고, 웹 페이지에서 추출되거나 카피되지 않더라도, 예컨대 3D 이미지와 같은 웹 페이지 내의 일부 콘텐츠 엘리먼트들이 웹 페이지의 나머지 부분과 관련하여 3D로 나타날 수 있고, 웹 페이지 내에서 상호작용할 수 있다.
[0227] 일부 실시예들에서, 웹 페이지 내의 3D 이미지는 웹 페이지로부터 추출되는 것이 아니라 카피될 수 있다. 이들 실시예들에서, 3D 이미지는 사용자의 3D 환경 내에 디스플레이될 수 있으며, 여기서 3D 이미지는 회전하거나 글로 등을 하는 것으로 나타나고, 사용자는, 3D 이미지를 포함하는 웹 페이지 내에서 뿐만 아니라 3D 이미지의 카피를 포함하는 웹 페이지 외부의 3D 환경에서도 3D 이미지와 상호작용할 수 있다. 웹 페이지는 3D 이미지와 동일하게 나타나며 웹 페이지 외부에 3D 이미지 카피가 존재한다.
[0228] 일부 실시예들에서, 웹 페이지 내의 3D 이미지는 웹 페이지로부터 추출될 수 있다. 이들 실시예들에서, 3D 이미지는 사용자의 3D 환경 내에 디스플레이될 수 있으며, 여기서 3D 이미지는 회전하거나 글로 등을 하는 것으로 나타나고, 사용자는 3D 이미지가 웹 페이지로부터 추출되기 때문에, 웹 페이지 외부에서만 3D 이미지와 상호작용할 수 있다. 3D 이미지는 웹 페이지에서 추출되었기 때문에, 3D 이미지는 3D 환경에서만 디스플레이되며 웹 페이지가 없는 것은 아니다. 이들 실시예들에서, 웹 페이지는 3D 이미지가 웹 페이지로부터 추출된 후에 재구성될 수 있다. 예컨대 추출되기 이전에 3D 이미지가 있던 웹 페이지 내에 블랭크 섹션을 포함하는 웹 페이지의 버전이 사용자에게 제공될 수 있다.
[0229] 이전 실시예들 및 예들이 웹 페이지 내의 3D 이미지와 관련하여 설명되지만, 당업자는 설명이 임의의 콘텐츠 엘리먼트에 유사하게 적용될 수 있다는 것을 인지할 수 있다.
[0230] 식별된 콘텐츠 엘리먼트들을 저장하는 것이 550에서 수행된다. 방법은 콘텐츠 엘리먼트들을 표면들에 매칭시키기 위해 합성 프로세스(140)에서 사용될 식별된 엘리먼트들을 비-일시적 스토리지 매체에 저장할 수 있다. 비-일시적 스토리지 매체는 스토리지 디바이스(1130) 또는 로컬 스토리지 디바이스(1140)와 같은 데이터 스토리지 디바이스를 포함할 수 있다. 콘텐츠 엘리먼트들은 아래에서 설명되는 도 14a에 개시된 테이블과 같은 특정 테이블에 저장될 수 있다. 일부 실시예들에서, 콘텐츠 엘리먼트들은 예컨대 아래에서 설명되는 도 14b에 개시된 바와 같은 트리 구조로서 표현된 계층적 구조로 저장될 수 있다. 일부 실시예들에서, 콘텐츠 엘리먼트들은 일시적 스토리지 매체에 저장될 수 있다.
[0231] 도 14a-14b는 일부 실시예들에 따르면, 콘텐츠로부터 분해된 콘텐츠 엘리먼트들을 저장하기 위한 상이한 구조들의 예들을 도시한다. 도 14a에서, 엘리먼트 테이블(1400)은 도 5의 510에서 콘텐츠 내의 콘텐츠 엘리먼트들을 식별한 결과들을 데이터베이스에 저장할 수 있는 예시적인 테이블이다. 엘리먼트 테이블(1400)은, 예컨대 엘리먼트 식별(ID)(1410), 콘텐츠 엘리먼트에 대한 선호 속성 표시자(1420)(예컨대 우선순위 속성, 배향 속성, 포지션 타입 속성, 콘텐츠 타입 속성, 표면 타입 속성 등 또는 이들의 일부 조합), 만약 특정 콘텐츠 엘리먼트가 부모 콘텐츠 엘리먼트 내에 포함된다면, 부모 엘리먼트 ID(1430), 만약 콘텐츠 엘리먼트가 자식 콘텐츠 엘리먼트를 포함할 수 있다면 자식 콘텐츠 엘리먼트 ID(1440), 및 콘텐츠 엘리먼트들의 다수의 버전들을 디스플레이하는 것과 호환 가능한 콘텐츠 엘리먼트를 디스플레이하는데 사용되는 표면 또는 가상 오브젝트를 가질 필요성을 보증할 수 있는 다수의 실시예들을 콘텐츠 엘리먼트가 포함하는지 여부를 표시하기 위한 다중 엔티티 표시자(1450)를 포함하는, 콘텐츠 내의 하나 이상의 콘텐츠 엘리먼트들에 관한 정보를 포함한다. 부모 콘텐츠 엘리먼트는 서브-콘텐츠 엘리먼트들(예컨대 자식 콘텐츠 엘리먼트들)를 포함할 수 있는 콘텐츠 내의 콘텐츠 엘리먼트/오브젝트이다. 예컨대 1220(예컨대 메인 비디오(1220))의 값을 갖는 엘리먼트 ID는 1260(예컨대 활성 탭(1260))의 부모 엘리먼트 ID 값을 가지며, 이는 메인 비디오(1220)가 활성 탭(1260)의 자식 콘텐츠 엘리먼트임을 표시한다. 아니면, 상이한 방식으로 언급하면, 메인 비디오(1220)는 활성 탭(1260) 내에 포함된다. 동일한 예를 계속하면, 메인 비디오(1220)는 사용자 코멘트들(1230)이 메인 비디오(1220)와 연관되는지를 표시하는 자식 엘리먼트 ID(1230)(예컨대 사용자 코멘트(1230))를 갖는다. 당업자는 엘리먼트 테이블(1400)이 관계형 데이터베이스 또는 임의의 타입의 데이터베이스의 테이블일 수 있다는 것을 인지할 수 있다. 추가적으로, 엘리먼트들 테이블(1400)은 도 5의 510에서 콘텐츠 내의 콘텐츠 엘리먼트들을 식별한 결과들을 포함하는 컴퓨터 메모리(예컨대 캐시)의 어레이일 수 있다.
[0232] 엘리먼트 테이블(1400)의 행들(1460)의 각각의 행은 웹 페이지 내로부터의 콘텐츠 엘리먼트에 대응한다. 엘리먼트 ID(1410)는 각각의 콘텐츠 엘리먼트에 대한 고유 식별자(예컨대 엘리먼트 ID)를 포함하는 열이다. 일부 실시예들에서, 콘텐츠 엘리먼트들의 고유성은 엘리먼트 ID(1410) 열 및 테이블 내의 다른 열(예컨대 만약 콘텐츠 설계자에 의해 식별된 하나 초과의 선호 속성들이 존재한다면 선호 속성(1420) 열)의 조합으로서 정의될 수 있다. 선호 속성(1420)은, 그 값이 콘텐츠 설계자에 의해 그 내부에서 정의된 태그들 및 속성들에 적어도 부분적으로 기반하여 결정되고 도 5의 530에서 각각의 콘텐츠 엘리먼트로부터 힌트들 또는 태그들을 추출하는 데 있어 개시된 바와 같이 시스템 및 방법에 의해 식별되는 열이다. 다른 실시예들에서, 선호 속성(1420) 열은 특정 타입들의 콘텐츠 엘리먼트들이 환경 내에서 디스플레이되어야 하는 곳을 특정하기 위해 사전정의된 규칙들에 적어도 부분적으로 기반하여 결정될 수 있다. 이러한 사전정의된 규칙들은 환경에서 콘텐츠 엘리먼트를 배치할 최상의 곳을 결정하기 위한 시스템들 및 방법들에 대한 제안들을 제공할 수 있다.
[0233] 부모 엘리먼트 ID(1430)는 현재 행 내의 이러한 특정 콘텐츠 엘리먼트가 디스플레이되거나 관련된 부모 콘텐츠 엘리먼트의 엘리먼트 ID를 포함하는 열이다. 특정 콘텐츠 엘리먼트는 페이지의 다른 콘텐츠 엘리먼트 내에 임베딩되거나, 배치되거나 웹 페이지 상의 다른 콘텐츠 엘리먼트와 관련될 수 있다. 예컨대 현재의 실시예에서, 엘리먼트 ID(1410) 열의 제1 엔트리는 도 12의 메인 비디오(1220)에 대응하는 엘리먼트 ID(1220)의 값을 저장한다. 메인 비디오(1220)에 대응하는 선호 속성(1420) 열의 값은 태그들 및/또는 속성들에 기반하여 결정되고, 예시된 바와 같이, 이 콘텐츠 엘리먼트는 사용자의 물리적 환경(1105)의 "메인" 위치에 배치되어야 한다는 것이다. 사용자(1108)의 현재 위치에 의존하여, 그 메인 위치는 거실의 벽, 또는 사용자(1108)가 현재보고 있는 부엌의 스토브 최상부 후드일 수 있거나, 또는 만약 넓은-개방 공간에 있다면, 메인 비디오(1220)가 투사될 수 있는 사용자(1108)의 사이트 라인 앞에 투사되는 가상 오브젝트일 수 있다. 콘텐츠 엘리먼트들이 사용자(1108)에게 어떻게 디스플레이되는지에 대한 더 많은 정보는 상세한 설명의 다른 곳에서 개시될 것이다. 현재 예를 계속하여, 부모 엘리먼트 ID(1430) 열은 도 12의 활성 탭(1260)에 대응하는 엘리먼트 ID(1260)의 값을 저장한다. 따라서, 메인 비디오(1220)는 활성 탭(1260)의 자식이다.
[0234] 자식 엘리먼트 ID(1440)는 현재 행 내의 이러한 특정 콘텐츠 엘리먼트가 디스플레이되거나 관련된 자식 콘텐츠 엘리먼트의 엘리먼트 ID를 포함하는 열이다. 웹 페이지 내의 특정 콘텐츠 엘리먼트는 다른 콘텐츠 엘리먼트 내에 임베딩되거나, 배치되거나 다른 콘텐츠 엘리먼트와 관련될 수 있다. 현재 예를 계속하여, 자식 엘리먼트 ID(1440) 열은 도 12의 사용자 코멘트들(1230)에 대응하는 엘리먼트 ID(1230)의 값을 저장한다.
[0235] 다중 엔티티 표시자(1450)는 콘텐츠 엘리먼트들의 다수의 버전들을 디스플레이하는 것과 호환 가능한 엘리먼트를 디스플레이하는데 사용되는 표면 또는 가상 오브젝트를 가질 필요성을 보증할 수 있는 다수의 엔티티들을 콘텐츠 엘리먼트가 포함하는지를 표시하는 열이다(예컨대 콘텐츠 엘리먼트는 사용자 코멘트들(1230)일 수 있고, 여기서 메인 비디오(1220)에 대해, 이용가능한 하나 초과의 코멘트가 존재할 수 있음). 현재 예를 계속하여, 다중 엔티티 표시자(1450) 열은 메인 비디오(1220)가 활성 탭(1260)의 다수의 메인 비디오들을 갖지 않거나 이에 대응하지 않음을 표시하기 위해 "N"의 값을 저장한다(예컨대 메인 비디오(1220)의 "NO" 다수의 버전들).
[0236] 현재 예를 계속하여, 엘리먼트 ID(1410) 열의 제2 엔트리는 도 12의 사용자 코멘트들(1230)에 대응하는 엘리먼트 ID(1230)의 값을 저장한다. 사용자 코멘트들(1230)에 대응하는 선호 속성(1420) 열의 값은 사용자 코멘트들(1230)이 사용자의 물리적 환경(1105) 내의 어딘가의 수평 표면 상에 배치되어야 함을 표시하기 위해 "수평"의 선호도를 도시한다. 앞서 논의된 바와 같이, 수평 표면은 사용자의 물리적 환경(1105)에서 이용가능한 수평 표면들에 기반하여 결정될 것이다. 일부 실시예들에서, 사용자의 물리적 환경(1105)은 수평 표면을 갖지 않을 수 있으며, 이 경우에 본 개시내용의 시스템들 및 방법들은 사용자 코멘트들(1230)을 디스플레이하기 위해 수평 표면을 갖는 가상 오브젝트를 식별/생성할 수 있다. 현재 예를 계속하여, 부모 엘리먼트 ID(1430) 열은 도 12의 메인 비디오(1220)에 대응하는 값 엘리먼트 ID(1220)를 저장하고, 다수의 엔티티 표시자(1450) 열은 사용자 코멘트들(1230)이 하나 초과의 값(예컨대 하나 초과의 사용자 코멘트)을 포함할 수 있음을 표시하기 위해 "Y"의 값을 저장한다.
[0237] 엘리먼트 테이블(1400) 내의 나머지 행들은 사용자(1108)에게 관심있는 나머지 콘텐츠 엘리먼트들에 대한 정보를 포함한다. 분석이 콘텐츠에 대해 수행되면, 만약 다른 사용자가 동일한 콘텐츠에 관심이 있다면 콘텐츠의 미래의 분석을 위해 그것이 시스템 및 방법에 의해 보유될 수 있기 때문에, 510에서 콘텐츠 내의 콘텐츠 엘리먼트들을 식별한 결과들을 저장하는 것이 컴퓨터 그 자체의 기능을 개선한다는 것을 당업자는 인지할 것이다. 이 특정 콘텐츠를 분해하기 위한 시스템 및 방법은 그것이 이전에 이미 완료되었으므로 회피될 수 있다.
[0238] 일부 실시예들에서, 엘리먼트 테이블(1400)은 스토리지 디바이스(1130)들에 저장될 수 있다. 다른 실시예들에서, 엘리먼트 테이블(1400)은 최근에 본 콘텐츠에 대한 신속한 액세스를 위해 또는 최근에 본 콘텐츠에 대한 가능한 재방문을 위해 로컬 스토리지 디바이스(1140)에 저장될 수 있다. 또 다른 실시예들에서, 엘리먼트 테이블(1400)은 사용자(1108)로부터 원격으로 위치된 스토리지 디바이스들(1130) 및 사용자(1108)에 로컬로 위치된 로컬 스토리지 디바이스(1140) 둘 모두에 저장될 수 있다.
[0239] 도 14b에서, 트리 구조(1405)는 도 5의 510에서 콘텐츠 내의 엘리먼트들을 식별한 결과들을 데이터베이스에 저장하는데 사용될 수 있는 예시적인 논리 구조이다. 콘텐츠 엘리먼트들을 트리 구조로 저장하는 것은 다양한 콘텐츠가 서로 계층적 관계를 가질 때 유리할 수 있다. 트리 구조(1405)는 부모 노드-웹 페이지 메인 탭 노드(1415), 제1 자식 노드-메인 비디오 노드(1425) 및 제2 자식 노드-제안된 비디오 노드(1445)를 포함한다. 제1 자식 노드-메인 비디오 노드(1425)는 자식 노드-사용자 코멘트 노드(1435)를 포함한다. 사용자 코멘트 노드(1435)는 웹 페이지 메인 탭 노드(1415)의 손자이다. 예로서, 도 12를 참조하면, 웹 페이지 메인 탭 노드(1415)는 웹 페이지 메인 탭(1260)일 수 있고, 메인 비디오 노드(1425)는 메인 비디오(1220)일 수 있고, 사용자 코멘트 노드(1435)는 사용자 코멘트들(1230)일 수 있고, 제안된 비디오 노드(1445)는 제안된 비디오들(1240)일 수 있다. 여기서, 콘텐츠 엘리먼트들의 트리 구조 구성은 다양한 콘텐츠 엘리먼트들 간의 계층적 관계를 도시한다. 콘텐츠 엘리먼트들을 트리 구조 타입의 논리 구조로 구성하고 저장하는 것이 유리할 수 있다. 예컨대 만약 메인 비디오(1220)가 특정 표면 상에 디스플레이된다면, 사용자 코멘트들(1230)이 메인 비디오(1220)의 자식 콘텐츠이고 메인 비디오(1220)에 비교적 가까이 사용자 코멘트들(1230)을 디스플레이하고 그리고/또는 메인 비디오(1220) 근처의 표면 상에 사용자 코멘트들(1230)을 디스플레이하여서, 사용자가 사용자 코멘트들(1230)과 메인 비디오(1220) 사이의 관계를 쉽게 보고 이해할 수 있게 하는 것이 유익할 수 있음을 시스템이 아는 것이 유용할 수 있다. 일부 실시예들에서, 만약 사용자가 메인 비디오(1220)를 숨기거나 닫기로 판단한다면, 사용자 코멘트들(1230)을 숨기거나 닫을 수 있는 것이 유익할 수 있다. 일부 실시예들에서, 만약 사용자가 메인 비디오(1220)를 다른 표면으로 이동시키기로 판단한다면, 사용자 코멘트들(1230)을 다른 표면으로 이동시킬 수 있는 것이 유익할 수 있다. 시스템은 사용자가 부모 노드-메인 비디오 노드(1425) 및 자식 노드-사용자 코멘트 노드(1435) 둘 모두를 동시에 이동시킴으로써 메인 비디오(1220)를 이동시킬 때 사용자 코멘트들(1230)을 이동시킬 수 있다.
[0240] 도 4를 다시 참조하면, 방법은 430에서 표면들을 결정하는 것으로 계속된다. 사용자(1108)는 머리-장착 시스템(1160)이 주변 표면들 이를테면, 벽, 테이블, 페인팅, 창문 프레임, 스토브, 냉장고, TV 등을 캡처 및 식별하게 허용하도록 머리-장착 시스템(1160)을 통해 사용자의 물리적 환경(1105)을 볼 수 있다. 머리-장착 시스템(1160)은 머리-장착 시스템(1160) 상의 센서들 및 카메라들 또는 임의의 다른 타입의 유사한 디바이스 때문에 사용자의 물리적 환경(1105) 내의 실제 오브젝트들을 인식한다. 일부 실시예들에서, 머리-장착 시스템(1160)은 사용자의 물리적 환경(1105) 내에서 관찰된 실제 오브젝트들을 스토리지 디바이스(1130) 또는 로컬 스토리지 디바이스(1140) 내에 저장된 가상 오브젝트들과 매칭하여 이러한 가상 오브젝트들에서 이용가능한 표면들을 식별할 수 있다. 실제 오브젝트들은 사용자의 물리적 환경(1105) 내에서 식별된 오브젝트들이다. 가상 오브젝트들은 사용자의 물리적 환경 내에 물리적으로 존재하지 않지만, 가상 오브젝트들이 사용자의 물리적 환경에 존재하는 것처럼 나타나도록 사용자에게 디스플레이될 수 있는 오브젝트들이다. 예컨대 머리-장착 시스템(1160)은 사용자의 물리적 환경(1105) 내에서 테이블의 이미지를 검출할 수 있다. 테이블 이미지는 스토리지 디바이스(1130) 또는 로컬 스토리지 디바이스(1140)에서의 비교 및 매칭을 위해 3D 포인트 클라우드 오브젝트로 감소될 수 있다. 만약 실제 오브젝트와 3D 포인트 클라우드 오브젝트(예컨대 테이블)의 매칭이 검출된다면, 시스템 및 방법은 테이블을 표현하는 3D 포인트 클라우드 오브젝트가 수평 표면을 갖는 것으로 정의되기 때문에 수평 표면을 갖는 것으로 테이블을 식별할 것이다.
[0241] 일부 실시예들에서, 가상 오브젝트들은 추출된 오브젝트들일 수 있고, 여기서 추출된 오브젝트는 사용자의 물리적 환경(1105) 내에서 식별된 물리적 오브젝트일 수 있지만, (예컨대, 물리적 오브젝트의 특정 특징을 강조하도록 물리적 오브젝트의 컬러를 변경하기 위해서 등) 물리적 오브젝트 그 자체에 대해 행해질 수 없을 수 있는 추가적인 프로세싱 및 연관성들이 추출된 오브젝트에 대해 이루어질 수 있도록 물리적 오브젝트의 장소에서 가상 오브젝트로서 사용자에게 디스플레이된다. 또한, 추출된 오브젝트들은 콘텐츠(예컨대 브라우저로부터의 웹 페이지)로부터 추출되고 사용자(1108)에게 디스플레이되는 가상 오브젝트들일 수 있다. 예컨대 사용자(1108)는 사용자의 물리적 환경(1105) 내에서 디스플레이되도록 웹 페이지 상에 디스플레이되는 소파와 같은 오브젝트를 선택할 수 있다. 시스템은 선택된 오브젝트(예컨대 소파)를 인식하고 추출된 오브젝트(예컨대 소파)가 사용자의 물리적 환경(1105)에 물리적으로 존재하는 것처럼 추출된 오브젝트(예컨대 소파)를 사용자(1108)에게 디스플레이할 수 있다. 추가적으로, 가상 오브젝트들은 또한, 심지어 사용자의 물리적 환경(1105)에 물리적으로 존재하는 않지만, 디스플레이 콘텐츠 관점에서, 사용자에게 특정 콘텐츠를 제공하기 위한 이상적인 디스플레이 표면일 수 있는, 콘텐츠를 디스플레이하기 위한 표면들(예컨대 특정 콘텐츠를 보기 위해 사용자에 아주 가까이 있는 투명한 디스플레이 스크린)을 갖는 오브젝트들을 포함할 수 있다.
[0242] 도 6을 간략히 참조하면, 방법은 610에서 표면들을 결정하는 것으로 시작한다. 방법은 머리-포즈 벡터를 결정하는 것을 포함할 수 있는 620에서 사용자의 포즈를 결정하는 다음 단계로 진행한다. 620에서 사용자의 포즈를 결정하는 것은 사용자의 포즈가 사용자의 물리적 환경(1105) 내의 오브젝트들에 관하여 사용자(1108)에 대한 원근감을 제공할 것이기 때문에, 사용자의 현재 주변을 식별하는 중요한 단계이다. 예컨대 도 11을 다시 참조하면, 머리-장착 시스템(1160)을 사용하는 사용자(1108)는 사용자의 물리적 환경(1105)을 관찰하고 있다. 620에서 사용자의 포즈(즉, 세계에 대한 머리-포즈 벡터 및/또는 원점 포지션 정보)를 결정하는 것은, 예컨대 (1) 사용자(1108)가 지면과 관하여 얼마나 키가 큰지, (2) 사용자(1108)가 룸의 이미지들을 캡처하고 돌아다니기 위해 자신의 머리를 회전시켜야 하는 각도, 및 (3) 사용자(1108)와 테이블(1188), 메인 벽(1180) 및 측벽(1184) 간의 거리를 머리 장착 시스템(1160)이 이해하는 데 도움을 줄 것이다. 추가적으로, 사용자(1108)의 포즈는 또한 사용자의 물리적 환경(1105) 내의 다른 표면들과 함께, 수직 표면들(1182 및 186)을 관찰할 때 머리-장착 시스템(1160)의 각도를 결정하는데 도움이 된다.
[0243] 630에서, 방법은 표면들의 속성들을 결정한다. 사용자의 물리적 환경(1105) 내의 각각의 표면은 대응하는 속성들로 태깅되고 분류된다. 일부 실시예들에서, 사용자의 물리적 환경(1105) 내의 각각의 표면은 또한 대응하는 디멘션 및/또는 배향 속성들로 태깅되고 분류된다. 이 정보는 표면의 디멘션 속성, 표면의 배향 속성, 사용자(1108)가 특정 표면으로부터 떨어진 거리, 및 콘텐츠 엘리먼트를 위해 디스플레이될 필요가 있는 정보의 타입에 적어도 부분적으로 기반하여 콘텐츠 엘리먼트들을 표면에 매칭시키는데 도움이 될 것이다. 예컨대 풍부한 정보를 포함할 수 있는 기사 또는 블로그보다 비디오가 더 멀리 도시될 수 있으며 여기서 만약 작은 디멘션들을 갖는 떨어진 벽 상에 디스플레이된다면, 기사의 텍스트 사이즈는 사용자가 알아보기에 너무 작을 수 있다. 일부 실시예들에서, 도 1b로부터의 센서(들)(162)는 프로세싱을 위해 원시 데이터를 CVPU(164)에 제공하고, CVPU(164)는 환경 해석기(168)에 대한 데이터를 준비하기 위해 프로세싱된 데이터를 지각 프레임워크(166)에 제공한다. 환경 해석기(168)는 지각 프레임워크(166)로부터의 환경 데이터를 해석하여 환경 내의 표면들을 결정한다.
[0244] 640에서, 방법은 추출된 엘리먼트들을 특정 표면들에 매칭/맵핑하기 위해 합성 프로세스/매칭/맵핑 루틴에 의해 사용될 비-일시적 스토리지 매체에 표면의 목록을 저장한다. 비-일시적 스토리지 매체는 스토리지 디바이스들(1130) 또는 로컬 스토리지 디바이스들(1140)과 같은 데이터 스토리지 디바이스를 포함할 수 있다. 식별된 표면들은 아래에서 설명되는 도 15에 개시된 테이블과 같은 특정 테이블에 저장될 수 있다. 일부 실시예들에서, 식별된 표면들은 일시적 스토리지 매체에 저장될 수 있다.
[0245] 도 15는 일부 실시예들에 따르면, 사용자의 로컬 환경으로부터 식별된 표면들의 목록을 저장하기 위한 테이블의 예를 도시한다. 표면 테이블(1500)은 주변 표면들 및 속성들을 식별하는 프로세스의 결과들을 데이터베이스에 저장할 수 있는 예시적인 테이블이다. 표면 테이블(1500)은, 예컨대 표면 ID(1510), 폭(1520), 높이(1530), 배향(1540), 실제 또는 가상 표시기(1550), 배수(1560), 포지션(1570) 및 사용자(1580)에 대한 표면 배향에 상대적인 내적을 포함하는 데이터 열들을 갖는 사용자의 물리적 환경(1105) 내의 표면들에 관한 정보를 포함한다. 표면 테이블(1500)은 각각의 표면의 다른 속성들을 표현하는 추가적인 열들을 가질 수 있다. 당업자는 표면 테이블(1500)이 관계형 데이터베이스 또는 임의의 타입의 데이터베이스의 테이블일 수 있다는 것을 인지할 수 있다. 추가적으로, 표면 테이블(1500)은 도 4의 430에서 표면들을 결정하는 결과들을 저장하는 컴퓨터 메모리(예컨대 캐시) 내의 어레이일 수 있다.
[0246] 표면 테이블(1500)의 행들(1590)의 각각의 행은 사용자의 물리적 환경(1105)으로부터의 표면 또는 사용자의 물리적 환경(1105) 내에서 사용자(1108)에게 디스플레이될 수 있는 가상 표면에 대응할 수 있다. 표면 ID(1510)는 특정 표면을 고유하게 식별하기 위한 고유 식별자(예컨대 표면 ID)를 포함하는 열이다. 특정 표면의 디멘션은 폭(1520) 및 높이(1530) 열들에 저장된다.
[0247] 배향(1540)은 사용자(1108)에 대한 표면의 배향(예컨대, 수직, 수평 등)을 표시하는 열이다. 실제/가상(1550)은, 특정 표면이 머리-장착 시스템(1160)을 사용하여 사용자(1108)에 의해 지각되는 바와 같이 사용자의 물리적 환경(1105) 내의 실제 표면/오브젝트 상에 위치되는지 여부, 또는 특정 표면이 머리-장착 시스템(1160)에 의해 생성되고 사용자의 물리적 환경(1105) 내에 디스플레이될 가상 표면/오브젝트 상에 위치되는지를 표시하는 열이다. 머리-장착 시스템(1160)은, 사용자의 물리적 환경(1105)이 충분한 표면들을 포함하지 않거나 매칭 스코어 분석에 기반한 충분히 적합한 표면을 포함할 수 있는 상황들에 대한 가상 표면들/오브젝트들을 생성해야 할 수 있거나, 또는 머리-장착 시스템(1160)은, 사용자(1108)가 디스플레이하기를 원하는 콘텐츠의 양을 디스플레이하기에 충분한 표면들을 검출하지 못할 수 있다. 이들 실시예들에서, 머리-장착 시스템(1160)은 디스플레이를 위해 식별된 특정 타입들의 엘리먼트들을 디스플레이하기에 적합한 표면 디멘션들을 가질 수 있는 기존 가상 오브젝트들의 데이터베이스로부터 서치할 수 있다. 데이터베이스는 스토리지 디바이스들(1130) 또는 로컬 스토리지 디바이스(1140)로부터의 것일 수 있다. 일부 실시예들에서, 가상 표면은 실세계의 사용자의 그리고/또는 디바이스의 1차 시야를 가리지 않기 위해 실질적으로 사용자의 앞에 생성되거나 또는 머리-장착 시스템(1160)의 전방향 벡터로부터 오프셋된다.
[0248] 다중(1560)은, 표면/오브젝트가 엘리먼트의 다수의 버전들을 디스플레이하는 것과 호환가능한지 여부를 표시하는 열이다(예컨대, 엘리먼트는 도 12의 2차 탭일 수 있으며, 여기서 특정 웹 브라우저(1110)의 경우, 하나 초과의 2차(즉, 비활성) 탭이 존재한다(예컨대, 탭 당 하나의 웹 페이지)). 만약 다중(1560) 열이 "다중"의 값, 이를테면 도 12의 가상 롤로덱스(1190)에 대응하는 1190의 값을 저장한 표면 ID 열의 제4 엔트리, 및 도 12의 멀티-스택 가상 오브젝트(1194)에 대응하는 1194의 값을 저장한 표면 ID 열의 제5 엔트리에 대한 경우를 갖는다면, 시스템 및 방법은, 만약 비활성 탭들에 대한 경우와 같이 엘리먼트의 다수의 버전들을 가질 수 있는 엘리먼트가 존재한다면, 이들이 다수의 버전들을 수용할 수 있는 표면들의 타입들이라는 것을 알 것이다.
[0249] 포지션(1570)은 레퍼런스 프레임 또는 레퍼런스 포인트에 대한 물리적 표면의 포지션을 표시하는 열이다. 물리적 표면의 포지션은 도 15의 포지션(1570)의 열 헤더에 나타낸 바와 같이 표면의 중심인 것으로 사전-결정될 수 있다. 다른 실시예들에서, 포지션은 표면의 다른 레퍼런스 포인트(예컨대, 표면의 앞, 뒤, 최상부 또는 최하부)인 것으로 사전-결정될 수 있다. 포지션 정보는 일부 레퍼런스 프레임 또는 레퍼런스 포인트에 대한 물리적 표면의 중심으로부터의 벡터 및/또는 포지션 정보로서 표현될 수 있다. 표면 테이블(1500)에서 포지션을 표현하기 위한 몇몇의 방식들이 존재할 수 있다. 예컨대, 표면 테이블(1500) 내의 표면 ID(1194)에 대한 포지션의 값은 벡터 정보 및 레퍼런스 프레임 정보(예컨대, '프레임' 아랫첨자)를 예시하기 위해 요약으로 표현된다. x, y, z는 각각의 공간 디멘션 내의 3D 좌표들이며, 프레임은 3D 좌표들이 레퍼런스의 어느 프레임에 대한 것인지를 나타낸다.
[0250] 예컨대, 표면 ID(1186)는 실세계 원점에 대하여 (1.3, 2.3, 1.3)이 되기 위한 표면(1186)의 중심의 포지션을 나타낸다. 다른 예로서, 표면 ID(1192)는 사용자 레퍼런스 프레임에 대하여 (x,y,z)가 되기 위한 표면(1192)의 중심의 포지션을 나타내고, 표면 ID(1190)는 다른 표면(1182)에 대하여 (x,y,z)가 되기 위한 표면(1190)의 중심의 포지션을 나타낸다. 레퍼런스 프레임은 레퍼런스의 어느 프레임이 현재 사용되고 있는지를 명확하게 하는 데 중요하다. 레퍼런스 프레임으로서 실세계 원점의 경우, 그것은 일반적으로 정적 레퍼런스 프레임이다. 그러나, 다른 실시예들에서, 레퍼런스 프레임이 사용자 레퍼런스 프레임일 때, 사용자는 이동 레퍼런스 프레임일 수 있으며, 그 경우, 만약 사용자가 이동중이고 사용자 레퍼런스 프레임이 레퍼런스 프레임으로서 사용된다면, 평면(또는 벡터 정보)은 사용자에 따라 이동하고 변할 수 있다. 일부 실시예들에서, 각각의 표면에 대한 레퍼런스 프레임은 동일할 수 있다(예컨대, 사용자 레퍼런스 프레임). 다른 실시예들에서, 표면 테이블(1500) 내에 저장된 표면들에 대한 레퍼런스 프레임은 표면에 의존하여 상이할 수 있다(예컨대, 사용자 레퍼런스 프레임, 세계 레퍼런스 프레임, 룸 내의 다른 표면 또는 오브젝트 등).
[0251] 현재의 예에서, 표면 테이블(1500) 내에 저장된 값들은 도 12의 사용자의 물리적 환경(1105) 내에서 식별된 물리적 표면들(예컨대, 수직 표면들(1182 및 1186), 및 수평 표면(1192)) 및 가상 표면들(예컨대, 가상 롤로덱스(1190) 및 멀티-스택 가상 오브젝트(1194))을 포함한다. 예컨대, 현재의 실시예에서, 표면 ID(1510) 열의 제1 엔트리는 도 12의 수직 표면(1182)에 대응하는 표면 ID(1182)의 값을 저장한다. 수직 표면(1182)의 폭 및 높이에 각각 대응하는 폭(1520) 열 내의 폭 값 및 높이(1530) 열 내의 높이 값은 수직 표면(1182)이 48''(W)×36''(H)의 디멘션을 갖는다는 것을 표시한다. 유사하게, 배향(1540) 열 내의 배향 값은 수직 표면(1182)이 "수직"의 배향을 갖는다는 것을 표시한다. 추가적으로, 실제/가상(1550) 열 내의 실제/가상 값은 수직 표면(1182)이 "R"(예컨대, 실제) 표면이라는 것을 표시한다. 다중(1560) 열 내의 다중 값은 수직 표면(1182)이 "단일"이라는 것(예컨대, 단지 단일 콘텐츠만을 홀딩할 수 있다는 것)을 표시한다. 마지막으로, 포지션(1570) 열은 (2.5, 2.3, 1.2)사용자의 벡터 정보를 갖는 사용자(1108)에 대한 수직 표면(1182)의 포지션을 표시한다.
[0252] 표면 테이블(1500) 내의 나머지 행들은 사용자의 물리적 환경(1105) 내의 나머지 표면들에 대한 정보를 포함한다. 당업자는, 도 4의 430에서 표면들을 결정한 결과들을 저장하는 것이 컴퓨터 그 자체의 기능을 개선한다는 것을 인지할 수 있는데, 그 이유는, 일단 이러한 분석이 주변 표면들에 대해 수행되었다면, 만약 다른 사용자 또는 동일한 사용자(1108)가 동일한 물리적 환경(1105)에 있지만 상이한 콘텐츠에 관심이 있다면, 그것이 사용자의 주변 표면들의 미래의 분석을 위하여 머리-장착 시스템(1160)에 의해 유지될 수 있기 때문이다. 430에서 표면들을 결정하기 위한 프로세싱 단계들은, 이들 프로세싱 단계들이 이전에 이미 완료되었으므로 회피될 수 있다. 유일한 차이들은, 상이한 콘텐츠를 갖는 엘리먼트들을 식별하는 엘리먼트 테이블(1400)에 적어도 부분적으로 기반하여, 이용가능할 추가적인 또는 상이한 가상 오브젝트들을 식별하는 것을 포함할 수 있다.
[0253] 일부 실시예들에서, 표면 테이블(1500)은 스토리지 디바이스들(1130)에 저장된다. 다른 실시예들에서, 표면 테이블(1500)은 최근에 보여진 콘텐츠에 대한 신속한 액세스를 위해 또는 최근에 보여진 콘텐츠에 대한 가능한 재방문을 위해 사용자(1108)의 로컬 스토리지 디바이스(1140)에 저장된다. 그러나 다른 실시예들에서, 표면 테이블(1500)은 사용자(1108)로부터 원격으로 위치된 스토리지 디바이스들(1130) 및 사용자(1108)에게 로컬로 위치된 로컬 스토리지 디바이스(1140) 둘 모두에 저장될 수 있다.
[0254] 도 4를 참조하면, 방법은, 콘텐츠에서 콘텐츠 엘리먼트들을 식별하는 것(420)으로부터의 식별된 콘텐츠 엘리먼트들과 430에서 표면들을 결정하는 것으로부터의 결정된 표면들의 조합을 사용하여 그리고 일부 실시예들에서는 가상 오브젝트들을 추가적인 표면들로서 사용하여, 440에서 콘텐츠 엘리먼트들을 표면들에 매칭하는 것으로 계속된다. 콘텐츠 엘리먼트들을 표면들에 매칭하는 것은 다수의 팩터들을 수반할 수 있으며, 이들 중 일부는 HTML 페이지 해석기, 이를테면 앞서 논의된 예시적인 HTML 페이지 해석기를 사용함으로써 콘텐츠 설계자에 의해 정의된 HTML 태그 엘리먼트들을 통하여 콘텐츠 설계자에 의해 제공된 힌트들을 분석하는 것을 포함할 수 있다. 다른 팩터들은 AR 브라우저, AR 인터페이스, 및/또는 클라우드 스토리지에 의해 제공된 바와 같은 특정 콘텐츠와 어떻게 그리고 어디에 매칭/맵핑되는지의 규칙들의 사전-정의된 세트로부터 선택하는 것을 포함할 수 있다.
[0255] 도 7a를 간략히 참조하면, 그것은 일부 실시예들에 따른, 콘텐츠 엘리먼트들을 표면들에 매칭하기 위한 방법을 예시하는 흐름도를 묘사한다. 710에서, 방법은, 식별된 콘텐츠 엘리먼트가 콘텐츠 설계자에 의해 제공된 힌트들을 포함하는지 여부를 결정한다. 콘텐츠 설계자는 콘텐츠 엘리먼트를 최상으로 디스플레이할 곳에 관한 힌트들을 제공할 수 있다. 예컨대, 도 12의 메인 비디오(1220)는 활성 탭(1260) 내의 웹 페이지 상에 디스플레이된 비디오일 수 있다. 콘텐츠 설계자는, 메인 비디오(1220)가 사용자(1108)의 직접적인 뷰 내의 평탄한 수직 표면 상에 최상으로 디스플레이된다는 것을 표시하기 위한 힌트를 제공할 수 있다.
[0256] 일부 실시예들에서, 웹 링크들에 대한 3D 프리뷰는 웹 페이지에 연관된 한 세트의 새로운 HTML 태그들 및 특성들로서 표현될 수 있다. 도 16은 일부 실시예들에 따른, 웹 링크들에 대한 예시적인 3D 프리뷰를 도시한다. 콘텐츠 설계자는, 어느 웹 링크가 렌더링될 3D 프리뷰들을 연관시키는지를 특정하기 위한 새로운 HTML 특성들을 사용할 수 있다. 선택적으로, 콘텐츠 설계자/웹 개발자들은 3D 웹 프리뷰를 온으로 렌더링하기 위해 사용될 3D 모델을 특정할 수 있다. 만약 콘텐츠 설계자/웹 개발자가 웹 프리뷰를 렌더링하기 위해 사용될 3D 모델을 특정한다면, 웹 콘텐츠 이미지는 3D 모델에 대한 텍스처로서 사용될 수 있다. 웹 페이지가 수신될 수 있다. 만약 특정 링크 태그들에 대해 특정된 프리뷰 특성들이 존재한다면, 제1 레벨 웹 페이지들이 리트리브될 수 있으며, 프리뷰 특성들에 기반하여, 3D 프리뷰는 생성되어, 콘텐츠 설계자에 의해 특정된 3D 모델 또는 디폴트 3D 모델(예컨대, 구(1610)) 상으로 로딩될 수 있다. 3D 프리뷰들이 웹 링크들과 관련하여 설명되지만, 3D 프리뷰들은 다른 콘텐츠 타입들에 대해 사용될 수 있다. 당업자는, 특정 콘텐츠 엘리먼트가 본원에서 개시된 것 이외의 3D 환경에 배치되어야 할 곳에 관한 힌트들을 콘텐츠 제공자가 제공할 수 있는 많은 다른 방식들이 존재하며, 이들이 콘텐츠 설계자가 웹 페이지의 콘텐츠의 특정 또는 모든 콘텐츠 엘리먼트들을 디스플레이하기 위한 힌트들을 제공할 수 있는 상이한 방식들의 일부 예들이라는 것을 인지할 수 있다.
[0257] 다른 실시예에서, 태그 표준(예컨대, HTML 태그 표준)은 힌트들, 이를테면 이러한 예에서는 앞서 논의된 콘텐츠 설계자에 의해 제공된 웹 페이지를 제공하기 위한 새로운 태그들(예컨대, HTML 태그들) 또는 유사한 마크-업 언어의 생성을 포함할 수 있다. 만약 태그 표준이 이들 타입들의 추가적인 태그들을 포함한다면, 방법들 및 시스템들의 특정 실시예들은 식별된 표면들에 대한 식별된 콘텐츠 엘리먼트들의 매칭/맵핑을 추가로 제공하기 위해 이들 태그들을 레버리징할 것이다.
[0258] 예컨대, 한 세트의 웹 컴포넌트들은 2D 웹 페이지 밖으로 나오는 3D 볼륨들로서 또는 2D 웹 페이지로 에칭되는 3D 볼륨들로서 그들 자체를 드러내는 웹 페이지의 엘리먼트들을 생성하기 위해 콘텐츠 설계자들/웹 개발자들이 사용할 새로운 HTML 태그들로서 노출될 수 있다. 도 17은 웹페이지(예컨대, 1710)로 에칭되는 3D 볼륨들을 갖는 웹 페이지의 예를 도시한다. 이들 3D 볼륨들은, 웹 페이지 상에 배치되어, 사용자들이 웹 페이지 내에 디스플레이되는 콘텐츠를 조작하기 위해 웹 제어들을 조작하게 허용할 웹 제어들(예컨대, 버튼들, 핸들들, 조이스틱들)을 포함할 수 있다. 당업자는, 이들이, 콘텐츠 엘리먼트들이 3D 환경에서 얼마나 최상으로 디스플레이되어야 할지에 대한 힌트들을 추가로 제공하도록 수정 또는 채택될 수 있는 HTML 이외의 많은 다른 언어들이고, 새로운 HTML 태깅 표준들이 그러한 목표를 달성하기 위한 단지 하나의 방식일 뿐이라는 것을 인지할 수 있다.
[0259] 720에서, 방법은, 콘텐츠 엘리먼트들을 표면들에 매칭/맵핑하기 위해 콘텐츠 설계자에 의해 제공된 힌트들을 사용할지 또는 규칙들의 사전-정의된 세트들을 사용할지를 결정한다. 730에서, 만약 콘텐츠 설계자에 의해 제공된 힌트들을 사용하는 것이 진행하기 위한 방식이라고 결정되었다면, 시스템 및 방법은 힌트들을 분석하고, 힌트에 적어도 부분적으로 기반하여 특정 콘텐츠 엘리먼트를 디스플레이하기 위해 사용될 수 있는 식별된 주변 표면들을 포함하는 논리 구조들을 서치한다(예컨대, 도 15의 표면 테이블(1500)에게 질의함).
[0260] 740에서, 시스템 및 방법은 제공된 힌트들에 기반하여 특정 콘텐츠 엘리먼트에 대한 최적합 표면을 선정하기 위해 최적합 알고리즘을 실행한다. 최적합 알고리즘은, 예컨대 특정 콘텐츠 엘리먼트에 대한 힌트를 취하고, 환경에서 사용자(1108)에 대하여 전방 및 중심인 표면들을 식별하기를 시도할 수 있다. 예컨대, 메인 비디오(1220)가 활성 탭(1260) 내에서 도 14a의 엘리먼트 테이블(1400)의 선호도 속성(1420) 열 내의 "메인"의 선호도 값을 갖고 수직 표면(1182)이, 사용자(1108)의 직접적인 비전 내에 있고 메인 비디오(1220)를 디스플레이하기 위한 최적의 사이즈가 정해진 디멘션을 갖는 표면이기 때문에, 도 12의 메인 비디오(1220)는 수직 표면(1182)에 매칭/맵핑된다.
[0261] 750에서, 시스템 및 방법은 표면들에 대한 콘텐츠 엘리먼트들의 매칭들을 갖는 매칭 결과들을 저장한다. 테이블은 콘텐츠 엘리먼트들을 그들 각각의 매칭된/맵핑된 표면들 상에 디스플레이하도록 디스플레이 알고리즘에 의해 사용될 비-일시적인 스토리지 매체에 저장될 수 있다. 비-일시적인 스토리지 매체는 데이터 스토리지 디바이스, 이를테면 스토리지 디바이스들(1130) 또는 로컬 스토리지 디바이스(1140)를 포함할 수 있다. 매칭 결과들은 특정 테이블, 이를테면 아래의 도 18에 개시된 테이블에 저장될 수 있다.
[0262] 도 18은 일부 실시예들에 따른, 표면들에 대한 콘텐츠 엘리먼트들의 매칭을 저장하기 위한 테이블의 예를 도시한다. 매칭/맵핑 테이블(1800)은 표면 프로세스에 매칭된 콘텐츠 엘리먼트들의 결과들을 데이터베이스에 저장하는 예시적인 테이블이다. 매칭/맵핑 테이블(1800)은, 예컨대 콘텐츠 엘리먼트에 관한 정보(예컨대, 엘리먼트 ID) 및 콘텐츠 엘리먼트가 매칭/맵핑되는 표면들에 관한 정보(예컨대, 표면 ID들)를 포함한다. 당업자는, 매칭/맵핑 테이블(1800)이 관계 데이터베이스 또는 임의의 타입의 데이터베이스 또는 스토리지 매체에 저장되는 테이블일 수 있다는 것을 인지할 수 있다. 추가적으로, 매칭/맵핑 테이블(1800)은 도 4의 440에서의 표면들에 대한 콘텐츠 엘리먼트들의 매칭의 결과들을 포함하는 컴퓨터 메모리(예컨대, 캐시) 내의 어레이일 수 있다.
[0263] 매칭/맵핑 테이블(1800)의 각각의 행은 사용자의 물리적 환경(1105) 또는 사용자(1108)에게 디스플레이되는 가상 표면들/오브젝트들 중 어느 하나 내의 하나 이상의 표면들에 매칭되는 콘텐츠 엘리먼트에 대응하며, 여기서 가상 표면들/오브젝트들은 사용자의 물리적 환경(1105) 내의 표면들/오브젝트들인 것으로 나타난다. 예컨대, 현재의 실시예에서, 엘리먼트 ID 열의 제1 엔트리는 메인 비디오(1220)에 대응하는 엘리먼트 ID(1220)의 값을 저장한다. 메인 비디오(1220)에 대응하는 표면 ID 행 내의 표면 ID 값은 수직 표면(1182)에 대응하는 1182이다. 이러한 방식으로, 메인 비디오(1220)는 수직 표면(1182)에 매칭/맵핑된다. 유사하게, 사용자 코멘트들(1230)은 수평 표면(1192)에 매칭/맵핑되고, 제안된 비디오들(1240)은 수직 표면(1186)에 매칭/맵핑되며, 2차 탭(1250)은 가상 롤로덱스(1190)에 매칭/맵핑된다. 매칭/맵핑 테이블(1800) 내의 엘리먼트 ID들은 도 14a의 엘리먼트 테이블(1400)에 저장된 엘리먼트 ID들에 연관될 수 있다. 매칭/맵핑 테이블(1800) 내의 표면 ID들은 도 15의 표면 테이블(1500)에 저장된 표면 ID들에 연관될 수 있다.
[0264] 도 7a를 참조하면, 760에서, 사전정의된 규칙들을 사용하는 것이 진행하기 위한 방식이라고 결정되었다고 가정하면, 방법은 표면들에 대한 콘텐츠 엘리먼트들의 매칭/맵핑 규칙들을 포함하는 데이터베이스에게 질의하며, 웹 페이지 내의 특정 콘텐츠 엘리먼트에 대해 어느 타입들의 표면들이 콘텐츠 엘리먼트를 매칭/맵핑하기 위해 고려되어야 하는지를 결정한다. 예컨대, 도 12로부터의 메인 비디오(1220)에 대해 리턴된 규칙들은, 메인 비디오(1220)가 수직 표면들에 매칭/맵핑되어야 한다는 것을 표시할 수 있으며, 따라서, 표면 테이블(1500)을 서치한 이후, 다수의 후보 표면들(예컨대, 수직 표면들(1182 및 1186), 및 가상 롤로덱스(1190))이 드러난다. 770에서, 규칙들의 사전-정의된 세트들은, 이용가능한 후보 표면들로부터 어느 표면이 이러한 메인 비디오(1220)에 대해 최적합한지를 선정하기 위해 최적합 알고리즘을 실행할 수 있다. 최적합 알고리즘에 적어도 부분적으로 기반하여, 후보 표면들 전부 때문에 메인 비디오(1220)가 수직 표면(1182)에 매칭/맵핑되어야 한다고 결정되며, 수직 표면(1182)은 사용자(1108)의 직접적인 시선 내에 있는 표면이고, 수직 표면(1182)은 비디오를 디스플레이하기 위한 최상의 디멘션을 갖는다. 일단 하나 이상의 엘리먼트들의 매칭/맵핑이 결정되면, 750에서, 방법은 앞서 설명된 바와 같이, 표면들에 대한 엘리먼트들의 매칭/맵핑 테이블 내의 콘텐츠 엘리먼트들에 대한 결과들을 비-일시적인 스토리지 매체에 저장한다.
[0265] 도 4를 참조하면, 방법은 450에서 콘텐츠 엘리먼트들을 가상 콘텐츠로서 매칭된 표면들에 렌더링하는 것으로 계속된다. 머리-장착 시스템(1160)은 정보를 디스플레이하기 위해 머리-장착 시스템(1160) 내에 하나 이상의 디스플레이 디바이스들, 이를테면 미니 투사기들(미도시)을 포함할 수 있다. 하나 이상의 엘리먼트들은 440에서 매칭된 것으로 개개의 매칭된 표면들 상에 디스플레이된다. 머리-장착 시스템(1160)을 사용하여, 사용자(1108)는 개개의 매칭된/맵핑된 표면들 상에서 콘텐츠를 볼 것이다. 당업자는, 콘텐츠 엘리먼트들이 다양한 표면들(물리적 또는 가상) 상에 물리적으로 부착되는 것으로 나타나도록 디스플레이되지만, 실제로, 콘텐츠 엘리먼트들이 사용자(1108)에 의해 지각되는 바와 같이 물리적 표면들 상에 실제로 투사되며, 가상 오브젝트들의 경우들에서, 가상 오브젝트들이 가상 오브젝트들의 개개의 표면들 상에 부착되는 것으로 나타나도록 디스플레이된다는 것을 인지할 수 있다. 당업자는, 사용자(1108)가 그들의 머리를 돌리거나 또는 위 아래를 볼 때, 머리-장착 시스템(1160) 내의 디스플레이 디바이스들이 콘텐츠가 매칭된/맵핑된 표면들에 부착되는 지각을 사용자(1108)에게 추가로 제공하기 위해 콘텐츠 엘리먼트들을 그들 개개의 표면들에 부착되게 계속 유지할 수 있다는 것을 인지할 수 있다. 다른 실시예들에서, 사용자(1108)는 사용자(1108)의 머리, 손들, 눈들 또는 음성에 의해 수행되는 모션에 의해 사용자의 물리적 환경(1105)의 콘텐츠를 변화시킬 수 있다.
애플리케이션
[0266] 도 19는 일부 실시예들에 따른, 표면들에 매칭된 콘텐츠 엘리먼트들을 포함하는 환경(1900)의 예를 도시한다.
[0267] 이러한 예와 관련하여 도 4를 간략히 참조하면, 해석기(115)는 애플리케이션으로부터 콘텐츠(110)를 수신한다(410). 해석기(115)는 콘텐츠(110)에서 콘텐츠 엘리먼트들을 식별한다(420). 이러한 예에서, 해석기(115)는 비디오 패널(1902), 강조 표시 패널(1904), 리플레이(1906), 그래픽 통계들(1908), 텍스트 통계들(1910), 및 소셜 미디어 뉴스 피드(1912)를 식별한다.
[0268] 환경 해석기(168)는 환경에서 표면들을 결정한다(430). 이러한 예에서, 환경 해석기(168)는 제1 수직 표면(1932), 제2 수직 표면(1934), 제1 오토만(ottoman)의 최상부(1936), 제2 오토만의 최상부(1938), 및 제2 오토만의 전방(1940)을 결정한다. 환경 해석기(168)는 환경에서 추가적인 표면들을 결정할 수 있지만; 이러한 예에서, 추가적인 표면들은 라벨링되지 않는다. 일부 실시예들에서, 환경 해석기(168)는 환경에서 표면들을 계속해서 결정한다(430). 일부 실시예들에서, 해석기(115)가 콘텐츠(110)를 수신하고(410) 그리고/또는 콘텐츠(110)에서 콘텐츠 엘리먼트들을 식별할(420) 때, 환경 해석기(168)는 환경에서 표면들을 결정한다(430).
[0269] 매칭 모듈(142)은 콘텐츠 엘리먼트들의 속성들 및 표면들의 속성들에 기반하여 콘텐츠 엘리먼트들을 표면들에 매칭한다(440). 이러한 예에서, 매칭 모듈(142)은 비디오 패널(1902)을 제1 수직 표면(1932)에 매칭하고, 강조 표시 패널(1904)을 제2 수직 표면(1934)에 매칭하고, 리플레이(1906)를 제1 오토만의 최상부(1936)에 매칭하고, 그래픽 통계들(1908)을 제2 오토만의 최상부(1938)에 매칭하며, 텍스트 통계들(1910)을 제2 오토만의 전방(1940)에 매칭한다.
[0270] 선택적인 가상 오브젝트들 생성 모듈(144)은 콘텐츠 엘리먼트들을 디스플레이하기 위한 가상 오브젝트들을 생성할 수 있다. 매칭 모듈(142)의 매칭 프로세스 동안, 가상 표면이 특정 콘텐츠 엘리먼트들을 디스플레이하기 위한 선택적인 표면일 수 있다고 결정될 수 있다. 이러한 예에서, 선택적인 가상 오브젝트들 생성 모듈(144)은 가상 표면(1942)을 생성한다. 소셜 미디어 뉴스 피드(1912)는 가상 표면(1942)에 매칭된다. 렌더링 모듈(146)은 콘텐츠 엘리먼트들을 그들의 매칭된 표면들에 렌더링한다(450). 결과적인 도 19는, 렌더링 모듈(146)이 콘텐츠 엘리먼트들을 그들의 매칭된 표면들에 렌더링(450)한 이후, 머리-장착 디스플레이 디바이스의 사용자가 애플리케이션을 실행한 것이 보여질 것을 예시한다.
동적 환경
[0271] 일부 실시예들에서, 환경(1900)은 동적이며: 새로운 표면들을 생성하기 위해 환경 그 자체가 변하고 오브젝트들이 사용자의 시야 및/또는 디바이스의 시야 내로/밖으로 이동하거나, 또는 사용자는 콘텐츠 엘리먼트들을 수신하는 동안 새로운 환경으로 이동하여, 이전에 매칭된 표면들이 이전의 합성 프로세스(140) 결과들 하에서 더 이상 자격이 부여되지 않게 한다. 예컨대, 도 19에서와 같이 환경(1900)에서 농구 게임을 시청하면서, 사용자는 주방으로 걸어갈 수 있다.
[0272] 도 20a-20e는 사용자 이동의 함수로서 환경의 변화를 묘사하지만, 당업자는 다음의 기법들이 정적 사용자에 관한 변하는 환경에 적용될 것임을 인지할 것이다. 도 20a에서, 본 개시내용 전반에 걸쳐 설명된 바와 같이 합성 프로세스(140) 이후, 사용자는 콘텐츠의 공간화된 디스플레이를 시청하고 있다. 도 20b는, 사용자가 몰입될 수 있는 더 큰 환경, 및 사용자에게 적합한 추가적인 표면들을 예시한다.
[0273] 도 20c에 묘사된 바와 같이, 사용자가 하나의 룸으로부터 다른 룸으로 이동함에 따라, 도 20a에서의 디스플레이를 위해 초기에 렌더링된 콘텐츠가 더 이상 합성 프로세스(140)의 매칭을 충족시키지 않는 것이 쉽게 자명하다. 일부 실시예들에서, 센서들(162)은 사용자의 시스템이 환경에서 변하도록 촉구한다. 환경의 변경은, 깊이 센서 데이터의 변경(도 20c의 왼쪽에 있는 룸은, 콘텐츠가 디스플레이를 위해 초기에 렌더링된 도 20c의 오른쪽에 있는 룸보다 새로운 가상 메시 구조를 생성함), 머리포즈 데이터의 변경(IMU가 현재 환경에 대한 임계치를 초과하는 모션 변경들을 생성하거나, 또는 머리-장착 시스템 상의 카메라들이 자신들의, 그리고/또는 디바이스의 시야에서 새로운 오브젝트들을 캡처하기 시작함)일 수 있다. 일부 실시예들에서, 환경의 변경은, 이전에 매칭된 그리고/또는 현재 렌더링 및 디스플레이되는 콘텐츠 엘리먼트들에 대한 새로운 표면들을 찾기 위해 새로운 합성 프로세스(140)를 개시한다. 일부 실시예들에서, 시간적인 임계치를 초과하는 환경의 변경은, 이전에 매칭된 그리고/또는 현재 렌더링 및 디스플레이되는 콘텐츠 엘리먼트들에 대한 새로운 표면들을 찾기 위해 새로운 합성 프로세스(140)를 개시한다. 시간적인 임계치는 환경 데이터에 대한 사소한 중단들(이를테면, 단순히, 다른 사용자와 말하기 위해 머리를 돌리거나, 또는 사용자가 곧 돌아오는 환경에서 잠시 나감)에 대한 낭비적인 컴퓨팅 사이클들을 불가능하게 한다.
[0274] 일부 실시예들에서, 사용자가 도 20d의 룸(2002)에 들어감에 따라, 합성 프로세스(140)는 룸(2014)에 매칭되었던 활성 콘텐츠(2002)를 새로운 표면과 매칭한다. 일부 실시예들에서, 활성 콘텐츠(2002)는, 룸(2012)에서만 디스플레이되더라도, 룸들(2012 및 2014) 둘 모두에서 이제 활성 콘텐츠이다(도 20d에서의 룸(2014)에서의 활성 콘텐츠(2002)의 출현은, 사용자에게 디스플레이되지 않더라도, 활성 콘텐츠(2002)가 계속해서 렌더링되고 있음을 묘사함).
[0275] 이런 식으로, 사용자는 룸들(2012 및 2014) 사이에서 걸을 수 있으며, 합성 프로세스(140)는 매칭 프로토콜을 계속해서 반복할 필요가 없다. 일부 실시예들에서, 룸(2014)에서의 활성 콘텐츠(2002)는 사용자가 룸(2012)에 위치되는 동안 유휴 또는 슬립 상태로 세팅되고, 유사하게, 만약 사용자가 룸(2014)으로 리턴하면, 룸(2012)에서의 활성 콘텐츠는 유휴 또는 슬립 상태가 된다. 그에 따라서, 사용자는 자신이 자신의 환경을 동적으로 변경함에 따라 콘텐츠의 소비를 자동으로 계속할 수 있다.
[0276] 일부 실시예들에서, 사용자는 룸(2014)에서 활성 콘텐츠(2002)를 중단시키고 룸(2012)에 들어가며, 자신이 룸(2014)에서 중단시켰던 것과 동일한 상호작용 지점에서 동일한 콘텐츠를 재개할 수 있다. 그에 따라서, 사용자는 자신이 자신의 환경을 동적으로 변경함에 따라 콘텐츠의 소비를 자동으로 재개할 수 있다.
[0277] 유휴 또는 슬립 상태는 콘텐츠 엘리먼트가 수행하는 출력의 정도를 특징으로 할 수 있다. 활성 콘텐츠가, 렌더링된 콘텐츠 엘리먼트의 전체 용량을 가져서, 콘텐츠의 프레임들이 자신의 매칭된 표면에 대해 계속 업데이트되고, 매칭된 표면 위치와 연관된 가상 스피커에 대해 오디오 출력이 계속되는 식일 수 있다. 유휴 또는 슬립 상태들은 이 기능성 중 일부를 감소시킬 수 있고; 일부 실시예들에서, 유휴 또는 슬립 상태의 오디오 출력은 볼륨이 감소되거나 또는 무음 상태에 들어가고; 일부 실시예들에서, 더 적은 수의 프레임들이 생성되도록, 렌더링 사이클들은 느려진다. 이러한 더 느린 프레임 레이트는 전체적으로 컴퓨팅 전력을 절약할 수 있지만, 만약 유휴 또는 슬립 상태가 활성 상태로 돌아가면(이를테면, 만약 사용자가, 유휴 또는 슬립 상태 콘텐츠 엘리먼트가 동작하고 있었던 룸으로 리턴하면), 콘텐츠 엘리먼트 소비를 재개할 때 사소한 레이턴시를 도입할 수 있다.
[0278] 도 20e는 단순히 유휴 또는 슬립 상태로의 변경이 아닌, 상이한 환경에 콘텐츠 엘리먼트를 렌더링하는 것의 중지를 묘사한다. 도 20e에서, 룸(2014)에서의 활성 콘텐츠는 중단되었다. 일부 실시예들에서, 렌더링의 중지를 위한 트리거는 하나의 소스로부터 다른 소스로 콘텐츠 엘리먼트를 변경하는 것, 이를테면, 농구 게임으로부터 영화로 비디오 스트림의 채널을 변경하는 것이며; 일부 실시예들에서, 일단 센서들(162)이 새로운 환경을 검출하고 새로운 합성 프로세스(140)가 시작되면, 활성 콘텐츠는 렌더링을 즉시 중단한다.
[0279] 일부 실시예들에서, 예컨대, 제1 위치로부터 제2 위치로의 사용자의 이동에 적어도 부분적으로 기반하여, 제1 위치에서 제1 표면 상에 렌더링 및 디스플레이된 콘텐츠들은 중단되고, 그런다음, 후속적으로 제2 위치에서 제2 표면 상에 재개될 수 있다. 예컨대, 제1 위치(예컨대, 거실)에서의 제1 표면 상에 디스플레이된 콘텐츠를 보는 사용자가 제1 위치로부터 제2 위치(예컨대, 주방)로 물리적으로 이동할 수 있다. (예컨대, 센서들(162)에 기반하여) 사용자가 제1 위치로부터 제2 위치로 물리적으로 이동했다는 결정 시에, 제1 위치에서의 제1 표면 상에서의 콘텐츠의 렌더링 및/또는 디스플레이는 중단될 수 있다. 일단 사용자가 제2 위치로 이동하면, AR 시스템의 센서들(예컨대, 센서들(162))은 사용자가 새로운 환경/위치로 이동했음을 검출할 수 있고, 환경 해석기(168)는 제2 위치에서 새로운 표면들을 식별하기 시작할 수 있으며, 그런다음, 제2 위치에서 제2 표면 상에 콘텐츠를 디스플레이하는 것을 재개할 수 있다. 일부 실시예들에서, 사용자가 제1 위치로부터 제2 위치로 이동하는 동안, 콘텐츠들은 제1 위치에서 제1 표면 상에 계속 렌더링될 수 있다. 일단 사용자가 예컨대 임계 시간 기간(예컨대, 30 초) 동안 제2 위치에 있으면, 콘텐츠들은 제1 위치에서 제1 표면 상에 렌더링되는 것이 정지될 수 있고, 제2 위치에서 제2 표면 상에 렌더링될 수 있다. 일부 실시예들에서, 콘텐츠들은 제1 위치에서의 제1 표면 및 제2 위치에서의 제2 표면 둘 모두에 렌더링될 수 있다.
[0280] 일부 실시예들에서, 제1 위치의 제1 표면에서의 콘텐츠의 렌더링 및/또는 디스플레이의 중단은, 제1 위치로부터 제2 위치로 사용자가 물리적으로 이동하는 것에 대한 응답으로, 자동적일 수 있다. 사용자의 신체적 움직임의 검출은 콘텐츠의 자동적인 중단을 트리거할 수 있으며, 여기서, 사용자의 신체적 움직임의 트리거는, 예컨대 제1 위치와 연관될 수 있는 미리 결정된 영역 외부로 사용자가 이동했다는 또는 이동하고 있다는 포지셔널 표시(예컨대, GPS) 또는 임계치를 초과하는 IMU(inertial measurement unit)에 적어도 부분적으로 기반할 수 있다. 일단 제2 표면이 예컨대 환경 해석기(168)에 의해 식별되고 콘텐츠에 매칭되면, 콘텐츠는 제2 위치에서 제2 표면 상에 렌더링 및/또는 디스플레이하는 것을 자동-재개할 수 있다. 일부 실시예들에서, 사용자에 의한 제2 표면의 선택에 적어도 부분적으로 기반하여, 콘텐츠는 제2 표면 상에 렌더링 및/또는 디스플레이하는 것을 재개할 수 있다. 일부 실시예들에서, 환경 해석기(168)는, 사용자 및/또는 디바이스의 시야 내의 표면들이 변경되었는지 그리고/또는 사용자의 물리적 위치가 변경되었는지를 결정하기 위해, 특정 타임프레임 내에(예컨대, 10 초마다) 리프레시할 수 있다. 만약 사용자가 새로운 위치로 이동(예컨대, 사용자가 제1 위치로부터 제2 위치로 이동)한 것으로 결정되면, 환경 해석기(168)는 제2 표면 상에서의 콘텐츠의 렌더링 및/또는 디스플레이를 재개하기 위해 제2 위치 내의 새로운 표면들을 식별하기 시작할 수 있다. 일부 실시예들에서, 사용자가 시야를 변경하기 때문에(예컨대, 사용자가 예컨대 대화를 하기 위해 잠시 제1 위치의 다른 사람을 보기 때문에), 제1 표면 상에 렌더링 및/또는 디스플레이된 콘텐츠는 단순히 즉시 자동으로 즉시 중단되지 않을 수 있다. 일부 실시예들에서, 만약 사용자의 변경된 시야가 임계치를 초과하면, 콘텐츠의 렌더링 및/또는 디스플레이는 자동으로 중단될 수 있다. 예컨대, 만약 사용자가 머리포즈를 변경하고 따라서 임계치를 초과하는 시간 기간 동안 대응하는 시야를 변경하면, 콘텐츠의 디스플레이는 자동적으로 중단될 수 있다. 일부 실시예들에서, 콘텐츠는, 사용자가 제1 위치를 떠나는 것에 대한 응답으로 제1 위치에서 제1 표면 상에 콘텐츠를 렌더링 및/또는 디스플레이하는 것을 자동-중단시킬 수 있고, 콘텐츠는, 사용자가 제1 위치에 물리적으로 (다시) 들어가는 것에 대한 응답으로 제1 위치에서 제1 표면 상에서의 렌더링 및/또는 디스플레이를 자동-재개할 수 있다.
[0281] 일부 실시예들에서, 사용자의 시야 및/또는 사용자의 머리-장착 디바이스가 변경됨에 따라, 특정 표면 상의 콘텐츠가 사용자의 시야의 변경을 느리게 따를 수 있다. 예컨대, 콘텐츠는 사용자의 직접 시야 내에 있을 수 있다. 만약 사용자가 시야를 변경하면, 콘텐츠는 시야 변경을 따르도록 포지션을 변경할 수 있다. 일부 실시예들에서, 콘텐츠는 변경된 시야의 직접 시야에서 표면 상에 즉시 디스플레이되지 않을 수 있다. 대신에, 시야에서의 변경에 비해 콘텐츠의 변경에 약간의 레이턴시가 있을 수 있으며, 여기서, 콘텐츠 위치의 변경은 시야의 변경을 느리게 따르는 것으로 나타날 수 있다.
[0282] 도 20f-20i는 특정 표면 상에 디스플레이되는 콘텐츠가 현재 콘텐츠를 보는 사용자의 시야의 변경을 느리게 따를 수 있는 예를 예시한다. 도 20f에서, 사용자(1108)는 콘텐츠의 공간화된 디스플레이를 보면서 룸에서 소파에 앉아 있는 포지션으로 있으며, 이러한 앉아 있는 포지션은 사용자의, 및/또는 예컨대 메인 벽(1180)을 향하는 사용자의 머리-장착 디바이스의 제1 머리포즈를 갖는다. 도 20f에 예시된 바와 같이, 콘텐츠의 공간화된 디스플레이는 제1 머리포즈를 통해 메인 벽(1180)의 제1 위치(예컨대, 직사각형 표면(1182))에 디스플레이된다. 도 20g는 사용자(1108)가 앉아 있는 포지션으로부터 누워 있는 포지션으로 소파에서 포지션들을 변경하는 것을 예시하고, 이러한 누워 있는 포지션은 예컨대 메인 벽(1180) 대신 측벽(1184)을 향하는 제2 머리포즈를 갖는다. 직사각형 표면(1182) 상에 디스플레이된 콘텐츠는, 시간 임계치 및/또는 머리포즈 변경 임계치가 충족/초과될 때까지, 직사각형 표면(1182)에서 계속 렌더링/디스플레이될 수 있다. 도 20h는 콘텐츠가 사용자를 느리게 따를 수 있는 것을 예시하며, 이 콘텐츠는, 단일 업데이트와 대조적으로, 측벽(1185)을 향하는 제2 머리포즈에 대응하는 새로운 위치로 작은 이산 증분 포지션들로 이동하며, 예컨대 앉아 있는 포지션으로부터 누워 있는 포지션으로 사용자(1108)가 변한 후의 특정 시점 후에(예컨대, 특정 시간 임계치 후에) 제1 디스플레이 옵션/표면(2020)에서 디스플레이되는 것으로 나타난다. 제1 디스플레이 옵션/표면(2020)은, 사용자(1108)의 직접 시야 내에 이용가능한 최적의 표면들이 없기 때문에, 제2 머리포즈에 대응하는 시야 내의 가상 디스플레이 스크린/표면일 수 있다. 도 20i는 콘텐츠가 또한, 측벽(1184) 상의 직사각형 표면(1186)에 있는 제2 디스플레이 옵션/표면에 디스플레이될 수 있는 것을 예시한다. 위에서 개시된 바와 같이, 일부 실시예들에서, 사용자(1108) 및/또는 디바이스의 시야의 변경에 기반하여 어느 디스플레이 옵션들이 콘텐츠를 디스플레이할지를 선정하기 위한 디스플레이 옵션들(예컨대, 제1 디스플레이 옵션(2020) 또는 제2 직사각형 표면(1186))이 사용자(1108)에게 제공될 수 있다.
[0283] 일부 실시예들에서, 예컨대, 사용자는 제1 시야에서 사용자의 바로 앞에 디스플레이된 콘텐츠를 보고 있을 수 있다. 사용자는 자신의 머리를 왼쪽으로 90도 돌리고 약 30 초 동안 제2 시야를 유지할 수 있다. 제1 시야에서 사용자의 바로 앞에 디스플레이되었던 콘텐츠는, 특정 시간 임계치가 경과한 후에(예컨대, 5 초) 사용자를 느리게 따르도록 제2 시야를 향하여 제1 시야에 대해 30도만큼 제1 시간을 이동시킴으로써, 제2 시야로 사용자를 느리게 따를 수 있다. AR 시스템은, 콘텐츠가 이제 제2 시야 뒤에 30도로만 디스플레이되도록, 제2 시야로 사용자를 따르도록 다른 30도만큼 콘텐츠를 두 번째로 이동할 수 있다.
[0284] 도 20j-20n은 일부 실시예들에 따른, 콘텐츠가 사용자 및/또는 사용자의 디바이스의 제1 시야로부터 제2 시야로 사용자를 느리게 따르는 것을 예시한다. 도 20j는 표면(예컨대, 물리적 환경에서의 실제 표면 또는 가상 표면) 상에 디스플레이된 콘텐츠(2034)를 보고 있는 사용자(2030)의 평면도를 예시한다. 전체 콘텐츠(2034)가 사용자(2030)의 바로 앞에, 그리고 사용자 및/또는 사용자의 디바이스의 제1 머리포즈 포지션에서 사용자(2030) 및/또는 디바이스의 제1 시야(2038) 내에 완전히 디스플레이되도록, 사용자(2030)는 콘텐츠(2034)를 보고 있다. 도 20k는 사용자(2030)가 도 20j에 예시된 제1 머리포즈 포지션에 대하여 예로서 오른쪽으로(예컨대, 시계 방향으로) 대략 45도 회전하는 평면도를 예시한다. (예컨대, 파선들에 의해 묘사된) 콘텐츠(2034)의 부분들이 더 이상 사용자(2030) 및/또는 디바이스의 시야 내에 있지 않은 한편, (예컨대, 실선들에 의해 묘사된) 콘텐츠(2034)의 부분들은 계속 사용자(2030)에게 렌더링/디스플레이되고 있다.
[0285] 도 20l은 도 20j에 예시된 제1 머리포즈 포지션에 대하여 오른쪽으로(예컨대, 시계 방향으로) 90도로 제2 머리포즈 포지션에서의 회전 완료 시 사용자(2030)의 평면도를 예시한다. 콘텐츠(2034)는 (예컨대, 콘텐츠(2034) 주위의 파선들에 의해 묘사된 바와 같이) 사용자(2030)에게 더 이상 가시적이지 않은데, 그 이유는 콘텐츠(2034)가 완전히 사용자(2030) 및/또는 디바이스의 시야(2038)의 외부에 있기 때문이다. 콘텐츠(2034)가 또한, 느리게 이동했다는 것에 주목하라. 느리게 이동되는 것은, 콘텐츠(2034)가 제2 머리포즈 포지션을 따라잡기 위해 도 20j/20k에 예시된 자신의 오리지널 포지션으로부터 언제 그리고 얼마나 많이 이동할 수 있는지에 관한 레이턴시에 상관된다.
[0286] 도 20m은, 콘텐츠(2034)의 일부가 제2 머리포즈 포지션에서 (예컨대, 콘텐츠(2034)의 일부를 포함하는 실선에 의해 묘사된 바와 같이) 사용자(2030) 및/또는 디바이스의 시야(2038) 내에 있도록, 콘텐츠(2034)가 새로운 포지션에 디스플레이되도록 느리게 이동했다는 것을 예시한다. 도 20n은 콘텐츠(2034)가 사용자의 제2 머리포즈 포지션을 완전히 따라잡기 위해 자신이 느리게 이동하는 것을 완료했다는 것을 예시한다. 콘텐츠(2034)는 전체 콘텐츠(2034)를 포함하는 실선에 의해 표시된 바와 같이 완전히 사용자(2030) 및/또는 디바이스의 시야(2038) 내에 있다. 당업자는, 사용자가 제1 시야로부터 콘텐츠가 더 이상 보이지 않을 수 있는 제2 시야로 시야를 변경했을 수 있지만, 콘텐츠가 제2 시야에 직접적으로 디스플레이될 것을 사용자가 원하지 않을 수 있다는 것을 인지할 수 있다. 대신에, 예컨대 사용자의 제2 시야(예컨대, 새로운 시야)에 대하여 사용자의 바로 앞에 콘텐츠가 디스플레이될 것을 사용자가 원하는지 여부를 선정하도록 시스템이 사용자를 촉진할 때까지, 사용자 바로 앞에 디스플레이되지 않고 제2 시야로 사용자를 느리게 따르도록, 또는 사용자가 주변에서 볼 수 있는 디스플레이된 콘텐츠와 사용자가 다시 관여할 때까지, 사용자가 주변에서 볼 수 있는 디스플레이된 콘텐츠를 단지 떠나도록, 사용자는 콘텐츠에게 원할 수 있다. 다시 말해서, 일부 실시예들에서, 하나 이상의 표면들 상으로의 콘텐츠/엘리먼트들의 디스플레이는 제1 시야로부터 제2 시야로 사용자의 시야에 대한 변경에 대한 응답으로 이동될 수 있고, 여기서, 콘텐츠/엘리먼트들은 제1 시야로부터 제2 시야로의 사용자의 시야의 변경을 느리게 따른다. 또한, 일부 실시예들에서, 제2 시야 바로 앞에 콘텐츠를 이동하기 위해 사용자로부터 수신된 것으로부터의 확인 시에, 콘텐츠는 제2 시야 바로 앞에 단지 이동할 수 있다.
[0287] 일부 실시예들에서, 사용자는 (a) AR 시스템을 통해 사용자에게 디스플레이되는 추출되는 콘텐츠 엘리먼트들을 보고, 그리고 (b) 추출되는 콘텐츠 엘리먼트들과 상호작용할 수 있다. 일부 실시예들에서, 사용자는, 추출되는 콘텐츠 내에 디스플레이된 아이템들/서비스들을 구매함으로써, 추출되는 콘텐츠와 상호작용할 수 있다. 일부 실시예들에서, 사용자가 2D 웹 페이지와 상호작용함으로써 이루어지는 온라인 구매와 유사하게, AR 시스템은, 사용자가 AR 시스템 내의 가상 오브젝트들(예컨대, 프리즘들 또는 가상 디스플레이 스크린들) 및/또는 표면들 상에 디스플레이되는 추출되는 콘텐츠와 상호작용하여, 예로서 AR 시스템의 가상 오브젝트들 및/또는 표면들 상에 디스플레이되는 추출되는 콘텐츠 내에 제시되는 아이템들 및/또는 서비스들을 전자 구매하게 허용할 수 있다.
[0288] 일부 실시예들에서, 사용자는, 추가로, 디스플레이되는 콘텐츠 엘리먼트들 내의 아이템들을 선택하고 사용자의 물리적 환경 내의 상이한 표면들 및/또는 상이한 가상 오브젝트들(예컨대, 프리즘) 상에 선택된 아이템들을 배치함으로써, 추출되는 콘텐츠 엘리먼트와 상호작용할 수 있다. 예컨대, 사용자는, 예로서 (a) 토템을 이용하여 갤러리 내의 콘텐츠 엘리먼트를 타겟으로 하고, (b) 콘텐츠 엘리먼트를 선택하고 시간 기간(예컨대, 약 1초) 동안 홀딩하기 위해 토템 상의 트리거를 누르고, (c) 사용자의 물리적 환경에서의 원하는 위치 주위로 토템을 이동하며, 그리고 (d) 콘텐츠 엘리먼트를 원하는 위치에 배치하기 위해 토템 상의 트리거를 누름으로써 -여기서, 콘텐츠 엘리먼트의 카피가 로딩되어 원하는 위치에 디스플레이됨-, 갤러리로부터 콘텐츠 엘리먼트, 이를테면, 이미지, 비디오 및/또는 모델을 추출할 수 있다. 일부 실시예들에서, 사용자가 콘텐츠 엘리먼트를 선택하고 시각 피드백으로서 시간 기간 동안 트리거를 홀딩한 결과로서, 콘텐츠 엘리먼트의 프리뷰가 생성되어 디스플레이되는데, 여기서, 콘텐츠 엘리먼트의 배치에 사용하기 위한 콘텐츠 엘리먼트의 풀 해상도 버전을 생성하는 것이 더욱 자원 집약적일 수 있기 때문에, 콘텐츠의 프리뷰가 생성된다. 일부 실시예들에서, 사용자가 추출되는 콘텐츠 엘리먼트를 사용자의 물리적 환경에서 원하는 위치에 배치하고 있을 때, 콘텐츠 엘리먼트는 그 전체가 카피/추출되어 시각 피드백을 위해 디스플레이된다.
[0289] 도 20o는 사용자가 추출되는 콘텐츠들을 보고 있고 추출되는 콘텐츠들(2050 및 2054)과 상호작용하는 예를 예시한다. 사용자(2040)는 가상 디스플레이 표면들 상에서, 추출되는 콘텐츠들(2044a-2044d)을 보고 있을 수 있는데, 그 이유는 (예컨대, 책꽂이들 때문에) 센서들(1162)이 추출되는 콘텐츠를 디스플레이하기 위한 적절한 디스플레이 표면들을 검출할 수 없었기 때문이다. 대신에, 추출되는 콘텐츠들(2044a-d)은 복수의 가상 디스플레이 표면들/스크린들 상에 디스플레이된다. 추출되는 콘텐츠(2044a)는 오디오 헤드폰을 판매하는 온라인 웹사이트이다. 추출되는 콘텐츠(2044b)는 운동화를 판매하는 온라인 웹사이트이다. 추출되는 콘텐츠(2044c/2044d)는 가구를 판매하는 온라인 가구 웹사이트이다. 추출되는 콘텐츠(2044d)는 추출 콘텐츠(2044c)로부터 디스플레이된 특정 아이템(예컨대, 의자(2054))의 세부적인 뷰를 포함할 수 있다. 사용자(2040)는, 디스플레이되는 추출되는 콘텐츠로부터 특정 아이템을 선정하고 추출되는 아이템(예컨대, 의자(2054))을 사용자의 물리적 환경에 배치함으로써, 추출되는 콘텐츠와 상호작용할 수 있다. 일부 실시예들에서, 사용자(2040)는, 추출되는 콘텐츠에 디스플레이된 특정 아이템(예컨대, 운동화(2050))을 구매함으로써, 추출되는 콘텐츠와 상호작용할 수 있다.
[0290] 도 21은 이러한 환경 변경들 동안의 오디오 전환들을 예시한다. 룸(2014)의 활성 콘텐츠는, 예컨대, 룸(2014)의 콘텐츠 엘리먼트와 연관된 위치로부터 사용자에게 공간화된 오디오를 전달하는 가상 스피커들(2122)을 가질 수 있다. 사용자가 룸(2012)으로 전환함에 따라, 오디오를 사용자의 머리의 중심에 있는 가상 스피커들(2124)로 포지셔닝 및 지향시키고(종래의 헤드폰들과 대부분 동일한 식임) 가상 스피커들(2122)로부터의 오디오 플레이를 중단함으로써, 가상 스피커들은 사용자를 따를 수 있다. 합성 프로세스(140)가 콘텐츠 엘리먼트를 룸(2012)의 표면에 매칭함에 따라, 오디오 출력은 가상 스피커들(2124)로부터 가상 스피커들(2126)로 시프팅할 수 있다. 이 경우, 오디오 출력은 환경 전환 동안 콘텐츠 엘리먼트, 적어도 오디오 출력 컴포넌트의 일정한 소비를 유지한다. 일부 실시예들에서, 오디오 컴포넌트는 항상 사용자의 머리의 중심에 있는 가상 스피커여서, 공간화된 오디오 가상 스피커들의 포지션을 조정할 필요가 제거된다.
시스템 아키텍처 개요
[0291] 도 22는 본 개시내용의 실시예를 구현하는 데 적절한 예시적인 컴퓨팅 시스템(2200)의 블록 다이어그램이다. 컴퓨팅 시스템(2200)은 서브시스템들 및 디바이스들, 이를테면, 프로세서(2207), 시스템 메모리(2208)(예컨대, RAM), 정적 저장 디바이스(2209)(예컨대, ROM), 디스크 드라이브(2210)(예컨대, 자기 또는 광학), 통신 인터페이스(2214)(예컨대, 모뎀 또는 이더넷 카드), 디스플레이(2211)(예컨대, CRT 또는 LCD), 입력 디바이스(2212)(예컨대, 키보드 및 마우스)를 상호연결하는, 정보를 통신하기 위한 버스(2206) 또는 다른 통신 메커니즘을 포함한다.
[0292] 개시내용의 일 실시예에 따르면, 컴퓨팅 시스템(2200)은 시스템 메모리(2208)에 포함된 하나 이상의 명령들의 하나 이상의 시퀀스들을 실행하는 프로세서(2207)에 의해 특정한 동작들을 수행한다. 이러한 명령들은 다른 컴퓨터 판독가능/사용가능 매체로부터, 이를테면, 정적 저장 디바이스(2209) 또는 디스크 드라이브(2210)로부터 시스템 메모리(2208)로 판독될 수 있다. 대안적 실시예들에서, 개시내용을 구현하기 위해 소프트웨어 명령들 대신에 또는 그와 조합하여, 유선 회로가 사용될 수 있다. 따라서, 개시내용의 실시예들은 하드웨어 회로 및/또는 소프트웨어의 임의의 특정한 조합으로 제한되지 않는다. 일 실시예에서, "로직"이란 용어는 개시내용의 일부 또는 전부를 구현하는 데 사용되는 소프트웨어 또는 하드웨어의 임의의 조합을 의미할 것이다.
[0293] 본원에서 사용되는 "컴퓨터 판독가능 매체" 또는 "컴퓨터 사용가능 매체"란 용어는, 실행을 위해 프로세서(2207)에 명령들을 제공하는 데 참여하는 임의의 매체를 지칭한다. 이러한 매체는, 비-휘발성 매체 및 휘발성 매체를 포함(그러나 이에 제한되지 않음)하는 많은 형태들을 취할 수 있다. 비-휘발성 매체는 예컨대 광학 또는 자기 디스크들, 이를테면, 디스크 드라이브(2210)를 포함한다. 휘발성 매체는 동적 메모리, 이를테면, 시스템 메모리(2208)를 포함한다.
[0294] 컴퓨터 판독가능 매체의 공통 형태들은, 예컨대, 플로피 디스크, 플렉시블 디스크, 하드 디스크, 자기 테이프, 임의의 다른 자기 매체, CD-ROM, 임의의 다른 광학 매체, 펀치 카드들, 종이 테이프, 홀들의 패턴들을 갖는 임의의 다른 물리적 매체, RAM, PROM, EPROM, FLASH-EPROM, 임의의 다른 메모리 칩 또는 카트리지, 또는 컴퓨터가 판독할 수 있는 임의의 다른 매체를 포함한다.
[0295] 개시내용의 일 실시예에서, 개시내용을 실시하기 위한 명령들의 시퀀스들의 실행은 단일 컴퓨팅 시스템(2200)에 의해 수행된다. 개시내용의 다른 실시예들에 따르면, 통신 링크(2215)(예컨대, LAN, PTSN 또는 무선 네트워크)에 의해 커플링된 둘 이상의 컴퓨팅 시스템들(2200)은 서로 조정하여 개시내용을 실시하는 데 요구된 명령들의 시퀀스를 수행할 수 있다.
[0296] 컴퓨팅 시스템(2200)은 통신 링크(2215) 및 통신 인터페이스(2214)를 통해 프로그램(즉, 애플리케이션 코드)을 포함하는 명령들, 메시지들 및 데이터를 송신 및 수신할 수 있다. 수신된 프로그램 코드는 그것이 수신될 때 프로세서(2207)에 의해 실행되고, 그리고/또는 나중의 실행을 위해 디스크 드라이브(2210) 또는 다른 비-휘발성 스토리지에 저장될 수 있다. 컴퓨팅 시스템(2200)은 외부 저장 디바이스(2231) 상의 데이터베이스(2232)에 대한 데이터 인터페이스(2233)를 통해 통신할 수 있다.
[0297] 전술된 명세서에서, 개시내용은 그 특정 실시예들을 참조하여 설명되었다. 그러나, 개시내용의 더 넓은 사상 및 범위를 벗어나지 않고 다양한 수정들 및 변경들이 개시내용에 이루어질 수 있다는 것이 자명할 것이다. 예컨대, 위에서 설명된 프로세스 흐름들은 프로세스 액션들의 특정 순서를 참조하여 설명된다. 그러나, 설명된 프로세스 액션들 중 많은 프로세스 액션들의 순서는 개시내용의 범위 또는 동작에 영향을 미치지 않고 변경될 수 있다. 그에 따라서, 명세서 및 도면들은 제약적인 의미라기 보다는 예시적인 것으로 간주되어야 한다.

Claims (20)

  1. 사용자의 환경의 복수의 표면들에 콘텐츠를 매칭하기 위한 방법으로서,
    복수의 상이한 속성들을 갖는 콘텐츠 엘리먼트를 식별하는 단계 ― 상기 복수의 상이한 속성들은 상기 복수의 표면들 각각의 복수의 상이한 속성들에 대응함 ―;
    상기 복수의 표면들 각각의 복수의 상이한 속성들을 결정하는 단계 ― 상기 복수의 표면들 각각의 복수의 상이한 속성들은 상기 콘텐츠 엘리먼트의 상기 복수의 상이한 속성들에 각각 대응함 ―;
    상기 콘텐츠 엘리먼트의 복수의 상이한 속성들을 상기 복수의 표면들 각각의 복수의 상이한 속성들에 각각 비교하는 단계;
    각각의 비교들에 기초하여 개별적인 복수의 표면들에 대한 복수의 스코어들을 계산하는 단계;
    상기 복수의 표면들 중에서 최고 스코어를 갖는 표면을 선택하는 단계;
    상기 콘텐츠 엘리먼트를 상기 선택된 표면으로 매핑(mapping)하는 것을 저장하는 단계; 및
    상기 선택된 표면 상에서 상기 콘텐츠 엘리먼트를 상기 사용자에게 디스플레이하는 단계
    를 포함하는, 방법.
  2. 제1항에 있어서,
    상기 식별된 콘텐츠 엘리먼트는 3D 콘텐츠 엘리먼트인, 방법.
  3. 제1항에 있어서,
    상기 콘텐츠 엘리먼트의 복수의 상이한 속성들은 상이하게 가중되는, 방법.
  4. 제1항에 있어서,
    상기 콘텐츠 엘리먼트의 복수의 상이한 속성들은, 내적(dot product) 배향 표면 관계, 텍스처, 및 컬러를 포함하는, 방법.
  5. 제1항에 있어서,
    상기 콘텐츠 엘리먼트가 상기 사용자에게 디스플레이되는 표면은 상기 선택된 표면인, 방법.
  6. 제1항에 있어서,
    상기 최고 스코어를 임계 스코어에 비교하는 단계, 및
    상기 비교에 기초하여 상기 선택된 표면 또는 가상 표면 중 하나 상에 상기 콘텐츠 엘리먼트를 디스플레이하는 단계를 더 포함하는, 방법.
  7. 제6항에 있어서,
    상기 최고 스코어가 상기 임계 스코어보다 더 큰 경우, 상기 콘텐츠 엘리먼트는 상기 선택된 표면 상에 디스플레이되고,
    상기 최고 스코어가 상기 임계 스코어보다 더 작은 경우, 상기 콘텐츠 엘리먼트는 상기 가상 표면 상에 디스플레이되는, 방법.
  8. 제1항에 있어서,
    상기 선택된 표면을 오버라이딩(overriding)하는 단계, 및
    상기 콘텐츠 엘리먼트가 상기 사용자에게 디스플레이되는 다른 표면을 선택하는 단계를 더 포함하는, 방법.
  9. 제1항에 있어서,
    상기 디스플레이된 콘텐츠 엘리먼트를 상기 표면으로부터 다른 표면으로 이동하는 단계를 더 포함하는, 방법.
  10. 제9항에 있어서,
    상기 디스플레이된 콘텐츠 엘리먼트는 상기 사용자의 손 제스처를 통해 상기 표면으로부터 상기 다른 표면으로 이동되는, 방법.
  11. 증강 현실(AR) 디스플레이 시스템으로서,
    하나 이상의 센서들 및 하나 이상의 카메라들을 포함하는 머리-장착 시스템 ― 상기 하나 이상의 카메라들은 외향(outward facing) 카메라들을 포함함 ―;
    프로그램 코드 명령어들의 세트를 실행하는 프로세서; 및
    상기 프로그램 코드 명령어들의 세트를 보유하는 메모리를 포함하고,
    상기 프로그램 코드 명령어들의 세트는,
    복수의 상이한 속성들을 갖는 콘텐츠 엘리먼트를 식별하는 단계 ― 상기 복수의 상이한 속성들은 상기 복수의 표면들 각각의 복수의 상이한 속성들에 대응함 ―;
    상기 복수의 표면들 각각의 복수의 상이한 속성들을 결정하는 단계 ― 상기 복수의 표면들 각각의 복수의 상이한 속성들은 상기 콘텐츠 엘리먼트의 상기 복수의 상이한 속성들에 각각 대응함 ―;
    상기 콘텐츠 엘리먼트의 복수의 상이한 속성들을 상기 복수의 표면들 각각의 복수의 상이한 속성들에 각각 비교하는 단계;
    각각의 비교들에 기초하여 개별적인 복수의 표면들에 대한 복수의 스코어들을 계산하는 단계;
    상기 복수의 표면들 중에서 최고 스코어를 갖는 표면을 선택하는 단계;
    상기 콘텐츠 엘리먼트를 상기 선택된 표면으로 매핑(mapping)하는 것을 저장하는 단계; 및
    상기 선택된 표면 상에서 상기 콘텐츠 엘리먼트를 사용자에게 디스플레이하는 단계
    를 수행하기 위한 프로그램 코드를 포함하는,
    증강 현실 디스플레이 시스템.
  12. 제11항에 있어서,
    상기 식별된 콘텐츠 엘리먼트는 3D 콘텐츠 엘리먼트인, 증강 현실 디스플레이 시스템.
  13. 제11항에 있어서,
    상기 콘텐츠 엘리먼트의 복수의 상이한 속성들은 상이하게 가중되는, 증강 현실 디스플레이 시스템.
  14. 제11항에 있어서,
    상기 콘텐츠 엘리먼트의 복수의 상이한 속성들은, 내적(dot product) 배향 표면 관계, 텍스처, 및 컬러를 포함하는, 증강 현실 디스플레이 시스템.
  15. 제11항에 있어서,
    상기 콘텐츠 엘리먼트가 상기 사용자에게 디스플레이되는 표면은 상기 선택된 표면인, 증강 현실 디스플레이 시스템.
  16. 제11항에 있어서,
    상기 프로그램 코드는,
    상기 최고 스코어를 임계 스코어에 비교하는 단계, 및
    상기 비교에 기초하여 상기 선택된 표면 또는 가상 표면 중 하나 상에 상기 콘텐츠 엘리먼트를 디스플레이하는 단계를 더 수행하는, 증강 현실 디스플레이 시스템.
  17. 제16항에 있어서,
    상기 최고 스코어가 상기 임계 스코어보다 더 큰 경우, 상기 콘텐츠 엘리먼트는 상기 선택된 표면 상에 디스플레이되고,
    상기 최고 스코어가 상기 임계 스코어보다 더 작은 경우, 상기 콘텐츠 엘리먼트는 상기 가상 표면 상에 디스플레이되는, 증강 현실 디스플레이 시스템.
  18. 제11항에 있어서,
    상기 프로그램 코드는,
    상기 선택된 표면을 오버라이딩(overriding)하는 단계, 및
    상기 콘텐츠 엘리먼트가 상기 사용자에게 디스플레이되는 다른 표면을 선택하는 단계를 더 수행하는, 증강 현실 디스플레이 시스템.
  19. 제11항에 있어서,
    상기 프로그램 코드는, 상기 디스플레이된 콘텐츠 엘리먼트를 상기 표면으로부터 다른 표면으로 이동하는 단계를 더 수행하는, 증강 현실 디스플레이 시스템.
  20. 제19항에 있어서,
    상기 프로그램 코드는, 상기 디스플레이된 콘텐츠 엘리먼트가 상기 사용자의 손 제스처를 통해 상기 표면으로부터 상기 다른 표면으로 이동하게 하는, 증강 현실 디스플레이 시스템.
KR1020227027516A 2017-05-01 2018-05-01 콘텐츠를 공간 3d 환경에 매칭 KR102555443B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020237023413A KR20230108352A (ko) 2017-05-01 2018-05-01 콘텐츠를 공간 3d 환경에 매칭

Applications Claiming Priority (8)

Application Number Priority Date Filing Date Title
US201762492292P 2017-05-01 2017-05-01
US62/492,292 2017-05-01
US201762610108P 2017-12-22 2017-12-22
US62/610,108 2017-12-22
US201862644377P 2018-03-16 2018-03-16
US62/644,377 2018-03-16
KR1020197035273A KR102432283B1 (ko) 2017-05-01 2018-05-01 콘텐츠를 공간 3d 환경에 매칭
PCT/US2018/030535 WO2018204419A1 (en) 2017-05-01 2018-05-01 Matching content to a spatial 3d environment

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
KR1020197035273A Division KR102432283B1 (ko) 2017-05-01 2018-05-01 콘텐츠를 공간 3d 환경에 매칭

Related Child Applications (1)

Application Number Title Priority Date Filing Date
KR1020237023413A Division KR20230108352A (ko) 2017-05-01 2018-05-01 콘텐츠를 공간 3d 환경에 매칭

Publications (2)

Publication Number Publication Date
KR20220115824A KR20220115824A (ko) 2022-08-18
KR102555443B1 true KR102555443B1 (ko) 2023-07-12

Family

ID=63916781

Family Applications (3)

Application Number Title Priority Date Filing Date
KR1020237023413A KR20230108352A (ko) 2017-05-01 2018-05-01 콘텐츠를 공간 3d 환경에 매칭
KR1020197035273A KR102432283B1 (ko) 2017-05-01 2018-05-01 콘텐츠를 공간 3d 환경에 매칭
KR1020227027516A KR102555443B1 (ko) 2017-05-01 2018-05-01 콘텐츠를 공간 3d 환경에 매칭

Family Applications Before (2)

Application Number Title Priority Date Filing Date
KR1020237023413A KR20230108352A (ko) 2017-05-01 2018-05-01 콘텐츠를 공간 3d 환경에 매칭
KR1020197035273A KR102432283B1 (ko) 2017-05-01 2018-05-01 콘텐츠를 공간 3d 환경에 매칭

Country Status (9)

Country Link
US (4) US10930076B2 (ko)
EP (1) EP3619688A4 (ko)
JP (3) JP7141410B2 (ko)
KR (3) KR20230108352A (ko)
CN (2) CN111133365B (ko)
AU (2) AU2018261328B2 (ko)
CA (1) CA3060209A1 (ko)
IL (2) IL301087A (ko)
WO (1) WO2018204419A1 (ko)

Families Citing this family (88)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20230108352A (ko) * 2017-05-01 2023-07-18 매직 립, 인코포레이티드 콘텐츠를 공간 3d 환경에 매칭
US11682045B2 (en) * 2017-06-28 2023-06-20 Samsung Electronics Co., Ltd. Augmented reality advertisements on objects
US10712899B2 (en) * 2017-10-17 2020-07-14 Microsoft Technology Licensing, Llc Human-machine interface tethered to a user position in a three-dimensional VR or AR environment
US10586360B2 (en) * 2017-11-21 2020-03-10 International Business Machines Corporation Changing view order of augmented reality objects based on user gaze
KR102556889B1 (ko) 2017-12-22 2023-07-17 매직 립, 인코포레이티드 혼합 현실 시스템에서 가상 콘텐츠를 관리하고 디스플레이하기 위한 방법들 및 시스템
US10699485B2 (en) * 2018-01-04 2020-06-30 Universal City Studios Llc Systems and methods for textual overlay in an amusement park environment
US11567627B2 (en) 2018-01-30 2023-01-31 Magic Leap, Inc. Eclipse cursor for virtual content in mixed reality displays
US10540941B2 (en) 2018-01-30 2020-01-21 Magic Leap, Inc. Eclipse cursor for mixed reality displays
KR20200121357A (ko) 2018-02-22 2020-10-23 매직 립, 인코포레이티드 물리적 조작을 사용한 오브젝트 생성
AU2019225989A1 (en) 2018-02-22 2020-08-13 Magic Leap, Inc. Browser for mixed reality systems
US20210102820A1 (en) * 2018-02-23 2021-04-08 Google Llc Transitioning between map view and augmented reality view
USD886836S1 (en) 2018-05-01 2020-06-09 Magic Leap, Inc. Display panel or portion thereof with graphical user interface
JP7136931B2 (ja) 2018-06-05 2022-09-13 マジック リープ, インコーポレイテッド 空間3d環境へのコンテンツのマッチング
US11157159B2 (en) 2018-06-07 2021-10-26 Magic Leap, Inc. Augmented reality scrollbar
US20190378334A1 (en) * 2018-06-08 2019-12-12 Vulcan Inc. Augmented reality portal-based applications
WO2019237085A1 (en) 2018-06-08 2019-12-12 Vulcan Inc. Session-based information exchange
US20190385372A1 (en) * 2018-06-15 2019-12-19 Microsoft Technology Licensing, Llc Positioning a virtual reality passthrough region at a known distance
US10996831B2 (en) 2018-06-29 2021-05-04 Vulcan Inc. Augmented reality cursors
JP2021530814A (ja) * 2018-07-23 2021-11-11 マジック リープ, インコーポレイテッドMagic Leap, Inc. 位置ベクトルを使用して半球曖昧性を解決するための方法およびシステム
US11227435B2 (en) 2018-08-13 2022-01-18 Magic Leap, Inc. Cross reality system
CN112805750A (zh) 2018-08-13 2021-05-14 奇跃公司 跨现实系统
US10930049B2 (en) * 2018-08-27 2021-02-23 Apple Inc. Rendering virtual objects with realistic surface properties that match the environment
US11348316B2 (en) * 2018-09-11 2022-05-31 Apple Inc. Location-based virtual element modality in three-dimensional content
US11004270B2 (en) * 2018-09-11 2021-05-11 Houzz, Inc. Virtual item placement system
US11104454B2 (en) * 2018-09-24 2021-08-31 The Boeing Company System and method for converting technical manuals for augmented reality
EP3861387A4 (en) 2018-10-05 2022-05-25 Magic Leap, Inc. RENDERING LOCATION-SPECIFIC VIRTUAL CONTENT IN ANY LOCATION
US10997630B2 (en) * 2018-12-20 2021-05-04 Rovi Guides, Inc. Systems and methods for inserting contextual advertisements into a virtual environment
US11475092B2 (en) * 2018-12-21 2022-10-18 Home Box Office, Inc. Preloaded content selection graph validation
US11853533B1 (en) 2019-01-31 2023-12-26 Splunk Inc. Data visualization workspace in an extended reality environment
US11644940B1 (en) * 2019-01-31 2023-05-09 Splunk Inc. Data visualization in an extended reality environment
US10940387B2 (en) * 2019-03-15 2021-03-09 Disney Enterprises, Inc. Synchronized augmented reality gameplay across multiple gaming environments
JP7300287B2 (ja) * 2019-03-20 2023-06-29 任天堂株式会社 画像表示システム、画像表示プログラム、表示制御装置、および画像表示方法
CN112584760A (zh) * 2019-04-29 2021-03-30 上海联影医疗科技股份有限公司 用于对象摆位和图像引导手术的系统和方法
JP7311643B2 (ja) 2019-06-21 2023-07-19 マジック リープ, インコーポレイテッド モード式ウィンドウを介したセキュアな認可
US11494953B2 (en) * 2019-07-01 2022-11-08 Microsoft Technology Licensing, Llc Adaptive user interface palette for augmented reality
US11222460B2 (en) 2019-07-22 2022-01-11 Scale AI, Inc. Visualization techniques for data labeling
CN110674618A (zh) * 2019-09-03 2020-01-10 北京达佳互联信息技术有限公司 一种内容展示方法、装置、设备及介质
CN113508354A (zh) * 2019-09-25 2021-10-15 苹果公司 显示环境的表示
JP7436505B2 (ja) 2019-09-27 2024-02-21 アップル インコーポレイテッド 仮想オブジェクトの制御
WO2021076754A1 (en) 2019-10-15 2021-04-22 Magic Leap, Inc. Cross reality system with localization service
EP4046401A4 (en) 2019-10-15 2023-11-01 Magic Leap, Inc. CROSS-REALLY SYSTEM WITH WIRELESS FINGERPRINTS
JP2023504775A (ja) 2019-11-12 2023-02-07 マジック リープ, インコーポレイテッド 位置特定サービスおよび共有場所ベースのコンテンツを伴うクロスリアリティシステム
EP4070150A4 (en) * 2019-12-06 2023-12-06 Magic Leap, Inc. DYNAMIC BROWSER STAGE
WO2021118962A1 (en) 2019-12-09 2021-06-17 Magic Leap, Inc. Cross reality system with simplified programming of virtual content
JP6758473B1 (ja) * 2019-12-25 2020-09-23 株式会社ドワンゴ オブジェクト管理システム、オブジェクト管理方法、およびオブジェクト管理プログラム
WO2021152394A1 (en) * 2020-01-30 2021-08-05 Leap Tools, Inc. Systems and methods for product visualization using a single-page application
US11194952B2 (en) * 2020-01-30 2021-12-07 Leap Tools, Inc. Systems and methods for product visualization using a single-page application
US10817648B1 (en) * 2020-01-30 2020-10-27 Leap Tools Inc. Systems and methods for product visualization using a single-page application
EP4104034A4 (en) 2020-02-10 2024-02-21 Magic Leap Inc POSITIONING BODY-CENTRIC CONTENT RELATIVE TO A THREE-DIMENSIONAL CONTAINER IN A MIXED REALITY ENVIRONMENT
US11830149B2 (en) 2020-02-13 2023-11-28 Magic Leap, Inc. Cross reality system with prioritization of geolocation information for localization
JP2023514208A (ja) 2020-02-13 2023-04-05 マジック リープ, インコーポレイテッド マルチ分解能フレーム記述子を使用したマップ処理を伴うクロスリアリティシステム
WO2021163306A1 (en) 2020-02-13 2021-08-19 Magic Leap, Inc. Cross reality system with accurate shared maps
US11363247B2 (en) * 2020-02-14 2022-06-14 Valve Corporation Motion smoothing in a distributed system
JP2023515524A (ja) 2020-02-26 2023-04-13 マジック リープ, インコーポレイテッド 高速位置特定を伴うクロスリアリティシステム
US11875539B2 (en) 2020-03-16 2024-01-16 Samsung Electronics Co., Ltd. Partial access metadata for video-based point cloud compression data
USD997953S1 (en) * 2020-04-17 2023-09-05 Magic Leap, Inc. Display panel with a graphical user interface
CN115803788A (zh) 2020-04-29 2023-03-14 奇跃公司 用于大规模环境的交叉现实系统
US20210390778A1 (en) * 2020-06-10 2021-12-16 Nvidia Corporation Environment generation using one or more neural networks
CN111880648B (zh) * 2020-06-19 2022-01-28 华为技术有限公司 一种三维元素的操纵方法和终端
JP2022015647A (ja) * 2020-07-09 2022-01-21 株式会社ソニー・インタラクティブエンタテインメント 情報処理装置および画像表示方法
KR20220012073A (ko) 2020-07-22 2022-02-03 삼성전자주식회사 가상 사용자 인터랙션을 수행하기 위한 방법 및 그 장치
CN111949173B (zh) * 2020-07-31 2022-02-15 广州启量信息科技有限公司 一种全景vr画面切换方法、装置、终端设备及存储介质
CN114554243B (zh) * 2020-11-26 2023-06-20 腾讯科技(深圳)有限公司 点云媒体的数据处理方法、装置、设备及存储介质
KR102517919B1 (ko) * 2020-12-07 2023-04-04 한국과학기술원 3차원 공간에서 광고 구분을 위한 광고 표식을 제공하는 방법 및 장치
US20220188545A1 (en) * 2020-12-10 2022-06-16 International Business Machines Corporation Augmented reality enhanced situational awareness
EP4295314A1 (en) 2021-02-08 2023-12-27 Sightful Computers Ltd Content sharing in extended reality
EP4288856A1 (en) 2021-02-08 2023-12-13 Sightful Computers Ltd Extended reality for productivity
CN113269782B (zh) * 2021-04-21 2023-01-03 青岛小鸟看看科技有限公司 数据生成方法、装置及电子设备
US12003832B2 (en) * 2021-04-27 2024-06-04 Rovi Guides, Inc. Systems and methods for generating interactive 360-degree content
KR102386822B1 (ko) * 2021-04-30 2022-04-14 인하대학교 산학협력단 산업용 확장현실 컨텐츠 플랫폼에서 다중 사용자를 위한 업무 할당 및 컨텐츠 저작 방법 및 장치
US11978158B2 (en) * 2021-07-27 2024-05-07 Raytheon Company Determining minimum region for finding planar surfaces
WO2023009580A2 (en) 2021-07-28 2023-02-02 Multinarity Ltd Using an extended reality appliance for productivity
US11928756B2 (en) 2021-09-22 2024-03-12 Google Llc Geographic augmented reality design for low accuracy scenarios
TWI777801B (zh) * 2021-10-04 2022-09-11 邦鼎科技有限公司 擴增實境的顯示方法
US20230139635A1 (en) * 2021-11-03 2023-05-04 Tencent America LLC Method for streaming dynamic 5g ar/mr experience to 5g devices with updatable scenes
USD1030782S1 (en) * 2021-11-11 2024-06-11 Qualcomm Incorporated Display system or portion thereof with graphical user interface
US11966572B2 (en) * 2021-11-16 2024-04-23 Figma, Inc. Commenting feature for graphic design systems
WO2023095935A1 (ko) * 2021-11-23 2023-06-01 이은령 증강현실 콘텐츠 서비스를 제공하는 시스템 및 서비스 제공 방법
US20230168786A1 (en) * 2021-11-30 2023-06-01 Verizon Patent And Licensing Inc. Methods and Systems for Location-Based Accessing of Predesignated Data Payloads Using Extended Reality
WO2023141535A1 (en) * 2022-01-19 2023-07-27 Apple Inc. Methods for displaying and repositioning objects in an environment
US20230334795A1 (en) 2022-01-25 2023-10-19 Multinarity Ltd Dual mode presentation of user interface elements
US11948263B1 (en) 2023-03-14 2024-04-02 Sightful Computers Ltd Recording the complete physical and extended reality environments of a user
US11887151B2 (en) 2022-02-14 2024-01-30 Korea Advanced Institute Of Science And Technology Method and apparatus for providing advertisement disclosure for identifying advertisements in 3-dimensional space
US11868583B2 (en) * 2022-03-28 2024-01-09 Google Llc Tangible six-degree-of-freedom interfaces for augmented reality
KR20240030345A (ko) * 2022-08-30 2024-03-07 네이버랩스 주식회사 기 설정된 커스텀 영역에 사용자 단말이 위치함에 기반하여 사용자 단말에 가상 현실 콘텐츠를 표시하는 방법 및 장치
US20240087247A1 (en) * 2022-09-12 2024-03-14 Rovi Guides, Inc. Systems and method for rendering of virtual objects
WO2024101676A1 (ko) * 2022-11-09 2024-05-16 삼성전자주식회사 외부 객체의 유형에 기반하여 외부 객체 내에 포함된 아이템에 대한 정보를 제공하기 위한 웨어러블 장치 및 그 방법
KR102642665B1 (ko) * 2023-07-11 2024-03-04 주식회사 비브스튜디오스 가상 카메라를 조정하는 방법

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010534974A (ja) 2007-07-25 2010-11-11 シリコン イメージ,インコーポレイテッド ネットワークにおけるストリーミングデータコンテンツ

Family Cites Families (109)

* 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
JP2007058332A (ja) 2005-08-22 2007-03-08 Canon Inc オブジェクト操作装置及びオブジェクト操作方法
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
US20080115081A1 (en) 2006-11-09 2008-05-15 Microsoft Corporation Enhanced windows management feature
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
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
US9342610B2 (en) * 2011-08-25 2016-05-17 Microsoft Technology Licensing, Llc Portals: registered objects as virtualized, personalized displays
KR20140066258A (ko) 2011-09-26 2014-05-30 마이크로소프트 코포레이션 투시 근안 디스플레이에 대한 센서 입력에 기초한 비디오 디스플레이 수정
US9734633B2 (en) 2012-01-27 2017-08-15 Microsoft Technology Licensing, Llc Virtual environment generating system
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
US10296663B2 (en) * 2014-05-13 2019-05-21 Atheer, Inc. Method for moving and aligning 3D objects in a plane within the 2D environment
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
US10255302B1 (en) * 2015-02-27 2019-04-09 Jasmin Cosic Systems, methods, apparatuses, and/or interfaces for associative management of data and inference of electronic resources
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
KR20170005602A (ko) 2015-07-06 2017-01-16 삼성전자주식회사 증강현실 및 가상현실의 통합적 제공 방법 및 이를 사용하는 전자 장치
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
US20170256096A1 (en) * 2016-03-07 2017-09-07 Google Inc. Intelligent object sizing and placement in a augmented / virtual reality environment
TWI567691B (zh) 2016-03-07 2017-01-21 粉迷科技股份有限公司 立體空間的場景編輯方法與系統
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
US10271043B2 (en) 2016-11-18 2019-04-23 Zspace, Inc. 3D user interface—360-degree visualization of 2D webpage content
US10599823B2 (en) 2016-11-18 2020-03-24 Invensense, Inc. Systems and methods for coordinating applications with a user interface
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
US11086396B2 (en) * 2017-03-31 2021-08-10 Sony Interactive Entertainment LLC Depth-keying of web content
KR20230108352A (ko) 2017-05-01 2023-07-18 매직 립, 인코포레이티드 콘텐츠를 공간 3d 환경에 매칭
US10339714B2 (en) * 2017-05-09 2019-07-02 A9.Com, Inc. Markerless image analysis for augmented reality
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 매직 립, 인코포레이티드 물리적 조작을 사용한 오브젝트 생성

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010534974A (ja) 2007-07-25 2010-11-11 シリコン イメージ,インコーポレイテッド ネットワークにおけるストリーミングデータコンテンツ

Also Published As

Publication number Publication date
JP7141410B2 (ja) 2022-09-22
US20240096038A1 (en) 2024-03-21
IL270249B1 (en) 2023-04-01
EP3619688A1 (en) 2020-03-11
US20220335695A1 (en) 2022-10-20
KR20230108352A (ko) 2023-07-18
US20210304503A1 (en) 2021-09-30
IL270249A (ko) 2019-12-31
US11373376B2 (en) 2022-06-28
IL270249B2 (en) 2023-08-01
CA3060209A1 (en) 2018-11-08
AU2018261328B2 (en) 2022-08-25
CN111133365A (zh) 2020-05-08
US20180315248A1 (en) 2018-11-01
KR20220115824A (ko) 2022-08-18
AU2022271460B2 (en) 2023-11-16
IL301087A (en) 2023-05-01
JP7277064B2 (ja) 2023-05-18
JP2023093763A (ja) 2023-07-04
AU2022271460A1 (en) 2022-12-22
KR20190141758A (ko) 2019-12-24
CN116203731A (zh) 2023-06-02
JP2020520498A (ja) 2020-07-09
KR102432283B1 (ko) 2022-08-11
AU2018261328A1 (en) 2019-11-07
US11875466B2 (en) 2024-01-16
CN111133365B (zh) 2023-03-31
JP2022168142A (ja) 2022-11-04
EP3619688A4 (en) 2020-03-11
US10930076B2 (en) 2021-02-23
WO2018204419A1 (en) 2018-11-08

Similar Documents

Publication Publication Date Title
KR102555443B1 (ko) 콘텐츠를 공간 3d 환경에 매칭
US11645034B2 (en) Matching content to a spatial 3D environment
US11636660B2 (en) Object creation with physical manipulation
CN111758122A (zh) 用于混合现实系统的浏览器
US20240211113A1 (en) Browser for mixed reality systems

Legal Events

Date Code Title Description
A107 Divisional application of patent
A302 Request for accelerated examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
A107 Divisional application of patent
GRNT Written decision to grant