KR20240025593A - 객체에 대한 동작 양식을 동적으로 선택하기 위한 방법 및 디바이스 - Google Patents

객체에 대한 동작 양식을 동적으로 선택하기 위한 방법 및 디바이스 Download PDF

Info

Publication number
KR20240025593A
KR20240025593A KR1020247000523A KR20247000523A KR20240025593A KR 20240025593 A KR20240025593 A KR 20240025593A KR 1020247000523 A KR1020247000523 A KR 1020247000523A KR 20247000523 A KR20247000523 A KR 20247000523A KR 20240025593 A KR20240025593 A KR 20240025593A
Authority
KR
South Korea
Prior art keywords
physical object
user
implementations
tracking
environment
Prior art date
Application number
KR1020247000523A
Other languages
English (en)
Inventor
아론 맥케이 번스
벤자민 롤프 블라흐니츠키
사만다 코이레
아네트 리아 프레인 본 카프리
아룬 라케시 요가난단
크리스토퍼 루크 놀렛
데이비드 마이클 샤텔
Original Assignee
애플 인크.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 애플 인크. filed Critical 애플 인크.
Publication of KR20240025593A publication Critical patent/KR20240025593A/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/011Arrangements for interaction with the human body, e.g. for user immersion in virtual reality
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/03Arrangements for converting the position or the displacement of a member into a coded form
    • G06F3/0304Detection arrangements using opto-electronic means

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • User Interface Of Digital Computer (AREA)
  • Processing Or Creating Images (AREA)
  • Position Input By Displaying (AREA)

Abstract

일 구현예에서, 물리적 객체에 대한 동작 양식을 동적으로 선택하기 위한 방법. 방법은, 복수의 상이한 입력 양식들 중 하나와 연관된 적어도 하나의 사용자 입력 표시자 값을 포함하는 사용자 입력 벡터를 획득하는 단계; 물리적 객체와 연관된 추적 데이터를 획득하는 단계; 사용자 입력 벡터 및 추적 데이터에 기초하여, 포즈 값 및 사용자 그립 값을 포함하는, 물리적 객체에 대한 제1 특성화 벡터를 생성하는 단계 - 포즈 값은 물리적 객체와 컴퓨팅 시스템의 사용자 사이의 공간적 관계를 특성화하고, 사용자 그립 값은 물리적 객체가 사용자에 의해 보유되고 있는 방식을 특성화함 -; 및 제1 특성화 벡터에 기초하여, 물리적 객체에 대한 현재 동작 양식으로서 제1 동작 양식을 선택하는 단계를 포함한다.

Description

