KR20240036582A - 물리적 객체와의 사용자 인터페이스에 대한 상호작용들을 관리하기 위한 방법 및 디바이스 - Google Patents

물리적 객체와의 사용자 인터페이스에 대한 상호작용들을 관리하기 위한 방법 및 디바이스 Download PDF

Info

Publication number
KR20240036582A
KR20240036582A KR1020247003129A KR20247003129A KR20240036582A KR 20240036582 A KR20240036582 A KR 20240036582A KR 1020247003129 A KR1020247003129 A KR 1020247003129A KR 20247003129 A KR20247003129 A KR 20247003129A KR 20240036582 A KR20240036582 A KR 20240036582A
Authority
KR
South Korea
Prior art keywords
input
physical object
environment
implementations
content
Prior art date
Application number
KR1020247003129A
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 KR20240036582A publication Critical patent/KR20240036582A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0481Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
    • G06F3/04815Interaction with a metaphor-based environment or interaction object displayed as three-dimensional, e.g. changing the user viewpoint with respect to the environment or object
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • 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/011Arrangements for interaction with the human body, e.g. for user immersion in virtual reality
    • G06F3/013Eye tracking input arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/017Gesture based interaction, e.g. based on a set of recognized hand gestures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/03Arrangements for converting the position or the displacement of a member into a coded form
    • G06F3/033Pointing devices displaced or positioned by the user, e.g. mice, trackballs, pens or joysticks; Accessories therefor
    • G06F3/0346Pointing devices displaced or positioned by the user, e.g. mice, trackballs, pens or joysticks; Accessories therefor with detection of the device orientation or free movement in a 3D space, e.g. 3D mice, 6-DOF [six degrees of freedom] pointers using gyroscopes, accelerometers or tilt-sensors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/03Arrangements for converting the position or the displacement of a member into a coded form
    • G06F3/033Pointing devices displaced or positioned by the user, e.g. mice, trackballs, pens or joysticks; Accessories therefor
    • G06F3/0354Pointing devices displaced or positioned by the user, e.g. mice, trackballs, pens or joysticks; Accessories therefor with detection of 2D relative movements between the device, or an operating part thereof, and a plane or surface, e.g. 2D mice, trackballs, pens or pucks
    • G06F3/03545Pens or stylus
    • 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/0487Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser
    • G06F3/0488Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser using a touch-screen or digitiser, e.g. input of commands through traced gestures
    • G06F3/04883Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser using a touch-screen or digitiser, e.g. input of commands through traced gestures for inputting data by handwriting, e.g. gesture or text
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T19/00Manipulating 3D models or images for computer graphics
    • G06T19/006Mixed reality
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2200/00Indexing scheme for image data processing or generation, in general
    • G06T2200/24Indexing scheme for image data processing or generation, in general involving graphical user interfaces [GUIs]

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Computer Graphics (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

본 방법은, XR 환경 내에 제1 복수의 출력 양식들과 연관된 제1 그래픽 요소들을 디스플레이하는 단계; 제1 그래픽 요소들을 디스플레이하는 동안, 물리적 객체의 이동을 검출하는 단계; 및 물리적 객체의 이동을 검출하는 것에 응답하여, 물리적 객체의 이동이 물리적 객체로 하여금 제1 그래픽 요소들 중 제1 그래픽 요소에 대한 거리 임계치를 위반하게 한다는 결정에 따라, 제1 그래픽 요소와 연관된 제1 출력 양식을 물리적 객체에 대한 현재 출력 양식으로서 선택하고; 물리적 객체의 이동이 물리적 객체로 하여금 제1 그래픽 요소들 중 제2 그래픽 요소에 대한 거리 임계치를 위반하게 한다는 결정에 따라, 제2 그래픽 요소와 연관된 제2 출력 양식을 물리적 객체에 대한 현재 출력 양식으로서 선택하는 단계를 포함한다.

Description

물리적 객체와의 사용자 인터페이스에 대한 상호작용들을 관리하기 위한 방법 및 장치
본 발명은, 대체적으로, 사용자 인터페이스와 상호작용하고 그를 조작하는 것에 관한 것으로, 특히, 물리적 객체와의 사용자 인터페이스에 대한 상호작용들을 관리하기 위한 시스템들, 방법들, 및 방법들에 관한 것이다.
전형적으로, 사용자는, 터치 입력들, 음성, 입력들, 스타일러스/주변기기 입력들 등과 같은 다양한 입력 양식들에 의해 사용자 인터페이스와 상호작용할 수 있다. 그러나, 사용자 인터페이스 내에서 동작을 수행하기 위한 워크플로우(workflow)는 입력 양식에 관계없이 동일하게 유지될 수 있다. 이는 입력 양식 등에 기초하여 사용자 경험을 가속화할 기회들을 간과한다.
본 개시내용이 당업자들에 의해 이해될 수 있도록, 더 상세한 설명이 일부 예시적인 구현예들의 양태들에 대한 참조에 의해 이루어질 수 있으며, 이들 중 일부는 첨부 도면들에 도시된다.
도 1은 일부 구현예들에 따른 예시적인 동작 아키텍처의 블록도이다.
도 2는 일부 구현예들에 따른 예시적인 제어기의 블록도이다.
도 3은 일부 구현예들에 따른 예시적인 전자 디바이스의 블록도이다.
도 4는 일부 구현예들에 따른 예시적인 제어 디바이스의 블록도이다.
도 5a는 일부 구현예들에 따른 예시적인 콘텐츠 전달 아키텍처의 제1 부분의 블록도이다.
도 5b는 일부 구현예들에 따른 예시적인 데이터 구조들을 예시한다.
도 5c는 일부 구현예들에 따른 예시적인 콘텐츠 전달 아키텍처의 제2 부분의 블록도이다.
도 6a 내지 도 6p는 일부 구현예들에 따른, 제1 콘텐츠 전달 시나리오에 대한 인스턴스들의 시퀀스를 예시한다.
도 7a 내지 도 7n은 일부 구현예들에 따른, 제2 콘텐츠 전달 시나리오에 대한 인스턴스들의 시퀀스를 예시한다.
도 8a 내지 도 8m은 일부 구현예들에 따른, 제3 콘텐츠 전달 시나리오에 대한 인스턴스들의 시퀀스를 예시한다.
도 9a 내지 도 9c는 일부 구현예들에 따른, XR 환경과 상호작용하거나 그를 조작할 때 물리적 객체에 대한 출력 양식을 선택하는 방법의 흐름도 표현을 예시한다.
도 10a 및 도 10b는 일부 구현예들에 따른, 물리적 표면 상에 직접 마킹하는 동안 제1 입력(압력) 값에 기초하여 또는 간접적으로 마킹하는 동안 제2 입력(압력) 값에 기초하여 마크의 파라미터를 변경하는 방법의 흐름도 표현을 예시한다.
도 11a 내지 도 11c는 일부 구현예들에 따른, 사용자가 물리적 객체를 현재 파지하고 있는지 여부에 기초하여 선택 양식을 변경하는 방법의 흐름도 표현을 예시한다.
일반적인 실시에 따라, 도면에 예시된 다양한 특징부들은 축척대로 그려지지 않을 수 있다. 따라서, 다양한 특징부들의 치수들은 명료함을 위해 임의대로 확대 또는 축소될 수 있다. 부가적으로, 도면들 중 일부는 주어진 시스템, 방법 또는 디바이스의 컴포넌트들 모두를 도시하지는 않을 수 있다. 마지막으로, 동일한 도면 번호들은 명세서 및 도면들 전반에 걸쳐 동일한 특징부들을 나타내기 위해 사용될 수 있다.
[발명의내용]
본 명세서에 개시된 다양한 구현예들은, XR 환경과 상호작용하거나 그를 조작할 때 물리적 객체에 대한 출력 양식을 선택하기 위한 디바이스들, 시스템들, 및 방법들을 포함한다. 일부 구현예들에 따르면, 본 방법은 비일시적 메모리 및 하나 이상의 프로세서들을 포함하는 컴퓨팅 시스템에서 수행되며, 여기에서 컴퓨팅 시스템은 디스플레이 디바이스 및 하나 이상의 입력 디바이스들에 통신가능하게 결합된다. 본 방법은, 디스플레이 디바이스를 통해, 확장 현실(XR) 환경 내에 제1 복수의 출력 양식들과 연관된 제1 복수의 그래픽 요소들을 디스플레이하는 단계; 제1 복수의 그래픽 요소들을 디스플레이하는 동안, 물리적 객체의 제1 이동을 검출하는 단계; 및 물리적 객체의 제1 이동을 검출하는 것에 응답하여, 물리적 객체의 제1 이동이 물리적 객체로 하여금 제1 복수의 그래픽 요소들 중 제1 그래픽 요소에 대한 거리 임계치를 위반하게 한다는 결정에 따라, 제1 그래픽 요소와 연관된 제1 출력 양식을 물리적 객체에 대한 현재 출력 양식으로서 선택하고; 물리적 객체의 제1 이동이 물리적 객체로 하여금 제1 복수의 그래픽 요소들 중 제2 그래픽 요소에 대한 거리 임계치를 위반하게 한다는 결정에 따라, 제2 그래픽 요소와 연관된 제2 출력 양식을 물리적 객체에 대한 현재 출력 양식으로서 선택하는 단계를 포함한다.
본 명세서에 개시된 다양한 구현예들은, 물리적 표면 상에 직접 마킹하는 동안 제1 입력(압력) 값에 기초하여 또는 간접적으로 마킹하는 동안 제2 입력(압력) 값에 기초하여 마크의 파라미터를 변경하기 위한 디바이스들, 시스템들, 및 방법들을 포함한다. 일부 구현예들에 따르면, 본 방법은 비일시적 메모리 및 하나 이상의 프로세서들을 포함하는 컴퓨팅 시스템에서 수행되며, 여기에서 컴퓨팅 시스템은 디스플레이 디바이스 및 하나 이상의 입력 디바이스들에 통신가능하게 결합된다. 본 방법은, 디스플레이 디바이스를 통해, 사용자 인터페이스를 디스플레이하는 단계; 사용자 인터페이스를 디스플레이하는 동안, 물리적 객체를 이용한 마킹 입력을 검출하는 단계; 및 마킹 입력을 검출하는 것에 응답하여, 마킹 입력이 물리적 표면으로 지향된다는 결정에 따라, 디스플레이 디바이스를 통해, 마킹 입력에 기초하여 사용자 인터페이스 내에 마크를 디스플레이하고 - 마킹 입력에 기초하여 디스플레이되는 마크의 파라미터는 물리적 객체가 물리적 표면에 대해 얼마나 세게 눌리고 있는지에 기초하여 결정됨 -; 마킹 입력이 물리적 표면으로 지향되지 않는다는 결정에 따라, 디스플레이 디바이스를 통해, 마킹 입력에 기초하여 사용자 인터페이스 내에 마크를 디스플레이하는 - 마킹 입력에 기초하여 디스플레이되는 마크의 파라미터는 물리적 객체가 사용자에 의해 얼마나 세게 파지되고 있는지에 기초하여 결정됨 - 단계를 포함한다.
본 명세서에 개시된 다양한 구현예들은, 사용자가 물리적 객체를 현재 파지하고 있는지 여부에 기초하여 선택 양식을 변경하기 위한 디바이스들, 시스템들, 및 방법들을 포함한다. 일부 구현예들에 따르면, 본 방법은 비일시적 메모리 및 하나 이상의 프로세서들을 포함하는 컴퓨팅 시스템에서 수행되며, 여기에서 컴퓨팅 시스템은 디스플레이 디바이스 및 하나 이상의 입력 디바이스들에 통신가능하게 결합된다. 본 방법은, 디스플레이 디바이스를 통해, 콘텐츠를 디스플레이하는 단계; 콘텐츠를 디스플레이하는 동안, 그리고 물리적 객체가 사용자에 의해 보유되고 있는 동안, 선택 입력을 검출하는 단계; 및 선택 입력을 검출하는 것에 응답하여, 선택 입력에 대응하는 동작을 수행하는 단계를 포함하고, 선택 입력에 대응하는 동작을 수행하는 단계는, 물리적 객체가 사용자에 의해 보유되고 있는 방식과 연관된 그립 포즈가 제1 그립에 대응한다는 결정에 따라, 콘텐츠의 제1 부분에 대해 선택 동작을 수행하는 단계 - 콘텐츠의 제1 부분은 물리적 객체의 미리결정된 부분이 가리키고 있는 방향에 기초하여 선택됨 -; 및 물리적 객체가 사용자에 의해 보유되고 있는 방식과 연관된 그립 포즈가 제1 그립에 대응하지 않는다는 결정에 따라, 콘텐츠의 제1 부분과는 상이한 콘텐츠의 제2 부분에 대해 선택 동작을 수행하는 단계 - 콘텐츠의 제2 부분은 사용자의 시선 방향에 기초하여 선택됨 - 를 포함한다.
일부 구현예들에 따르면, 전자 디바이스는 하나 이상의 디스플레이들, 하나 이상의 프로세서들, 비일시적 메모리, 및 하나 이상의 프로그램들을 포함하며; 하나 이상의 프로그램들은 비일시적 메모리에 저장되며 하나 이상의 프로세서들에 의해 실행되도록 구성되고, 하나 이상의 프로그램들은 본 명세서에 설명된 방법들 중 임의의 방법을 수행하거나 그의 수행을 야기하기 위한 명령어들을 포함한다. 일부 구현예들에 따르면, 비일시적 컴퓨터 판독가능 저장 매체는, 디바이스의 하나 이상의 프로세서들에 의해 실행될 때, 디바이스로 하여금, 본 명세서에 설명되는 방법들 중 임의의 방법을 수행하게 하거나 수행을 야기하는 명령어들을 내부에 저장한다. 일부 구현예들에 따르면, 디바이스는 하나 이상의 디스플레이들, 하나 이상의 프로세서들, 비일시적 메모리, 및 본 명세서에 설명되는 방법들 중 임의의 방법을 수행하거나 수행을 야기하기 위한 수단을 포함한다.
일부 구현예들에 따르면, 컴퓨팅 시스템은 하나 이상의 프로세서들, 비일시적 메모리, 디스플레이 디바이스 및 하나 이상의 입력 디바이스들과 통신하기 위한 인터페이스, 및 하나 이상의 프로그램들을 포함하고; 하나 이상의 프로그램들은 비일시적 메모리에 저장되고, 하나 이상의 프로세서들에 의해 실행되도록 구성되며, 하나 이상의 프로그램들은 본 명세서에 설명되는 방법들 중 임의의 방법의 동작들을 수행하거나 또는 이들의 수행을 야기하기 위한 명령어들을 포함한다. 일부 구현예들에 따르면, 비일시적 컴퓨터 판독가능 저장 매체는 디스플레이 디바이스 및 하나 이상의 입력 디바이스들과 통신하기 위한 인터페이스를 갖는 컴퓨팅 시스템의 하나 이상의 프로세서들에 의해 실행될 때, 컴퓨팅 시스템으로 하여금 본 명세서에 설명되는 방법들 중 임의의 방법의 동작들을 수행하게 하거나 그들의 수행을 야기하게 하는 명령어들을 내부에 저장하였다. 일부 구현예들에 따르면, 컴퓨팅 시스템은 하나 이상의 프로세서들, 비일시적 메모리, 디스플레이 디바이스 및 하나 이상의 입력 디바이스들과 통신하기 위한 인터페이스, 및 본 명세서에 설명되는 방법들 중 임의의 방법의 동작들을 수행하거나 그들의 수행을 야기하기 위한 수단을 포함한다.
도면들에 도시된 예시적인 구현예들의 철저한 이해를 제공하기 위해 다수의 세부사항들이 설명된다. 그러나, 도면들은 단지 본 개시내용의 일부 예시적인 양태들만을 도시할 뿐이며, 따라서 제한적인 것으로 고려되지 않는다. 당업자들은 다른 효과적인 양태들 및/또는 변형들이 본 명세서에 설명되는 특정 세부사항들 모두를 포함하지는 않음을 인식할 것이다. 게다가, 잘 알려진 시스템들, 방법들, 컴포넌트들, 디바이스들, 및 회로들은 본 명세서에 설명되는 예시적인 구현예들의 더 적절한 양태들을 불명확하게 하지 않기 위해 포괄적으로 상세하게 설명되지 않았다.
물리적 환경은 사람들이 전자 디바이스들의 도움 없이 감지하고 그리고/또는 그와 상호작용할 수 있는 물리적 세계를 지칭한다. 물리적 환경은 물리적 표면 또는 물리적 객체와 같은 물리적 특징부들을 포함할 수 있다. 예를 들어, 물리적 환경은 물리적 나무들, 물리적 건물들, 및 물리적 사람들을 포함하는 물리적 공원에 대응한다. 사람들은, 예컨대 시각, 촉각, 청각, 미각, 및 후각을 통해, 물리적 환경을 직접 감지하고 그리고/또는 그와 상호작용할 수 있다. 대조적으로, 확장 현실(XR) 환경은 사람들이 전자 디바이스를 통해 감지하고 그리고/또는 그와 상호작용하는 완전히 또는 부분적으로 시뮬레이션된 환경을 지칭한다. 예를 들어, XR 환경은 증강 현실(AR) 콘텐츠, 혼합 현실(MR) 콘텐츠, 가상 현실(VR) 콘텐츠 등을 포함할 수 있다. XR 시스템을 이용하면, 사람의 신체적 움직임들 또는 그 표현들의 서브세트가 추적되고, 이에 응답하여, XR 환경에서 시뮬레이션된 하나 이상의 가상 객체들의 하나 이상의 특성들이 적어도 하나의 물리 법칙에 따르는 방식으로 조정된다. 하나의 예로서, XR 시스템은 머리 움직임을 검출할 수 있고, 이에 응답하여, 사람에게 제시되는 그래픽 콘텐츠 및 음장(acoustic field)을 그러한 뷰들 및 소리들이 물리적 환경에서 변경되는 방법과 유사한 방식으로 조정할 수 있다. 다른 예로서, XR 시스템은 XR 환경을 제시하는 전자 디바이스(예를 들어, 모바일 폰, 태블릿, 랩톱 등)의 이동을 검출할 수 있고, 이에 응답하여, 사람에게 제시되는 그래픽 콘텐츠 및 음장을 그러한 뷰들 및 소리들이 물리적 환경에서 변경되는 방법과 유사한 방식으로 조정할 수 있다. 일부 상황들에서(예를 들어, 접근성 이유들로 인해), XR 시스템은 물리적 모션들의 표현들(예를 들어, 음성 커맨드들)에 응답하여 XR 환경 내의 그래픽 콘텐츠의 특성(들)을 조정할 수 있다.
사람이 다양한 XR 환경들을 감지하고 그리고/또는 그들과 상호작용할 수 있게 하는 많은 상이한 유형들의 전자 시스템들이 존재한다. 예들은 머리-장착가능 시스템들, 투사-기반 시스템들, 헤드-업(head-up) 디스플레이(HUD)들, 디스플레이 능력이 통합된 차량 앞유리들, 디스플레이 능력이 통합된 창문들, 사람의 눈들에 배치되도록 설계된 렌즈들로서 형성된 디스플레이들(예를 들어, 콘택트 렌즈들과 유사함), 헤드폰들/이어폰들, 스피커 어레이들, 입력 시스템들(예를 들어, 햅틱 피드백이 있거나 또는 없는 웨어러블 또는 핸드헬드 제어기들), 스마트폰들, 태블릿들, 및 데스크톱/랩톱 컴퓨터들을 포함한다. 머리 장착가능 시스템은 하나 이상의 스피커(들) 및 통합 불투명 디스플레이를 가질 수 있다. 대안적으로, 머리-장착가능 시스템은 외부 불투명 디스플레이(예를 들어, 스마트폰)를 수용하도록 구성될 수 있다. 머리 장착가능 시스템은 물리적 환경의 이미지들 또는 비디오를 캡처하기 위한 하나 이상의 이미징 센서들, 및/또는 물리적 환경의 오디오를 캡처하기 위한 하나 이상의 마이크로폰들을 포함할 수 있다. 머리 장착가능 시스템은 불투명 디스플레이보다는, 투명 또는 반투명 디스플레이를 가질 수 있다. 투명 또는 반투명 디스플레이는 이미지들을 표현하는 광이 사람의 눈들로 지향되는 매체를 가질 수 있다. 디스플레이는 디지털 광 프로젝션, OLED들, LED들, μLED들, 실리콘 액정 표시장치, 레이저 스캐닝 광원, 또는 이들 기술들의 임의의 조합을 이용할 수 있다. 매체는 광학 도파관, 홀로그램 매체, 광학 조합기, 광학 반사기, 또는 이들의 임의의 조합일 수 있다. 일부 구현예들에서, 투명 또는 반투명 디스플레이는 선택적으로 불투명해지도록 구성될 수 있다. 투사-기반 시스템들은 그래픽 이미지들을 사람의 망막 상에 투사하는 망막 투사 기술을 채용할 수 있다. 투영 시스템들은 또한 가상 객체들을 물리적 환경에, 예를 들어, 홀로그램으로서 또는 물리적 표면 상에 투영하도록 구성될 수 있다.
도 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)의 팁(예컨대, 연필의 끝)에 대응하고, 제2 단부(177)는 제어 디바이스(130)의 반대편 또는 하단 단부(예컨대, 연필의 지우개)에 대응한다. 도 1에 도시된 바와 같이, 제어 디바이스(130)는 사용자(149)로부터 터치 입력들을 수신하기 위한 터치 감응형 표면(175)을 포함한다. 일부 구현예들에서, 제어 디바이스(130)는 소프트웨어, 펌웨어, 및/또는 하드웨어의 적합한 조합을 포함한다. 제어 디바이스(130)는 도 4와 관련하여 아래에서 더욱 상세히 기술된다. 일부 구현예들에서, 제어 디바이스(130)는 제어기(110)에 대한 유선 또는 무선 통신 채널을 갖는 전자 디바이스에 대응한다. 예를 들어, 제어 디바이스(130)는 스타일러스, 핑거 웨어러블 디바이스(finger-wearable device), 핸드헬드 디바이스 등에 대응한다. 일부 구현예들에서, 제어기(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)(예를 들어, 마이크로프로세서들, 주문형 집적 회로(ASIC)들, 필드-프로그래밍가능 게이트 어레이(FPGA)들, 그래픽 프로세싱 유닛(GPU)들, 중앙 프로세싱 유닛(CPU)들, 프로세싱 코어들 등), 하나 이상의 입력/출력(I/O) 디바이스들(206), 하나 이상의 통신 인터페이스들(208)(예를 들어, 범용 직렬 버스(USB), IEEE 802.3x, IEEE 802.11x, IEEE 802.16x, 모바일 통신들을 위한 글로벌 시스템(GSM), 코드 분할 다중 액세스(CDMA), 시분할 다중 액세스(TDMA), 글로벌 포지셔닝 시스템(GPS), 적외선(IR), 블루투스, 지그비, 및/또는 유사한 유형의 인터페이스), 하나 이상의 프로그래밍(예를 들어, I/O) 인터페이스들(210), 메모리(220), 및 이들 및 다양한 다른 컴포넌트들을 상호연결시키기 위한 하나 이상의 통신 버스들(204)을 포함한다.
일부 구현예들에서, 하나 이상의 통신 버스들(204)은 시스템 컴포넌트들 사이의 통신들을 상호연결시키고 제어하는 회로부를 포함한다. 일부 구현예들에서, 하나 이상의 I/O 디바이스들(206)은 키보드, 마우스, 터치패드, 터치스크린, 조이스틱, 하나 이상의 마이크로폰들, 하나 이상의 스피커들, 하나 이상의 이미지 센서들, 하나 이상의 디스플레이들 등 중 적어도 하나를 포함한다.
메모리(220)는 동적-랜덤 액세스 메모리(DRAM), 정적 랜덤-액세스 메모리(SRAM), 더블-데이터-레이트 랜덤-액세스 메모리(DDR RAM), 또는 다른 랜덤-액세스 솔리드-스테이트(solid-state) 메모리 디바이스들과 같은 고속 랜덤-액세스 메모리를 포함한다. 일부 구현예들에서, 메모리(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)를 결정/생성하도록 그리고 시간 경과에 따라 객체 추적 벡터(511)를 업데이트하도록 구성된다. 예를 들어, 도 5b에 도시된 바와 같이, 객체 추적 벡터(511)는 물리적 객체에 대한 병진 값들(572)(예컨대, 물리적 환경(105) 또는 세계 전반(world-at-large)에 대한 x, y 및 z 좌표들과 연관됨), 물리적 객체에 대한 회전 값들(574)(예컨대, 롤, 피치 및 요), 물리적 객체와 연관된 하나 이상의 압력 값들(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)는 헤드 포즈 디스크립터(descriptor)(592A)(예컨대, 상향, 하향, 중립 등), 헤드 포즈에 대한 병진 값들(592B), 헤드 포즈에 대한 회전 값들(592C), 신체 포즈 디스크립터(594A)(예컨대, 서 있음, 앉아 있음, 엎드려 있음 등), 신체 섹션들/손발들/사지들/관절들에 대한 병진 값들(594B), 신체 섹션들/손발들/사지들/관절들에 대한 회전 값들(594C), 및/또는 기타 등등을 포함한다. 신체/헤드 포즈 추적 엔진(514)은 도 5a를 참조하여 아래에서 더 상세히 설명된다. 이를 위해, 다양한 구현예들에서, 신체/헤드 포즈 추적 엔진(514)은 그에 대한 명령어들 및/또는 로직, 및 그에 대한 휴리스틱 및 메타데이터를 포함한다. 일부 구현예들에서, 객체 추적 엔진(510), 눈 추적 엔진(512), 및 신체/헤드 포즈 추적 엔진(514)은 제어기(110)에 더하여 또는 그 대신에 전자 디바이스(120) 상에 위치될 수 있다.
일부 구현예들에서, 콘텐츠 선택기(542)는 하나 이상의 사용자 요청들 및/또는 입력들(예컨대, 음성 커맨드, XR 콘텐츠 아이템들의 사용자 인터페이스(UI) 메뉴로부터의 선택, 및/또는 기타 등등)에 기초하여 콘텐츠 라이브러리(545)로부터 XR 콘텐츠(때때로 본 명세서에서 "그래픽 콘텐츠" 또는 "가상 콘텐츠"로 또한 지칭됨)를 선택하도록 구성된다. 콘텐츠 선택기(542)는 도 5a를 참조하여 아래에서 더 상세히 설명된다. 이를 위해, 다양한 구현예들에서, 콘텐츠 선택기(542)는 그에 대한 명령어들 및/또는 로직, 및 그에 대한 휴리스틱 및 메타데이터를 포함한다.
일부 구현예들에서, 콘텐츠 라이브러리(545)는, 오디오/시각적(A/V) 콘텐츠, 가상 에이전트(VA)들, 및/또는 XR 콘텐츠, 객체들, 아이템들, 풍경 등과 같은 복수의 콘텐츠 아이템들을 포함한다. 일례로서, XR 콘텐츠는 사용자 캡처 비디오들, 영화들, TV 에피소드들, 및/또는 다른 XR 콘텐츠의 3D 재구성들을 포함한다. 일부 구현예들에서, 콘텐츠 라이브러리(545)는 사용자(149)에 의해 수동으로 저작되거나 미리 채워진다. 일부 구현예들에서, 콘텐츠 라이브러리(545)는 제어기(110)에 대해 로컬에 위치된다. 일부 구현예들에서, 콘텐츠 라이브러리(545)는 제어기(110)로부터 원격에(예컨대, 원격 서버, 클라우드 서버 등에) 위치된다.
일부 구현예들에서, 입력 관리자(520)는, 다양한 입력 센서들로부터 입력 데이터를 수집하고 분석하도록 구성된다. 입력 관리자(520)는 도 5a를 참조하여 아래에서 더 상세히 설명된다. 이를 위해, 다양한 구현예들에서, 입력 관리자(520)는 그에 대한 명령어들 및/또는 로직, 및 그에 대한 휴리스틱 및 메타데이터를 포함한다. 일부 구현예들에서, 입력 관리자(520)는 데이터 집계기(521), 콘텐츠 선택 엔진(522), 그립 포즈 평가기(524), 출력 양식 선택기(526), 및 파라미터 조정기(528)를 포함한다.
일부 구현예들에서, 데이터 집계기(521)는 객체 추적 벡터(511), 눈 추적 벡터(513), 및 포즈 특성화 벡터(515)를 집계하도록 그리고 후속 다운스트림 사용을 위해 그에 기초하여 (도 5a에 도시된 바와 같이) 특성화 벡터(531)를 결정/생성하도록 구성된다. 데이터 집계기(521)는 도 5a를 참조하여 아래에서 더 상세히 설명된다. 이를 위해, 다양한 구현예들에서, 데이터 집계기(521)는 그에 대한 명령어들 및/또는 로직, 및 그에 대한 휴리스틱 및 메타데이터를 포함한다.
일부 구현예들에서, 콘텐츠 선택 엔진(522)은 특성화 벡터(531)(또는 그의 일부분)에 기초하여 XR 환경(128) 내에서 (도 5a에 도시된 바와 같이) 선택된 콘텐츠 부분(523)을 결정하도록 구성된다. 콘텐츠 선택 엔진(522)은 도 5a를 참조하여 아래에서 더 상세히 설명된다. 이를 위해, 다양한 구현예들에서, 콘텐츠 선택 엔진(522)은 그에 대한 명령어들 및/또는 로직, 및 그에 대한 휴리스틱 및 메타데이터를 포함한다.
일부 구현예들에서, 그립 포즈 평가기(524)는 특성화 벡터(531)(또는 그의 일부분)에 기초하여 물리적 객체가 사용자(149)에 의해 보유되고 있는 현재 방식과 연관된 (도 5a에 도시된 바와 같은) 그립 포즈(525)를 결정하도록 구성된다. 예를 들어, 그립 포즈(525)는 사용자(149)가 물리적 객체(예컨대, 프록시 객체, 제어 디바이스(130) 등)를 파지하는 방식을 나타낸다. 예를 들어, 그립 포즈(525)는 리모컨형(remote-control-esque) 그립, 포인팅/완드형(pointing/wand-esque) 그립, 필기 그립, 역 필기 그립, 핸들 그립, 섬 톱(thumb top) 그립, 레벨형(level-esque) 그립, 게임패드형 그립, 플루트형(flute-esque) 그립, 파이어 스타터형(fire-starter-esque) 그립 등 중 하나에 대응한다. 그립 포즈 평가기(524)는 도 5a를 참조하여 아래에서 더 상세히 설명된다. 이를 위해, 다양한 구현예들에서, 그립 포즈 평가기(524)는 그에 대한 명령어들 및/또는 로직, 및 그에 대한 휴리스틱 및 메타데이터를 포함한다.
일부 구현예들에서, 출력 양식 선택기(526)는 물리적 객체가 XR 환경(128)과 상호작용하거나 XR 환경(128)을 조작하는 방식과 연관된 (도 5a에 도시된 바와 같은) 현재 출력 양식(527)을 선택하도록 구성된다. 예를 들어, 제1 출력 양식은 XR 환경(128) 내에서 객체(들)/콘텐츠를 선택/조작하는 것에 대응하고, 제2 출력 양식은 XR 환경(128) 내에서 스케치, 드로잉, 필기 등을 하는 것에 대응한다. 출력 양식 선택기(526)는 도 5a를 참조하여 아래에서 더 상세히 설명된다. 이를 위해, 다양한 구현예들에서, 출력 양식 선택기(526)는 그에 대한 명령어들 및/또는 로직, 및 그에 대한 휴리스틱 및 메타데이터를 포함한다.
일부 구현예들에서, 파라미터 조정기(528)는 물리적 객체와 연관된 제1 입력(압력) 값 또는 제2 입력(압력) 값에 기초하여 XR 환경(128)에 대한 마킹 입력과 연관된 (도 5a에 도시된 바와 같은) 파라미터 값(예컨대, 두께, 밝기, 색상, 텍스처 등)을 조정하도록 구성된다. 파라미터 조정기(528)는 도 5a를 참조하여 아래에서 더 상세히 설명된다. 이를 위해, 다양한 구현예들에서, 파라미터 조정기(528)는 그에 대한 명령어들 및/또는 로직, 및 그에 대한 휴리스틱 및 메타데이터를 포함한다.
일부 구현예들에서, 콘텐츠 관리자(530)는, VA(들), XR 콘텐츠, XR 콘텐츠와 연관된 하나 이상의 사용자 인터페이스(UI) 요소들, 및/또는 기타 등등 중 하나 이상을 포함하는, XR 환경(128)에 대한 레이아웃, 셋업, 구조, 및/또는 기타 등등을 관리 및 업데이트하도록 구성된다. 콘텐츠 관리자(530)는 도 5c를 참조하여 아래에서 더 상세히 설명된다. 이를 위해, 다양한 구현예들에서, 콘텐츠 관리자(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)가 비디오 패스-스루 구성들에 대해서는 존재할 수 있지만 완전 VR 또는 광학 시스루 구성들에 대해서는 제거될 수 있다는 것을 인식할 것이다.
일부 구현예들에서, 포즈 결정기(552)는 A/V 콘텐츠 및/또는 XR 콘텐츠에 대한 사용자(149) 및/또는 전자 디바이스(120)의 현재 카메라 포즈를 결정하도록 구성된다. 포즈 결정기(552)는 도 5a를 참조하여 아래에서 더 상세히 설명된다. 이를 위해, 다양한 구현예들에서, 포즈 결정기(552)는 그에 대한 명령어들 및/또는 로직, 및 그에 대한 휴리스틱 및 메타데이터를 포함한다.
일부 구현예들에서, 렌더러(554)는 그에 대한 현재 카메라 포즈에 따라 A/V 콘텐츠 및/또는 XR 콘텐츠를 렌더링하도록 구성된다. 렌더러(554)는 도 5a를 참조하여 아래에서 더 상세히 설명된다. 이를 위해, 다양한 구현예들에서, 렌더러(554)는 그에 대한 명령어들 및/또는 로직, 및 그에 대한 휴리스틱 및 메타데이터를 포함한다.
일부 구현예들에서, 이미지 프로세싱 아키텍처(562)는 사용자(149) 및/또는 전자 디바이스(120)의 현재 카메라 포즈로부터 물리적 환경(105)의 하나 이상의 이미지들을 포함하는 이미지 스트림을 획득(예컨대, 수신, 검색, 또는 캡처)하도록 구성된다. 일부 구현예들에서, 이미지 프로세싱 아키텍처(562)는, 또한, 워핑(warping), 색상 보정, 감마 보정, 선명화, 잡음 감소, 화이트 밸런스, 및/또는 기타 등등과 같은 하나 이상의 이미지 프로세싱 동작들을 이미지 스트림에 대해 수행하도록 구성된다. 이미지 프로세싱 아키텍처(562)는 도 5a를 참조하여 아래에서 더 상세히 설명된다. 이를 위해, 다양한 구현예들에서, 이미지 프로세싱 아키텍처(562)는 그에 대한 명령어들 및/또는 로직, 및 그에 대한 휴리스틱 및 메타데이터를 포함한다.
일부 구현예들에서, 합성기(564)는, 렌더링된 A/V 콘텐츠 및/또는 XR 콘텐츠를 이미지 프로세싱 아키텍처(562)로부터의 물리적 환경(105)의 프로세싱된 이미지 스트림과 합성하여 디스플레이를 위한 XR 환경(128)의 렌더링된 이미지 프레임들을 생성하도록 구성된다. 합성기(564)는 도 5a를 참조하여 아래에서 더 상세히 설명된다. 이를 위해, 다양한 구현예들에서, 합성기(564)는 그에 대한 명령어들 및/또는 로직, 및 그에 대한 휴리스틱 및 메타데이터를 포함한다.
데이터 획득기(242), 맵퍼 및 로케이터 엔진(244), 데이터 송신기(246), 프라이버시 아키텍처(508), 객체 추적 엔진(510), 눈 추적 엔진(512), 신체/헤드 포즈 추적 엔진(514), 콘텐츠 선택기(542), 콘텐츠 관리자(530), 동작 양식 관리자(540), 및 렌더링 엔진(550)이 단일 디바이스(예컨대, 제어기(110)) 상에 존재하는 것으로 도시되어 있지만, 다른 구현예들에서, 데이터 획득기(242), 맵퍼 및 로케이터 엔진(244), 데이터 송신기(246), 프라이버시 아키텍처(508), 객체 추적 엔진(510), 눈 추적 엔진(512), 신체/헤드 포즈 추적 엔진(514), 콘텐츠 선택기(542), 콘텐츠 관리자(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)은 홀로그래픽, 디지털 광 프로세싱(DLP), 액정 디스플레이(LCD), 실리콘 액정 표시장치(LCoS), 유기 발광 전계-효과 트랜지스터(OLET), 유기 발광 다이오드(OLED), 표면-전도 전자-방출기 디스플레이(SED), 전계-방출 디스플레이(FED), 양자점 발광 다이오드(QD-LED), 마이크로-전자기계 시스템(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), 상호작용 핸들러(540), 및 데이터 송신기(350)를 포함한다.
일부 구현예들에서, 데이터 획득기(342)는 전자 디바이스(120)의 I/O 디바이스들 및 센서들(306), 제어기(110), 및 원격 입력 디바이스들 중 적어도 하나로부터 데이터(예를 들어, 사용자 인터페이스 또는 XR 환경과 연관된 렌더링된 이미지 프레임들과 같은 제시 데이터, 입력 데이터, 사용자 상호작용 데이터, 헤드 추적 정보, 카메라 포즈 추적 정보, 눈 추적 정보, 손/사지/손가락/손발 추적 정보, 센서 데이터, 위치 데이터 등)를 획득하도록 구성된다. 이를 위해, 다양한 구현예들에서, 데이터 획득기(342)는 그에 대한 명령어들 및/또는 로직, 및 그에 대한 휴리스틱 및 메타데이터를 포함한다.
일부 구현예들에서, 상호작용 핸들러(540)는 제시된 A/V 콘텐츠 및/또는 XR 콘텐츠와의 사용자 상호작용들(예컨대, 손/손발 추적을 통해 검출된 제스처 입력들, 눈 추적을 통해 검출된 눈 시선 입력들, 음성 커맨드들 등)을 검출하도록 구성된다. 이를 위해, 다양한 구현예들에서, 상호작용 핸들러(540)는 그에 대한 명령어들 및/또는 로직, 및 그에 대한 휴리스틱 및 메타데이터를 포함한다.
일부 구현예들에서, 제시기(570)는 하나 이상의 디스플레이들(312)을 통해 A/V 콘텐츠 및/또는 XR 콘텐츠(예컨대, VA(들), XR 콘텐츠, XR 콘텐츠와 연관된 하나 이상의 UI 요소들, 및/또는 기타 등등을 포함하는, 사용자 인터페이스 또는 XR 환경(128)과 연관된 렌더링된 이미지 프레임들)를 제시 및 업데이트하도록 구성된다. 이를 위해, 다양한 구현예들에서, 제시기(570)는 그에 대한 명령어들 및/또는 로직, 및 그에 대한 휴리스틱 및 메타데이터를 포함한다.
일부 구현예들에서, 데이터 송신기(350)는 데이터(예를 들어, 제시 데이터, 위치 데이터, 사용자 상호작용 데이터, 헤드 추적 정보, 카메라 포즈 추적 정보, 눈 추적 정보, 손/사지/손가락/손발 추적 정보 등)를 적어도 제어기(110)에 송신하도록 구성된다. 이를 위해, 다양한 구현예들에서, 데이터 송신기(350)는 그에 대한 명령어들 및/또는 로직, 및 그에 대한 휴리스틱 및 메타데이터를 포함한다.
데이터 획득기(342), 상호작용 핸들러(540), 제시기(570), 및 데이터 송신기(350)가 단일 디바이스(예를 들어, 전자 디바이스(120)) 상에 존재하는 것으로 도시되어 있지만, 다른 구현예들에서, 데이터 획득기(342), 상호작용 핸들러(540), 제시기(570), 및 데이터 송신기(350)의 임의의 조합이 별개의 컴퓨팅 디바이스들 내에 위치될 수 있다는 것이 이해되어야 한다.
게다가, 도 3은 본 명세서에 설명된 구현예들의 구조적 개략도와는 대조적으로 특정 구현예들에 존재할 수 있는 다양한 특징부들의 기능 설명으로서 더 의도된다. 당업자들에 의해 인식되는 바와 같이, 별개로 도시된 아이템들은 조합될 수 있고 일부 아이템들은 분리될 수 있다. 예를 들어, 다양한 구현예들에서, 도 3에 별개로 도시된 일부 기능 모듈들은 단일 모듈로 구현될 수 있고, 단일 기능 블록들의 다양한 기능들은 하나 이상의 기능 블록들에 의해 구현될 수 있다. 모듈들의 실제 수량 및 특정 기능들의 분할 그리고 특징부들이 그들 사이에서 어떻게 할당되는지는 구현예들마다 다를 것이고, 일부 구현예들에서, 특정 구현예에 대해 선택된 하드웨어, 소프트웨어, 및/또는 펌웨어의 특정 조합에 부분적으로 의존한다.
도 4는 일부 구현예들에 따른 예시적인 제어 디바이스(130)의 블록도이다. 제어 디바이스(130)는 때때로 줄여서 스타일러스라고 불린다. 제어 디바이스(130)는 비일시적 메모리(402)(선택적으로, 하나 이상의 컴퓨터 판독가능 저장 매체를 포함함), 메모리 제어기(422), 하나 이상의 프로세싱 유닛(CPU)(420), 주변기기 인터페이스(418), RF 회로부(408), 입/출력(I/O) 서브시스템(406), 및 기타 입력 또는 제어 디바이스들(416)을 포함한다. 제어 디바이스(130)는 선택적으로 외부 포트(424) 및 하나 이상의 광 센서(464)를 포함한다. 제어 디바이스(130)는, 선택적으로, 전자 디바이스(100) 상의(예컨대, 제어 디바이스(130)가 전자 디바이스(120)의 디스플레이(122)와 같은 터치 감응형 표면에 사용되는 경우) 또는 기타 표면들(예컨대, 책상 표면) 상의 제어 디바이스(130)의 접촉들의 세기를 검출하기 위한 하나 이상의 접촉 세기 센서들(465)을 포함한다. 제어 디바이스(130)는, 선택적으로, 제어 디바이스(130) 상에 촉각적 출력들을 생성하기 위한 하나 이상의 촉각적 출력 생성기들(463)을 포함한다. 이들 컴포넌트는 선택적으로 하나 이상의 통신 버스들 또는 신호 라인들(403)을 통해 통신한다.
제어 디바이스(130)는 전자 스타일러스의 일례일 뿐이고, 제어 디바이스(130)는, 선택적으로, 도시된 것보다 더 많거나 더 적은 컴포넌트들을 갖고, 선택적으로, 2개 이상의 컴포넌트들을 조합하거나, 또는 선택적으로 컴포넌트들의 상이한 구성 또는 배열을 갖는다는 것이 인식되어야 한다. 도 4에 도시된 다양한 컴포넌트들은, 하나 이상의 신호 처리 및/또는 주문형 집적 회로들을 비롯한, 하드웨어, 소프트웨어, 펌웨어, 또는 이들의 조합으로 구현된다. 일부 구현예들에서, 제어 디바이스(130)의 일부 기능들 및/또는 동작들(예컨대, 터치 해석 모듈(477))은 제어기(110) 및/또는 전자 디바이스(120)에 의해 제공된다. 이와 같이, 일부 구현예들에서, 제어 디바이스(130)의 일부 컴포넌트들은 제어기(110) 및/또는 전자 디바이스(120)에 통합된다.
도 1에 도시된 바와 같이, 제어 디바이스(130)는 제1 단부(176) 및 제2 단부(177)를 포함한다. 다양한 실시예들에서, 제1 단부(176)는 제어 디바이스(130)의 팁(예컨대, 연필의 끝)에 대응하고, 제2 단부(177)는 제어 디바이스(130)의 반대편 또는 하단 단부(예컨대, 연필의 지우개)에 대응한다.
도 1에 도시된 바와 같이, 제어 디바이스(130)는 사용자(149)로부터 터치 입력들을 수신하기 위한 터치 감응형 표면(175)을 포함한다. 일부 구현예들에서, 터치 감응형 표면(175)은 용량성 터치 요소에 대응한다. 제어 디바이스(130)는 터치 감응형 표면(175)과의 햅틱 및/또는 촉각적 접촉에 기초하여 사용자로부터의 입력들을 검출하는 센서 또는 센서들의 세트를 포함한다. 일부 구현예들에서, 제어 디바이스(130)는, 용량성, 저항성, 적외선 및 표면 음향파 기술들뿐만 아니라, 다른 근접 센서 어레이들 또는 터치 감응형 표면(175)과의 하나 이상의 접촉 지점들을 결정하기 위한 다른 요소들을 포함하지만 이들로 한정되지 않는, 현재 알려져 있거나 추후에 개발될 복수의 터치 감지 기술들 중 임의의 것을 포함한다. 제어 디바이스(130)는 다양한 센서들 및 유형들의 센서들을 포함하기 때문에, 제어 디바이스(130)는 사용자(149)로부터의 상이한 다양한 입력들을 검출할 수 있다. 일부 구현예들에서, 하나 이상의 센서들은 사용자가 터치 감응형 표면(175)을 한 번 또는 여러 번 탭핑하는 것에 응답하여 단일 터치 입력 또는 연속적인 터치 입력들을 검출할 수 있다. 일부 구현예들에서, 하나 이상의 센서들은 사용자가 하나 이상의 손가락들로 터치 감응형 표면(175)을 따라 스트로킹(stroking)하는 것에 응답하여 제어 디바이스(130) 상에서 스와이프 입력을 검출할 수 있다. 일부 구현예들에서, 사용자가 터치 감응형 표면(175)을 따라 스트로킹하는 속도가 임계치를 위반하는 경우, 하나 이상의 센서들은 스와이프 입력보다는 플릭(flick) 입력을 검출한다.
제어 디바이스(130)는, 또한, 하나 이상의 가속도계들(467), 하나 이상의 자이로스코프들(468), 하나 이상의 자력계들(469), 및/또는 기타 등등과 같은, 제어 디바이스(130)의 배향(예컨대, 각위치) 및/또는 이동을 검출하는 하나 이상의 센서들을 포함한다. 하나 이상의 센서들은, 회전의 유형 및 방향을 포함하여, 사용자에 의한 제어 디바이스(130)의 다양한 회전 이동들을 검출할 수 있다. 예를 들어, 하나 이상의 센서들은 사용자가 제어 디바이스(130)를 롤링 및/또는 트월링(twirling)하는 것을 검출할 수 있고, 롤링/트월링의 방향(예컨대, 시계 방향 또는 반시계 방향)을 검출할 수 있다. 일부 구현예들에서, 검출된 입력은 전자 디바이스에 대한 제어 디바이스(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(subscriber identity module) 카드, 메모리 등을 포함하지만 이들로 제한되지 않는, 이러한 기능들을 수행하기 위한 잘 알려진 회로부를 포함한다. 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), 블루투스, 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)은 주변환경으로부터 접촉 세기 정보(예컨대, 압력 정보 또는 압력 정보에 대한 프록시(proxy))를 수신한다. 일부 구현예들에서, 적어도 하나의 접촉 세기 센서는 전자 디바이스(130)의 팁과 함께 위치되거나 또는 그에 근접한다. 일부 구현예들에서, 적어도 하나의 접촉 세기 센서는 전자 디바이스(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)의 위치 및/또는 배향에 관한 정보(예컨대, 병진 및/또는 회전 값들) 및 제어 디바이스(130)의 위치에 관한 위치 정보(예컨대, GPS 모듈(435)에 의해 결정됨)를 포함하는 위치 상태.
운영 체제(426)(예컨대, iOS, 다윈, RTXC, 리눅스(LINUX), 유닉스(UNIX), OS X, 윈도(WINDOWS), 또는 VxWorks와 같은 내장형 운영 체제)는 일반적인 시스템 태스크들(예컨대, 메모리 관리, 전력 관리 등)을 제어 및 관리하기 위한 다양한 소프트웨어 컴포넌트들 및/또는 드라이버들을 포함하고, 다양한 하드웨어 및 소프트웨어 컴포넌트들 사이의 통신을 용이하게 한다. 통신 모듈(428)은 선택적으로 하나 이상의 외부 포트(424)를 통해 다른 디바이스들과의 통신을 용이하게 하고, 또한 RF 회로부(408) 및/또는 외부 포트(424)에 의해 수신되는 데이터를 처리하기 위한 다양한 소프트웨어 컴포넌트들을 포함한다. 외부 포트(424)(예컨대, USB, 파이어와이어(FIREWIRE) 등)는 다른 디바이스들에 직접적으로 또는 네트워크(예컨대, 인터넷, 무선 LAN 등)를 통해 간접적으로 커플링하도록 구성된다.
접촉/모션 모듈(430)은 선택적으로 제어 디바이스(130) 및 제어 디바이스(130)의 기타 터치 감응형 디바이스들(예컨대, 제어 디바이스(130)의 버튼 또는 기타 터치 감응형 컴포넌트들)과의 접촉을 검출한다. 접촉/모션 모듈(430)은 접촉의 검출(예컨대, 전자 디바이스(120)의 디스플레이(122)와 같은 터치 감응형 디스플레이, 또는 책상 표면과 같은 다른 표면을 이용한 스타일러스의 팁의 검출)과 관련된 다양한 동작들, 예컨대, 접촉이 발생했는지 결정하는 것(예컨대, 터치-다운 이벤트를 검출), 접촉의 세기(예컨대, 접촉의 힘 또는 압력 또는 접촉의 힘 또는 압력을 대체하는 것)를 결정하는 것, 접촉의 이동이 있는지 결정하고 (예컨대, 전자 디바이스(120)의 디스플레이(122)에 걸쳐) 이동을 추적하는 것, 및 접촉이 중지되었는지 결정하는 것(예컨대, 리프트오프 이벤트 또는 접촉의 중단을 검출)을 수행하기 위한 소프트웨어 컴포넌트들을 포함한다. 일부 구현예들에서, 접촉/모션 모듈(430)은 I/O 서브시스템(406)으로부터 접촉 데이터를 수신한다. 일련의 접촉 데이터에 의해 표현되는 접촉 지점의 이동을 결정하는 것은, 선택적으로, 접촉 지점의 속력(크기), 속도(크기 및 방향), 및/또는 가속도(크기 및/또는 방향의 변화)를 결정하는 것을 포함한다. 전술한 바와 같이, 일부 구현예들에서, 접촉의 검출과 관련된 이러한 동작들 중 하나 이상이 전자 디바이스(120) 또는 제어기(110)에 의해(접촉/모션 모듈(430)을 이용하는 스타일러스에 추가하거나 대신하여) 수행된다.
접촉/모션 모듈(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 유형의 입력에 대응할 수 있다.
앞서 식별된 모듈들 및 애플리케이션들 각각은 상술한 하나 이상의 기능들 및 본 출원에 기술되는 방법들(예컨대, 본 명세서에 기술되는 컴퓨터 구현 방법들 및 다른 정보 프로세싱 방법들)을 수행하기 위한 실행가능 명령어들의 세트에 대응한다. 이들 모듈(즉, 명령어들의 세트들)은 별개의 소프트웨어 프로그램들, 절차들 또는 모듈들로서 구현될 필요가 없으며, 따라서 이들 모듈의 다양한 서브세트들이 선택적으로 다양한 실시예들에서 조합되거나 그렇지 않으면 재배열된다. 일부 구현예들에서, 메모리(402)는 선택적으로, 앞서 식별된 모듈들 및 데이터 구조들의 서브세트를 저장한다. 또한, 메모리(402)는, 선택적으로, 상기에서 기술되지 않은 추가 모듈들 및 데이터 구조들을 저장한다.
도 5a는 일부 구현예들에 따른 예시적인 콘텐츠 전달 아키텍처의 제1 부분(500A)의 블록도이다. 관련 특징부들이 도시되어 있지만, 당업자들은 본 개시내용으로부터, 다양한 다른 특징부들이 간결함을 위해 그리고 본 명세서에 개시되는 예시적인 구현예들의 더 많은 관련 양태들을 불명료하게 하지 않기 위해 예시되지 않았다는 것을 인식할 것이다. 이를 위해, 비제한적인 예로서, 콘텐츠 전달 아키텍처는, 도 1 및 도 2에 도시된 제어기(110); 도 1 및 도 3에 도시된 전자 디바이스(120); 및/또는 이들의 적합한 조합과 같은 컴퓨팅 시스템에 포함된다.
도 5a에 도시된 바와 같이, 제어기(110), 전자 디바이스(120), 및/또는 이들의 조합의 하나 이상의 로컬 센서들(502)은 물리적 환경(105)과 연관된 로컬 센서 데이터(503)를 획득한다. 예를 들어, 로컬 센서 데이터(503)는 물리적 환경(105)의 이미지들 또는 그의 스트림, 물리적 환경(105)에 대한 SLAM(simultaneous location and mapping) 정보 및 물리적 환경(105)에 대한 전자 디바이스(120) 또는 사용자(149)의 위치, 물리적 환경(105)에 대한 주변 조명 정보, 물리적 환경(105)에 대한 주변 오디오 정보, 물리적 환경(105)에 대한 음향 정보, 물리적 환경(105)에 대한 차원 정보, 물리적 환경(105) 내의 객체들에 대한 의미론적 라벨(semantic label)들, 및/또는 기타 등등을 포함한다. 일부 구현예들에서, 로컬 센서 데이터(503)는 프로세싱되지 않은 또는 사후 프로세싱된 정보를 포함한다.
유사하게, 도 5a에 도시된 바와 같이, 물리적 환경(105), 제어 디바이스(130), 및/또는 기타 등등 내의 선택적인 원격 입력 디바이스들과 연관된 하나 이상의 원격 센서들(504)은 물리적 환경(105)과 연관된 원격 센서 데이터(505)를 획득한다. 예를 들어, 원격 센서 데이터(505)는 물리적 환경(105)의 이미지들 또는 그의 스트림, 물리적 환경(105)에 대한 SLAM 정보 및 물리적 환경(105)에 대한 전자 디바이스(120) 또는 사용자(149)의 위치, 물리적 환경(105)에 대한 주변 조명 정보, 물리적 환경(105)에 대한 주변 오디오 정보, 물리적 환경(105)에 대한 음향 정보, 물리적 환경(105)에 대한 차원 정보, 물리적 환경(105) 내의 객체들에 대한 의미론적 라벨들, 및/또는 기타 등등을 포함한다. 일부 구현예들에서, 원격 센서 데이터(505)는 프로세싱되지 않은 또는 사후 프로세싱된 정보를 포함한다.
도 5a에 도시된 바와 같이, 제어 디바이스(130)를 위치파악하고 추적하기 위해 제어기(110), 전자 디바이스(120), 또는 제어 디바이스(130) 중 적어도 하나에 의해 추적 데이터(506)가 획득된다. 일례로서, 추적 데이터(506)는 제어 디바이스(130)를 포함하는 전자 디바이스(120)의 외부-대면 이미지 센서들에 의해 캡처된 물리적 환경(105)의 이미지들 또는 그의 스트림을 포함한다. 다른 예로서, 추적 데이터(506)는 제어 디바이스(130)의 통합된 센서들로부터의 IMU 정보, 가속도계 정보, 자이로스코프 정보, 자력계 정보, 및/또는 기타 등등에 대응한다.
일부 구현예들에 따르면, 프라이버시 아키텍처(508)는 로컬 센서 데이터(503), 원격 센서 데이터(505), 및 추적 데이터(506)를 수집한다. 일부 구현예들에서, 프라이버시 아키텍처(508)는 사용자 정보 및/또는 식별 정보와 연관된 하나 이상의 프라이버시 필터들을 포함한다. 일부 구현예들에서, 프라이버시 아키텍처(508)는, 전자 디바이스(120)가 어떤 사용자 정보 및/또는 식별 정보가 모니터링되고 있는지 및 사용자 정보 및/또는 식별 정보가 어떻게 사용될지에 관해 사용자(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)를 업데이트한다. 일례로서, 물리적 객체는 연필, 펜 등과 같은, 컴퓨팅 시스템(예컨대, 제어기(110), 전자 디바이스(120), 및/또는 기타 등등)에 대한 통신 채널이 없는, 물리적 환경(105) 내에서 검출된 프록시 객체에 대응한다. 다른 예로서, 물리적 객체는 스타일러스, 핑거 웨어러블 디바이스, 핸드헬드 디바이스 등과 같은, 컴퓨팅 시스템(예컨대, 제어기(110), 전자 디바이스(120), 및/또는 기타 등등)에 대한 유선 또는 무선 통신 채널을 갖는 전자 디바이스(예컨대, 제어 디바이스(130))에 대응한다.
도 5b는 일부 구현예들에 따른, 객체 추적 벡터(511)에 대한 예시적인 데이터 구조를 도시한다. 도 5b에 도시된 바와 같이, 객체 추적 벡터(511)는, 타임스탬프(571)(예컨대, 객체 추적 벡터(511)가 업데이트된 가장 최근 시간), 물리적 객체에 대한 하나 이상의 병진 값들(572)(예컨대, 물리적 환경(105), 세계 전반, 및/또는 기타 등등에 대한 x, y 및 z 값들), 물리적 객체에 대한 하나 이상의 회전 값들(574)(예컨대, 롤, 피치 및 요 값들), 물리적 객체와 연관된 하나 이상의 입력(압력) 값들(576)(예컨대, 제어 디바이스(130)의 단부와 표면 사이의 접촉과 연관된 제1 입력(압력) 값, 사용자(149)에 의해 파지되는 동안 제어 디바이스(130)의 몸체에 가해지는 압력의 양과 연관된 제2 입력(압력) 값, 및/또는 기타 등등), 선택적인 터치 입력 정보(578)(예컨대, 제어 디바이스(130)의 터치 감응형 표면(175)에 대한 사용자 터치 입력들과 연관된 정보), 및/또는 기타 정보(579)를 포함하는 N-투플(N-tuple) 특성화 벡터 또는 특성화 텐서에 대응할 수 있다. 당업자는 도 5b의 객체 추적 벡터(511)에 대한 데이터 구조가, 다양한 다른 구현예들에서 상이한 정보 부분들을 포함할 수 있고 다양한 다른 구현예들에서 무수히 많은 방식들로 구조화될 수 있는 예일 뿐이라는 것을 인식할 것이다.
일부 구현예들에 따르면, 눈 추적 엔진(512)은 로컬 센서 데이터(503) 및 원격 센서 데이터(505)를 그가 프라이버시 아키텍처(508)를 거친 후에 획득한다. 일부 구현예들에서, 눈 추적 엔진(512)은 입력 데이터에 기초하여 사용자(149)의 시선 방향과 연관된 눈 추적 벡터(513)를 결정/생성하고, 시간 경과에 따라 눈 추적 벡터(513)를 업데이트한다.
도 5b는 일부 구현예들에 따른, 눈 추적 벡터(513)에 대한 예시적인 데이터 구조를 도시한다. 도 5b에 도시된 바와 같이, 눈 추적 벡터(513)는, 타임스탬프(581)(예컨대, 눈 추적 벡터(513)가 업데이트된 가장 최근 시간), 사용자(149)의 현재 시선 방향에 대한 하나 이상의 각도 값들(582)(예컨대, 롤, 피치 및 요 값들), 사용자(149)의 현재 시선 방향에 대한 하나 이상의 병진 값들(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)에 대한 데이터 구조가, 다양한 다른 구현예들에서 상이한 정보 부분들을 포함할 수 있고 다양한 다른 구현예들에서 무수히 많은 방식들로 구조화될 수 있는 예일 뿐이라는 것을 인식할 것이다.
일부 구현예들에 따르면, 데이터 집계기(521)는 객체 추적 벡터(511), 눈 추적 벡터(513), 및 포즈 특성화 벡터(515)(때때로 본 명세서에서 집합적으로 "입력 벡터(519)"로 지칭됨)를 획득한다. 일부 구현예들에서, 데이터 집계기(521)는 객체 추적 벡터(511), 눈 추적 벡터(513), 및 포즈 특성화 벡터(515)를 집계하고, 후속 다운스트림 사용을 위해 그에 기초하여 특성화 벡터(531)를 결정/생성한다.
일부 구현예들에서, 콘텐츠 선택 엔진(522)은 특성화 벡터(531)(또는 그의 일부분)에 기초하여 XR 환경(128) 내에서 선택된 콘텐츠 부분(523)을 결정한다. 예를 들어, 콘텐츠 선택 엔진(522)은 현재 콘텍스트 정보, 사용자(149)의 시선 방향, 사용자(149)와 연관된 신체 포즈 정보, 사용자(149)와 연관된 헤드 포즈 정보, 사용자(149)와 연관된 손/손발 추적 정보, 물리적 객체와 연관된 위치 정보, 물리적 객체와 연관된 회전 정보, 및/또는 기타 등등에 기초하여 선택된 콘텐츠 부분(523)을 결정한다. 일례로서, 콘텐츠 선택 엔진(522)은 물리적 객체가 사용자에 의해 보유되고 있는 방식과 연관된 그립 포즈가 제1 그립(예컨대, 제1 그립 = 포인팅/완드 유사 그립)에 대응한다는 결정에 따라 물리적 객체의 미리결정된 부분(예컨대, 외향 대면 단부)(예컨대, 그로부터 투사되는 광선)이 가리키고 있는 방향에 기초하여 콘텐츠의 제1 부분에 대해 선택 동작을 수행한다. 다른 예로서, 콘텐츠 선택 엔진(522)은 물리적 객체가 사용자에 의해 보유되고 있는 방식과 연관된 그립 포즈가 제1 그립에 대응하지 않는다는 결정에 따라 사용자의 시선 방향에 기초하여 콘텐츠의 제2 부분에 대해 선택 동작을 수행한다.
일부 구현예들에서, 그립 포즈 평가기(524)는 특성화 벡터(531)(또는 그의 일부분)에 기초하여 물리적 객체가 사용자(149)에 의해 보유되고 있는 현재 방식과 연관된 그립 포즈(525)를 결정한다. 예를 들어, 그립 포즈 평가기(524)는 현재 콘텍스트 정보, 사용자(149)와 연관된 신체 포즈 정보, 사용자(149)와 연관된 헤드 포즈 정보, 사용자(149)와 연관된 손/손발 추적 정보, 물리적 객체와 연관된 위치 정보, 물리적 객체와 연관된 회전 정보, 및/또는 기타 등등에 기초하여 그립 포즈(525)를 결정한다. 일부 구현예들에서, 그립 포즈(525)는 사용자(149)가 물리적 객체를 파지하는 방식을 나타낸다. 예를 들어, 그립 포즈(525)는 리모컨형 그립, 완드형 그립, 필기 그립, 역 필기 그립, 핸들 그립, 섬 톱 그립, 레벨형 그립, 게임패드형 그립, 플루트형 그립, 파이어 스타터형 그립 등 중 하나에 대응한다.
일부 구현예들에서, 출력 양식 선택기(526)는 물리적 객체가 XR 환경(128)과 상호작용하거나 XR 환경(128)을 조작하는 방식과 연관된 현재 출력 양식(527)을 선택한다. 예를 들어, 제1 출력 양식은 XR 환경(128) 내에서 객체(들)/콘텐츠를 선택/조작하는 것에 대응하고, 제2 출력 양식은 XR 환경(128) 내에서 스케치, 드로잉, 필기 등을 하는 것에 대응한다. 일례로서, 출력 양식 선택기(526)는, 물리적 객체의 이동이 물리적 객체로 하여금 제1 복수의 그래픽 요소들 중 제1 그래픽 요소에 대한 거리 임계치를 위반하게 한다는 결정에 따라, 연관된 제1 출력 양식을 물리적 객체에 대한 현재 출력 양식(527)으로서 선택한다. 다른 예로서, 출력 양식 선택기(526)는, 물리적 객체의 이동이 물리적 객체로 하여금 제1 복수의 그래픽 요소들 중 제2 그래픽 요소에 대한 거리 임계치를 위반하게 한다는 결정에 따라, 제2 출력 양식을 물리적 객체에 대한 현재 출력 양식(527)으로서 선택한다.
일부 구현예들에서, 파라미터 조정기(528)는 물리적 객체와 연관된 제1 입력(압력) 값 또는 제2 입력(압력) 값에 기초하여 XR 환경(128)에 대한 마킹 입력과 연관된 파라미터 값(529)(예컨대, 마크들의 두께, 밝기, 색상, 텍스처 등)을 조정한다. 일례로서, 파라미터 조정기(528)는 마킹 입력이 물리적 표면(예컨대, 테이블 상판, 다른 평면형 표면 등)으로 지향된다는 결정에 따라 물리적 객체가 물리적 표면에 대해 얼마나 세게 눌리고 있는지(예컨대, 제1 입력(압력) 값)에 기초하여 XR 환경(128)에 대한 검출된 마킹 입력과 연관된 파라미터 값(529)을 조정한다. 다른 예로서, 파라미터 조정기(528)는 마킹 입력이 물리적 표면으로 지향되지 않는다는 결정에 따라 물리적 객체가 사용자(149)에 의해 얼마나 세게 파지되고 있는지(예컨대, 제2 입력(압력) 값)에 기초하여 XR 환경(128)에 대한 검출된 마킹 입력과 연관된 파라미터 값(529)을 조정한다. 이 예에서, 마킹 입력은 물리적 객체 또는 물리적 객체의 팁과 같은 물리적 객체의 미리정의된 부분이 물리적 환경(105)에서 어떠한 물리적 표면과도 접촉하지 않는 동안 검출된다.
도 5c는 일부 구현예들에 따른 예시적인 콘텐츠 전달 아키텍처의 제2 부분(500B)의 블록도이다. 관련 특징부들이 도시되어 있지만, 당업자들은 본 개시내용으로부터, 다양한 다른 특징부들이 간결함을 위해 그리고 본 명세서에 개시되는 예시적인 구현예들의 더 많은 관련 양태들을 불명료하게 하지 않기 위해 예시되지 않았다는 것을 인식할 것이다. 이를 위해, 비제한적인 예로서, 콘텐츠 전달 아키텍처는, 도 1 및 도 2에 도시된 제어기(110); 도 1 및 도 3에 도시된 전자 디바이스(120); 및/또는 이들의 적합한 조합과 같은 컴퓨팅 시스템에 포함된다. 도 5c는 도 5a와 유사하고 그로부터 적응된다. 따라서, 유사한 도면 부호들이 도 5a 및 도 5c에서 사용된다. 따라서, 간결성을 위해서 도 5a와 도 5c 사이의 차이점들만이 아래에서 설명될 것이다.
일부 구현예들에 따르면, 상호작용 핸들러(540)는 제시를 위해 A/V 콘텐츠, 하나 이상의 VA들, 및/또는 XR 콘텐츠를 선택하는 것과 연관되는, 사용자(149)에 의해 제공되는 하나 이상의 사용자 입력들(541)을 획득(예컨대, 수신, 검색, 또는 검출)한다. 예를 들어, 하나 이상의 사용자 입력들(541)은 손/손발 추적을 통해 검출된 XR 환경(128) 내의 XR 콘텐츠 또는 VA(들)를 수정 및/또는 조작하는 제스처 입력, 손/손발 추적을 통해 검출된 UI 메뉴로부터 또는 XR 환경(128) 내의 XR 콘텐츠를 선택하는 제스처 입력, 눈 추적을 통해 검출된 UI 메뉴로부터 또는 XR 환경(128) 내의 XR 콘텐츠를 선택하는 눈 시선 입력, 마이크로폰을 통해 검출된 UI 메뉴로부터 또는 XR 환경(128) 내의 XR 콘텐츠를 선택하는 음성 커맨드, 및/또는 기타 등등에 대응한다. 일부 구현예들에서, 콘텐츠 선택기(542)는 하나 이상의 사용자 입력들(541)에 기초하여 콘텐츠 라이브러리(545)로부터 XR 콘텐츠(547)를 선택한다.
다양한 구현예들에서, 콘텐츠 관리자(530)는, 선택된 콘텐츠 부분(523), 그립 포즈(525), 출력 양식(527), 파라미터 값(529), 특성화 벡터(531), 및/또는 기타 등등에 기초하여, VA들, XR 콘텐츠, XR 콘텐츠와 연관된 하나 이상의 UI 요소들, 및/또는 기타 등등 중 하나 이상을 포함하는, XR 환경(128)에 대한 레이아웃, 셋업, 구조, 및/또는 기타 등등을 관리 및 업데이트한다. 이를 위해, 콘텐츠 관리자(530)는 버퍼(534), 콘텐츠 업데이터(536), 및 피드백 엔진(538)을 포함한다.
일부 구현예들에서, 버퍼(534)는, 하나 이상의 과거 인스턴스들 및/또는 프레임들에 대한 XR 콘텐츠, 렌더링된 이미지 프레임, 및/또는 기타 등등을 포함한다. 일부 구현예들에서, 콘텐츠 업데이터(536)는 선택된 콘텐츠 부분(523), 그립 포즈(525), 출력 양식(527), 파라미터 값(529), 특성화 벡터(531), XR 콘텐츠 또는 VA(들)를 수정 및/또는 조작하는 것과 연관된 사용자 입력들(541), 물리적 환경(105) 내에서의 객체들의 병진 또는 회전 이동, 전자 디바이스(120)(또는 사용자(149))의 병진 또는 회전 이동, 및/또는 기타 등등에 기초하여 시간 경과에 따라 XR 환경(128)을 수정한다. 일부 구현예들에서, 피드백 엔진(538)은 XR 환경(128)과 연관된 감각 피드백(예컨대, 텍스트 또는 조명 변화들과 같은 시각적 피드백, 오디오 피드백, 햅틱 피드백 등)을 생성한다.
일부 구현예들에 따르면, 도 5c의 렌더링 엔진(550)을 참조하면, 포즈 결정기(552)는 포즈 특성화 벡터(515)에 적어도 부분적으로 기초하여 XR 환경(128) 및/또는 물리적 환경(105)에 대한 전자 디바이스(120) 및/또는 사용자(149)의 현재 카메라 포즈를 결정한다. 일부 구현예들에서, 렌더러(554)는 VA(들), XR 콘텐츠(547), XR 콘텐츠와 연관된 하나 이상의 UI 요소들, 및/또는 기타 등등을 그에 대한 현재 카메라 포즈에 따라 렌더링한다.
일부 구현예들에 따르면, 선택적인 이미지 프로세싱 아키텍처(562)는 사용자(149) 및/또는 전자 디바이스(120)의 현재 카메라 포즈로부터 물리적 환경(105)의 하나 이상의 이미지들을 포함하는 이미지 캡처 디바이스(370)로부터의 이미지 스트림을 획득한다. 일부 구현예들에서, 이미지 프로세싱 아키텍처(562)는, 또한, 워핑, 색상 보정, 감마 보정, 선명화, 잡음 감소, 화이트 밸런스, 및/또는 기타 등등과 같은 하나 이상의 이미지 프로세싱 동작들을 이미지 스트림에 대해 수행한다. 일부 구현예들에서, 선택적인 합성기(564)는 렌더링된 XR 콘텐츠를 이미지 프로세싱 아키텍처(562)로부터의 물리적 환경(105)의 프로세싱된 이미지 스트림과 합성하여, XR 환경(128)의 렌더링된 이미지 프레임들을 생성한다. 다양한 구현예들에서, 제시기(570)는 하나 이상의 디스플레이들(312)을 통해 XR 환경(128)의 렌더링된 이미지 프레임들을 사용자(149)에게 제시한다. 당업자는 선택적인 이미지 프로세싱 아키텍처(562) 및 선택적인 합성기(564)가 완전 가상 환경들(또는 광학 시스루 시나리오들)에 대해서는 적용가능하지 않을 수 있다는 것을 인식할 것이다.
도 6a 내지 도 6p는 일부 구현예들에 따른, 콘텐츠 전달 시나리오에 대한 인스턴스들(610 내지 6160)의 시퀀스를 예시한다. 소정의 특정 특징부들이 예시되어 있지만, 당업자들은 본 개시내용으로부터 다양한 다른 특징부들이 간결함을 위해, 그리고 본 명세서에 개시된 구현예들의 더 적절한 양태들을 불명확하게 하지 않기 위해 예시되지 않았음을 인식할 것이다. 이를 위해, 비제한적인 예로서, 인스턴스들(610 내지 6160)의 시퀀스는, 도 1 및 도 2에 도시된 제어기(110); 도 1 및 도 3에 도시된 전자 디바이스(120); 및/또는 이들의 적합한 조합과 같은 컴퓨팅 시스템에 의해 렌더링되고 제시된다.
도 6a 내지 도 6p에 도시된 바와 같이, 콘텐츠 전달 시나리오는 (예컨대, 사용자(149)와 연관된) 전자 디바이스(120)의 디스플레이(122) 상에 디스플레이되는 XR 환경(128) 및 물리적 환경(105)을 포함한다. 전자 디바이스(120)는 사용자(149)가 전자 디바이스(120)의 외부-대면 이미지 센서의 FOV(111) 내에 현재 있는 도어(115)를 포함하는 물리적 환경(105) 내에 물리적으로 존재하는 동안 사용자(149)에게 XR 환경(128)을 제시한다. 이와 같이, 일부 구현예들에서, 사용자(149)는 도 1의 동작 환경(100)과 유사하게 그/그녀의 왼손(150)으로 전자 디바이스(120)를 보유한다.
다시 말하면, 일부 구현예들에서, 전자 디바이스(120)는 XR 콘텐츠를 제시하도록 그리고 디스플레이(122) 상에서의 물리적 환경(105)의 적어도 일부분(예컨대, 도어(115) 또는 그의 표현)의 광학 시스루 또는 비디오 패스-스루를 가능하게 하도록 구성된다. 예를 들어, 전자 디바이스(120)는 모바일 폰, 태블릿, 랩톱, 근안 시스템, 웨어러블 컴퓨팅 디바이스 등에 대응한다.
도 6a에 도시된 바와 같이, 콘텐츠 전달 시나리오의 인스턴스(610)(예컨대, 시간 T1과 연관됨) 동안, 전자 디바이스(120)는 도어(115)의 표현(116) 및 가상 에이전트(VA)(606)를 포함하는 XR 환경(128)을 제시한다. 도 6a에 도시된 바와 같이, 제어 디바이스(130)는 사용자(149)에 의해 현재 보유되지도 않고, 그의 터치 감응형 표면(175)에 대한 임의의 입력들을 검출하지도 않는다.
도 6b 및 도 6c는 제어 디바이스(130)에 대한 터치 입력을 검출하는 것에 응답하여 제1 복수의 출력 양식들과 연관된 제1 복수의 그래픽 요소들이 XR 환경(128) 내에 디스플레이되는 시퀀스를 예시한다. 도 6b에 도시된 바와 같이, 콘텐츠 전달 시나리오의 인스턴스(620)(예컨대, 시간 T2와 연관됨) 동안, 제어 디바이스(130)는 터치 감응형 표면(175)에 대한 스와이프 입력(622)을 검출한다. 일부 구현예들에서, 제어 디바이스(130)는 스와이프 입력(622)의 표시를 제어기(110) 및/또는 전자 디바이스(120)에 제공한다. 일부 구현예들에서, 제어 디바이스(130)는 전자 디바이스(120) 및/또는 제어기(130)와 통신한다.
도 6c에 도시된 바와 같이, 콘텐츠 전달 시나리오의 인스턴스(630)(예컨대, 시간 T3와 연관됨) 동안, 전자 디바이스(120)는 도 6b에서 제어 디바이스(130)의 터치 감응형 표면(175)에 대한 스와이프 입력(622)의 표시를 획득하는 것 또는 도 6b에서 제어 디바이스(130)의 터치 감응형 표면(175)에 대한 스와이프 입력(622)을 검출하는 것에 응답하여 그래픽 요소들(632A, 632B, 632C, 632D)(때때로 본 명세서에서 집합적으로 제1 복수의 그래픽 요소들(632)로 지칭됨)을 디스플레이한다.
게다가, 도 6c에 도시된 바와 같이, 전자 디바이스(120)는 사용자(149)의 오른손(152)의 표현(153)이 제어 디바이스(130)의 표현(131)을 파지한 것을 디스플레이한다. 예를 들어, 사용자(149)의 오른손(152)은 포인팅 그립 포즈로 제어 디바이스(130)를 현재 파지하고 있다. 일부 구현예들에서, 제1 복수의 그래픽 요소들(632)은 현재 그립 포즈의 함수이다. 예를 들어, 그래픽 요소(632A)는 XR 환경(128) 내에 연필 유사 마크들을 생성하는 것과 연관된 출력 양식에 대응하고, 그래픽 요소(632B)는 XR 환경(128) 내에 펜 유사 마크들을 생성하는 것과 연관된 출력 양식에 대응하며, 그래픽 요소(632C)는 XR 환경(128) 내에 마커 유사 마크들을 생성하는 것과 연관된 출력 양식에 대응하고, 그래픽 요소(632D)는 XR 환경(128) 내에 에어브러시 유사 마크들을 생성하는 것과 연관된 출력 양식에 대응한다.
도 6c에서, 제어 디바이스(130)의 표현(131)의 공간적 위치는 그래픽 요소(632D)와 연관된 활성화 영역(634)의 외측에 있다. 일부 구현예들에서, 활성화 영역(634)은 그래픽 요소(632D)를 둘러싸는 X cm 반경과 같은 미리결정된 거리 임계치에 대응한다. 일부 구현예들에서, 활성화 영역(634)은 그래픽 요소(632D)를 둘러싸는 결정론적(deterministic) 거리 임계치에 대응한다.
도 6d 및 도 6e는 제어 디바이스(130)의 이동이 제어 디바이스(130)(또는 그의 표현)로 하여금 그래픽 요소(632D)에 대한 활성화 영역(634)(예컨대, 거리 임계치)을 위반하게 한다는 결정에 따라 제어 디바이스(130)에 대해 제1 출력 양식(예컨대, 에어브러시 마킹)이 선택되는 시퀀스를 예시한다. 도 6d에 도시된 바와 같이, 콘텐츠 전달 시나리오의 인스턴스(640)(예컨대, 시간 T4와 연관됨) 동안, 전자 디바이스(120)는 제어 디바이스(130)의 표현(131)의 공간적 위치가 그래픽 요소(632D)에 대한 활성화 영역(634)(예컨대, 거리 임계치)을 위반하게(또는 그에 진입하게) 하는 제어 디바이스(130)의 이동을 검출한다. 제어 디바이스(130)의 표현(131)의 공간적 위치가 그래픽 요소(632D)에 대한 활성화 영역(634)을 위반하게 하는 제어 디바이스(130)의 이동을 검출하는 것에 응답하여, 전자 디바이스(120)는 그래픽 요소(632D) 주위에 경계 또는 프레임(642)을 디스플레이함으로써 그의 선택을 나타내도록 그래픽 요소(632D)의 외관을 변경한다. 당업자는 그래픽 요소(632D)의 외관이, 예를 들어 그의 밝기, 색상, 텍스처, 형상, 크기, 글로우, 그림자, 및/또는 기타 등등을 변경함으로써 그의 선택을 나타내도록 다른 방식들로 변경될 수 있다는 것을 인식할 것이다.
도 6e에 도시된 바와 같이, 콘텐츠 전달 시나리오의 인스턴스(650)(예컨대, 시간 T5와 연관됨) 동안, 전자 디바이스(120)는 도 6d에서 제어 디바이스(130)의 표현(131)의 공간적 위치가 그래픽 요소(632D)에 대한 활성화 영역(634)을 위반하게 하는 제어 디바이스(130)의 이동을 검출하는 것에 응답하여 그래픽 요소들(632A, 632B, 632C)을 디스플레이하는 것을 중지한다.
게다가, 도 6e에서, 전자 디바이스(120)는 도 6d에서 제어 디바이스(130)의 표현(131)의 공간적 위치가 그래픽 요소(632D)에 대한 활성화 영역(634)을 위반하게 하는 제어 디바이스(130)의 이동을 검출하는 것에 응답하여 XR 환경(128) 내에 제어 디바이스(130)의 표현(131)의 팁 상에 오버레이된 그래픽 요소들(632D)을 디스플레이한다. 일부 구현예들에서, 그래픽 요소(632D)의 선택에 응답하여, 그래픽 요소(632D)는 도 6e 및 도 6f에 도시된 바와 같이 제어 디바이스(130)의 표현(131)의 팁에 앵커링된 상태로 유지된다.
도 6e 및 도 6f는 마킹 입력의 검출이 현재 선택된 제1 출력 양식(예컨대, 에어브러시 마크들)에 따라 XR 환경(128) 내에 하나 이상의 마크들이 디스플레이되게 하는 시퀀스를 예시한다. 도 6e에 도시된 바와 같이, 콘텐츠 전달 시나리오의 인스턴스(650)(예컨대, 시간 T5와 연관됨) 동안, 전자 디바이스(120)는 손/손발 추적에 의해 제어 디바이스(130)를 이용한 마킹 입력(654)을 검출한다. 도 6f에 도시된 바와 같이, 콘텐츠 전달 시나리오의 인스턴스(660)(예컨대, 시간 T6와 연관됨) 동안, 전자 디바이스(120)는 도 6e에서 마킹 입력(654)을 검출하는 것에 응답하여 XR 환경(128) 내에 에어브러시 유사 마크(662)를 디스플레이한다. 예를 들어, 에어브러시 유사 마크(662)의 형상, 깊이, 길이, 각도 등은 마킹 입력(654)의 공간 파라미터들(예컨대, 마킹 입력과 연관된 위치 값들, 회전 값들, 변위, 공간 가속도, 공간 속도, 각가속도, 각속도 등)에 대응한다.
도 6g 내지 도 6i는 제어 디바이스(130)의 이동이 제어 디바이스(130)(또는 그의 표현)로 하여금 그래픽 요소(632B)에 대한 활성화 영역(634)(예컨대, 거리 임계치)을 위반하게 한다는 결정에 따라 제어 디바이스(130)에 대해 제2 출력 양식(예컨대, 펜 마킹)이 선택되는 시퀀스를 예시한다. 도 6g에 도시된 바와 같이, 콘텐츠 전달 시나리오의 인스턴스(670)(예컨대, 시간 T7과 연관됨) 동안, 전자 디바이스(120)는 도 6b에서 제어 디바이스(130)의 터치 감응형 표면(175)에 대한 스와이프 입력(622)의 표시를 획득하는 것 또는 도 6b에서 제어 디바이스(130)의 터치 감응형 표면(175)에 대한 스와이프 입력(622)을 검출하는 것에 응답하여 그래픽 요소들(632A, 632B, 632C, 632D)(때때로 본 명세서에서 집합적으로 제1 복수의 그래픽 요소들(632)로 지칭됨)을 디스플레이한다.
도 6h에 도시된 바와 같이, 콘텐츠 전달 시나리오의 인스턴스(680)(예컨대, 시간 T8과 연관됨) 동안, 전자 디바이스(120)는 제어 디바이스(130)의 표현(131)의 공간적 위치가 그래픽 요소(632B)에 대한 활성화 영역(634)(예컨대, 거리 임계치)을 위반하게(또는 그에 진입하게) 하는 제어 디바이스(130)의 이동을 검출한다. 제어 디바이스(130)의 표현(131)의 공간적 위치가 그래픽 요소(632D)에 대한 활성화 영역(634)을 위반하게 하는 제어 디바이스(130)의 이동을 검출하는 것에 응답하여, 전자 디바이스(120)는 그래픽 요소(632B) 주위에 경계 또는 프레임(642)을 디스플레이함으로써 그의 선택을 나타내도록 그래픽 요소(632B)의 외관을 변경한다. 당업자는 그래픽 요소(632B)의 외관이, 예를 들어 그의 밝기, 색상, 텍스처, 형상, 크기, 글로우, 그림자, 및/또는 기타 등등을 변경함으로써 그의 선택을 나타내도록 다른 방식들로 변경될 수 있다는 것을 인식할 것이다.
도 6i에 도시된 바와 같이, 콘텐츠 전달 시나리오의 인스턴스(690)(예컨대, 시간 T9과 연관됨) 동안, 전자 디바이스(120)는 도 6h에서 제어 디바이스(130)의 표현(131)의 공간적 위치가 그래픽 요소(632B)에 대한 활성화 영역(634)을 위반하게 하는 제어 디바이스(130)의 이동을 검출하는 것에 응답하여 그래픽 요소들(632A, 632C, 632D)을 디스플레이하는 것을 중지한다. 일부 구현예들에서, 그래픽 요소(632B)의 선택에 응답하여, 그래픽 요소(632B)는 도 6i 내지 도 6n에 도시된 바와 같이 제어 디바이스(130)의 표현(131)의 팁에 앵커링된 상태로 유지된다.
도 6j 및 도 6k는 제1 마킹 입력의 검출이 현재 선택된 제2 출력 양식(예컨대, 펜 마킹) 및 입력(압력) 값의 현재 측정치에 따라 XR 환경(128) 내에 하나 이상의 마크들이 디스플레이되게 하는 시퀀스를 예시한다. 도 6j에 도시된 바와 같이, 콘텐츠 전달 시나리오의 인스턴스(6100)(예컨대, 시간 T10과 연관됨) 동안, 전자 디바이스(120)는 손/손발 추적에 의해 제어 디바이스(130)를 이용한 마킹 입력(6104)을 검출한다. 마킹 입력(6104)이 검출되는 동안, 전자 디바이스(120)는, 또한, 입력(압력) 값을 검출하거나, 제어 디바이스(130)가 사용자(149)의 오른손(152)에 의해 얼마나 세게 파지되고 있는지와 연관된 입력(압력) 값의 표시를 획득한다. 일례로서, 입력(압력) 값은 제어 디바이스(130)의 몸체에 통합된 하나 이상의 압력 센서들에 의해 검출된다. 다른 예로서, 입력(압력) 값은 컴퓨터 비전 기법으로 전자 디바이스(120)의 외부-대면 이미지 센서에 의해 캡처된 하나 이상의 이미지들 내에서 손가락/피부 변형 등을 분석함으로써 검출된다. 도 6j에 도시된 바와 같이, 입력(압력) 값 표시자(6102)는 제어 디바이스(130)가 사용자(149)에 의해 얼마나 세게 파지되고 있는지와 연관된 입력(압력) 값의 현재 측정치(6103)를 나타낸다. 일부 구현예들에 따르면, 입력(압력) 값 표시자(6102)는, 전자 디바이스(120)에 의해 디스플레이될 수 있거나 디스플레이되지 않을 수 있는 판독기를 안내하기 위한 예시이다.
도 6k에 도시된 바와 같이, 콘텐츠 전달 시나리오의 인스턴스(6110)(예컨대, 시간 T11과 연관됨) 동안, 전자 디바이스(120)는 도 6j에서 마킹 입력(6104)을 검출하는 것에 응답하여 XR 환경(128) 내에 펜 유사 마크(6112)를 디스플레이한다. 예를 들어, 펜 유사 마크(6112)의 형상, 깊이, 길이, 각도 등은 마킹 입력(6104)의 공간 파라미터들에 대응한다. 게다가, 도 6k에서, 펜 유사 마크(6112)는 도 6j의 입력(압력) 값의 현재 측정치(6103)에 대응하는 제1 두께 값과 연관된다.
도 6l 및 도 6m은 제2 마킹 입력의 검출이 현재 선택된 제2 출력 양식(예컨대, 펜 마킹) 및 입력(압력) 값의 현재 측정치에 따라 XR 환경(128) 내에 하나 이상의 마크들이 디스플레이되게 하는 시퀀스를 예시한다. 도 6l에 도시된 바와 같이, 콘텐츠 전달 시나리오의 인스턴스(6120)(예컨대, 시간 T12와 연관됨) 동안, 전자 디바이스(120)는 손/손발 추적에 의해 제어 디바이스(130)를 이용한 마킹 입력(6122)을 검출한다. 마킹 입력(6122)이 검출되는 동안, 전자 디바이스(120)는, 또한, 입력(압력) 값을 검출하거나, 제어 디바이스(130)가 사용자(149)의 오른손(152)에 의해 얼마나 세게 파지되고 있는지와 연관된 입력(압력) 값의 표시를 획득한다. 도 6l에 도시된 바와 같이, 입력(압력) 값 표시자(6102)는 제어 디바이스(130)가 사용자(149)에 의해 얼마나 세게 파지되고 있는지와 연관된 입력(압력) 값의 현재 측정치(6123)를 나타낸다. 도 6l의 입력(압력) 값의 현재 측정치(6123)는 도 6j의 입력(압력) 값의 측정치(6103)보다 크다.
도 6m에 도시된 바와 같이, 콘텐츠 전달 시나리오의 인스턴스(6130)(예컨대, 시간 T13과 연관됨) 동안, 전자 디바이스(120)는 도 6l에서 마킹 입력(6122)을 검출하는 것에 응답하여 XR 환경(128) 내에 펜 유사 마크(6132)를 디스플레이한다. 예를 들어, 펜 유사 마크(6132)의 형상, 깊이, 길이, 각도 등은 마킹 입력(6122)의 공간 파라미터들에 대응한다. 게다가, 도 6m에서, 펜 유사 마크(6132)는 도 6l의 입력(압력) 값의 현재 측정치(6123)에 대응하는 제2 두께 값과 연관된다. 도 6m의 펜 유사 마크(6132)와 연관된 제2 두께 값은 도 6k의 펜 유사 마크(6112)와 연관된 제1 두께 값보다 크다.
도 6n 및 도 6o는 제어 디바이스(130)에 대한 터치 입력을 검출하는 것에 응답하여 제2 복수의 출력 양식들과 연관된 제2 복수의 그래픽 요소들이 XR 환경(128) 내에 디스플레이되는 시퀀스를 예시한다. 도 6n에 도시된 바와 같이, 콘텐츠 전달 시나리오의 인스턴스(6140)(예컨대, 시간 T14과 연관됨) 동안, 제어 디바이스(130)는 터치 감응형 표면(175)에 대한 스와이프 입력(6142)을 검출한다. 일부 구현예들에서, 제어 디바이스(130)는 스와이프 입력(6142)의 표시를 제어기(110) 및/또는 전자 디바이스(120)에 제공한다.
도 6o에 도시된 바와 같이, 콘텐츠 전달 시나리오의 인스턴스(6150)(예컨대, 시간 T15와 연관됨) 동안, 전자 디바이스(120)는 도 6n에서 제어 디바이스(130)의 터치 감응형 표면(175)에 대한 스와이프 입력(6142)의 표시를 획득하는 것 또는 도 6n에서 제어 디바이스(130)의 터치 감응형 표면(175)에 대한 스와이프 입력(6142)을 검출하는 것에 응답하여 그래픽 요소들(6152A, 6152B, 6152C, 6152D)(때때로 본 명세서에서 집합적으로 제2 복수의 그래픽 요소들(6152)로 지칭됨)을 디스플레이한다.
게다가, 도 6o에 도시된 바와 같이, 전자 디바이스(120)는 사용자(149)의 오른손(152)의 표현(153)이 제어 디바이스(130)의 표현(131)을 파지한 것을 디스플레이한다. 예를 들어, 사용자(149)의 오른손(152)은, 제1 단부(176)가 아래쪽을 가리키고 제2 단부(177)가 위쪽을 가리키는 필기 그립 포즈로 제어 디바이스(130)를 현재 파지하고 있다. 일부 구현예들에서, 제2 복수의 그래픽 요소들(6152)은 현재 그립 포즈(예컨대, 필기 그립 포즈)의 함수이다. 예를 들어, 그래픽 요소(6152A)는 XR 환경(128) 내에 연필 유사 마크들을 생성하는 것과 연관된 출력 양식에 대응하고, 그래픽 요소(6152B)는 XR 환경(128) 내에 펜 유사 마크들을 생성하는 것과 연관된 출력 양식에 대응하며, 그래픽 요소(6152C)는 XR 환경(128) 내에 좁은 브러시 유사 마크들을 생성하는 것과 연관된 출력 양식에 대응하고, 그래픽 요소(6152D)는 XR 환경(128) 내에 넓은 브러시 유사 마크들을 생성하는 것과 연관된 출력 양식에 대응한다.
도 6o 및 도 6p는 제어 디바이스(130)의 현재 그립 포즈의 변화를 검출하는 것에 응답하여 제3 복수의 출력 양식들과 연관된 제3 복수의 그래픽 요소들이 XR 환경(128) 내에 디스플레이되는 시퀀스를 예시한다. 도 6o에 도시된 바와 같이, 콘텐츠 전달 시나리오의 인스턴스(6150)(예컨대, 시간 T15과 연관됨) 동안, 전자 디바이스(120)는 컴퓨터 비전 기법으로, 사용자(149)의 오른손(152)이, 제1 단부(176)가 아래쪽을 가리키고 제2 단부(177)가 위쪽을 가리키는 필기 그립 포즈로 제어 디바이스(130)를 현재 파지하고 있는 제어 디바이스(130)의 현재 그립 포즈를 검출한다. 그러나, 도 6o와 도 6p 사이에서, 전자 디바이스(120)는 도 6o의 필기 그립 포즈로부터 도 6p의 역 필기 그립 포즈로의 제어 디바이스(130)의 현재 그립 포즈의 변화를 검출한다.
도 6p에 도시된 바와 같이, 콘텐츠 전달 시나리오의 인스턴스(6160)(예컨대, 시간 T16과 연관됨) 동안, 전자 디바이스(120)는 컴퓨터 비전 기법으로, 사용자(149)의 오른손(152)이, 제1 단부(176)가 위쪽을 가리키고 제2 단부(177)가 아래쪽을 가리키는 역 필기 그립 포즈로 제어 디바이스(130)를 현재 파지하고 있는 제어 디바이스(130)의 현재 그립 포즈를 검출한다. 이와 같이, 제어 디바이스(130)는 도 6o와 도 6p 사이에서 그의 단부들의 배향에 대해 180° 뒤집혔다. 도 6p에서, 전자 디바이스(120)는 도 6o의 필기 그립 포즈로부터 도 6p의 역 필기 그립 포즈로의 제어 디바이스(130)의 현재 그립 포즈의 변화를 검출하는 것에 응답하여 그래픽 요소들(6162A, 6162B, 6162C, 6162D)(때때로 본 명세서에서 집합적으로 제3 복수의 그래픽 요소들(6162)로 지칭됨)을 디스플레이한다.
일부 구현예들에서, 제3 복수의 그래픽 요소들(6162)은 현재 그립 포즈(예컨대, 역 필기 그립 포즈)의 함수이다. 예를 들어, 그래픽 요소(6162A)는 제1 반경 값에 기초하여 XR 환경(128) 내의 픽셀들을 지우거나 제거하는 것과 연관된 출력 양식에 대응하고, 그래픽 요소(6162B)는 제1 반경 값보다 큰 제2 반경 값에 기초하여 XR 환경(128) 내의 픽셀들을 지우거나 제거하는 것과 연관된 출력 양식에 대응하며, 그래픽 요소(6162C)는 XR 환경(128) 내의 마크들을 측정하는 것과 연관된 출력 양식에 대응하고, 그래픽 요소(6162D)는 XR 환경(128) 내의 마크들을 절단하는 것과 연관된 출력 양식에 대응한다.
도 7a 내지 도 7n은 일부 구현예들에 따른, 콘텐츠 전달 시나리오에 대한 인스턴스들(710 내지 7140)의 시퀀스를 예시한다. 소정의 특정 특징부들이 예시되어 있지만, 당업자들은 본 개시내용으로부터 다양한 다른 특징부들이 간결함을 위해, 그리고 본 명세서에 개시된 구현예들의 더 적절한 양태들을 불명확하게 하지 않기 위해 예시되지 않았음을 인식할 것이다. 이를 위해, 비제한적인 예로서, 인스턴스들(710 내지 7140)의 시퀀스는, 도 1 및 도 2에 도시된 제어기(110); 도 1 및 도 3에 도시된 전자 디바이스(120); 및/또는 이들의 적합한 조합과 같은 컴퓨팅 시스템에 의해 렌더링되고 제시된다.
도 7a 내지 도 7n에 도시된 바와 같이, 콘텐츠 전달 시나리오는 (예컨대, 사용자(149)와 연관된) 전자 디바이스(120)의 디스플레이(122) 상에 디스플레이되는 XR 환경(128) 및 물리적 환경(105)을 포함한다. 전자 디바이스(120)는 사용자(149)가 전자 디바이스(120)의 외부-대면 이미지 센서의 FOV(111) 내에 현재 있는 테이블(107)의 위치를 포함하는 물리적 환경(105) 내에 물리적으로 존재하는 동안 사용자(149)에게 XR 환경(128)을 제시한다. 이와 같이, 일부 구현예들에서, 사용자(149)는 그/그녀의 왼손(150) 또는 오른손(152)으로 전자 디바이스(120)를 보유한다.
다시 말하면, 일부 구현예들에서, 전자 디바이스(120)는 XR 콘텐츠를 제시하도록 그리고 디스플레이(122) 상에서의 물리적 환경(105)의 적어도 일부분(예컨대, 테이블(107))의 광학 시스루 또는 비디오 패스-스루를 가능하게 하도록 구성된다. 예를 들어, 전자 디바이스(120)는 모바일 폰, 태블릿, 랩톱, 근안 시스템, 웨어러블 컴퓨팅 디바이스 등에 대응한다.
도 7a에 도시된 바와 같이, 콘텐츠 전달 시나리오의 인스턴스(710)(예컨대, 시간 T1과 연관됨) 동안, 전자 디바이스(120)는 테이블(107)의 일부분, 가상 에이전트(VA)(606), XR 기판(718)(예컨대, 2D 또는 3D 캔버스), 및 메뉴(712)를 포함하는 XR 환경(128)을 제시한다. 도 7a에 도시된 바와 같이, 전자 디바이스(120)는, 또한, XR 환경(128) 내에 사용자(149)의 왼손(150)의 표현(151)이 제어 디바이스(130)의 표현(131)을 파지한 것을 디스플레이한다. 예를 들어, 사용자(149)의 왼손(150)은 필기 그립 포즈로 제어 디바이스(130)를 현재 파지하고 있다. 도 7a에 도시된 바와 같이, 메뉴(712)는 XR 환경 내에서 행해진 마크들의 외관을 변경하는 것과 연관된 복수의 선택가능 옵션들(714)(예컨대, 상이한 색상들, 텍스처들 등)을 포함한다. 예를 들어, 복수의 선택가능 옵션들(714) 중에서 옵션(714A)이 현재 선택되어 있다. 이 예에서, 옵션(714A)은 XR 환경(128) 내에서 행해진 마크들(예컨대, 흑색 마크들)에 대한 제1 외관에 대응한다. 도 7a에 도시된 바와 같이, 메뉴(712)는, 또한, XR 환경(128) 내에서 행해진 마크들의 두께를 조정하기 위한 슬라이더(716)를 포함한다.
도 7a 및 도 7b는 제1 마킹 입력의 검출이 입력(압력) 값의 제1 측정치에 따라 XR 환경(128) 내에 하나 이상의 마크들이 디스플레이되게 하는 시퀀스를 예시한다. 도 7a에 도시된 바와 같이, 콘텐츠 전달 시나리오의 인스턴스(710)(예컨대, 시간 T1과 연관됨) 동안, 전자 디바이스(120)는 손/손발 추적에 의해 제어 디바이스(130)를 이용한 마킹 입력(715)을 검출한다. 마킹 입력(715)이 검출되는 동안, 전자 디바이스(120)는, 또한, 입력(압력) 값을 검출하거나, 제어 디바이스(130)가 사용자(149)의 왼손(150)에 의해 얼마나 세게 파지되고 있는지와 연관된 입력(압력) 값의 표시를 획득한다. 일례로서, 입력(압력) 값은 제어 디바이스(130)의 몸체에 통합된 하나 이상의 압력 센서들에 의해 검출된다. 다른 예로서, 입력(압력) 값은 컴퓨터 비전 기법으로 전자 디바이스(120)의 외부-대면 이미지 센서에 의해 캡처된 하나 이상의 이미지들 내에서 손가락/피부 변형 등을 분석함으로써 검출된다. 도 7a에 도시된 바와 같이, 입력(압력) 값 표시자(717)는 제어 디바이스(130)가 사용자(149)에 의해 얼마나 세게 파지되고 있는지와 연관된 입력(압력) 값의 현재 측정치(719)를 나타낸다. 일부 구현예들에 따르면, 입력(압력) 값 표시자(717)는, 전자 디바이스(120)에 의해 디스플레이될 수 있거나 디스플레이되지 않을 수 있는 판독기를 안내하기 위한 예시이다.
도 7b에 도시된 바와 같이, 콘텐츠 전달 시나리오의 인스턴스(720)(예컨대, 시간 T2와 연관됨) 동안, 전자 디바이스(120)는 도 7a에서 마킹 입력(715)을 검출하는 것에 응답하여 XR 환경(128) 내의 XR 기판(718) 상에 마크(722)를 디스플레이한다. 예를 들어, 마크(722)의 형상, 깊이, 길이, 각도 등은 마킹 입력(715)의 공간 파라미터들(예컨대, 마킹 입력과 연관된 위치 값들, 회전 값들, 변위, 공간 가속도, 공간 속도, 각가속도, 각속도 등)에 대응한다. 게다가, 도 7b에서, 마크(722)는 도 7a의 입력(압력) 값의 현재 측정치(719)에 대응하는 제1 두께 값과 연관된다.
도 7c 및 도 7d는 제2 마킹 입력의 검출이 입력(압력) 값의 제2 측정치에 따라 XR 환경(128) 내에 하나 이상의 마크들이 디스플레이되게 하는 시퀀스를 예시한다. 도 7c에 도시된 바와 같이, 콘텐츠 전달 시나리오의 인스턴스(730)(예컨대, 시간 T3와 연관됨) 동안, 전자 디바이스(120)는 손/손발 추적에 의해 제어 디바이스(130)를 이용한 마킹 입력(732)을 검출한다. 마킹 입력(732)이 검출되는 동안, 전자 디바이스(120)는, 또한, 입력(압력) 값을 검출하거나, 제어 디바이스(130)가 사용자(149)의 왼손(150)에 의해 얼마나 세게 파지되고 있는지와 연관된 입력(압력) 값의 표시를 획득한다. 도 7c에 도시된 바와 같이, 입력(압력) 값 표시자(717)는 제어 디바이스(130)가 사용자(149)에 의해 얼마나 세게 파지되고 있는지와 연관된 입력(압력) 값의 현재 측정치(739)를 나타낸다. 예를 들어, 도 7c의 현재 측정치(739)는 도 7a의 측정치(719)보다 크다.
도 7d에 도시된 바와 같이, 콘텐츠 전달 시나리오의 인스턴스(740)(예컨대, 시간 T4와 연관됨) 동안, 전자 디바이스(120)는 도 7c에서 마킹 입력(732)을 검출하는 것에 응답하여 XR 환경(128) 내의 XR 기판(718) 상에 마크(742)를 디스플레이한다. 예를 들어, 마크(742)의 형상, 깊이, 길이, 각도 등은 마킹 입력(732)의 공간 파라미터들에 대응한다. 게다가, 도 7d에서, 마크(742)는 도 7c의 입력(압력) 값의 현재 측정치(739)에 대응하는 제2 두께 값과 연관된다. 예를 들어, 마크(742)와 연관된 제2 두께 값은 마크(722)와 연관된 제1 두께 값보다 크다.
도 7e 및 도 7f는 조작 입력의 검출이 XR 환경(128) 내에서 하나 이상의 마크들이 병진되게 하는 시퀀스를 예시한다. 도 7e에 도시된 바와 같이, 콘텐츠 전달 시나리오의 인스턴스(750)(예컨대, 시간 T5와 연관됨) 동안, 전자 디바이스(120)는 XR 환경(128) 내에서 마크(742)를 병진시키는 것에 대응하는, 제어 디바이스(130)를 이용한 조작 입력(752)을 검출한다. 조작 입력(752)이 검출되는 동안, 전자 디바이스(120)는, 또한, 제어 디바이스(130)의 터치 감응형 표면(175)에 대한 터치 입력(754)을 검출하거나, 제어 디바이스(130)의 터치 감응형 표면(175)에 대한 터치 입력(754)의 표시를 획득한다. 일례로서, 터치 입력(754)은 제어 디바이스(130)의 터치 감응형 표면(175)에 의해 검출된다. 다른 예로서, 터치 입력(754)은 컴퓨터 비전 기법으로 전자 디바이스(120)의 외부-대면 이미지 센서에 의해 캡처된 하나 이상의 이미지들을 분석함으로써 검출된다.
도 7f에 도시된 바와 같이, 콘텐츠 전달 시나리오의 인스턴스(760)(예컨대, 시간 T6와 연관됨) 동안, 전자 디바이스(120)는 도 7e에서 제어 디바이스(130)의 터치 감응형 표면(175)에 대한 터치 입력(754)을 또한 검출하면서 도 7e에서 조작 입력(752)을 검출하는 것에 응답하여 XR 환경(128) 내에서 마크(742)를 병진시킨다. 일부 구현예들에서, 조작 입력(752)의 검출은 제어 디바이스(130)의 터치 감응형 표면(175)에 대한 터치 입력(754)을 검출하지 않고서 XR 환경(128) 내에서의 마크들의 병진 이동을 야기하기에 충분할 수 있다. 일부 구현예들에서, 제어 디바이스(130)의 터치 감응형 표면(175)에 대한 터치 입력(754)의 검출과 협력하여 조작 입력(752)의 검출은 XR 환경(128) 내에서의 마크들의 병진 이동을 야기한다. 예를 들어, 마크(742)의 병진 이동의 각도, 방향성, 변위 등은 도 7e의 조작 입력(752)의 공간 파라미터들에 대응한다. 일부 구현예들에서, 조작 입력(752)은, 또한, 조작 입력(752)의 회전 파라미터들에 기초하여 마크(742)의 회전 이동을 야기할 수 있다.
도 7g 및 도 7h는 제1 마킹 입력의 검출이 입력(압력) 값의 제1 측정치에 따라 XR 환경(128) 내에 하나 이상의 마크들이 디스플레이되게 하는 시퀀스를 예시한다. 도 7g에 도시된 바와 같이, 콘텐츠 전달 시나리오의 인스턴스(770)(예컨대, 시간 T7과 연관됨) 동안, 전자 디바이스(120)는 손/손발 추적에 의해 테이블(107) 상의 입력 영역(774)에 대한, 제어 디바이스(130)를 이용한 마킹 입력(772)을 검출한다. 예를 들어, 입력 영역(774)은 테이블(107)의 표면과 연관된 평면의 일부분에 대응한다. 일부 구현예들에서, 입력 영역(774)은 XR 경계 등으로 시각화된다. 일부 구현예들에서, 입력 영역(774)은 XR 환경(128) 내에서 시각화되지 않는다.
마킹 입력(772)이 검출되는 동안, 전자 디바이스(120)는, 또한, 입력(압력) 값을 검출하거나, 제어 디바이스(130)가 테이블(107)에 대해 얼마나 세게 눌리고 있는지와 연관된 입력(압력) 값의 표시를 획득한다. 일례로서, 입력(압력) 값은 제어 디바이스(130)의 팁들 중 하나에 통합된 하나 이상의 압력 센서들에 의해 검출된다. 다른 예로서, 입력(압력) 값은 컴퓨터 비전 기법으로 전자 디바이스(120)의 외부-대면 이미지 센서에 의해 캡처된 하나 이상의 이미지들을 분석함으로써 검출된다. 도 7g에 도시된 바와 같이, 입력(압력) 값 표시자(777)는 제어 디바이스(130)가 테이블(107)에 대해 얼마나 세게 눌리고 있는지와 연관된 입력(압력) 값의 현재 측정치(779)를 나타낸다. 일부 구현예들에 따르면, 입력(압력) 값 표시자(777)는, 전자 디바이스(120)에 의해 디스플레이될 수 있거나 디스플레이되지 않을 수 있는 판독기를 안내하기 위한 예시이다.
도 7h에 도시된 바와 같이, 콘텐츠 전달 시나리오의 인스턴스(780)(예컨대, 시간 T8과 연관됨) 동안, 전자 디바이스(120)는 도 7g에서 마킹 입력(715)을 검출하는 것에 응답하여 XR 환경(128) 내의 XR 기판(718) 상에 마크(782A)를 그리고 입력 영역(774) 상에 마크(782B)를 디스플레이한다. 예를 들어, 마크들(782A, 782B)의 형상, 깊이, 길이, 각도 등은 도 7g의 마킹 입력(772)의 공간 파라미터들(예컨대, 마킹 입력과 연관된 위치 값들, 회전 값들, 변위, 공간 가속도, 공간 속도, 각가속도, 각속도 등)에 대응한다. 게다가, 도 7h에서, 마크들(782A, 782B)은 도 7g의 입력(압력) 값의 현재 측정치(779)에 대응하는 제1 두께 값과 연관된다.
도 7i 및 도 7j는 제2 마킹 입력의 검출이 입력(압력) 값의 제2 측정치에 따라 XR 환경(128) 내에 하나 이상의 마크들이 디스플레이되게 하는 시퀀스를 예시한다. 도 7i에 도시된 바와 같이, 콘텐츠 전달 시나리오의 인스턴스(790)(예컨대, 시간 T9과 연관됨) 동안, 전자 디바이스(120)는 손/손발 추적에 의해 테이블(107) 상의 입력 영역(774)에 대한, 제어 디바이스(130)를 이용한 마킹 입력(792)을 검출한다. 마킹 입력(792)이 검출되는 동안, 전자 디바이스(120)는, 또한, 입력(압력) 값을 검출하거나, 제어 디바이스(130)가 테이블(107)에 대해 얼마나 세게 눌리고 있는지와 연관된 입력(압력) 값의 표시를 획득한다. 도 7i에 도시된 바와 같이, 입력(압력) 값 표시자(777)는 제어 디바이스(130)가 테이블(107)에 대해 얼마나 세게 눌리고 있는지와 연관된 입력(압력) 값의 현재 측정치(799)를 나타낸다. 예를 들어, 도 7i의 현재 측정치(799)는 도 7g의 측정치(779)보다 크다.
도 7j에 도시된 바와 같이, 콘텐츠 전달 시나리오의 인스턴스(7100)(예컨대, 시간 T10과 연관됨) 동안, 전자 디바이스(120)는 도 7i에서 마킹 입력(792)을 검출하는 것에 응답하여 XR 환경(128) 내의 XR 기판(718) 상에 마크(7102A)를 그리고 입력 영역(774) 상에 마크(7102B)를 디스플레이한다. 예를 들어, 마크들(7102A, 7102B)의 형상, 깊이, 길이, 각도 등은 도 7i의 마킹 입력(792)의 공간 파라미터들(예컨대, 마킹 입력과 연관된 위치 값들, 회전 값들, 변위, 공간 가속도, 공간 속도, 각가속도, 각속도 등)에 대응한다. 게다가, 도 7j에서, 마크들(7102A, 7102B)은 도 7i의 입력(압력) 값의 현재 측정치(799)에 대응하는 제2 두께 값과 연관된다. 예를 들어, 마크들(7102A, 7102B)과 연관된 제2 두께 값은 마크들(782A, 782B)과 연관된 제1 두께 값보다 크다.
도 7k 및 도 7l은 제1 콘텐츠 배치 입력의 검출이 입력(압력) 값의 현재 측정치에 따라 XR 환경(128) 내에 제1 XR 콘텐츠가 디스플레이되게 하는 시퀀스를 예시한다. 도 7k에 도시된 바와 같이, 콘텐츠 전달 시나리오의 인스턴스(7110)(예컨대, 시간 T11과 연관됨) 동안, 전자 디바이스(120)는 테이블(107)의 일부분, VA(606), XR 기판(7118)(예컨대, 평면형 기판), 및 메뉴(7112)를 포함하는 XR 환경(128)을 제시한다. 도 7k에 도시된 바와 같이, 메뉴(7112)는 XR 환경 내에 배치된 XR 콘텐츠의 외관을 변경하는 것과 연관된 복수의 선택가능 옵션들(7114)(예컨대, 상이한 형상들, 색상들, 텍스처들 등)을 포함한다. 예를 들어, 복수의 선택가능 옵션들(7114) 중에서 옵션(7114A)이 현재 선택되어 있다. 이 예에서, 옵션(7114A)은 XR 환경(128) 내에 배치된 XR 콘텐츠에 대한 제1 외관에 대응한다. 도 7a에 도시된 바와 같이, 메뉴(7112)는, 또한, XR 환경(128) 내에 배치된 XR 콘텐츠의 크기를 조정하기 위한 슬라이더(7116)를 포함한다.
도 7k에 도시된 바와 같이, 콘텐츠 전달 시나리오의 인스턴스(7110)(예컨대, 시간 T11과 연관됨) 동안, 전자 디바이스(120)는 제어 디바이스(130)의 터치 감응형 표면(175)에 대한 터치 입력(7111)을 검출하거나, 제어 디바이스(130)의 표현(131)이 XR 기판(7118) 위의 거리(7115)에 있는 동안 제어 디바이스(130)의 터치 감응형 표면(175)에 대한 터치 입력(7111)의 표시를 획득한다. 일례로서, 터치 입력(7111)은 제어 디바이스(130)의 터치 감응형 표면(175)에 의해 검출된다. 다른 예로서, 터치 입력(7111)은 컴퓨터 비전 기법으로 전자 디바이스(120)의 외부-대면 이미지 센서에 의해 캡처된 하나 이상의 이미지들을 분석함으로써 검출된다. 예를 들어, 터치 입력(7111)은 XR 환경(128) 내에 XR 콘텐츠(예컨대, 큐브)를 배치하는 것에 대응한다. 당업자는 다른 XR 콘텐츠가 XR 환경(128) 내에 유사하게 배치될 수 있다는 것을 인식할 것이다.
터치 입력(7111)이 검출되는 동안, 전자 디바이스(120)는, 또한, 입력(압력) 값을 검출하거나, 제어 디바이스(130)가 사용자(149)의 왼손(150)에 의해 얼마나 세게 파지되고 있는지와 연관된 입력(압력) 값의 표시를 획득한다. 도 7k에 도시된 바와 같이, 입력(압력) 값 표시자(717)는 제어 디바이스(130)가 사용자(149)에 의해 얼마나 세게 파지되고 있는지와 연관된 입력(압력) 값의 현재 측정치(7119)를 나타낸다. 일부 구현예들에 따르면, 입력(압력) 값 표시자(717)는, 전자 디바이스(120)에 의해 디스플레이될 수 있거나 디스플레이되지 않을 수 있는 판독기를 안내하기 위한 예시이다.
도 7l에 도시된 바와 같이, 콘텐츠 전달 시나리오의 인스턴스(7120)(예컨대, 시간 T12와 연관됨) 동안, 전자 디바이스(120)는 도 7k에서 터치 입력(7111)을 검출하는 것에 응답하여 XR 환경(128) 내의 XR 기판(7118) 위의 거리(7115)에 제1 XR 콘텐츠(7122)를 디스플레이한다. 도 7l에 도시된 바와 같이, 전자 디바이스(120)는, 또한, 제1 XR 콘텐츠(7122)와 연관된 그림자(7124)를 XR 기판(7118) 상에 디스플레이한다. 예를 들어, 제1 XR 콘텐츠(7122) 및 그림자(7124)의 위치 값 및 회전 값은 도 7k에서 터치 입력(7111)이 검출되었을 때의 제어 디바이스(130)의 표현(131)의 파라미터들(예컨대, 위치 값들, 회전 값들 등)에 대응한다. 예를 들어, 제1 XR 콘텐츠(7122)는 도 7k의 입력(압력) 값의 현재 측정치(7119)에 대응하는 제1 크기 값과 연관된다.
도 7m 및 도 7n은 제2 콘텐츠 배치 입력의 검출이 입력(압력) 값의 현재 측정치에 따라 XR 환경(128) 내에 제2 XR 콘텐츠가 디스플레이되게 하는 시퀀스를 예시한다. 도 7m에 도시된 바와 같이, 콘텐츠 전달 시나리오의 인스턴스(7130)(예컨대, 시간 T13과 연관됨) 동안, 전자 디바이스(120)는 제어 디바이스(130)의 터치 감응형 표면(175)에 대한 터치 입력(7131)을 검출하거나, 제어 디바이스(130)의 표현(131)이 XR 기판(7118)과 접촉하는 동안 제어 디바이스(130)의 터치 감응형 표면(175)에 대한 터치 입력(7131)의 표시를 획득한다.
터치 입력(7131)이 검출되는 동안, 전자 디바이스(120)는, 또한, 입력(압력) 값을 검출하거나, 제어 디바이스(130)가 사용자(149)의 왼손(150)에 의해 얼마나 세게 파지되고 있는지와 연관된 입력(압력) 값의 표시를 획득한다. 도 7m에 도시된 바와 같이, 입력(압력) 값 표시자(717)는 제어 디바이스(130)가 사용자(149)에 의해 얼마나 세게 파지되고 있는지와 연관된 입력(압력) 값의 현재 측정치(7139)를 나타낸다. 일부 구현예들에 따르면, 입력(압력) 값 표시자(717)는, 전자 디바이스(120)에 의해 디스플레이될 수 있거나 디스플레이되지 않을 수 있는 판독기를 안내하기 위한 예시이다.
도 7n에 도시된 바와 같이, 콘텐츠 전달 시나리오의 인스턴스(7140)(예컨대, 시간 T14과 연관됨) 동안, 전자 디바이스(120)는 도 7m에서 터치 입력(7131)을 검출하는 것에 응답하여 XR 환경(128) 내의 XR 기판(7118) 상에 제2 XR 콘텐츠(7142)를 디스플레이한다. 도 7n에 도시된 바와 같이, 전자 디바이스(120)는 XR 기판(7118) 상에 제2 XR 콘텐츠(7142)와 연관된 그림자를 디스플레이하지 않는다. 예를 들어, 제2 XR 콘텐츠(7142)의 위치 값 및 회전 값은 도 7m에서 터치 입력(7131)이 검출되었을 때의 제어 디바이스(130)의 표현(131)의 파라미터들(예컨대, 위치 값들, 회전 값들 등)에 대응한다. 예를 들어, 제2 XR 콘텐츠(7142)는 도 7k의 입력(압력) 값의 현재 측정치(7139)에 대응하는 제2 크기 값과 연관된다. 예를 들어, 제2 XR 콘텐츠(7142)와 연관된 제2 크기 값은 제1 XR 콘텐츠(7122)와 연관된 제1 크기 값보다 크다.
도 8a 내지 도 8m은 일부 구현예들에 따른, 콘텐츠 전달 시나리오에 대한 인스턴스들(810 내지 8130)의 시퀀스를 예시한다. 소정의 특정 특징부들이 예시되어 있지만, 당업자들은 본 개시내용으로부터 다양한 다른 특징부들이 간결함을 위해, 그리고 본 명세서에 개시된 구현예들의 더 적절한 양태들을 불명확하게 하지 않기 위해 예시되지 않았음을 인식할 것이다. 이를 위해, 비제한적인 예로서, 인스턴스들(810 내지 8130)의 시퀀스는, 도 1 및 도 2에 도시된 제어기(110); 도 1 및 도 3에 도시된 전자 디바이스(120); 및/또는 이들의 적합한 조합과 같은 컴퓨팅 시스템에 의해 렌더링되고 제시된다.
도 8a 내지 도 8m에 도시된 바와 같이, 콘텐츠 전달 시나리오는 (예컨대, 사용자(149)와 연관된) 전자 디바이스(120)의 디스플레이(122) 상에 디스플레이되는 XR 환경(128) 및 물리적 환경(105)을 포함한다. 전자 디바이스(120)는 사용자(149)가 전자 디바이스(120)의 외부-대면 이미지 센서의 FOV(111) 내에 현재 있는 도어(115)를 포함하는 물리적 환경(105) 내에 물리적으로 존재하는 동안 사용자(149)에게 XR 환경(128)을 제시한다. 이와 같이, 일부 구현예들에서, 사용자(149)는 그/그녀의 왼손(150) 또는 오른손(152)으로 전자 디바이스(120)를 보유한다.
다시 말하면, 일부 구현예들에서, 전자 디바이스(120)는 XR 콘텐츠를 제시하도록 그리고 디스플레이(122) 상에서의 물리적 환경(105)의 적어도 일부분(예컨대, 도어(115) 또는 그의 표현)의 광학 시스루 또는 비디오 패스-스루를 가능하게 하도록 구성된다. 예를 들어, 전자 디바이스(120)는 모바일 폰, 태블릿, 랩톱, 근안 시스템, 웨어러블 컴퓨팅 디바이스 등에 대응한다.
도 8a에 도시된 바와 같이, 콘텐츠 전달 시나리오의 인스턴스(810)(예컨대, 시간 T1과 연관됨) 동안, 전자 디바이스(120)는 물리적 환경(105) 내의 도어(115)의 표현(116), 가상 에이전트(VA)(606), 및 XR 콘텐츠(802)(예컨대, 실린더)를 포함하는 XR 환경(128)을 제시한다. 도 8a에 도시된 바와 같이, 전자 디바이스(120)는, 또한, 눈 추적에 기초하여 사용자(149)의 눈들의 XR 환경(128) 내의 초점과 연관된 시선 방향(806)을 디스플레이한다. 일부 구현예들에서, 시선 방향(806)은 디스플레이 또는 시각화되지 않는다. 도 8a에 도시된 바와 같이, 전자 디바이스(120)는, 또한, XR 환경(128) 내에 사용자(149)의 오른손(152)의 표현(153)이 프록시 객체(804)(예컨대, 스틱, 자, 또는 다른 물리적 객체)의 표현(805)을 파지한 것을 디스플레이한다. 예를 들어, 사용자(149)의 오른손(152)은 포인팅 그립 포즈로 프록시 객체(804)를 현재 파지하고 있다.
도 8a 및 도 8b는 표시자 요소의 크기가 거리에 기초하여 변화하는 시퀀스를 예시한다. 도 8a에 도시된 바와 같이, 프록시 객체(804)의 표현(805)은 XR 콘텐츠(802)로부터 제1 거리(814)에 있고, 전자 디바이스(120)는 프록시 객체(804)의 표현(805)의 팁/단부로부터 나오는 광선과 XR 콘텐츠(802) 사이의 일치점에 대응하는 제1 표시자 요소(812A)를 XR 콘텐츠(802) 상에 제1 크기로 디스플레이한다. 일부 구현예들에서, 제1 표시자 요소(812A)의 크기는 제1 거리(814)의 함수이다. 예를 들어, 표시자 요소의 크기는 거리가 감소함에 따라 증가하고, 표시자 요소의 크기는 거리가 증가함에 따라 감소한다.
도 8b에 도시된 바와 같이, 콘텐츠 전달 시나리오의 인스턴스(820)(예컨대, 시간 T2와 연관됨) 동안, 전자 디바이스(120)는 프록시 객체(804)의 표현(805)의 팁/단부로부터 나오는 광선과 XR 콘텐츠(802) 사이의 일치점에 대응하는 제2 표시자 요소(812B)를 XR 콘텐츠(802) 상에 제2 크기로 디스플레이한다. 도 8b에 도시된 바와 같이, 프록시 객체(804)의 표현(805)은 XR 콘텐츠(802)로부터 제2 거리(824)에 있으며, 이러한 제2 거리는 도 8a의 제1 거리(814)보다 작다. 예를 들어, 제2 표시자 요소(812B)의 제2 크기는 제1 표시자 요소(812A)의 제1 크기보다 크다.
도 8b 내지 도 8d는 프록시 객체가 XR 콘텐츠를 가리키는 것을 검출하는 것에 응답하여 XR 콘텐츠가 선택되고 프록시 객체의 병진 이동에 응답하여 XR 콘텐츠가 병진되는 시퀀스를 예시한다. 일부 구현예들에서, 전자 디바이스(120)는, 프록시 객체(804)가 적어도 미리결정된 기간 동안 XR 콘텐츠(802)를 가리키는 것을 검출하는 것에 응답하여 XR 콘텐츠(802)를 선택하고 그의 외관을 변경한다. 일부 구현예들에서, 전자 디바이스(120)는, 프록시 객체(804)가 적어도 결정론적 기간 동안 XR 콘텐츠(802)를 가리키는 것을 검출하는 것에 응답하여 XR 콘텐츠(802)를 선택하고 그의 외관을 변경한다.
도 8c에 도시된 바와 같이, 콘텐츠 전달 시나리오의 인스턴스(830)(예컨대, 시간 T3와 연관됨) 동안, 전자 디바이스(120)는 도 8a 및 도 8b에서 프록시 객체(804)가 적어도 미리결정된 또는 결정론적 기간 동안 XR 콘텐츠(802)를 가리키는 것을 검출하는 것에 응답하여 그의 선택을 시각적으로 나타내기 위해 XR 콘텐츠(802)의 외관을 크로스-해칭 외관(802A)으로 변경한다. 도 8c에 도시된 바와 같이, 전자 디바이스(120)는, 또한, XR 콘텐츠(802A)가 선택되고 프록시 객체(804)의 표현(805)이 XR 콘텐츠(802A)를 가리키는 상태로 유지되는 동안 프록시 객체(804)의 병진 이동(832)을 검출한다.
도 8d에 도시된 바와 같이, 콘텐츠 전달 시나리오의 인스턴스(840)(예컨대, 시간 T4와 연관됨) 동안, 전자 디바이스(120)는 도 8c에서 프록시 객체(804)의 병진 이동(832)을 검출하는 것에 응답하여 XR 환경(128) 내에서 XR 콘텐츠(802)를 병진시킨다. 예를 들어, XR 환경(128) 내에서의 XR 콘텐츠(802)의 병진 이동의 방향성 및 변위는 도 8c의 병진 이동(832)의 공간 파라미터들(예컨대, 위치 값들의 변화, 회전 값들의 변화, 변위, 공간 가속도, 공간 속도, 각가속도, 각속도 등)에 대응한다. 당업자는 XR 콘텐츠(802)가 유사하게 회전될 수 있다는 것을 인식할 것이다.
도 8e 내지 도 8g는 XR 콘텐츠에 대한 시선 방향을 검출하는 것에 응답하여 XR 콘텐츠가 선택되고 시선 방향의 병진 이동에 기초하여 XR 콘텐츠가 병진되는 시퀀스를 예시한다. 일부 구현예들에서, 전자 디바이스(120)는, 시선 방향(806)이 적어도 미리결정된 기간 동안 XR 콘텐츠(802)로 지향되는 것을 검출하는 것에 응답하여 XR 콘텐츠(802)를 선택하고 그의 외관을 변경한다. 일부 구현예들에서, 전자 디바이스(120)는, 시선 방향(806)이 적어도 결정론적 기간 동안 XR 콘텐츠(802)로 지향되는 것을 검출하는 것에 응답하여 XR 콘텐츠(802)를 선택하고 그의 외관을 변경한다.
도 8e에 도시된 바와 같이, 콘텐츠 전달 시나리오의 인스턴스(850)(예컨대, 시간 T5와 연관됨) 동안, 전자 디바이스(120)는 눈 추적에 기초하여 사용자(149)의 눈들의 XR 환경(128) 내의 초점과 연관된 시선 방향 표시자 요소(852)를 XR 콘텐츠(802) 상에 디스플레이한다. 예를 들어, 시선 방향 표시자 요소(852)는 사용자(149)에 대한 눈들로부터 나오는 광선들과 XR 콘텐츠(802) 사이의 일치점에 대응한다. 도 8e에 도시된 바와 같이, 전자 디바이스(120)는, 또한, XR 환경(128) 내에 사용자(149)의 오른손(152)의 표현(153)이 제어 디바이스(130)의 표현(131)을 파지한 것을 디스플레이한다. 예를 들어, 사용자(149)의 오른손(152)은 XR 환경(128) 내의 어떠한 XR 콘텐츠도 가리키지 않는 필기 그립 포즈로 제어 디바이스(130)를 현재 파지하고 있다.
도 8f에 도시된 바와 같이, 콘텐츠 전달 시나리오의 인스턴스(860)(예컨대, 시간 T6와 연관됨) 동안, 전자 디바이스(120)는 도 8e에서 시선 방향(806)이 적어도 미리결정된 또는 결정론적 기간 동안 XR 콘텐츠(802)로 지향되는 것을 검출하는 것에 응답하여 그의 선택을 시각적으로 나타내기 위해 XR 콘텐츠(802)의 외관을 크로스-해칭 외관(802A)으로 변경한다. 도 8f에 도시된 바와 같이, 전자 디바이스(120)는, 또한, XR 콘텐츠(802A)가 선택되는 동안 시선 방향(806)의 병진 이동(862)을 검출한다.
도 8g에 도시된 바와 같이, 콘텐츠 전달 시나리오의 인스턴스(870)(예컨대, 시간 T7과 연관됨) 동안, 전자 디바이스(120)는 도 8f에서 시선 방향(806)의 병진 이동(862)을 검출하는 것에 응답하여 XR 환경(128) 내에서 XR 콘텐츠(802)를 병진시킨다. 예를 들어, XR 환경(128) 내에서의 XR 콘텐츠(802)의 병진 이동의 방향성 및 변위는 도 8f의 시선 방향(806)의 병진 이동(862)의 공간 파라미터들(예컨대, 위치 값들의 변화, 회전 값들의 변화, 변위, 공간 가속도, 공간 속도, 각가속도, 각속도 등)에 대응한다.
도 8h 내지 도 8j는 XR 콘텐츠에 대한 시선 방향을 검출하는 것에 응답하여 XR 콘텐츠가 선택되고 시선 방향의 병진 이동에 기초하여 XR 콘텐츠가 병진되는 다른 시퀀스를 예시한다. 도 8h에 도시된 바와 같이, 콘텐츠 전달 시나리오의 인스턴스(880)(예컨대, 시간 T8과 연관됨) 동안, 전자 디바이스(120)는 눈 추적에 기초하여 사용자(149)의 눈들의 XR 환경(128) 내의 초점과 연관된 시선 방향 표시자 요소(852)를 XR 콘텐츠(802) 상에 디스플레이한다. 예를 들어, 시선 방향 표시자 요소(852)는 사용자(149)에 대한 눈들로부터 나오는 광선들과 XR 콘텐츠(802) 사이의 일치점에 대응한다. 도 8h에 도시된 바와 같이, 전자 디바이스(120)는 프록시 객체(804) 및 제어 디바이스(130) 중 어느 것도 사용자(149)에 의해 보유되지 않는 것을 검출한다.
도 8i에 도시된 바와 같이, 콘텐츠 전달 시나리오의 인스턴스(890)(예컨대, 시간 T9과 연관됨) 동안, 전자 디바이스(120)는 도 8h에서 시선 방향(806)이 적어도 미리결정된 또는 결정론적 기간 동안 XR 콘텐츠(802)로 지향되는 것을 검출하는 것에 응답하여 그의 선택을 시각적으로 나타내기 위해 XR 콘텐츠(802)의 외관을 크로스-해칭 외관(802A)으로 변경한다. 도 8i에 도시된 바와 같이, 전자 디바이스(120)는, 또한, XR 콘텐츠(802A)가 선택되는 동안 시선 방향(806)의 병진 이동(892)을 검출한다.
도 8j에 도시된 바와 같이, 콘텐츠 전달 시나리오의 인스턴스(8100)(예컨대, 시간 T10과 연관됨) 동안, 전자 디바이스(120)는 도 8i에서 시선 방향(806)의 병진 이동(892)을 검출하는 것에 응답하여 XR 환경(128) 내에서 XR 콘텐츠(802)를 병진시킨다. 예를 들어, XR 환경(128) 내에서의 XR 콘텐츠(802)의 병진 이동의 방향성 및 변위는 도 8i의 시선 방향(806)의 병진 이동(892)의 공간 파라미터들(예컨대, 위치 값들의 변화, 회전 값들의 변화, 변위, 공간 가속도, 공간 속도, 각가속도, 각속도 등)에 대응한다.
도 8k 내지 도 8m은 XR 콘텐츠에 대한 시선 방향을 검출하는 것에 응답하여 XR 콘텐츠가 선택되고 손/손발 추적 입력에 기초하여 XR 콘텐츠가 병진되는 시퀀스를 예시한다. 도 8k에 도시된 바와 같이, 콘텐츠 전달 시나리오의 인스턴스(8110)(예컨대, 시간 T11과 연관됨) 동안, 전자 디바이스(120)는 눈 추적에 기초하여 사용자(149)의 눈들의 XR 환경(128) 내의 초점과 연관된 시선 방향 표시자 요소(852)를 XR 콘텐츠(802) 상에 디스플레이한다. 예를 들어, 시선 방향 표시자 요소(852)는 사용자(149)에 대한 눈들로부터 나오는 광선들과 XR 콘텐츠(802) 사이의 일치점에 대응한다. 도 8k에 도시된 바와 같이, 전자 디바이스(120)는 프록시 객체(804) 및 제어 디바이스(130) 중 어느 것도 사용자(149)에 의해 보유되지 않는 것을 검출한다.
도 8l에 도시된 바와 같이, 콘텐츠 전달 시나리오의 인스턴스(8120)(예컨대, 시간 T12와 연관됨) 동안, 전자 디바이스(120)는 도 8k에서 시선 방향(806)이 적어도 미리결정된 또는 결정론적 기간 동안 XR 콘텐츠(802)로 지향되는 것을 검출하는 것에 응답하여 그의 선택을 시각적으로 나타내기 위해 XR 콘텐츠(802)의 외관을 크로스-해칭 외관(802A)으로 변경한다. 도 8l에 도시된 바와 같이, 전자 디바이스(120)는 XR 콘텐츠(802A) 근처에 사용자(149)의 오른손(152)의 표현(153)을 디스플레이하며, 이는 손/손발 추적을 사용하여 검출되고 추적된다. 도 8l에 도시된 바와 같이, 전자 디바이스(120)는, 또한, 사용자(149)의 오른손(152)의 병진 이동(8122)을 검출한다.
도 8m에 도시된 바와 같이, 콘텐츠 전달 시나리오의 인스턴스(8130)(예컨대, 시간 T13과 연관됨) 동안, 전자 디바이스(120)는 도 8l에서 병진 이동(8122)을 검출하는 것에 응답하여 XR 환경(128) 내에서 XR 콘텐츠(802)를 병진시킨다. 예를 들어, XR 환경(128) 내에서의 XR 콘텐츠(802)의 병진 이동의 방향성 및 변위는 도 8l의 병진 이동(8122)의 공간 파라미터들(예컨대, 위치 값들의 변화, 회전 값들의 변화, 변위, 공간 가속도, 공간 속도, 각가속도, 각속도 등)에 대응한다. 당업자는 다른 XR 콘텐츠가 유사하게 회전될 수 있다는 것을 인식할 것이다.
도 9a 내지 도 9c는 일부 구현예들에 따른, XR 환경과 상호작용하거나 그를 조작할 때 물리적 객체에 대한 출력 양식을 선택하는 방법(900)의 흐름도 표현을 예시한다. 다양한 구현예들에 따르면, 본 방법(900)은 비일시적 메모리 및 하나 이상의 프로세서들을 포함하는 컴퓨팅 시스템에서 수행되며, 여기에서 컴퓨팅 시스템은 디스플레이 디바이스 및 하나 이상의 입력 디바이스들에 통신가능하게 결합된다(예컨대, 도 1 및 도 3에 도시된 전자 디바이스(120); 도 1 및 도 2의 제어기(110); 또는 이들의 적합한 조합). 일부 구현예들에서, 방법(900)은 하드웨어, 펌웨어, 소프트웨어, 또는 이들의 조합을 포함하는 프로세싱 로직에 의해 수행된다. 일부 구현예들에서, 방법(900)은 비일시적 컴퓨터 판독가능 매체(예를 들어, 메모리)에 저장된 코드를 실행하는 프로세서에 의해 수행된다. 일부 구현예들에서, 컴퓨팅 시스템은 태블릿, 랩톱, 모바일 폰, 근안 시스템, 웨어러블 컴퓨팅 디바이스 등 중 하나에 대응한다.
전형적으로, 사용자는 툴바 또는 메뉴로부터 새로운 도구를 선택함으로써 마킹 도구들 사이에서 스위칭한다. 이는 사용자의 현재 워크플로우를 중단시킬 수 있고, 또한, 사용자가 다양한 메뉴들 내에서 새로운 도구를 찾도록 유도할 수 있다. 대조적으로, 본 명세서에서 설명된 방법은 사용자가 물리적 객체(예컨대, 연필과 같은 프록시 객체, 또는 스타일러스와 같은 전자 디바이스) 상에서 스와이프하고 물리적 객체를 도구 세트 내의 도구들 중 하나의 도구의 그래픽 표현을 향해 이동시킴으로써 도구 세트의 디스플레이를 호출할 수 있게 한다. 이와 같이, 사용자는 그들의 워크플로우를 중단시키지 않고서 도구들 사이에서 스위칭할 수 있다.
블록(902)에 의해 표현되는 바와 같이, 본 방법(900)은, 디스플레이 디바이스를 통해, 확장 현실(XR) 환경 내에 제1 복수의 출력 양식들과 연관된 제1 복수의 그래픽 요소들을 디스플레이하는 단계를 포함한다. 일부 구현예들에서, 출력 양식은 UI 또는 XR 환경 내에서 픽셀들을 추가, 제거, 또는 달리 수정하는 것과 같은 UI 또는 XR 환경 내에서의 변화들을 야기한다. 예를 들어, 제1 복수의 그래픽 요소들은, 연필, 마커, 페인트 브러시, 지우개 등과 같은, XR 환경 내에서 마크들을 생성, 수정 등을 하기 위한 상이한 도구 유형들에 대응한다.
일례로서, 전자 디바이스(120)는 도 6c에서 그래픽 요소들(632A, 632B, 632C, 632D)(때때로 본 명세서에서 집합적으로 제1 복수의 그래픽 요소들(632)로 지칭됨)을 디스플레이한다. 이 예에서, 그래픽 요소(632A)는 XR 환경(128) 내에 연필 유사 마크들을 생성하는 것과 연관된 출력 양식에 대응하고, 그래픽 요소(632B)는 XR 환경(128) 내에 펜 유사 마크들을 생성하는 것과 연관된 출력 양식에 대응하며, 그래픽 요소(632C)는 XR 환경(128) 내에 마커 유사 마크들을 생성하는 것과 연관된 출력 양식에 대응하고, 그래픽 요소(632D)는 XR 환경(128) 내에 에어브러시 유사 마크들을 생성하는 것과 연관된 출력 양식에 대응한다. 다른 예로서, 전자 디바이스(120)는 도 6o에서 그래픽 요소들(6152A, 6152B, 6152C, 6152D)(때때로 본 명세서에서 집합적으로 제2 복수의 그래픽 요소들(6152)로 지칭됨)을 디스플레이한다. 이 예에서, 그래픽 요소(6152A)는 XR 환경(128) 내에 연필 유사 마크들을 생성하는 것과 연관된 출력 양식에 대응하고, 그래픽 요소(6152B)는 XR 환경(128) 내에 펜 유사 마크들을 생성하는 것과 연관된 출력 양식에 대응하며, 그래픽 요소(6152C)는 XR 환경(128) 내에 좁은 브러시 유사 마크들을 생성하는 것과 연관된 출력 양식에 대응하고, 그래픽 요소(6152D)는 XR 환경(128) 내에 넓은 브러시 유사 마크들을 생성하는 것과 연관된 출력 양식에 대응한다.
일부 구현예들에서, 디스플레이 디바이스는 투명 렌즈 조립체에 대응하며, 여기에서 XR 환경의 제시는 투명 렌즈 조립체 상에 투사된다. 일부 구현예들에서, 디스플레이 디바이스는 근안 시스템에 대응하며, 여기에서 XR 환경을 제시하는 것은 XR 환경의 제시를 외부-대면 이미지 센서에 의해 캡처된 물리적 환경의 하나 이상의 이미지들과 합성하는 것을 포함한다.
일부 구현예들에서, 본 방법(900)은, 제1 복수의 그래픽 요소들을 디스플레이하기 전에, 물리적 객체에 대한 터치 입력의 표시를 획득(예컨대, 수신, 검색, 또는 검출)하는 단계를 포함하며, 여기에서 XR 환경 내에 제1 복수의 그래픽 요소들을 디스플레이하는 것은 터치 입력의 표시를 획득하는 것에 응답하여 XR 환경 내에 제1 복수의 그래픽 요소들을 디스플레이하는 것을 포함한다. 일부 구현예들에서, 물리적 객체는 터치 입력들을 검출할 수 있는 터치 감응형 영역을 갖는 스타일러스에 대응한다. 예를 들어, 스타일러스는 그의 터치 감응형 표면 상에서 상향 또는 하향 스와이프 제스처를 검출하고, 컴퓨팅 시스템은 스타일러스로부터 터치 입력의 표시를 획득(예컨대, 수신 또는 검색)한다. 예를 들어, 도 6b 및 도 6c는 도 6b에서 제어 디바이스(130)에 대한 터치 입력(622)을 검출하는 것에 응답하여 도 6c에서 전자 디바이스(120)가 XR 환경(128) 내에 제1 복수의 출력 양식들과 연관된 제1 복수의 그래픽 요소들(632)을 디스플레이하는 시퀀스를 예시한다.
일부 구현예들에서, 본 방법(900)은, 제1 복수의 그래픽 요소들을 디스플레이하기 전에, 물리적 객체가 사용자에 의해 보유되고 있는 현재 방식과 연관된 그립 포즈를 획득(예컨대, 수신, 검색, 또는 결정)하는 단계 - 제1 복수의 그래픽 요소들은 그립 포즈의 함수임 -; 및 그립 포즈를 획득하는 것에 응답하여, 그립 포즈가 제1 그립 포즈에 대응한다는 결정에 따라, 디스플레이 디바이스를 통해, XR 환경 내에 제1 복수의 출력 양식들과 연관된 제1 복수의 그래픽 요소들을 디스플레이하고; 그립 포즈가 제1 그립 포즈와는 상이한 제2 그립 포즈에 대응한다는 결정에 따라, 디스플레이 디바이스를 통해, XR 환경 내에 제2 복수의 출력 양식들과 연관된 제2 복수의 그래픽 요소들을 디스플레이하는 단계를 포함한다. 예를 들어, 포인팅/완드 그립은 제1 복수의 도구들과 연관된 제1 복수의 그래픽 요소들에 대응하고, 필기 그립은 제2 복수의 도구들과 연관된 제2 복수의 그래픽 요소들에 대응한다. 일부 구현예들에서, 제1 및 제2 복수의 출력 양식들은 적어도 하나의 중첩 출력 양식을 포함한다. 일부 구현예들에서, 제1 및 제2 복수의 출력 양식들은 상호 배타적인 출력 양식들을 포함한다.
일례로서, 도 6c를 참조하면, 전자 디바이스(120)는 현재 그립 포즈가 포인팅 그립 포즈에 대응한다는 결정에 따라 XR 환경(128) 내에 그래픽 요소들(632)을 디스플레이한다. 다른 예로서, 도 6o를 참조하면, 전자 디바이스(120)는 현재 그립 포즈가, 제1 단부(176)가 아래쪽을 가리키고 제2 단부(177)가 위쪽을 가리키는 필기 그립 포즈에 대응한다는 결정에 따라 XR 환경(128) 내에 그래픽 요소들(6152)을 디스플레이한다. 또 다른 예로서, 도 6p를 참조하면, 전자 디바이스(120)는 현재 그립 포즈가, 제1 단부(176)가 위쪽을 가리키고 제2 단부(177)가 아래쪽을 가리키는 역 필기 그립 포즈에 대응한다는 결정에 따라 XR 환경(128) 내에 그래픽 요소들(6162)을 디스플레이한다.
일부 구현예들에서, 본 방법(900)은, XR 환경 내에 제1 복수의 출력 양식들과 연관된 제1 복수의 그래픽 요소들을 디스플레이한 후에, 제1 그립 포즈로부터 제2 그립 포즈로의 그립 포즈의 변화를 검출하는 단계; 및 그립 포즈의 변화를 검출하는 것에 응답하여, XR 환경 내의 제1 복수의 그래픽 요소들의 디스플레이를 XR 환경 내의, 제2 복수의 출력 양식들과 연관된 제2 복수의 그래픽 요소들로 대체하는 단계를 포함한다. 일부 구현예들에서, 컴퓨팅 시스템은, 또한, 제1 복수의 그래픽 요소들을 디스플레이하는 것을 중지한다. 예를 들어, 포인팅/완드 그립은 제1 복수의 출력 양식들과 연관된 제1 복수의 그래픽 요소들에 대응하고, 필기 그립은 제2 복수의 출력 양식들과 연관된 제2 복수의 그래픽 요소들에 대응한다. 일부 구현예들에서, 제1 및 제2 복수의 그래픽 요소들은 적어도 일부 중첩 출력 양식들을 포함한다. 일부 구현예들에서, 제1 및 제2 복수의 그래픽 요소들은 상호 배타적인 출력 양식들을 포함한다. 예를 들어, 도 6o 및 도 6p는 (예컨대, 도 6o의 필기 그립 포즈로부터 도 6p의 역 필기 그립 포즈로의) 제어 디바이스(130)의 현재 그립 포즈의 변화를 검출하는 것에 응답하여 전자 디바이스(120)가 복수의 그래픽 요소들(6152)을 복수의 그래픽 요소들(6162)로 대체하는 시퀀스를 예시한다.
일부 구현예들에서, 본 방법(900)은, 제1 복수의 그래픽 요소들을 디스플레이하기 전에, 물리적 객체의 제1 단부가 외향으로(예컨대, 표면, 사용자, 컴퓨팅 시스템 등에 대해 외향으로) 향하고 있는지 또는 물리적 객체의 제2 단부가 외향으로 향하고 있는지를 나타내는 정보를 획득(예컨대, 수신, 검색, 또는 결정)하는 단계; 및 물리적 객체의 제1 단부가 외향으로 향하고 있는지 또는 물리적 객체의 제2 단부가 외향으로 향하고 있는지를 나타내는 정보를 획득하는 것에 응답하여, 물리적 객체의 제1 단부가 외향으로 향하고 있다는 결정에 따라, 디스플레이 디바이스를 통해, XR 환경 내에 제1 복수의 출력 양식들과 연관된 제1 복수의 그래픽 요소들을 디스플레이하고; 물리적 객체의 제2 단부가 외향으로 향하고 있다는 결정에 따라, 디스플레이 디바이스를 통해, XR 환경 내에 제2 복수의 출력 양식들과 연관된 제2 복수의 그래픽 요소들을 디스플레이하는 단계를 포함한다. 예를 들어, 외향으로 향하는 제1 단부는 제1 복수의 출력 양식들(예컨대, 스케치 및 필기 도구들)과 연관된 제1 복수의 그래픽 요소들에 대응하고, 외향으로 향하는 제2 단부는 제2 복수의 출력 양식들(예컨대, 지우기 또는 편집 도구들)과 연관된 제2 복수의 그래픽 요소들에 대응한다. 일부 구현예들에서, 제1 및 제2 복수의 출력 양식들은 적어도 하나의 중첩 출력 양식을 포함한다. 일부 구현예들에서, 제1 및 제2 복수의 출력 양식들은 상호 배타적인 출력 양식들을 포함한다.
다른 예로서, 도 6o를 참조하면, 전자 디바이스(120)는 현재 그립 포즈가, 제1 단부(176)가 아래쪽을 가리키고 제2 단부(177)가 위쪽을 가리키는 필기 그립 포즈에 대응한다는 결정에 따라 XR 환경(128) 내에 그래픽 요소들(6152)을 디스플레이한다. 또 다른 예로서, 도 6p를 참조하면, 전자 디바이스(120)는 현재 그립 포즈가, 제1 단부(176)가 위쪽을 가리키고 제2 단부(177)가 아래쪽을 가리키는 역 필기 그립 포즈에 대응한다는 결정에 따라 XR 환경(128) 내에 그래픽 요소들(6162)을 디스플레이한다.
일부 구현예들에서, 본 방법(900)은, XR 환경 내에 제1 복수의 출력 양식들과 연관된 제1 복수의 그래픽 요소들을 디스플레이한 후에, 물리적 객체의 제1 단부가 외향으로 향하는 것으로부터 물리적 객체의 제2 단부가 외향으로 향하는 것으로의 변화를 검출하는 단계; 및 물리적 객체의 제1 단부가 외향으로 향하는 것으로부터 물리적 객체의 제2 단부가 외향으로 향하는 것으로의 변화를 검출하는 것에 응답하여, 디스플레이 디바이스를 통해, XR 환경 내에 제2 복수의 출력 양식들과 연관된 제2 복수의 그래픽 요소들을 디스플레이하는 단계를 포함한다. 일부 구현예들에서, 컴퓨팅 시스템은, 또한, 제1 복수의 그래픽 요소들을 디스플레이하는 것을 중지한다. 예를 들어, 외향으로 향하는 제1 단부는 제1 복수의 출력 양식 도구들(예컨대, 스케치 및 필기 도구들)과 연관된 제1 복수의 그래픽 요소들에 대응하고, 외향으로 향하는 제2 단부는 제2 복수의 출력 양식들(예컨대, 지우기 또는 편집 도구들)과 연관된 제2 복수의 그래픽 요소들에 대응한다. 예를 들어, 도 6o 및 도 6p는 (예컨대, 도 6o의 필기 그립 포즈로부터 도 6p의 역 필기 그립 포즈로의) 제어 디바이스(130)의 현재 그립 포즈의 변화를 검출하는 것에 응답하여 전자 디바이스(120)가 복수의 그래픽 요소들(6152)의 디스플레이를 복수의 그래픽 요소들(6162)로 대체하는 시퀀스를 예시한다.
블록(904)에 의해 표현되는 바와 같이, 본 방법(900)은 제1 복수의 그래픽 요소들을 디스플레이하는 동안 물리적 객체의 제1 이동을 검출하는 단계를 포함한다. 일부 구현예들에서, 컴퓨팅 시스템은 물리적 객체에 대한 병진 값 및 회전 값을 획득(예컨대, 수신, 검색, 또는 결정)하며, 여기에서 제1 이동을 검출하는 것은 물리적 객체에 대한 병진 값 또는 회전 값 중 하나에 대한 변화를 검출하는 것에 대응한다. 예를 들어, 컴퓨팅 시스템은 컴퓨터 비전, 자기 센서들, 위치 정보, 및/또는 기타 등등을 통해 물리적 객체를 추적한다. 일례로서, 물리적 객체는 컴퓨팅 시스템에 대한 통신 채널이 없는, 연필, 펜 등과 같은 프록시 객체에 대응한다. 다른 예로서, 물리적 객체는 6 자유도(6DOF) 추적을 위한 IMU, 가속도계, 자이로스코프, 자력계, 및/또는 기타 등등을 포함하는 컴퓨팅 시스템에 대한 유선 또는 무선 통신 채널을 갖는, 스타일러스, 핑거 웨어러블 디바이스 등과 같은 전자 디바이스에 대응한다.
일부 구현예들에서, 컴퓨팅 시스템은 추적 데이터(506)에 기초하여 물리적 객체에 대한 하나 이상의 N-투플 추적 벡터들/텐서들(예컨대, 도 5a 및 도 5b의 객체 추적 벡터(511))을 유지한다. 일부 구현예들에서, 물리적 객체에 대한 하나 이상의 N-투플 추적 벡터들/텐서들(예컨대, 도 5a 및 도 5b의 객체 추적 벡터(511))은 세계 전반 또는 현재 동작 환경에 대한 물리적 객체에 대한 병진 값들(예컨대, x, y 및 z), 물리적 객체에 대한 회전 값들(예컨대, 롤, 피치 및 요), 물리적 객체에 대한 그립 포즈 표시(예컨대, 포인팅, 필기, 지우기, 페인팅, 받아쓰기 등), 현재 사용되는 팁/단부 표시(예컨대, 물리적 객체는 특정 제1 팁 및 제2 팁을 갖는 비대칭 설계 또는 비특정 제1 팁 및 제2 팁을 갖는 대칭 설계를 가질 수 있음), 물리적 객체가 물리적 표면에 대해 얼마나 세게 눌리고 있는지와 연관된 제1 입력(압력) 값, 물리적 객체가 사용자에 의해 얼마나 세게 파지되고 있는지와 연관된 제2 입력(압력) 값, 터치 입력 정보, 및/또는 기타 등등을 포함한다.
일부 구현예들에서, 추적 데이터(506)는 컴퓨터 비전 기법들을 통한 물리적 객체의 6DOF 추적을 가능하게 하기 위해 물리적 객체를 포함하는 물리적 환경의 하나 이상의 이미지들에 대응한다. 일부 구현예들에서, 추적 데이터(506)는 IMU, 가속도계, 자이로스코프, 자력계 등과 같은 물리적 객체의 다양한 통합된 센서들에 의해 수집된 데이터에 대응한다. 예를 들어, 추적 데이터(506)는, (물리적 환경 또는 세계 전반에 대한) 물리적 객체와 연관된 병진 값들, (중력에 대한) 물리적 객체와 연관된 회전 값들, 물리적 객체와 연관된 속도 값, 물리적 객체와 연관된 각속도 값, 물리적 객체와 연관된 가속도 값, 물리적 객체와 연관된 각가속도 값, 물리적 객체가 물리적 표면과 얼마나 세게 접촉하고 있는지와 연관된 제1 입력(압력) 값, 물리적 객체가 사용자에 의해 얼마나 세게 파지되고 있는지와 연관된 제2 입력(압력) 값, 및/또는 기타 등등과 같은 원시 센서 데이터 또는 프로세싱된 데이터에 대응한다.
일부 구현예들에서, 컴퓨팅 시스템은, 또한, 통신 인터페이스를 통해 물리적 객체에 의해 검출된 손가락 조작 데이터를 획득한다. 예를 들어, 손가락 조작 데이터는 물리적 객체 및/또는 기타 등등의 터치 감응형 영역에 대한 터치 입력들 또는 제스처들을 포함한다. 예를 들어, 손가락 조작 데이터는 물리적 객체의 몸체에 대한 접촉 세기 데이터를 포함한다. 일부 구현예들에서, 물리적 객체는 종방향으로 연장되는 터치 감응형 표면과 같은, 그에 대한 터치 입력들을 검출하도록 구성된 터치 감응형 표면/영역을 포함한다. 일부 구현예들에서, 물리적 객체에 대한 병진 값 및 회전 값은 물리적 객체로부터의 IMU 데이터, 물리적 객체를 포함하는 물리적 환경(105)의 하나 이상의 이미지들, 자기 추적 데이터, 및/또는 기타 등등 중 적어도 하나에 기초하여 물리적 객체에 대한 병진 값 및 회전 값을 결정하는 것을 포함한다.
일부 구현예들에서, 컴퓨팅 시스템은 물리적 객체와 통신하도록 제공되는 통신 인터페이스를 추가로 포함하며, 여기에서 물리적 객체와 연관된 추적 데이터(506)를 획득하는 것은 물리적 객체로부터 추적 데이터(506)를 획득하는 것을 포함하고, 추적 데이터는 물리적 객체의 하나 이상의 통합된 센서들로부터의 출력 데이터에 대응한다. 도 6c 내지 도 6p는, 사용자(149)가, XR 환경(128)과 상호작용하는 데 사용되고 전자 디바이스(120)와 통신하는 제어 디바이스(130)를 파지한 것을 예시한다. 예를 들어, 하나 이상의 통합된 센서들은, IMU, 가속도계, 자이로스코프, GPS, 자력계, 하나 이상의 접촉 세기 센서들, 터치 감응형 표면, 및/또는 기타 등등 중 적어도 하나를 포함한다. 일부 구현예들에서, 추적 데이터(506)는 물리적 객체의 팁이 물리적 표면과 접촉하는지 여부 및 그와 연관된 압력 값을 추가로 나타낸다.
일부 구현예들에서, 본 방법(900)은, 물리적 환경의 하나 이상의 이미지들을 획득하는 단계; 물리적 환경의 하나 이상의 이미지들로 물리적 객체를 인식하는 단계; 및 XR 환경(128)과 상호작용할 때 포커스 선택기로서 작용하도록 물리적 객체(예컨대, 프록시 객체)를 할당하는 단계를 포함한다. 도 8a 내지 도 8d는, 사용자(149)가, XR 환경(128)과 상호작용하는 데 사용되고 전자 디바이스(120)와 통신할 수 없는 프록시 객체(804)(예컨대, 자, 스틱 등)를 파지한 것을 예시한다. 일부 구현예들에서, 컴퓨팅 시스템은 물리적 객체가 사용자에 의해 파지될 때 물리적 객체를 포커스 선택기로서 지정한다. 일부 구현예들에서, 컴퓨팅 시스템은, 물리적 객체가 사용자에 의해 파지되고 물리적 객체가 미리정의된 제약들(예컨대, 최대 또는 최소 크기, 특정 형상, DRM(digital rights management) 디스퀄리파이어(disqualifier)들 등)을 만족시킬 때 물리적 객체를 포커스 선택기로서 지정한다. 이와 같이, 일부 구현예들에서, 사용자(149)는 가정의 객체들을 사용하여 XR 환경과 상호작용할 수 있다. 일부 구현예들에서, 포즈 및 그립 표시자들은, 프록시 객체가 이동하고/하거나 FOV가 이동함에 따라 프록시 객체(또는 그의 표현)에 앵커링될 수 있다.
블록(906)에 의해 표현되는 바와 같이, 물리적 객체의 제1 이동을 검출하는 것에 응답하여, 그리고 물리적 객체의 제1 이동이 물리적 객체(예컨대, 물리적 객체의 팁과 같은 물리적 객체의 미리결정된 부분)로 하여금 제1 복수의 그래픽 요소들 중 제1 그래픽 요소에 대한 거리 임계치를 위반하게 한다는 결정에 따라, 본 방법(900)은 제1 그래픽 요소와 연관된 제1 출력 양식을 물리적 객체에 대한 현재 출력 양식으로서 선택하는 단계를 포함한다. 일부 구현예들에서, 거리 임계치는 사용자 선호도들, 도구 사용 이력, 장면에 대한 그래픽 요소들의 깊이, 폐색들, 현재 콘텐츠, 현재 콘텍스트 등과 같은 하나 이상의 인자들에 기초하여 비결정론적(즉, 미리결정된 X mm 반경) 또는 결정론적이다.
일부 구현예들에 따르면, 컴퓨팅 시스템 또는 그의 컴포넌트(예컨대, 도 5a의 출력 양식 선택기(526))는, 물리적 객체의 제1 이동이 물리적 객체로 하여금 제1 복수의 그래픽 요소들 중 제1 그래픽 요소에 대한 거리 임계치를 위반하게 한다는 결정에 따라, 연관된 제1 출력 양식을 물리적 객체에 대한 현재 출력 양식(527)으로서 선택한다. 일례로서, 도 6d 및 도 6e는 제어 디바이스(130)의 이동이 제어 디바이스(130)(또는 그의 표현)로 하여금 그래픽 요소(632D)에 대한 활성화 영역(634)(예컨대, 거리 임계치)을 위반하게 한다는 결정에 따라 전자 디바이스(120)가 제어 디바이스(130)에 대한 제1 출력 양식(예컨대, 에어브러시 마킹)을 선택하는 시퀀스를 예시한다.
일부 구현예들에서, 물리적 객체의 제1 이동이 물리적 객체로 하여금 제1 복수의 그래픽 요소들 중 제1 그래픽 요소에 대한 거리 임계치를 위반하게 한다는 결정에 따라, 본 방법(900)은, 물리적 객체에 인접한 제1 그래픽 요소의 디스플레이를 유지하고; 제1 그래픽 요소를 포함하지 않는 제1 복수의 그래픽 요소들 중 나머지의 디스플레이를 중지하는 단계를 포함한다. 일례로서, 도 6d 및 도 6e를 참조하면, 전자 디바이스(120)는 XR 환경(128) 내의 제어 디바이스(130)의 표현(131)의 팁 상에 오버레이된 제1 복수의 그래픽 요소들(예컨대, 그래픽 요소들(632)) 중 제1 그래픽 요소(예컨대, 그래픽 요소(632D))의 디스플레이를 유지하고, XR 환경(128)으로부터 제1 복수의 그래픽 요소들 중 나머지(예컨대, 그래픽 요소들(632A, 632B, 632C))의 디스플레이를 제거한다.
일부 구현예들에서, 본 방법(900)은, 제1 그래픽 요소와 연관된 제1 출력 양식을 물리적 객체에 대한 현재 출력 양식으로서 선택한 후에, 물리적 객체의 제2 이동을 검출하는 단계; 및 물리적 객체의 제2 이동을 검출하는 것에 응답하여, 물리적 객체에 인접한 제1 그래픽 요소의 디스플레이를 유지하기 위해 물리적 객체의 제2 이동에 기초하여 제1 그래픽 요소를 이동시키는 단계를 포함한다. 일부 구현예들에서, 제1 그래픽 요소는 물리적 객체의 외향 대면 단부/팁에 앵커링된다. 일부 구현예들에서, 제1 그래픽 요소는 물리적 객체의 외향 대면 단부/팁의 측부로부터 또는 그로 오프셋되어 제시된다. 일부 구현예들에서, 제1 그래픽 요소는 물리적 객체의 표현에 "스냅핑"된다. 일례로서, 도 6e 및 도 6f를 참조하면, 전자 디바이스(120)는 마킹 입력(654)을 수행하기 위한 제어 디바이스의 이동을 검출한 후에 XR 환경(128) 내의 제어 디바이스(130)의 표현(131)의 팁 상에 오버레이된 그래픽 요소(632D)의 디스플레이를 유지한다.
일부 구현예들에서, 본 방법(900)은, 제1 복수의 그래픽 요소들 중 나머지의 디스플레이를 중지한 후에, 물리적 객체에 대한 터치 입력의 표시를 획득(예컨대, 수신, 검색, 또는 검출)하는 단계; 및 터치 입력의 표시를 획득하는 것에 응답하여, 디스플레이 디바이스를 통해, XR 환경 내에 제1 복수의 그래픽 요소들을 재디스플레이하는 단계를 포함한다. 일부 구현예들에서, 물리적 객체는 터치 입력들을 검출할 수 있는 터치 감응형 영역을 갖는 스타일러스에 대응한다. 예를 들어, 스타일러스는 그의 터치 감응형 표면 상에서 상향 또는 하향 스와이프 제스처를 검출하고, 컴퓨팅 시스템은 스타일러스로부터 터치 입력의 표시를 획득(예컨대, 수신 또는 검색)한다. 일례로서, 도 6n 및 도 6o를 참조하면, 전자 디바이스(120)는 제어 디바이스(130)에 대한 터치 입력(6142)을 검출하는 것에 응답하여 XR 환경(128) 내에 제2 복수의 출력 양식들과 연관된 제2 복수의 그래픽 요소들(6152)을 디스플레이한다.
블록(908)에 의해 표현되는 바와 같이, 물리적 객체의 제1 이동을 검출하는 것에 응답하여, 그리고 물리적 객체의 제1 이동이 물리적 객체로 하여금 제1 복수의 그래픽 요소들 중 제2 그래픽 요소에 대한 거리 임계치를 위반하게 한다는 결정에 따라, 본 방법(900)은 제2 그래픽 요소와 연관된 제2 출력 양식을 물리적 객체에 대한 현재 출력 양식으로서 선택하는 단계를 포함한다.
일부 구현예들에 따르면, 컴퓨팅 시스템 또는 그의 컴포넌트(예컨대, 도 5a의 출력 양식 선택기(526))는, 물리적 객체의 제1 이동이 물리적 객체로 하여금 제1 복수의 그래픽 요소들 중 제2 그래픽 요소에 대한 거리 임계치를 위반하게 한다는 결정에 따라, 연관된 제2 출력 양식을 물리적 객체에 대한 현재 출력 양식(527)으로서 선택한다. 일례로서, 도 6g 내지 도 6i는 제어 디바이스(130)의 이동이 제어 디바이스(130)(또는 그의 표현)로 하여금 그래픽 요소(632B)에 대한 활성화 영역(634)(예컨대, 거리 임계치)을 위반하게 한다는 결정에 따라 전자 디바이스(120)가 제어 디바이스(130)에 대한 제2 출력 양식(예컨대, 펜 마킹)을 선택하는 시퀀스를 예시한다.
일부 구현예들에서, 물리적 객체의 제1 이동이 물리적 객체로 하여금 제1 복수의 그래픽 요소들 중 제2 그래픽 요소에 대한 거리 임계치를 위반하게 한다는 결정에 따라, 본 방법(900)은, 물리적 객체에 인접한 제2 그래픽 요소의 디스플레이를 유지하고; 제2 그래픽 요소를 포함하지 않는 제1 복수의 그래픽 요소들 중 나머지의 디스플레이를 중지하는 단계를 포함한다. 일례로서, 도 6h 및 도 6i를 참조하면, 전자 디바이스(120)는 XR 환경(128) 내의 제어 디바이스(130)의 표현(131)의 팁 상에 오버레이된 제1 복수의 그래픽 요소들(예컨대, 그래픽 요소들(632)) 중 제2 그래픽 요소(예컨대, 그래픽 요소(632B))의 디스플레이를 유지하고, XR 환경(128)으로부터 제1 복수의 그래픽 요소들 중 나머지(예컨대, 그래픽 요소들(632A, 632C, 632D))의 디스플레이를 제거한다.
일부 구현예들에서, 블록(910)에 의해 표현되는 바와 같이, 제1 출력 양식 및 제2 출력 양식은 XR 환경 내에서 상이한 시각적 변화들을 야기한다. 예를 들어, 제1 출력 양식은 XR 환경 내에서 객체/콘텐츠를 선택/조작하는 것과 연관되고, 제2 출력 양식은 XR 환경 내에서 스케치, 드로잉, 필기 등을 하는 것과 연관된다. 일례로서, 도 6f를 참조하면, 전자 디바이스(120)는 현재 출력 양식이 그래픽 요소(632D)에 대응하는 동안 도 6e에서 마킹 입력(654)을 검출하는 것에 응답하여 XR 환경(128) 내에 에어브러시 유사 마크(662)를 디스플레이한다. 다른 예로서, 도 6j를 참조하면, 전자 디바이스(120)는 현재 출력 양식이 그래픽 요소(632B)에 대응하는 동안 도 6j에서 마킹 입력(6104)을 검출하는 것에 응답하여 XR 환경(128) 내에 펜 유사 마크(6112)를 디스플레이한다.
일부 구현예들에서, 물리적 객체의 제1 이동이 물리적 객체로 하여금 제1 그래픽 요소 또는 제2 그래픽 요소에 대한 거리 임계치를 위반하게 하지 않는다는 결정에 따라, 본 방법(900)은, 물리적 객체에 대한 현재 출력 양식으로서 초기 출력 양식을 유지하고; 제1 복수의 그래픽 요소들의 디스플레이를 유지하는 단계를 포함한다. 일례로서, 도 6c를 참조하면, 전자 디바이스(120)는 제어 디바이스(130)의 표현(131)이 활성화 영역(634)의 외측에 있는 동안 제어 디바이스(130)에 대한 현재 출력 양식으로서 초기 출력 양식을 유지한다. 다른 예로서, 도 6g를 참조하면, 전자 디바이스(120)는 제어 디바이스(130)의 표현(131)이 활성화 영역(634)의 외측에 있는 동안 제어 디바이스(130)에 대한 현재 출력 양식으로서 초기 출력 양식을 유지한다.
일부 구현예들에서, 블록(912)에 의해 표현되는 바와 같이, 본 방법(900)은, 제1 그래픽 요소와 연관된 제1 출력 양식을 물리적 객체에 대한 현재 출력 양식으로서 선택한 후에, 물리적 객체를 이용한 후속 마킹 입력을 검출하는 단계; 및 후속 마킹 입력을 검출하는 것에 응답하여, 디스플레이 디바이스를 통해, 후속 마킹 입력(예컨대, 후속 마킹 입력의 형상, 변위 등) 및 제1 출력 양식에 기초하여 XR 환경 내에 하나 이상의 마크들을 디스플레이하는 단계를 포함한다. 일부 구현예들에 따르면, 컴퓨팅 시스템은 IMU 데이터, 컴퓨터 비전, 자기 추적, 및/또는 기타 등등으로 3D로 물리적 객체를 추적함으로써 물리적 객체를 이용한 후속 마킹 입력을 검출한다. 일부 구현예들에서, 하나 이상의 마크들은 스케치, 수기 텍스트, 낙서 등과 같은, XR 환경(128) 내에 디스플레이된 XR 콘텐츠에 대응한다. 일례로서, 도 6f를 참조하면, 전자 디바이스(120)는 현재 출력 양식이 그래픽 요소(632D)에 대응하는 동안 도 6e에서 마킹 입력(654)을 검출하는 것에 응답하여 XR 환경(128) 내에 에어브러시 유사 마크(662)를 디스플레이한다. 예를 들어, 에어브러시 유사 마크(662)의 형상, 깊이, 길이, 각도 등은 마킹 입력(654)의 공간 파라미터들(예컨대, 마킹 입력과 연관된 위치 값들, 회전 값들, 변위, 공간 가속도, 공간 속도, 각가속도, 각속도 등)에 대응한다.
일부 구현예들에서, 블록(914)에 의해 표현되는 바와 같이, 후속 마킹 입력을 검출하는 것에 응답하여, 본 방법(900)은, 물리적 객체가 물리적 표면에 대해 얼마나 세게 눌리고 있는지와 연관된 입력이 제1 입력 값에 대응한다는 결정에 따라, 디스플레이 디바이스를 통해, 후속 마킹 입력(예컨대, 후속 마킹 입력의 형상, 변위 등) 및 제1 출력 양식에 기초하여 XR 환경 내에 하나 이상의 마크들을 제1 외관으로 디스플레이하고 - 제1 외관은 제1 입력 값에 대응하는 하나 이상의 마크들의 파라미터와 연관됨 -; 물리적 객체가 물리적 표면에 대해 얼마나 세게 눌리고 있는지와 연관된 입력이 제2 입력 값에 대응한다는 결정에 따라, 디스플레이 디바이스를 통해, 후속 마킹 입력(예컨대, 후속 마킹 입력의 형상, 변위 등) 및 제1 출력 양식에 기초하여 XR 환경 내에 하나 이상의 마크들을 제2 외관으로 디스플레이하는 - 제2 외관은 제2 입력 값에 대응하는 하나 이상의 마크들의 파라미터와 연관됨 - 단계를 포함한다.
일부 구현예들에서, 하나 이상의 마크들은 스케치, 수기 텍스트, 낙서 등과 같은, XR 환경(128) 내에 디스플레이된 XR 콘텐츠에 대응한다. 일부 구현예들에서, 컴퓨팅 시스템은 로컬 또는 원격으로 수집된 데이터에 기초하여 제1 및 제2 입력(압력) 값들을 획득(예컨대, 수신, 검색, 또는 결정)한다. 일례로서, 물리적 객체는 물리적 표면에 대해 눌릴 때 입력(압력) 값을 검출하기 위해 그의 단부들/팁들 중 하나 또는 둘 모두에 압력 센서들을 갖는 전자 디바이스에 대응한다. 일부 구현예들에서, 블록(916)에 의해 표현되는 바와 같이, 파라미터는 XR 환경 내의 하나 이상의 마크들의 반경, 폭, 두께, 세기, 반투명도, 불투명도, 색상, 또는 텍스처 중 하나에 대응한다.
일례에서, 도 7h를 참조하면, 전자 디바이스(120)는 도 7g에서 마킹 입력(715)을 검출하는 것에 응답하여 XR 환경(128) 내의 XR 기판(718) 상에 마크(782A)를 그리고 입력 영역(774) 상에 마크(782B)를 디스플레이한다. 예를 들어, 마크들(782A, 782B)의 형상, 깊이, 길이, 각도 등은 도 7g의 마킹 입력(772)의 공간 파라미터들(예컨대, 마킹 입력과 연관된 위치 값들, 회전 값들, 변위, 공간 가속도, 공간 속도, 각가속도, 각속도 등)에 대응한다. 게다가, 도 7h에서, 마크들(782A, 782B)은 도 7g의 입력(압력) 값의 현재 측정치(779)에 대응하는 제1 두께 값과 연관된다.
다른 예에서, 도 7j를 참조하면, 전자 디바이스(120)는 도 7i에서 마킹 입력(792)을 검출하는 것에 응답하여 XR 환경(128) 내의 XR 기판(718) 상에 마크(7102A)를 그리고 입력 영역(774) 상에 마크(7102B)를 디스플레이한다. 예를 들어, 마크들(7102A, 7102B)의 형상, 깊이, 길이, 각도 등은 도 7i의 마킹 입력(792)의 공간 파라미터들(예컨대, 마킹 입력과 연관된 위치 값들, 회전 값들, 변위, 공간 가속도, 공간 속도, 각가속도, 각속도 등)에 대응한다. 게다가, 도 7j에서, 마크들(7102A, 7102B)은 도 7i의 입력(압력) 값의 현재 측정치(799)에 대응하는 제2 두께 값과 연관된다. 예를 들어, 마크들(7102A, 7102B)과 연관된 제2 두께 값은 마크들(782A, 782B)과 연관된 제1 두께 값보다 크다.
일부 구현예들에서, 블록(918)에 의해 표현되는 바와 같이, 후속 마킹 입력을 검출하는 것에 응답하여, 본 방법(900)은, 물리적 객체가 사용자에 의해 얼마나 세게 파지되고 있는지와 연관된 입력이 제1 입력 값에 대응한다는 결정에 따라, 디스플레이 디바이스를 통해, 후속 마킹 입력(예컨대, 후속 마킹 입력의 형상, 변위 등) 및 제1 출력 양식에 기초하여 XR 환경 내에 하나 이상의 마크들을 제1 외관으로 디스플레이하고 - 제1 외관은 제1 입력 값에 대응하는 하나 이상의 마크들의 파라미터와 연관됨 -; 물리적 객체가 사용자에 의해 얼마나 세게 파지되고 있는지와 연관된 입력이 제2 입력 값에 대응한다는 결정에 따라, 디스플레이 디바이스를 통해, 후속 마킹 입력(예컨대, 후속 마킹 입력의 형상, 변위 등) 및 제1 출력 양식에 기초하여 XR 환경 내에 하나 이상의 마크들을 제2 외관으로 디스플레이하는 - 제2 외관은 제2 입력 값에 대응하는 하나 이상의 마크들의 파라미터와 연관됨 - 단계를 포함한다.
일부 구현예들에서, 하나 이상의 마크들은 스케치, 수기 텍스트, 낙서 등과 같은, XR 환경(128) 내에 디스플레이된 XR 콘텐츠에 대응한다. 일부 구현예들에서, 컴퓨팅 시스템은 로컬 또는 원격으로 수집된 데이터에 기초하여 제1 및 제2 입력(압력) 값들을 획득(예컨대, 수신, 검색, 또는 결정)한다. 일례로서, 물리적 객체는 사용자에 의해 파지될 때 입력(압력) 값을 검출하기 위해 압력 센서들이 내장된 전자 디바이스에 대응한다. 일부 구현예들에서, 블록(920)에 의해 표현되는 바와 같이, 파라미터는 XR 환경 내의 마크의 반경, 폭, 두께, 세기, 반투명도, 불투명도, 색상, 또는 텍스처 중 하나에 대응한다.
일례에서, 도 6j를 참조하면, 전자 디바이스(120)는 현재 출력 양식이 그래픽 요소(632B)에 대응하는 동안 도 6j에서 마킹 입력(6104)을 검출하는 것에 응답하여 XR 환경(128) 내에 펜 유사 마크(6112)를 디스플레이한다. 예를 들어, 펜 유사 마크(6112)의 형상, 깊이, 길이, 각도 등은 마킹 입력(6104)의 공간 파라미터들에 대응한다. 게다가, 도 6k에서, 펜 유사 마크(6112)는 도 6j의 입력(압력) 값의 현재 측정치(6103)에 대응하는 제1 두께 값과 연관된다.
다른 예에서, 도 6m을 참조하면, 전자 디바이스(120)는 도 6l에서 마킹 입력(6122)을 검출하는 것에 응답하여 XR 환경(128) 내에 펜 유사 마크(6132)를 디스플레이한다. 예를 들어, 펜 유사 마크(6132)의 형상, 깊이, 길이, 각도 등은 마킹 입력(6122)의 공간 파라미터들에 대응한다. 게다가, 도 6m에서, 펜 유사 마크(6132)는 도 6l의 입력(압력) 값의 현재 측정치(6123)에 대응하는 제2 두께 값과 연관된다. 도 6m의 펜 유사 마크(6132)와 연관된 제2 두께 값은 도 6k의 펜 유사 마크(6112)와 연관된 제1 두께 값보다 크다.
도 10a 및 도 10b는 일부 구현예들에 따른, 물리적 표면 상에 직접 마킹하는 동안 제1 입력(압력) 값에 기초하여 또는 간접적으로 마킹하는 동안 제2 입력(압력) 값에 기초하여 마크의 파라미터를 변경하는 방법(1000)의 흐름도 표현을 예시한다. 다양한 구현예들에 따르면, 본 방법(1000)은 비일시적 메모리 및 하나 이상의 프로세서들을 포함하는 컴퓨팅 시스템에서 수행되며, 여기에서 컴퓨팅 시스템은 디스플레이 디바이스 및 하나 이상의 입력 디바이스들에 통신가능하게 결합된다(예컨대, 도 1 및 도 3에 도시된 전자 디바이스(120); 도 1 및 도 2의 제어기(110); 또는 이들의 적합한 조합). 일부 구현예들에서, 방법(1000)은 하드웨어, 펌웨어, 소프트웨어, 또는 이들의 조합을 포함하는 프로세싱 로직에 의해 수행된다. 일부 구현예들에서, 방법(1000)은 비일시적 컴퓨터 판독가능 매체(예를 들어, 메모리)에 저장된 코드를 실행하는 프로세서에 의해 수행된다. 일부 구현예들에서, 컴퓨팅 시스템은 태블릿, 랩톱, 모바일 폰, 근안 시스템, 웨어러블 컴퓨팅 디바이스 등 중 하나에 대응한다.
전형적으로, 사용자는 툴바 또는 제어 패널에서 슬라이더 등을 이동시킴으로써 선 굵기와 같은 마킹 파라미터를 조정할 수 있다. 이는 사용자의 현재 워크플로우를 중단시킬 수 있고, 또한, 사용자가 적절한 제어를 위해 다양한 메뉴들 내에서 찾도록 유도할 수 있다. 대조적으로, 본 명세서에서 설명된 방법은 마킹 입력이 물리적 표면으로 지향될 때 물리적 객체(예컨대, 프록시 객체 또는 스타일러스)와 물리적 표면 사이의 제1 입력(압력) 값에 기초하여 또는 물리적 객체의 사용자의 파지와 연관된 제2 입력(압력) 값에 기초하여 마킹 파라미터를 조정한다. 이와 같이, 사용자는 더 큰 속도 및 효율로 마킹 파라미터를 조정할 수 있다.
블록(1002)에 의해 표현되는 바와 같이, 본 방법(1000)은, 디스플레이 디바이스를 통해, 사용자 인터페이스를 디스플레이하는 단계를 포함한다. 일부 구현예들에서, 사용자 인터페이스는 2차원 마킹 영역(예컨대, 평면형 캔버스)을 포함하고, 2차원 마킹 영역 상에 마크가 디스플레이된다(1004). 일부 구현예들에서, 사용자 인터페이스는 3차원 마킹 영역을 포함하고, 3차원 마킹 영역 내에 마크가 디스플레이된다(예컨대, 마크가 3D 페인팅 또는 드로잉과 연관됨)(1006). 일례로서, 도 7a를 참조하면, 전자 디바이스(120)는 XR 기판(718)(예컨대, 2D 또는 3D 캔버스)을 포함하는 XR 환경(128)을 제시한다.
일부 구현예들에서, 디스플레이 디바이스는 투명 렌즈 조립체에 대응하며, 여기에서 사용자 인터페이스의 제시는 투명 렌즈 조립체 상에 투사된다. 일부 구현예들에서, 디스플레이 디바이스는 근안 시스템에 대응하며, 여기에서 사용자 인터페이스를 제시하는 것은 사용자 인터페이스의 제시를 외부-대면 이미지 센서에 의해 캡처된 물리적 환경의 하나 이상의 이미지들과 합성하는 것을 포함한다.
일부 구현예들에서, 본 방법(1000)은, 디스플레이 디바이스를 통해, 사용자 인터페이스 내에 마킹과 연관된 복수의 상이한 선택가능 도구들을 갖는 사용자 인터페이스 요소(예컨대, 툴바, 메뉴 등)를 디스플레이하는 단계를 포함한다. 일부 구현예들에서, 사용자 인터페이스 요소는 공간 내의 한 지점에 앵커링된다. 예를 들어, 사용자 인터페이스 요소는 공간 내의 새로운 앵커 지점으로 이동될 수 있다. 일부 구현예들에서, 사용자가 그/그녀의 머리를 돌릴 때, 사용자 인터페이스 요소는 공간 내의 한 지점에 앵커링된 상태로 유지될 것이고, 사용자가 역방향 머리 회전 모션을 완료할 때까지 시야를 벗어날 수 있다(예컨대, 세계/객체-고정). 일부 구현예들에서, 사용자 인터페이스 요소는 컴퓨팅 시스템의 사용자의 시야 내의 한 지점에 앵커링된다(예컨대, 헤드/신체-고정). 예를 들어, 사용자 인터페이스 요소는 FOV 내의 새로운 앵커 지점으로 이동될 수 있다. 일부 구현예들에서, 사용자가 그/그녀의 머리를 돌릴 때, 사용자 인터페이스 요소는 툴바가 FOV 내에 유지되도록 FOV 내의 한 지점에 앵커링된 상태로 유지될 것이다.
일례로서, 도 7a를 참조하면, 전자 디바이스(120)는 메뉴(712)를 포함하는 XR 환경(128)을 제시한다. 도 7a에 도시된 바와 같이, 메뉴(712)는 XR 환경 내에서 행해진 마크들의 외관을 변경하는 것과 연관된 복수의 선택가능 옵션들(714)(예컨대, 상이한 색상들, 텍스처들 등)을 포함한다. 예를 들어, 복수의 선택가능 옵션들(714) 중에서 옵션(714A)이 현재 선택되어 있다. 이 예에서, 옵션(714A)은 XR 환경(128) 내에서 행해진 마크들(예컨대, 흑색 마크들)에 대한 제1 외관에 대응한다. 도 7a에 도시된 바와 같이, 메뉴(712)는, 또한, XR 환경(128) 내에서 행해진 마크들의 두께를 조정하기 위한 슬라이더(716)를 포함한다.
블록(1008)에 의해 표현되는 바와 같이, 사용자 인터페이스를 디스플레이하는 동안, 본 방법(1000)은 물리적 객체를 이용한 마킹 입력을 검출하는 단계를 포함한다. 예를 들어, 마킹 입력은 스케치, 수기 텍스트, 낙서, 및/또는 기타 등등과 같은 2D 또는 3D XR 콘텐츠의 생성에 대응한다. 일부 구현예들에서, 컴퓨팅 시스템은 물리적 객체에 대한 병진 값 및 회전 값을 획득(예컨대, 수신, 검색, 또는 결정)하며, 여기에서 제1 이동을 검출하는 것은 물리적 객체에 대한 병진 값 또는 회전 값 중 하나에 대한 변화를 검출하는 것에 대응한다. 예를 들어, 컴퓨팅 시스템은 컴퓨터 비전, 자기 센서들, 및/또는 기타 등등을 통해 물리적 객체를 추적한다. 일례로서, 물리적 객체는 컴퓨팅 시스템에 대한 통신 채널이 없는, 연필, 펜 등과 같은 프록시 객체에 대응한다. 다른 예로서, 물리적 객체는 6DOF 추적을 위한 IMU, 가속도계, 자이로스코프, 및/또는 기타 등등을 포함하는 컴퓨팅 시스템에 대한 유선 또는 무선 통신 채널을 갖는, 스타일러스, 핑거 웨어러블 디바이스 등과 같은 전자 디바이스에 대응한다.
일부 구현예들에서, 컴퓨팅 시스템은 세계 전반 또는 현재 동작 환경에 대한 병진 값들(예컨대, x, y 및 z), 회전 값들(예컨대, 롤, 피치 및 요), 그립 포즈 표시(예컨대, 포인팅, 필기, 지우기, 페인팅, 받아쓰기 등), 현재 사용되는 팁/단부 표시(예컨대, 물리적 객체는 특정 제1 팁 및 제2 팁을 갖는 비대칭 설계 또는 비특정 제1 팁 및 제2 팁을 갖는 대칭 설계를 가질 수 있음), 물리적 객체가 물리적 표면에 대해 얼마나 세게 눌리고 있는지와 연관된 제1 입력(압력) 값, 물리적 객체가 사용자에 의해 얼마나 세게 파지되고 있는지와 연관된 제2 입력(압력) 값, 및/또는 기타 등등을 포함하는 물리적 객체에 대한 하나 이상의 N-투플 추적 벡터들/텐서들(예컨대, 도 5a 및 도 5b의 객체 추적 벡터(511))을 유지한다.
일부 구현예들에서, 물리적 객체는 종방향으로 연장되는 터치 감응형 표면과 같은, 그에 대한 터치 입력들을 검출하도록 구성된 터치 감응형 표면/영역을 포함한다. 일부 구현예들에서, 물리적 객체에 대한 병진 값 및 회전 값을 획득하는 것은 물리적 객체로부터의 관성 측정 유닛(IMU) 데이터, 물리적 객체를 포함하는 물리적 환경의 하나 이상의 이미지들, 자기 추적 데이터, 및/또는 기타 등등 중 적어도 하나에 기초하여 물리적 객체에 대한 병진 값 및 회전 값을 결정하는 것을 포함한다.
블록(1010)에 의해 표현되는 바와 같이, 마킹 입력을 검출하는 것에 응답하여, 그리고 마킹 입력이 물리적 표면(예컨대, 테이블 상판, 다른 평면형 표면 등)으로 지향된다는 결정에 따라, 본 방법(1000)은, 디스플레이 디바이스를 통해, 마킹 입력(예컨대, 마킹 입력의 형상, 크기, 배향 등)에 기초하여 사용자 인터페이스 내에 마크를 디스플레이하는 단계를 포함하며, 여기에서 마킹 입력에 기초하여 디스플레이되는 마크의 파라미터는 물리적 객체가 물리적 표면에 대해 얼마나 세게 눌리고 있는지에 기초하여 결정된다. 일부 구현예들에서, 컴퓨팅 시스템 또는 그의 컴포넌트(예컨대, 도 5a의 파라미터 조정기(528))는 마킹 입력이 물리적 표면(예컨대, 테이블 상판, 다른 평면형 표면 등)으로 지향된다는 결정에 따라 물리적 객체가 물리적 표면에 대해 얼마나 세게 눌리고 있는지(예컨대, 제1 입력(압력) 값)에 기초하여 XR 환경(128)에 대한 검출된 마킹 입력과 연관된 출력 파라미터(예컨대, 마크들의 두께, 밝기, 색상, 텍스처 등)를 조정한다. 일부 구현예들에서, 파라미터는 사용자 인터페이스 내의 마크의 반경, 폭, 두께, 세기, 반투명도, 불투명도, 색상, 또는 텍스처 중 하나에 대응한다(1014).
일부 구현예들에 따르면, 마크의 파라미터는 3차원 환경에서 물리적 표면과 접촉하는 물리적 객체의 팁과 같은 물리적 객체의 미리정의된 부분이 물리적 표면에 대해 얼마나 세게 눌리고 있는지에 기초하여 결정된다. 일례로서, 물리적 객체는 물리적 표면에 대해 눌릴 때 제1 입력(압력) 값을 검출하기 위해 그의 단부들/팁들 중 하나 또는 둘 모두에 압력 센서들을 갖는 전자 디바이스에 대응한다. 일부 구현예들에서, 컴퓨팅 시스템은 물리적 표면 상의 마킹 입력을 XR 환경 내의 3D 마킹 영역 또는 2D 캔버스에 맵핑한다. 예를 들어, 마킹 영역 및 물리적 표면은 Y cm만큼 오프셋된 수직 평면들에 대응한다.
일례로서, 도 7g 및 도 7h는 마킹 입력(772)의 검출이 입력(압력) 값의 측정치(779)에 따라 XR 환경(128) 내에 마크들(782A, 782B)이 디스플레이되게 하는 시퀀스를 예시한다. 예를 들어, 마크들(782A, 782B)의 형상, 깊이, 길이, 각도 등은 도 7g의 마킹 입력(772)의 공간 파라미터들(예컨대, 마킹 입력과 연관된 위치 값들, 회전 값들, 변위, 공간 가속도, 공간 속도, 각가속도, 각속도 등)에 대응한다. 게다가, 도 7h에서, 마크들(782A, 782B)은 도 7g의 입력(압력) 값의 측정치(779)에 대응하는 제1 두께 값과 연관된다.
다른 예로서, 도 7i 및 도 7j는 마킹 입력(792)의 검출이 입력(압력) 값의 측정치(799)에 따라 XR 환경(128) 내에 마크들(7102A, 7102B)이 디스플레이되게 하는 시퀀스를 예시한다. 예를 들어, 마크들(7102A, 7102B)의 형상, 깊이, 길이, 각도 등은 도 7i의 마킹 입력(792)의 공간 파라미터들(예컨대, 마킹 입력과 연관된 위치 값들, 회전 값들, 변위, 공간 가속도, 공간 속도, 각가속도, 각속도 등)에 대응한다. 게다가, 도 7j에서, 마크들(7102A, 7102B)은 도 7i의 입력(압력) 값의 현재 측정치(799)에 대응하는 제2 두께 값과 연관된다. 예를 들어, 마크들(7102A, 7102B)과 연관된 제2 두께 값은 마크들(782A, 782B)과 연관된 제1 두께 값보다 크다.
블록(1012)에 의해 표현되는 바와 같이, 마킹 입력을 검출하는 것에 응답하여, 그리고 마킹 입력이 물리적 표면으로 지향되지 않는다는 결정에 따라, 본 방법(1000)은, 디스플레이 디바이스를 통해, 마킹 입력(예컨대, 마킹 입력의 형상, 크기, 배향 등)에 기초하여 사용자 인터페이스 내에 마크를 디스플레이하는 단계를 포함하며, 여기에서 마킹 입력에 기초하여 디스플레이되는 마크의 파라미터는 물리적 객체가 사용자에 의해 얼마나 세게 파지되고 있는지에 기초하여 결정된다. 일부 구현예들에서, 컴퓨팅 시스템 또는 그의 컴포넌트(예컨대, 도 5a의 파라미터 조정기(528))는 마킹 입력이 물리적 표면으로 지향되지 않는다는 결정에 따라 물리적 객체가 사용자(149)에 의해 얼마나 세게 파지되고 있는지(예컨대, 제2 입력(압력) 값)에 기초하여 XR 환경(128)에 대한 검출된 마킹 입력과 연관된 출력 파라미터(예컨대, 마크들의 두께, 밝기, 색상, 텍스처 등)를 조정한다. 일부 구현예들에서, 파라미터는 사용자 인터페이스 내의 마크의 반경, 폭, 두께, 세기, 반투명도, 불투명도, 색상, 또는 텍스처 중 하나에 대응한다(1014).
일부 구현예들에 따르면, 컴퓨팅 시스템은 물리적 객체 또는 물리적 객체의 팁과 같은 물리적 객체의 미리정의된 부분이 3차원 환경에서 어떠한 물리적 표면과도 접촉하지 않는 동안 마킹 입력을 검출한다. 예를 들어, 물리적 객체는 사용자에 의해 파지될 때 제2 입력(압력) 값을 검출하기 위해 압력 센서들이 내장된 전자 디바이스에 대응한다.
일례로서, 도 7a 및 도 7b는 마킹 입력(715)의 검출이 입력(압력) 값의 현재 측정치(719)에 따라 XR 환경(128) 내에 마크(722)가 디스플레이되게 하는 시퀀스를 예시한다. 예를 들어, 마크(722)의 형상, 깊이, 길이, 각도 등은 마킹 입력(715)의 공간 파라미터들(예컨대, 마킹 입력과 연관된 위치 값들, 회전 값들, 변위, 공간 가속도, 공간 속도, 각가속도, 각속도 등)에 대응한다. 게다가, 도 7b에서, 마크(722)는 도 7a의 입력(압력) 값의 현재 측정치(719)에 대응하는 제1 두께 값과 연관된다.
다른 예로서, 도 7c 및 도 7d는 마킹 입력(732)의 검출이 입력(압력) 값의 측정치(739)에 따라 XR 환경(128) 내에 마크(742)가 디스플레이되게 하는 시퀀스를 예시한다. 예를 들어, 마크(742)의 형상, 깊이, 길이, 각도 등은 마킹 입력(732)의 공간 파라미터들에 대응한다. 게다가, 도 7d에서, 마크(742)는 도 7c의 입력(압력) 값의 현재 측정치(739)에 대응하는 제2 두께 값과 연관된다. 예를 들어, 마크(742)와 연관된 제2 두께 값은 마크(722)와 연관된 제1 두께 값보다 크다.
일부 구현예들에서, 블록(1016)에 의해 표현되는 바와 같이, 본 방법(1000)은, 사용자 인터페이스 내에 마크를 디스플레이한 후에, 사용자 인터페이스 내에서 마크를 이동(예컨대, 병진 및/또는 회전)시키는 것과 연관된, 물리적 객체를 이용한 후속 입력을 검출하는 단계; 및 후속 입력을 검출하는 것에 응답하여, 후속 입력에 기초하여 사용자 인터페이스 내에서 마크를 이동시키는 단계를 포함한다. 일례로서, 도 7e 및 도 7f는 전자 디바이스가 조작 입력(752)을 검출하는 것에 응답하여 XR 환경(128) 내에서 마크(742)를 병진시키는 시퀀스를 예시한다. 예를 들어, 마크(742)의 병진 이동의 각도, 방향성, 변위 등은 도 7e의 조작 입력(752)의 공간 파라미터들에 대응한다. 일부 구현예들에서, 조작 입력(752)은, 또한, 조작 입력(752)의 회전 파라미터들에 기초하여 마크(742)의 회전 이동을 야기할 수 있다.
일부 구현예들에서, 블록(1018)에 의해 표현되는 바와 같이, 후속 입력을 검출하는 것은, 물리적 객체 상의 어포던스가 작동되었다는 표시를 획득하는 것; 및 물리적 객체의 회전 또는 병진 이동 중 적어도 하나를 검출하는 것에 대응한다. 예를 들어, 어포던스의 작동은 제어 디바이스(130)의 터치 감응형 표면에 대한 터치 입력의 검출에 대응한다. 일례로서, 도 7e 및 도 7f는 전자 디바이스(120)가 도 7e에서 제어 디바이스(130)의 터치 감응형 표면(175)에 대한 터치 입력(754)을 또한 검출하면서 조작 입력(752)을 검출하는 것에 응답하여 XR 환경(128) 내에서 마크(742)를 병진시키는 시퀀스를 예시한다.
일부 구현예들에서, 블록(1020)에 의해 표현되는 바와 같이, 후속 입력을 검출하는 것은, 물리적 객체가 사용자에 의해 얼마나 세게 파지되고 있는지와 연관된 입력 값이 임계 입력 값을 초과한다는 표시를 획득하는 것; 및 물리적 객체의 회전 또는 병진 이동 중 적어도 하나를 검출하는 것에 대응한다. 예를 들어, 입력(압력) 값은 후속 입력의 선택 부분에 대응한다. 일부 구현예들에서, 압력 임계치는 사용자 선호도들, 사용 이력, 현재 콘텐츠, 현재 콘텍스트 등과 같은 하나 이상의 인자들에 기초하여 비결정론적(즉, 미리결정된 압력 값) 또는 결정론적이다.
일부 구현예들에서, 블록(1022)에 의해 표현되는 바와 같이, 후속 입력을 검출하는 것에 응답하여, 본 방법(1000)은, 사용자 인터페이스 내에서 마크를 이동시키는 동안 사용자 인터페이스 내의 적어도 일부 콘텐츠의 외관을 변경하는 단계를 포함한다. 예를 들어, 컴퓨팅 시스템은 2D 캔버스 또는 3D 마킹 영역과 같은 적어도 일부 콘텐츠의 불투명도, 반투명도, 블러 반경 등을 증가시킨다.
일부 구현예들에서, 블록(1024)에 의해 표현되는 바와 같이, 마킹 입력을 검출하는 것에 응답하여, 그리고 마킹 입력이 물리적 표면으로 지향된다는 결정에 따라, 본 방법(1000)은, 디스플레이 디바이스를 통해, 물리적 표면과 물리적 객체 사이의 거리에 대응하는 시뮬레이션된 그림자를 XR 환경 내에 디스플레이하는 단계를 포함한다. 일부 구현예들에서, 그림자의 크기, 각도 등은 물리적 객체가 물리적 표면에 가까워지거나 그로부터 멀어짐에 따라 변화한다. 일례로서, 물리적 객체가 물리적 표면으로부터 더 멀리 이동함에 따라, 시뮬레이션된 그림자의 크기가 증가하고, 연관된 불투명도 값이 감소한다. 이 예를 계속하면, 물리적 객체가 물리적 표면에 더 가깝게 이동함에 따라, 시뮬레이션된 그림자의 크기는 감소하고, 연관된 불투명도 값은 증가한다. 일부 구현예들에서, 마킹 입력이 물리적 표면으로 지향되지 않을 때 그림자가 또한 표시될 수 있다.
일례로서, 도 7k 및 도 7l은 전자 디바이스(120)가 터치 입력(7111)과 연관된 제1 콘텐츠 배치 입력을 검출하는 것에 응답하여 입력(압력) 값의 현재 측정치(7119)에 따라 XR 환경(128) 내에 제1 XR 콘텐츠(7122)를 디스플레이하는 시퀀스를 예시한다. 도 7l에 도시된 바와 같이, 전자 디바이스(120)는, 또한, 제1 XR 콘텐츠(7122)와 연관된 그림자(7124)를 XR 기판(7118) 상에 디스플레이한다. 예를 들어, 제1 XR 콘텐츠(7122) 및 그림자(7124)의 위치 값 및 회전 값은 도 7k에서 터치 입력(7111)이 검출되었을 때의 제어 디바이스(130)의 표현(131)의 파라미터들(예컨대, 위치 값들, 회전 값들 등)에 대응한다. 예를 들어, 제1 XR 콘텐츠(7122)는 도 7k의 입력(압력) 값의 현재 측정치(7119)에 대응하는 제1 크기 값과 연관된다.
다른 예로서, 도 7m 및 도 7n은 전자 디바이스(120)가 터치 입력(7131)과 연관된 제2 콘텐츠 배치 입력을 검출하는 것에 응답하여 입력(압력) 값의 측정치(7139)에 따라 XR 환경(128) 내에 제2 XR 콘텐츠(7142)를 디스플레이하는 시퀀스를 예시한다. 도 7n에 도시된 바와 같이, 전자 디바이스(120)는 XR 기판(7118) 상에 제2 XR 콘텐츠(7142)와 연관된 그림자를 디스플레이하지 않는다. 예를 들어, 제2 XR 콘텐츠(7142)의 위치 값 및 회전 값은 도 7m에서 터치 입력(7131)이 검출되었을 때의 제어 디바이스(130)의 표현(131)의 파라미터들(예컨대, 위치 값들, 회전 값들 등)에 대응한다. 예를 들어, 제2 XR 콘텐츠(7142)는 도 7k의 입력(압력) 값의 현재 측정치(7139)에 대응하는 제2 크기 값과 연관된다. 예를 들어, 제2 XR 콘텐츠(7142)와 연관된 제2 크기 값은 제1 XR 콘텐츠(7122)와 연관된 제1 크기 값보다 크다.
도 11은 일부 구현예들에 따른, 사용자가 물리적 객체를 현재 파지하고 있는지 여부에 기초하여 선택 양식을 변경하는 방법(1100)의 흐름도 표현이다. 다양한 구현예들에 따르면, 본 방법(1100)은 비일시적 메모리 및 하나 이상의 프로세서들을 포함하는 컴퓨팅 시스템에서 수행되며, 여기에서 컴퓨팅 시스템은 디스플레이 디바이스 및 하나 이상의 입력 디바이스들에 통신가능하게 결합된다(예컨대, 도 1 및 도 3에 도시된 전자 디바이스(120); 도 1 및 도 2의 제어기(110); 또는 이들의 적합한 조합). 일부 구현예들에서, 방법(1100)은 하드웨어, 펌웨어, 소프트웨어, 또는 이들의 조합을 포함하는 프로세싱 로직에 의해 수행된다. 일부 구현예들에서, 방법(1100)은 비일시적 컴퓨터 판독가능 매체(예를 들어, 메모리)에 저장된 코드를 실행하는 프로세서에 의해 수행된다. 일부 구현예들에서, 컴퓨팅 시스템은 태블릿, 랩톱, 모바일 폰, 근안 시스템, 웨어러블 컴퓨팅 디바이스 등 중 하나에 대응한다.
전형적으로, 사용자는 사용자 인터페이스 내에서 콘텐츠를 내비게이팅할 때, 터치 입력들, 음성 커맨드들 등과 같은 하나 이상의 입력 양식들로 제한된다. 게다가, 하나 이상의 입력 양식들은, 차량을 운행하는 동안, 움직이고 있는 동안, 손들이 가득 차 있는 동안 등과 같은 현재 콘텍스트에 관계없이 적용가능할 수 있으며, 이는 사용성 및 안전 우려들을 유발할 수 있다. 대조적으로, 본 명세서에서 설명된 방법은 사용자가 포인팅 그립으로 물리적 객체(예컨대, 프록시 객체 또는 스타일러스)를 보유하지 않을 때 시선 방향에 기초하여 콘텐츠를 선택할 수 있게 하고, 또한, 사용자가 포인팅 그립으로 물리적 객체를 보유할 때 물리적 객체의 방향에 기초하여 콘텐츠를 선택할 수 있게 한다. 이와 같이, 콘텐츠를 선택하기 위한 입력 양식은 현재 콘텍스트에 기초하여 동적으로 변화한다.
블록(1102)에 의해 표현되는 바와 같이, 본 방법(1100)은, 디스플레이 디바이스를 통해, 콘텐츠를 디스플레이하는 단계를 포함한다. 일례로서, 콘텐츠는 XR 환경 내의 볼류메트릭 또는 3D 콘텐츠에 대응한다. 다른 예로서, 콘텐츠는 사용자 인터페이스(UI) 내의 플랫 또는 2D 콘텐츠에 대응한다. 예를 들어, 도 8a 내지 도 8d를 참조하면, 전자 디바이스(120)는 XR 환경(128) 내에 VA(606) 및 XR 콘텐츠(802)를 디스플레이한다.
일부 구현예들에서, 디스플레이 디바이스는 투명 렌즈 조립체에 대응하며, 여기에서 콘텐츠의 제시는 투명 렌즈 조립체 상에 투사된다. 일부 구현예들에서, 디스플레이 디바이스는 근안 시스템에 대응하며, 여기에서 콘텐츠를 제시하는 것은 콘텐츠의 제시를 외부-대면 이미지 센서에 의해 캡처된 물리적 환경의 하나 이상의 이미지들과 합성하는 것을 포함한다.
블록(1104)에 의해 표현되는 바와 같이, 콘텐츠를 디스플레이하는 동안, 그리고 물리적 객체가 사용자에 의해 보유되고 있는 동안, 본 방법(1100)은 선택 입력을 검출하는 단계를 포함한다. 일례로서, 물리적 객체는 연필, 펜 등과 같은, 컴퓨팅 시스템에 대한 통신 채널이 없는, 물리적 환경 내에서 검출된 프록시 객체에 대응한다. 도 8a 내지 도 8d를 참조하면, 전자 디바이스(120)는 XR 환경(128) 내에 사용자(149)의 오른손(152)의 표현(153)이 프록시 객체(804)(예컨대, 스틱, 자, 또는 다른 물리적 객체)의 표현(805)을 파지한 것을 디스플레이한다. 예를 들어, 사용자(149)의 오른손(152)은 포인팅 그립 포즈로 프록시 객체(804)를 현재 파지하고 있다. 다른 예로서, 물리적 객체는 스타일러스, 핑거 웨어러블 디바이스, 핸드헬드 디바이스 등과 같은, 컴퓨팅 시스템에 대한 유선 또는 무선 통신 채널을 갖는 전자 디바이스에 대응한다. 도 8e 내지 도 8g를 참조하면, 전자 디바이스(120)는 XR 환경(128) 내에 사용자(149)의 오른손(152)의 표현(153)이 제어 디바이스(130)의 표현(131)을 파지한 것을 디스플레이한다. 예를 들어, 사용자(149)의 오른손(152)은 XR 환경(128) 내의 어떠한 XR 콘텐츠도 가리키지 않는 필기 그립 포즈로 제어 디바이스(130)를 현재 파지하고 있다.
블록(1106)에 의해 표현되는 바와 같이, 선택 입력을 검출하는 것에 응답하여, 본 방법(1100)은 선택 입력에 대응하는 동작을 수행하는 단계를 포함한다. 일부 구현예들에서, 컴퓨팅 시스템 또는 그의 컴포넌트(예컨대, 도 5a의 콘텐츠 선택 엔진(522))는 특성화 벡터(531)(또는 그의 일부분)에 기초하여 선택된 콘텐츠 부분(523)을 결정한다. 예를 들어, 콘텐츠 선택 엔진(522)은 현재 콘텍스트 정보, 사용자(149)의 시선 방향, 사용자(149)와 연관된 신체 포즈 정보, 사용자(149)와 연관된 헤드 포즈 정보, 사용자(149)와 연관된 손/손발 추적 정보, 물리적 객체와 연관된 위치 정보, 물리적 객체와 연관된 회전 정보, 및/또는 기타 등등에 기초하여 선택된 콘텐츠 부분(523)을 결정한다.
일례로서, 콘텐츠 선택 엔진(522)은 물리적 객체가 사용자에 의해 보유되고 있는 방식과 연관된 그립 포즈가 제1 그립(예컨대, 제1 그립 = 포인팅/완드 유사 그립)에 대응한다는 결정에 따라 물리적 객체의 미리결정된 부분(예컨대, 외향 대면 단부)(예컨대, 그로부터 투사되는 광선)이 가리키고 있는 방향에 기초하여 콘텐츠의 제1 부분에 대해 선택 동작을 수행한다. 다른 예로서, 콘텐츠 선택 엔진(522)은 물리적 객체가 사용자에 의해 보유되고 있는 방식과 연관된 그립 포즈가 제1 그립에 대응하지 않는다는 결정에 따라 사용자의 시선 방향에 기초하여 콘텐츠의 제2 부분에 대해 선택 동작을 수행한다.
일부 구현예들에서, 블록(1108)에 의해 표현되는 바와 같이, 본 방법(1100)은 콘텐츠의 제1 부분 또는 제2 부분의 외관을 변경하는 단계를 포함한다. 일례로서, 콘텐츠의 제1 부분 또는 제2 부분의 외관을 변경하는 것은 그가 선택되었음을 나타내기 위해 콘텐츠의 제1 부분 또는 제2 부분의 색상, 텍스처, 밝기 등을 변경하는 것에 대응한다. 다른 예로서, 콘텐츠의 제1 부분 또는 제2 부분의 외관을 변경하는 것은 그가 선택되었음을 나타내기 위해 콘텐츠의 제1 부분 또는 제2 부분과 연관하여 경계 박스, 하이라이팅, 스포트라이트, 및/또는 기타 등등을 디스플레이하는 것에 대응한다. 예를 들어, 도 8c를 참조하면, 전자 디바이스(120)는 도 8a 및 도 8b에서 프록시 객체(804)가 적어도 미리결정된 또는 결정론적 기간 동안 XR 콘텐츠(802)를 가리키는 것을 검출하는 것에 응답하여 그의 선택을 시각적으로 나타내기 위해 XR 콘텐츠(802)의 외관을 크로스-해칭 외관(802A)으로 변경한다. 예를 들어, 도 6d를 참조하면, 전자 디바이스(120)는 제어 디바이스(130)의 표현(131)의 공간적 위치가 그래픽 요소(632D)에 대한 활성화 영역(634)을 위반하게 하는 제어 디바이스(130)의 이동을 검출하는 것에 응답하여 그의 선택을 나타내기 위해 그래픽 요소(632D) 주위에 경계 또는 프레임(642)을 디스플레이함으로써 그래픽 요소(632D)의 외관을 변경한다.
블록(1110)에 의해 표현되는 바와 같이, 물리적 객체가 사용자에 의해 보유되고 있는 방식과 연관된 그립 포즈가 제1 그립(예컨대, 제1 그립 = 포인팅/완드 유사 그립)에 대응한다는 결정에 따라, 본 방법(1100)은 콘텐츠의 제1 부분에 대해 선택 동작을 수행하는 단계를 포함하며, 여기에서 콘텐츠의 제1 부분은 (예컨대, 사용자의 시선의 방향에 관계없이) 물리적 객체의 미리결정된 부분(예컨대, 외향 대면 단부)(예컨대, 그로부터 투사되는 광선)이 가리키고 있는 방향에 기초하여 선택된다. 일부 구현예들에서, 컴퓨팅 시스템 또는 그의 컴포넌트(예컨대, 도 5a의 콘텐츠 선택 엔진(522))는 물리적 객체가 사용자에 의해 보유되고 있는 방식과 연관된 그립 포즈가 제1 그립(예컨대, 제1 그립 = 포인팅/완드 유사 그립)에 대응한다는 결정에 따라 물리적 객체의 미리결정된 부분(예컨대, 외향 대면 단부)(예컨대, 그로부터 투사되는 광선)이 가리키고 있는 방향에 기초하여 콘텐츠의 제1 부분에 대해 선택 동작을 수행한다. 일례로서, 도 8b 및 도 8c는, 프록시 객체(804)(또는 그의 표현(805))가 적어도 미리결정된 또는 결정론적 기간 동안 XR 콘텐츠(802)를 가리키는 것을 검출하는 것에 응답하여, 그리고 물리적 객체(804)가 사용자(149)에 의해 보유되고 있는 방식과 연관된 그립 포즈가 제1 그립(예컨대, 포인팅 그립)에 대응한다는 결정에 따라, 전자 디바이스(120)가 XR 콘텐츠(802)를 선택하는 시퀀스를 예시한다.
일부 구현예들에서, 컴퓨팅 시스템은 물리적 객체에 대한 병진 값 및 회전 값을 획득(예컨대, 수신, 검색, 또는 결정)하고, 물리적 객체가 사용자에 의해 보유되고 있는 현재 방식과 연관된 그립 포즈를 획득(예컨대, 수신, 검색, 또는 결정)한다. 예를 들어, 컴퓨팅 시스템은 컴퓨터 비전, 자기 센서들, 및/또는 기타 등등을 통해 물리적 객체를 추적한다. 일례로서, 물리적 객체는 컴퓨팅 시스템에 대한 통신 채널이 없는, 연필, 펜 등과 같은 프록시 객체에 대응한다. 다른 예로서, 물리적 객체는 6DOF 추적을 위한 IMU, 가속도계, 자이로스코프, 및/또는 기타 등등을 포함하는 컴퓨팅 시스템에 대한 유선 또는 무선 통신 채널을 갖는, 스타일러스, 핑거 웨어러블 디바이스 등과 같은 전자 디바이스에 대응한다. 일부 구현예들에서, 컴퓨팅 시스템은 세계 전반 또는 현재 동작 환경에 대한 병진 값들(예컨대, x, y 및 z), 회전 값들(예컨대, 롤, 피치 및 요), 그립 포즈 표시(예컨대, 포인팅, 필기, 지우기, 페인팅, 받아쓰기 등의 포즈), 현재 사용되는 팁/단부 표시(예컨대, 물리적 객체는 특정 제1 팁 및 제2 팁을 갖는 비대칭 설계 또는 비특정 제1 팁 및 제2 팁을 갖는 대칭 설계를 가질 수 있음), 물리적 객체가 물리적 표면에 대해 얼마나 세게 눌리고 있는지와 연관된 제1 입력(압력) 값, 물리적 객체가 사용자에 의해 얼마나 세게 파지되고 있는지와 연관된 제2 입력(압력) 값, 및/또는 기타 등등을 포함하는 물리적 객체에 대한 하나 이상의 N-투플 추적 벡터들/텐서들을 유지한다. 일부 구현예들에서, 물리적 객체는 종방향으로 연장되는 터치 감응형 표면과 같은, 그에 대한 터치 입력들을 검출하도록 구성된 터치 감응형 표면/영역을 포함한다. 일부 구현예들에서, 물리적 객체에 대한 병진 값 및 회전 값을 획득하는 것은 물리적 객체로부터의 IMU 데이터, 물리적 객체를 포함하는 물리적 환경의 하나 이상의 이미지들, 자기 추적 데이터, 및/또는 기타 등등 중 적어도 하나에 기초하여 물리적 객체에 대한 병진 값 및 회전 값을 결정하는 것을 포함한다.
블록(1112)에 의해 표현되는 바와 같이, 물리적 객체가 사용자에 의해 보유되고 있는 방식과 연관된 그립 포즈가 제1 그립에 대응하지 않는다는 결정에 따라, 본 방법(1100)은 콘텐츠의 제1 부분과는 상이한 콘텐츠의 제2 부분에 대해 선택 동작을 수행하는 단계를 포함하며, 여기에서 콘텐츠의 제2 부분은 (예컨대, 물리적 객체의 미리결정된 부분으로부터 투사되는 광선의 방향에 관계없이) 사용자의 시선 방향에 기초하여 선택된다. 일부 구현예들에서, 컴퓨팅 시스템 또는 그의 컴포넌트(예컨대, 도 5a의 눈 추적 엔진(512))는 세계 전반 또는 현재 동작 환경에 대한 시선 방향, 초점 거리 또는 초점, 및/또는 기타 등등과 연관된 x 좌표 및 y 좌표를 포함하는 눈 추적 벡터(513)를 결정하고 업데이트한다. 일부 구현예들에서, 컴퓨팅 시스템은 내부-대면 이미지 센서들로부터의 사용자의 눈(들)의 하나 이상의 이미지들에 기초하여 눈 추적 벡터(513)를 결정한다. 일부 구현예들에서, 컴퓨팅 시스템은 시선 방향(예컨대, NxM mm ROI)에 기초하여 XR 환경(128) 내의 관심 영역(ROI)을 결정한다.
일부 구현예들에서, 컴퓨팅 시스템 또는 그의 컴포넌트(예컨대, 도 5a의 콘텐츠 선택 엔진(522))는 물리적 객체가 사용자에 의해 보유되고 있는 방식과 연관된 그립 포즈가 제1 그립에 대응하지 않는다는 결정에 따라 사용자의 시선 방향에 기초하여 콘텐츠의 제2 부분에 대해 선택 동작을 수행한다. 일례로서, 도 8e 및 도 8f는, 사용자(149)의 시선 방향(806)이 적어도 미리결정된 또는 결정론적 기간 동안 XR 콘텐츠(802)로 지향되는 것을 검출하는 것에 응답하여, 그리고 물리적 객체(130)가 사용자(149)에 의해 보유되고 있는 방식과 연관된 그립 포즈가 제1 그립에 대응하지 않는다는 결정에 따라, 전자 디바이스(120)가 XR 콘텐츠(802)를 선택하는 시퀀스를 예시한다.
일부 구현예들에서, 블록(1114)에 의해 표현되는 바와 같이, 그립 포즈가 제1 그립에 대응한다는 결정에 따라, 본 방법(1100)은, 디스플레이 디바이스를 통해, 물리적 객체의 미리결정된 부분이 콘텐츠에 대해 가리키고 있는 방향을 나타내는 제1 그래픽 요소를 디스플레이하는 단계를 포함한다. 예를 들어, 제1 그래픽 요소는, 물리적 객체의 미리결정된 부분으로부터 투사된 광선이 XR 환경(128) 내의 콘텐츠, 2D 캔버스, 3D 마킹 영역, 백플레인(backplane), 및/또는 기타 등등과 일치하는 일치점에 디스플레이된다. 일례로서, 도 8a를 참조하면, 전자 디바이스(120)는 프록시 객체(804)의 표현(805)의 팁/단부로부터 나오는 광선과 XR 콘텐츠(802) 사이의 일치점에 대응하는 제1 표시자 요소(812A)를 XR 콘텐츠(802) 상에 제1 크기로 디스플레이한다.
일부 구현예들에서, 제1 그래픽 요소의 크기 파라미터(예컨대, 반경)는 콘텐츠의 제1 부분과 물리적 객체 사이의 거리의 함수이다(1116). 일부 구현예들에서, 제1 표시자 요소의 크기는 콘텐츠의 제1 부분과 물리적 객체 사이의 거리가 감소함에 따라 증가하고, 제1 표시자 요소의 크기는 콘텐츠의 제1 부분과 물리적 객체 사이의 거리가 증가함에 따라 감소한다. 일례로서, 도 8a를 참조하면, 전자 디바이스(120)는 프록시 객체(804)의 표현(805)의 팁/단부로부터 나오는 광선과 XR 콘텐츠(802) 사이의 일치점에 대응하는 제1 표시자 요소(812A)를 XR 콘텐츠(802) 상에 제1 크기로 디스플레이한다. 이 예에서, 제1 표시자 요소(812A)의 크기는 제1 거리(814)의 함수이다. 다른 예로서, 도 8b를 참조하면, 전자 디바이스(120)는 프록시 객체(804)의 표현(805)의 팁/단부로부터 나오는 광선과 XR 콘텐츠(802) 사이의 일치점에 대응하는 제2 표시자 요소(812B)를 XR 콘텐츠(802) 상에 제2 크기로 디스플레이한다. 도 8b에 도시된 바와 같이, 프록시 객체(804)의 표현(805)은 XR 콘텐츠(802)로부터 제2 거리(824)에 있으며, 이러한 제2 거리는 도 8a의 제1 거리(814)보다 작다. 예를 들어, 제2 표시자 요소(812B)의 제2 크기는 제1 표시자 요소(812A)의 제1 크기보다 크다.
일부 구현예들에서, 블록(1118)에 의해 표현되는 바와 같이, 그립 포즈가 제1 그립에 대응하지 않는다는 결정에 따라, 본 방법(1100)은, 디스플레이 디바이스를 통해, 콘텐츠에 대한 사용자의 시선 방향을 나타내는 제2 그래픽 요소를 디스플레이하는 단계를 포함한다. 예를 들어, 제2 그래픽 요소는 제1 그래픽 요소와는 상이하다. 예를 들어, 제2 그래픽 요소는, 사용자의 하나 이상의 눈들로부터 투사된 광선이 XR 환경 내의 콘텐츠, 2D 캔버스, 3D 마킹 영역, 백플레인, 및/또는 기타 등등에 부딪치는 일치점에 디스플레이된다. 예를 들어, 도 8e를 참조하면, 전자 디바이스(120)는 눈 추적에 기초하여 사용자(149)의 눈들의 XR 환경(128) 내의 초점과 연관된 시선 방향 표시자 요소(852)를 XR 콘텐츠(802) 상에 디스플레이한다.
일부 구현예들에서, 제2 그래픽 요소의 크기 파라미터(예컨대, 반경)는 사용자의 하나 이상의 눈들과 콘텐츠의 제2 부분 사이의 거리의 함수이다(1120). 일부 구현예들에서, 제2 표시자 요소의 크기는 콘텐츠의 제1 부분과 물리적 객체 사이의 거리가 감소함에 따라 증가하고, 제2 표시자 요소의 크기는 콘텐츠의 제1 부분과 물리적 객체 사이의 거리가 증가함에 따라 감소한다.
일부 구현예들에서, 블록(1122)에 의해 표현되는 바와 같이, 본 방법(1100)은, 콘텐츠를 디스플레이하는 동안, 콘텐츠를 이동(예컨대, 병진 및/또는 회전)시키는 것과 연관된, 물리적 객체를 이용한 후속 입력을 검출하는 단계; 및 후속 입력을 검출하는 것에 응답하여, 후속 입력에 기초하여 콘텐츠를 이동시키는 단계를 포함한다. 일례로서, 도 8d를 참조하면, 전자 디바이스(120)는 도 8c에서 프록시 객체(804)의 병진 이동(832)을 검출하는 것에 응답하여 XR 환경(128) 내에서 XR 콘텐츠(802)를 병진시킨다. 예를 들어, XR 환경(128) 내에서의 XR 콘텐츠(802)의 병진 이동의 방향성 및 변위는 도 8c의 프록시 객체(804)의 병진 이동(832)의 공간 파라미터들(예컨대, 위치 값들의 변화, 회전 값들의 변화, 변위, 공간 가속도, 공간 속도, 각가속도, 각속도 등)에 대응한다. 당업자는 XR 콘텐츠(802)가 유사하게 회전될 수 있다는 것을 인식할 것이다.
다른 예로서, 도 8g를 참조하면, 전자 디바이스(120)는 도 8f에서 시선 방향(806)의 병진 이동(862)을 검출하는 것에 응답하여 XR 환경(128) 내에서 XR 콘텐츠(802)를 병진시킨다. 예를 들어, XR 환경(128) 내에서의 XR 콘텐츠(802)의 병진 이동의 방향성 및 변위는 도 8f의 시선 방향(806)의 병진 이동(862)의 공간 파라미터들(예컨대, 위치 값들의 변화, 회전 값들의 변화, 변위, 공간 가속도, 공간 속도, 각가속도, 각속도 등)에 대응한다.
일부 구현예들에서, 후속 입력을 검출하는 것은, 물리적 객체 상의 어포던스가 작동되었다는 표시를 획득하는 것; 및 물리적 객체의 회전 또는 병진 이동 중 적어도 하나를 검출하는 것에 대응한다(1124). 예를 들어, 어포던스의 작동을 검출하는 것은 후속 입력의 선택 부분에 대응한다.
일부 구현예들에서, 후속 입력을 검출하는 것은, 물리적 객체가 사용자에 의해 얼마나 세게 파지되고 있는지와 연관된 입력 값이 임계 입력 값을 초과한다는 표시를 획득하는 것; 및 물리적 객체의 회전 또는 병진 이동 중 적어도 하나를 검출하는 것에 대응한다(1126). 예를 들어, 입력(압력) 값은 후속 입력의 선택 부분에 대응한다. 일부 구현예들에서, 압력 임계치는 사용자 선호도들, 사용 이력, 현재 콘텐츠, 현재 콘텍스트 등과 같은 하나 이상의 인자들에 기초하여 비결정론적(즉, 미리결정된 압력 값) 또는 결정론적이다.
일부 구현예들에서, 후속 입력의 크기는 콘텐츠의 이동의 크기를 결정하기 위해 증폭 계수에 의해 수정된다(1128). 일부 구현예들에서, 증폭 계수는 사용자 선호도들, 사용 이력, 선택된 콘텐츠, 현재 콘텍스트 등과 같은 하나 이상의 인자들에 기초하여 비결정론적(예컨대, 미리결정된 값) 또는 결정론적이다.
첨부된 청구범위의 범주 내의 구현예들의 다양한 양태들이 위에서 설명되지만, 위에서 설명된 구현예들의 다양한 특징들이 광범위하게 다양한 형태들로 구현될 수 있고 위에서 설명된 임의의 특정 구조 및/또는 기능이 단지 예시적이라는 것이 명백할 것이다. 본 개시내용에 기초하여, 당업자는 본 명세서에 설명된 양태가 임의의 다른 양태들과 독립적으로 구현될 수 있고 이들 양태들 중 2개 이상이 다양한 방식들로 조합될 수 있음을 이해해야 한다. 예를 들어, 본 명세서에 기재된 임의의 수의 양태들을 사용하여 장치가 구현될 수 있고 그리고/또는 방법이 실시될 수 있다. 부가적으로, 본 명세서에 기재된 양태들 중 하나 이상에 부가하여 또는 그 이외의 다른 구조 및/또는 기능을 사용하여 그러한 장치가 구현될 수 있고 그리고/또는 그러한 방법이 실시될 수 있다.
용어들 "제1", "제2" 등이 다양한 요소들을 설명하기 위해 본 명세서에서 사용될 수 있지만, 이들 요소들은 이들 용어들에 의해 제한되어서는 안 된다는 것이 또한 이해될 것이다. 이러한 용어들은 하나의 요소를 다른 요소와 구별하는 데에만 사용된다. 예를 들어, "제1 미디어 아이템"의 발생들이 일관되게 재명명되고 "제2 미디어 아이템"의 발생들이 일관되게 재명명되기만 한다면, 제1 미디어 아이템은 제2 미디어 아이템으로 지칭될 수 있고, 유사하게, 제2 미디어 아이템은 제1 미디어 아이템으로 지칭될 수 있으며, 이는 설명의 의미를 변경한다. 제1 미디어 아이템 및 제2 미디어 아이템은 둘 모두 미디어 아이템들이지만, 그들은 동일한 미디어 아이템은 아니다.
본 명세서에서 사용되는 용어는 특정 구현예들을 설명하는 목적만을 위한 것이고, 청구범위를 제한하도록 의도되지 않는다. 본 구현예들의 설명 및 첨부된 청구범위에 사용되는 바와 같이, 단수형들("a", "an" 및 "the")은 문맥상 명확하게 달리 나타나지 않으면 복수형들도 또한 포함하도록 의도된다. 또한, 본 명세서에서 사용되는 바와 같은 "및/또는"이라는 용어는 열거되는 연관된 항목들 중 하나 이상의 항목의 임의의 및 모든 가능한 조합들을 나타내고 그들을 포괄하는 것임이 이해될 것이다. 본 명세서에서 사용될 때 "포함한다(comprise)" 및/또는 "포함하는(comprising)"이라는 용어들은 진술되는 특징들, 정수들, 단계들, 동작들, 요소들, 및/또는 컴포넌트들의 존재를 특정하지만, 하나 이상의 다른 특징들, 정수들, 단계들, 동작들, 요소들, 컴포넌트들 및/또는 이들의 그룹들의 존재 또는 부가를 배제하지 않는다는 것이 추가로 이해될 것이다.
본 명세서에서 사용된 바와 같이, 용어 "~라면(if)"은 맥락에 의존하여, 언급된 선행 조건이 사실일 "때" 또는 그 조건이 사실일 "시에" 또는 그 조건이 사실이라고 "결정하는 것에 응답하여" 또는 그 조건이 사실이라는 "결정에 따라" 또는 그 조건이 사실이라는 것을 "검출하는 것에 응답하여"를 의미하는 것으로 해석될 수 있다. 유사하게, 어구 "[언급된 선행 조건이 사실이라고] 결정되는 경우" 또는 "[언급된 선행 조건이 사실]인 경우" 또는 "[언급된 선행 조건이 사실]일 때"는, 맥락에 의존하여, 언급된 선행 조건이 사실이라고 "결정할 시" 또는 그 조건이 사실이라고 "결정하는 것에 응답하여" 또는 그 조건이 사실이라는 "결정에 따라" 또는 그 조건이 사실임을 "검출할 시" 또는 그 조건이 사실임을 "검출하는 것에 응답하여"를 의미하는 것으로 해석될 수 있다.

Claims (47)

  1. 방법으로서,
    비일시적 메모리 및 하나 이상의 프로세서들을 포함하는 컴퓨팅 시스템에서 - 상기 컴퓨팅 시스템은 디스플레이 디바이스 및 하나 이상의 입력 디바이스들에 통신가능하게 결합됨 -,
    상기 디스플레이 디바이스를 통해, 확장 현실(XR) 환경 내에 제1 복수의 출력 양식들과 연관된 제1 복수의 그래픽 요소들을 디스플레이하는 단계;
    상기 제1 복수의 그래픽 요소들을 디스플레이하는 동안, 물리적 객체의 제1 이동을 검출하는 단계; 및
    상기 물리적 객체의 상기 제1 이동을 검출하는 것에 응답하여,
    상기 물리적 객체의 상기 제1 이동이 상기 물리적 객체로 하여금 상기 제1 복수의 그래픽 요소들 중 제1 그래픽 요소에 대한 거리 임계치를 위반하게 한다는 결정에 따라, 상기 제1 그래픽 요소와 연관된 제1 출력 양식을 상기 물리적 객체에 대한 현재 출력 양식으로서 선택하고;
    상기 물리적 객체의 상기 제1 이동이 상기 물리적 객체로 하여금 상기 제1 복수의 그래픽 요소들 중 제2 그래픽 요소에 대한 상기 거리 임계치를 위반하게 한다는 결정에 따라, 상기 제2 그래픽 요소와 연관된 제2 출력 양식을 상기 물리적 객체에 대한 상기 현재 출력 양식으로서 선택하는 단계를 포함하는, 방법.
  2. 제1항에 있어서, 상기 제1 출력 양식 및 상기 제2 출력 양식은 상기 XR 환경 내에서 상이한 시각적 변화들을 야기하는, 방법.
  3. 제1항 또는 제2항에 있어서,
    상기 물리적 객체의 상기 제1 이동이 상기 물리적 객체로 하여금 상기 제1 복수의 그래픽 요소들 중 상기 제1 그래픽 요소에 대한 상기 거리 임계치를 위반하게 한다는 결정에 따라,
    상기 물리적 객체에 인접한 상기 제1 그래픽 요소의 디스플레이를 유지하고;
    상기 제1 그래픽 요소를 포함하지 않는 상기 제1 복수의 그래픽 요소들 중 나머지의 디스플레이를 중지하는 단계; 및
    상기 물리적 객체의 상기 제1 이동이 상기 물리적 객체로 하여금 상기 제1 복수의 그래픽 요소들 중 상기 제2 그래픽 요소에 대한 상기 거리 임계치를 위반하게 한다는 상기 결정에 따라,
    상기 물리적 객체에 인접한 상기 제2 그래픽 요소의 디스플레이를 유지하고;
    상기 제2 그래픽 요소를 포함하지 않는 상기 제1 복수의 그래픽 요소들 중 나머지의 디스플레이를 중지하는 단계를 추가로 포함하는, 방법.
  4. 제3항에 있어서,
    상기 제1 그래픽 요소와 연관된 상기 제1 출력 양식을 상기 물리적 객체에 대한 상기 현재 출력 양식으로서 선택한 후에, 상기 물리적 객체의 제2 이동을 검출하는 단계; 및
    상기 물리적 객체의 상기 제2 이동을 검출하는 것에 응답하여, 상기 물리적 객체에 인접한 상기 제1 그래픽 요소의 디스플레이를 유지하기 위해 상기 물리적 객체의 상기 제2 이동에 기초하여 상기 제1 그래픽 요소를 이동시키는 단계를 추가로 포함하는, 방법.
  5. 제3항 또는 제4항에 있어서,
    상기 제1 복수의 그래픽 요소들 중 상기 나머지의 디스플레이를 중지한 후에, 상기 물리적 객체에 대한 터치 입력의 표시를 획득하는 단계; 및
    상기 터치 입력의 상기 표시를 획득하는 것에 응답하여, 상기 디스플레이 디바이스를 통해, 상기 XR 환경 내에 상기 제1 복수의 그래픽 요소들을 재디스플레이하는 단계를 추가로 포함하는, 방법.
  6. 제1항 내지 제5항 중 어느 한 항에 있어서,
    상기 제1 복수의 그래픽 요소들을 디스플레이하기 전에, 상기 물리적 객체에 대한 터치 입력의 표시를 획득하는 단계를 추가로 포함하고,
    상기 XR 환경 내에 상기 제1 복수의 그래픽 요소들을 디스플레이하는 단계는 상기 터치 입력의 상기 표시를 획득하는 것에 응답하여 상기 XR 환경 내에 상기 제1 복수의 그래픽 요소들을 디스플레이하는 단계를 포함하는, 방법.
  7. 제1항 내지 제6항 중 어느 한 항에 있어서,
    상기 물리적 객체의 상기 제1 이동이 상기 물리적 객체로 하여금 상기 제1 그래픽 요소 또는 상기 제2 그래픽 요소에 대한 상기 거리 임계치를 위반하게 하지 않는다는 결정에 따라,
    상기 물리적 객체에 대한 상기 현재 출력 양식으로서 초기 출력 양식을 유지하고;
    상기 제1 복수의 그래픽 요소들의 디스플레이를 유지하는 단계를 추가로 포함하는, 방법.
  8. 제1항 내지 제7항 중 어느 한 항에 있어서,
    상기 제1 그래픽 요소와 연관된 상기 제1 출력 양식을 상기 물리적 객체에 대한 상기 현재 출력 양식으로서 선택한 후에, 상기 물리적 객체를 이용한 후속 마킹 입력을 검출하는 단계; 및
    상기 후속 마킹 입력을 검출하는 것에 응답하여, 상기 디스플레이 디바이스를 통해, 상기 후속 마킹 입력 및 상기 제1 출력 양식에 기초하여 상기 XR 환경 내에 하나 이상의 마크들을 디스플레이하는 단계를 추가로 포함하는, 방법.
  9. 제8항에 있어서,
    상기 후속 마킹 입력을 검출하는 것에 응답하여,
    상기 물리적 객체가 물리적 표면에 대해 얼마나 세게 눌리고 있는지와 연관된 입력이 제1 입력 값에 대응한다는 결정에 따라, 상기 디스플레이 디바이스를 통해, 상기 후속 마킹 입력 및 상기 제1 출력 양식에 기초하여 상기 XR 환경 내에 하나 이상의 마크들을 제1 외관으로 디스플레이하고 - 상기 제1 외관은 상기 제1 입력 값에 대응하는 상기 하나 이상의 마크들의 파라미터와 연관됨 -;
    상기 물리적 객체가 물리적 표면에 대해 얼마나 세게 눌리고 있는지와 연관된 상기 입력이 제2 입력 값에 대응한다는 결정에 따라, 상기 디스플레이 디바이스를 통해, 상기 후속 마킹 입력 및 상기 제1 출력 양식에 기초하여 상기 XR 환경 내에 하나 이상의 마크들을 제2 외관으로 디스플레이하는 - 상기 제2 외관은 상기 제2 입력 값에 대응하는 상기 하나 이상의 마크들의 상기 파라미터와 연관됨 - 단계를 추가로 포함하는, 방법.
  10. 제9항에 있어서, 상기 파라미터는 상기 XR 환경 내의 상기 하나 이상의 마크들의 반경, 폭, 두께, 세기, 반투명도, 불투명도, 색상, 또는 텍스처 중 하나에 대응하는, 방법.
  11. 제8항에 있어서,
    상기 후속 마킹 입력을 검출하는 것에 응답하여,
    상기 물리적 객체가 상기 사용자에 의해 얼마나 세게 파지되고 있는지와 연관된 입력이 제1 입력 값에 대응한다는 결정에 따라, 상기 디스플레이 디바이스를 통해, 상기 후속 마킹 입력 및 상기 제1 출력 양식에 기초하여 상기 XR 환경 내에 하나 이상의 마크들을 제1 외관으로 디스플레이하고 - 상기 제1 외관은 상기 제1 입력 값에 대응하는 상기 하나 이상의 마크들의 파라미터와 연관됨 -;
    상기 물리적 객체가 상기 사용자에 의해 얼마나 세게 파지되고 있는지와 연관된 상기 입력이 제2 입력 값에 대응한다는 결정에 따라, 상기 디스플레이 디바이스를 통해, 상기 후속 마킹 입력 및 상기 제1 출력 양식에 기초하여 상기 XR 환경 내에 하나 이상의 마크들을 제2 외관으로 디스플레이하는 - 상기 제2 외관은 상기 제2 입력 값에 대응하는 상기 하나 이상의 마크들의 상기 파라미터와 연관됨 - 단계를 추가로 포함하는, 방법.
  12. 제11항에 있어서, 상기 파라미터는 상기 XR 환경 내의 상기 하나 이상의 마크들의 반경, 폭, 두께, 세기, 반투명도, 불투명도, 색상, 또는 텍스처 중 하나에 대응하는, 방법.
  13. 제1항 내지 제12항 중 어느 한 항에 있어서,
    상기 제1 복수의 그래픽 요소들을 디스플레이하기 전에, 상기 물리적 객체가 사용자에 의해 보유되고 있는 현재 방식과 연관된 그립 포즈를 획득하는 단계 - 상기 제1 복수의 그래픽 요소들은 상기 그립 포즈의 함수임 -; 및
    상기 그립 포즈를 획득하는 것에 응답하여,
    상기 그립 포즈가 제1 그립 포즈에 대응한다는 결정에 따라, 상기 디스플레이 디바이스를 통해, 상기 XR 환경 내에 상기 제1 복수의 출력 양식들과 연관된 상기 제1 복수의 그래픽 요소들을 디스플레이하고;
    상기 그립 포즈가 상기 제1 그립 포즈와는 상이한 제2 그립 포즈에 대응한다는 결정에 따라, 상기 디스플레이 디바이스를 통해, 상기 XR 환경 내에 제2 복수의 출력 양식들과 연관된 제2 복수의 그래픽 요소들을 디스플레이하는 단계를 추가로 포함하는, 방법.
  14. 제13항에 있어서,
    상기 XR 환경 내에 상기 제1 복수의 출력 양식들과 연관된 상기 제1 복수의 그래픽 요소들을 디스플레이한 후에, 상기 제1 그립 포즈로부터 상기 제2 그립 포즈로의 상기 그립 포즈의 변화를 검출하는 단계; 및
    상기 그립 포즈의 상기 변화를 검출하는 것에 응답하여, 상기 XR 환경 내의 상기 제1 복수의 그래픽 요소들의 디스플레이를 상기 XR 환경 내의, 상기 제2 복수의 출력 양식들과 연관된 상기 제2 복수의 그래픽 요소들로 대체하는 단계를 추가로 포함하는, 방법.
  15. 제1항 내지 제14항 중 어느 한 항에 있어서,
    상기 제1 복수의 그래픽 요소들을 디스플레이하기 전에, 상기 물리적 객체의 제1 단부가 또는 제2 단부가 외향으로 향하고 있는지를 나타내는 정보를 획득하는 단계; 및
    상기 물리적 객체의 상기 제1 단부가 또는 상기 제2 단부가 외향으로 향하고 있는지를 나타내는 상기 정보를 획득하는 것에 응답하여,
    상기 물리적 객체의 상기 제1 단부가 외향으로 향하고 있다는 결정에 따라, 상기 디스플레이 디바이스를 통해, 상기 XR 환경 내에 상기 제1 복수의 출력 양식들과 연관된 상기 제1 복수의 그래픽 요소들을 디스플레이하고;
    상기 물리적 객체의 상기 제2 단부가 외향으로 향하고 있다는 결정에 따라, 상기 디스플레이 디바이스를 통해, 상기 XR 환경 내에 제2 복수의 출력 양식들과 연관된 제2 복수의 그래픽 요소들을 디스플레이하는 단계를 추가로 포함하는, 방법.
  16. 제15항에 있어서,
    상기 XR 환경 내에 상기 제1 복수의 출력 양식들과 연관된 상기 제1 복수의 그래픽 요소들을 디스플레이한 후에, 상기 물리적 객체의 제1 단부가 외향으로 향하는 것으로부터 상기 물리적 객체의 제2 단부가 외향으로 향하는 것으로의 변화를 검출하는 단계; 및
    상기 물리적 객체의 상기 제1 단부가 외향으로 향하는 것으로부터 상기 물리적 객체의 상기 제2 단부가 외향으로 향하는 것으로의 상기 변화를 검출하는 것에 응답하여, 상기 디스플레이 디바이스를 통해, 상기 XR 환경 내에 상기 제2 복수의 출력 양식들과 연관된 상기 제2 복수의 그래픽 요소들을 디스플레이하는 단계를 추가로 포함하는, 방법.
  17. 디바이스로서,
    하나 이상의 프로세서들;
    비일시적 메모리;
    디스플레이 디바이스 및 하나 이상의 입력 디바이스들과 통신하기 위한 인터페이스; 및
    상기 비일시적 메모리에 저장된 하나 이상의 프로그램들을 포함하며, 상기 하나 이상의 프로그램들은, 상기 하나 이상의 프로세서들에 의해 실행될 때, 상기 디바이스로 하여금 제1항 내지 제16항 중 어느 한 항의 방법을 수행하게 하는, 디바이스.
  18. 하나 이상의 프로그램들을 저장하는 비일시적 메모리로서, 상기 하나 이상의 프로그램들은, 디스플레이 디바이스 및 하나 이상의 입력 디바이스들과 통신하기 위한 인터페이스를 갖는 디바이스의 하나 이상의 프로세서들에 의해 실행될 때, 상기 디바이스로 하여금 제1항 내지 제16항 중 어느 한 항의 방법을 수행하게 하는, 비일시적 메모리.
  19. 디바이스로서,
    하나 이상의 프로세서들;
    비일시적 메모리;
    디스플레이 디바이스 및 하나 이상의 입력 디바이스들과 통신하기 위한 인터페이스; 및
    상기 디바이스로 하여금 제1항 내지 제16항 중 어느 한 항의 방법을 수행하게 하기 위한 수단을 포함하는, 디바이스.
  20. 방법으로서,
    비일시적 메모리 및 하나 이상의 프로세서들을 포함하는 컴퓨팅 시스템에서 - 상기 컴퓨팅 시스템은 디스플레이 디바이스 및 하나 이상의 입력 디바이스들에 통신가능하게 결합됨 -,
    상기 디스플레이 디바이스를 통해, 사용자 인터페이스를 디스플레이하는 단계;
    상기 사용자 인터페이스를 디스플레이하는 동안, 물리적 객체를 이용한 마킹 입력을 검출하는 단계; 및
    상기 마킹 입력을 검출하는 것에 응답하여,
    상기 마킹 입력이 물리적 표면으로 지향된다는 결정에 따라, 상기 디스플레이 디바이스를 통해, 상기 마킹 입력에 기초하여 상기 사용자 인터페이스 내에 마크를 디스플레이하고 - 상기 마킹 입력에 기초하여 디스플레이되는 상기 마크의 파라미터는 상기 물리적 객체가 상기 물리적 표면에 대해 얼마나 세게 눌리고 있는지에 기초하여 결정됨 -;
    상기 마킹 입력이 상기 물리적 표면으로 지향되지 않는다는 결정에 따라, 상기 디스플레이 디바이스를 통해, 상기 마킹 입력에 기초하여 상기 사용자 인터페이스 내에 상기 마크를 디스플레이하는 - 상기 마킹 입력에 기초하여 디스플레이되는 상기 마크의 파라미터는 상기 물리적 객체가 상기 사용자에 의해 얼마나 세게 파지되고 있는지에 기초하여 결정됨 - 단계를 포함하는, 방법.
  21. 제20항에 있어서, 상기 파라미터는 상기 사용자 인터페이스 내의 상기 마크의 반경, 폭, 두께, 세기, 반투명도, 불투명도, 색상, 또는 텍스처 중 하나에 대응하는, 방법.
  22. 제20항 또는 제21항에 있어서, 상기 사용자 인터페이스는 2차원 마킹 영역을 포함하고, 상기 2차원 마킹 영역 상에 상기 마크가 디스플레이되는, 방법.
  23. 제20항 또는 제21항에 있어서, 상기 사용자 인터페이스는 3차원 마킹 영역을 포함하고, 상기 3차원 마킹 영역 내에 상기 마크가 디스플레이되는, 방법.
  24. 제20항 내지 제23항 중 어느 한 항에 있어서,
    상기 사용자 인터페이스 내에 상기 마크를 디스플레이한 후에, 상기 사용자 인터페이스 내에서 상기 마크를 이동시키는 것과 연관된, 상기 물리적 객체를 이용한 후속 입력을 검출하는 단계; 및
    상기 후속 입력을 검출하는 것에 응답하여, 상기 후속 입력에 기초하여 상기 사용자 인터페이스 내에서 상기 마크를 이동시키는 단계를 추가로 포함하는, 방법.
  25. 제24항에 있어서, 상기 후속 입력을 검출하는 단계는,
    상기 물리적 객체 상의 어포던스가 작동되었다는 표시를 획득하는 단계; 및
    상기 물리적 객체의 회전 또는 병진 이동 중 적어도 하나를 검출하는 단계에 대응하는, 방법.
  26. 제24항에 있어서, 상기 후속 입력을 검출하는 단계는,
    상기 물리적 객체가 상기 사용자에 의해 얼마나 세게 파지되고 있는지와 연관된 입력 값이 임계 입력 값을 초과한다는 표시를 획득하는 단계; 및
    상기 물리적 객체의 회전 또는 병진 이동 중 적어도 하나를 검출하는 단계에 대응하는, 방법.
  27. 제24항 내지 제26항 중 어느 한 항에 있어서,
    상기 후속 입력을 검출하는 것에 응답하여, 상기 사용자 인터페이스 내에서 상기 마크를 이동시키는 동안 상기 사용자 인터페이스 내의 적어도 일부 콘텐츠의 외관을 변경하는 단계를 추가로 포함하는, 방법.
  28. 제24항 내지 제27항 중 어느 한 항에 있어서,
    상기 마킹 입력을 검출하는 것에 응답하여,
    상기 마킹 입력이 상기 물리적 표면으로 지향된다는 결정에 따라, 상기 디스플레이 디바이스를 통해, 상기 물리적 표면과 상기 물리적 객체 사이의 거리에 대응하는 시뮬레이션된 그림자를 상기 XR 환경 내에 디스플레이하는 단계를 추가로 포함하는, 방법.
  29. 제20항 내지 제28항 중 어느 한 항에 있어서,
    상기 디스플레이 디바이스를 통해, 사용자 인터페이스 내에 마킹과 연관된 복수의 상이한 선택가능 도구들을 갖는 사용자 인터페이스 요소를 디스플레이하는 단계를 추가로 포함하는, 방법.
  30. 제29항에 있어서, 상기 사용자 인터페이스 요소는 공간 내의 한 지점에 앵커링되는, 방법.
  31. 제29항에 있어서, 상기 사용자 인터페이스 요소는 상기 컴퓨팅 시스템의 사용자의 시야 내의 한 지점에 앵커링되는, 방법.
  32. 디바이스로서,
    하나 이상의 프로세서들;
    비일시적 메모리;
    디스플레이 디바이스 및 하나 이상의 입력 디바이스들과 통신하기 위한 인터페이스; 및
    상기 비일시적 메모리에 저장된 하나 이상의 프로그램들을 포함하며, 상기 하나 이상의 프로그램들은, 상기 하나 이상의 프로세서들에 의해 실행될 때, 상기 디바이스로 하여금 제20항 내지 제31항 중 어느 한 항의 방법을 수행하게 하는, 디바이스.
  33. 하나 이상의 프로그램들을 저장하는 비일시적 메모리로서, 상기 하나 이상의 프로그램들은, 디스플레이 디바이스 및 하나 이상의 입력 디바이스들과 통신하기 위한 인터페이스를 갖는 디바이스의 하나 이상의 프로세서들에 의해 실행될 때, 상기 디바이스로 하여금 제20항 내지 제31항 중 어느 한 항의 방법을 수행하게 하는, 비일시적 메모리.
  34. 디바이스로서,
    하나 이상의 프로세서들;
    비일시적 메모리;
    디스플레이 디바이스 및 하나 이상의 입력 디바이스들과 통신하기 위한 인터페이스; 및
    상기 디바이스로 하여금 제20항 내지 제31항 중 어느 한 항의 방법을 수행하게 하기 위한 수단을 포함하는, 디바이스.
  35. 방법으로서,
    비일시적 메모리 및 하나 이상의 프로세서들을 포함하는 컴퓨팅 시스템에서 - 상기 컴퓨팅 시스템은 디스플레이 디바이스 및 하나 이상의 입력 디바이스들에 통신가능하게 결합됨 -,
    상기 디스플레이 디바이스를 통해, 콘텐츠를 디스플레이하는 단계;
    상기 콘텐츠를 디스플레이하는 동안, 그리고 물리적 객체가 사용자에 의해 보유되고 있는 동안, 선택 입력을 검출하는 단계; 및
    상기 선택 입력을 검출하는 것에 응답하여, 상기 선택 입력에 대응하는 동작을 수행하는 단계를 포함하고, 상기 선택 입력에 대응하는 동작을 수행하는 단계는,
    상기 물리적 객체가 상기 사용자에 의해 보유되고 있는 방식과 연관된 그립 포즈가 제1 그립에 대응한다는 결정에 따라, 상기 콘텐츠의 제1 부분에 대해 선택 동작을 수행하는 단계 - 상기 콘텐츠의 상기 제1 부분은 상기 물리적 객체의 미리결정된 부분이 가리키고 있는 방향에 기초하여 선택됨 -; 및
    상기 물리적 객체가 상기 사용자에 의해 보유되고 있는 상기 방식과 연관된 상기 그립 포즈가 상기 제1 그립에 대응하지 않는다는 결정에 따라, 상기 콘텐츠의 상기 제1 부분과는 상이한 상기 콘텐츠의 제2 부분에 대해 상기 선택 동작을 수행하는 단계 - 상기 콘텐츠의 상기 제2 부분은 상기 사용자의 시선 방향에 기초하여 선택됨 - 를 포함하는, 방법.
  36. 제35항에 있어서, 상기 선택 동작을 수행하는 단계는 상기 콘텐츠의 상기 제1 부분 또는 상기 제2 부분의 외관을 변경하는 단계를 포함하는, 방법.
  37. 제35항 또는 제36항에 있어서,
    상기 그립 포즈가 상기 제1 그립에 대응한다는 상기 결정에 따라, 상기 디스플레이 디바이스를 통해, 상기 물리적 객체의 상기 미리결정된 부분이 상기 콘텐츠에 대해 가리키고 있는 상기 방향을 나타내는 제1 그래픽 요소를 디스플레이하는 단계를 추가로 포함하는, 방법.
  38. 제37항에 있어서, 상기 제1 그래픽 요소의 크기 파라미터는 상기 콘텐츠의 상기 제1 부분과 상기 물리적 객체 사이의 거리의 함수인, 방법.
  39. 제35항 또는 제36항에 있어서,
    상기 그립 포즈가 상기 제1 그립에 대응하지 않는다는 상기 결정에 따라, 상기 디스플레이 디바이스를 통해, 상기 콘텐츠에 대한 상기 사용자의 상기 시선 방향을 나타내는 제2 그래픽 요소를 디스플레이하는 단계를 추가로 포함하는, 방법.
  40. 제39항에 있어서, 상기 제2 그래픽 요소의 크기 파라미터는 상기 사용자의 하나 이상의 눈들과 상기 콘텐츠의 제2 부분 사이의 거리의 함수인, 방법.
  41. 제35항 내지 제40항 중 어느 한 항에 있어서,
    상기 콘텐츠를 디스플레이하는 동안, 상기 콘텐츠를 이동시키는 것과 연관된, 상기 물리적 객체를 이용한 후속 입력을 검출하는 단계; 및
    상기 후속 입력을 검출하는 것에 응답하여, 상기 후속 입력에 기초하여 상기 콘텐츠를 이동시키는 단계를 추가로 포함하는, 방법.
  42. 제41항에 있어서, 상기 후속 입력을 검출하는 단계는,
    상기 물리적 객체 상의 어포던스가 작동되었다는 표시를 획득하는 단계; 및
    상기 물리적 객체의 회전 또는 병진 이동 중 적어도 하나를 검출하는 단계에 대응하는, 방법.
  43. 제41항에 있어서, 상기 후속 입력을 검출하는 단계는,
    상기 물리적 객체가 상기 사용자에 의해 얼마나 세게 파지되고 있는지와 연관된 입력 값이 임계 입력 값을 초과한다는 표시를 획득하는 단계; 및
    상기 물리적 객체의 회전 또는 병진 이동 중 적어도 하나를 검출하는 단계에 대응하는, 방법.
  44. 제41항 내지 제43항 중 어느 한 항에 있어서, 상기 후속 입력의 크기는 상기 콘텐츠의 상기 이동의 크기를 결정하기 위해 증폭 계수에 의해 수정되는, 방법.
  45. 디바이스로서,
    하나 이상의 프로세서들;
    비일시적 메모리;
    디스플레이 디바이스 및 하나 이상의 입력 디바이스들과 통신하기 위한 인터페이스; 및
    상기 비일시적 메모리에 저장된 하나 이상의 프로그램들을 포함하며, 상기 하나 이상의 프로그램들은, 상기 하나 이상의 프로세서들에 의해 실행될 때, 상기 디바이스로 하여금 제35항 내지 제44항 중 어느 한 항의 방법을 수행하게 하는, 디바이스.
  46. 하나 이상의 프로그램들을 저장하는 비일시적 메모리로서, 상기 하나 이상의 프로그램들은, 디스플레이 디바이스 및 하나 이상의 입력 디바이스들과 통신하기 위한 인터페이스를 갖는 디바이스의 하나 이상의 프로세서들에 의해 실행될 때, 상기 디바이스로 하여금 제35항 내지 제44항 중 어느 한 항의 방법을 수행하게 하는, 비일시적 메모리.
  47. 디바이스로서,
    하나 이상의 프로세서들;
    비일시적 메모리;
    디스플레이 디바이스 및 하나 이상의 입력 디바이스들과 통신하기 위한 인터페이스; 및
    상기 디바이스로 하여금 제35항 내지 제44항 중 어느 한 항의 방법을 수행하게 하기 위한 수단을 포함하는, 디바이스.
KR1020247003129A 2021-07-27 2022-07-26 물리적 객체와의 사용자 인터페이스에 대한 상호작용들을 관리하기 위한 방법 및 디바이스 KR20240036582A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US202163226070P 2021-07-27 2021-07-27
US63/226,070 2021-07-27
PCT/US2022/038303 WO2023009492A1 (en) 2021-07-27 2022-07-26 Method and device for managing interactions directed to a user interface with a physical object

Publications (1)

Publication Number Publication Date
KR20240036582A true KR20240036582A (ko) 2024-03-20

Family

ID=82899043

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020247003129A KR20240036582A (ko) 2021-07-27 2022-07-26 물리적 객체와의 사용자 인터페이스에 대한 상호작용들을 관리하기 위한 방법 및 디바이스

Country Status (5)

Country Link
US (1) US20230042447A1 (ko)
EP (1) EP4377767A1 (ko)
KR (1) KR20240036582A (ko)
CN (1) CN117716327A (ko)
WO (1) WO2023009492A1 (ko)

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8947455B2 (en) * 2010-02-22 2015-02-03 Nike, Inc. Augmented reality design system
JP5792499B2 (ja) * 2011-04-07 2015-10-14 シャープ株式会社 電子機器、表示方法、および表示プログラム
US20130234967A1 (en) * 2012-03-12 2013-09-12 Matthew Stoddard Pressure sensitive multi-tip stylus for capacitive touchscreens and methods of using same
US20190347865A1 (en) * 2014-09-18 2019-11-14 Google Inc. Three-dimensional drawing inside virtual reality environment
US10254939B2 (en) * 2015-06-07 2019-04-09 Apple Inc. Device, method, and graphical user interface for providing and interacting with a virtual drawing aid
US10579237B2 (en) * 2016-03-29 2020-03-03 Microsoft Technology Licensing, Llc Guide objects for drawing in user interfaces
US10540084B2 (en) * 2016-04-29 2020-01-21 Promethean Limited Interactive display overlay systems and related methods
JP7069922B2 (ja) * 2018-03-26 2022-05-18 セイコーエプソン株式会社 表示装置、表示システムおよび表示装置の制御方法
US11086392B1 (en) * 2019-04-09 2021-08-10 Facebook Technologies, Llc Devices, systems, and methods for virtual representation of user interface devices
US11194411B1 (en) * 2020-08-20 2021-12-07 Lenovo (Singapore) Pte. Ltd. Use of sensors in electronic pens to execution functions
US11644907B2 (en) * 2021-02-26 2023-05-09 Logitech Europe S.A. Systems, devices, and methods for physical surface tracking with a stylus device in an AR/VR environment

Also Published As

Publication number Publication date
CN117716327A (zh) 2024-03-15
EP4377767A1 (en) 2024-06-05
US20230042447A1 (en) 2023-02-09
WO2023009492A1 (en) 2023-02-02

Similar Documents

Publication Publication Date Title
US10761612B2 (en) Gesture recognition techniques
US20220121344A1 (en) Methods for interacting with virtual controls and/or an affordance for moving virtual objects in virtual environments
US20220084279A1 (en) Methods for manipulating objects in an environment
US11625103B2 (en) Integration of artificial reality interaction modes
US9829989B2 (en) Three-dimensional user input
US11853527B2 (en) Devices, methods, and graphical user interfaces for providing computer-generated experiences
US11294475B1 (en) Artificial reality multi-modal input switching model
US20220317776A1 (en) Methods for manipulating objects in an environment
JP2014186361A (ja) 情報処理装置、操作制御方法及びプログラム
Qian et al. Portalware: Exploring free-hand AR drawing with a dual-display smartphone-wearable paradigm
US20230042447A1 (en) Method and Device for Managing Interactions Directed to a User Interface with a Physical Object
KR20240025593A (ko) 객체에 대한 동작 양식을 동적으로 선택하기 위한 방법 및 디바이스
US11641460B1 (en) Generating a volumetric representation of a capture region
US20230095282A1 (en) Method And Device For Faciliating Interactions With A Peripheral Device
CN118076941A (zh) 用于促进与外围设备进行交互的方法和设备
WO2023034070A1 (en) Method and device for invoking a writing surface

Legal Events

Date Code Title Description
A201 Request for examination