객체에 대한 동작 양식을 동적으로 선택하기 위한 방법 및 장치
본 개시내용은 일반적으로 객체를 갖는 환경과 상호작용하는 것에 관한 것으로, 특히 물리적 객체에 대한 동작 양식을 동적으로 선택하기 위한 시스템들, 방법들, 및 방법들에 관한 것이다.
스타일러스의 거동을 변경시키기 위해, 사용자는 전형적으로, 이용가능한 도구들의 메뉴로부터 상이한 도구를 선택한다. 이는 다루기 힘들고 번거로운 프로세스일 수 있다.
본 개시내용이 당업자들에 의해 이해될 수 있도록, 더 상세한 설명이 일부 예시적인 구현예들의 양태들에 대한 참조에 의해 이루어질 수 있으며, 이들 중 일부는 첨부 도면들에 도시된다.
도 1은 일부 구현예들에 따른 예시적인 동작 아키텍처의 블록도이다.
도 2는 일부 구현예들에 따른 예시적인 제어기의 블록도이다.
도 3은 일부 구현예들에 따른 예시적인 전자 디바이스의 블록도이다.
도 4는 일부 구현예들에 따른 예시적인 제어 디바이스의 블록도이다.
도 5a는 일부 구현예들에 따른 예시적인 콘텐츠 전달 아키텍처의 제1 부분의 블록도이다.
도 5b는 일부 구현예들에 따른 예시적인 데이터 구조들을 예시한다.
도 5c는 일부 구현예들에 따른 예시적인 콘텐츠 전달 아키텍처의 제2 부분의 블록도이다.
도 6a 내지 도 6r은 일부 구현예들에 따른 콘텐츠 전달 시나리오에 대한 인스턴스들의 시퀀스를 예시한다.
도 7은 일부 구현예들에 따른 물리적 객체에 대한 동작 양식을 동적으로 선택하는 방법의 흐름도 표현이다.
일반적인 실시에 따라, 도면들에 예시된 다양한 특징부들은 축척대로 그려지지 않을 수 있다. 따라서, 다양한 특징부들의 치수들은 명료함을 위해 임의대로 확대 또는 축소될 수 있다. 부가적으로, 도면들 중 일부는 주어진 시스템, 방법 또는 디바이스의 컴포넌트들 모두를 도시하지는 않을 수 있다. 마지막으로, 동일한 도면 번호들은 명세서 및 도면들 전반에 걸쳐 동일한 특징부들을 나타내기 위해 사용될 수 있다.
발명의내용
본 명세서에 개시된 다양한 구현예들은 물리적 객체에 대한 동작 양식을 동적으로 선택하기 위한 디바이스들, 시스템들, 및 방법들을 포함한다. 일부 구현예들에 따르면, 방법은 비일시적 메모리 및 하나 이상의 프로세서들을 포함하는 컴퓨팅 시스템에서 수행되며, 여기서 컴퓨팅 시스템은 디스플레이 디바이스에 통신가능하게 커플링된다. 방법은, 복수의 상이한 입력 양식들 중 하나와 연관된 적어도 하나의 사용자 입력 표시자 값을 포함하는 사용자 입력 벡터를 획득하는 단계; 물리적 객체와 연관된 추적 데이터를 획득하는 단계; 사용자 입력 벡터 및 추적 데이터에 기초하여, 포즈 값 및 사용자 그립 값을 포함하는, 물리적 객체에 대한 제1 특성화 벡터를 생성하는 단계 - 포즈 값은 물리적 객체와 컴퓨팅 시스템의 사용자 사이의 공간적 관계를 특성화하고, 사용자 그립 값은 물리적 객체가 사용자에 의해 보유되고 있는 방식을 특성화함 -; 및 제1 특성화 벡터에 기초하여, 물리적 객체에 대한 현재 동작 양식으로서 제1 동작 양식을 선택하는 단계를 포함한다.
일부 구현예들에 따르면, 전자 디바이스는 하나 이상의 디스플레이들, 하나 이상의 프로세서들, 비일시적 메모리, 및 하나 이상의 프로그램들을 포함하며; 하나 이상의 프로그램들은 비일시적 메모리에 저장되고, 하나 이상의 프로세서들에 의해 실행되도록 구성되고, 하나 이상의 프로그램들은 본 명세서에 설명된 방법들 중 임의의 방법을 수행하거나 그의 수행을 야기하기 위한 명령어들을 포함한다. 일부 구현예들에 따르면, 비일시적 컴퓨터 판독가능 저장 매체는, 디바이스의 하나 이상의 프로세서들에 의해 실행될 때, 디바이스로 하여금, 본 명세서에 설명되는 방법들 중 임의의 방법을 수행하게 하거나 수행을 야기하는 명령어들을 내부에 저장한다. 일부 구현예들에 따르면, 디바이스는 하나 이상의 디스플레이들, 하나 이상의 프로세서들, 비일시적 메모리, 및 본 명세서에 설명되는 방법들 중 임의의 방법을 수행하거나 수행을 야기하기 위한 수단을 포함한다.
일부 구현예들에 따르면, 컴퓨팅 시스템은 하나 이상의 프로세서들, 비일시적 메모리, 디스플레이 디바이스 및 하나 이상의 입력 디바이스들과 통신하기 위한 인터페이스, 및 하나 이상의 프로그램들을 포함하고; 하나 이상의 프로그램들은 비일시적 메모리에 저장되고, 하나 이상의 프로세서들에 의해 실행되도록 구성되며, 하나 이상의 프로그램들은 본 명세서에 설명되는 방법들 중 임의의 방법의 동작들을 수행하거나 또는 이들의 수행을 야기하기 위한 명령어들을 포함한다. 일부 구현예들에 따르면, 비일시적 컴퓨터 판독가능 저장 매체는 디스플레이 디바이스 및 하나 이상의 입력 디바이스들과 통신하기 위한 인터페이스를 갖는 컴퓨팅 시스템의 하나 이상의 프로세서들에 의해 실행될 때, 컴퓨팅 시스템으로 하여금 본 명세서에 설명되는 방법들 중 임의의 방법의 동작들을 수행하게 하거나 그들의 수행을 야기하게 하는 명령어들을 내부에 저장하였다. 일부 구현예들에 따르면, 컴퓨팅 시스템은 하나 이상의 프로세서들, 비일시적 메모리, 디스플레이 디바이스 및 하나 이상의 입력 디바이스들과 통신하기 위한 인터페이스, 및 본 명세서에 설명되는 방법들 중 임의의 방법의 동작들을 수행하거나 그들의 수행을 야기하기 위한 수단을 포함한다.
설명
도면들에 도시된 예시적인 구현예들의 완전한 이해를 제공하기 위해 다수의 세부사항들이 설명된다. 그러나, 도면들은 단지 본 개시내용의 일부 예시적인 양태들만을 도시할 뿐이며, 따라서 제한적인 것으로 고려되지 않는다. 당업자들은 다른 효과적인 양태들 및/또는 변형들이 본 명세서에 설명되는 특정 세부사항들 모두를 포함하지는 않음을 인식할 것이다. 게다가, 잘 알려진 시스템들, 방법들, 컴포넌트들, 디바이스들, 및 회로들은 본 명세서에 설명되는 예시적인 구현예들의 더 적절한 양태들을 불명확하게 하지 않기 위해 포괄적으로 상세하게 설명되지 않았다.
사람들은 전자 디바이스를 사용하지 않으면서 물리적 환경 또는 세계를 감지하거나 그와 상호작용할 수 있다. 물리적 객체 또는 표면과 같은 물리적 특징부들이 물리적 환경 내에 포함될 수 있다. 예를 들어, 물리적 환경은 물리적 건물들, 도로들, 및 차량들을 갖는 물리적 도시에 대응할 수 있다. 사람들은 후각, 시각, 미각, 청각, 및 촉각과 같은 다양한 수단을 통해 물리적 환경을 직접 감지하거나 그와 상호작용할 수 있다. 이것은, 사람들이 전자 디바이스를 감지하거나 그를 사용하는 것과 상호작용할 수 있는 부분적으로 또는 전체적으로 시뮬레이션된 환경을 지칭할 수 있는 확장 현실(XR) 환경과는 대조적일 수 있다. XR 환경은 가상 현실(virtual reality, VR) 콘텐츠, 혼합 현실(mixed reality, MR) 콘텐츠, 증강 현실(augmented reality, AR) 콘텐츠 등을 포함할 수 있다. XR 시스템을 사용하여, 사람의 물리적 모션들의 일부, 또는 그것의 표현들이 추적될 수 있고, 이에 응답하여, XR 환경 내의 가상 객체들의 속성들이 적어도 하나의 자연법칙에 순응하는 방식으로 변화될 수 있다. 예를 들어, XR 시스템은 사용자의 머리 움직임을 검출할 수 있고, 사운드들 및 뷰들이 물리적 환경에서 어떻게 변경되는지를 시뮬레이션하는 방식으로 사용자에게 제시된 청각 및 그래픽 콘텐츠를 조정할 수 있다. 다른 예들에서, XR 시스템은 XR 환경을 제시하는 전자 디바이스(예를 들어, 랩톱, 태블릿, 모바일 폰 등)의 이동을 검출할 수 있다. 따라서, XR 시스템은 사운드들 및 뷰들이 물리적 환경에서 어떻게 변경되는지를 시뮬레이션하는 방식으로 사용자에게 제시된 청각 및 그래픽 콘텐츠를 조정할 수 있다. 일부 경우들에서, 물리적 모션(예를 들어, 음성 커맨드)의 표현과 같은 다른 입력들은 XR 시스템이 그래픽 콘텐츠의 속성들을 조정하게 할 수 있다.
다수의 유형들의 전자 시스템들은 사용자가 XR 환경을 감지하거나 그와 상호작용할 수 있게 할 수 있다. 예들의 배타적이지 않은 목록은 사용자의 눈들에 배치될 통합형 디스플레이 능력을 갖는 렌즈들(예를 들어, 콘택트 렌즈들), 헤드-업 디스플레이(heads-up display, HUD)들, 투영 기반 시스템들, 머리 장착가능 시스템들, 통합형 디스플레이 기술을 갖는 윈도우들 또는 윈드쉴드들, 헤드폰/이어폰, 햅틱 피드백을 갖거나 갖지 않는 입력 시스템들(예를 들어, 핸드헬드 또는 웨어러블 제어기들), 스마트폰들, 태블릿들, 데스크톱/랩톱 컴퓨터들, 및 스피커 어레이들을 포함한다. 머리 장착가능 시스템들은 불투명 디스플레이 및 하나 이상의 스피커들을 포함할 수 있다. 다른 머리 장착가능 시스템들은 스마트폰의 것과 같은 불투명 외부 디스플레이를 수용하도록 구성될 수 있다. 머리 장착가능 시스템들은 하나 이상의 이미지 센서들을 사용하여 물리적 환경의 이미지들/비디오를 캡처할 수 있거나, 또는 하나 이상의 마이크로폰들을 사용하여 물리적 환경의 오디오를 캡처할 수 있다. 불투명 디스플레이 대신, 일부 머리 장착가능 시스템들은 투명 또는 반투명 디스플레이를 가질 수 있다. 투명 또는 반투명 디스플레이들은 홀로그램 매체, 광학 도파관, 광학 결합기, 광학 반사기, 다른 유사한 기술들, 또는 이들의 조합들과 같은 매체를 통해 이미지들을 표현하는 광을 사용자의 눈들에 지향시킬 수 있다. 실리콘 액정 표시장치(liquid crystal on silicon), LED들, μLED들, OLED들, 레이저 스캐닝 광원, 디지털 광 투영, 또는 이들의 조합들과 같은 다양한 디스플레이 기술들이 사용될 수 있다. 일부 예들에서, 투명 또는 반투명 디스플레이는 불투명해지도록 선택적으로 제어될 수 있다. 투영 기반 시스템들은 사용자의 망막 상에 이미지들을 투영하는 망막 투영 기술을 이용할 수 있거나, 또는 물리적 환경 내로, 예를 들어 물리적 표면 상에 또는 홀로그램으로서 가상 콘텐츠를 투영할 수 있다.
도 1은 일부 구현예들에 따른 예시적인 동작 환경(100)의 블록도이다. 관련 특징부들이 도시되어 있지만, 당업자들은 본 개시내용으로부터, 다양한 다른 특징부들이 간결함을 위해 그리고 본 명세서에 개시되는 예시적인 구현예들의 더 많은 관련 양태들을 불명료하게 하지 않기 위해 예시되지 않았다는 것을 인식할 것이다. 이를 위해, 비제한적인 예로서, 동작 아키텍처(100)는 선택적 프로세싱 디바이스(110) 및 전자 디바이스(120)(예를 들어, 태블릿, 모바일 폰, 랩톱, 근안 시스템, 웨어러블 컴퓨팅 디바이스 등)를 포함한다.
일부 구현예들에서, 프로세싱 디바이스(110)는 좌측 손(150) 및 우측 손(152)을 갖는 사용자(149) 및 선택적으로는 다른 사용자들에 대한 XR 경험(때때로 본 명세서에서 "XR 환경" 또는 "가상 환경" 또는 "그래픽 환경"으로 또한 지칭됨)을 관리 및 조정하도록 구성된다. 일부 구현예들에서, 프로세싱 디바이스(110)는 소프트웨어, 펌웨어, 및/또는 하드웨어의 적합한 조합을 포함한다. 프로세싱 디바이스(110)는 도 2에 관해 아래에서 더 상세히 설명된다. 일부 구현예들에서, 프로세싱 디바이스(110)는 물리적 환경(105)에 대해 로컬 또는 원격인 컴퓨팅 디바이스이다. 예를 들어, 프로세싱 디바이스(110)는 물리적 환경(105) 내에 위치된 로컬 서버이다. 다른 예에서, 프로세싱 디바이스(110)는 물리적 환경(105)의 외부에 위치된 원격 서버(예를 들어, 클라우드 서버, 중앙 서버 등)이다. 일부 구현예들에서, 프로세싱 디바이스(110)는 하나 이상의 유선 또는 무선 통신 채널들(144)(예를 들어, 블루투스, IEEE 802.11x, IEEE 802.16x, IEEE 802.3x 등)을 통해 전자 디바이스(120)와 통신가능하게 커플링된다. 일부 구현예들에서, 프로세싱 디바이스(110)의 기능들은 전자 디바이스(120)에 의해 제공된다. 이와 같이, 일부 구현예들에서, 프로세싱 디바이스(110)의 컴포넌트들은 전자 디바이스(120)에 통합된다.
도 1에 도시된 바와 같이, 사용자(149)는 자신의 우측 손(152)에 제어기(130)를 파지한다. 도 1에 도시된 바와 같이, 제어기(130)는 제1 단부(176) 및 제2 단부(177)를 포함한다. 다양한 실시예들에서, 제1 단부(176)는 제어기(130)의 팁(tip)(예를 들어, 연필의 팁)에 대응하고, 제2 단부(177)는 제어기(130)의 반대 또는 하단 단부(예를 들어, 연필의 지우개)에 대응한다. 도 1에 도시된 바와 같이, 제어기(130)는 사용자(149)로부터 터치 입력들을 수신하기 위한 터치 감응형 표면(175)을 포함한다. 일부 구현예들에서, 제어기(130)는 소프트웨어, 펌웨어, 및/또는 하드웨어의 적합한 조합을 포함한다. 제어기(130)는 도 4에 관해 아래에서 더 상세히 설명된다. 일부 구현예들에서, 제어기(130)는 프로세싱 디바이스(110)에 대한 유선 또는 무선 통신 채널을 갖는 전자 디바이스에 대응한다. 예를 들어, 제어기(130)는 스타일러스, 손가락-웨어러블 디바이스, 핸드헬드 디바이스 등에 대응한다. 일부 구현예들에서, 프로세싱 디바이스(110)는 하나 이상의 유선 또는 무선 통신 채널들(146)(예를 들어, 블루투스, IEEE 802.11x, IEEE 802.16x, IEEE 802.3x 등)을 통해 제어기(130)와 통신가능하게 커플링된다.
일부 구현예들에서, 전자 디바이스(120)는 오디오 및/또는 비디오(A/V) 콘텐츠를 사용자(149)에게 제시하도록 구성된다. 일부 구현예들에서, 전자 디바이스(120)는 사용자 인터페이스(UI) 및/또는 XR 환경(128)을 사용자(149)에게 제시하도록 구성된다. 일부 구현예들에서, 전자 디바이스(120)는 소프트웨어, 펌웨어, 및/또는 하드웨어의 적합한 조합을 포함한다. 전자 디바이스(120)는 도 3에 관해 아래에서 더 상세히 설명된다.
일부 구현예들에 따르면, 전자 디바이스(120)는, 사용자(149)가 전자 디바이스(120)의 시야(FOV)(111) 내의 테이블(107)을 포함하는 물리적 환경(105) 내에 물리적으로 존재하는 동안, XR 경험을 사용자(149)에게 제시한다. 이와 같이, 일부 구현예들에서, 사용자(149)는 자신의 손(들)에 전자 디바이스(120)를 들고 있다. 일부 구현예들에서, XR 경험을 제시하는 동안, 전자 디바이스(120)는 XR 실린더(cylinder)(109)를 포함하는 XR 콘텐츠(때때로 본 명세서에서 "그래픽 콘텐츠" 또는 "가상 콘텐츠"로 또한 지칭됨)를 제시하고, 디스플레이(122) 상에서의 (예컨대, 테이블(107) 또는 그의 표현을 포함하는) 물리적 환경(105)의 비디오 패스-스루를 가능하게 하도록 구성된다. 예를 들어, XR 실린더(109)를 포함하는 XR 환경(128)은 볼류메트릭(volumetric) 또는 3차원(3D)이다.
일 예에서, XR 실린더(109)는, FOV(111)가 전자 디바이스(120)의 병진 및/또는 회전 이동으로 인해 변경됨에 따라 XR 실린더(109)가 디스플레이(122) 상의 동일한 위치에 디스플레이되게 유지되도록 디스플레이-고정 콘텐츠에 대응한다. 다른 예에서, XR 실린더(109)는, FOV(111)가 전자 디바이스(120)의 병진 및/또는 회전 이동으로 인해 변경됨에 따라 XR 실린더(109)가 그의 원래 위치(origin location)에 디스플레이되게 유지되도록 세계-고정 콘텐츠에 대응한다. 이와 같이, 이러한 예에서, FOV(111)가 원래 위치를 포함하지 않으면, XR 환경(128)은 XR 실린더(109)를 포함하지 않을 것이다. 예를 들어, 전자 디바이스(120)는 근안 시스템, 모바일 폰, 태블릿, 랩톱, 웨어러블 컴퓨팅 디바이스 등에 대응한다.
일부 구현예들에서, 디스플레이(122)는 테이블(107)을 포함하는 물리적 환경(105)의 광학 시스루를 가능하게 하는 추가 디스플레이에 대응한다. 예를 들어, 디스플레이(122)는 투명 렌즈에 대응하고, 전자 디바이스(120)는 사용자(149)에 의해 착용된 한 쌍의 안경에 대응한다. 이와 같이, 일부 구현예들에서, 전자 디바이스(120)는 XR 콘텐츠(예를 들어, XR 실린더(109))를 추가 디스플레이 상으로 투사함으로써 사용자 인터페이스를 제시하며, 이는 결국 사용자(149)의 관점으로부터 물리적 환경(105) 상에 오버레이된다. 일부 구현예들에서, 전자 디바이스(120)는 XR 콘텐츠(예를 들어, XR 실린더(109))를 추가 디스플레이 상에 디스플레이함으로써 사용자 인터페이스를 제시하며, 이는 결국 사용자(149)의 관점으로부터 물리적 환경(105) 상에 오버레이된다.
일부 구현예들에서, 사용자(149)는 근안 시스템과 같은 전자 디바이스(120)를 착용한다. 이와 같이, 전자 디바이스(120)는 XR 콘텐츠를 디스플레이하도록 제공되는 하나 이상의 디스플레이들(예를 들어, 단일 디스플레이 또는 각각의 눈에 대해 하나의 디스플레이)을 포함한다. 예를 들어, 전자 디바이스(120)는 사용자(149)의 FOV를 둘러싼다. 그러한 구현예들에서, 전자 디바이스(120)는 XR 환경(128)에 대응하는 데이터를 하나 이상의 디스플레이들 상에 디스플레이함으로써 또는 XR 환경(128)에 대응하는 데이터를 사용자(149)의 망막들 상으로 투사함으로써 XR 환경(128)을 제시한다.
일부 구현예들에서, 전자 디바이스(120)는 XR 환경(128)을 디스플레이하는 통합된 디스플레이(예를 들어, 내장형 디스플레이)를 포함한다. 일부 구현예들에서, 전자 디바이스(120)는 머리-장착가능 인클로저를 포함한다. 다양한 구현예들에서, 머리-장착가능 인클로저는 디스플레이를 갖는 다른 디바이스가 부착될 수 있는 부착 구역을 포함한다. 예를 들어, 일부 구현예들에서, 전자 디바이스(120)는 머리-장착가능 인클로저에 부착될 수 있다. 다양한 구현예들에서, 머리-장착가능 인클로저는 디스플레이를 포함하는 다른 디바이스(예를 들어, 전자 디바이스(120))를 수용하기 위한 리셉터클을 형성하도록 형상화된다. 예를 들어, 일부 구현예들에서, 전자 디바이스(120)는 머리-장착가능 인클로저 내로 슬라이딩/스냅되거나, 또는 그렇지 않으면 그에 부착된다. 일부 구현예들에서, 머리-장착가능 인클로저에 부착된 디바이스의 디스플레이는 XR 환경(128)을 제시(예를 들어, 디스플레이)한다. 일부 구현예들에서, 전자 디바이스(120)는 XR 콘텐츠를 제시하도록 구성된 XR 챔버, 인클로저, 또는 룸(room)으로 대체되며, 여기서 사용자(149)는 전자 디바이스(120)를 착용하지 않는다.
일부 구현예들에서, 프로세싱 디바이스(110) 및/또는 전자 디바이스(120)는 사용자(149)의 XR 표현으로 하여금, 물리적 환경(105) 내의 전자 디바이스(120) 및/또는 선택적 원격 입력 디바이스들로부터의 이동 정보(예를 들어, 신체 포즈 데이터, 눈 추적 데이터, 손/사지(limb)/손가락/손발 추적 데이터 등)에 기초하여 XR 환경(128) 내에서 이동되게 한다. 일부 구현예들에서, 선택적 원격 입력 디바이스들은 물리적 환경(105) 내의 고정된 또는 이동가능 감각 장비(예를 들어, 이미지 센서들, 깊이 센서들, 적외선(IR) 센서들, 이벤트 카메라들, 마이크로폰들 등)에 대응한다. 일부 구현예들에서, 원격 입력 디바이스들 각각은, 사용자(149)가 물리적 환경(105) 내에 물리적으로 있는 동안 입력 데이터를 수집/캡처하고, 입력 데이터를 프로세싱 디바이스(110) 및/또는 전자 디바이스(120)에 제공하도록 구성된다. 일부 구현예들에서, 원격 입력 디바이스들은 마이크로폰들을 포함하고, 입력 데이터는 사용자(149)와 연관된 오디오 데이터(예를 들어, 스피치 샘플들)를 포함한다. 일부 구현예들에서, 원격 입력 디바이스들은 이미지 센서들(예를 들어, 카메라들)을 포함하고, 입력 데이터는 사용자(149)의 이미지들을 포함한다. 일부 구현예들에서, 입력 데이터는 상이한 시간들에서의 사용자(149)의 신체 포즈들을 특성화한다. 일부 구현예들에서, 입력 데이터는 상이한 시간들에서의 사용자(149)의 머리 포즈들을 특성화한다. 일부 구현예들에서, 입력 데이터는 상이한 시간들에서의 사용자(149)의 손들과 연관된 손 추적 정보를 특성화한다. 일부 구현예들에서, 입력 데이터는 자신의 손들과 같은 사용자(149)의 신체 부위들의 속도 및/또는 가속도를 특성화한다. 일부 구현예들에서, 입력 데이터는 사용자(149)의 관절 포지션들 및/또는 관절 배향들을 표시한다. 일부 구현예들에서, 원격 입력 디바이스들은 피드백 디바이스들, 예컨대 스피커들, 광들 등을 포함한다.
도 2는 일부 구현예들에 따른 프로세싱 디바이스(110)의 일 예의 블록도이다. 소정의 특정 특징부들이 예시되어 있지만, 당업자들은 본 개시내용으로부터 다양한 다른 특징부들이 간결함을 위해, 그리고 본 명세서에 개시된 구현예들의 더 적절한 양태들을 불명확하게 하지 않기 위해 예시되지 않았음을 인식할 것이다. 이를 위해, 비제한적인 예로서, 일부 구현예들에서, 프로세싱 디바이스(110)는 하나 이상의 프로세싱 유닛들(202)(예를 들어, 마이크로프로세서들, 주문형 집적 회로(application-specific integrated-circuit; ASIC)들, 필드-프로그래밍가능 게이트 어레이(field-programmable gate array; FPGA)들, 그래픽 프로세싱 유닛(graphics processing unit; GPU)들, 중앙 프로세싱 유닛(central processing unit; CPU)들, 프로세싱 코어들 등), 하나 이상의 입력/출력(input/output; I/O) 디바이스들(206), 하나 이상의 통신 인터페이스들(208)(예를 들어, 범용 직렬 버스(universal serial bus; USB), IEEE 802.3x, IEEE 802.11x, IEEE 802.16x, 모바일 통신들을 위한 글로벌 시스템(global system for mobile communication; GSM), 코드 분할 다중 액세스(code division multiple access; CDMA), 시분할 다중 액세스(time division multiple access; TDMA), 글로벌 포지셔닝 시스템(global positioning system; GPS), 적외선(infrared; IR), 블루투스, 지그비, 및/또는 유사한 유형의 인터페이스), 하나 이상의 프로그래밍(예를 들어, I/O) 인터페이스들(210), 메모리(220), 및 이들 및 다양한 다른 컴포넌트들을 상호연결시키기 위한 하나 이상의 통신 버스들(204)을 포함한다.
일부 구현예들에서, 하나 이상의 통신 버스들(204)은 시스템 컴포넌트들 사이의 통신들을 상호연결시키고 제어하는 회로부를 포함한다. 일부 구현예들에서, 하나 이상의 I/O 디바이스들(206)은 키보드, 마우스, 터치패드, 터치스크린, 조이스틱, 하나 이상의 마이크로폰들, 하나 이상의 스피커들, 하나 이상의 이미지 센서들, 하나 이상의 디스플레이들 등 중 적어도 하나를 포함한다.
메모리(220)는 동적-랜덤 액세스 메모리(DRAM), 정적 랜덤-액세스 메모리(SRAM), 더블-데이터-레이트 랜덤-액세스 메모리(DDR RAM), 또는 다른 랜덤-액세스 솔리드-스테이트 메모리 디바이스들과 같은 고속 랜덤-액세스 메모리를 포함한다. 일부 구현예들에서, 메모리(220)는 하나 이상의 자기 디스크 저장 디바이스들, 광학 디스크 저장 디바이스들, 플래시 메모리 디바이스들, 또는 다른 비휘발성 솔리드-스테이트 저장 디바이스들과 같은 비휘발성 메모리를 포함한다. 메모리(220)는 선택적으로, 하나 이상의 프로세싱 유닛들(202)로부터 원격으로 위치된 하나 이상의 저장 디바이스들을 포함한다. 메모리(220)는 비일시적 컴퓨터 판독가능 저장 매체를 포함한다. 일부 구현예들에서, 메모리(220) 또는 메모리(220)의 비일시적 컴퓨터 판독가능 저장 매체는 다음의 프로그램들, 모듈들 및 데이터 구조들, 또는 도 2에 관해 아래에서 설명되는 그들의 서브세트를 저장한다.
운영 체제(230)는 다양한 기본 시스템 서비스들을 처리하고 하드웨어 의존 태스크들을 수행하기 위한 절차들을 포함한다.
일부 구현예들에서, 데이터 획득기(242)는 프로세싱 디바이스(110)의 I/O 디바이스들(206), 전자 디바이스(120)의 I/O 디바이스들 및 센서들(306), 및 선택적 원격 입력 디바이스들 중 적어도 하나로부터 데이터(예를 들어, 물리적 환경(105)의 캡처된 이미지 프레임들, 제시 데이터, 입력 데이터, 사용자 상호작용 데이터, 카메라 포즈 추적 정보, 눈 추적 정보, 머리/신체 포즈 추적 정보, 손/사지/손가락/극단 추적 정보, 센서 데이터, 위치 데이터 등)를 획득하도록 구성된다. 이를 위해, 다양한 구현예들에서, 데이터 획득기(242)는 그에 대한 명령어들 및/또는 로직, 및 그에 대한 휴리스틱 및 메타데이터를 포함한다.
일부 구현예들에서, 맵퍼 및 로케이터 엔진(244)은 물리적 환경(105)을 맵핑하고, 물리적 환경(105)에 대한 적어도 전자 디바이스(120) 및 사용자(149)의 포지션/위치를 추적하도록 구성된다. 이를 위해, 다양한 구현예들에서, 맵퍼 및 로케이터 엔진(244)은 그에 대한 명령어들 및/또는 로직, 및 그에 대한 휴리스틱 및 메타데이터를 포함한다.
일부 구현예들에서, 데이터 송신기(246)는 데이터(예를 들어, XR 환경과 연관된 렌더링된 이미지 프레임들과 같은 제시 데이터, 위치 데이터 등)를 적어도 전자 디바이스(120) 및 선택적으로는 하나 이상의 다른 디바이스들에 송신하도록 구성된다. 이를 위해, 다양한 구현예들에서, 데이터 송신기(246)는 그에 대한 명령어들 및/또는 로직, 및 그에 대한 휴리스틱 및 메타데이터를 포함한다.
일부 구현예들에서, 프라이버시 아키텍처(508)는 하나 이상의 프라이버시 필터들에 기초하여, 데이터를 입수하고 사용자 정보를 필터링하고 그리고/또는 데이터 내의 정보를 식별하도록 구성된다. 프라이버시 아키텍처(508)는 도 5a를 참조하여 아래에서 더 상세히 설명된다. 이를 위해, 다양한 구현예들에서, 프라이버시 아키텍처(508)는 그에 대한 명령어들 및/또는 로직, 및 그에 대한 휴리스틱 및 메타데이터를 포함한다.
일부 구현예들에서, 객체 추적 엔진(510)은 추적 데이터에 기초하여 물리적 객체(예를 들어, 제어기(130) 또는 프록시 객체)를 추적하기 위해 객체 추적 벡터(511)를 결정/생성하고, 시간에 걸쳐 포즈 특성화 벡터(515) 객체 추적 벡터(511)를 업데이트하도록 구성된다. 예를 들어, 도 5b에 도시된 바와 같이, 객체 추적 벡터(511)는 물리적 객체에 대한 병진 값들(572)(예를 들어, 물리적 환경(105) 또는 세계-전체에 대한 x, y, 및 z 좌표들과 연관됨), 물리적 객체에 대한 회전 값들(574)(예를 들어, 롤(roll), 피치, 및 요(yaw)), 물리적 객체와 연관된 하나 이상의 압력 값들(576), 물리적 객체와 연관된 선택적 터치 입력 정보(578) 등을 포함한다. 객체 추적 엔진(510)은 도 5a를 참조하여 아래에서 더 상세히 설명된다. 이를 위해, 다양한 구현예들에서, 객체 추적 엔진(510)은 그에 대한 명령어들 및/또는 로직, 및 그에 대한 휴리스틱 및 메타데이터를 포함한다.
일부 구현예들에서, 눈 추적 엔진(512)은, 입력 데이터에 기초하여, 도 5b에 도시된 바와 같이(예를 들어, 시선 방향으로) 눈 추적 벡터(513)를 결정/생성하고, 시간에 걸쳐 눈 추적 벡터(513)를 업데이트하도록 구성된다. 예를 들어, 시선 방향은, 사용자(149)가 현재 보고 있는 물리적 환경(105) 내의 지점(예를 들어, 물리적 환경(105) 또는 세계-전체에 대한 x, y, 및 z 좌표들과 연관됨), 물리적 객체, 또는 관심 구역(ROI)을 표시한다. 다른 예로서, 시선 방향은, 사용자(149)가 현재 보고 있는 XR 환경(128) 내의 지점(예를 들어, XR 환경(128)에 대한 x, y, 및 z 좌표들과 연관됨), XR 객체, 또는 관심 구역(ROI)을 표시한다. 눈 추적 엔진(512)은 도 5a를 참조하여 아래에서 더 상세히 설명된다. 이를 위해, 다양한 구현예들에서, 눈 추적 엔진(512)은 그에 대한 명령어들 및/또는 로직, 및 그에 대한 휴리스틱 및 메타데이터를 포함한다.
일부 구현예들에서, 신체/머리 포즈 추적 엔진(514)은, 입력 데이터에 기초하여 포즈 특성화 벡터(515)를 결정/생성하고, 시간에 걸쳐 포즈 특성화 벡터(515)를 업데이트하도록 구성된다. 예를 들어, 도 5b에 도시된 바와 같이, 포즈 특성화 벡터(515)는 머리 포즈 디스크립터(592A)(예를 들어, 상향, 하향, 중립 등), 머리 포즈에 대한 병진 값들(592B), 머리 포즈에 대한 회전 값들(592C), 신체 포즈 디스크립터(594A)(예를 들어, 서 있음, 앉아 있음, 엎드려 있음 등), 신체 섹션들/극단들/사지들/관절들에 대한 병진 값들(594B), 신체 섹션들/극단들/사지들/관절들에 대한 회전 값들(594C) 등을 포함한다. 신체/머리 포즈 추적 엔진(514)은 도 5a를 참조하여 아래에서 더 상세히 설명된다. 이를 위해, 다양한 구현예들에서, 신체/머리 포즈 추적 엔진(514)은 그에 대한 명령어들 및/또는 로직, 및 그에 대한 휴리스틱 및 메타데이터를 포함한다. 일부 구현예들에서, 객체 추적 엔진(510), 눈 추적 엔진(512), 및 신체/머리 포즈 추적 엔진(514)은 프로세싱 디바이스(110)에 부가하여 또는 그 대신에 전자 디바이스(120) 상에 위치될 수 있다.
일부 구현예들에서, 콘텐츠 선택기(522)는 하나 이상의 사용자 요청들 및/또는 입력들(예를 들어, 음성 커맨드, XR 콘텐츠 항목들의 사용자 인터페이스(UI) 메뉴의 선택 등)에 기초하여 콘텐츠 라이브러리(525)로부터 XR 콘텐츠(때때로, 본 명세서에서 "그래픽 콘텐츠" 또는 "가상 콘텐츠"로 또한 지칭됨)를 선택하도록 구성된다. 콘텐츠 선택기(522)는 도 5a를 참조하여 아래에서 더 상세히 설명된다. 이를 위해, 다양한 구현예들에서, 콘텐츠 선택기(522)는 그에 대한 명령어들 및/또는 로직, 및 그에 대한 휴리스틱 및 메타데이터를 포함한다.
일부 구현예들에서, 콘텐츠 라이브러리(525)는 오디오/시각적(A/V) 콘텐츠, 가상 에이전트(VA)들, 및/또는 XR 콘텐츠, 객체들, 항목들, 풍경들 등과 같은 복수의 콘텐츠 항목들을 포함한다. 일 예로서, XR 콘텐츠는 사용자 캡처된 비디오들, 영화들, TV 에피소드들, 및/또는 다른 XR 콘텐츠의 3D 재구성들을 포함한다. 일부 구현예들에서, 콘텐츠 라이브러리(525)는 사용자(149)에 의해 미리 채워지거나, 또는 수동으로 작성된다. 일부 구현예들에서, 콘텐츠 라이브러리(525)는 프로세싱 디바이스(110)에 대해 로컬로 위치된다. 일부 구현예들에서, 콘텐츠 라이브러리(525)는 프로세싱 디바이스(110)로부터 원격에(예를 들어, 원격 서버, 클라우드 서버 등에) 위치된다.
일부 구현예들에서, 동작 양식 관리자(540)는 포즈 값 및 사용자 그립 값을 포함하는 물리적 객체에 대해 도 5b에 도시된 특성화 벡터(543)에 기초하여 물리적 객체(예를 들어, 제어기(130) 또는 프록시 객체)에 대한 동작 양식을 선택하도록 구성되며, 여기서 특성화 벡터(543)는 사용자 입력 벡터(예를 들어, 눈 추적 벡터(513)와 포즈 특성화 벡터(515)의 조합) 및 추적 데이터(예를 들어, 객체 랙킹 벡터(511))의 함수이다. 동작 양식 관리자(540)는 도 5a를 참조하여 아래에서 더 상세히 설명된다. 이를 위해, 다양한 구현예들에서, 동작 양식 관리자(540)는 그에 대한 명령어들 및/또는 로직, 및 그에 대한 휴리스틱 및 메타데이터를 포함한다. 일부 구현예들에서, 동작 양식 관리자(540)는 특성화 엔진(542) 및 동작 양식 선택기(544)를 포함한다.
일부 구현예들에서, 특성화 엔진(542)은 사용자 입력 벡터(예를 들어, 눈 추적 벡터(513)와 포즈 특성화 벡터(515)의 조합) 및 추적 데이터(예를 들어, 객체 추적 벡터(511))에기초하여 물리적 객체에 대한 특성화 벡터(543)를 결정/생성하도록 구성된다. 일부 구현예들에서, 특성화 엔진(542)은 또한 시간에 걸쳐 포즈 특성화 벡터(515)를 업데이트하도록 구성된다. 도 5b에 도시된 바와 같이, 특성화 벡터(543)는 사용자 그립 값(5102) 및 포즈 값(5104)을 포함한다. 특성화 엔진(542)은 도 5c를 참조하여 아래에서 더 상세히 설명된다. 이를 위해, 다양한 구현예들에서, 특성화 엔진(542)은 그에 대한 명령어들 및/또는 로직, 및 그에 대한 휴리스틱 및 메타데이터를 포함한다.
일부 구현예들에서, 동작 양식 선택기(544)는 특성화 벡터(543)에 기초하여 (XR 환경(128)과 상호작용할 때) 물리적 객체에 대한 현재 동작 양식을 선택하도록 구성된다. 예를 들어, 동작 양식들은 구술 모드, 디지털 어시스턴트 모드, 내비게이션 모드, 조작 모드, 마킹 모드, 소거 모드, 포인팅 모드, 구현 모드 등을 포함할 수 있다. 동작 양식 선택기(544)는 도 5a를 참조하여 아래에서 더 상세히 설명된다. 이를 위해, 다양한 구현예들에서, 동작 양식 선택기(544)는 그에 대한 명령어들 및/또는 로직, 및 그에 대한 휴리스틱 및 메타데이터를 포함한다.
일부 구현예들에서, 콘텐츠 관리자(530)는 VA(들), XR 콘텐츠, XR 콘텐츠와 연관된 하나 이상의 사용자 인터페이스(UI) 요소들 등 중 하나 이상을 포함하는 XR 환경(128)에 대해 레이아웃, 셋업, 구조 등을 관리 및 업데이트하도록 구성된다. 콘텐츠 관리자(530)는 도 5a를 참조하여 아래에서 더 상세히 설명된다. 이를 위해, 다양한 구현예들에서, 콘텐츠 관리자(530)는 그에 대한 명령어들 및/또는 로직, 및 그에 대한 휴리스틱 및 메타데이터를 포함한다. 일부 구현예들에서, 콘텐츠 관리자(530)는 버퍼(534), 콘텐츠 업데이터(536), 및 피드백 엔진(538)을 포함한다. 일부 구현예들에서, 버퍼(534)는 하나 이상의 지난 인스턴스들 및/또는 프레임들에 대한 XR 콘텐츠, 렌더링된 이미지 프레임 등을 포함한다.
일부 구현예들에서, 콘텐츠 업데이터(536)는 물리적 환경(105) 내의 전자 디바이스(120) 또는 물리적 객체들의 병진 또는 회전 이동, 사용자 입력들(예를 들어, 손/극단 추적 입력들, 눈 추적 입력들, 터치 입력들, 음성 커맨드들, 물리적 객체와의 조작 입력들 등) 등에 기초하여 시간에 걸쳐 XR 환경(128)을 수정하도록 구성된다. 이를 위해, 다양한 구현예들에서, 콘텐츠 업데이터(536)는 그에 대한 명령어들 및/또는 로직, 및 그에 대한 휴리스틱 및 메타데이터를 포함한다.
일부 구현예들에서, 피드백 엔진(538)은 XR 환경(128)과 연관된 감각 피드백(예를 들어, 텍스트 또는 조명 변화들과 같은 시각적 피드백, 오디오 피드백, 햅틱 피드백 등)을 생성하도록 구성된다. 이를 위해, 다양한 구현예들에서, 피드백 엔진(538)은 그에 대한 명령어들 및/또는 로직, 및 그에 대한 휴리스틱 및 메타데이터를 포함한다.
일부 구현예들에서, 렌더링 엔진(550)은 XR 환경(128)(때때로 본 명세서에서 "그래픽 환경" 또는 "가상 환경"으로 또한 지칭됨) 또는 그와 연관된 이미지 프레임 뿐만 아니라 VA(들), XR 콘텐츠, XR 콘텐츠와 연관된 하나 이상의 UI 요소들 등을 렌더링하도록 구성된다. 이를 위해, 다양한 구현예들에서, 렌더링 엔진(550)은 그에 대한 명령어들 및/또는 로직, 및 그에 대한 휴리스틱 및 메타데이터를 포함한다. 일부 구현예들에서, 렌더링 엔진(550)은 포즈 결정기(552), 렌더러(554), 선택적 이미지 프로세싱 아키텍처(562), 및 선택적 합성기(564)를 포함한다. 당업자는 선택적 이미지 프로세싱 아키텍처(562) 및 선택적 합성기(564)가 비디오 패스-스루(pass-through)구성들에 대해 존재할 수 있지만, 완전 VR 또는 광학 시스루(see-through) 구성들에 대해서는 제거될 수 있다는 것을 인식할 것이다.
일부 구현예들에서, 포즈 결정기(552)는 A/V 콘텐츠 및/또는 XR 콘텐츠에 대한 사용자(149) 및/또는 전자 디바이스(120)의 현재 카메라 포즈를 결정하도록 구성된다. 포즈 결정기(552)는 도 5a를 참조하여 아래에서 더 상세히 설명된다. 이를 위해, 다양한 구현예들에서, 포즈 결정기(552)는 그에 대한 명령어들 및/또는 로직, 및 그에 대한 휴리스틱 및 메타데이터를 포함한다.
일부 구현예들에서, 렌더러(554)는 A/V 콘텐츠 및/또는 XR 콘텐츠를 그에 대한 현재 카메라 포즈에 따라 렌더링하도록 구성된다. 렌더러(554)는 도 5a를 참조하여 아래에서 더 상세히 설명된다. 이를 위해, 다양한 구현예들에서, 렌더러(554)는 그에 대한 명령어들 및/또는 로직, 및 그에 대한 휴리스틱 및 메타데이터를 포함한다.
일부 구현예들에서, 이미지 프로세싱 아키텍처(562)는 전자 디바이스(120) 및/또는 사용자(149)의 현재 카메라 포즈로부터의 물리적 환경(105)의 하나 이상의 이미지들을 포함하는 이미지 스트림을 획득(예를 들어, 수신, 리트리브(retrieve), 또는 캡처)하도록 구성된다. 일부 구현예들에서, 이미지 프로세싱 아키텍처(562)는 또한, 이미지 스트림에 대해 하나 이상의 이미지 프로세싱 동작들, 예컨대 워핑(warping), 컬러 보정, 감마 보정, 샤프닝(sharpening), 잡음 감소, 화이트 밸런스 등을 수행하도록 구성된다. 이미지 프로세싱 아키텍처(562)는 도 5a를 참조하여 아래에서 더 상세히 설명된다. 이를 위해, 다양한 구현예들에서, 이미지 프로세싱 아키텍처(562)는 그에 대한 명령어들 및/또는 로직, 및 그에 대한 휴리스틱 및 메타데이터를 포함한다.
일부 구현예들에서, 합성기(564)는 디스플레이를 위해 XR 환경(128)의 렌더링된 이미지 프레임들을 생성하기 위해, 렌더링된 A/V 콘텐츠 및/또는 XR 콘텐츠를 이미지 프로세싱 아키텍처(562)로부터의 물리적 환경(105)의 프로세싱된 이미지 스트림과 합성하도록 구성된다. 합성기(564)는 도 5a를 참조하여 아래에서 더 상세히 설명된다. 이를 위해, 다양한 구현예들에서, 합성기(564)는 그에 대한 명령어들 및/또는 로직, 및 그에 대한 휴리스틱 및 메타데이터를 포함한다.
데이터 획득기(242), 맵퍼 및 로케이터 엔진(244), 데이터 송신기(246), 프라이버시 아키텍처(508), 객체 추적 엔진(510), 눈 추적 엔진(512), 신체/머리 포즈 추적 엔진(514), 콘텐츠 선택기(522), 콘텐츠 관리자(530), 동작 양식 관리자(540), 및 렌더링 엔진(550)이 단일 디바이스(예를 들어, 프로세싱 디바이스(110)) 상에 존재하는 것으로 도시되어 있지만, 다른 구현예들에서, 데이터 획득기(242), 맵퍼 및 로케이터 엔진(244), 데이터 송신기(246), 프라이버시 아키텍처(508), 객체 추적 엔진(510), 눈 추적 엔진(512), 신체/머리 포즈 추적 엔진(514), 콘텐츠 선택기(522), 콘텐츠 관리자(530), 동작 양식 관리자(540), 및 렌더링 엔진(550)의 임의의 조합이 별개의 컴퓨팅 디바이스들에 위치될 수 있다는 것이 이해되어야 한다.
일부 구현예들에서, 프로세싱 디바이스(110)의 기능들 및/또는 컴포넌트들은 도 3에서 아래에 도시된 전자 디바이스(120)와 조합되거나 그에 의해 제공된다. 게다가, 도 2는 본 명세서에 설명된 구현예들의 구조적 개략도와는 대조적으로 특정 구현예들에 존재하는 다양한 특징부들의 기능 설명으로서 더 의도된다. 당업자들에 의해 인식되는 바와 같이, 별개로 도시된 항목들은 조합될 수 있고 일부 항목들은 분리될 수 있다. 예를 들어, 다양한 구현예들에서, 도 2에 별개로 도시된 일부 기능 모듈들은 단일 모듈로 구현될 수 있고, 단일 기능 블록들의 다양한 기능들은 하나 이상의 기능 블록들에 의해 구현될 수 있다. 모듈들의 실제 수량 및 특정 기능들의 분할 그리고 특징부들이 그들 사이에서 어떻게 할당되는지는 구현예들마다 변할 것이고, 일부 구현예들에서, 특정 구현예들에 대해 선택된 하드웨어, 소프트웨어, 및/또는 펌웨어의 특정 조합에 부분적으로 의존한다.
도 3은 일부 구현예들에 따른 전자 디바이스(120)(예를 들어, 모바일 폰, 태블릿, 랩톱, 근안 시스템, 웨어러블 컴퓨팅 디바이스 등)의 일 예의 블록도이다. 소정의 특정 특징부들이 예시되어 있지만, 당업자들은 본 개시내용으로부터 다양한 다른 특징부들이 간결함을 위해, 그리고 본 명세서에 개시된 구현예들의 더 적절한 양태들을 불명확하게 하지 않기 위해 예시되지 않았음을 인식할 것이다. 이를 위해, 비제한적인 예로서, 일부 구현예들에서, 전자 디바이스(120)는 하나 이상의 프로세싱 유닛들(302)(예를 들어, 마이크로프로세서들, ASIC들, FPGA들, GPU들, CPU들, 프로세싱 코어들 등), 하나 이상의 입력/출력(I/O) 디바이스들 및 센서들(306), 하나 이상의 통신 인터페이스들(308)(예를 들어, USB, IEEE 802.3x, IEEE 802.11x, IEEE 802.16x, GSM, CDMA, TDMA, GPS, IR, 블루투스, 지그비, 및/또는 유사한 유형의 인터페이스), 하나 이상의 프로그래밍(예를 들어, I/O) 인터페이스들(310), 하나 이상의 디스플레이들(312), 이미지 캡처 디바이스(370)(예를 들어, 하나 이상의 선택적인 내부- 또는 외부-대면 이미지 센서들), 메모리(320), 및 이들 및 다양한 다른 컴포넌트들을 상호연결시키기 위한 하나 이상의 통신 버스들(304)을 포함한다.
일부 구현예들에서, 하나 이상의 통신 버스들(304)은 시스템 컴포넌트들 사이의 통신들을 상호연결시키고 제어하는 회로부를 포함한다. 일부 구현예들에서, 하나 이상의 I/O 디바이스들 및 센서들(306)은 관성 측정 유닛(IMU), 가속도계, 자이로스코프, 자력계, 온도계, 하나 이상의 생리학적 센서들(예를 들어, 혈압 모니터, 심박수 모니터, 혈중 산소측정 모니터, 혈당 모니터 등), 하나 이상의 마이크로폰들, 하나 이상의 스피커들, 햅틱 엔진, 가열 및/또는 냉각 유닛, 피부 전단 엔진(skin shear engine), 하나 이상의 깊이 센서들(예를 들어, 구조화된 광, 비행시간(time-of-flight), LiDAR 등), 로컬화 및 맵핑 엔진, 눈 추적 엔진, 신체/헤드 포즈 추적 엔진, 손/사지/손가릭/극단 추적 엔진, 카메라 포즈 추적 엔진 등 중 적어도 하나를 포함한다.
일부 구현예들에서, 하나 이상의 디스플레이들(312)은 XR 환경을 사용자에게 제시하도록 구성된다. 일부 구현예들에서, 하나 이상의 디스플레이들(312)은 또한 플랫 비디오 콘텐츠(예를 들어, TV 에피소드 또는 영화와 연관된 2차원 "플랫" AVI, FLV, WMV, MOV, MP4, 또는 유사한 파일, 또는 물리적 환경(105)의 라이브 비디오 패스-스루)를 사용자에게 제시하도록 구성된다. 일부 구현예들에서, 하나 이상의 디스플레이들(312)은 터치스크린 디스플레이들에 대응한다. 일부 구현예들에서, 하나 이상의 디스플레이들(312)은 홀로그래픽, 디지털 광 프로세싱(digital light processing, DLP), 액정 디스플레이(LCD), 실리콘 액정 표시장치(liquid-crystal on silicon, LCoS), 유기 발광 전계 효과 트랜지스터(organic light-emitting field-effect transitory, OLET), 유기 발광 다이오드(OLED), 표면-전도 전자-방출기 디스플레이(surface-conduction electron-emitter display, SED), 전계-방출 디스플레이(FED), 양자점 발광 다이오드(quantum-dot light-emitting diode, QD-LED), 마이크로-전자-기계 시스템(micro-electro-mechanical system, MEMS) 등의 디스플레이 유형들에 대응한다. 일부 구현예들에서, 하나 이상의 디스플레이들(312)은 회절, 반사, 편광, 홀로그래픽 등의 도파관 디스플레이들에 대응한다. 예를 들어, 전자 디바이스(120)는 단일 디스플레이를 포함한다. 다른 예에서, 전자 디바이스(120)는 사용자의 각각의 눈을 위한 디스플레이를 포함한다. 일부 구현예들에서, 하나 이상의 디스플레이들(312)은 AR 및 VR 콘텐츠를 제시할 수 있다. 일부 구현예들에서, 하나 이상의 디스플레이들(312)은 AR 또는 VR 콘텐츠를 제시할 수 있다.
일부 구현예들에서, 이미지 캡처 디바이스(370)는 하나 이상의 RGB 카메라들(예를 들어, 상보성 금속-산화물-반도체(CMOS) 이미지 센서 또는 전하-결합 디바이스(CCD) 이미지 센서를 가짐), IR 이미지 센서들, 이벤트-기반 카메라들 등에 대응한다. 일부 구현예들에서, 이미지 캡처 디바이스(370)는 렌즈 조립체, 포토다이오드, 및 프론트 엔드 아키텍처를 포함한다. 일부 구현예들에서, 이미지 캡처 디바이스(370)는 외부-대면 및/또는 내부-대면 이미지 센서들을 포함한다.
메모리(320)는 DRAM, SRAM, DDR RAM, 또는 다른 랜덤-액세스 솔리드-스테이트 메모리 디바이스들과 같은 고속 랜덤-액세스 메모리를 포함한다. 일부 구현예들에서, 메모리(320)는 하나 이상의 자기 디스크 저장 디바이스들, 광 디스크 저장 디바이스들, 플래시 메모리 디바이스들, 또는 다른 비휘발성 솔리드-스테이트 저장 디바이스들과 같은 비휘발성 메모리를 포함한다. 메모리(320)는 선택적으로, 하나 이상의 프로세싱 유닛들(302)로부터 원격으로 위치된 하나 이상의 저장 디바이스들을 포함한다. 메모리(320)는 비일시적 컴퓨터 판독가능 저장 매체를 포함한다. 일부 구현예들에서, 메모리(320) 또는 메모리(320)의 비일시적 컴퓨터 판독가능 저장 매체는 다음의 프로그램들, 모듈들 및 데이터 구조들, 또는 선택적인 운영 체제(330) 및 제시 엔진(340)을 포함하는 그들의 서브세트를 저장한다.
운영 체제(330)는 다양한 기본 시스템 서비스들을 처리하고 하드웨어 의존 태스크들을 수행하기 위한 절차들을 포함한다. 일부 구현예들에서, 제시 엔진(340)은 하나 이상의 디스플레이들(312)을 통해 미디어 항목들 및/또는 XR 콘텐츠를 사용자에게 제시하도록 구성된다. 이를 위해, 다양한 구현예들에서, 제시 엔진(340)은 데이터 획득기(342), 제시기(570), 상호작용 핸들러(520), 및 데이터 송신기(350)를 포함한다.
일부 구현예들에서, 데이터 획득기(342)는 전자 디바이스(120)의 I/O 디바이스들 및 센서들(306), 프로세싱 디바이스(110), 및 원격 입력 디바이스들 중 적어도 하나로부터 데이터(예를 들어, 사용자 인터페이스 또는 XR 환경과 연관된 렌더링된 이미지 프레임들과 같은 제시 데이터, 입력 데이터, 사용자 상호작용 데이터, 헤드 추적 정보, 카메라 포즈 추적 정보, 눈 추적 정보, 머리/사지/손가락/극단 추적 정보, 센서 데이터, 위치 데이터 등)를 획득하도록 구성된다. 이를 위해, 다양한 구현예들에서, 데이터 획득기(342)는 그에 대한 명령어들 및/또는 로직, 및 그에 대한 휴리스틱 및 메타데이터를 포함한다.
일부 구현예들에서, 상호작용 핸들러(520)는 제시된 A/V 콘텐츠 및/또는 XR 콘텐츠와의 사용자 상호작용들(예를 들어, 손/극단 추적을 통해 검출된 제스처 입력들, 눈 추적을 통해 검출된 눈 시선 입력들, 음성 커맨드들 등)을 검출하도록 구성된다. 이를 위해, 다양한 구현예들에서, 상호작용 핸들러(520)는 그에 대한 명령어들 및/또는 로직, 및 그에 대한 휴리스틱 및 메타데이터를 포함한다.
일부 구현예들에서, 제시기(570)는 하나 이상의 디스플레이들(312)을 통해 A/V 콘텐츠 및/또는 XR 콘텐츠(예를 들어, VA(들), XR 콘텐츠, XR 콘텐츠와 연관된 하나 이상의 UI 요소들 등)를 포함하는 XR 환경(128) 또는 사용자 인터페이스와 연관된 렌더링된 이미지 프레임들)를 제시 및 업데이트하도록 구성된다. 이를 위해, 다양한 구현예들에서, 제시기(570)는 그에 대한 명령어들 및/또는 로직, 및 그에 대한 휴리스틱 및 메타데이터를 포함한다.
일부 구현예들에서, 데이터 송신기(350)는 데이터(예를 들어, 제시 데이터, 위치 데이터, 사용자 상호작용 데이터, 머리 추적 정보, 카메라 포즈 추적 정보, 눈 추적 정보, 손/사지/손가락/극단 추적 정보 등)를 적어도 프로세싱 디바이스(110)에 송신하도록 구성된다. 이를 위해, 다양한 구현예들에서, 데이터 송신기(350)는 그에 대한 명령어들 및/또는 로직, 및 그에 대한 휴리스틱 및 메타데이터를 포함한다.
데이터 획득기(342), 상호작용 핸들러(520), 제시기(570), 및 데이터 송신기(350)가 단일 디바이스(예를 들어, 전자 디바이스(120)) 상에 존재하는 것으로 도시되어 있지만, 다른 구현예들에서, 데이터 획득기(342), 상호작용 핸들러(520), 제시기(570), 및 데이터 송신기(350)의 임의의 조합이 별개의 컴퓨팅 디바이스들 내에 위치될 수 있다는 것이 이해되어야 한다.
게다가, 도 3은 본 명세서에 설명된 구현예들의 구조적 개략도와는 대조적으로 특정 구현예들에 존재하는 다양한 특징부들의 기능 설명으로서 더 의도된다. 당업자들에 의해 인식되는 바와 같이, 별개로 도시된 항목들은 조합될 수 있고 일부 항목들은 분리될 수 있다. 예를 들어, 다양한 구현예들에서, 도 3에 별개로 도시된 일부 기능 모듈들은 단일 모듈로 구현될 수 있고, 단일 기능 블록들의 다양한 기능들은 하나 이상의 기능 블록들에 의해 구현될 수 있다. 모듈들의 실제 수량 및 특정 기능들의 분할 그리고 특징부들이 그들 사이에서 어떻게 할당되는지는 구현예들마다 변할 것이고, 일부 구현예들에서, 특정 구현예들에 대해 선택된 하드웨어, 소프트웨어, 및/또는 펌웨어의 특정 조합에 부분적으로 의존한다.
도 4는 일부 구현예들에 따른 예시적인 제어기(130)의 블록도이다. 제어기(130)는 때때로 간단히 스타일러스로 불린다. 제어기(130)는 비일시적 메모리(402)(선택적으로, 하나 이상의 컴퓨터 판독가능 저장 매체를 포함함), 메모리 제어기(422), 하나 이상의 프로세싱 유닛(CPU)들(420), 주변기기 인터페이스(418), RF 회로부(408), 입력/출력(I/O) 서브시스템(406), 및 다른 입력 또는 제어 디바이스들(416)을 포함한다. 제어기(130)는 선택적으로 외부 포트(424) 및 하나 이상의 광학 센서들(464)을 포함한다. 제어기(130)는 선택적으로, (예를 들어, 제어기(130)가 전자 디바이스(120)의 디스플레이(122)와 같은 터치 감응형 표면에 사용될 때) 전자 디바이스(100) 상에서 또는 다른 표면들(예를 들어, 책상 표면) 상에서 제어기(130)의 접촉들의 세기를 검출하기 위한 하나 이상의 접촉 세기 센서들(465)을 포함한다. 제어기(130)는 선택적으로, 제어기(130) 상에서 촉각적 출력들을 생성하기 위한 하나 이상의 촉각적 출력 생성기들(463)을 포함한다. 이들 컴포넌트들은 선택적으로 하나 이상의 통신 버스들 또는 신호 라인들(403)을 통해 통신한다.
제어기(130)는 전자 스타일러스의 일 예일 뿐이고, 제어기(130)는 선택적으로, 도시된 것보다 더 많거나 더 적은 컴포넌트들을 갖거나, 선택적으로, 2개 이상의 컴포넌트들을 조합하거나, 또는 선택적으로 컴포넌트들의 상이한 구성 또는 배열을 갖는다는 것이 인식되어야 한다. 도 4에 도시된 다양한 컴포넌트들은, 하나 이상의 신호 프로세싱 및/또는 주문형 집적 회로들을 포함하는, 하드웨어, 소프트웨어, 펌웨어, 또는 이들의 조합으로 구현된다.
도 1에 도시된 바와 같이, 제어기(130)는 제1 단부(176) 및 제2 단부(177)를 포함한다. 다양한 실시예들에서, 제1 단부(176)는 제어기(130)의 팁(tip)(예를 들어, 연필의 팁)에 대응하고, 제2 단부(177)는 제어기(130)의 반대 또는 하단 단부(예를 들어, 연필의 지우개)에 대응한다.
도 1에 도시된 바와 같이, 제어기(130)는 사용자(149)로부터 터치 입력들을 수신하기 위한 터치 감응형 표면(175)을 포함한다. 일부 구현예들에서, 터치 감응형 표면(175)은 용량성 터치 요소에 대응한다. 제어기(130)는 터치 감응형 표면(175)과의 햅틱 및/또는 촉각적 접촉에 기초하여 사용자로부터의 입력들을 검출하는 센서 또는 센서들의 세트를 포함한다. 일부 구현예들에서, 제어기(130)는, 용량성, 저항성, 적외선, 및 표면 음향파 기술들뿐만 아니라 다른 근접 센서 어레이들, 또는 터치 감응형 표면(175)과의 하나 이상의 접촉 지점들을 결정하기 위한 다른 요소들을 포함하지만 이들로 제한되지 않는, 현재 알려져 있거나 추후에 개발되는 복수의 터치 감지 기술들 중 임의의 것을 포함한다. 제어기(130)가 다양한 센서들 및 유형들의 센서들을 포함하기 때문에, 제어기(130)는 사용자(149)로부터의 다양한 입력들을 검출할 수 있다. 일부 구현예들에서, 하나 이상의 센서들은 사용자가 터치 감응형 표면(175) 상에서 1회 또는 다수회 탭핑하는 것에 응답하여 단일 터치 입력 또는 연속적인 터치 입력들을 검출할 수 있다. 일부 구현예들에서, 하나 이상의 센서들은 사용자가 터치 감응형 표면(175)을 따라 하나 이상의 손가락들로 스트로킹(stroke)하는 것에 응답하여 제어기(130) 상에서 스와이프 입력을 검출할 수 있다. 일부 구현예들에서, 사용자가 터치 감응형 표면(175)을 따라 스트로킹하는 속도가 임계치를 위반하면, 하나 이상의 센서들은 스와이프 입력보다는 플릭 입력을 검출한다.
제어기(130)는 또한, 제어기(130)의 배향(예를 들어, 각도 포지션) 및/또는 이동을 검출하는 하나 이상의 센서들, 예컨대 하나 이상의 가속도계들(467), 하나 이상의 자이로스코프들(468), 하나 이상의 자력계들(469) 등을 포함한다. 하나 이상의 센서들은 회전의 유형 및 방향을 포함하는, 사용자에 의한 제어기(130)의 다양한 회전 이동들을 검출할 수 있다. 예를 들어, 하나 이상의 센서들은 사용자가 제어기(130)를 롤링 및/또는 트월링(twirling)하는 것을 검출할 수 있고, 롤링/트월링의 방향(예를 들어, 시계방향 또는 반시계방향)을 검출할 수 있다. 일부 구현예들에서, 검출된 입력은, 전자 디바이스(120), 세계-전체, 물리적 환경(105) 내의 물리적 표면 또는 객체, XR 환경(128) 내의 가상 표면 또는 객체 등에 대한 제어기(130)의 제1 단부(176) 및 제2 단부(177)의 각도 포지션에 의존한다. 예를 들어, 일부 구현예들에서, 제어기(130)가 전자 디바이스에 실질적으로 수직이고, 제2 단부(177)(예를 들어, 지우개)가 전자 디바이스에 더 근접하면, 전자 디바이스의 표면을 제2 단부(177)와 접촉시키는 것은 소거 동작을 초래한다. 반면에, 제어기(130)가 전자 디바이스에 실질적으로 수직이고, 제1 단부(176)(예를 들어, 팁)가 전자 디바이스에 더 근접하면, 전자 디바이스의 표면을 제1 단부(176)와 접촉시키는 것은 마킹 동작을 초래한다.
메모리(402)는 선택적으로, 고속 랜덤 액세스 메모리를 포함하고, 선택적으로 또한, 하나 이상의 플래시 메모리 디바이스들, 또는 다른 비휘발성 솔리드 스테이트 메모리 디바이스들과 같은 비휘발성 메모리를 포함한다. CPU(들)(420) 및 주변기기 인터페이스(418)와 같은 제어기(130)의 다른 컴포넌트들에 의한 메모리(402)에 대한 액세스는 선택적으로 메모리 제어기(422)에 의해 제어된다.
주변기기 인터페이스(418)는 스타일러스의 입력 및 출력 주변기기들을 CPU(들)(420) 및 메모리(402)에 커플링시키는 데 사용될 수 있다. 하나 이상의 프로세서들(420)은 제어기(130)에 대한 다양한 기능들을 수행하기 위해 그리고 데이터를 프로세싱하기 위해 메모리(402)에 저장된 다양한 소프트웨어 프로그램들 및/또는 명령어들의 세트들을 구동 또는 실행시킨다. 일부 실시예들에서, 주변기기 인터페이스(418), CPU(들)(420), 및 메모리 제어기(422)는 선택적으로, 칩(404)과 같은 단일 칩 상에 구현된다. 일부 다른 실시예들에서, 이들은 선택적으로 별개의 칩들 상에서 구현된다.
RF(radio frequency) 회로부(408)는 전자기 신호들로 또한 불리는 RF 신호들을 수신 및 전송한다. RF 회로부(408)는 전기 신호들을 전자기 신호들로/로부터 변환하고, 전자기 신호들을 통해 프로세싱 디바이스(110), 전자 디바이스(120) 등, 통신 네트워크들, 및/또는 다른 통신 디바이스들과 통신한다. RF 회로부(408)는, 선택적으로, 안테나 시스템, RF 송수신기, 하나 이상의 증폭기들, 튜너, 하나 이상의 발진기들, 디지털 신호 프로세서, CODEC 칩셋, 가입자 식별 모듈(SIM) 카드, 메모리 등을 포함하지만 이들로 제한되지 않는, 이들 기능들을 수행하기 위한 잘 알려진 회로부를 포함한다. RF 회로부(408)는, 선택적으로, 네트워크들, 예컨대 월드 와이드 웹(WWW)으로 또한 지칭되는 인터넷, 인트라넷, 및/또는 무선 네트워크, 예컨대 셀룰러 전화 네트워크, 무선 로컬 영역 네트워크(LAN) 및/또는 대도시 영역 네트워크(MAN), 및 다른 디바이스들과 무선 통신에 의해 통신한다. 무선 통신은 선택적으로, GSM(Global System for Mobile Communications), EDGE(Enhanced Data GSM Environment), HSDPA(high-speed downlink packet access), HSUPA(high-speed uplink packet access), EV-DO(Evolution, Data-Only), HSPA, HSPA+, DC-HSPA(Dual-Cell HSPA), LTE(long term evolution), NFC(near field communication), W-CDMA(wideband code division multiple access), CDMA(code division multiple access), TDMA(time division multiple access), 블루투스(BLUETOOTH), Wi-Fi(Wireless Fidelity)(예를 들어, IEEE 802.11a, IEEE 802.11ac, IEEE 802.11ax, IEEE 802.11b, IEEE 802.11g 및/또는 IEEE 802.11n), 본 문헌의 출원일까지 아직 전개되지 않은 통신 프로토콜들을 포함하는 임의의 다른 적합한 통신 프로토콜을 포함하지만 이들로 제한되지는 않는 복수의 통신 표준들, 프로토콜들 및 기술들 중 임의의 것을 사용한다.
I/O 서브시스템(406)은 다른 입력 또는 제어 디바이스들(416)과 같은 제어기(130) 상의 입력/출력 주변기기들을 주변기기 인터페이스(418)와 커플링시킨다. I/O 서브시스템(406)은 선택적으로, 광학 센서 제어기(458), 세기 센서 제어기(459), 햅틱 피드백 제어기(461), 및 다른 입력 또는 제어 디바이스들에 대한 하나 이상의 입력 제어기들(460)을 포함한다. 하나 이상의 입력 제어기들(460)은 다른 입력 또는 제어 디바이스들(416)로부터/로 전기 신호들을 수신/전송한다. 다른 입력 또는 제어 디바이스들(416)은 선택적으로, 물리적 버튼들(예를 들어, 푸시 버튼들, 로커 버튼들 등), 다이얼들, 슬라이더 스위치들, 클릭 휠들 등을 포함한다. 일부 대안적인 실시예들에서, 입력 제어기(들)(460)는 선택적으로, 적외선 포트 및/또는 USB 포트 중 임의의 것과 커플링된다(또는 어떤 것에도 커플링되지 않는다).
제어기(130)는 또한 다양한 컴포넌트들에 전력을 공급하기 위한 전력 시스템(462)을 포함한다. 전력 시스템(462)은, 선택적으로, 전력 관리 시스템, 하나 이상의 전원들(예를 들어, 배터리, 교류 전류(alternating current, AC)), 재충전 시스템, 전력 고장 검출 회로, 전력 변환기 또는 인버터, 전력 상태 표시자(예를 들어, 발광 다이오드(LED)), 및 휴대용 디바이스들 및/또는 휴대용 액세서리들에서의 전력의 생성, 관리, 및 분배와 연관된 임의의 다른 컴포넌트들을 포함한다.
제어기(130)는 선택적으로 또한 하나 이상의 광학 센서들(464)을 포함한다. 도 4는 I/O 서브시스템(406) 내의 광학 센서 제어기(458)와 커플링된 광학 센서를 도시한다. 하나 이상의 광학 센서들(464)은 선택적으로, CCD(charge-coupled device) 또는 CMOS(complementary metal-oxide semiconductor) 포토트랜지스터들을 포함한다. 하나 이상의 광학 센서들(464)은 하나 이상의 렌즈를 통해 투영된, 환경으로부터의 광을 수신하고, 광을 이미지를 표현하는 데이터로 변환한다.
제어기(130)는 선택적으로 또한 하나 이상의 접촉 세기 센서들(465)을 포함한다. 도 4는 I/O 서브시스템(406) 내의 세기 센서 제어기(459)와 커플링된 접촉 세기 센서를 도시한다. 접촉 세기 센서들(465)은 선택적으로, 하나 이상의 압전저항 스트레인 게이지들, 용량성 힘 센서들, 전기적 힘 센서들, 압전 힘 센서들, 광학적 힘 센서들, 용량성 터치 감응형 표면들, 또는 다른 세기 센서들(예를 들어, 표면에 대한 또는 사용자(149)의 파지에 대한 힘(또는 압력)을 측정하는 데 사용되는 센서들)을 포함한다. 접촉 세기 센서들(465)은 환경으로부터 접촉 세기 정보(예를 들어, 압력 정보 또는 압력 정보에 대한 프록시)를 수신한다. 일부 구현예들에서, 적어도 하나의 접촉 세기 센서는 제어기(130)의 팁과 또는 그에 근접하게 병치(collocate)된다. 일부 구현예들에서, 적어도 하나의 접촉 세기 센서는 제어기(130)의 본체와 또는 그에 근접하게 병치된다.
제어기(130)는 선택적으로 또한 하나 이상의 근접 센서들(466)을 포함한다. 도 4는 주변기기 인터페이스(418)와 커플링된 하나 이상의 근접 센서들(466)을 도시한다. 대안적으로, 하나 이상의 근접 센서들(466)은 I/O 서브시스템(406) 내의 입력 제어기(460)와 커플링된다. 일부 구현예들에서, 하나 이상의 근접 센서들(466)은 전자 디바이스(예를 들어, 전자 디바이스(120))에 대한 제어기(130)의 근접도를 결정한다.
제어기(130)는 선택적으로 또한 하나 이상의 촉각적 출력 생성기들(463)을 포함한다. 도 4는 I/O 서브시스템(406) 내의 햅틱 피드백 제어기(461)와 커플링된 촉각적 출력 생성기를 도시한다. 하나 이상의 촉각적 출력 생성기(들)(463)는 선택적으로 스피커 또는 다른 오디오 컴포넌트와 같은 하나 이상의 전자음향 디바이스들, 및/또는 모터, 솔레노이드, 전기활성 중합체, 압전 액추에이터, 정전 액추에이터, 또는 다른 촉각적 출력 생성 컴포넌트(예를 들어, 전기 신호들을 전자 디바이스 상의 촉각적 출력들로 변환하는 컴포넌트)와 같이, 에너지를 선형 모션(linear motion)으로 변환하는 전자기계 디바이스들을 포함한다. 하나 이상의 촉각적 출력 생성기(들)(463)는 햅틱 피드백 모듈(433)로부터 촉각적 피드백 생성 명령어들을 수신하고, 제어기(130)의 사용자에 의해 감지될 수 있는 촉각적 출력들을 제어기(130) 상에서 생성한다. 일부 구현예들에서, 적어도 하나의 촉각적 출력 생성기는 제어기(130)의 길이(예를 들어, 본체 또는 하우징)와 또는 그에 근접하게 병치되고, 선택적으로, 제어기(130)를 수직으로(예를 들어, 제어기(130)의 길이와 평행한 방향으로) 또는 측방향으로(예를 들어, 제어기(130)의 길이에 수직한 방향으로) 이동시킴으로써 촉각적 출력을 생성한다.
제어기(130)는 선택적으로 또한, 제어기(130)의 위치 및 포지션 상태에 관한 정보를 획득하기 위한 (예를 들어, 관성 측정 유닛(IMU)의 일부로서) 하나 이상의 가속도계들(467), 하나 이상의 자이로스코프들(468), 및/또는 하나 이상의 자력계들(469)을 포함한다. 도 4는 주변기기 인터페이스(418)와 커플링된 센서들(467, 468, 469)을 도시한다. 대안적으로, 센서들(467, 468, 469)은 선택적으로 I/O 서브시스템(406) 내의 입력 제어기(460)와 커플링된다. 제어기(130)는 선택적으로, 디바이스(130)의 위치에 관한 정보를 획득하기 위한 GPS(또는 GLONASS 또는 다른 글로벌 내비게이션 시스템) 수신기(도시되지 않음)를 포함한다.
제어기(130)는 터치 감응형 시스템(432)을 포함한다. 터치 감응형 시스템(432)은 터치 감응형 표면(175)에서 수신된 입력들을 검출한다. 이러한 입력들은 제어기(130)의 터치 감응형 표면(175)에 관해 본 명세서에서 논의된 입력들을 포함한다. 예를 들어, 터치 감응형 시스템(432)은 탭 입력들, 트월 입력들, 롤 입력들, 플릭 입력들, 스와이프 입력들 등을 검출할 수 있다. 터치 감응형 시스템(432)은 터치 감응형 표면(175)에서 수신된 특정 종류의 터치 입력(예를 들어, 트월/롤/플릭/스와이프/등)을 해독하기 위해 터치 해석 모듈(477)과 조정한다.
일부 구현예들에서, 메모리(402)에 저장된 소프트웨어 컴포넌트들은 운영 체제(426), 통신 모듈(또는 명령어들의 세트)(428), 접촉/모션 모듈(또는 명령어들의 세트)(430), 포지션 모듈(또는 명령어들의 세트)(431), 및 글로벌 포지셔닝 시스템(GPS) 모듈(또는 명령어들의 세트)(435)을 포함한다. 더욱이, 일부 구현예들에서, 메모리(402)는 도 4에 도시된 바와 같이 디바이스/글로벌 내부 상태(457)를 저장한다. 게다가, 메모리(402)는 터치 해석 모듈(477)을 포함한다. 디바이스/글로벌 내부 상태(457)는 다음 중 하나 이상을 포함한다: 스타일러스의 다양한 센서들 및 다른 입력 또는 제어 디바이스들(416)로부터 획득된 정보를 포함하는 센서 상태; 제어기(130)의 포지션 및/또는 배향에 관한 정보(예를 들어, 병진 및/또는 회전 값들) 및 (예를 들어, GPS 모듈(435)에 의해 결정된) 제어기(130)의 위치에 관한 위치 정보를 포함하는 포지션 상태.
운영 체제(426)(예를 들어, iOS, Darwin, RTXC, LINUX, UNIX, OS X, WINDOWS, 또는 VxWorks와 같은 임베디드 운영 체제)는 일반적인 시스템 태스크들(예를 들어, 메모리 관리, 전력 관리 등)을 제어 및 관리하기 위한 다양한 소프트웨어 컴포넌트들 및/또는 드라이버들을 포함하고, 다양한 하드웨어와 소프트웨어 컴포넌트들 사이의 통신을 용이하게 한다. 통신 모듈(428)은 선택적으로, 하나 이상의 외부 포트들(424)을 통한 다른 디바이스들과의 통신을 용이하게 하고, 또한 RF 회로부(408) 및/또는 외부 포트(424)에 의해 수신되는 데이터를 처리하기 위한 다양한 소프트웨어 컴포넌트들을 포함한다. 외부 포트(424)(예를 들어, USB(Universal Serial Bus), 파이어와이어(FIREWIRE) 등)는 다른 디바이스들에 직접적으로 또는 네트워크(예를 들어, 인터넷, 무선 LAN 등)를 통해 간접적으로 커플링되도록 구성된다. 일부 구현예들에서, 제어기(130)의 일부 기능들 또는 동작들은 프로세싱 디바이스(110) 및/또는 전자 디바이스(120)에 의해 제공된다.
접촉/모션 모듈(430)은 선택적으로, 제어기(130) 및 제어기(130)의 다른 터치 감응형 디바이스들(예를 들어, 제어기(130)의 버튼들 또는 다른 터치 감응형 컴포넌트들)과의 접촉을 검출한다. 접촉/모션 모듈(430)은 접촉의 검출(예를 들어, 전자 디바이스(120)의 디스플레이(122)와 같은 터치 감응형 디스플레이, 또는 책상 표면과 같은 다른 표면을 이용한 스타일러스의 팁의 검출)에 관련된 다양한 동작들, 예컨대, 접촉이 발생했는지를 결정하는 것(예를 들어, 터치-다운 이벤트를 검출하는 것), 접촉의 세기(예를 들어, 접촉의 힘 또는 압력, 또는 접촉의 힘 또는 압력에 대한 대체물)를 결정하는 것, 접촉의 이동이 있는지를 결정하고 (예를 들어, 전자 디바이스(120)의 디스플레이(122)에 걸쳐) 이동을 추적하는 것, 및 접촉이 중지되었는지를 결정하는 것(예를 들어, 리프트오프 이벤트 또는 접촉의 중단을 검출하는 것)을 수행하기 위한 소프트웨어 컴포넌트들을 포함한다. 일부 구현예들에서, 접촉/모션 모듈(430)은 I/O 서브시스템(406)으로부터 접촉 데이터를 수신한다. 일련의 접촉 데이터에 의해 표현되는 접촉 지점의 이동을 결정하는 것은, 선택적으로, 접촉 지점의 속력(크기), 속도(크기 및 방향), 및/또는 가속도(크기 및/또는 방향의 변화)를 결정하는 것을 포함한다. 위에서 언급된 바와 같이, 일부 구현예들에서, 접촉의 검출에 관련된 이러한 동작들 중 하나 이상은 (접촉/모션 모듈(430)을 사용하는 스타일러스에 부가하여 또는 그 대신에) 전자 디바이스(120) 또는 프로세싱 디바이스(110)에 의해 수행된다.
접촉/모션 모듈(430)은 선택적으로 제어기(130)에 의한 제스처 입력을 검출한다. 제어기(130)를 이용한 상이한 제스처들은 상이한 접촉 패턴들(예를 들어, 상이한 모션들, 타이밍들, 및/또는 검출 접촉들의 세기들)을 갖는다. 따라서, 제스처는, 선택적으로, 특정 접촉 패턴을 검출함으로써 검출된다. 예를 들어, 단일 탭 제스처를 검출하는 것은 터치-다운 이벤트를 검출한 다음에 터치-다운 이벤트와 동일한 포지션(또는 실질적으로 동일한 포지션)에서(예를 들어, 아이콘의 포지션에서) 리프트오프 이벤트를 검출하는 것을 포함한다. 다른 예로서, 스와이프 제스처를 검출하는 것은 터치-다운 이벤트를 검출한 다음에 하나 이상의 스타일러스-드래깅 이벤트들을 검출하고, 후속하여 뒤이어, 리프트오프 이벤트를 검출하는 것을 포함한다. 위에서 언급된 바와 같이, 일부 구현예들에서, 제스처 검출은 접촉/모션 모듈(430)을 사용하여 전자 디바이스에 의해 (접촉/모션 모듈(430)을 사용하는 스타일러스에 부가하여 또는 그 대신에) 수행된다.
포지션 모듈(431)은, 하나 이상의 가속도계들(467), 하나 이상의 자이로스코프들(468), 및/또는 하나 이상의 자력계들(469)과 함께, 선택적으로, 특정 기준 프레임 내의 제어기(130)의 자세(예를 들어, 롤, 피치, 및/또는 요)와 같은, 스타일러스에 관한 포지션 정보를 검출한다. 포지션 모듈(431)은, 하나 이상의 가속도계들(467), 하나 이상의 자이로스코프들(468), 및/또는 하나 이상의 자력계들(469)과 함께, 선택적으로, 제어기(130)의 플릭들, 탭들, 및 롤들과 같은 이동 제스처들을 검출한다. 포지션 모듈(431)은 스타일러스의 포지션을 검출하는 것 및 특정 기준 프레임 내의 스타일러스의 포지션에 대한 변화들을 검출하는 것에 관련된 다양한 동작들을 수행하기 위한 소프트웨어 컴포넌트들을 포함한다. 일부 구현예들에서, 포지션 모듈(431)은 물리적 환경(105) 또는 세계-전체에 대한 제어기(130)의 포지션 상태를 검출하고, 제어기(130)의 포지션 상태에 대한 변화들을 검출한다.
햅틱 피드백 모듈(433)은, 제어기(130)와의 사용자 상호작용들에 응답하여 제어기(130) 상의 하나 이상의 위치들에서 촉각적 출력들을 생성하기 위해 하나 이상의 촉각적 출력 생성기들(463)에 의해 사용되는 명령들을 생성하기 위한 다양한 소프트웨어 컴포넌트들을 포함한다. GPS 모듈(435)은 제어기(130)의 위치를 결정하고, 다양한 애플리케이션들에서의 사용을 위해 (예를 들어, 잃어버린 디바이스들 및/또는 액세서리들을 찾기 위한 애플리케이션과 같은 위치-기반 서비스들을 제공하는 애플리케이션들에) 이러한 정보를 제공한다.
터치 해석 모듈(477)은 제어기(130)의 터치 감응형 표면(175)에서 수신된 터치 입력의 유형을 결정(예를 들어, 해독 또는 식별)하기 위해 터치 감응형 시스템(432)과 조정한다. 예를 들어, 터치 해석 모듈(477)은, 사용자가 충분히 짧은 시간량으로 제어기(130)의 터치 감응형 표면(175)에 걸쳐 충분한 거리를 스트로킹하면, 터치 입력이 (탭 입력과는 대조적으로) 스와이프 입력에 대응한다고 결정한다. 다른 예로서, 터치 해석 모듈(477)은, 제어기(130)의 터치 감응형 표면(175)에 걸쳐 사용자가 스트로킹하는 속도가 스와이프 입력에 대응하는 속도보다 충분히 빠르면, 터치 입력이 (스와이프 입력과는 대조적으로) 플릭 입력에 대응한다고 결정한다. 스트로크들의 임계 속도들은 미리 설정될 수 있고 변경될 수 있다. 다양한 실시예들에서, 터치 감응형 표면에서 터치가 수신되는 압력 및/또는 힘은 입력의 유형을 결정한다. 예를 들어, 가벼운 터치는 제1 유형의 입력에 대응할 수 있는 반면, 더 센 터치는 제2 유형의 입력에 대응할 수 있다. 일부 구현예들에서, 터치 해석 모듈(477)의 기능(들), 예컨대 자기 센서 또는 컴퓨터 비전 기법들로부터의 데이터를 통한 터치 입력 검출은 프로세싱 디바이스(110) 및/또는 전자 디바이스(120)에 의해 제공된다.
위에서 식별된 모듈들 및 애플리케이션들 각각은 위에서 설명된 하나 이상의 기능들 및 본 출원에 설명된 방법들(예를 들어, 컴퓨터 구현 방법들 및 본 명세서에 설명된 다른 정보 프로세싱 방법들)을 수행하기 위한 실행가능 명령어들의 세트에 대응한다. 이들 모듈(즉, 명령어들의 세트들)은 별개의 소프트웨어 프로그램들, 절차들 또는 모듈들로서 구현될 필요가 없으며, 따라서 이들 모듈들의 다양한 서브세트들이 선택적으로 다양한 실시예들에서 조합되거나 그렇지 않으면 재배열된다. 일부 구현예들에서, 메모리(402)는 선택적으로, 위에서 식별된 모듈들 및 데이터 구조들의 서브세트를 저장한다. 더욱이, 메모리(402)는 선택적으로 위에서 설명되지 않은 부가적인 모듈들 및 데이터 구조들을 저장한다.
도 5a는 일부 구현예들에 따른 예시적인 콘텐츠 전달 아키텍처의 제1 부분(500A)의 블록도이다. 관련 특징부들이 도시되어 있지만, 당업자들은 본 개시내용으로부터, 다양한 다른 특징부들이 간결함을 위해 그리고 본 명세서에 개시되는 예시적인 구현예들의 더 많은 관련 양태들을 불명료하게 하지 않기 위해 예시되지 않았다는 것을 인식할 것이다. 이를 위해, 비제한적인 예로서, 콘텐츠 전달 아키텍처는 도 1 및 도 2에 도시된 프로세싱 디바이스(110)와 같은 컴퓨팅 시스템; 도 1 및 도 3에 도시된 전자 디바이스(120); 및/또는 이들의 적합한 조합에 포함된다.
도 5a에 도시된 바와 같이, 프로세싱 디바이스(110), 전자 디바이스(120), 및/또는 이들의 조합의 하나 이상의 로컬 센서들(502)은 물리적 환경(105)과 연관된 로컬 센서 데이터(503)를 획득한다. 예를 들어, 로컬 센서 데이터(503)는 물리적 환경(105)의 이미지들 또는 그들의 스트림, 물리적 환경(105) 및 물리적 환경(105)에 대한 전자 디바이스(120) 또는 사용자(149)의 위치에 대한 SLAM(simultaneous location and mapping) 정보, 물리적 환경(105)에 대한 주변 조명 정보, 물리적 환경(105)에 대한 주변 오디오 정보, 물리적 환경(105)에 대한 음향 정보, 물리적 환경(105)에 대한 치수 정보, 물리적 환경(105) 내의 객체들에 대한 시맨틱 라벨들 등을 포함한다. 일부 구현예들에서, 로컬 센서 데이터(503)는 프로세싱되지 않은 또는 포스트-프로세싱된 정보를 포함한다.
유사하게, 도 5a에 도시된 바와 같이, 물리적 환경(105) 내의 선택적 원격 입력 디바이스들과 연관된 하나 이상의 원격 센서들(504)은 물리적 환경(105)과 연관된 원격 센서 데이터(505)를 획득한다. 예를 들어, 원격 센서 데이터(505)는 물리적 환경(105)의 이미지들 또는 그들의 스트림, 물리적 환경(105) 및 물리적 환경(105)에 대한 전자 디바이스(120) 또는 사용자(149)의 위치에 대한 SLAM 정보, 물리적 환경(105)에 대한 주변 조명 정보, 물리적 환경(105)에 대한 주변 오디오 정보, 물리적 환경(105)에 대한 음향 정보, 물리적 환경(105)에 대한 치수 정보, 물리적 환경(105) 내의 객체들에 대한 시맨틱 라벨들 등을 포함한다. 일부 구현예들에서, 원격 센서 데이터(505)는 프로세싱되지 않은 또는 포스트-프로세싱된 정보를 포함한다.
도 5a에 도시된 바와 같이, 추적 데이터(506)는 제어기(130)를 위치결정하고 추적하기 위해 프로세싱 디바이스(110), 전자 디바이스(120), 또는 제어기(130) 중 적어도 하나에 의해 획득된다. 일 예로서, 추적 데이터(506)는 제어기(130)를 포함하는 전자 디바이스(120)의 외부-대면 이미지 센서들에 의해 캡처된 물리적 환경(105)의 이미지들 또는 그들의 스트림을 포함한다. 다른 예로서, 추적 데이터(506)는 제어기(130)의 통합 센서들로부터의 IMU 정보, 가속도계 정보, 자이로스코프 정보, 자력계 정보 등에 대응한다.
일부 구현예들에 따르면, 프라이버시 아키텍처(508)는 로컬 센서 데이터(503), 원격 센서 데이터(505), 및 추적 데이터(506)를 입수한다. 일부 구현예들에서, 프라이버시 아키텍처(508)는 사용자 정보 및/또는 식별 정보와 연관된 하나 이상의 프라이버시 필터들을 포함한다. 일부 구현예들에서, 프라이버시 아키텍처(508)는, 어떤 사용자 정보 및/또는 식별 정보가 모니터링되고 있는지 및 사용자 정보 및/또는 식별 정보가 어떻게 사용될지에 관해 전자 디바이스(120)가 사용자(149)에게 통지하는 것으로서 사용자(149) 통지하는 동의(opt-in) 특징부를 포함한다. 일부 구현예들에서, 프라이버시 아키텍처(508)는 콘텐츠 전달 아키텍처(500A/500B) 또는 그의 부분들이 사용자 정보를 획득 및/또는 송신하는 것을 선택적으로 방지 및/또는 제한한다. 이를 위해, 프라이버시 아키텍처(508)는 사용자(149)로부터 사용자 선호도들 및/또는 선택들을, 그들에 대해 사용자(149)를 프롬프트하는 것에 응답하여 수신한다. 일부 구현예들에서, 프라이버시 아키텍처(508)는, 프라이버시 아키텍처(508)가 사용자(149)로부터 통지된 동의를 획득하지 않는 한 그리고 획득할 때까지 콘텐츠 전달 아키텍처(500A/500B)가 사용자 정보를 획득 및/또는 송신하는 것을 방지한다. 일부 구현예들에서, 프라이버시 아키텍처(508)는 특정 유형들의 사용자 정보를 익명화한다(예를 들어, 스크램블링하거나, 가리거나, 암호화하는 등). 예를 들어, 프라이버시 아키텍처(508)는 프라이버시 아키텍처(508)가 어떤 유형들의 사용자 정보를 익명화할지를 지정하는 사용자 입력들을 수신한다. 다른 예로서, 프라이버시 아키텍처(508)는 사용자 지정과 독립적으로(예를 들어, 자동으로) 민감한 및/또는 식별 정보를 포함할 가능성이 있는 특정 유형들의 사용자 정보를 익명화한다.
일부 구현예들에 따르면, 객체 추적 엔진(510)은 추적 데이터(506)를, 그것이 프라이버시 아키텍처(508)를 겪은 이후 획득한다. 일부 구현예들에서, 객체 추적 엔진(510)은 추적 데이터(506)에 기초하여 객체 추적 벡터(511)를 결정/생성하고, 시간에 걸쳐 객체 추적 벡터(511)를 업데이트한다.
도 5b는 일부 구현예들에 따른 객체 추적 벡터(511)에 대한 예시적인 데이터 구조를 도시한다. 도 5b에 도시된 바와 같이, 객체 추적 벡터(511)는, 타임스탬프(571)(예를 들어, 객체 추적 벡터(511)가 업데이트되었던 가장 최근의 시간), 물리적 객체에 대한 하나 이상의 병진 값들(572)(예를 들어, 물리적 환경(105), 세계-전체 등에 대한 x, y, 및 z 값들), 물리적 객체에 대한 하나 이상의 회전 값들(574)(예를 들어, 롤, 피치, 및 요 값들), 물리적 객체와 연관된 하나 이상의 압력 값들(576)(예를 들어, 제어기(130)의 단부와 표면 사이의 접촉과 연관된 제1 압력 값, 사용자(149)에 의해 파지되는 동안 제어기(130)의 본체 상에 가해지는 압력의 양과 연관된 제2 압력 값 등), 선택적 터치 입력 정보(578)(예를 들어, 제어기(130)의 터치 감응형 표면(175)으로 지향되는 사용자 터치 입력들과 연관된 정보), 및/또는 잡다한 정보(579)를 포함하는 N-튜플 특성화 벡터 또는 특성화 텐서에 대응할 수 있다. 당업자는 도 5b의 객체 추적 벡터(511)에 대한 데이터 구조가 다양한 다른 구현예들에서는 상이한 정보 부분들을 포함할 수 있고 다양한 다른 구현예들에서는 무수히 많은 방식들로 구조화될 수 있는 단지 일 예라는 것을 인식할 것이다.
일부 구현예들에 따르면, 눈 추적 엔진(512)은 로컬 센서 데이터(503) 및 원격 센서 데이터(505)를, 그것이 프라이버시 아키텍처(508)를 겪은 이후 획득한다. 일부 구현예들에서, 눈 추적 엔진(512)은 입력 데이터에 기초하여 눈 추적 벡터(513)를 결정/생성하고, 시간에 걸쳐 눈 추적 벡터(513)를 업데이트한다.
도 5b는 일부 구현예들에 따른 눈 추적 벡터(513)에 대한 예시적인 데이터 구조를 도시한다. 도 5b에 도시된 바와 같이, 눈 추적 벡터(513)는, 타임스탬프(581)(예를 들어, 눈 추적 벡터(513)가 업데이트되었던 가장 최근의 시간), 현재 시선 방향에 대한 하나 이상의 각도 값들(582)(예를 들어, 롤, 피치, 및 요 값들), 현재 시선 방향에 대한 하나 이상의 병진 값들(584)(예를 들어, 물리적 환경(105), 세계-전체 등에 대한 x, y, 및 z 값들), 및/또는 잡다한 정보(586)를 포함하는 N-튜플 특성화 벡터 또는 특성화 텐서에 대응할 수 있다. 당업자는 도 5b의 눈 추적 벡터(513)에 대한 데이터 구조가 다양한 다른 구현예들에서는 상이한 정보 부분들을 포함할 수 있고 다양한 다른 구현예들에서는 무수히 많은 방식들로 구조화될 수 있는 단지 일 예라는 것을 인식할 것이다.
예를 들어, 시선 방향은, 사용자(149)가 현재 보고 있는 물리적 환경(105) 내의 지점(예를 들어, 물리적 환경(105) 또는 세계-전체에 대한 x, y, 및 z 좌표들과 연관됨), 물리적 객체, 또는 관심 구역(ROI)을 표시한다. 다른 예로서, 시선 방향은, 사용자(149)가 현재 보고 있는 XR 환경(128) 내의 지점(예를 들어, XR 환경(128)에 대한 x, y, 및 z 좌표들과 연관됨), XR 객체, 또는 관심 구역(ROI)을 표시한다.
일부 구현예들에 따르면, 신체/머리 포즈 추적 엔진(514)은 로컬 센서 데이터(503) 및 원격 센서 데이터(505)를, 그것이 프라이버시 아키텍처(508)를 겪은 이후 획득한다. 일부 구현예들에서, 신체/머리 포즈 추적 엔진(514)은, 입력 데이터에 기초하여 포즈 특성화 벡터(515)를 결정/생성하고, 시간에 걸쳐 포즈 특성화 벡터(515)를 업데이트한다.
도 5b는 일부 구현예들에 따른 포즈 특성화 벡터(515)에 대한 예시적인 데이터 구조를 도시한다. 도 5b에 도시된 바와 같이, 포즈 특성화 벡터(515)는, 타임스탬프(591)(예를 들어, 포즈 특성화 벡터(515)가 업데이트되었던 가장 최근의 시간), 머리 포즈 디스크립터(592A)(예를 들어, 상향, 하향, 중립 등), 머리 포즈에 대한 병진 값들(592B), 머리 포즈에 대한 회전 값들(592C), 신체 포즈 디스크립터(594A)(예를 들어, 서 있음, 앉아 있음, 엎드려 있음 등), 신체 섹션들/극단들/사지들/관절들에 대한 병진 값들(594B), 신체 섹션들/극단들/사지들/관절들에 대한 회전 값들(594C), 및/또는 잡다한 정보(596)를 포함하는 N-튜플 특성화 벡터 또는 특성화 텐서에 대응할 수 있다. 일부 구현예들에서, 포즈 특성화 벡터(515)는 또한 손가락/손/극단 추적과 연관된 정보를 포함한다. 당업자는 도 5b의 포즈 특성화 벡터(515)에 대한 데이터 구조가 다양한 다른 구현예들에서는 상이한 정보 부분들을 포함할 수 있고 다양한 다른 구현예들에서는 무수히 많은 방식들로 구조화될 수 있는 단지 일 예라는 것을 인식할 것이다. 일부 구현예들에 따르면, 눈 추적 벡터(513) 및 포즈 특성화 벡터(515)는 집합적으로 사용자 입력 벡터(519)로 지칭된다.
일부 구현예들에 따르면, 특성화 엔진(542)은 객체 추적 벡터(511), 눈 추적 벡터(513), 및 포즈 특성화 벡터(515)를 획득한다. 일부 구현예들에서, 특성화 엔진(542)은 객체 추적 벡터(511), 눈 추적 벡터(513), 및 포즈 특성화 벡터(515)에 기초하여 물리적 객체에 대한 특성화 벡터(543)를 결정/생성한다.
도 5b는 일부 구현예들에 따른 특성화 벡터(543)에 대한 예시적인 데이터 구조를 도시한다. 도 5b에 도시된 바와 같이, 특성화 벡터(543)는, 타임스탬프(5101)(예를 들어, 특성화 벡터(543)가 업데이트되었던 가장 최근의 시간), 물리적 객체와 연관된 사용자 그립 값(5102), 및 물리적 객체와 연관된 포즈 값(5104)을 포함하는 N-튜플 특성화 벡터 또는 특성화 텐서에 대응할 수 있다. 일부 구현예들에서, 사용자 그립 값(5102)의 값은 사용자(149)가 물리적 객체를 파지하는 방식을 표시한다. 예를 들어, 사용자 그립 값(5102)은 원격 제어-esque 그립, 완드(wand)-esque 그립, 필기 그립, 역 필기 그립, 손잡이 그립, 엄지 상단 그립, 레벨-esque 그립, 게임패드-esque 그립, 플루트(flute)-esque 그립, 화이어-스타터(fire-starter)-esque 그립 등 중 하나에 대응한다. 일부 구현예들에서, 포즈 값(5104)은 사용자(149), 물리적 표면에 대한 물리적 객체 또는 컴퓨터 비전(CV)을 통해 검출가능한 다른 객체의 배향 또는 포지션을 표시한다. 예를 들어, 포즈 값(5104)은 중립 포즈, 도체/완드 포즈, 필기 포즈, 표면 포즈, 입 근처 포즈, 조준 포즈 등 중 하나에 대응한다.
위에서 논의된 바와 같이, 일 예에서, 물리적 객체는, 통합 센서들을 포함하고 프로세싱 디바이스(110)에 통신가능하게 커플링된 제어기(130)에 대응한다. 이러한 예에서, 제어기(130)는 스타일러스, 손가락-웨어러블 디바이스, 핸드헬드 디바이스 등에 대응한다. 다른 예에서, 물리적 객체는 프로세싱 디바이스(110)에 통신가능하게 커플링되지 않은 프록시 객체에 대응한다.
일부 구현예들에 따르면, 동작 양식 선택기(544)는 물리적 객체에 대한 특성화 벡터(543)를 획득하고, 특성화 벡터(543)에 기초하여 (XR 환경(128)과 상호작용할 때) 물리적 객체에 대한 현재 동작 양식(545)을 선택한다. 일 예로서, 선택된 동작 양식(545)은, 포즈 값이 중립 포즈에 대응하고 사용자 그립 값이 필기 도구형 그립에 대응할 때 마킹 모드에 대응할 수 있다. 다른 예로서, 선택된 동작 양식(545)은, 포즈 값이 중립 포즈에 대응하고 사용자 그립 값이 역 필기 도구형 그립에 대응할 때 소거 모드에 대응할 수 있다. 다른 예로서, 선택된 동작 양식(545)은, 포즈 값이 입-근처 포즈에 대응하고 사용자 그립 값이 완드형 그립에 대응할 때 구술 모드에 대응할 수 있다. 또 다른 예로서, 선택된 동작 양식(545)은, 포즈 값이 중립 포즈에 대응하고 사용자 그립 값이 완드형 그립에 대응할 때 조작 모드에 대응할 수 있다. 또 다른 예로서, 선택된 동작 양식(545)은, 포즈 값이 조준 포즈에 대응하고 사용자 그립 값이 완드형 그립에 대응할 때 포인팅 모드에 대응할 수 있다.
도 5c는 일부 구현예들에 따른 예시적인 콘텐츠 전달 아키텍처의 제2 부분(500B)의 블록도이다. 관련 특징부들이 도시되어 있지만, 당업자들은 본 개시내용으로부터, 다양한 다른 특징부들이 간결함을 위해 그리고 본 명세서에 개시되는 예시적인 구현예들의 더 많은 관련 양태들을 불명료하게 하지 않기 위해 예시되지 않았다는 것을 인식할 것이다. 이를 위해, 비제한적인 예로서, 콘텐츠 전달 아키텍처는 도 1 및 도 2에 도시된 프로세싱 디바이스(110)와 같은 컴퓨팅 시스템; 도 1 및 도 3에 도시된 전자 디바이스(120); 및/또는 이들의 적합한 조합에 포함된다. 도 5c는 도 5a와 유사하고 그로부터 적응된다. 따라서, 유사한 참조 번호들이 도 5a 및 도 5c에서 사용된다. 이와 같이, 간결함을 위해 도 5a와 도 5c 사이의 차이들만이 설명될 것이다.
일부 구현예들에 따르면, 상호작용 핸들러(520)는 제시를 위해 A/V 콘텐츠, 하나 이상의 VA들, 및/또는 XR 콘텐츠를 선택하는 것과 연관되는 사용자(149)에 의해 제공된 하나 이상의 사용자 입력들(521)을 획득(예를 들어, 수신, 리트리브, 또는 검출)한다. 예를 들어, 하나 이상의 사용자 입력들(521)은 손/극단 추적을 통해 검출된 UI 메뉴로부터 XR 콘텐츠를 선택하는 제스처 입력, 눈 추적을 통해 검출된 UI 메뉴로부터 XR 콘텐츠를 선택하는 눈 시선 입력, 마이크로폰을 통해 검출된 UI 메뉴로부터 XR 콘텐츠를 선택하는 음성 커맨드 등에 대응한다. 일부 구현예들에서, 콘텐츠 선택기(522)는 하나 이상의 사용자 입력들(521)(예를 들어, 음성 커맨드, XR 콘텐츠 항목들의 메뉴로부터의 선택 등)에 기초하여 콘텐츠 라이브러리(525)로부터 XR 콘텐츠(527)를 선택한다.
다양한 구현예들에서, 콘텐츠 관리자(530)는, 객체 추적 벡터(511), 사용자 입력 벡터(519), 선택된 동작 양식(545), 사용자 입력들(521) 등에 기초하여, VA들, XR 콘텐츠, XR 콘텐츠와 연관된 하나 이상의 UI 요소들 등 중 하나 이상을 포함하는 XR 환경(128)에 대한 레이아웃, 셋업, 구조 등을 관리 및 업데이트한다. 이를 위해, 콘텐츠 관리자(530)는 버퍼(534), 콘텐츠 업데이터(536), 및 피드백 엔진(538)을 포함한다.
일부 구현예들에서, 버퍼(534)는 하나 이상의 지난 인스턴스들 및/또는 프레임들에 대한 XR 콘텐츠, 렌더링된 이미지 프레임 등을 포함한다. 일부 구현예들에서, 콘텐츠 업데이터(536)는, 객체 추적 벡터(511), 사용자 입력 벡터(519), 선택된 동작 양식(545), XR 콘텐츠 또는 VA(들)를 수정 및/또는 조작하는 것과 연관된 사용자 입력들(521), 물리적 환경(105) 내의 객체들의 병진 또는 회전 이동, 전자 디바이스(120)(또는 사용자(149))의 병진 또는 회전 이동 등에 기초하여 시간에 걸쳐 XR 환경(128)을 수정한다. 일부 구현예들에서, 피드백 엔진(538)은 XR 환경(128)과 연관된 감각 피드백(예를 들어, 텍스트 또는 조명 변화들과 같은 시각적 피드백, 오디오 피드백, 햅틱 피드백 등)을 생성한다.
일부 구현예들에 따르면, 도 5c의 렌더링 엔진(550)을 참조하면, 포즈 결정기(552)는 포즈 특성화 벡터(515)에 적어도 부분적으로 기초하여 XR 환경(128) 및/또는 물리적 환경(105)에 대한 전자 디바이스(120) 및/또는 사용자(149)의 현재 카메라 포즈를 결정한다. 일부 구현예들에서, 렌더러(554)는 VA(들), XR 콘텐츠(527), XR 콘텐츠와 연관된 하나 이상의 UI 요소들 등을 이들에 대한 현재 카메라 포즈에 따라 렌더링한다.
일부 구현예들에 따르면, 선택적 이미지 프로세싱 아키텍처(562)는 전자 디바이스(120) 및/또는 사용자(149)의 현재 카메라 포즈로부터의 물리적 환경(105)의 하나 이상의 이미지들을 포함하는 이미지 스트림을 이미지 캡처 디바이스(370)로부터 획득한다. 일부 구현예들에서, 이미지 프로세싱 아키텍처(562)는 또한, 이미지 스트림에 대해 하나 이상의 이미지 프로세싱 동작들, 예컨대 워핑, 컬러 보정, 감마 보정, 샤프닝, 잡음 감소, 화이트 밸런스 등을 수행한다. 일부 구현예들에서, 선택적 합성기(564)는 XR 환경(128)의 렌더링된 이미지 프레임들을 생성하기 위해, 렌더링된 XR 콘텐츠를 이미지 프로세싱 아키텍처(562)로부터의 물리적 환경(105)의 프로세싱된 이미지 스트림과 합성한다. 다양한 구현예들에서, 제시기(570)는 하나 이상의 디스플레이들(312)을 통해 XR 환경(128)의 렌더링된 이미지 프레임들을 사용자(149)에게 제시한다. 당업자는 선택적 이미지 프로세싱 아키텍처(562) 및 선택적 합성기(564)가 완전 가상 환경들(또는 광학 시스루 시나리오들)에 대해 적용가능하지 않을 수 있다는 것을 인식할 것이다.
도 6a 내지 도 6n은 일부 구현예들에 따른 콘텐츠 전달 시나리오에 대한 인스턴스들(610 내지 6140)의 시퀀스를 예시한다. 소정의 특정 특징부들이 예시되어 있지만, 당업자들은 본 개시내용으로부터 다양한 다른 특징부들이 간결함을 위해, 그리고 본 명세서에 개시된 구현예들의 더 적절한 양태들을 불명확하게 하지 않기 위해 예시되지 않았음을 인식할 것이다. 이를 위해, 비제한적인 예로서, 인스턴스들(610 내지 6140)의 시퀀스는 도 1 및 도 2에 도시된 프로세싱 디바이스(110); 도 1 및 도 3에 도시된 전자 디바이스(120); 및/또는 이들의 적합한 조합과 같은 컴퓨팅 시스템에 의해 렌더링 및 제시된다.
도 6a 내지 도 6n에 도시된 바와 같이, 콘텐츠 전달 시나리오는 (예를 들어, 사용자(149)와 연관된) 전자 디바이스(120)의 디스플레이(122) 상에 디스플레이된 물리적 환경(105) 및 XR 환경(128)을 포함한다. 전자 디바이스(120)는, 사용자(149)가 전자 디바이스(120)의 외부-대면 이미지 센서의 FOV(111) 내에 현재 있는 도어(115)를 포함하는 물리적 환경(105) 내에 물리적으로 존재하는 동안 XR 환경(128)을 사용자(149)에게 제시한다. 이와 같이, 일부 구현예들에서, 사용자(149)는 도 1의 동작 환경(100)과 유사하게 자신의 좌측 손(150)에 전자 디바이스(120)를 유지한다.
다시 말하면, 일부 구현예들에서, 전자 디바이스(120)는, XR 콘텐츠를 제시하고, 디스플레이(122) 상에서 물리적 환경(105)의 적어도 일부(예를 들어, 도어(115))의 광학 시스루 또는 비디오 패스-스루를 가능하게 하도록 구성된다. 예를 들어, 전자 디바이스(120)는 모바일 폰, 태블릿, 랩톱, 근안 시스템, 웨어러블 컴퓨팅 디바이스 등에 대응한다.
도 6a에 도시된 바와 같이, 콘텐츠 전달 시나리오의 인스턴스(610)(예를 들어, 시간 T1과 연관됨) 동안, 전자 디바이스(120)는 물리적 환경(105) 내의 가상 에이전트(VA)(606) 및 도어(115)의 표현(116)을 포함하는 XR 환경(128)을 제시한다. 도 6a에 도시된 바와 같이, XR 환경(128)은 또한, 현재 포즈 값(예를 들어, 제어기(130)가 사용자(149)에 의해 현재 파지되고 있지 않기 때문에, 현재 포즈 값 없음) 및 현재 사용자 그립 값(예를 들어, 제어기(130)가 사용자(149)에 의해 현재 파지되고 있지 않기 때문에, 현재 사용자 그립 값 없음)을 갖는 인스턴스(610)에 대한 시각적 표시자(612)를 포함한다. 당업자는 시각적 표시자(612)가 다양한 다른 구현예들에서 수정 또는 교체될 수 있는 포즈 및 사용자 그립 값들을 갖는 단지 예시적인 시각화일 뿐이라는 것을 인식할 것이다. 일 예로서, 시각적 표시자(612)는 텍스트 통지 대신에 배지, 아이콘, 오디오 출력 등일 수 있다.
도 6b에 도시된 바와 같이, 콘텐츠 전달 시나리오의 인스턴스(620)(예를 들어, 시간 T2와 연관됨) 동안, 전자 디바이스(120)는 VA(606), 현재 포즈 값(예를 들어, 입 근처) 및 현재 사용자 그립 값(예를 들어, 완드)을 갖는 인스턴스(620)에 대한 시각적 표시자(622), 및 사용자(149)의 우측 손(152)의 표현(153)(예를 들어, 물리적 환경(105)의 비디오 패스-스루)에 의해 유지되는 제어기(130)의 표현(131)을 포함하는 XR 환경(128)을 제시한다. 도 6b는 인스턴스(620)에 대한 사용자(149)의 현재 신체 포즈(625)의 예시를 포함하며, 이에 의해, 사용자(149)는 자신의 입 근처에서 자신의 우측 손(152)으로 제어기(130)를 파지하고 있다.
현재 포즈 값이 "입 근처"에 대응하고, 현재 사용자 그립 값이 "완드"에 대응한다고 결정하는 것에 응답하여, 전자 디바이스(120)는 제어기(130)에 대한 현재 동작 양식으로서 구술 모드를 선택하고, 또한, "구술 모드 활성화됨"을 표시하는 통지(624)를 디스플레이한다. 이와 같이, 제어기(130)의 현재 동작 양식이 구술 모드에 대응하는 동안, 사용자(149)는 XR 환경(128) 내에 디스플레이될 광고문, 노트, 콘텐츠 등을 구술할 수 있다. 당업자는 통지(624)가 다양한 다른 구현예들에서 수정 또는 교체될 수 있는 단지 예시적인 시각화일 뿐이라는 것을 인식할 것이다.
도 6c에 도시된 바와 같이, 콘텐츠 전달 시나리오의 인스턴스(630)(예를 들어, 시간 T3과 연관됨) 동안, 전자 디바이스(120)는 VA(606), 현재 포즈 값(예를 들어, 중립) 및 현재 사용자 그립 값(예를 들어, 필기)을 갖는 인스턴스(630)에 대한 시각적 표시자(632), 및 사용자(149)의 우측 손(152)의 표현(153)(예를 들어, 물리적 환경(105)의 비디오 패스-스루)에 의해 유지되는 제어기(130)의 표현(131)을 포함하는 XR 환경(128)을 제시한다. 도 6c 내지 도 6e는 인스턴스들(630 내지 650)에 대한 사용자(149)의 현재 신체 포즈(635)의 예시를 포함하며, 이에 의해, 사용자(149)는 공간에서(예를 들어, 3차원들에서) 필기/스케치/드로잉/마킹하기 위해 자신의 우측 손(152)으로 제어기(130)를 파지하고 있다.
현재 포즈 값이 "중립"에 대응하고, 현재 사용자 그립 값이 "필기"에 대응한다고 결정하는 것에 응답하여, 전자 디바이스(120)는 제어기(130)에 대한 현재 동작 양식으로서 마킹 모드를 선택하고, 또한, "마킹 모드 활성화됨"을 표시하는 통지(634)를 디스플레이한다. 도 6c에 도시된 바와 같이, 중력에 대해, 제1 단부(176)는 하향으로 포인팅되고, 제2 단부(177)는 상향으로 포인팅된다. 이와 같이, 제어기(130)의 현재 동작 양식이 마킹 모드에 대응하는 동안, 사용자(149)는 3차원들에서 필기/스케치/드로잉/마킹할 수 있고, 전자 디바이스(120)는 대응하는 마크들을 XR 환경(128) 내에 디스플레이한다.
도 6d에 도시된 바와 같이, 콘텐츠 전달 시나리오의 인스턴스(640)(예를 들어, 시간 T4와 연관됨) 동안, 전자 디바이스(120)는 (예를 들어, 제어기(130)로부터의 추적 데이터(506), 컴퓨터 비전 등에 기초하여) 공간에서 제어기(130)를 이용한 마킹 입력(644)을 검출한다. 도 6e에 도시된 바와 같이, 콘텐츠 전달 시나리오의 인스턴스(650)(예를 들어, 시간 T5와 연관됨) 동안, 전자 디바이스(120)는 도 6e에서 마킹 입력(644)을 검출하는 것에 응답하여 XR 환경(128) 내에 마크(654)를 디스플레이한다. 예를 들어, 마크(654)는 마킹 입력(644)의 형상, 변위 등에 대응한다. 다른 예에서, 마크(654)는 마킹 입력(644)의 형상, 변위 등과 가중치 계수(예를 들어, 증폭 값, 감쇠 값 등)의 함수에 대응한다.
도 6f에 도시된 바와 같이, 콘텐츠 전달 시나리오의 인스턴스(660)(예를 들어, 시간 T6과 연관됨) 동안, 전자 디바이스(120)는 VA(606), 및 현재 포즈 값(예를 들어, 표면) 및 현재 사용자 그립 값(예를 들어, 역 필기)을 갖는 인스턴스(660)에 대한 시각적 표시자(662)를 포함하는 XR 환경(128)을 제시한다. 도 6f 내지 도 6h는 인스턴스들(660 내지 680)에 대한 사용자(149)의 현재 신체 포즈(665)의 예시를 포함하며, 이에 의해, 사용자(149)는 전자 디바이스(120)의 디스플레이(122) 상에서 필기/스케치/드로잉/마킹하기 위해 자신의 우측 손(152)으로 제어기(130)를 파지하고 있다.
현재 포즈 값이 "표면"에 대응하고, 현재 사용자 그립 값이 "역 필기"에 대응한다고 결정하는 것에 응답하여, 전자 디바이스(120)는 제어기(130)에 대한 현재 동작 양식으로서 소거 모드를 선택하고, 또한, "소거 모드 활성화됨"을 표시하는 통지(664)를 디스플레이한다. 도 6f에 도시된 바와 같이, 중력에 대해, 제2 단부(177)는 하향으로 포인팅되고, 제1 단부(176)는 상향으로 포인팅된다. 이와 같이, 제어기(130)의 현재 동작 양식이 소거 모드에 대응하는 동안, 사용자(149)는 XR 환경(128)으로부터 픽셀 마크들을 제거/소거할 수 있다.
도 6g에 도시된 바와 같이, 콘텐츠 전달 시나리오의 인스턴스(670)(예를 들어, 시간 T7과 연관됨) 동안, 전자 디바이스(120)는 제어기(130)를 이용하여 디스플레이(122)(예를 들어, 터치 감응형 표면 등) 상에서 소거 입력(674)을 검출한다. 도 6h에 도시된 바와 같이, 콘텐츠 전달 시나리오의 인스턴스(680)(예를 들어, 시간 T8과 연관됨) 동안, 전자 디바이스(120)는 도 6g에서 소거 입력(674)을 검출하는 것에 응답하여 XR 환경(128) 내에서 마크(654)를 제거한다.
도 6i에 도시된 바와 같이, 콘텐츠 전달 시나리오의 인스턴스(690)(예를 들어, 시간 T9과 연관됨) 동안, 전자 디바이스(120)는 VA(606), 현재 포즈 값(예를 들어, 조준) 및 현재 사용자 그립 값(예를 들어, 완드)을 갖는 인스턴스(690)에 대한 시각적 표시자(692), 및 사용자(149)의 우측 손(152)의 표현(153)에 의해 유지되는 물리적 객체(695)의 표현(696)(예를 들어, 물리적 환경(105)의 비디오 패스-스루)을 포함하는 XR 환경(128)을 제시한다. 도 6i 및 도 6j는 인스턴스들(690, 6100)에 대한 사용자(149)의 현재 신체 포즈(697)의 예시를 포함하며, 이에 의해, 사용자(149)는 공간에서 포인팅하기 위해 자신의 우측 손(152)으로 물리적 객체(695)(예를 들어, 자(ruler), 스틱, 제어기(130) 등)를 파지하고 있다.
현재 포즈 값이 "조준"에 대응하고, 현재 사용자 그립 값이 "완드"에 대응한다고 결정하는 것에 응답하여, 전자 디바이스(120)는 물리적 객체(695)에 대한 현재 동작 양식으로서 포인팅 모드를 선택하고, 또한, "포인팅 모드 활성화됨"을 표시하는 통지(694)를 디스플레이한다. 이와 같이, 물리적 객체(695)의 현재 동작 양식이 포인팅 모드에 대응하는 동안, 사용자(149)는 물리적 객체(695)를 XR 환경(128) 내의 레이저 포인터 유형 디바이스로서 사용할 수 있다. 도 6i 및 도 6j에 도시된 바와 같이, 물리적 객체(695)의 표현(696)은 XR 환경(128) 내의 VA(606)를 향해 포인팅된다.
도 6j에 도시된 바와 같이, 콘텐츠 전달 시나리오의 인스턴스(6100)(예를 들어, 시간 T10과 연관됨) 동안, 전자 디바이스(120)는, 물리적 객체(695)의 표현(696)이 도 6i에서 XR 환경(128) 내의 VA(606)를 향해 포인팅된다고 결정하는 것에 응답하여 XR 환경(128) 내에서 VA(606)와 병치된 십자선(crosshair)(6102)(예를 들어, 포커스 선택기)을 제시한다.
도 6k에 도시된 바와 같이, 콘텐츠 전달 시나리오의 인스턴스(6110)(예를 들어, 시간 T11과 연관됨) 동안, 전자 디바이스(120)는 VA(606), XR 콘텐츠의 제1 사시도(6116A)(예를 들어, 정육면체, 박스 등의 전면), 현재 포즈 값(예를 들어, 중립) 및 현재 사용자 그립 값(예를 들어, 완드)을 갖는 인스턴스(6110)에 대한 시각적 표시자(6112), 및 사용자(149)의 우측 손(152)의 표현(153)에 의해 유지되는 물리적 객체(695)의 표현(696)(예를 들어, 물리적 환경(105)의 비디오 패스-스루)을 포함하는 XR 환경(128)을 제시한다. 도 6k 및 도 6m은 인스턴스들(6110 내지 6130)에 대한 사용자(149)의 현재 신체 포즈(6115)의 예시를 포함하며, 이에 의해, 사용자(149)는 XR 콘텐츠를 조작하기 위해 자신의 우측 손(152)으로 물리적 객체(695)(예를 들어, 자, 스틱, 제어기(130) 등)를 파지하고 있다.
현재 포즈 값이 "중립"에 대응하고, 현재 사용자 그립 값이 "완드"에 대응한다고 결정하는 것에 응답하여, 전자 디바이스(120)는 물리적 객체(695)에 대한 현재 동작 양식으로서 조작 모드를 선택하고, 또한, "조작 모드 활성화됨"을 표시하는 통지(6114)를 디스플레이한다. 이와 같이, 물리적 객체(695)의 현재 동작 양식이 조작 모드에 대응하는 동안, 사용자(149)는 XR 환경(128) 내의 XR 콘텐츠를 조작(예를 들어, 병진이동, 회전 등)하기 위해 물리적 객체(695)를 사용할 수 있다.
도 6l에 도시된 바와 같이, 콘텐츠 전달 시나리오의 인스턴스(6120)(예를 들어, 시간 T12와 연관됨) 동안, 전자 디바이스(120)는 (예를 들어, 컴퓨터 비전 등에 기초하여) 공간에서 물리적 객체(695)를 이용한 조작 입력(6122)을 검출한다. 예를 들어, 조작 입력(6122)은 시계 방향으로의 180° 회전 입력에 대응한다. 도 6m에 도시된 바와 같이, 콘텐츠 전달 시나리오의 인스턴스(6130)(예를 들어, 시간 T13과 연관됨) 동안, 전자 디바이스(120)는 도 6l에서 조작 입력(6122)을 검출하는 것에 응답하여 XR 콘텐츠의 제2 사시도(6116B)(예를 들어, 정육면체, 박스 등의 후면)을 보여주기 위해 XR 콘텐츠를 시계 방향으로 180°만큼 회전시킨다.
도 6n에 도시된 바와 같이, 콘텐츠 전달 시나리오의 인스턴스(6140)(예를 들어, 시간 T14와 연관됨) 동안, 전자 디바이스(120)는 VA(606), 현재 포즈 값(예를 들어, 입 근처) 및 현재 사용자 그립 값(예를 들어, 완드)을 갖는 인스턴스(6140)에 대한 시각적 표시자(6142), 및 사용자(149)의 우측 손(152)의 표현(153)에 의해 유지되는 물리적 객체(695)의 표현(696)(예를 들어, 물리적 환경(105)의 비디오 패스-스루)을 포함하는 XR 환경(128)을 제시한다. 도 6n 내지 도 6r은 인스턴스들(6140 내지 6180)에 대한 사용자(149)의 현재 신체 포즈(6145)의 예시를 포함하며, 이에 의해, 사용자(149)는 자신의 입 근처에서 자신의 우측 손(152)으로 물리적 객체(695)(예를 들어, 자, 스틱, 제어기(130) 등)를 파지하고 있다.
현재 포즈 값이 "입 근처"에 대응하고, 현재 사용자 그립 값이 "완드"에 대응한다고 결정하는 것에 응답하여 그리고 키워드 또는 키 어구(예를 들어, "헤이, 디지털 어시스턴트" 등)를 갖는 스피치 입력(6146)을 사용자(149)로부터 검출하는 것에 응답하여, 전자 디바이스(120)는 물리적 객체(695)에 대한 현재 동작 양식으로서 디지털 어시스턴트 모드를 선택하고, 또한, "디지털 어시스턴트 모드 활성화됨"을 표시하는 통지(6144)를 디스플레이한다. 이와 같이, 물리적 객체(695)의 현재 동작 양식이 디지털 어시스턴트 모드에 대응하는 동안, 사용자(149)는 디지털 어시스턴트 프로그램이 실행되기 위한 가청 커맨드들, 검색 스트링들 등을 제공할 수 있다.
도 6o에 도시된 바와 같이, 콘텐츠 전달 시나리오의 인스턴스(6150)(예를 들어, 시간 T15와 연관됨) 동안, 전자 디바이스(120)는 XR 환경(128) 내에서 디지털 어시스턴트(DA) 표시자(6152A)(예를 들어, 아이콘, 배지, 이미지, 텍스트 박스, 통지 등)를 디스플레이한다. 도 6o에 도시된 바와 같이, XR 환경(128)은 또한, 도 6o에서 DA 표시자(6152A)로 현재 지향되는 사용자(149)의 시선 방향의 시각화(6154)를 포함한다. 당업자는 DA 표시자(6152A)가 다양한 다른 구현예들에서 수정 또는 교체될 수 있는 단지 예시적인 시각화일 뿐이라는 것을 인식할 것이다. 당업자는 시선 방향의 시각화(6154)가 다양한 다른 구현예들에서 디스플레이되지 않을 수 있다는 것을 인식할 것이다.
도 6p에 도시된 바와 같이, 콘텐츠 전달 시나리오의 인스턴스(6160)(예를 들어, 시간 T16과 연관됨) 동안, 전자 디바이스(120)는 오디오 출력(6162)(예를 들어, 검색 스트링 또는 음성 커맨드를 제공하도록 사용자(149)를 프롬프트함)을 제공하고, 사용자(149)의 시선 방향이 도 6o에서 적어도 미리 정의된 시간량 동안 DA 표시자(6152A)로 지향되었다는 것을 검출하는 것에 응답하여 XR 환경(128) 내에서 DA 표시자(6152B)를 디스플레이한다. 도 6p에 도시된 바와 같이, DA 표시자(6152B)는 도 6o에서 DA 표시자(6152A)보다 더 큰 크기와 연관된다. 일부 구현예들에서, 전자 디바이스(120)는, DA가 검색 스트링 또는 음성 커맨드를 수신할 준비가 되어 있다는 것을 표시하기 위해, 사용자(149)의 시선 방향이 적어도 미리 정의된 시간량 동안 DA 표시자로 지향되었다는 것을 검출하는 것에 응답하여 (예를 들어, 도 6o 및 도 6p에 도시된 바와 같이) DA 표시자의 외관을 변경시킨다.
도 6q에 도시된 바와 같이, 콘텐츠 전달 시나리오의 인스턴스(6170)(예를 들어, 시간 T17과 연관됨) 동안, 전자 디바이스(120)는 사용자(149)로부터 스피치 입력(6172)(예를 들어, 검색 스트링)을 검출한다. 도 6r에 도시된 바와 같이, 콘텐츠 전달 시나리오의 인스턴스(6180)(예를 들어, 시간 T18과 연관됨) 동안, 전자 디바이스(120)는 도 6q에서 검출된 스피치 입력(6172)과 연관된 검색 스트링에 대응하는 검색 결과들(6182)을 XR 환경 내에서 제시한다. 예를 들어, 검색 결과들(6182)은 텍스트, 오디오 콘텐츠, 비디오 콘텐츠, 3D 콘텐츠, XR 콘텐츠 등을 포함한다.
도 7은 일부 구현예들에 따른 물리적 객체에 대한 동작 양식을 동적으로 선택하는 방법(700)의 흐름도 표현이다. 다양한 구현예들에 따르면, 방법(700)은 비일시적 메모리 및 하나 이상의 프로세서들을 포함하는 컴퓨팅 시스템에서 수행되며, 여기서 컴퓨팅 시스템은 디스플레이 디바이스 및 (선택적으로는) 하나 이상의 입력 디바이스들(예를 들어, 도 1 및 도 3에 도시된 전자 디바이스(120); 도 1 및 도 2의 프로세싱 디바이스(110); 또는 이들의 적합한 조합)에 통신가능하게 커플링된다. 일부 구현예들에서, 방법(700)은 하드웨어, 펌웨어, 소프트웨어, 또는 이들의 조합을 포함하는 프로세싱 로직에 의해 수행된다. 일부 구현예들에서, 방법(700)은 비일시적 컴퓨터 판독가능 매체(예를 들어, 메모리)에 저장된 코드를 실행하는 프로세서에 의해 수행된다. 일부 구현예들에서, 컴퓨팅 시스템은 태블릿, 랩톱, 모바일 폰, 근안 시스템, 웨어러블 컴퓨팅 디바이스 등 중 하나에 대응한다.
위에서 논의된 바와 같이, 스타일러스의 거동을 변경시키기 위해, 사용자는 전형적으로, 이용가능한 도구들의 메뉴로부터 상이한 도구를 선택한다. 이는 다루기 힘들고 번거로운 프로세스일 수 있다. 대조적으로, 본 명세서에 설명된 혁신은 사용자가 그의 포즈 및 그립에 기초하여 물리적 객체(예를 들어, 프록시 객체 또는 전자 디바이스, 예컨대 스타일러스, 손가락-웨어러블 디바이스, 핸드헬드 디바이스 등)의 동작 양식을 동적으로 변경시킬 수 있게 한다. 예를 들어, 컴퓨팅 시스템(예를 들어, 제시 디바이스)은 물리적 객체 자체와 연관된 추적 데이터 뿐만 아니라 컴퓨팅 시스템에 의해 획득된 다른 입력들, 예컨대 컴퓨터 비전, 눈 추적, 손/극단 추적, 음성 입력 등에 기초하여 물리적 객체의 포즈 및 그립을 결정한다. 이와 같이, 사용자는 자신의 작업흐름을 중단하지 않으면서 물리적 객체(예를 들어, 핸드헬드 스타일러스)의 동작 양식을 끊김없이 변경시킬 수 있다.
블록(710)에 의해 표현된 바와 같이, 방법(700)은 복수의 상이한 입력 양식들 중 하나와 연관된 적어도 하나의 사용자 입력 표시자 값을 포함하는 사용자 입력 벡터를 획득(예를 들어, 수신, 리트리브, 또는 검출/수집)하는 단계를 포함한다. 예를 들어, 컴퓨팅 시스템의 하나 이상의 입력 디바이스들을 통한 사용자 입력 벡터. 이러한 예로 계속하면, 하나 이상의 입력 디바이스들은 눈 추적 엔진, 손가락/손/극단 추적 엔진, 머리/신체/머리 포즈 추적 엔진, 하나 이상의 마이크로폰들, 외부-대면 이미지 센서들 등을 포함할 수 있다.
도 5a에 도시된 바와 같이, 콘텐츠 전달 아키텍처의 제1 부분(500A)은, 로컬 센서 데이터(503) 및 원격 센서 데이터(505)에 기초하여 눈 추적 벡터(513)를 결정/생성하고 시간에 걸쳐 눈 추적 벡터(513)를 업데이트하는 눈 추적 엔진(512)을 포함한다. 더욱이, 도 5a에 도시된 바와 같이, 콘텐츠 전달 아키텍처의 제1 부분(500A)은, 로컬 센서 데이터(503) 및 원격 센서 데이터(505)에 기초하여 포즈 특성화 벡터(515)를 결정/생성하고 시간에 걸쳐 포즈 특성화 벡터(515)를 업데이트하는 신체/머리 포즈 추적 엔진(514)을 포함한다. 일부 구현예들에 따르면, 눈 추적 벡터(513) 및 포즈 특성화 벡터(515)는 집합적으로 사용자 입력 벡터(519)로 지칭된다. 도 5b는 눈 추적 벡터(513) 및 포즈 특성화 벡터(515)에 대한 예시적인 데이터 구조들을 예시한다.
일부 구현예들에서, 컴퓨팅 시스템은 추가로 하나 이상의 외부-대면 이미지 센서들에 통신가능하게 커플링되며, 물리적 객체와 연관된 추적 데이터를 획득하는 것은 물리적 객체를 시각적으로 추적하기 위해 하나 이상의 외부-대면 이미지 센서들에 의해 캡처된 이미지 스트림을 분석하는 것을 포함한다.
일부 구현예들에서, 컴퓨팅 시스템은 추가로, 하나 이상의 극단 추적 표시자 값들을 출력하는 극단 추적 서브시스템에 통신가능하게 커플링되고, 하나 이상의 극단 추적 표시자 값들은 복수의 입력 양식들 중의 극단 추적 양식과 연관되며, 사용자 입력 벡터는 하나 이상의 극단 추적 표시자 값들을 포함한다.
일부 구현예들에서, 컴퓨팅 시스템은 추가로, 하나 이상의 머리/신체 포즈 추적 표시자 값들을 출력하는 머리/신체 포즈 추적 서브시스템에 통신가능하게 커플링되고, 하나 이상의 머리/신체 포즈 추적 표시자 값들은 복수의 입력 양식들 중의 머리/신체 포즈 추적 양식과 연관되며, 사용자 입력 벡터는 하나 이상의 머리/신체 포즈 추적 표시자 값들을 포함한다.
일부 구현예들에서, 컴퓨팅 시스템은 추가로, 하나 이상의 음성 검출 표시자 값들을 출력하는 음성 검출 서브시스템에 통신가능하게 커플링되고, 하나 이상의 음성 검출 표시자 값들은 복수의 입력 양식들 중의 음성 검출 양식과 연관되며, 사용자 입력 벡터는 하나 이상의 음성 검출 표시자 값들을 포함한다.
일부 구현예들에서, 컴퓨팅 시스템은 추가로, 하나 이상의 눈 추적 표시자 값들을 출력하는 눈 추적 서브시스템에 통신가능하게 커플링되고, 하나 이상의 눈 추적 표시자 값들은 복수의 입력 양식들 중의 눈 추적 양식과 연관되며, 사용자 입력 벡터는 하나 이상의 눈 추적 표시자 값들을 포함한다.
블록(720)에 의해 표현된 바와 같이, 방법(700)은 물리적 객체와 연관된 추적 데이터를 획득(예를 들어, 수신, 리트리브, 또는 검출/수집)하는 단계를 포함한다. 도 5a에 도시된 바와 같이, 콘텐츠 전달 아키텍처의 제1 부분(500A)은, 추적 데이터(506)에 기초하여 객체 추적 벡터(511)를 결정/생성하고 시간에 걸쳐 객체 추적 벡터(511)를 업데이트하는 객체 추적 엔진(510)을 포함한다. 도 5b는 객체 추적 벡터(511)에 대한 예시적인 데이터 구조를 예시한다.
일 예로서, 물리적 객체는 컴퓨팅 시스템에 대한 통신 채널이 결여된 물리적 환경 내에서 검출된 프록시 객체, 예컨대 연필, 펜, 자, 스틱 등에 대응한다. 도 6i 내지 도 6r은, 전자 디바이스(120)와 통신할 수 없고, XR 환경(128)과 상호작용하는 데 사용되는 물리적 객체(695)를 사용자(149)가 파지하는 것을 예시한다. 다른 예로서, 물리적 객체는 컴퓨팅 시스템에 대한 유선 또는 무선 통신 채널을 갖는 전자 디바이스, 예컨대 스타일러스, 손가락- 웨어러블 디바이스, 핸드헬드 디바이스 등에 대응한다. 도 6a 내지 도 6h는, 전자 디바이스(120)와 통신하고, XR 환경(128)과 상호작용하는 데 사용되는 제어기(130)를 사용자(149)가 파지하는 것을 예시한다. 일부 구현예들에 따르면, 컴퓨팅 시스템은 물리적 객체가 프록시 객체에 대응하는지 또는 전자 디바이스에 대응하는지에 관계없이 물리적 객체에 대한 동작 양식을 동적으로 선택한다.
일부 구현예들에서, 하나 이상의 입력 디바이스들은 하나 이상의 외부-대면 이미지 센서들을 포함하며, 물리적 객체와 연관된 추적 데이터를 획득하는 것은 물리적 객체를 시각적으로 추적하기 위해 하나 이상의 외부-대면 이미지 센서들에 의해 캡처된 이미지 스트림을 분석하는 것을 포함한다. 일부 구현예들에서, 추적 데이터는 컴퓨터 비전 기법들을 통해 6개의 자유도(6DOF)들로 물리적 객체의 추적을 가능하게 하기 위해 물리적 객체를 포함하는 물리적 환경의 하나 이상의 이미지들에 대응한다. 일부 구현예들에서, 추적 데이터는 GPS, IMU, 가속도계, 자이로스코프, 자력계 등과 같은 물리적 객체의 다양한 통합 센서들에 의해 수집된 데이터에 대응한다. 예를 들어, 추적 데이터는 원시 센서 데이터 또는 프로세싱된 데이터, 예컨대 (물리적 환경 또는 세계 전체에 대한) 물리적 객체와 연관된 병진 값들, (중력에 대한) 물리적 객체와 연관된 회전 값들, 물리적 객체와 연관된 속도 값, 물리적 객체와 연관된 각속도 값, 물리적 객체와 연관된 가속도 값, 물리적 객체와 연관된 각가속도 값, 물리적 객체가 물리적 표면과 얼마나 세게 접촉하고 있는지와 연관된 제1 압력 값, 물리적 객체가 사용자에 의해 얼마나 세게 파지되고 있는지와 연관된 제2 압력 값 등에 대응한다. 일부 구현예들에서, 컴퓨팅 시스템은 또한, 통신 인터페이스를 통해 물리적 객체에 의해 검출된 손가락 조작 데이터를 획득한다. 예를 들어, 손가락 조작 데이터는 물리적 객체의 터치 감응형 구역으로 지향되는 터치 입력들 또는 제스처들 등을 포함한다. 예를 들어, 손가락 조작 데이터는 물리적 객체의 본체에 대한 접촉 세기 데이터를 포함한다.
일부 구현예들에서, 컴퓨팅 시스템은 추가로 물리적 객체에 통신가능하게 커플링되고, 물리적 객체와 연관된 추적 데이터를 획득하는 것은 물리적 객체로부터 추적 데이터를 획득하는 것을 포함하며, 추적 데이터는 물리적 객체의 하나 이상의 통합 센서들로부터의 출력 데이터에 대응한다. 이와 같이, 일부 구현예들에 따르면, 물리적 객체와 연관된 추적 데이터는 포즈 값을 포함한다. 도 6a 내지 도 6h는, 전자 디바이스(120)와 통신하고, XR 환경(128)과 상호작용하는 데 사용되는 제어기(130)를 사용자(149)가 파지하는 것을 예시한다. 예를 들어, 하나 이상의 통합 센서들은 IMU, 가속도계, 자이로스코프, GPS, 자력계, 하나 이상의 접촉 세기 센서들, 터치 감응형 표면 등 중 적어도 하나를 포함한다. 일부 구현예들에서, 추적 데이터는 물리적 객체의 팁이 물리적 표면과 접촉하는지 여부 및 그와 연관된 압력 값을 추가로 표시한다.
일부 구현예들에서, 컴퓨팅 시스템은 추가로 물리적 객체에 통신가능하게 커플링되고, 사용자 입력 벡터를 획득하는 것은 물리적 객체로부터 사용자 입력 벡터를 획득하는 것을 포함하며, 사용자 입력 벡터는 물리적 객체의 하나 이상의 통합 센서들로부터의 출력 데이터에 대응한다. 일부 구현예들에 따르면, 이와 같이, 사용자 입력 벡터는 사용자 그립 값을 포함한다.
일부 구현예들에서, 방법(700)은, 물리적 환경의 하나 이상의 이미지들을 획득하는 단계; 물리적 환경의 하나 이상의 이미지들로 물리적 객체를 인식하는 단계; 및 사용자 인터페이스와 상호작용할 때 포커스 선택기로서 작용하도록 물리적 객체(예를 들어, 프록시 객체)를 할당하는 단계를 포함한다. 도 6i 내지 도 6r은, 전자 디바이스(120)와 통신할 수 없고, XR 환경(128)과 상호작용하는 데 사용되는 물리적 객체(695)를 사용자(149)가 파지하는 것을 예시한다. 일부 구현예들에서, 컴퓨팅 시스템은 물리적 객체가 사용자에 의해 파지될 때 물리적 객체를 포커스 선택기로서 지정한다. 일부 구현예들에서, 컴퓨팅 시스템은, 물리적 객체가 사용자에 의해 파지되고, 물리적 객체가 미리 정의된 제약들(예를 들어, 최대 또는 최소 크기, 특정 형상, 디지털 권한 관리(DRM) 실격(disqualifier)들 등)을 만족시킬 때 물리적 객체를 포커스 선택기로서 지정한다. 이와 같이, 일부 구현예들에서, 사용자는 XR 환경과 상호작용하기 위해 가정(household) 객체들을 사용할 수 있다. 일부 구현예들에서, 포즈 및 그립 표시자들은 프록시 객체가 이동되고 그리고/또는 FOV가 이동됨에 따라 프록시 객체(또는 그의 표현)에 앵커링될 수 있다.
블록(730)에 의해 표현된 바와 같이, 방법(700)은, 사용자 입력 벡터 및 추적 데이터에 기초하여, 포즈 값 및 사용자 그립 값을 포함하는, 물리적 객체에 대한 제1 특성화 벡터를 생성하는 단계를 포함하며, 포즈 값은 물리적 객체와 컴퓨팅 시스템의 사용자 사이의 공간적 관계를 특성화하고, 사용자 그립 값은 물리적 객체가 사용자에 의해 보유되고 있는 방식을 특성화한다. 도 5a에 도시된 바와 같이, 콘텐츠 전달 아키텍처의 제1 부분(500A)은, 사용자 입력 벡터(예를 들어, 눈 추적 벡터(513)와 포즈 특성화 벡터(515)의 조합) 및 추적 데이터(예를 들어, 객체 추적 벡터(511))에 기초하여 물리적 객체에 대한 특성화 벡터(543)를 결정/생성하고, 시간에 걸쳐 특성화 벡터(543)를 업데이트하는 특성화 엔진(542)을 포함한다. 도 5b는 사용자 그립 값(5102) 및 포즈 값(5104)을 포함하는 특성화 벡터(543)에 대한 예시적인 데이터 구조를 예시한다.
일부 구현예들에서, 사용자 입력 벡터는 추적 데이터 내의 임의의 폐색(occlusion)들 또는 갭들을 충전 및 명확하게 하는 데 사용된다. 이와 같이, 일부 구현예들에서, 컴퓨팅 시스템은 리소스 소비를 감소시키기 위해, 추적 데이터에 기초하여 결정/생성된 포즈 값 및 사용자 그립 값이 미리 결정된 신뢰도 값을 위반하는 데 실패하면 사용자 입력 벡터를 사용할 수 있다.
예를 들어, 포즈 값은 중립 포즈, 도체/완드 포즈, 필기 포즈, 표면 포즈, 입 근처 포즈, 조준 포즈 등 중 하나에 대응한다. 일부 구현예들에서, 포즈 값은, 예컨대 물리적 표면에 대한 물리적 객체 또는 컴퓨터 비전 기법들을 통해 검출가능한 다른 객체의 배향을 표시한다. 일 예에서, 다른 객체는 환경의 보여질 수 있는 구역 내의 상이한 물리적 객체 또는 가상 객체에 대응한다. 다른 예에서, 다른 객체는, 환경의 보여질 수 있는 구역 외부에 있지만, 사용자의 입 근처에서 이동하는 물리적 객체와 같이 추론될 수 있는 상이한 물리적 객체 또는 가상 객체에 대응한다. 예를 들어, 포즈 값은 다른 객체에 대한 물리적 객체의 근접도를 표시할 수 있다. 예를 들어, 그립 값은 원격 제어-esque 그립, 완드-esque 그립, 필기 그립, 역 필기 그립, 손잡이 그립, 엄지 상단 그립, 레벨-esque 그립, 게임패드-esque 그립, 플루트-esque 그립, 화이어-스타터-esque 그립 등 중 하나에 대응한다.
블록(740)에 의해 표현된 바와 같이, 방법(700)은 제1 특성화 벡터에 기초하여, 물리적 객체에 대한 현재 동작 양식으로서 제1 동작 양식을 선택하는 단계를 포함한다. 일 예로서, 도 6b를 참조하면, 현재 포즈 값이 "입 근처"에 대응하고, 현재 사용자 그립 값이 "완드"에 대응한다고 결정하는 것에 응답하여, 전자 디바이스(120)는 제어기(130)에 대한 현재 동작 양식으로서 구술 모드를 선택하고, 또한, "구술 모드 활성화됨"을 표시하는 통지(624)를 디스플레이한다. 이와 같이, 제어기(130)의 현재 동작 양식이 구술 모드에 대응하는 동안, 사용자(149)는 XR 환경(128) 내에 디스플레이될 광고문, 노트, 콘텐츠 등을 구술할 수 있다. 물리적 객체가 하나 이상의 마이크로폰들을 포함하지 않는 일부 구현예들에서, 전자 디바이스(120)의 마이크로폰들은 사용자의 스피치를 감지하는 데 사용될 수 있다. 물리적 객체가 하나 이상의 마이크로폰들을 포함하지 않는 일부 구현예들에서, 전자 디바이스(120)의 이미지 센서들에 의해 캡처된 이미지들은, 사용자의 입술들을 판독하고, 결국 사용자의 스피치를 감지하도록 분석될 수 있다. 당업자는 통지(624)가 다양한 다른 구현예들에서 수정 또는 교체될 수 있는 단지 예시적인 시각화일 뿐이라는 것을 인식할 것이다.
다른 예로서, 도 6c를 참조하면, 현재 포즈 값이 "중립"에 대응하고, 현재 사용자 그립 값이 "필기"에 대응한다고 결정하는 것에 응답하여, 전자 디바이스(120)는 제어기(130)에 대한 현재 동작 양식으로서 마킹 모드를 선택하고, 또한, "마킹 모드 활성화됨"을 표시하는 통지(634)를 디스플레이한다. 또 다른 예로서, 도 6f를 참조하면, 현재 포즈 값이 "표면"에 대응하고, 현재 사용자 그립 값이 "역 필기"에 대응한다고 결정하는 것에 응답하여, 전자 디바이스(120)는 제어기(130)에 대한 현재 동작 양식으로서 소거 모드를 선택하고, 또한, "소거 모드 활성화됨"을 표시하는 통지(664)를 디스플레이한다.
또 다른 예로서, 도 6i를 참조하면, 현재 포즈 값이 "조준"에 대응하고, 현재 사용자 그립 값이 "완드"에 대응한다고 결정하는 것에 응답하여, 전자 디바이스(120)는 물리적 객체(695)에 대한 현재 동작 양식으로서 포인팅 모드를 선택하고, 또한, "포인팅 모드 활성화됨"을 표시하는 통지(694)를 디스플레이한다. 이와 같이, 물리적 객체(695)의 현재 동작 양식이 포인팅 모드에 대응하는 동안, 사용자(149)는 물리적 객체(695)를 XR 환경(128) 내의 레이저 포인터 유형 디바이스로서 사용할 수 있다. 또 다른 예로서, 도 6i를 참조하면, 현재 포즈 값이 "중립"에 대응하고, 현재 사용자 그립 값이 "완드"에 대응한다고 결정하는 것에 응답하여, 전자 디바이스(120)는 물리적 객체(695)에 대한 현재 동작 양식으로서 조작 모드를 선택하고, 또한, "조작 모드 활성화됨"을 표시하는 통지(6114)를 디스플레이한다. 이와 같이, 물리적 객체(695)의 현재 동작 양식이 조작 모드에 대응하는 동안, 사용자(149)는 XR 환경(128) 내의 XR 콘텐츠를 조작(예를 들어, 병진이동, 회전 등)하기 위해 물리적 객체(695)를 사용할 수 있다.
일부 구현예들에서, 블록(742)에 의해 표현된 바와 같이, 제1 동작 양식은 구술 모드, 디지털 어시스턴트 모드, 내비게이션 모드, 조작 모드, 마킹 모드, 소거 모드, 포인팅 모드, 또는 구현 모드 중 하나에 대응한다. 일 예로서, 제1 동작 양식은, 포즈 값이 중립 포즈(또는 표면 포즈)에 대응하고 사용자 그립 값이 필기 도구형 그립에 대응할 때 마킹 모드에 대응한다. 다른 예로서, 제1 동작 양식은, 포즈 값이 중립 포즈(또는 표면 포즈)에 대응하고 사용자 그립 값이 역 필기 도구형 그립에 대응할 때 소거 모드에 대응한다. 또 다른 예로서, 제1 동작 양식은, 포즈 값이 입-근처 포즈에 대응하고 사용자 그립 값이 완드형 그립에 대응할 때 구술 모드에 대응한다. 또 다른 예로서, 제1 동작 양식은, 포즈 값이 중립 포즈에 대응하고 사용자 그립 값이 완드형 그립에 대응할 때 조작 모드에 대응한다. 또 다른 예로서, 제1 동작 양식은, 포즈 값이 조준 포즈에 대응하고 사용자 그립 값이 완드형 그립에 대응할 때 포인팅 모드에 대응한다. 또 다른 예로서, 제1 동작 양식은, 포즈 값이 입-근처 포즈에 대응하고 사용자 그립 값이 완드형 그립에 대응하고, 컴퓨팅 디바이스가 키워드 또는 키 어구를 갖는 스피치 입력을 검출할 때 디지털 어시스턴트 모드에 대응한다. 당업자는 포즈 및 사용자 그립 값들의 상이한 조합들이 전술된 것을 트리거할 수 있다는 것을 인식할 것이다.
일부 구현예들에서, 물리적 객체에 대한 현재 출력 양식으로서 제1 동작 양식을 선택한 이후, 방법(700)은 디스플레이 디바이스를 통해, 이상의 가상 객체들을 포함하는 확장 현실(XR) 환경을 제시하는 단계를 포함하며, 물리적 객체는 제1 동작 양식에 따라 XR 환경 내의 하나 이상의 가상 객체들과 상호작용하도록 제공된다. 일부 구현예들에서, 하나 이상의 가상 객체들은 XR 환경 내에 디스플레이되는 동안 물리적 환경 상에 오버레이된다. 일 예로서, 도 6a에서, XR 환경(128)은 물리적 환경(105)의 표현 상에 오버레이된 도어(115)의 표현(116) 및 가상 에이전트(606)를 포함한다. 다른 예로서, 도 6k에서, XR 환경(128)은 물리적 환경(105)의 표현 상에 오버레이된 XR 콘텐츠의 제1 사시도(6116A)(예를 들어, 정육면체, 박스 등의 전면)를 포함한다.
일부 구현예들에서, 디스플레이 디바이스는 투명 렌즈 조립체에 대응하고, XR 환경의 제시는 투명 렌즈 조립체 상으로 투영된다. 일부 구현예들에서, 디스플레이 디바이스는 근안 시스템에 대응하며, XR 환경을 제시하는 것은 외부-대면 이미지 센서에 의해 캡처된 물리적 환경의 하나 이상의 이미지들로 XR 환경의 제시를 합성하는 것을 포함한다.
일부 구현예들에서, XR 환경은 포즈 값 및 사용자 그립 값 중 적어도 하나와 연관된 하나 이상의 시각적 표시자들을 포함한다. 일 예로서, 도 6a에서, XR 환경(128)은, 현재 포즈 값(예를 들어, 제어기(130)가 사용자(149)에 의해 현재 파지되고 있지 않기 때문에, 현재 포즈 값 없음) 및 현재 사용자 그립 값(예를 들어, 제어기(130)가 사용자(149)에 의해 현재 파지되고 있지 않기 때문에, 사용자 그립 값 없음)을 갖는 인스턴스(610)에 대한 시각적 표시자(612)를 포함한다. 당업자는 시각적 표시자(612)가 다양한 다른 구현예들에서 수정 또는 교체될 수 있는 포즈 및 사용자 그립 값들을 갖는 단지 예시적인 시각화일 뿐이라는 것을 인식할 것이다. 일 예로서, 시각적 표시자(612)는 텍스트 통지 대신에 배지, 아이콘, 오디오 출력 등일 수 있다. 다른 예로서, 도 6b에서, XR 환경(128)은 현재 포즈 값(예를 들어, 입 근처) 및 현재 사용자 그립 값(예를 들어, 완드)을 갖는 인스턴스(620)에 대한 시각적 표시자(622), 및 사용자(149)의 우측 손(152)의 표현(153)(예를 들어, 물리적 환경(105)의 비디오 패스-스루)에 의해 유지되는 제어기(130)의 표현(131)을 포함한다.
일부 구현예들에서, 하나 이상의 시각적 표시자들은 현재 포즈 및 그립 값들을 사용자에게 표시하기 위해 아이콘, 배지, 텍스트 박스, 통지 등에 대응한다. 일부 구현예들에서, 하나 이상의 시각적 표시자들은 세계-잠금, 머리-잠금, 신체-잠금 등 중 하나이다. 일 예에서, 하나 이상의 시각적 표시자들은 물리적 객체가 이동되고 그리고/또는 FOV가 이동됨에 따라 물리적 객체(또는 그의 표현)에 앵커링될 수 있다. 일부 구현예들에서, 하나 이상의 시각적 표시자들은 추적 데이터 및/또는 사용자 입력 벡터에 대한 변화들에 기초하여 시간에 걸쳐 변경될 수 있다. 예를 들어, 포즈 값과 연관된 시각적 표시자는 물리적 객체의 표현(예를 들어, 아이콘) 및 연관된 포즈의 표현을 포함한다.
일부 구현예들에서, XR 환경은 현재 동작 양식과 연관된 하나 이상의 시각적 표시자들을 포함한다. 일 예로서, 도 6b에서, XR 환경(128)은 "구술 모드 활성화됨"을 표시하는 통지(624)를 포함한다. 당업자는 통지(624)가 다양한 다른 구현예들에서 수정 또는 교체될 수 있는 단지 예시적인 시각화일 뿐이라는 것을 인식할 것이다. 일부 구현예들에서, 하나 이상의 시각적 표시자들은 현재 동작 양식을 사용자에게 표시하기 위해 아이콘, 배지, 텍스트 박스, 통지 등에 대응한다. 일부 구현예들에서, 하나 이상의 시각적 표시자들은 세계-잠금, 머리-잠금, 신체-잠금 등 중 하나이다. 일 예에서, 하나 이상의 시각적 표시자들은 물리적 객체가 이동되고 그리고/또는 FOV가 이동됨에 따라 물리적 객체(또는 그의 표현)에 앵커링될 수 있다. 일부 구현예들에서, 하나 이상의 시각적 표시자들은 추적 데이터 및/또는 사용자 입력 벡터에 대한 변화들에 기초하여 시간에 걸쳐 변경될 수 있다.
일부 구현예들에서, 물리적 객체에 대한 현재 출력 양식으로서 제1 동작 양식을 선택한 이후, 방법(700)은, 디스플레이 디바이스를 통해 사용자 인터페이스를 디스플레이하는 단계; 및 (예를 들어, IMU 데이터, 컴퓨터 비전, 자기 추적 등을 이용하여 3D에서 물리적 객체를 추적함으로써) 사용자 인터페이스 내의 콘텐츠로 지향되는 물리적 객체에 대한 수정 입력을 검출하는 단계; 및 수정 입력을 검출하는 것에 응답하여, 수정 입력(예를 들어, 수정 입력의 크기, 형상, 변위 등) 및 제1 동작 양식에 기초하여 사용자 인터페이스 내의 콘텐츠를 수정하는 단계를 포함한다. 일 예로서, 도 6c 내지 도 6e는, 도 6e에서 마킹 입력(644)(예를 들어, 수정 입력)을 검출하는 것에 응답하여, 전자 디바이스(120)가 XR 환경(128) 내에서 마크(654)를 디스플레이하는 시퀀스를 예시한다. 예를 들어, 마크(654)는 마킹 입력(644)의 형상, 변위 등에 대응한다. 다른 예에서, 마크(654)는 마킹 입력(644)의 형상, 변위 등과 가중치 계수(예를 들어, 증폭 값, 감쇠 값 등)의 함수에 대응한다. 다른 예로서, 도 6k 내지 도 6m은, 도 6l에서 조작 입력(6122)(예를 들어, 수정 입력)을 검출하는 것에 응답하여, 전자 디바이스(120)가 도 6k의 제1 사시도(6116A)(예를 들어, 정육면체, 박스 등의 전면)로부터 도 6m의 제2 사시도(6116B)(예를 들어, 정육면체, 박스 등의 후면)로 시계 방향으로 180°만큼 XR 콘텐츠를 회전시키는 시퀀스를 예시한다.
일부 구현예들에서, 방법(700)은, 사용자 입력 벡터 또는 물리적 객체와 연관된 추적 데이터 중 하나의 변화를 검출하는 단계; 사용자 입력 벡터 또는 물리적 객체와 연관된 추적 데이터 중 하나의 변화에 기초하여 물리적 객체에 대한 제2 특성화 벡터를 결정하는 단계; 및 제2 특성화 벡터에 기초하여, 물리적 객체에 대한 현재 동작 양식으로서 제2 동작 양식을 선택하는 단계를 포함하며, 제2 동작 양식은 제1 동작 양식과 상이하다. 일부 구현예들에서, 방법(700)은, 디스플레이 디바이스를 통해 사용자 인터페이스를 디스플레이하는 단계; 물리적 객체에 대한 현재 출력 양식으로서 제2 동작 양식을 선택한 이후, (예를 들어, IMU 데이터, 컴퓨터 비전, 자기 추적 등을 이용하여 3D에서 물리적 객체를 추적함으로써) 사용자 인터페이스 내의 콘텐츠로 지향되는 물리적 객체에 대한 수정 입력을 검출하는 단계; 수정 입력을 검출하는 것에 응답하여, 수정 입력(예를 들어, 수정 입력의 크기, 형상, 변위 등) 및 제2 동작 양식에 기초하여 사용자 인터페이스 내의 콘텐츠를 수정하는 단계를 포함한다.
일부 구현예들에서, 방법(700)은, 제1 동작 양식이 디지털 어시스턴트를 호출하는 것에 대응한다고 결정하는 것에 응답하여, 사용자 인터페이스 내에서 디지털 어시스턴트(DA) 표시자를 디스플레이하는 단계; 및 하나 이상의 눈 추적 표시자 값들이 DA 표시자에 대응한다고 결정하는 것에 응답하여, DA 표시자의 외관을 변경시키고, DA를 인에이블시키는 단계를 포함한다. 일부 구현예들에서, DA 표시자의 외관을 변경시키는 것은, DA 표시자의 크기를 스케일링하는 것, DA 표시자의 색상을 변경시키는 것, DA 표시자의 밝기를 변경시키는 것 등 중 적어도 하나에 대응한다. 일 예로서, 도 6n 내지 도 6r은 현재 동작 양식이 디지털 어시스턴트(DA) 모드에 대응하는 시퀀스를 예시한다. 이러한 예로 계속하면, DA 표시자의 외관은, 사용자(149)의 시선 방향이 적어도 미리 정의된 시간량 동안 DA 표시자로 지향되었다는 것을 검출하는 것에 응답하여 변경된다(예를 들어, 도 6o에서 DA 표시자(6152A)로부터 도 6p의 DA 표시자(6152B)로 크기가 증가함). 이러한 예로 계속하면, DA는 도 6q에서의 사용자(149)로부터의 스피치 입력(6172)(예를 들어, 검색 스트링)에 기초하여 검색 동작을 수행하고, 전자 디바이스(120)는 도 6q에서 검출된 스피치 입력(6172)과 연관된 검색 스트링에 대응하는 검색 결과들(6182) XR 환경 내에서 디스플레이한다. 예를 들어, 검색 결과들(6182)은 텍스트, 오디오 콘텐츠, 비디오 콘텐츠, 3D 콘텐츠, XR 콘텐츠 등을 포함한다.
일부 구현예들에서, DA 표시자는 물리적 객체의 위치에 인접하게 디스플레이되고, 물리적 객체가 이동되고 그리고/또는 FOV가 이동됨에 따라 물리적 객체(또는 그의 표현)에 앵커링되게 유지된다. 일부 구현예들에서, 전자 디바이스는 검색 스트링을 획득하고, 이에 응답하여, XR 환경 내에서 디스플레이되는 DA로부터의 결과적인 정보를 획득한다. 일 예에서, 사용자는 XR 환경 내에서 결과적인 정보를 병진이동 및/또는 회전시킬 수 있다. 다른 예에서, 사용자는 XR 환경 내의 게시판(bulletin board) 또는 다른 저장소에 결과적인 정보를 피닝(pin)할 수 있다.
첨부된 청구범위의 범주 내의 구현예들의 다양한 양태들이 위에서 설명되지만, 위에서 설명된 구현예들의 다양한 특징들이 광범위하게 다양한 형태들로 구현될 수 있고 위에서 설명된 임의의 특정 구조 및/또는 기능이 단지 예시적이라는 것이 명백할 것이다. 본 개시내용에 기초하여, 당업자는 본 명세서에 설명된 태양이 임의의 다른 태양들과 독립적으로 구현될 수 있고 이들 태양들 중 2개 이상이 다양한 방식들로 조합될 수 있음을 이해해야 한다. 예를 들어, 본 명세서에 기재된 임의의 수의 양태들을 사용하여 장치가 구현될 수 있고 그리고/또는 방법이 실시될 수 있다. 부가적으로, 본 명세서에 기재된 양태들 중 하나 이상에 부가하여 또는 그 이외의 다른 구조 및/또는 기능을 사용하여 그러한 장치가 구현될 수 있고 그리고/또는 그러한 방법이 실시될 수 있다.
용어들 "제1", "제2" 등이 다양한 요소들을 설명하기 위해 본 명세서에서 사용될 수 있지만, 이들 요소들은 이들 용어들에 의해 제한되어서는 안 된다는 것이 또한 이해될 것이다. 이러한 용어들은 하나의 요소를 다른 요소와 구별하는 데에만 사용된다. 예를 들어, "제1 미디어 항목"의 발생들이 일관되게 재명명되고 "제2 미디어 항목"의 발생들이 일관되게 재명명되는 한, 제1 미디어 항목은 제2 미디어 항목으로 지칭될 수 있고, 유사하게, 제2 미디어 항목은 제1 미디어 항목으로 지칭될 수 있으며, 이는 설명의 의미를 변화시킨다. 제1 미디어 항목 및 제2 미디어 항목은 둘 모두 미디어 항목들이지만, 그들은 동일한 미디어 항목이 아니다.
본 명세서에서 사용되는 용어는 단지 특정 구현예들만을 설명하는 목적을 위한 것이고, 청구범위를 제한하도록 의도되지 않는다. 본 구현예들의 설명 및 첨부된 청구범위에 사용되는 바와 같이, 단수형들("a", "an" 및 "the")은 문맥상 명확하게 달리 나타나지 않으면 복수형들을 또한 포함하도록 의도된다. 또한, 본 명세서에서 사용되는 바와 같은 "및/또는"이라는 용어는 열거되는 연관된 항목들 중 하나 이상의 항목들의 임의의 그리고 모든 가능한 조합들을 나타내고 그들을 포괄하는 것임이 이해될 것이다. 본 명세서에서 사용될 때 "포함한다(comprise)" 및/또는 "포함하는(comprising)"이라는 용어들은 언급된 특징들, 정수들, 단계들, 동작들, 요소들, 및/또는 컴포넌트들의 존재를 특정하지만, 하나 이상의 다른 특징들, 정수들, 단계들, 동작들, 요소들, 컴포넌트들 및/또는 이들의 그룹들의 존재 또는 부가를 배제하지 않는다는 것이 추가로 이해될 것이다.
본 명세서에서 사용된 바와 같이, 용어 “~라면(if)”은 맥락에 의존하여, 언급된 선행 조건이 사실일 “때” 또는 그 조건이 사실일 “시에” 또는 그 조건이 사실이라고 “결정하는 것에 응답하여” 또는 그 조건이 사실이라는 “결정에 따라” 또는 그 조건이 사실이라는 것을 “검출하는 것에 응답하여”를 의미하는 것으로 해석될 수 있다. 유사하게, 어구 "[언급된 선행 조건이 사실이라고] 결정하면" 또는 "[언급된 선행 조건이 사실]이면" 또는 "[언급된 선행 조건이 사실]일 때"는 맥락에 의존하여, 언급된 선행 조건이 사실”이라고 결정할 시에” 또는 그 조건이 사실”이라고 결정하는 것에 응답하여” 또는 그 조건이 사실”이라는 결정에 따라” 또는 그 조건이 사실”이라는 것을 검출할 시에” 또는 그 조건이 사실”이라는 것을 검출하는 것에 응답하여를 의미하는 것으로 해석될 수 있다.

Claims (25)

  1. 방법으로서,
    비일시적 메모리 및 하나 이상의 프로세서들을 포함하는 컴퓨팅 시스템에서 - 상기 컴퓨팅 시스템은 디스플레이 디바이스에 통신가능하게 커플링됨 -,
    복수의 상이한 입력 양식들 중 하나와 연관된 적어도 하나의 사용자 입력 표시자 값을 포함하는 사용자 입력 벡터를 획득하는 단계;
    물리적 객체와 연관된 추적 데이터를 획득하는 단계;
    상기 사용자 입력 벡터 및 상기 추적 데이터에 기초하여, 포즈 값 및 사용자 그립 값을 포함하는, 상기 물리적 객체에 대한 제1 특성화 벡터를 생성하는 단계 - 상기 포즈 값은 상기 물리적 객체와 상기 컴퓨팅 시스템의 사용자 사이의 공간적 관계를 특성화하고, 상기 사용자 그립 값은 상기 물리적 객체가 상기 사용자에 의해 보유되고 있는 방식을 특성화함 -; 및
    상기 제1 특성화 벡터에 기초하여, 상기 물리적 객체에 대한 현재 동작 양식으로서 제1 동작 양식을 선택하는 단계를 포함하는, 방법.
  2. 제1항에 있어서,
    상기 제1 동작 양식은 구술 모드, 디지털 어시스턴트 모드, 내비게이션 모드, 조작 모드, 마킹 모드, 소거 모드, 포인팅 모드, 또는 구현 모드 중 하나에 대응하는, 방법.
  3. 제1항 또는 제2항에 있어서,
    상기 물리적 객체에 대한 현재 출력 양식으로서 상기 제1 동작 양식을 선택한 이후,
    상기 디스플레이 디바이스를 통해 사용자 인터페이스를 디스플레이하는 단계;
    상기 사용자 인터페이스 내의 콘텐츠로 지향되는 상기 물리적 객체에 대한 수정 입력을 검출하는 단계; 및
    상기 수정 입력을 검출하는 것에 응답하여, 상기 수정 입력 및 상기 제1 동작 양식에 기초하여 상기 사용자 인터페이스 내의 상기 콘텐츠를 수정하는 단계를 더 포함하는, 방법.
  4. 제1항 또는 제2항에 있어서,
    상기 사용자 입력 벡터 또는 상기 물리적 객체와 연관된 상기 추적 데이터 중 하나의 변화를 검출하는 단계; 및
    상기 사용자 입력 벡터 또는 상기 물리적 객체와 연관된 상기 추적 데이터 중 상기 하나의 변화를 검출하는 것에 응답하여,
    상기 사용자 입력 벡터 또는 상기 물리적 객체와 연관된 상기 추적 데이터 중 상기 하나의 변화에 기초하여 상기 물리적 객체에 대한 제2 특성화 벡터를 결정하는 단계; 및
    상기 제2 특성화 벡터에 기초하여, 상기 물리적 객체에 대한 현재 동작 양식으로서 제2 동작 양식을 선택하는 단계를 더 포함하며, 상기 제2 동작 양식은 상기 제1 동작 양식과 상이한, 방법.
  5. 제4항에 있어서,
    상기 디스플레이 디바이스를 통해 사용자 인터페이스를 디스플레이하는 단계;
    상기 물리적 객체에 대한 현재 출력 양식으로서 상기 제2 동작 양식을 선택한 이후, 상기 사용자 인터페이스 내의 콘텐츠로 지향되는 상기 물리적 객체에 대한 수정 입력을 검출하는 단계; 및
    상기 수정 입력을 검출하는 것에 응답하여, 상기 수정 입력 및 상기 제2 동작 양식에 기초하여 상기 사용자 인터페이스 내의 상기 콘텐츠를 수정하는 단계를 더 포함하는, 방법.
  6. 제1항 내지 제5항 중 어느 한 항에 있어서,
    상기 물리적 객체에 대한 상기 현재 출력 양식으로서 상기 제1 동작 양식을 선택한 이후, 상기 디스플레이 디바이스를 통해, 하나 이상의 가상 객체들을 포함하는 확장 현실(XR) 환경을 제시하는 단계를 더 포함하며, 상기 물리적 객체는 상기 제1 동작 양식에 따라 상기 XR 환경 내의 상기 하나 이상의 가상 객체들과 상호작용하도록 제공되는, 방법.
  7. 제6항에 있어서,
    상기 디스플레이 디바이스는 투명 렌즈 조립체에 대응하고, 상기 XR 환경의 상기 제시는 상기 투명 렌즈 조립체 상으로 투영되는, 방법.
  8. 제6항에 있어서,
    상기 디스플레이 디바이스는 근안 시스템에 대응하며, 상기 XR 환경을 제시하는 단계는 외부-대면 이미지 센서에 의해 캡처된 물리적 환경의 하나 이상의 이미지들로 상기 XR 환경의 상기 제시를 합성하는 단계를 포함하는, 방법.
  9. 제6항 내지 제8항 중 어느 한 항에 있어서,
    상기 XR 환경은 상기 포즈 값 및 상기 사용자 그립 값 중 적어도 하나와 연관된 하나 이상의 시각적 표시자들을 포함하는, 방법.
  10. 제6항 내지 제9항 중 어느 한 항에 있어서,
    상기 XR 환경은 상기 현재 동작 양식과 연관된 하나 이상의 시각적 표시자들을 포함하는, 방법.
  11. 제1항 내지 제10항 중 어느 한 항에 있어서,
    물리적 환경의 하나 이상의 이미지들을 획득하는 단계;
    상기 물리적 환경의 상기 하나 이상의 이미지들로 상기 물리적 객체를 인식하는 단계; 및
    사용자 인터페이스와 상호작용할 때 포커스 선택기로서 작용하도록 상기 물리적 객체를 할당하는 단계를 더 포함하는, 방법.
  12. 제1항 내지 제11항 중 어느 한 항에 있어서,
    상기 컴퓨팅 시스템은 추가로 상기 물리적 객체에 통신가능하게 커플링되고, 상기 물리적 객체와 연관된 상기 추적 데이터를 획득하는 단계는 상기 물리적 객체로부터 상기 추적 데이터를 획득하는 단계를 포함하며, 상기 추적 데이터는 상기 물리적 객체의 하나 이상의 통합 센서들로부터의 출력 데이터에 대응하는, 방법.
  13. 제12항에 있어서,
    상기 물리적 객체와 연관된 상기 추적 데이터는 상기 포즈 값을 포함하는, 방법.
  14. 제1항 내지 제11항 중 어느 한 항에 있어서,
    상기 컴퓨팅 시스템은 추가로 상기 물리적 객체에 통신가능하게 커플링되고, 상기 사용자 입력 벡터를 획득하는 단계는 상기 물리적 객체로부터 상기 사용자 입력 벡터를 획득하는 단계를 포함하며, 상기 사용자 입력 벡터는 상기 물리적 객체의 하나 이상의 통합 센서들로부터의 출력 데이터에 대응하는, 방법.
  15. 제14항에 있어서,
    상기 사용자 입력 벡터는 상기 사용자 그립 값을 포함하는, 방법.
  16. 제1항 내지 제15항 중 어느 한 항에 있어서,
    상기 컴퓨팅 시스템은 추가로 하나 이상의 외부-대면 이미지 센서들에 통신가능하게 커플링되며, 상기 물리적 객체와 연관된 상기 추적 데이터를 획득하는 단계는 상기 물리적 객체를 시각적으로 추적하기 위해 상기 하나 이상의 외부-대면 이미지 센서들에 의해 캡처된 이미지 스트림을 분석하는 단계를 포함하는, 방법.
  17. 제1항 내지 제16항 중 어느 한 항에 있어서,
    상기 컴퓨팅 시스템은 추가로, 하나 이상의 극단(extremity) 추적 표시자 값들을 출력하는 극단 추적 서브시스템에 통신가능하게 커플링되고, 상기 하나 이상의 극단 추적 표시자 값들은 상기 복수의 입력 양식들 중의 극단 추적 양식과 연관되며, 상기 사용자 입력 벡터는 상기 하나 이상의 극단 추적 표시자 값들을 포함하는, 방법.
  18. 제1항 내지 제17항 중 어느 한 항에 있어서,
    상기 컴퓨팅 시스템은 추가로, 하나 이상의 머리/신체 포즈 추적 표시자 값들을 출력하는 머리/신체 포즈 추적 서브시스템에 통신가능하게 커플링되고, 상기 하나 이상의 머리/신체 포즈 추적 표시자 값들은 상기 복수의 입력 양식들 중의 머리/신체 포즈 추적 양식과 연관되며, 상기 사용자 입력 벡터는 상기 하나 이상의 머리/신체 포즈 추적 표시자 값들을 포함하는, 방법.
  19. 제1항 내지 제18항 중 어느 한 항에 있어서,
    상기 컴퓨팅 시스템은 추가로, 하나 이상의 음성 검출 표시자 값들을 출력하는 음성 검출 서브시스템에 통신가능하게 커플링되고, 상기 하나 이상의 음성 검출 표시자 값들은 상기 복수의 입력 양식들 중의 음성 검출 양식과 연관되며, 상기 사용자 입력 벡터는 상기 하나 이상의 음성 검출 표시자 값들을 포함하는, 방법.
  20. 제1항 내지 제19항 중 어느 한 항에 있어서,
    상기 컴퓨팅 시스템은 추가로, 하나 이상의 눈 추적 표시자 값들을 출력하는 눈 추적 서브시스템에 통신가능하게 커플링되고, 상기 하나 이상의 눈 추적 표시자 값들은 상기 복수의 입력 양식들 중의 눈 추적 양식과 연관되며, 상기 사용자 입력 벡터는 상기 하나 이상의 눈 추적 표시자 값들을 포함하는, 방법.
  21. 제20항에 있어서,
    제1 동작 양식이 디지털 어시스턴트를 호출하는 것에 대응한다고 결정하는 것에 응답하여, 사용자 인터페이스 내에서 디지털 어시스턴트(DA) 표시자를 디스플레이하는 단계; 및
    상기 하나 이상의 눈 추적 표시자 값들이 상기 DA 표시자에 대응한다고 결정하는 것에 응답하여, 상기 DA 표시자의 외관을 변경시키고, 상기 DA를 인에이블시키는 단계를 더 포함하는, 방법.
  22. 제21항에 있어서,
    상기 DA 표시자의 상기 외관을 변경시키는 단계는 상기 DA 표시자의 크기를 스케일링하는 것, 상기 DA 표시자의 색상을 변경시키는 것, 또는 상기 DA 표시자의 밝기를 변경시키는 것 중 적어도 하나에 대응하는, 방법.
  23. 디바이스로서,
    하나 이상의 프로세서들;
    비일시적 메모리;
    디스플레이 디바이스와 통신하기 위한 인터페이스; 및
    상기 비일시적 메모리에 저장된 하나 이상의 프로그램들을 포함하며,
    상기 하나 이상의 프로그램들은, 상기 하나 이상의 프로세서들에 의해 실행될 때, 상기 디바이스로 하여금 제1항 내지 제22항 중 어느 한 항의 방법을 수행하게 하는, 디바이스.
  24. 하나 이상의 프로그램들을 저장하는 비일시적 메모리로서,
    상기 하나 이상의 프로그램들은, 디스플레이 디바이스와 통신하기 위한 인터페이스를 갖는 디바이스의 하나 이상의 프로세서들에 의해 실행될 때, 상기 디바이스로 하여금 제1항 내지 제22항 중 어느 한 항의 방법을 수행하게 하는, 비일시적 메모리.
  25. 디바이스로서,
    하나 이상의 프로세서들;
    비일시적 메모리;
    디스플레이 디바이스와 통신하기 위한 인터페이스; 및
    상기 디바이스로 하여금 제1항 내지 제22항 중 어느 한 항의 방법을 수행하게 하기 위한 수단을 포함하는, 디바이스.
KR1020247000523A 2021-07-05 2022-07-01 객체에 대한 동작 양식을 동적으로 선택하기 위한 방법 및 디바이스 KR20240025593A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US202163218471P 2021-07-05 2021-07-05
US63/218,471 2021-07-05
PCT/US2022/036027 WO2023283145A1 (en) 2021-07-05 2022-07-01 Method and device for dynamically selecting an operation modality for an object

Publications (1)

Publication Number Publication Date
KR20240025593A true KR20240025593A (ko) 2024-02-27

Family

ID=82742832

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020247000523A KR20240025593A (ko) 2021-07-05 2022-07-01 객체에 대한 동작 양식을 동적으로 선택하기 위한 방법 및 디바이스

Country Status (5)

Country Link
EP (1) EP4348403A1 (ko)
JP (1) JP2024529848A (ko)
KR (1) KR20240025593A (ko)
CN (1) CN117616365A (ko)
WO (1) WO2023283145A1 (ko)

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9823747B2 (en) * 2006-02-08 2017-11-21 Oblong Industries, Inc. Spatial, multi-modal control device for use with spatial operating system
JP7341166B2 (ja) * 2018-05-22 2023-09-08 マジック リープ, インコーポレイテッド ウェアラブルシステムのためのトランスモード入力融合

Also Published As

Publication number Publication date
WO2023283145A1 (en) 2023-01-12
EP4348403A1 (en) 2024-04-10
CN117616365A (zh) 2024-02-27
JP2024529848A (ja) 2024-08-14

Similar Documents

Publication Publication Date Title
US8760395B2 (en) Gesture recognition techniques
US11367416B1 (en) Presenting computer-generated content associated with reading content based on user interactions
US11803233B2 (en) IMU for touch detection
US11961195B2 (en) Method and device for sketch-based placement of virtual objects
CN110968248B (zh) 生成用于视觉触摸检测的指尖的3d模型
US11954316B2 (en) Method and device for assigning an operation set
JP7384951B2 (ja) 遮られた物理的オブジェクトの位置を示すこと
US11782548B1 (en) Speed adapted touch detection
US20230042447A1 (en) Method and Device for Managing Interactions Directed to a User Interface with a Physical Object
KR20240025593A (ko) 객체에 대한 동작 양식을 동적으로 선택하기 위한 방법 및 디바이스
US20230095282A1 (en) Method And Device For Faciliating Interactions With A Peripheral Device
US11983810B1 (en) Projection based hair rendering
US11641460B1 (en) Generating a volumetric representation of a capture region
US20230333645A1 (en) Method and device for processing user input for multiple devices
US20240019928A1 (en) Gaze and Head Pose Interaction
US20240241616A1 (en) Method And Device For Navigating Windows In 3D
US20230370578A1 (en) Generating and Displaying Content based on Respective Positions of Individuals
US20240094819A1 (en) Devices, methods, and user interfaces for gesture-based interactions
CN118076941A (zh) 用于促进与外围设备进行交互的方法和设备
WO2023034070A1 (en) Method and device for invoking a writing surface

Legal Events

Date Code Title Description
A201 Request for examination