KR20240064014A - 가상 환경들에서 가상 객체들을 제시하기 위한 디바이스들, 방법들, 및 그래픽 사용자 인터페이스들 - Google Patents

가상 환경들에서 가상 객체들을 제시하기 위한 디바이스들, 방법들, 및 그래픽 사용자 인터페이스들 Download PDF

Info

Publication number
KR20240064014A
KR20240064014A KR1020247013915A KR20247013915A KR20240064014A KR 20240064014 A KR20240064014 A KR 20240064014A KR 1020247013915 A KR1020247013915 A KR 1020247013915A KR 20247013915 A KR20247013915 A KR 20247013915A KR 20240064014 A KR20240064014 A KR 20240064014A
Authority
KR
South Korea
Prior art keywords
user
dimensional environment
viewpoint
virtual objects
location
Prior art date
Application number
KR1020247013915A
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 KR20240064014A publication Critical patent/KR20240064014A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/011Arrangements for interaction with the human body, e.g. for user immersion in virtual reality
    • 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/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/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0484Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
    • G06F3/04842Selection of displayed objects or displayed text elements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0484Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
    • G06F3/04845Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range for image manipulation, e.g. dragging, rotation, expansion or change of colour
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/14Digital output to display device ; Cooperation and interconnection of the display device with other functional units
    • G06F3/1454Digital output to display device ; Cooperation and interconnection of the display device with other functional units involving copying of the display data of a local workstation or window to a remote workstation or window so that an actual copy of the data is displayed simultaneously on two or more displays, e.g. teledisplay
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/10Geometric effects
    • G06T15/20Perspective computation
    • 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
    • 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
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2219/00Indexing scheme for manipulating 3D models or images for computer graphics
    • G06T2219/024Multi-user, collaborative environment

Landscapes

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

Abstract

일부 실시예들에서, 전자 디바이스는 3차원 환경 내의 하나 이상의 가상 객체들의 공간 배열을 업데이트한다. 일부 실시예들에서, 전자 디바이스는 다수의 가상 객체들의 포지션들을 함께 업데이트한다. 일부 실시예들에서, 전자 디바이스는 3차원 환경 내의 바닥의 추정된 위치에 기초하여 3차원 환경에서 객체들을 디스플레이한다. 일부 실시예들에서, 전자 디바이스는 3차원 환경에서 객체들을 이동(예를 들어, 리포지셔닝)시킨다.

Description

가상 환경들에서 가상 객체들을 제시하기 위한 디바이스들, 방법들, 및 그래픽 사용자 인터페이스들
관련 출원의 상호 참조
본 출원은 2021년 9월 25자로 출원된 미국 가출원 제63/261,667호의 이익을 주장하며, 그 출원의 내용은 모든 목적들을 위해 그 전체가 참고로 본 명세서에 포함된다.
기술분야
본 발명은 일반적으로, 가상 환경들에서 그래픽 사용자 인터페이스들을 디스플레이 생성 컴포넌트를 통해 제시하는 전자 디바이스들을 포함하지만 이에 제한되지 않는, 그래픽 사용자 인터페이스들을 제시하는 하나 이상의 입력 디바이스들 및 디스플레이 생성 컴포넌트를 갖는 컴퓨터 시스템들에 관한 것이다.
증강 현실을 위한 컴퓨터 시스템들의 개발은 최근에 상당히 증가하였다. 예시적인 증강 현실 환경들은 물리적 세계를 대체하거나 증강시키는 적어도 일부 가상 요소들을 포함한다. 컴퓨터 시스템들 및 다른 전자 컴퓨팅 디바이스들에 대한 입력 디바이스들, 예컨대 카메라들, 제어기들, 조이스틱들, 터치-감응형 표면들, 및 터치-스크린 디스플레이들이 가상/증강 현실 환경들과 상호작용하기 위해 사용된다. 예시적인 가상 요소들은 디지털 이미지들, 비디오, 텍스트, 아이콘들, 및 버튼들 및 다른 그래픽들과 같은 제어 요소들을 포함하는 가상 객체들을 포함한다.
적어도 일부 가상 요소들(예를 들어, 애플리케이션들, 증강 현실 환경들, 혼합 현실 환경들, 및 가상 현실 환경들)을 포함하는 환경들과 상호작용하기 위한 일부 방법들 및 인터페이스들은 번거롭고, 비효율적이며, 제한된다. 예를 들어, 가상 객체들과 연관된 액션들을 수행하기 위한 불충분한 피드백을 제공하는 시스템들, 증강 현실 환경에서 원하는 결과를 달성하기 위해 일련의 입력들을 요구하는 시스템들, 및 가상 객체들의 조작이 복잡하고, 지루하며, 에러가 발생하기 쉬운 시스템들은 사용자에게 상당한 인지 부담을 생성하고, 가상/증강 현실 환경과의 경험을 손상시킨다. 부가적으로, 이러한 방법들은 필요 이상으로 오래 걸리며, 그에 의해, 에너지가 낭비된다. 이러한 후자의 고려사항은 배터리-작동형 디바이스들에서 특히 중요하다.
따라서, 컴퓨터 시스템들과의 상호작용을 사용자에게 더 효율적이고 직관적으로 만드는 컴퓨터 생성 경험들을 사용자들에게 제공하기 위한 개선된 방법들 및 인터페이스들을 갖는 컴퓨터 시스템들에 대한 필요성이 존재한다. 그러한 방법들 및 인터페이스들은 선택적으로, 확장 현실 경험들을 사용자들에게 제공하기 위한 종래의 방법들을 보완하거나 대체한다. 그러한 방법들 및 인터페이스들은, 사용자가 제공된 입력들과 입력들에 대한 디바이스 응답들 사이의 연결을 이해하는 데 도움을 줌으로써 사용자로부터의 입력들의 수, 크기, 및/또는 종류를 감소시키며, 그에 의해, 더 효율적인 인간-기계 인터페이스를 생성한다.
컴퓨터 시스템들에 대한 사용자 인터페이스들과 연관된 위의 결함들 및 다른 문제들은 개시된 시스템들에 의해 감소되거나 또는 제거된다. 일부 실시예들에서, 컴퓨터 시스템은 연관된 디스플레이를 갖는 데스크톱 컴퓨터이다. 일부 실시예들에서, 컴퓨터 시스템은 휴대용 디바이스(예를 들어, 노트북 컴퓨터, 태블릿 컴퓨터, 또는 핸드헬드 디바이스)이다. 일부 실시예들에서, 컴퓨터 시스템은 개인용 전자 디바이스(예를 들어, 시계 또는 머리 장착형 디바이스와 같은 웨어러블 전자 디바이스)이다. 일부 실시예들에서, 컴퓨터 시스템은 터치패드를 갖는다. 일부 실시예들에서, 컴퓨터 시스템은 하나 이상의 카메라들을 갖는다. 일부 실시예들에서, 컴퓨터 시스템은 터치 감응형 디스플레이("터치 스크린" 또는 "터치 스크린 디스플레이"로 또한 알려져 있음)를 갖는다. 일부 실시예들에서, 컴퓨터 시스템은 하나 이상의 눈 추적 컴포넌트들을 갖는다. 일부 실시예들에서, 컴퓨터 시스템은 하나 이상의 손 추적 컴포넌트들을 갖는다. 일부 실시예들에서, 컴퓨터 시스템은 디스플레이 생성 컴포넌트에 추가하여 하나 이상의 출력 디바이스들을 갖고, 출력 디바이스들은 하나 이상의 촉각적 출력 생성기들 및/또는 하나 이상의 오디오 출력 디바이스들을 포함한다. 일부 실시예들에서, 컴퓨터 시스템은 그래픽 사용자 인터페이스(GUI), 하나 이상의 프로세서들, 메모리, 및 다수의 기능들을 수행하기 위해 메모리에 저장되는 하나 이상의 모듈들, 프로그램들 또는 명령어들의 세트들을 갖는다. 일부 실시예들에서, 사용자는 터치-감응형 표면 상의 스타일러스 및/또는 손가락 접촉들 및 제스처들, 카메라들 및 다른 이동 센서들에 의해 캡처된 사용자의 신체 또는 GUI(및/또는 컴퓨터 시스템)에 대한 공간에서의 사용자의 눈들 및 손의 이동, 및/또는 하나 이상의 오디오 입력 디바이스들에 의해 캡처된 음성 입력들을 통해 GUI와 상호작용한다. 일부 실시예들에서, 상호작용들을 통해 수행되는 기능들은, 선택적으로, 이미지 편집, 드로잉, 프레젠팅(presenting), 워드 프로세싱, 스프레드시트 작성, 게임 하기, 전화 걸기, 화상 회의, 이메일 보내기, 인스턴트 메시징(instant messaging), 운동 지원, 디지털 사진촬영, 디지털 비디오 녹화, 웹 브라우징, 디지털 음악 재생, 메모하기(note taking), 및/또는 디지털 비디오 재생을 포함한다. 이러한 기능들을 수행하기 위한 실행가능 명령어들은, 선택적으로, 하나 이상의 프로세서들에 의한 실행을 위해 구성된 일시적 및/또는 비일시적 컴퓨터 판독가능 저장 매체 또는 다른 컴퓨터 프로그램 제품에 포함된다.
사용자 인터페이스들을 내비게이팅하기 위한 개선된 방법들 및 인터페이스들을 갖는 전자 디바이스들이 필요하다. 이러한 방법들 및 인터페이스들은 그래픽 사용자 인터페이스와 상호작용하기 위한 종래의 방법들을 보완하거나 대체할 수 있다. 그러한 방법들 및 인터페이스들은 사용자로부터의 입력들의 수, 크기, 및/또는 종류를 감소시키고 더 효율적인 인간-기계 인터페이스를 생성한다. 배터리-작동형 컴퓨팅 디바이스들의 경우, 그러한 방법들 및 인터페이스들은 전력을 보존하고 배터리 충전들 사이의 시간을 증가시킨다.
일부 실시예들에서, 전자 디바이스는 3차원 환경 내의 하나 이상의 가상 객체들의 공간 배열을 업데이트한다. 일부 실시예들에서, 전자 디바이스는 다수의 가상 객체들의 포지션들을 함께 업데이트한다. 일부 실시예들에서, 전자 디바이스는 3차원 환경 내의 바닥의 추정된 위치에 기초하여 3차원 환경에서 객체들을 디스플레이한다. 일부 실시예들에서, 전자 디바이스는 3차원 환경에서 객체들을 이동(예를 들어, 리포지셔닝)시킨다.
위에서 설명된 다양한 실시예들이 본 명세서에 설명된 임의의 다른 실시예들과 조합될 수 있다는 것을 유의한다. 본 명세서에 설명된 특징들 및 장점들은 모두를 포함하는 것은 아니며, 특히, 많은 부가적인 특징들 및 장점들이 도면들, 명세서 및 청구범위를 고려하여 당업자에게 명백할 것이다. 게다가, 본 명세서에 사용된 표현은 주로 이해의 편의 및 설명의 목적들을 위해 선택되었고, 본 발명의 요지를 서술하거나 제한하기 위해 선택되지 않았을 수 있다는 것을 유의해야 한다.
다양하게 설명된 실시예들의 보다 양호한 이해를 위해, 유사한 도면 부호들이 도면들 전체에 걸쳐 대응 부분들을 나타내는 하기의 도면들과 관련하여 하기의 발명을 실시하기 위한 구체적인 내용이 참조되어야 한다.
도 1은 일부 실시예들에 따른, XR 경험들을 제공하기 위한 컴퓨터 시스템의 동작 환경을 예시하는 블록도이다.
도 2는 일부 실시예들에 따른, 사용자에 대한 XR 경험을 관리 및 조정하도록 구성된 컴퓨터 시스템의 제어기를 예시하는 블록도이다.
도 3은 일부 실시예들에 따른, XR 경험의 시각적 컴포넌트를 사용자에게 제공하도록 구성된 컴퓨터 시스템의 디스플레이 생성 컴포넌트를 예시하는 블록도이다.
도 4는 일부 실시예들에 따른, 사용자의 제스처 입력들을 캡처하도록 구성된 컴퓨터 시스템의 손 추적 유닛을 예시하는 블록도이다.
도 5는 일부 실시예들에 따른, 사용자의 시선 입력들을 캡처하도록 구성된 컴퓨터 시스템의 눈 추적 유닛을 예시하는 블록도이다.
도 6a는 일부 실시예들에 따른, 글린트-보조 시선 추적 파이프라인을 예시하는 흐름도이다.
도 6b는 일부 실시예들에 따른, XR 경험들을 제공하는 전자 디바이스의 예시적인 환경을 예시한다.
도 7a 내지 도 7g는 일부 실시예들에 따른, 전자 디바이스가 3차원 환경 내의 하나 이상의 가상 객체들의 공간 배열을 어떻게 업데이트하는지의 예들을 예시한다.
도 8a 내지 도 8k는 일부 실시예들에 따른, 3차원 환경 내의 하나 이상의 가상 객체들의 공간 배열을 업데이트하는 방법을 예시하는 흐름도이다.
도 9a 내지 도 9g는 일부 실시예들에 따른, 전자 디바이스가 다수의 가상 객체들의 포지션들을 어떻게 함께 업데이트하는지의 예들을 예시한다.
도 10a 내지 도 10k는 일부 실시예들에 따른, 다수의 가상 객체들의 포지션들을 함께 업데이트하는 방법을 예시하는 흐름도이다.
도 11a 내지 도 11e는 일부 실시예들에 따른, 3차원 환경에 대한 바닥의 추정된 위치에 기초하여 3차원 환경에서 객체들을 디스플레이하는 예시적인 방식들을 예시한다.
도 12a 내지 도 12g는 일부 실시예들에 따른, 3차원 환경에 대한 바닥의 추정된 위치에 기초하여 3차원 환경에서 객체들을 디스플레이하는 방법을 예시하는 흐름도이다.
도 13a 내지 도 13d는 본 개시내용의 일부 실시예들에 따른, 3차원 환경에서 객체들을 이동시키는 예시적인 방식들을 예시한다.
도 14a 내지 도 14g는 일부 실시예들에 따른, 3차원 환경에서 객체들을 이동시키는 방법을 예시하는 흐름도이다.
본 개시내용은 일부 실시예들에 따른, 컴퓨터 생성 현실(XR) 경험을 사용자에게 제공하기 위한 사용자 인터페이스들에 관한 것이다.
본 명세서에 설명된 시스템들, 방법들, 및 GUI들은 전자 디바이스가 내비게이션 사용자 인터페이스 요소에서 표시된 물리적 위치들에 대응하는 콘텐츠를 제시하기 위한 개선된 방식들을 제공한다.
일부 실시예들에서, 컴퓨터 시스템은 3차원 환경에서, 하나 이상의 가상 객체들(예를 들어, 애플리케이션들의 사용자 인터페이스들, 다른 사용자들의 표현들, 콘텐츠 항목들 등)을 디스플레이한다. 일부 실시예들에서, 컴퓨터 시스템은 아래에서 더 상세히 설명되는 하나 이상의 공간 기준들에 따라 3차원 환경 내의 사용자의 시점에 대한 가상 객체들의 공간 배열을 평가한다. 일부 실시예들에서, 컴퓨터 시스템은 하나 이상의 공간 기준들을 만족시키기 위해 가상 객체들의 포지션들 및/또는 배향들을 업데이트하라는 요청에 대응하는 사용자 입력을 검출한다. 일부 실시예들에서, 입력에 응답하여, 컴퓨터 시스템은 하나 이상의 공간 기준들을 만족시키기 위해 가상 객체들의 포지션들 및/또는 배향들을 업데이트한다. 이러한 방식으로 가상 객체들의 포지션들 및/또는 배향들을 업데이트하는 것은 사용자가 가상 객체들에 액세스하거나, 이들을 보거나, 그리고/또는 이들과 상호작용할 수 있게 하는 효율적인 방식을 제공하며, 이는 부가적으로, 사용자가 컴퓨터 시스템을 더 신속하고 효율적으로 사용할 수 있게 함으로써 컴퓨터 시스템의 전력 사용량을 감소시키고 배터리 수명을 개선시킨다.
일부 실시예들에서, 컴퓨터 시스템은 3차원 환경 내의 컴퓨터 시스템의 사용자의 시점에 대해 복수의 가상 객체들의 포지션들 및/또는 배향들을 업데이트한다. 일부 실시예들에서, 컴퓨터 시스템은 사용자의 시점에 대해 복수의 가상 객체들의 포지션들 및/또는 배향들을 업데이트하라는 요청에 대응하는 입력을 수신한다. 일부 실시예들에서, 입력에 응답하여, 컴퓨터 시스템은 복수의 가상 객체들 사이의 공간 관계를 유지하면서 사용자의 시점에 대해 복수의 가상 객체들의 포지션들 및/또는 배향들을 업데이트한다. 이러한 방식으로 사용자의 시점에 대해 복수의 가상 객체들의 포지션들 및/또는 배향들을 업데이트하는 것은 사용자의 시점으로부터 3차원 환경의 뷰를 업데이트하는 효율적인 방식을 제공하며, 이는 부가적으로, 사용자가 컴퓨터 시스템을 더 신속하고 효율적으로 사용할 수 있게 함으로써 컴퓨터 시스템의 전력 사용량을 감소시키고 배터리 수명을 개선시킨다.
일부 실시예들에서, 컴퓨터 시스템은 컴퓨터 시스템의 물리적 환경 내의 물리적 바닥의 추정된 위치에 기초하여 3차원 환경에서 객체들을 제시한다. 일부 실시예들에서, 컴퓨터 시스템이 컴퓨터 시스템의 물리적 환경 내의 물리적 바닥의 추정된 위치에 기초하여 3차원 환경에서 객체들을 제시하고 있는 동안, 컴퓨터 시스템은 컴퓨터 시스템의 물리적 환경 내의 물리적 바닥의 새로운 추정된 위치를 결정한다. 일부 실시예들에서, 컴퓨터 시스템은 특정 조건들/기준들이 만족될 때까지 컴퓨터 시스템의 물리적 환경 내의 물리적 바닥의 이전의 추정된 위치에 기초하여 3차원 환경에서 객체들을 계속 제시한다. 특정 조건들/기준들이 만족될 때까지 물리적 바닥의 이전의 추정된 위치에 기초하여 3차원 환경에서 객체들을 디스플레이하는 것은 특정 조건들/기준들이 만족될 때 3차원 환경 내의 객체들의 위치를 업데이트하고, 그러한 조건들/기준들이 만족되기 전에는 업데이트하지 않는 효율적인 방식을 제공하며, 이는 부가적으로, 사용자가 컴퓨터 시스템을 더 신속하고 효율적으로 사용할 수 있게 함으로써 컴퓨터 시스템의 전력 사용량을 감소시키고 배터리 수명을 개선시킨다.
일부 실시예들에서, 컴퓨터 시스템은 3차원 환경에서 하나 이상의 사용자 인터페이스 객체들을 제시한다. 일부 실시예들에서, 컴퓨터 시스템은 3차원 환경 내의 개개의 사용자 인터페이스 객체를 3차원 환경 내의 새로운 위치로 이동시키라는(예를 들어, 리포지셔닝시키라는) 요청을 수신한다. 일부 실시예들에서, 개개의 사용자 인터페이스 객체를 3차원 환경 내의 새로운 위치로 이동시키는(예를 들어, 리포지셔닝시키는) 동안, 컴퓨터 시스템은 개개의 사용자 인터페이스 객체의 하나 이상의 부분들을 시각적으로 강조해제한다. 3차원 환경 내의 개개의 사용자 인터페이스 객체를 이동시키는 동안 개개의 사용자 인터페이스 객체의 부분들을 시각적으로 강조해제하는 것은 어지러움 또는 멀미 증상들을 유발할 수 있는 잠재적인 방향감각상실을 감소시키며, 따라서 사용자가 3차원 환경과 안전하게 상호작용할 수 있게 하는 메커니즘을 제공하고, 그에 의해, 3차원 환경과 상호작용할 때 사용자에 대한 인지적 부담을 감소시킨다.
도 1 내지 도 6은 (예컨대, 방법들(800, 1000, 1200, 1400)에 관해 아래에서 설명되는 바와 같이) XR 경험들을 사용자들에게 제공하기 위한 예시적인 컴퓨터 시스템들의 설명을 제공한다. 도 7a 내지 도 7g는 일부 실시예들에 따른, 3차원 환경 내의 하나 이상의 가상 객체들의 공간 배열을 업데이트하기 위한 예시적인 기법들을 예시한다. 도 8a 내지 도 8k는 일부 실시예들에 따른, 3차원 환경 내의 하나 이상의 가상 객체들의 공간 배열을 업데이트하는 방법을 예시하는 흐름도이다. 도 9a 내지 도 9g는 일부 실시예들에 따른, 다수의 가상 객체들의 포지션들을 함께 업데이트하기 위한 예시적인 기법들을 예시한다. 도 10a 내지 도 10k는 일부 실시예들에 따른, 다수의 가상 객체들의 포지션들을 함께 업데이트하는 방법을 예시하는 흐름도이다. 도 11a 내지 도 11e는 일부 실시예들에 따른, 3차원 환경에 대한 바닥의 추정된 위치에 기초하여 3차원 환경에서 객체들을 디스플레이하기 위한 예시적인 기법들을 예시한다. 도 12a 내지 도 12g는 일부 실시예들에 따른, 3차원 환경에 대한 바닥의 추정된 위치에 기초하여 3차원 환경에서 객체들을 디스플레이하는 방법을 예시하는 흐름도이다. 도 13a 내지 도 13d는 본 개시내용의 일부 실시예들에 따른, 3차원 환경에서 객체들을 이동시키기 위한 예시적인 기법들을 예시한다. 도 14a 내지 도 14g는 일부 실시예들에 따른, 3차원 환경에서 객체들을 이동시키는 방법을 예시하는 흐름도이다.
아래에서 설명되는 프로세스들은, 개선된 시각적 피드백을 사용자에게 제공하는 것, 동작을 수행하는 데 필요한 입력들의 수를 감소시키는 것, 부가적인 디스플레이된 제어부들을 이용하여 사용자 인터페이스를 혼란스럽게 하지 않으면서 부가적인 제어 옵션들을 제공하는 것, 조건들의 세트가 추가적인 사용자 입력을 요구하지 않으면서 충족되었을 때 동작을 수행하는 것, 프라이버시 및/또는 보안을 개선시키는 것, 및/또는 부가적인 기법들에 의한 것을 포함하는 다양한 기법들을 통해 (예를 들어, 디바이스를 동작시키거나/그와 상호작용할 때 사용자가 적절한 입력들을 제공하는 것을 돕고 사용자 실수들을 감소시킴으로써) 디바이스들의 작동성을 향상시키고 사용자-디바이스 인터페이스들을 더 효율적으로 만든다. 이러한 기법들은 또한, 사용자가 디바이스를 더 신속하고 효율적으로 사용할 수 있게 함으로써 디바이스의 전력 사용량을 감소시키고 배터리 수명을 개선시킨다.
부가적으로, 하나 이상의 단계들이 하나 이상의 조건들이 충족되었음을 조건으로 하는 본 명세서에서 설명되는 방법들에서, 설명된 방법은 다수의 반복들로 반복될 수 있어서, 반복들 동안, 방법의 단계들이 조건으로 하는 조건들 모두가 방법의 상이한 반복들로 충족되게 할 수 있다는 것이 이해되어야 한다. 예를 들어, 방법이, 조건이 만족되면 제1 단계를 그리고 조건이 만족되지 않으면 제2 단계를 수행할 것을 요구하면, 당업자는, 조건이 만족되고 만족되지 않을 때까지, 청구된 단계들이 특정 순서 없이 반복된다는 것을 인식할 것이다. 따라서, 하나 이상의 조건들이 충족되었음을 조건으로 하는 하나 이상의 단계들로 설명되는 방법은, 방법에서 설명되는 조건들 각각이 충족될 때까지 반복되는 방법으로서 재작성될 수 있다. 그러나, 이는, 시스템 또는 컴퓨터 판독가능 매체가 대응하는 하나 이상의 조건들의 만족에 기초하여 조건부 동작들을 수행하기 위한 명령어들을 포함하고, 그에 따라, 방법의 단계들이 조건으로 하는 조건들 모두가 충족될 때까지 방법의 단계들을 명시적으로 반복하지 않고서 우연성(contingency)이 만족되었는지 또는 만족되지 않았는지를 결정할 수 있는 시스템 또는 컴퓨터 판독가능 매체 청구항들에서는 요구되지 않는다. 당업자는, 또한, 조건부 단계들을 갖는 방법과 유사하게, 시스템 또는 컴퓨터 판독가능 저장 매체가 조건부 단계들 모두가 수행되었음을 보장하는 데 필요한 횟수만큼 방법의 단계들을 반복할 수 있다는 것을 이해할 것이다.
일부 실시예들에서, 도 1에 도시된 바와 같이, XR 경험은 컴퓨터 시스템(101)을 포함하는 동작 환경(100)을 통해 사용자에게 제공된다. 컴퓨터 시스템(101)은 제어기(110)(예를 들어, 휴대용 전자 디바이스 또는 원격 서버의 프로세서들), 디스플레이 생성 컴포넌트(120)(예를 들어, 머리 장착형 디바이스(HMD), 디스플레이, 프로젝터, 터치-스크린 등), 하나 이상의 입력 디바이스들(125)(예를 들어, 눈 추적 디바이스(130), 손 추적 디바이스(140), 다른 입력 디바이스들(150)), 하나 이상의 출력 디바이스들(155)(예를 들어, 스피커들(160), 촉각적 출력 생성기들(170), 및 다른 출력 디바이스들(180)), 하나 이상의 센서들(190)(예를 들어, 이미지 센서들, 광 센서들, 깊이 센서들, 촉각 센서들, 배향 센서들, 근접 센서들, 온도 센서들, 위치 센서들, 모션 센서들, 속도 센서들 등), 그리고 선택적으로, 하나 이상의 주변 디바이스들(195)(예를 들어, 홈 어플라이언스들, 웨어러블 디바이스들 등)을 포함한다. 일부 실시예들에서, 입력 디바이스들(125), 출력 디바이스들(155), 센서들(190) 및 주변 디바이스들(195) 중 하나 이상은 (예를 들어, 머리 장착형 디바이스 또는 핸드헬드 디바이스에서) 디스플레이 생성 컴포넌트(120)와 통합된다.
XR 경험을 설명할 때, (예를 들어, XR 경험을 생성하는 컴퓨터 시스템으로 하여금 컴퓨터 시스템(101)에 제공된 다양한 입력들에 대응하는 오디오, 시각적 및/또는 촉각적 피드백을 생성하게 하는, XR 경험을 생성하는 컴퓨터 시스템(101)에 의해 검출된 입력들로) 사용자가 감지할 수 있고 그리고/또는 사용자가 상호작용할 수 있는 몇몇 관련되지만 별개의 환경들을 구별하여 지칭하기 위해 다양한 용어들이 사용된다. 다음은 이들 용어들의 서브세트이다:
물리적 환경: 물리적 환경은 사람들이 전자 시스템들의 도움없이 감지하고 그리고/또는 상호작용할 수 있는 물리적 세계를 지칭한다. 물리적 공원과 같은 물리적 환경들은 물리적 물품들, 예컨대 물리적 나무들, 물리적 건물들, 및 물리적 사람들을 포함한다. 사람들은, 예컨대 시각, 촉각, 청각, 미각, 및 후각을 통해, 물리적 환경을 직접 감지하고 그리고/또는 그와 상호작용할 수 있다.
확장 현실: 대조적으로, 확장 현실(XR) 환경은 사람들이 전자 시스템을 통해 감지하고 그리고/또는 그와 상호작용하는 완전히 또는 부분적으로 시뮬레이션된 환경을 지칭한다. XR에서, 사람의 신체적 움직임들, 또는 이들의 표현들의 서브세트가 추적되고, 이에 응답하여, XR 환경에서 시뮬레이션된 하나 이상의 가상 객체들의 하나 이상의 특성들이 적어도 하나의 물리 법칙에 따르는 방식으로 조정된다. 예를 들어, XR 시스템은 사람이 고개를 돌리는 것을 검출할 수 있고, 이에 응답하여, 그 사람에게 제시되는 그래픽 콘텐츠 및 음장(acoustic field)을 물리적 환경에서 그러한 뷰들 및 소리들이 변경되는 방식과 유사한 방식으로 조정할 수 있다. 일부 상황들에서(예를 들어, 접근성 이유들 때문에), XR 환경 내의 가상 객체(들)의 특성(들)에 대한 조정들은 물리적 움직임들의 표현들(예를 들어, 음성 커맨드들)에 응답하여 이루어질 수 있다. 사람은, 시각, 청각, 촉각, 미각, 및 후각을 포함하는 그들의 감각들 중 임의의 하나를 사용하여 XR 객체를 감지하고 그리고/또는 그와 상호작용할 수 있다. 예를 들어, 사람은 3D 공간에서 오디오 소스들의 인지 지점을 제공하는 3D 또는 공간적 오디오 환경을 생성하는 오디오 객체들을 감지하고 그리고/또는 그들과 상호작용할 수 있다. 다른 예에서, 오디오 객체들은 오디오 투과성을 가능하게 할 수 있으며, 이는 선택적으로, 물리적 환경으로부터의 주변 소리들을 컴퓨터 생성 오디오와 함께 또는 그것 없이 포함한다. 일부 XR 환경들에서, 사람은 오디오 객체들만을 감지하고 그리고/또는 오직 그들과 상호작용할 수 있다.
XR의 예들은 가상 현실 및 혼합 현실을 포함한다.
가상 현실: 가상 현실(VR) 환경은 하나 이상의 감각들에 대한 컴퓨터 생성 감각 입력들에 전적으로 기초하도록 설계된 시뮬레이션된 환경을 지칭한다. VR 환경은 사람이 감지하고 그리고/또는 상호작용할 수 있는 복수의 가상 객체들을 포함한다. 예를 들어, 나무들, 빌딩들, 및 사람들을 표현하는 아바타들의 컴퓨터 생성 형상화가 가상 객체들의 예들이다. 사람은, 컴퓨터 생성 환경 내의 사람의 존재의 시뮬레이션을 통해 그리고/또는 컴퓨터 생성 환경 내의 사람의 신체적 움직임들의 서브세트의 시뮬레이션을 통해 VR 환경에서 가상 객체들을 감지하고 그리고/또는 그것과 상호작용할 수 있다.
혼합 현실: 컴퓨터-생성 감각 입력들에 전적으로 기초하도록 설계되는 VR 환경과는 대조적으로, 혼합 현실(MR) 환경은 컴퓨터-생성 감각 입력들(예를 들어, 가상 객체들)을 포함하는 것에 부가하여, 물리적 환경으로부터의 감각 입력들, 또는 그들의 표현을 통합하도록 설계된 시뮬레이션된 환경을 지칭한다. 가상 연속체(virtuality continuum)에서, 혼합 현실 환경은 한쪽의 완전히 물리적인 환경과 다른 쪽의 가상 현실 환경 사이의 임의의 곳에 있지만, 포함하지는 않는다. 일부 MR 환경들에서, 컴퓨터 생성 감각 입력들은 물리적 환경으로부터의 감각 입력들의 변화들에 응답할 수 있다. 또한, MR 환경을 제시하기 위한 일부 전자 시스템들은 물리적 환경에 대한 위치 및/또는 배향을 추적하여 가상 객체들이 실제 객체들(즉, 물리적 환경으로부터의 물리적 물품들 또는 물리적 물품들의 표현들)과 상호작용할 수 있게 할 수 있다. 예를 들어, 시스템은 가상 나무가 물리적 땅에 대하여 고정되어 있는 것처럼 보이도록 움직임들을 고려할 수 있다.
혼합 현실들의 예들은 증강 현실 및 증강 가상을 포함한다.
증강 현실: 증강 현실(AR) 환경은 하나 이상의 가상 객체들이 물리적 환경, 또는 그의 표현 위에 중첩되어 있는 시뮬레이션된 환경을 지칭한다. 예를 들어, AR 환경을 제시하기 위한 전자 시스템은 사람이 직접 물리적 환경을 볼 수 있는 투명 또는 반투명 디스플레이를 가질 수 있다. 시스템은 가상 객체들을 투명 또는 반투명 디스플레이 상에 제시하도록 구성되어, 사람은, 시스템을 사용하여, 물리적 환경 위에 중첩된 가상 객체들을 인지하게 할 수 있다. 대안적으로, 시스템은 불투명 디스플레이, 및 물리적 환경의 표현들인 물리적 환경의 이미지들 또는 비디오를 캡처하는 하나 이상의 이미징 센서들을 가질 수 있다. 시스템은 이미지들 또는 비디오를 가상 객체들과 합성하고, 합성물을 불투명 디스플레이 상에 제시한다. 사람은, 시스템을 사용하여, 물리적 환경의 이미지들 또는 비디오에 의해 물리적 환경을 간접적으로 보고, 물리적 환경 위에 중첩된 가상 객체들을 인지한다. 본 명세서에 사용되는 바와 같이, 불투명 디스플레이 상에 도시되는 물리적 환경의 비디오는 "패스-스루(pass-through) 비디오"로 불리는데, 이는 시스템이 하나 이상의 이미지 센서(들)를 사용하여 물리적 환경의 이미지들을 캡처하고, AR 환경을 불투명 디스플레이 상에 제시할 시에 이들 이미지들을 사용하는 것을 의미한다. 추가로 대안적으로, 시스템은 가상 객체들을 물리적 환경에, 예를 들어, 홀로그램으로서 또는 물리적 표면 상에 투영하는 투영 시스템을 가질 수 있어서, 사람이 시스템을 사용하여 물리적 환경 위에 중첩된 가상 객체들을 인지하게 한다. 증강 현실 환경은 또한 물리적 환경의 표현이 컴퓨터 생성 감각 정보에 의해 변환되는 시뮬레이션된 환경을 지칭한다. 예를 들어, 패스-스루 비디오를 제공할 시에, 시스템은 하나 이상의 센서 이미지들을 변환하여 이미징 센서들에 의해 캡처된 관점과는 상이한 선택 관점(예를 들어, 시점)을 부과할 수 있다. 다른 예로서, 물리적 환경의 표현은 그것의 일부들을 그래픽적으로 수정(예를 들어, 확대)함으로써 변환될 수 있어서, 수정된 부분은 원래 캡처된 이미지들의 대표적인 버전일 수 있지만, 실사 버전은 아닐 수 있다. 추가적인 예로서, 물리적 환경의 표현은 그의 일부들을 그래픽적으로 제거하거나 또는 흐리게 함으로써 변환될 수 있다.
증강 가상: 증강 가상(AV) 환경은 가상 또는 컴퓨터 생성 환경이 물리적 환경으로부터의 하나 이상의 감각 입력들을 통합하는 시뮬레이션된 환경을 지칭한다. 감각 입력들은 물리적 환경의 하나 이상의 특성들의 표현들일 수 있다. 예를 들어, AV 공원은 가상 나무들 및 가상 빌딩들을 가질 수 있지만, 사람들의 얼굴들은 물리적 사람들을 찍은 이미지들로부터 실사처럼 재현될 수 있다. 다른 예로서, 가상 객체는 하나 이상의 이미징 센서들에 의해 이미징되는 물리적 물품의 형상 또는 컬러를 채용할 수 있다. 추가적인 예로서, 가상 객체는 물리적 환경에서 태양의 포지션에 부합하는 그림자들을 채용할 수 있다.
시점-록킹(viewpoint-locked) 가상 객체: 사용자의 시점이 시프트(예를 들어, 변경)되더라도, 컴퓨터 시스템이 사용자의 시점의 동일한 위치 및/또는 포지션에서 가상 객체를 디스플레이할 때 가상 객체가 시점-록킹된다. 컴퓨터 시스템이 머리 장착형 디바이스인 실시예들에서, 사용자의 시점은 사용자의 머리의 전방 대면 방향에 록킹되고(예를 들어, 사용자의 시점은 사용자가 정면을 보고 있을 때 사용자의 시야의 적어도 일부임); 따라서, 사용자의 시선이 시프트되더라도, 사용자의 머리를 이동시키지 않으면서, 사용자의 시점이 고정된 상태로 유지된다. 컴퓨터 시스템이 사용자의 머리에 대해 리포지셔닝될 수 있는 디스플레이 생성 컴포넌트(예를 들어, 디스플레이 스크린)를 갖는 실시예들에서, 사용자의 시점은 컴퓨터 시스템의 디스플레이 생성 컴포넌트 상에서 사용자에게 제시되고 있는 증강 현실 뷰이다. 예를 들어, 사용자의 시점의 상부 좌측 코너에서 디스플레이되는 시점-록킹 가상 객체는, 사용자의 시점이 제1 배향(예를 들어, 사용자의 머리가 북쪽을 향함)에 있을 때, 사용자의 시점이 제2 배향(예를 들어, 사용자의 머리가 서쪽을 향함)으로 변경되더라도, 사용자의 시점의 상부 좌측 코너에서 계속 디스플레이된다. 다시 말하면, 시점-록킹된 가상 객체가 사용자의 시점에서 디스플레이되는 위치 및/또는 포지션은 물리적 환경 내의 사용자의 포지션 및/또는 배향과 독립적이다. 컴퓨터 시스템이 머리 장착형 디바이스인 실시예들에서, 사용자의 시점은 사용자의 머리의 배향에 록킹되므로, 가상 객체는 또한 "머리-록킹 가상 객체"로 지칭된다.
환경-록킹 가상 객체: 컴퓨터 시스템이 3차원 환경(예를 들어, 물리적 환경 또는 가상 환경) 내의 위치 및/또는 객체에 기초하는(예를 들어, 이를 참조하여 선택되고 그리고/또는 이에 앵커링된) 사용자의 시점 내의 위치 및/또는 포지션에서 가상 객체를 디스플레이할 때, 가상 객체는 환경-록킹(대안적으로는, "세계-록킹")된다. 사용자의 시점이 시프트됨에 따라, 사용자의 시점에 대한 환경 내의 위치 및/또는 객체가 변경되며, 이는 환경-록킹된 가상 객체가 사용자의 시점 내의 상이한 위치 및/또는 포지션에서 디스플레이되는 것을 초래한다. 예를 들어, 사용자의 바로 전방에 있는 나무에 록킹되는 환경-록킹된 가상 객체는 사용자의 시점의 중심에서 디스플레이된다. 사용자의 시점이 우측으로 시프트되어(예를 들어, 사용자의 머리가 우측으로 회전되어), 나무가 이제 사용자의 시점에서 중심 좌측에 있을 때(예를 들어, 사용자의 시점 내의 나무의 포지션이 시프트될 때), 나무에 록킹되는 환경-록킹된 가상 객체는 사용자의 시점에서 중심 좌측에 디스플레이된다. 다시 말하면, 환경-록킹된 가상 객체가 사용자의 시점에서 디스플레이되는 위치 및/또는 포지션은 가상 객체가 록킹되는 환경 내의 위치 및/또는 객체의 포지션 및/또는 배향에 의존한다. 일부 실시예들에서, 컴퓨터 시스템은 사용자의 시점에서 환경-록킹된 가상 객체를 디스플레이할 포지션을 결정하기 위해 고정 기준 프레임(예를 들어, 물리적 환경 내의 고정 위치 및/또는 객체에 앵커링되는 좌표계)을 사용한다. 환경-록킹된 가상 객체는 환경의 고정 부분(예를 들어, 바닥, 벽, 테이블, 또는 다른 고정 객체)에 록킹될 수 있거나, 또는 환경의 이동가능 부분(예를 들어, 차량, 동물, 사람, 또는 심지어 사용자의 시점과 독립적으로 이동되는 사용자 신체의 일부, 예컨대 사용자의 손, 손목, 팔, 또는 다리의 표현)에 록킹될 수 있어서, 가상 객체는 가상 객체와 환경의 일부 사이의 고정된 관계를 유지하기 위해 시점 또는 환경의 일부가 이동됨에 따라 이동된다.
일부 실시예들에서, 환경-록킹되거나 시점-록킹된 가상 객체는 가상 객체가 따르는 기준 포인트의 이동에 대한 환경-록킹되거나 시점-록킹된 가상 객체의 모션을 감소시키거나 지연시키는 느린(lazy) 후속 거동을 나타낸다. 일부 실시예들에서, 느린 후속 거동을 나타낼 때, 컴퓨터 시스템은, 가상 객체가 따르고 있는 기준 포인트(예를 들어, 환경의 일부, 시점, 또는 시점에 대해 고정된 포인트, 예컨대 시점으로부터 5 내지 300 cm인 포인트)의 이동을 검출할 때 가상 객체의 이동을 의도적으로 지연시킨다. 예를 들어, 기준 포인트(예를 들어, 환경의 일부 또는 시점)가 제1 속도로 이동할 때, 가상 객체는 (예를 들어, 기준 포인트가 이동하는 것을 중지하거나 기준 포인트가 느려질 때까지(그 포인트에서, 가상 객체는 기준 포인트를 따라잡기 시작함)) 기준 포인트에 록킹된 상태로 유지되기 위해 디바이스에 의해 이동되지만, 제1 속도보다 느린 제2 속도로 이동한다. 일부 실시예들에서, 가상 객체가 느린 후속 거동을 나타낼 때, 디바이스는 기준 포인트의 작은 양들의 이동을 무시한다(예를 들어, 0 내지 5도만큼의 이동 또는 0 내지 50 cm만큼의 이동과 같은 임계량의 이동 미만인 기준 포인트의 이동을 무시함). 예를 들어, 기준 포인트(예를 들어, 가상 객체가 록킹되는 환경의 일부 또는 시점)가 제1 양만큼 이동할 때, (예를 들어, 가상 객체가 록킹되는 기준 포인트와 상이한 시점 또는 환경의 일부에 대해 고정된 또는 실질적으로 고정된 포지션을 유지하기 위해 가상 객체가 디스플레이되고 있기 때문에) 기준 포인트와 가상 객체 사이의 거리가 증가되고, 기준 포인트(예를 들어, 가상 객체가 록킹되는 환경의 일부 또는 시점)가 제1 양보다 큰 제2 양만큼 이동할 때, (예를 들어, 가상 객체가 록킹되는 기준 포인트와 상이한 시점 또는 환경의 일부에 대해 고정된 또는 실질적으로 고정된 포지션을 유지하기 위해 가상 객체가 디스플레이되고 있기 때문에) 기준 포인트와 가상 객체 사이의 거리는 초기에 증가되며, 이어서, 기준 포인트에 대해 고정된 또는 실질적으로 고정된 포지션을 유지하기 위해 가상 객체가 컴퓨터 시스템에 의해 이동되기 때문에, 기준 포인트의 이동의 양이 임계치(예를 들어, "느린 후속" 임계치) 초과로 증가됨에 따라 감소된다. 일부 실시예들에서, 가상 객체가 기준 포인트에 대해 실질적으로 고정된 포지션을 유지하는 것은 가상 객체가 하나 이상의 차원들(예를 들어, 기준 포인트의 포지션에 대해 위/아래, 좌측/우측, 및/또는 전방/후방)로 기준 포인트의 임계 거리(예를 들어, 1, 2, 3, 5, 15, 20, 50 cm) 내에서 디스플레이되는 것을 포함한다.
하드웨어: 사람이 다양한 XR 환경들을 감지하고 그리고/또는 그들과 상호작용할 수 있게 하는 많은 상이한 유형들의 전자 시스템들이 존재한다. 예들은 머리 장착형 시스템들, 투영 기반 시스템들, 헤드업(head-up) 디스플레이(HUD)들, 디스플레이 능력이 통합된 차량 앞유리들, 디스플레이 능력이 통합된 창문들, 사람의 눈들에 배치되도록 설계된 렌즈들로서 형성된 디스플레이들(예를 들어, 콘택트 렌즈들과 유사함), 헤드폰들/이어폰들, 스피커 어레이들, 입력 시스템들(예를 들어, 햅틱 피드백이 있거나 또는 없는 웨어러블 또는 핸드헬드 제어기들), 스마트폰들, 태블릿들, 및 데스크톱/랩톱 컴퓨터들을 포함한다. 머리 장착형 시스템은 하나 이상의 스피커(들) 및 통합 불투명 디스플레이를 가질 수 있다. 대안적으로, 머리 장착형 시스템은 외부 불투명 디스플레이(예를 들어, 스마트폰)를 수용하도록 구성될 수 있다. 머리 장착형 시스템은 물리적 환경의 이미지들 또는 비디오를 캡처하기 위한 하나 이상의 이미징 센서들, 및/또는 물리적 환경의 오디오를 캡처하기 위한 하나 이상의 마이크로폰들을 통합할 수 있다. 머리 장착형 시스템은 불투명 디스플레이보다는, 투명 또는 반투명 디스플레이를 가질 수 있다. 투명 또는 반투명 디스플레이는 이미지들을 표현하는 광이 사람의 눈들로 지향되는 매체를 가질 수 있다. 디스플레이는 디지털 광 프로젝션, OLED들, LED들, uLED들, 실리콘 액정 표시장치, 레이저 스캐닝 광원, 또는 이들 기술들의 임의의 조합을 이용할 수 있다. 매체는 광학 도파관, 홀로그램 매체, 광학 조합기, 광학 반사기, 또는 이들의 임의의 조합일 수 있다. 일 실시예에서, 투명 또는 반투명 디스플레이는 선택적으로 불투명하게 되도록 구성될 수 있다. 투영 기반 시스템들은 그래픽 이미지들을 사람의 망막 상에 투영하는 망막 투영 기술을 이용할 수 있다. 투영 시스템들은, 또한, 가상 객체들을 물리적 환경 내에, 예를 들어 홀로그램으로서, 또는 물리적 표면 상에 투영하도록 구성될 수 있다. 일부 실시예들에서, 제어기(110)는 사용자에 대한 XR 경험을 관리 및 조정하도록 구성된다. 일부 실시예들에서, 제어기(110)는 소프트웨어, 펌웨어, 및/또는 하드웨어의 적합한 조합을 포함한다. 제어기(110)는 도 2에 관해 아래에서 더 상세히 설명된다. 일부 실시예들에서, 제어기(110)는 장면(105)(예를 들어, 물리적 환경)에 대해 로컬 또는 원격인 컴퓨팅 디바이스이다. 예를 들어, 제어기(110)는 장면(105) 내에 위치된 로컬 서버이다. 다른 예에서, 제어기(110)는 장면(105)의 외부에 위치된 원격 서버(예를 들어, 클라우드 서버, 중앙 서버 등)이다. 일부 실시예들에서, 제어기(110)는 하나 이상의 유선 또는 무선 통신 채널들(144)(예를 들어, 블루투스, IEEE 802.11x, IEEE 802.16x, IEEE 802.3x 등)을 통해 디스플레이 생성 컴포넌트(120)(예를 들어, HMD, 디스플레이, 프로젝터, 터치 스크린 등)와 통신가능하게 커플링된다. 다른 예에서, 제어기(110)는 디스플레이 생성 컴포넌트(120)(예를 들어, 디스플레이 및 하나 이상의 프로세서들을 포함하는 HMD 또는 휴대용 전자 디바이스 등)의 인클로저(enclosure)(예를 들어, 물리적 하우징), 입력 디바이스들(125) 중 하나 이상, 출력 디바이스들(155) 중 하나 이상, 센서들(190) 중 하나 이상, 및/또는 주변 디바이스들(195) 중 하나 이상 내에 포함되거나, 위의 것들 중 하나 이상과 동일한 물리적 인클로저 또는 지지 구조를 공유한다.
일부 실시예들에서, 디스플레이 생성 컴포넌트(120)는 XR 경험(예를 들어, 적어도 XR 경험의 시각적 컴포넌트)을 사용자에게 제공하도록 구성된다. 일부 실시예들에서, 디스플레이 생성 컴포넌트(120)는 소프트웨어, 펌웨어, 및/또는 하드웨어의 적합한 조합을 포함한다. 디스플레이 생성 컴포넌트(120)는 도 3에 관해 아래에서 더 상세히 설명된다. 일부 실시예들에서, 제어기(110)의 기능들은 디스플레이 생성 컴포넌트(120)에 의해 제공되거나 그리고/또는 이와 조합된다.
일부 실시예들에 따르면, 디스플레이 생성 컴포넌트(120)는 사용자가 장면(105) 내에 가상으로 그리고/또는 물리적으로 존재하는 동안 XR 경험을 사용자에게 제공한다.
일부 실시예들에서, 디스플레이 생성 컴포넌트는 사용자의 신체의 일부에(예를 들어, 그의 머리 상에, 그의 손 상에 등) 착용된다. 이와 같이, 디스플레이 생성 컴포넌트(120)는 XR 콘텐츠를 디스플레이하기 위해 제공되는 하나 이상의 XR 디스플레이들을 포함한다. 예를 들어, 다양한 실시예들에서, 디스플레이 생성 컴포넌트(120)는 사용자의 시야를 둘러싼다. 일부 실시예들에서, 디스플레이 생성 컴포넌트(120)는 XR 콘텐츠를 제시하도록 구성된 핸드헬드 디바이스(예컨대, 스마트폰 또는 태블릿)이고, 사용자는 사용자의 시야를 향해 지향된 디스플레이 및 장면(105)을 향해 지향된 카메라를 갖는 디바이스를 유지한다. 일부 실시예들에서, 핸드헬드 디바이스는 선택적으로 사용자의 머리 상에 착용된 인클로저 내에 배치된다. 일부 실시예들에서, 핸드헬드 디바이스는 선택적으로 사용자 전방의 지지부(예를 들어, 삼각대) 상에 배치된다. 일부 실시예들에서, 디스플레이 생성 컴포넌트(120)는 사용자가 디스플레이 생성 컴포넌트(120)를 착용하거나 유지하지 않는, XR 콘텐츠를 제공하도록 구성된 XR 챔버, 인클로저 또는 룸이다. XR 콘텐츠를 디스플레이하기 위한 하나의 유형의 하드웨어(예를 들어, 핸드헬드 디바이스 또는 삼각대 상의 디바이스)를 참조하여 설명된 많은 사용자 인터페이스들은 XR 콘텐츠를 디스플레이하기 위한 다른 유형의 하드웨어(예를 들어, HMD 또는 다른 웨어러블 컴퓨팅 디바이스) 상에서 구현될 수 있다. 예를 들어, 핸드헬드 또는 삼각대 장착형 디바이스 전방의 공간에서 발생하는 상호작용들에 기초하여 트리거된 XR 콘텐츠와의 상호작용들을 보여주는 사용자 인터페이스는, 상호작용들이 HMD 전방의 공간에서 발생하고 XR 콘텐츠의 응답들이 HMD를 통해 디스플레이되는 HMD를 이용하여 유사하게 구현될 수 있다. 유사하게, 물리적 환경(예를 들어, 장면(105) 또는 사용자의 신체의 일부(예를 들어, 사용자의 눈(들), 머리 또는 손)에 대한 핸드헬드 또는 삼각대 장착형 디바이스의 이동에 기초하여 트리거되는 CRG 콘텐츠와의 상호작용들을 보여주는 사용자 인터페이스는 유사하게, 물리적 환경(예를 들어, 장면(105) 또는 사용자의 신체의 일부(예를 들어, 사용자의 눈(들), 머리 또는 손)에 대한 HMD의 이동에 의해 이동이 야기되는 HMD로 구현될 수 있다.
동작 환경(100)의 관련 특징부들이 도 1에 도시되어 있지만, 당업자들은 본 개시내용으로부터, 간결함을 위해 그리고 본 명세서에 개시되는 예시적인 실시예들의 더 많은 관련 양태들을 불명료하게 하지 않기 위해 다양한 다른 특징부들이 예시되지 않았음을 인식할 것이다.
도 2는 일부 실시예들에 따른 제어기(110)의 일 예의 블록도이다. 소정의 특정 특징부들이 예시되어 있지만, 당업자들은 본 개시내용으로부터, 간결함을 위해 그리고 본 명세서에 개시되는 실시예들의 더 많은 관련 양태들을 불명료하게 하지 않기 위해 다양한 다른 특징부들이 예시되지 않았음을 인식할 것이다. 이를 위해, 비제한적인 예로서, 일부 실시예들에서, 제어기(110)는 하나 이상의 프로세싱 유닛들(202)(예를 들어, 마이크로프로세서들, 주문형 집적 회로(ASIC)들, 필드-프로그래밍가능 게이트 어레이(FPGA)들, 그래픽 프로세싱 유닛(GPU)들, 중앙 프로세싱 유닛(CPU)들, 프로세싱 코어들 등), 하나 이상의 입력/출력(I/O) 디바이스들(206), 하나 이상의 통신 인터페이스들(208)(예를 들어, 범용 직렬 버스(USB), FIREWIRE, THUNDERBOLT, 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), 또는 다른 랜덤-액세스 솔리드-스테이트 메모리 디바이스들과 같은 고속 랜덤-액세스 메모리를 포함한다. 일부 실시예들에서, 메모리(220)는 하나 이상의 자기 디스크 저장 디바이스들, 광 디스크 저장 디바이스들, 플래시 메모리 디바이스들, 또는 다른 비휘발성 솔리드-스테이트 저장 디바이스들과 같은 비휘발성 메모리를 포함한다. 메모리(220)는 선택적으로, 하나 이상의 프로세싱 유닛들(202)로부터 원격으로 위치된 하나 이상의 저장 디바이스들을 포함한다. 메모리(220)는 비일시적 컴퓨터 판독가능 저장 매체를 포함한다. 일부 실시예들에서, 메모리(220) 또는 메모리(220)의 비일시적 컴퓨터 판독가능 저장 매체는 다음의 프로그램들, 모듈들 및 데이터 구조들, 또는 선택적인 운영 체제(230) 및 XR 경험 모듈(240)을 포함하는 그들의 서브세트를 저장한다.
운영 체제(230)는 다양한 기본 시스템 서비스들을 처리하고 하드웨어 의존 태스크들을 수행하기 위한 명령어들을 포함한다. 일부 실시예들에서, XR 경험 모듈(240)은 하나 이상의 사용자들에 대한 하나 이상의 XR 경험들(예를 들어, 하나 이상의 사용자들에 대한 단일 XR 경험, 또는 하나 이상의 사용자들의 개개의 그룹들에 대한 다수의 XR 경험들)을 관리하고 조정하도록 구성된다. 이를 위해, 다양한 실시예들에서, XR 경험 모듈(240)은 데이터 획득 유닛(241), 추적 유닛(242), 조정 유닛(246), 및 데이터 송신 유닛(248)을 포함한다.
일부 실시예들에서, 데이터 획득 유닛(241)은 적어도 도 1의 디스플레이 생성 컴포넌트(120) 및 선택적으로, 입력 디바이스들(125), 출력 디바이스들(155), 센서들(190), 및/또는 주변 디바이스들(195) 중 하나 이상으로부터 데이터(예를 들어, 제시 데이터, 상호작용 데이터, 센서 데이터, 위치 데이터 등)를 획득하도록 구성된다. 이를 위해, 다양한 실시예들에서, 데이터 획득 유닛(241)은 그에 대한 명령어들 및/또는 로직, 및 그에 대한 휴리스틱 및 메타데이터를 포함한다.
일부 실시예들에서, 추적 유닛(242)은 장면(105)을 맵핑하도록 그리고 도 1의 장면(105)에 대해 그리고 선택적으로는 입력 디바이스들(125), 출력 디바이스들(155), 센서들(190), 및/또는 주변 디바이스들(195) 중 하나 이상에 대해 적어도 디스플레이 생성 컴포넌트(120)의 포지션/위치를 추적하도록 구성된다. 이를 위해, 다양한 실시예들에서, 추적 유닛(242)은 그에 대한 명령어들 및/또는 로직, 및 그에 대한 휴리스틱 및 메타데이터를 포함한다. 일부 실시예들에서, 추적 유닛(242)은 손 추적 유닛(244), 및/또는 눈 추적 유닛(243)을 포함한다. 일부 실시예들에서, 손 추적 유닛(244)은 도 1의 장면(105)에 대해, 디스플레이 생성 컴포넌트(120)에 대해, 그리고/또는 사용자의 손에 대해 정의된 좌표계에 대해 사용자의 손들의 하나 이상의 부분들의 포지션/위치 및/또는 사용자의 손들의 하나 이상의 부분들의 모션들을 추적하도록 구성된다. 손 추적 유닛(244)은 도 4에 관해 아래에서 더 상세히 설명된다. 일부 실시예들에서, 눈 추적 유닛(243)은 장면(105)에 대해(예를 들어, 물리적 환경 및/또는 사용자(예를 들어, 사용자의 손)에 대해) 또는 디스플레이 생성 컴포넌트(120)를 통해 디스플레이되는 XR 콘텐츠에 대해 사용자의 시선(또는 더 광범위하게는 사용자의 눈들, 얼굴 또는 머리)의 위치 및 이동을 추적하도록 구성된다. 눈 추적 유닛(243)은 도 5에 관해 아래에서 더 상세히 설명된다.
일부 실시예들에서, 조정 유닛(246)은 디스플레이 생성 컴포넌트(120)에 의해 그리고 선택적으로, 출력 디바이스들(155) 및/또는 주변 디바이스들(195) 중 하나 이상에 의해 사용자에게 제시되는 XR 경험을 관리 및 조정하도록 구성된다. 이를 위해, 다양한 실시예들에서, 조정 유닛(246)은 그에 대한 명령어들 및/또는 로직, 및 그에 대한 휴리스틱 및 메타데이터를 포함한다.
일부 실시예들에서, 데이터 송신 유닛(248)은 적어도 디스플레이 생성 컴포넌트(120) 및 선택적으로, 입력 디바이스들(125), 출력 디바이스들(155), 센서들(190), 및/또는 주변 디바이스들(195) 중 하나 이상에 데이터(예를 들어, 제시 데이터, 위치 데이터 등)를 송신하도록 구성된다. 이를 위해, 다양한 실시예들에서, 데이터 송신 유닛(248)은 그에 대한 명령어들 및/또는 로직, 및 그에 대한 휴리스틱 및 메타데이터를 포함한다.
데이터 획득 유닛(241), 추적 유닛(242)(예를 들어, 눈 추적 유닛(243) 및 손 추적 유닛(244)을 포함함), 조정 유닛(246), 및 데이터 송신 유닛(248)이 단일 디바이스(예를 들어, 제어기(110)) 상에 존재하는 것으로 도시되어 있지만, 다른 실시예들에서, 데이터 획득 유닛(241), 추적 유닛(242)(예를 들어, 눈 추적 유닛(243) 및 손 추적 유닛(244)을 포함함), 조정 유닛(246), 및 데이터 송신 유닛(248)의 임의의 조합이 별개의 컴퓨팅 디바이스들 내에 위치될 수 있다는 것이 이해되어야 한다.
게다가, 도 2는 본 명세서에 설명된 실시예들의 구조적 개략도와는 대조적으로 특정 구현예에 존재할 수 있는 다양한 특징부들의 기능 설명으로서 더 의도된다. 당업자들에 의해 인식되는 바와 같이, 별개로 도시된 항목들은 조합될 수 있고 일부 항목들은 분리될 수 있다. 예를 들어, 다양한 실시예들에서, 도 2에 별개로 도시된 일부 기능 모듈들은 단일 모듈로 구현될 수 있고, 단일 기능 블록들의 다양한 기능들은 하나 이상의 기능 블록들에 의해 구현될 수 있다. 모듈들의 실제 수량 및 특정 기능들의 분할 그리고 특징부들이 그들 사이에서 어떻게 할당되는지는 구현예들마다 다를 것이고, 일부 실시예들에서, 특정 구현예에 대해 선택된 하드웨어, 소프트웨어, 및/또는 펌웨어의 특정 조합에 부분적으로 의존한다.
도 3은 일부 실시예들에 따른 디스플레이 생성 컴포넌트(120)의 일 예의 블록도이다. 소정의 특정 특징부들이 예시되어 있지만, 당업자들은 본 개시내용으로부터, 간결함을 위해 그리고 본 명세서에 개시되는 실시예들의 더 많은 관련 양태들을 불명료하게 하지 않기 위해 다양한 다른 특징부들이 예시되지 않았음을 인식할 것이다. 이를 위해, 비제한적인 예로서, 일부 실시예들에서, 디스플레이 생성 컴포넌트(120)(예를 들어, HMD)는 하나 이상의 프로세싱 유닛들(302)(예를 들어, 마이크로프로세서들, ASIC들, FPGA들, GPU들, CPU들, 프로세싱 코어들 등), 하나 이상의 입력/출력(I/O) 디바이스들 및 센서들(306), 하나 이상의 통신 인터페이스들(308)(예를 들어, USB, FIREWIRE, THUNDERBOLT, IEEE 802.3x, IEEE 802.11x, IEEE 802.16x, GSM, CDMA, TDMA, GPS, IR, 블루투스, 지그비, 및/또는 유사한 유형의 인터페이스), 하나 이상의 프로그래밍(예를 들어, I/O) 인터페이스들(310), 하나 이상의 XR 디스플레이들(312), 하나 이상의 선택적인 내부 및/또는 외부 대면 이미지 센서들(314), 메모리(320), 및 이들 및 다양한 다른 컴포넌트들을 상호연결하기 위한 하나 이상의 통신 버스들(304)을 포함한다.
일부 실시예들에서, 하나 이상의 통신 버스들(304)은 시스템 컴포넌트들 사이의 통신을 상호연결시키고 제어하는 회로부를 포함한다. 일부 실시예들에서, 하나 이상의 I/O 디바이스들 및 센서들(306)은 관성 측정 유닛(inertial measurement unit, IMU), 가속도계, 자이로스코프, 온도계, 하나 이상의 생리학적 센서들(예를 들어, 혈압 모니터, 심박수 모니터, 혈중 산소 센서, 혈당 센서 등), 하나 이상의 마이크로폰들, 하나 이상의 스피커들, 햅틱 엔진, 하나 이상의 깊이 센서들(예를 들어, 구조화된 광, 비행 시간 등) 등 중 적어도 하나를 포함한다.
일부 실시예들에서, 하나 이상의 XR 디스플레이들(312)은 XR 경험을 사용자에게 제공하도록 구성된다. 일부 실시예들에서, 하나 이상의 XR 디스플레이들(312)은 홀로그래픽, 디지털 광 프로세싱(DLP), 액정 디스플레이(LCD), 실리콘 액정 표시장치(LCoS), 유기 발광 전계-효과 트랜지터리(OLET), 유기 발광 다이오드(OLED), 표면-전도 전자-방출기 디스플레이(SED), 전계-방출 디스플레이(FED), 양자점 발광 다이오드(QD-LED), 마이크로-전자기계 시스템(MEMS), 및/또는 유사한 디스플레이 유형들에 대응한다. 일부 실시예들에서, 하나 이상의 XR 디스플레이들(312)은 회절, 반사, 편광, 홀로그래픽 등의 도파관 디스플레이들에 대응한다. 예를 들어, 디스플레이 생성 컴포넌트(120)(예를 들어, HMD)는 단일 XR 디스플레이를 포함한다. 다른 예에서, 디스플레이 생성 컴포넌트(120)는 사용자의 각각의 눈에 대한 XR 디스플레이를 포함한다. 일부 실시예들에서, 하나 이상의 XR 디스플레이들(312)은 MR 및 VR 콘텐츠를 제시할 수 있다. 일부 실시예들에서, 하나 이상의 XR 디스플레이들(312)은 MR 또는 VR 콘텐츠를 제시할 수 있다.
일부 실시예들에서, 하나 이상의 이미지 센서들(314)은 사용자의 눈들을 포함하는 사용자의 얼굴의 적어도 일부에 대응하는 이미지 데이터를 획득하도록 구성된다(그리고 이들은 눈-추적 카메라로 지칭될 수 있다). 일부 실시예들에서, 하나 이상의 이미지 센서들(314)은 사용자의 손(들) 및 선택적으로 사용자의 팔(들)의 적어도 일부에 대응하는 이미지 데이터를 획득하도록 구성된다(그리고 이들은 손-추적 카메라로 지칭될 수 있다). 일부 실시예들에서, 하나 이상의 이미지 센서들(314)은, 디스플레이 생성 컴포넌트(120)(예를 들어, HMD)가 존재하지 않았다면 사용자가 봤을 장면에 대응하는 이미지 데이터를 획득하기 위해 전방-대면하도록 구성된다(그리고 이들은 장면 카메라로 지칭될 수 있다). 하나 이상의 선택적인 이미지 센서들(314)은 하나 이상의 RGB 카메라들(예를 들어, 상보성 금속-산화물-반도체(CMOS) 이미지 센서 또는 전하 커플링 디바이스(CCD) 이미지 센서를 가짐), 하나 이상의 적외선(IR) 카메라들, 하나 이상의 이벤트-기반 카메라들 등을 포함할 수 있다.
메모리(320)는 DRAM, SRAM, DDR RAM, 또는 다른 랜덤-액세스 솔리드-스테이트 메모리 디바이스들과 같은 고속 랜덤-액세스 메모리를 포함한다. 일부 실시예들에서, 메모리(320)는 하나 이상의 자기 디스크 저장 디바이스들, 광 디스크 저장 디바이스들, 플래시 메모리 디바이스들, 또는 다른 비휘발성 솔리드-스테이트 저장 디바이스들과 같은 비휘발성 메모리를 포함한다. 메모리(320)는 선택적으로, 하나 이상의 프로세싱 유닛들(302)로부터 원격으로 위치된 하나 이상의 저장 디바이스들을 포함한다. 메모리(320)는 비일시적 컴퓨터 판독가능 저장 매체를 포함한다. 일부 실시예들에서, 메모리(320) 또는 메모리(320)의 비일시적 컴퓨터 판독가능 저장 매체는 다음의 프로그램들, 모듈들 및 데이터 구조들, 또는 선택적인 운영 체제(330) 및 XR 제시 모듈(340)을 포함하는 그들의 서브세트를 저장한다.
운영 체제(330)는 다양한 기본 시스템 서비스들을 처리하고 하드웨어 의존 태스크들을 수행하기 위한 명령어들을 포함한다. 일부 실시예들에서, XR 제시 모듈(340)은 하나 이상의 XR 디스플레이들(312)을 통해 XR 콘텐츠를 사용자에게 제시하도록 구성된다. 이를 위해, 다양한 실시예들에서, XR 제시 모듈(340)은 데이터 획득 유닛(342), XR 제시 유닛(344), XR 맵 생성 유닛(346), 및 데이터 송신 유닛(348)을 포함한다.
일부 실시예들에서, 데이터 획득 유닛(342)은 적어도 도 1의 제어기(110)로부터 데이터(예를 들어, 제시 데이터, 상호작용 데이터, 센서 데이터, 위치 데이터 등)를 획득하도록 구성된다. 이를 위해, 다양한 실시예들에서, 데이터 획득 유닛(342)은 그에 대한 명령어들 및/또는 로직, 및 그에 대한 휴리스틱 및 메타데이터를 포함한다.
일부 실시예들에서, XR 제시 유닛(344)은 하나 이상의 XR 디스플레이들(312)을 통해 XR 콘텐츠를 제시하도록 구성된다. 이를 위해, 다양한 실시예들에서, XR 제시 유닛(344)은 그에 대한 명령어들 및/또는 로직, 및 그에 대한 휴리스틱 및 메타데이터를 포함한다.
일부 실시예들에서, XR 맵 생성 유닛(346)은 미디어 콘텐츠 데이터에 기초하여 XR 맵(예를 들어, 확장 현실을 생성하기 위해 컴퓨터 생성 객체들이 배치될 수 있는 혼합 현실 장면의 3D 맵 또는 물리적 환경의 맵)을 생성하도록 구성된다. 이를 위해, 다양한 실시예들에서, XR 맵 생성 유닛(346)은 그에 대한 명령어들 및/또는 로직, 및 그에 대한 휴리스틱 및 메타데이터를 포함한다.
일부 실시예들에서, 데이터 송신 유닛(348)은 적어도 제어기(110) 및 선택적으로, 입력 디바이스들(125), 출력 디바이스들(155), 센서들(190), 및/또는 주변 디바이스들(195) 중 하나 이상에 데이터(예를 들어, 제시 데이터, 위치 데이터 등)를 송신하도록 구성된다. 이를 위해, 다양한 실시예들에서, 데이터 송신 유닛(348)은 그에 대한 명령어들 및/또는 로직, 및 그에 대한 휴리스틱 및 메타데이터를 포함한다.
데이터 획득 유닛(342), XR 제시 유닛(344), XR 맵 생성 유닛(346), 및 데이터 송신 유닛(348)이 단일 디바이스(예를 들어, 도 1의 디스플레이 생성 컴포넌트(120)) 상에 존재하는 것으로 도시되어 있지만, 다른 실시예들에서, 데이터 획득 유닛(342), XR 제시 유닛(344), XR 맵 생성 유닛(346), 및 데이터 송신 유닛(348)의 임의의 조합이 별개의 컴퓨팅 디바이스들 내에 위치될 수 있다는 것을 이해해야 한다.
게다가, 도 3은 본 명세서에 설명된 실시예들의 구조적 개략도와는 대조적으로 특정 구현예에 존재할 수 있는 다양한 특징부들의 기능 설명으로서 더 의도된다. 당업자들에 의해 인식되는 바와 같이, 별개로 도시된 항목들은 조합될 수 있고 일부 항목들은 분리될 수 있다. 예를 들어, 다양한 실시예들에서, 도 3에 별개로 도시된 일부 기능 모듈들은 단일 모듈로 구현될 수 있고, 단일 기능 블록들의 다양한 기능들은 하나 이상의 기능 블록들에 의해 구현될 수 있다. 모듈들의 실제 수량 및 특정 기능들의 분할 그리고 특징부들이 그들 사이에서 어떻게 할당되는지는 구현예들마다 다를 것이고, 일부 실시예들에서, 특정 구현예에 대해 선택된 하드웨어, 소프트웨어, 및/또는 펌웨어의 특정 조합에 부분적으로 의존한다.
도 4는 손 추적 디바이스(140)의 예시적인 실시예의 개략적인 도식적인 예시이다. 일부 실시예들에서, 손 추적 디바이스(140)(도 1)는 사용자의 손들의 하나 이상의 부분들의 포지션/위치 및/또는 도 1의 장면(105)에 대해(예를 들어, 사용자를 둘러싸는 물리적 환경의 일부에 대해, 디스플레이 생성 컴포넌트(120)에 대해, 또는 사용자의 일부(예를 들어, 사용자의 얼굴, 눈들, 또는 손)에 대해, 그리고/또는 사용자의 손에 대해 정의된 좌표계에 대해) 사용자의 손들의 하나 이상의 부분들의 모션들을 추적하기 위해 손 추적 유닛(244)(도 2)에 의해 제어된다. 일부 실시예들에서, 손 추적 디바이스(140)는 디스플레이 생성 컴포넌트(120)(예를 들어, 머리 장착형 디바이스에 내장되거나 그에 부착됨)의 일부이다. 일부 실시예들에서, 손 추적 디바이스(140)는 디스플레이 생성 컴포넌트(120)와 별개이다(예를 들어, 별개의 하우징들에 위치되거나 또는 별개의 물리적 지지 구조들에 부착됨).
일부 실시예들에서, 손 추적 디바이스(140)는 적어도 인간 사용자의 손(406)을 포함하는 3차원 장면 정보를 캡처하는 이미지 센서들(404)(예를 들어, 하나 이상의 IR 카메라들, 3D 카메라들, 깊이 카메라들 및/또는 컬러 카메라들 등)을 포함한다. 이미지 센서들(404)은 손가락들 및 이들 개개의 포지션들이 구별될 수 있게 하기에 충분한 해상도로 손 이미지들을 캡처한다. 이미지 센서들(404)은 통상적으로, 또한 사용자의 신체의 다른 부분들, 또는 가능하게는 신체 전부의 이미지들을 캡처하고, 원하는 해상도로 손의 이미지들을 캡처하기 위한 향상된 배율을 갖는 전용 센서 또는 줌 능력들을 가질 수 있다. 일부 실시예들에서, 이미지 센서들(404)은 또한 손(406) 및 장면의 다른 요소들의 2D 컬러 비디오 이미지들을 캡처한다. 일부 실시예들에서, 이미지 센서들(404)은 장면(105)의 물리적 환경을 캡처하기 위해 다른 이미지 센서들과 함께 사용되거나, 장면(105)의 물리적 환경을 캡처하는 이미지 센서들의 역할을 한다. 일부 실시예들에서, 이미지 센서들(404)은, 이미지 센서들에 의해 캡처된 손 이동이 제어기(110)로의 입력들로서 처리되는 상호작용 공간을 정의하기 위해 이미지 센서들의 시야 또는 그의 일부가 사용되는 방식으로 사용자 또는 사용자의 환경에 대해 포지셔닝된다.
일부 실시예들에서, 이미지 센서들(404)은 3D 맵 데이터(및 가능하게는 또한 컬러 이미지 데이터)를 포함하는 프레임들의 시퀀스를, 맵 데이터로부터 고레벨 정보를 추출하는 제어기(110)에 출력한다. 이러한 고레벨 정보는 통상적으로, 애플리케이션 프로그램 인터페이스(API)를 통해 제어기 상에서 실행되는 애플리케이션에 제공되며, 제어기는 그에 따라 디스플레이 생성 컴포넌트(120)를 구동한다. 예를 들어, 사용자는 자신의 손(406)을 이동시키고 자신의 손 포즈를 변경시킴으로써 제어기(110) 상에서 실행되는 소프트웨어와 상호작용할 수 있다.
일부 실시예들에서, 이미지 센서들(404)은 손(406)을 포함하는 장면 상에 스폿들의 패턴을 투영하고 투영된 패턴의 이미지를 캡처한다. 일부 실시예들에서, 제어기(110)는 패턴 내의 스폿들의 횡방향 시프트들에 기초하여, 삼각측량에 의해 장면 내의 포인트들(사용자의 손의 표면 상의 포인트들을 포함함)의 3D 좌표들을 컴퓨팅한다. 이러한 접근법은 그것이 사용자가 임의의 종류의 비콘(beacon), 센서 또는 다른 마커를 유지하거나 착용할 것을 요구하지 않는다는 점에서 유리하다. 이는 이미지 센서들(404)로부터 특정 거리에서 미리 결정된 기준 평면에 대한 장면 내의 포인트들의 깊이 좌표들을 제공한다. 본 개시내용에서, 이미지 센서들(404)은, 장면 내의 포인트들의 깊이 좌표들이 이미지 센서들에 의해 측정된 z 컴포넌트들에 대응하도록 x, y, z 축들의 직교 세트를 정의하는 것으로 가정된다. 대안적으로, 이미지 센서들(404)(예를 들어, 손 추적 디바이스)은 단일 또는 다수의 카메라들 또는 다른 유형들의 센서들에 기초하여, 입체 이미징 또는 비행 시간 측정들과 같은 다른 3D 맵핑 방법들을 사용할 수 있다.
일부 실시예들에서, 손 추적 디바이스(140)는 사용자의 손(예를 들어, 전체 손 또는 하나 이상의 손가락들)을 이동시키는 동안 사용자의 손을 포함하는 깊이 맵들의 시간적 시퀀스를 캡처 및 프로세싱한다. 이미지 센서들(404) 및/또는 제어기(110) 내의 프로세서 상에서 실행되는 소프트웨어는 이러한 깊이 맵들에서 손의 패치 디스크립터(patch descriptor)들을 추출하기 위해 3D 맵 데이터를 프로세싱한다. 소프트웨어는, 각각의 프레임에서 손의 포즈를 추정하기 위해, 이전 학습 프로세스에 기초하여, 데이터베이스(408)에 저장된 패치 디스크립터들에 이들 디스크립터들을 매칭한다. 포즈는 전형적으로 사용자의 손 관절들 및 손가락 팁들의 3D 위치들을 포함한다.
소프트웨어는 또한 제스처들을 식별하기 위해 시퀀스에서 다수의 프레임들에 걸친 손들 및/또는 손가락들의 궤적을 분석할 수 있다. 본 명세서에 설명된 포즈 추정 기능들은 모션 추적 기능들과 인터리빙될 수 있어서, 패치-기반 포즈 추정은 2개(또는 그 이상)의 프레임들마다 단 한번만 수행되는 한편, 나머지 프레임들에 걸쳐 발생하는 포즈의 변화들을 발견하기 위해 추적이 사용된다. 포즈, 모션 및 제스처 정보는 위에서 언급된 API를 통해 제어기(110) 상에서 실행되는 애플리케이션 프로그램에 제공된다. 이러한 프로그램은, 예를 들어, 포즈 및/또는 제스처 정보에 응답하여, 디스플레이 생성 컴포넌트(120) 상에 제시된 이미지들을 이동 및 수정하거나, 또는 다른 기능들을 수행할 수 있다.
일부 실시예들에서, 제스처는 에어 제스처를 포함한다. 에어 제스처는 디바이스(예를 들어, 컴퓨터 시스템(101), 하나 이상의 입력 디바이스(125) 및/또는 손 추적 디바이스(140))의 일부인 입력 요소를 사용자가 터치하지 않으면서(또는 이와 독립적으로) 검출되는 제스처이며, 사용자 신체의 다른 부분에 대한 절대적 기준(예를 들어, 지면에 대한 사용자의 팔의 각도 또는 지면에 대한 사용자의 손의 거리)에 대한 사용자의 신체의 모션(예를 들어, 사용자의 어깨에 대한 사용자의 손의 움직임, 사용자의 다른 손에 대한 사용자의 하나의 손의 움직임, 및/또는 사용자의 다른 손가락 또는 손의 일부에 대한 사용자의 손가락의 움직임), 및/또는 사용자의 신체의 일부의 절대적 모션(예를 들어, 미리 결정된 양 및/또는 속도만큼 미리 결정된 포즈에서 손의 움직임을 포함하는 탭 제스처, 또는 사용자의 신체의 일부의 미리 결정된 회전 속도 또는 양을 포함하는 셰이크 제스처)을 포함하는 공중을 통한 사용자의 신체의 일부(예를 들어, 머리, 하나 이상의 팔들, 하나 이상의 손들, 하나 이상의 손가락들 및/또는 하나 이상의 다리들)의 검출된 모션에 기초한다.
일부 실시예들에서, 본 명세서에서 설명된 다양한 예들 및 실시예들에서 사용된 입력 제스처들은, 일부 실시예들에 따른, XR 환경(예를 들어, 가상 또는 혼합 현실 환경)과 상호작용하기 위해 다른 손가락(들) 또는 사용자의 손의 일부(들)에 대한 사용자의 손가락(들)의 움직임에 의해 수행되는 에어 제스처들을 포함한다. 일부 실시예들에서, 에어 제스처는, 사용자가 디바이스의 일부인 입력 요소를 터치하지 않으면서(또는 디바이스의 일부인 입력 요소와 독립적으로) 검출되고, 절대적 기준에 대한 사용자의 신체의 모션(예를 들어, 지면에 대한 사용자의 팔의 각도 또는 지면에 대한 사용자의 손의 거리), 사용자의 신체의 다른 부분에 대한 사용자의 신체의 모션(예를 들어, 사용자의 어깨에 대한 사용자의 손의 이동, 사용자의 하나의 손의 사용자의 다른 손에 대한 이동, 및/또는 사용자의 손가락의 사용자의 손의 다른 손가락 또는 부분에 대한 이동), 및/또는 사용자의 신체의 부분의 절대적 모션(예를 들어, 미리 결정된 양 및/또는 속도만큼의 미리 결정된 포즈에서의 손의 이동을 포함하는 탭 제스처, 또는 사용자의 신체의 부분의 미리 결정된 회전 속도 또는 회전량을 포함하는 쉐이크 제스처)을 포함하는 공중을 통한 사용자의 신체의 부분의 검출된 모션에 기초하는 제스처이다.
입력 제스처가 에어 제스처인 일부 실시예들에서(예를 들어, 터치스크린 상에 디스플레이된 사용자 인터페이스 요소와의 접촉 또는 사용자 인터페이스 요소에 대해 커서를 이동시키는 마우스 또는 트랙패드와의 접촉과 같이, 사용자 인터페이스 요소가 사용자 입력의 타겟인 것에 대한 정보를 컴퓨터 시스템에 제공하는 입력 디바이스와의 물리적 접촉의 부재 시에), 제스처는 (예를 들어, 아래에서 설명되는 바와 같은 직접 입력들에 대한) 사용자 입력의 타겟을 결정하기 위해 사용자의 주의(예를 들어, 시선)를 고려한다. 따라서, 에어 제스처들을 수반하는 구현들에서, 입력 제스처는, 예를 들어, 아래에서 더 상세히 설명되는 바와 같이, 핀치 및/또는 탭 입력을 수행하기 위해 사용자의 손가락(들) 및/또는 손들의 움직임과 조합하여(예를 들어, 동시에) 사용자 인터페이스 요소를 향한 검출된 주의(예를 들어, 시선)이다.
일부 실시예들에서, 사용자 인터페이스 객체로 지향되는 입력 제스처들은 사용자 인터페이스 객체를 참조하여 간접적으로 또는 직접적으로 수행된다. 예를 들어, (예를 들어, 사용자의 현재 시점에 기초하여 결정되는 바와 같이) 3차원 환경에서 사용자 인터페이스 객체의 포지션에 대응하는 포지션에서 사용자의 손으로 입력 제스처를 수행하는 것에 따라 사용자 인터페이스 객체 상에서 직접 사용자 입력이 수행된다. 일부 실시예들에서, 사용자 인터페이스 객체 상에서 사용자의 주의(예를 들어, 시선)를 검출하면서 사용자의 손의 포지션이 3차원 환경에서 사용자 인터페이스 객체의 포지션에 대응하는 포지션에 있지 않은 동안 사용자가 입력 제스처를 수행하는 것에 따라 사용자 인터페이스 객체 상에서 간접적으로 입력 제스처가 수행된다. 예를 들어, 직접적인 입력 제스처의 경우, 사용자는, 사용자 인터페이스 객체의 디스플레이된 포지션에 대응하는 포지션에서 또는 그 근처에서(예를 들어, 옵션의 외측 에지 또는 옵션의 중심 부분으로부터 측정되는 바와 같이 0.5 cm, 1 cm, 5 cm, 또는 0 내지 5 cm의 거리 내에서) 제스처를 개시함으로써 사용자 인터페이스 객체로 사용자의 입력을 지향시키는 것이 가능하게 된다. 간접적인 입력 제스처의 경우, 사용자는 사용자 인터페이스 객체에 주의를 기울임으로써(예를 들어, 사용자 인터페이스 객체를 응시함으로써) 사용자의 입력을 사용자 인터페이스 객체로 지향시키는 것이 가능하게 되고, 옵션에 주의를 기울이는 동안, 사용자는 (예를 들어, 컴퓨터 시스템에 의해 검출가능한 임의의 포지션에서)(예를 들어, 사용자 인터페이스 객체의 디스플레이된 포지션에 대응하지 않는 포지션에서) 입력 제스처를 개시한다.
일부 실시예들에서, 본 명세서에서 설명된 다양한 예들 및 실시예들에서 사용된 입력 제스처들(예를 들어, 에어 제스처들)은 일부 실시예들에 따른, 가상 또는 혼합 현실 환경과 상호작용하기 위한 핀치 입력들 및 탭 입력들을 포함한다. 예를 들어, 아래에서 설명되는 핀치 입력들 및 탭 입력들은 에어 제스처들로서 수행된다.
일부 실시예들에서, 핀치 입력은 핀치 제스처, 롱 핀치 제스처, 핀치 및 드래그 제스처 또는 더블 핀치 제스처 중 하나 이상을 포함하는 에어 제스처의 일부이다. 예를 들어, 에어 제스처인 핀치 제스처는 서로 접촉하기 위한 손의 2개 이상의 손가락들의 움직임을 포함하고, 이는, 선택적으로, 즉각적인(예를 들어, 0 내지 1 초 이내에) 서로로부터의 접촉 해제가 후속된다. 에어 제스처인 롱 핀치 제스처는, 서로로부터의 접촉 해제를 검출하기 전에 적어도 임계 시간량(예를 들어, 적어도 1 초) 동안 서로 접촉하기 위한 손의 2개 이상의 손가락들의 움직임을 포함한다. 예를 들어, 롱 핀치 제스처는 사용자가 핀치 제스처를 유지하는 것(예를 들어, 2개 이상의 손가락들이 접촉함)을 포함하고, 롱 핀치 제스처는 2개 이상의 손가락들 사이의 접촉 해제가 검출될 때까지 계속된다. 일부 실시예들에서, 에어 제스처인 더블 핀치 제스처는 서로 즉각적인(예를 들어, 미리 정의된 시간 기간 내인) 연속으로 검출되는 2개(예를 들어, 또는 그 이상)의 핀치 입력들(예를 들어, 동일한 손에 의해 수행됨)을 포함한다. 예를 들어, 사용자는 제1 핀치 입력(예를 들어, 핀치 입력 또는 롱 핀치 입력)을 수행하고, 제1 핀치 입력을 해제하고(예를 들어, 2개 이상의 손가락들 사이의 접촉을 해제함), 제1 핀치 입력을 해제한 이후 미리 정의된 시간 기간 내에(예를 들어, 1초 이내 또는 2초 내에) 제2 핀치 입력을 수행한다.
일부 실시예들에서, 에어 제스처인 핀치 및 드래그 제스처는, 핀치 제스처(예를 들어, 핀치 제스처 또는 롱 핀치 제스처)를 포함하고, 이는 사용자의 손의 포지션을 제1 포지션(예를 들어, 드래그의 시작 포지션)으로부터 제2 포지션(예를 들어, 드래그의 종료 포지션)으로 변경시키는 드래그 입력과 함께 수행된다(예를 들어, 그에 후속함). 일부 실시예들에서, 사용자는 드래그 입력을 수행하는 동안 핀치 제스처를 유지하고, (예를 들어, 제2 포지션에서) 드래그 제스처를 종료하기 위해 핀치 제스처를 해제한다(예를 들어, 자신의 2개 이상의 손가락들을 개방한다). 일부 실시예들에서, 핀치 입력 및 드래그 입력은 동일한 손에 의해 수행된다(예를 들어, 사용자는 2개 이상의 손가락들을 핀칭하여 서로 접촉하게 하고, 드래그 제스처를 이용하여 동일한 손을 공중에서 제2 포지션으로 이동시킨다). 일부 실시예들에서, 핀치 입력은 사용자의 제1 손에 의해 수행되고 드래그 입력은 사용자의 제2 손에 의해 수행된다(예를 들어, 사용자의 제2 손이 공중에서 제1 포지션으로부터 제2 포지션으로 이동하는 동안 사용자는 사용자의 제1 손으로 핀치 입력을 계속한다). 일부 실시예들에서, 에어 제스처인 입력 제스처는 사용자의 두 손들 둘 모두를 사용하여 수행되는 입력들(예를 들어, 핀치 및/또는 탭핑 입력들)을 포함한다. 예를 들어, 입력 제스처는 서로 함께(예를 들어, 동시에 또는 미리 정의된 시간 기간 내에) 수행되는 2개(예를 들어, 그 이상)의 핀치 입력들을 포함한다. 예를 들어, 제1 핀치 제스처는 사용자의 제1 손을 사용하여 수행되고(예를 들어, 핀치 입력, 롱 핀치 입력 또는 핀치 및 드래그 입력), 제1 손을 사용하여 핀치 입력을 수행하는 것과 관련하여, 다른 손(예를 들어, 사용자의 두 손들 중 두 번째 손)을 사용하는 제2 핀치 입력을 수행한다. 일부 실시예들에서, 사용자의 두 손들 사이의 움직임은 (예를 들어, 사용자의 두 손들 사이의 거리 또는 상대적인 배향을 증가 및/또는 감소시키기 위한 것이다).
일부 실시예들에서, 에어 제스처로서 수행되는 (예를 들어, 사용자 인터페이스 요소로 지향되는) 탭 입력은 사용자 인터페이스 요소를 향한 사용자의 손가락(들)의 움직임, 선택적으로 사용자 인터페이스 요소를 향해 연장된 사용자의 손가락(들)과 함께 사용자 인터페이스 요소를 향한 사용자의 손의 움직임, 사용자의 손가락의 하향 모션(예를 들어, 터치스크린 상의 마우스 클릭 모션 또는 탭을 모방함), 또는 사용자의 손의 다른 미리 정의된 움직임을 포함한다. 일부 실시예들에서, 에어 제스처로서 수행되는 탭 입력은 사용자의 시점으로부터 멀어지게 그리고/또는 탭 입력의 타겟인 객체를 향해 손가락 또는 손의 탭 제스처 움직임을 수행하는 손가락 또는 손과 후속되는 움직임의 종료의 움직임 특성들에 기초하여 검출된다. 일부 실시예들에서, 움직임의 종료는 탭 제스처를 수행하는 손가락 또는 손의 움직임 특징들의 변화(예를 들어, 사용자의 시점으로부터 멀어지는 그리고/또는 탭 입력의 타겟인 객체를 향한 움직임의 종료, 손가락 또는 손의 움직임의 방향의 반전, 및/또는 손가락 또는 손의 움직임의 가속의 방향의 반전)에 기초하여 검출된다.
일부 실시예들에서, 사용자의 주의는 (선택적으로는 다른 조건들을 요구하지 않으면서) 3차원 환경의 일부로 지향되는 시선의 검출에 기초하여 3차원 환경의 일부로 지향되는 것으로 결정된다. 일부 실시예들에서, 사용자의 주의는, 시선이 적어도 임계 지속기간(예를 들어, 체류(dwell) 지속기간) 동안 3차원 환경의 일부로 지향되는 것을 요구하는 것 및/또는 사용자의 주의가 3차원 환경의 일부로 지향된다고 디바이스가 결정하기 위해 사용자의 시점이 3차원 환경의 일부로부터 거리 임계치 내에 있는 동안 시선이 3차원 환경의 일부로 지향되는 것을 요구하는 것과 같은 하나 이상의 부가적인 조건들과 함께, 3차원 환경의 일부로 지향되는 시선의 검출에 기초하여 3차원 환경의 일부로 지향되는 것으로 결정되며, 여기서 부가적인 조건들 중 하나가 충족되지 않으면, 디바이스는 (예를 들어, 하나 이상의 부가적인 조건들이 충족될 때까지) 시선이 지향되는 3차원 환경의 일부로 주의가 지향되지 않는다고 결정한다.
일부 실시예들에서, 사용자 또는 사용자의 일부의 준비 상태 구성의 검출은 컴퓨터 시스템에 의해 검출된다. 손의 준비 상태 구성의 검출은 사용자가 손에 의해 수행된 하나 이상의 에어 제스처 입력들(예를 들어, 핀치, 탭, 핀치 및 드래그, 더블 핀치, 롱 핀치, 또는 본 명세서에 설명된 다른 에어 제스처)을 사용하여 컴퓨터 시스템과 상호작용하도록 준비할 가능성이 있다는 표시로서 컴퓨터 시스템에 의해 사용된다. 예를 들어, 손이 미리 결정된 손 형상(예를 들어, 엄지 및 하나 이상의 손가락들이 핀치 또는 파지(grab) 제스처를 만들 준비가 되게 펼쳐지고 간격을 두고 있는 사전-핀치 형상 또는 하나 이상의 손가락들이 펼쳐지고 손바닥이 사용자로부터 멀어지는 쪽을 향하는 사전-탭)을 갖는지 여부에 기초하여, 손이 사용자의 시점에 대해 미리 결정된 포지션(예를 들어, 사용자의 머리 아래 그리고 사용자의 허리 위, 및 적어도 15, 20, 25, 30, 또는 50 cm만큼 신체로부터 펼쳐짐)에 있는지 여부에 기초하여, 그리고/또는 손이 특정 방식으로 이동되는지(예를 들어, 사용자의 허리 위 그리고 사용자의 머리 아래로 사용자의 정면의 구역을 향해 이동되는지 또는 사용자의 신체 또는 다리로부터 멀어지게 이동되는지) 여부에 기초하여, 손의 준비 상태가 결정된다. 일부 실시예들에서, 준비 상태는 사용자 인터페이스의 인터랙티브(interactive) 요소들이 주의(예를 들어, 시선) 입력들에 응답하는지 여부를 결정하는 데 사용된다.
일부 실시예들에서, 소프트웨어는, 예를 들어 네트워크를 통해 전자적 형태로 제어기(110)에 다운로드될 수 있거나, 또는 그것은 대안적으로는 광학, 자기, 또는 전자 메모리 매체들과 같은 유형적인 비일시적 매체들 상에 제공될 수 있다. 일부 실시예들에서, 데이터베이스(408)는 마찬가지로 제어기(110)와 연관된 메모리에 저장된다. 대안적으로 또는 부가적으로, 컴퓨터의 설명된 기능들 중 일부 또는 전부는 주문형 또는 반-주문형 집적 회로 또는 프로그래밍가능 디지털 신호 프로세서(DSP)와 같은 전용 하드웨어로 구현될 수 있다. 제어기(110)가 예시적으로 이미지 센서들(404)과 별개의 유닛으로서 도 4에 도시되지만, 제어기의 프로세싱 기능들의 일부 또는 전부는 적합한 마이크로프로세서 및 소프트웨어에 의해, 또는 이미지 센서들(404)(예를 들어, 손 추적 디바이스)의 하우징 내의 또는 달리 이미지 센서들(404)과 관련된 전용 회로부에 의해 수행될 수 있다. 일부 실시예들에서, 이들 프로세싱 기능들의 적어도 일부가 (예를 들어, 텔레비전 세트, 핸드헬드 디바이스, 또는 머리 장착형 디바이스 내의) 디스플레이 생성 컴포넌트(120) 또는 게임 콘솔 또는 미디어 플레이어와 같은, 임의의 다른 적합한 컴퓨터화된 디바이스와 통합된 적합한 프로세서에 의해 수행될 수 있다. 이미지 센서들(404)의 감지 기능들은 센서 출력에 의해 제어될 컴퓨터 또는 다른 컴퓨터화된 장치 내에 마찬가지로 통합될 수 있다.
도 4는 일부 실시예들에 따른, 이미지 센서들(404)에 의해 캡처된 깊이 맵(410)의 개략적인 표현을 더 포함한다. 위에서 설명된 바와 같이, 깊이 맵은 개개의 깊이 값들을 갖는 픽셀들의 행렬을 포함한다. 손(406)에 대응하는 픽셀들(412)은 이러한 맵에서 배경 및 손목으로부터 분할되었다. 깊이 맵(410) 내의 각각의 픽셀의 밝기는 그의 깊이 값, 즉, 이미지 센서들(404)로부터 측정된 z 거리에 역으로 대응하며, 회색 음영은 깊이가 증가함에 따라 더 어두워진다. 제어기(110)는 인간 손의 특성들을 갖는 이미지의 컴포넌트(즉, 이웃 픽셀들의 그룹)를 식별 및 분할하기 위해 이러한 깊이 값들을 프로세싱한다. 이러한 특성들은, 예를 들어, 깊이 맵들의 시퀀스의 프레임마다 전체 크기, 형상 및 모션을 포함할 수 있다.
도 4는 또한, 일부 실시예들에 따른, 제어기(110)가 궁극적으로 손(406)의 깊이 맵(410)으로부터 추출하는 손 골격(414)을 개략적으로 예시한다. 도 4에서, 손 골격(414)은 오리지널 깊이 맵으로부터 분할된 손 배경(416) 상에 중첩된다. 일부 실시예들에서, 손(예를 들어, 너클들, 손가락 팁들, 손바닥의 중심, 손목에 연결되는 손의 단부 등에 대응하는 포인트들) 및 선택적으로, 손에 연결된 손목 또는 팔 상의 핵심 특징 포인트들이 손 골격(414) 상에 식별 및 위치된다. 일부 실시예들에서, 다수의 이미지 프레임들에 걸친 이러한 핵심 특징 포인트들의 위치 및 이동들은, 일부 실시예들에 따라, 손에 의해 수행되는 손 제스처들 또는 손의 현재 상태를 결정하기 위해 제어기(110)에 의해 사용된다.
도 5는 눈 추적 디바이스(130)(도 1)의 예시적인 실시예를 예시한다. 일부 실시예들에서, 눈 추적 디바이스(130)는 장면(105)에 대한 또는 디스플레이 생성 컴포넌트(120)를 통해 디스플레이된 XR 콘텐츠에 대한 사용자의 시선의 위치 및 이동을 추적하기 위해 눈 추적 유닛(245)(도 2)에 의해 제어된다. 일부 실시예들에서, 눈 추적 디바이스(130)는 디스플레이 생성 컴포넌트(120)와 통합된다. 예를 들어, 일부 실시예들에서, 디스플레이 생성 컴포넌트(120)가 머리 장착형 디바이스, 예컨대, 헤드셋, 헬멧, 고글, 또는 안경, 또는 웨어러블 프레임에 배치된 핸드헬드 디바이스일 때, 머리 장착형 디바이스는 사용자가 보기 위한 XR 콘텐츠를 생성하는 컴포넌트 및 XR 콘텐츠에 대한 사용자의 시선을 추적하기 위한 컴포넌트 둘 모두를 포함한다. 일부 실시예들에서, 눈 추적 디바이스(130)는 디스플레이 생성 컴포넌트(120)와 별개이다. 예를 들어, 디스플레이 생성 컴포넌트가 핸드헬드 디바이스 또는 XR 챔버일 때, 눈 추적 디바이스(130)는 선택적으로 핸드헬드 디바이스 또는 XR 챔버와 별개의 디바이스이다. 일부 실시예들에서, 눈 추적 디바이스(130)는 머리 장착형 디바이스 또는 머리 장착형 디바이스의 일부이다. 일부 실시예들에서, 머리 장착형 눈 추적 디바이스(130)는 선택적으로, 또한 머리 장착된 디스플레이 생성 컴포넌트 또는 머리 장착되지 않은 디스플레이 생성 컴포넌트와 함께 사용된다. 일부 실시예들에서, 눈 추적 디바이스(130)는 머리 장착형 디바이스가 아니며, 선택적으로 머리 장착형 디스플레이 생성 컴포넌트와 함께 사용된다. 일부 실시예들에서, 눈 추적 디바이스(130)는 머리 장착형 디바이스가 아니며, 선택적으로 머리 장착되지 않은 디스플레이 생성 컴포넌트의 일부이다.
일부 실시예들에서, 디스플레이 생성 컴포넌트(120)는 사용자의 눈들 전방에서 좌측 및 우측 이미지들을 포함하는 프레임들을 디스플레이하기 위한 디스플레이 메커니즘(예를 들어, 좌측 및 우측 근안(near-eye) 디스플레이 패널들)을 사용하여 3D 가상 뷰들을 사용자에게 제공한다. 예를 들어, 머리 장착형 디스플레이 생성 컴포넌트는 디스플레이와 사용자의 눈들 사이에 위치된 좌측 및 우측 광학 렌즈들(본 명세서에서 눈 렌즈들로 지칭됨)을 포함할 수 있다. 일부 실시예들에서, 디스플레이 생성 컴포넌트는 디스플레이를 위해 사용자의 환경의 비디오를 캡처하는 하나 이상의 외부 비디오 카메라들을 포함하거나 또는 그에 커플링될 수 있다. 일부 실시예들에서, 머리 장착형 디스플레이 생성 컴포넌트는 사용자가 물리적 환경을 직접 보고 투명 또는 반투명 디스플레이 상에 가상 객체들을 디스플레이할 수 있게 하는 투명 또는 반투명 디스플레이를 가질 수 있다. 일부 실시예들에서, 디스플레이 생성 컴포넌트는 가상 객체들을 물리적 환경에 투영한다. 가상 객체들은, 예를 들어, 물리적 표면 상에 또는 홀로그래프로서 투영되어, 개인이 시스템을 사용하여, 물리적 환경 상에 중첩된 가상 객체들을 관찰하게 할 수 있다. 그러한 경우들에서, 좌측 및 우측 눈들에 대한 별개의 디스플레이 패널들 및 이미지 프레임들이 필요하지 않을 수 있다.
도 5에 도시된 바와 같이, 일부 실시예들에서, 시선 추적 디바이스(130)는 적어도 하나의 눈 추적 카메라(예를 들어, 적외선(IR) 또는 NIR(near-IR) 카메라들), 및 사용자의 눈들을 향해 광(예를 들어, IR 또는 NIR 광)을 방출하는 조명 소스들(예를 들어, LED들의 어레이 또는 링과 같은 IR 또는 NIR 광원들)을 포함한다. 눈 추적 카메라들은 눈들로부터 직접적으로 광원들로부터 반사된 IR 또는 NIR 광을 수신하기 위해 사용자의 눈들을 향해 지향될 수 있거나, 또는 대안적으로, 가시광이 통과할 수 있게 하면서 눈들로부터 눈 추적 카메라들로 IR 또는 NIR 광을 반사하는 디스플레이 패널들과 사용자의 눈들 사이에 위치된 "핫(hot)" 미러들을 향해 지향될 수 있다. 시선 추적 디바이스(130)는 선택적으로 사용자의 눈들의 이미지들을 (예를 들어, 60 내지 120 fps(frames per second)로 캡처된 비디오 스트림으로서) 캡처하고, 이미지들을 분석하여 시선 추적 정보를 생성하고, 시선 추적 정보를 제어기(110)에 통신한다. 일부 실시예들에서, 사용자의 2개의 눈들은 개개의 눈 추적 카메라들 및 조명 소스들에 의해 개별적으로 추적된다. 일부 실시예들에서, 사용자의 오직 하나의 눈만이 개개의 눈 추적 카메라 및 조명 소스들에 의해 추적된다.
일부 실시예들에서, 눈 추적 디바이스(130)는, 특정 동작 환경(100)에 대한 눈 추적 디바이스의 파라미터들, 예를 들어 LED들, 카메라들, 핫 미러들(존재하는 경우), 눈 렌즈들 및 디스플레이 스크린의 3D 기하학적 관계 및 파라미터들을 결정하기 위해 디바이스-특정 교정 프로세스를 사용하여 교정된다. 디바이스-특정 교정 프로세스는 AR/VR 장비를 최종 사용자에게 전달하기 전에 공장 또는 다른 설비에서 수행될 수 있다. 디바이스-특정 교정 프로세스는 자동화된 교정 프로세스 또는 수동 교정 프로세스일 수 있다. 사용자-특정 교정 프로세스는 특정 사용자의 눈 파라미터들, 예를 들어 동공 위치, 중심와 위치, 광학 축, 시각 축, 눈 간격 등의 추정을 포함할 수 있다. 디바이스-특정 및 사용자-특정 파라미터들이 눈 추적 디바이스(130)에 대해 결정되면, 일부 실시예들에 따라, 눈 추적 카메라들에 의해 캡처된 이미지들은 디스플레이에 대한 사용자의 현재의 시각 축 및 시선 포인트를 결정하기 위해 글린트-보조 방법을 사용하여 프로세싱될 수 있다.
도 5에 도시된 바와 같이, 눈 추적 디바이스(130)(예를 들어, 130A 또는 130B)는 눈 렌즈(들)(520), 및 눈 추적이 수행되는 사용자의 얼굴의 측부 상에 포지셔닝된 적어도 하나의 눈 추적 카메라(540)(예를 들어, 적외선(IR) 또는 NIR(near-IR) 카메라들)를 포함하는 시선 추적 시스템, 및 사용자의 눈(들)(592)을 향해 광(예를 들어, IR 또는 NIR 광)을 방출하는 조명 소스(530)(예를 들어, NIR 발광 다이오드(LED)들의 어레이 또는 링과 같은 IR 또는 NIR 광원들)를 포함한다. 눈 추적 카메라들(540)은 (예를 들어, 도 5의 상단 부분에 도시된 바와 같이) 가시광이 통과하게 허용하면서 눈(들)(592)으로부터 IR 또는 NIR 광을 반사하는 디스플레이(510)(예를 들어, 머리 장착형 디스플레이의 좌측 또는 우측 디스플레이 패널, 또는 핸드헬드 디바이스의 디스플레이, 프로젝터 등)와 사용자의 눈(들)(592) 사이에 위치된 미러들(550) 쪽으로 지향될 수 있거나 또는 대안적으로 (예를 들어, 도 5의 하단 부분에 도시된 바와 같이) 눈(들)(592)으로부터 반사된 IR 또는 NIR 광을 수신하기 위해 사용자의 눈(들)(592)을 향해 지향될 수 있다.
일부 실시예들에서, 제어기(110)는 AR 또는 VR 프레임들(562)(예를 들어, 좌측 및 우측 디스플레이 패널들에 대한 좌측 및 우측 프레임들)을 렌더링하고, 프레임들(562)을 디스플레이(510)에 제공한다. 제어기(110)는, 예를 들어 디스플레이를 위해 프레임들(562)을 프로세싱할 때, 다양한 목적들을 위해 눈 추적 카메라들(540)로부터의 시선 추적 입력(542)을 사용한다. 제어기(110)는 선택적으로, 글린트-보조 방법들 또는 다른 적합한 방법들을 사용하여 눈 추적 카메라들(540)로부터 획득된 시선 추적 입력(542)에 기초하여 디스플레이(510) 상의 사용자의 시선 포인트를 추정한다. 시선 추적 입력(542)으로부터 추정된 시선의 포인트는 선택적으로, 사용자가 현재 보고 있는 방향을 결정하는 데 사용된다.
다음은 사용자의 현재 시선 방향에 대한 몇몇 가능한 사용 사례들을 설명하며, 제한하려는 의도가 아니다. 예시적인 사용 사례로서, 제어기(110)는 사용자의 시선의 결정된 방향에 기초하여 가상 콘텐츠를 상이하게 렌더링할 수 있다. 예를 들어, 제어기(110)는 주변 구역들에서보다 사용자의 현재 시선 방향으로부터 결정된 중심와 구역에서 더 높은 해상도로 가상 콘텐츠를 생성할 수 있다. 다른 예로서, 제어기는 사용자의 현재 시선 방향에 적어도 부분적으로 기초하여 뷰에서 가상 콘텐츠를 포지셔닝시키거나 이동시킬 수 있다. 다른 예로서, 제어기는 사용자의 현재 시선 방향에 적어도 부분적으로 기초하여 뷰에서 특정 가상 콘텐츠를 디스플레이할 수 있다. AR 애플리케이션들에서의 다른 예시적인 사용 사례로서, 제어기(110)는 결정된 방향으로 포커싱하도록 XR 경험의 물리적 환경들을 캡처하기 위한 외부 카메라들에게 지시할 수 있다. 이어서, 외부 카메라들의 오토 포커스 메커니즘은 사용자가 현재 디스플레이(510) 상에서 보고 있는 환경 내의 객체 또는 표면에 포커싱할 수 있다. 다른 예시적인 사용 사례로서, 눈 렌즈들(520)은 포커싱가능한 렌즈들일 수 있고, 시선 추적 정보는, 사용자가 현재 보고 있는 가상 객체가 사용자의 눈들(592)의 수렴에 매칭하기 위해 적절한 버전스(vergence)를 갖도록 눈 렌즈들(520)의 포커스를 조정하기 위해 제어기에 의해 사용된다. 제어기(110)는, 사용자가 보고 있는 가까운 객체들이 올바른 거리에 나타나게 포커스를 조정하도록 눈 렌즈들(520)을 지향시키기 위해 시선 추적 정보를 레버리지할 수 있다.
일부 실시예들에서, 눈 추적 디바이스는 디스플레이(예를 들어, 디스플레이(510)), 2개의 눈 렌즈들(예를 들어, 눈 렌즈(들)(520)), 눈 추적 카메라들(예를 들어, 눈 추적 카메라(들)(540)) 및 웨어러블 하우징에 장착된 광원들(예를 들어, 광원들(530)(예를 들어, IR 또는 NIR LED들))을 포함하는 머리 장착형 디바이스의 일부이다. 광원들은 광(예를 들어, IR 또는 NIR 광)을 사용자의 눈(들)(592)을 향해 방출한다. 일부 실시예들에서, 광원들은 도 5에 도시된 바와 같이 렌즈들 각각 주위에 링들 또는 원들로 배열될 수 있다. 일부 실시예들에서, 일 예로서 8개의 광원들(530)(예를 들어, LED들)이 각각의 렌즈(520) 주위에 배열된다. 그러나, 더 많거나 또는 더 적은 광원들(530)이 사용될 수 있고, 광원들(530)의 다른 배열들 및 위치들이 사용될 수 있다.
일부 실시예들에서, 디스플레이(510)는 가시광 범위에서 광을 방출하고, IR 또는 NIR 범위에서 광을 방출하지 않아서, 시선 추적 시스템에 잡음을 도입하지 않는다. 눈 추적 카메라(들)(540)의 위치 및 각도는 예로서 주어진 것이며, 제한하려는 의도가 아니라는 것을 유의한다. 일부 실시예들에서, 단일 눈 추적 카메라(540)는 사용자의 얼굴의 각각의 측부 상에 위치된다. 일부 실시예들에서, 2개 이상의 NIR 카메라들(540)이 사용자의 얼굴의 각각의 측부 상에서 사용될 수 있다. 일부 실시예들에서, 더 넓은 시야(field of view; FOV)를 갖는 카메라(540) 및 더 좁은 FOV를 갖는 카메라(540)가 사용자의 얼굴의 각각의 측부 상에서 사용될 수 있다. 일부 실시예들에서, 하나의 파장(예를 들어, 850 nm)에서 동작하는 카메라(540) 및 상이한 파장(예를 들어, 940 nm)에서 동작하는 카메라(540)가 사용자의 얼굴의 각각의 측부 상에서 사용될 수 있다.
도 5에 예시된 바와 같은 시선 추적 시스템의 실시예들은, 예를 들어, 컴퓨터 생성 현실, 가상 현실, 증강 현실 및/또는 증강 가상 경험들을 사용자에게 제공하기 위해 컴퓨터 생성 현실, 가상 현실 및/또는 혼합 현실 애플리케이션들에서 사용될 수 있다.
도 6a는 일부 실시예들에 따른 글린트-보조 시선 추적 파이프라인을 예시한다. 일부 실시예들에서, 시선 추적 파이프라인은 글린트-보조 시선 추적 시스템(예를 들어, 도 1 및 도 5에 예시된 바와 같은 눈 추적 디바이스(130))에 의해 구현된다. 글린트-보조 시선 추적 시스템은 추적 상태를 유지할 수 있다. 초기에, 추적 상태는 오프 또는 "아니오"이다. 추적 상태에 있을 때, 글린트-보조 시선 추적 시스템은 현재 프레임에서 동공 윤곽 및 글린트들을 추적하기 위해 현재 프레임을 분석할 때 이전 프레임으로부터의 이전 정보를 사용한다. 추적 상태에 있지 않을 때, 글린트-보조 시선 추적 시스템은 현재 프레임에서 동공 및 글린트를 검출하려고 시도하고, 성공적이면, 추적 상태를 "예"로 초기화하고, 추적 상태에서 다음 프레임으로 계속된다.
도 6a에 도시된 바와 같이, 시선 추적 카메라들은 사용자의 좌측 및 우측 눈들의 좌측 및 우측 이미지들을 캡처할 수 있다. 이어서, 캡처된 이미지들은 610에서 시작하는 프로세싱을 위해 시선 추적 파이프라인에 입력된다. 요소(600)로 돌아가는 화살표에 의해 표시된 바와 같이, 시선 추적 시스템은, 예를 들어 초당 60 내지 120 프레임의 레이트로 사용자의 눈들의 이미지들을 캡처하는 것을 계속할 수 있다. 일부 실시예들에서, 캡처된 이미지들의 각각의 세트는 프로세싱을 위해 파이프라인에 입력될 수 있다. 그러나, 일부 실시예들에서 또는 일부 조건들 하에서, 캡처된 모든 프레임들이 파이프라인에 의해 프로세싱되는 것은 아니다.
610에서, 현재 캡처된 이미지들에 대해, 추적 상태가 예이면, 방법은 요소(640)로 진행한다. 610에서, 추적 상태가 아니오이면, 620에서 표시된 바와 같이, 이미지들에서 사용자의 동공들 및 글린트들을 검출하기 위해 이미지들이 분석된다. 630에서, 동공들 및 글린트들이 성공적으로 검출되면, 방법은 요소(640)로 진행한다. 그렇지 않으면, 방법은 사용자의 눈들의 다음 이미지들을 프로세싱하기 위해 요소(610)로 복귀한다.
640에서, 요소(610)로부터 진행하면, 이전 프레임들로부터의 이전 정보에 부분적으로 기초하여 동공들 및 글린트들을 추적하기 위해 현재 프레임들이 분석된다. 640에서, 요소(630)로부터 진행하면, 추적 상태는 현재 프레임들에서 검출된 동공들 및 글린트들에 기초하여 초기화된다. 요소(640)에서 프로세싱의 결과들은 추적 또는 검출의 결과들이 신뢰할 수 있음을 검증하기 위해 체크된다. 예를 들어, 동공 및 시선 추정을 수행하기에 충분한 수의 글린트들이 현재 프레임들에서 성공적으로 추적되거나 검출되는지를 결정하기 위해 결과들이 체크될 수 있다. 650에서, 결과들이 신뢰될 수 없으면, 요소(660)에서 추적 상태는 아니오로 설정되고, 방법은 사용자의 눈들의 다음 이미지들을 프로세싱하기 위해 요소(610)로 복귀한다. 650에서, 결과들이 신뢰되면, 방법은 요소(670)로 진행한다. 670에서, 추적 상태는 (이미 예가 아니면) 예로 설정되고, 동공 및 글린트 정보는 사용자의 시선 포인트를 추정하기 위해 요소(680)에 전달된다.
도 6a는 특정 구현예에서 사용될 수 있는 눈 추적 기술의 일 예로서의 역할을 하도록 의도된다. 당업자들에 의해 인식되는 바와 같이, 현재 존재하거나 미래에 개발될 다른 눈 추적 기술들은, 다양한 실시예들에 따라, 사용자들에게 XR 경험들을 제공하기 위해 컴퓨터 시스템(101)에서 본 명세서에 설명된 글린트-보조 눈 추적 기술 대신에 또는 그와 조합하여 사용될 수 있다.
일부 실시예들에서, 실제 세계 환경(602)의 캡처된 부분들은 XR 경험, 예를 들어 하나 이상의 가상 객체들이 실제 세계 환경(602)의 표현들 위에 중첩되는 혼합 현실 환경을 사용자에게 제공하는 데 사용된다.
도 6b는 일부 실시예들에 따른 XR 경험들을 제공하는 전자 디바이스(101)의 예시적인 환경을 예시한다. 도 6b에서, 실제 세계 환경(602)은 전자 디바이스(101), 사용자(608), 및 실제 세계 객체(예를 들어, 테이블(604))를 포함한다. 도 6b에 도시된 바와 같이, 전자 디바이스(101)는 선택적으로, 사용자(608)의 하나 이상의 손들이 자유롭게 되도록(예를 들어, 사용자(608)가 선택적으로 하나 이상의 손들로 디바이스(101)를 유지하고 있지 않도록) 삼각대 상에 장착되거나 실제 세계 환경(602)에 달리 고정된다. 위에서 설명된 바와 같이, 디바이스(101)는 선택적으로, 디바이스(101)의 상이한 측들 상에 위치설정된 센서들의 하나 이상의 그룹들을 갖는다. 예를 들어, 디바이스(101)는 선택적으로, 디바이스(101)의 "후방" 및 "전방" 측들 상에 각각 위치된 센서 그룹(612-1) 및 센서 그룹(612-2)(예를 들어, 이들은 디바이스(101)의 개개의 측들로부터 정보를 캡처할 수 있음)을 포함한다. 본 명세서에서 사용되는 바와 같이, 디바이스(101)의 전방 측은 사용자(608)를 향하는 측이고, 디바이스(101)의 후방 측은 사용자(608)로부터 멀어지는 쪽을 향하는 측이다.
일부 실시예들에서, 센서 그룹(612-2)은 사용자의 눈들 및/또는 시선을 추적하기 위한 하나 이상의 센서들을 포함하는 눈 추적 유닛(예를 들어, 도 2를 참조하여 위에서 설명된 눈 추적 유닛(245))을 포함하여, 눈 추적 유닛은 이전에 설명된 방식들로 사용자(608)를 "보고" 사용자(608)의 눈(들)을 추적할 수 있다. 일부 실시예들에서, 디바이스(101)의 눈 추적 유닛은 사용자(608)의 눈들의 이동들, 배향, 및/또는 시선을 캡처하고, 이동들, 배향, 및/또는 시선을 입력들로서 처리할 수 있다.
일부 실시예들에서, 센서 그룹(612-1)은 도 6b에 도시된 바와 같이, 디바이스(101)의 "후방" 측 상에 유지되는 사용자(608)의 하나 이상의 손들을 추적할 수 있는 손 추적 유닛(예를 들어, 도 2를 참조하여 위에서 설명된 손 추적 유닛(243))을 포함한다. 일부 실시예들에서, 손 추적 유닛은 선택적으로 센서 그룹(612-2)에 포함되어, 디바이스(101)가 하나 이상의 손들의 포지션을 추적하는 동안, 사용자(608)는 디바이스(101)의 "전방" 측 상에 하나 이상의 손들을 부가적으로 또는 대안적으로 유지할 수 있다. 위에서 설명된 바와 같이, 디바이스(101)의 손 추적 유닛은 사용자(608)의 하나 이상의 손들의 이동들, 포지션들, 및/또는 제스처들을 캡처하고, 이동들, 포지션들, 및/또는 제스처들을 입력들로서 처리할 수 있다.
일부 실시예들에서, 센서 그룹(612-1)은 선택적으로, 테이블(604)을 포함하는 실제 세계 환경(602)의 이미지들을 캡처하도록 구성된 하나 이상의 센서들(예를 들어, 예컨대 도 4를 참조하여 위에서 설명된 이미지 센서들(404))을 포함한다. 위에서 설명된 바와 같이, 디바이스(101)는 실제 세계 환경(602)의 부분들(예를 들어, 일부 또는 전부)의 이미지들을 캡처하고, 디바이스(101)의 하나 이상의 디스플레이 생성 컴포넌트들(예를 들어, 실제 세계 환경(602)의 캡처된 부분들을 향하는 디바이스(101)의 측의 반대편에, 사용자를 향하는 디바이스(101)의 측 상에 선택적으로 위치된 디바이스(101)의 디스플레이)을 통해 실제 세계 환경(602)의 캡처된 부분들을 사용자에게 제시할 수 있다.
일부 실시예들에서, 실제 세계 환경(602)의 캡처된 부분들은 XR 경험, 예를 들어 하나 이상의 가상 객체들이 실제 세계 환경(602)의 표현들 위에 중첩되는 혼합 현실 환경을 사용자에게 제공하는 데 사용된다.
따라서, 본 명세서의 설명은 현실 세계 객체들의 표현들 및 가상 객체들의 표현들을 포함하는 3차원 환경들(예를 들어, XR 환경들)의 일부 실시예들을 설명한다. 예를 들어, 3차원 환경은 선택적으로, (예를 들어, 컴퓨터 시스템의 카메라들 및 디스플레이들을 통해 능동적으로, 또는 컴퓨터 시스템의 투명 또는 반투명 디스플레이를 통해 수동적으로) 3차원 환경에서 캡처되고 디스플레이되는 물리적 환경에 존재하는 테이블의 표현을 포함한다. 이전에 설명된 바와 같이, 3차원 환경은 선택적으로, 3차원 환경이 컴퓨터 시스템의 하나 이상의 센서들에 의해 캡처되고 디스플레이 생성 컴포넌트를 통해 디스플레이되는 물리적 환경에 기초하는 혼합 현실 시스템이다. 혼합 현실 시스템으로서, 컴퓨터 시스템은 선택적으로, 물리적 환경의 개개의 부분들 및/또는 객체들이 컴퓨터 시스템에 의해 디스플레이되는 3차원 환경에 존재하는 것처럼 그들이 보이도록 물리적 환경의 부분들 및/또는 객체들을 선택적으로 디스플레이할 수 있다. 유사하게, 컴퓨터 시스템은 선택적으로, 현실 세계에서 대응하는 위치들을 갖는 3차원 환경 내의 개개의 위치들에 가상 객체들을 배치함으로써 가상 객체들이 현실 세계(예를 들어, 물리적 환경)에 존재하는 것처럼 보이도록 3차원 환경에서 가상 객체들을 디스플레이할 수 있다. 예를 들어, 컴퓨터 시스템은 선택적으로, 실제 꽃병(vase)이 물리적 환경 내의 테이블의 상단 상에 배치되는 것처럼 꽃병이 보이도록 꽃병을 디스플레이한다. 일부 실시예들에서, 3차원 환경 내의 개개의 위치는 물리적 환경 내의 대응하는 위치를 갖는다. 따라서, 컴퓨터 시스템이 (예를 들어, 사용자의 손의 또는 그 근처의, 또는 물리적 테이블에 또는 그 근처의 위치와 같은) 물리적 객체에 대한 개개의 위치에 가상 객체를 디스플레이하는 것으로 설명될 때, 컴퓨터 시스템은, 가상 객체가 물리적 세계 내의 물리적 객체에 또는 그 근처에 있는 것처럼 가상 객체가 보이도록 3차원 환경 내의 특정 위치에 가상 객체를 디스플레이한다(예를 들어, 가상 객체는 가상 객체가 그 특정 위치에서 실제 객체였다면 가상 객체가 디스플레이될 물리적 환경 내의 위치에 대응하는 3차원 환경 내의 위치에서 디스플레이됨).
일부 실시예들에서, 3차원 환경에서 디스플레이되는(예를 들어, 그리고/또는 디스플레이 생성 컴포넌트를 통해 보이는) 물리적 환경에 존재하는 현실 세계 객체들은 3차원 환경에서만 존재하는 가상 객체들과 상호작용할 수 있다. 예를 들어, 3차원 환경은 테이블 및 테이블의 상단 상에 배치된 꽃병을 포함할 수 있으며, 이때 테이블은 물리적 환경 내의 물리적 테이블의 뷰(또는 그의 표현)이고, 꽃병은 가상 객체이다.
유사하게, 사용자는 선택적으로 가상 객체들이 물리적 환경 내의 실제 객체들인 것처럼 하나 이상의 손들을 사용하여 3차원 환경 내의 가상 객체들과 상호작용할 수 있다. 예를 들어, 위에서 설명된 바와 같이, 컴퓨터 시스템의 하나 이상의 센서들은 선택적으로, 사용자의 손들 중 하나 이상을 캡처하고, (예를 들어, 위에서 설명된 3차원 환경에서 현실 세계 객체를 디스플레이하는 것과 유사한 방식으로) 3차원 환경에서 사용자의 손들의 표현들을 디스플레이하거나, 또는 일부 실시예들에서, 사용자 인터페이스를 디스플레이하고 있는 디스플레이 생성 컴포넌트의 일부의 투명/반투명으로 인해 또는 투명/반투명 표면 상으로의 사용자 인터페이스의 투영 또는 사용자의 눈 상으로의 또는 사용자의 눈의 시야 내로의 사용자 인터페이스의 투영으로 인해, 사용자의 손들은 사용자 인터페이스를 통해 물리적 환경을 보기 위한 능력을 통하여 디스플레이 생성 컴포넌트를 통해 보인다. 따라서, 일부 실시예들에서, 사용자의 손들은 3차원 환경 내의 개개의 위치에서 디스플레이되며, 이들이 물리적 환경 내의 물리적 객체들인 것처럼 이들이 3차원 환경 내의 가상 객체들과 상호작용할 수 있는 3차원 환경 내의 객체들인 것처럼 처리된다. 일부 실시예들에서, 컴퓨터 시스템은 물리적 환경에서의 사용자의 손들의 이동과 함께 3차원 환경에서의 사용자의 손들의 표현들의 디스플레이를 업데이트할 수 있다.
아래에서 설명되는 실시예들 중 일부에서, 컴퓨터 시스템은 선택적으로, 예를 들어 물리적 객체가 가상 객체와 직접 상호작용하고 있는지 여부(예를 들어, 손이 가상 객체를 또는 가상 객체의 임계 거리 내에 터치하고 있는지, 붙잡고 있는지, 유지하고 있는지 등)를 결정하려는 목적을 위해 물리적 세계 내의 물리적 객체들과 3차원 환경 내의 가상 객체들 사이의 "유효" 거리를 결정할 수 있다. 예를 들어, 가상 객체와 직접 상호작용하는 손은 선택적으로, 가상 버튼을 누르는 손의 손가락, 가상 꽃병을 파지하는 사용자의 손, 함께 모아지고, 애플리케이션의 사용자 인터페이스를 핀칭/유지하는 사용자의 손의 2개의 손가락들, 및 여기에 설명된 다른 유형들의 상호작용들 중 임의의 상호작용을 포함한다. 예를 들어, 컴퓨터 시스템은 선택적으로, 사용자가 가상 객체들과 상호작용하고 있는지 여부 및/또는 사용자가 가상 객체들과 어떻게 상호작용하고 있는지를 결정할 때 사용자의 손들과 가상 객체들 사이의 거리를 결정한다. 일부 실시예들에서, 컴퓨터 시스템은 3차원 환경 내의 손들의 위치와 3차원 환경 내의 관심있는 가상 객체의 위치 사이의 거리를 결정함으로써 사용자의 손들과 가상 객체 사이의 거리를 결정한다. 예를 들어, 사용자의 하나 이상의 손들은 물리적 세계 내의 특정 포지션에 위치되며, 컴퓨터 시스템은 선택적으로, 3차원 환경 내의 특정 대응하는 포지션(예를 들어, 손들이 물리적보다는 가상 손들이었다면 손들이 디스플레이될 3차원 환경 내의 포지션)에서 이를 캡처하고 디스플레이한다. 3차원 환경 내의 손들의 포지션은 선택적으로, 사용자의 하나 이상의 손들과 가상 객체 사이의 거리를 결정하기 위해 3차원 환경 내의 관심있는 가상 객체의 포지션과 비교된다. 일부 실시예들에서, 컴퓨터 시스템은 선택적으로, (예를 들어, 3차원 환경 내의 포지션들을 비교하는 것과는 반대로) 물리적 세계 내의 포지션들을 비교함으로써 물리적 객체와 가상 객체 사이의 거리를 결정한다. 예를 들어, 사용자의 하나 이상의 손들과 가상 객체 사이의 거리를 결정할 때, 컴퓨터 시스템은 선택적으로, 가상 객체의 물리적 세계 내의 대응하는 위치(예를 들어, 그것이 가상 객체보다는 물리적 객체였다면, 가상 객체가 물리적 세계에 위치될 포지션)를 결정하고, 이어서, 대응하는 물리적 포지션과 사용자의 하나 이상의 손들 사이의 거리를 결정한다. 일부 실시예들에서, 임의의 물리적 객체와 임의의 가상 객체 사이의 거리를 결정하기 위해 동일한 기법들이 선택적으로 사용된다. 따라서, 본 명세서에 설명된 바와 같이, 물리적 객체가 가상 객체와 접촉하는지 여부 또는 물리적 객체가 가상 객체의 임계 거리 내에 있는지 여부를 결정할 때, 컴퓨터 시스템은 선택적으로, 물리적 객체의 위치를 3차원 환경에 맵핑하고 그리고/또는 가상 객체의 위치를 물리적 환경에 맵핑하기 위해 위에서 설명된 기법들 중 임의의 기법을 수행한다.
일부 실시예들에서, 사용자의 시선이 어디에 그리고 무엇에 지향되는지 및/또는 사용자에 의해 유지되는 물리적 스타일러스가 어디에 그리고 무엇에 포인팅되는지를 결정하기 위해 동일하거나 유사한 기법이 사용된다. 예를 들어, 사용자의 시선이 물리적 환경 내의 특정 포지션으로 지향되면, 컴퓨터 시스템은 선택적으로, 3차원 환경 내의 대응하는 포지션(예를 들어, 시선의 가상 포지션)을 결정하고, 가상 객체가 그 대응하는 가상 포지션에 위치되면, 컴퓨터 시스템은 선택적으로, 사용자의 시선이 그 가상 객체로 지향된다고 결정한다. 유사하게, 컴퓨터 시스템은 선택적으로, 물리적 스타일러스의 배향에 기초하여, 물리적 환경에서 스타일러스가 어디를 포인팅하고 있는지를 결정할 수 있다. 일부 실시예들에서, 이러한 결정에 기초하여, 컴퓨터 시스템은 스타일러스가 포인팅하고 있는 물리적 환경 내의 위치에 대응하는 3차원 환경 내의 대응하는 가상 포지션을 결정하고, 선택적으로, 스타일러스가 3차원 환경 내의 대응하는 가상 포지션을 포인팅하고 있다고 결정한다.
유사하게, 본 명세서에 설명된 실시예들은 사용자(예를 들어, 컴퓨터 시스템의 사용자)의 위치 및/또는 3차원 환경 내의 컴퓨터 시스템의 위치를 지칭할 수 있다. 일부 실시예들에서, 컴퓨터 시스템의 사용자는 컴퓨터 시스템을 유지, 착용, 또는 컴퓨터 시스템에 또는 그 부근에 달리 위치된다. 따라서, 일부 실시예들에서, 컴퓨터 시스템의 위치는 사용자의 위치에 대한 프록시로서 사용된다. 일부 실시예들에서, 물리적 환경 내의 컴퓨터 시스템 및/또는 사용자의 위치는 3차원 환경 내의 개개의 위치에 대응한다. 예를 들어, 컴퓨터 시스템의 위치는 물리적 환경 내의 위치(및 3차원 환경 내의 그의 대응하는 위치)일 것이며, 그 위치로부터, 사용자가 디스플레이 생성 컴포넌트를 통해 보는 물리적 환경의 개개의 부분을 향하는 그 위치에 서 있었다면, 사용자는 (예를 들어, 절대적 관점들에서 그리고/또는 서로에 대해) 3차원 환경에서 컴퓨터 시스템의 디스플레이 생성 컴포넌트에 의해 디스플레이되거나 이를 통해 보는 것과 동일한 포지션들, 배향들, 및/또는 크기들로 물리적 환경에서 그 객체들을 볼 것이다. 유사하게, 3차원 환경에서 디스플레이된 가상 객체들이 물리적 환경 내의 물리적 객체들(예를 들어, 그들이 3차원 환경에 있는 것과 동일한, 물리적 환경 내의 위치들에 배치되고, 3차원 환경에서와 동일한 크기들 및 배향들을 물리적 환경에서 가짐)이었다면, 컴퓨터 시스템 및/또는 사용자의 위치는, (예를 들어, 절대적 관점들에서 그리고/또는 서로 및 현실 세계 객체들에 대해) 3차원 환경에서 컴퓨터 시스템의 디스플레이 생성 컴포넌트에 의해 디스플레이되는 것과 동일한 포지션들, 배향들, 및/또는 크기들로 사용자가 물리적 환경에서 그 가상 객체들을 볼 포지션이다.
본 개시내용에서, 컴퓨터 시스템과의 상호작용들에 관해 다양한 입력 방법들이 설명된다. 하나의 입력 디바이스 또는 입력 방법을 사용하여 일 예가 제공되고 다른 입력 디바이스 또는 입력 방법을 사용하여 다른 예가 제공될 때, 각각의 예는 다른 예에 관해 설명된 입력 디바이스 또는 입력 방법과 호환가능할 수 있고 선택적으로 이를 이용한다는 것을 이해해야 한다. 유사하게, 컴퓨터 시스템과의 상호작용들에 관해 다양한 출력 방법들이 설명된다. 하나의 출력 디바이스 또는 출력 방법을 사용하여 일 예가 제공되고 다른 출력 디바이스 또는 출력 방법을 사용하여 다른 예가 제공될 때, 각각의 예는 다른 예에 관해 설명된 출력 디바이스 또는 출력 방법과 호환가능할 수 있고 선택적으로 이를 이용한다는 것을 이해해야 한다. 유사하게, 컴퓨터 시스템을 통한 가상 환경 또는 혼합 현실 환경과의 상호작용들에 관해 다양한 방법들이 설명된다. 가상 환경과의 상호작용들을 사용하여 일 예가 제공되고 혼합 현실 환경을 사용하여 다른 예가 제공될 때, 각각의 예는 다른 예에 관해 설명된 방법들과 호환가능할 수 있고 선택적으로 이를 이용한다는 것을 이해해야 한다. 따라서, 본 개시내용은, 각각의 예시적인 실시예의 설명에서 실시예의 모든 특징들을 철저히 열거하지 않으면서 다수의 예들의 특징들의 조합들인 실시예들을 개시한다.
사용자 인터페이스들 및 연관된 프로세스들
이제, 디스플레이 생성 컴포넌트, 하나 이상의 입력 디바이스들 및 (선택적으로) 하나 이상의 카메라들을 갖는 컴퓨터 시스템, 예컨대 휴대용 다기능 디바이스 또는 머리 장착형 디바이스 상에서 구현될 수 있는 사용자 인터페이스("UI") 및 연관된 프로세스들의 실시예들에 대해 주목한다.
도 7a 내지 도 7g는 일부 실시예들에 따른, 전자 디바이스가 3차원 환경 내의 하나 이상의 가상 객체들의 공간 배열을 어떻게 업데이트하는지의 예들을 예시한다.
도 7a는 전자 디바이스(101)가 디스플레이 생성 컴포넌트(120)를 통해 3차원 환경(702)을 디스플레이하는 것을 예시한다. 일부 실시예들에서, 전자 디바이스(101)는 본 개시내용의 범주를 벗어나지 않으면서 2차원 환경에서 도 7a 내지 도 7g를 참조하여 설명되는 하나 이상의 기법들을 이용한다는 것이 이해되어야 한다. 도 1 내지 도 6을 참조하여 위에서 설명된 바와 같이, 전자 디바이스(101)는 선택적으로, 디스플레이 생성 컴포넌트(120)(예를 들어, 터치 스크린) 및 복수의 이미지 센서들(314)을 포함한다. 이미지 센서들은 선택적으로, 가시광 카메라, 적외선 카메라, 깊이 센서, 또는 사용자가 전자 디바이스(101)와 상호작용하는 동안 전자 디바이스(101)가 사용자 또는 사용자의 일부의 하나 이상의 이미지들을 캡처하는 데 사용할 수 있을 임의의 다른 센서 중 하나 이상을 포함한다. 일부 실시예들에서, 디스플레이 생성 컴포넌트(120)는 사용자의 손의 제스처들 및 이동들을 검출할 수 있는 터치 스크린이다. 일부 실시예들에서, 아래에 도시된 사용자 인터페이스들은 또한, 사용자 인터페이스를 사용자에게 디스플레이하는 디스플레이 생성 컴포넌트, 및 사용자의 손들의 물리적 환경 및/또는 이동들(예를 들어, 사용자로부터 바깥쪽으로 향하는 외부 센서들), 및/또는 사용자의 시선(예를 들어, 사용자의 얼굴을 향해 안쪽으로 향하는 내부 센서들)을 검출하기 위한 센서들을 포함하는 머리 장착형 디스플레이 상에서 구현될 수 있다.
도 7a에서, 전자 디바이스(101)는, 예를 들어 제1 애플리케이션의 제1 사용자 인터페이스(704), 제2 애플리케이션의 제2 사용자 인터페이스(706), 3차원 환경(702)에 대한 액세스를 갖는 제2 전자 디바이스의 제2 사용자의 표현(708), 및 제2 전자 디바이스의 표현(710)을 포함하는 3차원 환경(702)을 디스플레이한다. 일부 실시예들에서, 전자 디바이스(101)는 전자 디바이스(101)의 사용자의 시점으로부터 3차원 환경(702)을 디스플레이한다. 일부 실시예들에서, 전자 디바이스(101)의 사용자의 시점은 전자 디바이스(101)의 물리적 환경 내의 전자 디바이스(101)의 물리적 위치에 대응하는 3차원 환경(702) 내의 위치에 위치된다.
일부 실시예들에서, 제1 애플리케이션은 전자 디바이스(101)에 개인적(private)이고 제2 전자 디바이스와 공유되지 않아서, 전자 디바이스(101)는 제1 애플리케이션의 사용자 인터페이스(704)를 디스플레이하지만 제2 전자 디바이스는 제1 애플리케이션의 사용자 인터페이스(704)를 디스플레이하지 않는다. 일부 실시예들에서, 제2 애플리케이션은 전자 디바이스(101)와 제2 전자 디바이스 사이에서 공유되어, 제1 전자 디바이스(101) 및 제2 전자 디바이스는 제2 애플리케이션의 사용자 인터페이스(706)를 디스플레이한다.
일부 실시예들에서, 제2 사용자의 표현(708) 및/또는 제2 전자 디바이스의 표현(710)은 디스플레이 생성 컴포넌트(120)의 투명 부분을 통한 제2 사용자 및 제2 전자 디바이스의 뷰들이다(예를 들어, 진짜 또는 실제 패스스루). 예를 들어, 제2 전자 디바이스는 제2 전자 디바이스의 표현(710)과 3차원 환경(702) 내의 사용자의 시점 사이의 공간 관계와 동일한, 전자 디바이스(101)에 대한 공간 관계로 전자 디바이스(120)의 물리적 환경에 위치된다. 일부 실시예들에서, 제2 사용자의 표현(708) 및/또는 제2 전자 디바이스의 표현(710)은 디스플레이 생성 컴포넌트(120)를 통해 디스플레이된 표현들이다(예를 들어, 가상 또는 비디오 패스스루). 예를 들어, 제2 전자 디바이스는 전자 디바이스(101)로부터 원격으로 또는 제2 전자 디바이스의 표현(710)과 3차원 환경 내의 사용자의 시점 사이의 공간 관계와 상이한, 전자 디바이스(101)에 대한 공간 관계로 위치된다. 일부 실시예들에서, 제2 전자 디바이스가 제2 전자 디바이스의 표현(710)과 3차원 환경(702) 내의 사용자의 시점 사이의 공간 관계와 동일한, 전자 디바이스(101)에 대한 공간 관계로 전자 디바이스(120)의 물리적 환경에 위치되는 동안, 전자 디바이스(101)는 디스플레이 생성 컴포넌트를 통해 표현들(708, 710)을 디스플레이한다. 일부 실시예들에서, 전자 디바이스(101)는 제2 전자 디바이스의 표현(710)을 디스플레이하지 않으면서 제2 사용자의 표현(708)을 디스플레이한다.
일부 실시예들에서, 전자 디바이스(101)의 사용자의 시점에 대한 사용자 인터페이스들(704, 706) 및 표현들(708, 710)의 공간 배열은 3차원 환경(702) 내의 사용자의 시점에 대한 (예를 들어, 가상) 객체들의 포지션들 및/또는 배향들의 범위를 특정하는 하나 이상의 기준들을 만족시킨다. 예를 들어, 하나 이상의 기준들은, 전자 디바이스(101)의 사용자(및 선택적으로, 제2 전자 디바이스의 제2 사용자)가 사용자 인터페이스들(704, 706) 및 표현들(708, 710)을 보고 그들과 상호작용할 수 있게 하는 전자 디바이스(101)의 사용자의 시점에 대한 사용자 인터페이스들(704, 706) 및 표현들(708, 710)의 공간 배열들을 정의한다. 예를 들어, 도 7a에 예시된 사용자의 시점에 대한 사용자 인터페이스들(704, 706) 및 표현들(708, 710)의 공간 배열은 전자 디바이스(101)의 사용자가 사용자 인터페이스들(704, 706)을 보고 그리고/또는 그들과 상호작용할 수 있게 한다.
일부 실시예들에서, 전자 디바이스(101)는 도 7a에 도시된 바와 같이, 전자 디바이스(101)(예를 들어, 및/또는 디스플레이 생성 컴포넌트(120))의 물리적 환경 내의 전자 디바이스(101)(예를 들어, 및/또는 디스플레이 생성 컴포넌트(120))의 이동을 검출하는 것에 응답하여, 전자 디바이스(101)가 3차원 환경(702)을 디스플레이하는 사용자의 시점을 업데이트한다. 일부 실시예들에서, 전자 디바이스(101)는, 사용자 및/또는 전자 디바이스(101) 및/또는 디스플레이 생성 컴포넌트(120)의 물리적 환경 내의 전자 디바이스(101)의 사용자의 이동을 (예를 들어, 입력 디바이스들(314)을 통해) 검출하는 것에 응답하여 사용자의 시점을 업데이트한다.
도 7b는 도 7a에 예시된 전자 디바이스(101)의 이동을 검출하는 것에 응답하여 전자 디바이스(101)가 3차원 환경(702)의 디스플레이를 업데이트하는 일 예를 예시한다. 일부 실시예들에서, 전자 디바이스(101)는 유사하게, 방법(1000)의 하나 이상의 단계들에 따라 함께 또는 별개로 가상 객체들(예를 들어, 사용자 인터페이스들(704, 706) 및 표현들(708, 710))의 포지션들을 업데이트하라는 요청에 대응하는 입력에 응답하여 3차원 환경(702)을 업데이트한다. 도 7b에 도시된 바와 같이, 전자 디바이스(101)의 물리적 환경 내의 전자 디바이스(101)의 포지션은 도 7a에 예시된 이동에 응답하여 업데이트되고, 전자 디바이스(101)가 3차원 환경(702)을 디스플레이하는 3차원 환경(702) 내의 사용자의 시점이 또한 그에 따라 업데이트된다. 예를 들어, 사용자 인터페이스들(704, 706) 및 표현들(708, 710)은 그들이 도 7a에 있었던 것보다 도 7b에서 사용자의 시점으로부터 멀리있다.
일부 실시예들에서, 전자 디바이스(101)의 사용자의 시점에 대한 사용자 인터페이스들(704, 706) 및 표현들(708, 710)의 공간 배열은 하나 이상의 기준들을 만족시키지 않는다. 예를 들어, 기준들은, 사용자 인터페이스(704) 및/또는 사용자 인터페이스(706)가 3차원 환경 내의 사용자의 시점으로부터 임계 거리(예를 들어, 입력들을 사용자 인터페이스들(704 및/또는 706)에 제공하기 위한 사용자의 능력 및/또는 가독성을 위한 임계 거리) 초과이기 때문에 만족되지 않는다. 부가적인 기준들이 방법(800)을 참조하여 아래에서 설명된다. 일부 실시예들에서, 공간 배열이 하나 이상의 기준들을 만족시키지 않기 때문에, 전자 디바이스(101)는, 선택될 때, 전자 디바이스(101)로 하여금, 사용자의 시점에 대한 사용자 인터페이스들(704, 706) 및 표현들(708, 710)의 공간 배열이 하나 이상의 기준들을 만족시키도록(예를 들어, 3차원 환경(702)을 "재중심설정(recenter)"하도록) 3차원 환경(702)을 업데이트하게 하는 선택가능 옵션(712)을 디스플레이한다.
일부 실시예들에서, 전자 디바이스(101)는 3차원 환경(702)을 재중심설정하라는 요청에 대응하는 입력을 검출하며, 예컨대 선택가능 재중심설정 옵션(712)의 선택을 검출하거나 또는 전자 디바이스(101)와 통신하는 기계적 입력 디바이스, 예컨대 버튼(703)으로 지향되는 입력을 검출한다.
일부 실시예들에서, 전자 디바이스(101)는 간접 선택 입력, 직접 선택 입력, 공중 제스처 선택 입력, 또는 입력 디바이스 선택 입력을 검출함으로써 사용자 인터페이스 요소들 중 하나, 예컨대, 선택가능 옵션(712)의 선택을 검출한다. 일부 실시예들에서, 사용자 인터페이스 요소의 선택을 검출하는 것은 사용자의 손(713a)이 개개의 제스처("손 상태 B")를 수행한다는 것을 검출하는 것을 포함한다. 일부 실시예들에서, 간접 선택 입력을 검출하는 것은 입력 디바이스들(314)을 통해, 사용자의 손(713a)이 선택 제스처(예를 들어, "손 상태 B"), 예컨대 사용자가 그들의 엄지를 손의 다른 손가락에 터치하는 핀치 손 제스처를 만든다는 것을 검출하는 동안 개개의 사용자 인터페이스 요소로 지향되는 사용자의 시선을 검출하는 것을 포함한다. 일부 실시예들에서, 직접 선택 입력을 검출하는 것은 입력 디바이스들(314)을 통해, 사용자의 손(713a)이 선택 제스처(예를 들어, "손 상태 B"), 예컨대 개개의 사용자 인터페이스 요소의 위치의 미리 정의된 임계 거리(예를 들어, 1, 2, 3, 5, 10, 15, 또는 30 센티미터) 내의 핀치 제스처 또는 가리키는 손 형상에 있는 동안 사용자의 손 또는 손가락이 개개의 사용자 인터페이스 요소의 위치를 "누르는" 누르기 제스처를 만든다는 것을 검출하는 것을 포함한다. 일부 실시예들에서, 공중 제스처 입력을 검출하는 것은, 디스플레이 생성 컴포넌트(120)를 통해 3차원 환경(702)에서 디스플레이되는 공중 제스처 사용자 인터페이스 요소의 위치에서 누르기 제스처를 검출하는 동안 개개의 사용자 인터페이스 요소로 지향되는 사용자의 시선을 검출하는 것을 포함한다. 일부 실시예들에서, 입력 디바이스 선택을 검출하는 것은 입력 디바이스에 의해 제어되는 커서가 개개의 사용자 인터페이스 요소의 위치와 연관되는 동안 그리고/또는 사용자의 시선이 개개의 사용자 인터페이스 요소로 지향되는 동안 사용자 인터페이스 요소의 선택에 대응하는 미리 정의된 방식으로 기계적 입력 디바이스(예를 들어, 스타일러스, 마우스, 키보드, 트랙패드 등)의 조작을 검출하는 것을 포함한다.
일부 실시예들에서, 버튼(703)은 다기능 버튼이다. 예를 들어, 사용자가 임계 시간 기간(예를 들어, 0.1, 0.2, 0.3, 0.5, 1, 또는 2초) 미만 동안 버튼(703a)을 누른다는 것을 검출하는 것에 응답하여, 전자 디바이스(101)는 홈 사용자 인터페이스(예를 들어, 전자 디바이스(101)의 운영 체제의 사용자 인터페이스)를 디스플레이하고, 사용자가 임계 시간 기간 초과 동안 버튼(703)을 누른다는 것을 검출하는 것에 응답하여, 전자 디바이스(101)는 3차원 환경(702)을 재중심설정한다. 일부 실시예들에서, 전자 디바이스(101)는 사용자가 다이얼을 누르거나 다이얼을 회전시킨다는 것을 검출하도록 구성된 크라운 또는 다이얼과 통신한다. 일부 실시예들에서, 사용자가 다이얼을 회전시킨다는 것을 검출하는 것에 응답하여, 전자 디바이스는 다이얼이 회전된 방향 및 크기에 따라 3차원 환경(702)의 다른 부분들에 대해 가상 객체들(예를 들어, 사용자 인터페이스들(704, 706), 표현들(708, 710))의 시각적 강조의 레벨을 업데이트한다. 일부 실시예들에서, 사용자가 임계 시간 기간 미만 동안 다이얼을 누른다는 것을 검출하는 것에 응답하여, 전자 디바이스(101)는 홈 사용자 인터페이스를 디스플레이하고, 사용자가 임계 시간 기간 초과 동안 다이얼을 누른다는 것을 검출하는 것에 응답하여, 전자 디바이스(101)는 3차원 환경(702)을 재중심설정한다.
일부 실시예들에서, 도 7b에서 재중심설정 옵션(712)으로 지향되는 입력 및 버튼(703)으로 지향되는 입력은 3차원 환경(702)을 재중심설정하라는 요청에 대응한다. 도 7b가 둘 모두의 입력들을 예시하지만, 일부 실시예들에서, 전자 디바이스(101)가 입력들을 동시에 검출하기보다는 한번에 이러한 입력들 중 하나를 검출한다는 것이 이해되어야 한다. 일부 실시예들에서, 도 7b에 예시된 입력들 중 하나(또는 그 이상)에 응답하여, 전자 디바이스(101)는 도 7c에 예시된 바와 같이 3차원 환경(702)을 업데이트한다. 일부 실시예들에서, 전자 디바이스(101)는, (예를 들어, 사용자의 시점에 대한 가상 객체들의 공간 배열이 하나 이상의 기준들을 만족시키지 않는 경우라도) 3차원 환경(702)을 재중심설정하라는 요청에 대응하는 입력이 수신되지 않는 한 그리고 수신될 때까지 3차원 환경(702)을 재중심설정하지 않는다.
도 7c는 전자 디바이스(101)가 도 7b에 예시된 입력들 중 하나 이상에 따라 업데이트된 3차원 환경(702)을 디스플레이하는 것을 예시한다. 일부 실시예들에서, 전자 디바이스(101)가 도 7b에 예시된 재중심설정 입력을 수신하기 전에 전자 디바이스(101)의 사용자의 시점이 도 7a에 도시된 바와 같이 사용자 인터페이스들(704, 706) 및 표현들(708, 710)로부터 멀리 이동됐기 때문에, 재중심설정 입력에 응답하여, 전자 디바이스(101)는 사용자의 시점에 대한 사용자 인터페이스들(704, 706) 및 표현들(708, 710)의 공간 배열이 위에서 설명된 하나 이상의 기준들을 만족시키도록 3차원 환경(702) 내의 사용자 인터페이스들(704, 706) 및 표현들(708, 710)의 포지션들을 업데이트한다. 예를 들어, 전자 디바이스(101)는, 사용자의 업데이트된 시점에 대한 사용자 인터페이스들(704, 706) 및 표현들(708, 710)의 공간 배열이 하나 이상의 기준들을 만족시키도록, 3차원 환경(702) 내의 사용자의 업데이트된 시점에 기초하여 사용자 인터페이스들(704, 706) 및 표현들(708, 710)의 포지션들 및/또는 배향들을 업데이트한다. 일부 실시예들에서, 사용자의 업데이트된 시점에 대한 사용자 인터페이스들(704, 706) 및 표현들(708, 710)의 공간 배열이 하나 이상의 기준들을 만족시킬 때, 사용자 인터페이스들(704, 706)은 사용자 인터페이스들과의 사용자 상호작용을 용이하게 하는 전자 디바이스(101)의 사용자의 시점으로부터의 거리들 및/또는 사용자의 시점에 대한 배향들에 있다.
일부 실시예들에서, 전자 디바이스(101)는 3차원 환경(702)을 재중심설정하기 위해 하나 이상의 가상 객체들과 연관된 공간 템플릿을 사용한다. 예를 들어, 제2 애플리케이션의 사용자 인터페이스(706)는 전자 디바이스(101)의 사용자 및 제2 전자 디바이스의 제2 사용자에 의해 소비되는 공유 콘텐츠(예를 들어, 비디오 콘텐츠)이고, 공유 콘텐츠 공간 템플릿과 연관된다. 일부 실시예들에서, 공유 콘텐츠 공간 템플릿은, 전자 디바이스(101)의 사용자의 시점 및 제2 전자 디바이스의 사용자의 시점(예를 들어, 표현들(708, 710)에 의해 표현됨)이 사용자 인터페이스(706)에 포함된 콘텐츠가 사용자들에게 가시적인 거리에서 사용자 인터페이스(706)의 동일한 측 상에 있도록, 전자 디바이스(101)의 사용자의 시점에 대해 사용자 인터페이스(706) 및 표현들(708, 710)을 포지셔닝시키는 것을 포함한다.
따라서, 도 7b 및 도 7c에 도시된 바와 같이, 일부 실시예들에서, 사용자의 시점이 업데이트된 이후 3차원 환경(702)을 재중심설정하라는 요청을 검출하는 것에 응답하여(예를 들어, 도 7a에 예시된 전자 디바이스(101)의 이동에 응답하여), 전자 디바이스(101)는 사용자 인터페이스들(704, 706) 및 표현들(708, 710)의 포지션들 및/또는 배향들을 업데이트함으로써 3차원 환경(702)을 재중심설정한다. 일부 실시예들에서, 전자 디바이스(101)는 재중심설정 입력을 검출하기 전에 사용자의 시점으로부터 멀리 사용자 인터페이스들(704, 706) 및 표현들(708, 710)을 이동시키라는 요청들에 대응하는 입력들을 검출한다. 일부 실시예들에서, 사용자 인터페이스들(704, 706) 및 표현들(708, 710)을 이동시키라는 요청(들)을 검출한 이후 재중심설정 입력을 검출하는 것에 응답하여, 전자 디바이스(101)는 (예를 들어, 사용자 인터페이스들(704, 706) 및/또는 표현들(708, 710)의 포지션들 및/또는 배향들을 업데이트하는 것과는 대조적으로) 3차원 환경(702) 내의 사용자의 시점을 업데이트한다. 예를 들어, 전자 디바이스(101)는, 위에서 설명된 하나 이상의 기준들을 만족시키기 위해 사용자의 시점에 대해 사용자 인터페이스들(704, 706) 및 표현들(708, 710)의 공간 배열을 업데이트하도록 (예를 들어, 물리적 환경 내의 전자 디바이스(101)의 위치와 독립적으로) 사용자의 시점을 3차원 환경 내의 새로운 위치로 이동시킨다.
도 7c는 또한, 전자 디바이스(101)가 3차원 환경(702) 내의 제1 애플리케이션의 사용자 인터페이스(704)의 포지션을 업데이트하라는 요청에 대응하는 입력을 검출하는 일 예를 예시한다. 예를 들어, 손(713a)은 위에서 설명된 바와 같이 제1 애플리케이션의 사용자 인터페이스(704)로 지향되는 선택 입력을 제공한다. 일부 실시예들에서, 선택 입력의 일부를 검출한 이후, 예컨대 엄지가 다른 손가락을 터치하는 핀치 손 형상에 손이 있는 동안 그러나 핀치 제스처를 완료하기 위해 엄지 및 손가락을 이격되게 이동시키기 전에, 전자 디바이스(101)는 손(713a)의 이동을 검출한다. 일부 실시예들에서, 전자 디바이스(101)는 도 7d에 도시된 바와 같이 선택 입력을 통해 일부분으로 검출된 손(713a)의 이동에 따라 제1 애플리케이션의 사용자 인터페이스(704)의 포지션을 업데이트한다.
도 7d는 도 7c에 예시된 입력에 응답하여 전자 디바이스(101)가 3차원 환경(702) 내의 업데이트된 위치에서 제1 애플리케이션의 사용자 인터페이스(704)를 디스플레이하는 일 예를 예시한다. 일부 실시예들에서, 제1 애플리케이션의 사용자 인터페이스(704)의 위치를 업데이트하는 것은 사용자의 시점에 대한 사용자 인터페이스들(704, 706) 및 표현들(708, 710)의 공간 배열이 하나 이상의 기준들을 만족시키지 않게 한다. 예를 들어, 제1 애플리케이션의 사용자 인터페이스(704)는 전자 디바이스(101)의 시야 내에 완전히 있지 않다. 다른 예로서, 제1 애플리케이션의 사용자 인터페이스(704)와 제2 애플리케이션의 사용자 인터페이스(706) 사이의 간격은 방법(800)을 참조하여 아래에서 설명되는 하나 이상의 기준들에 포함된 미리 정의된 임계치를 초과한다. 일부 실시예들에서, 하나 이상의 기준들이 만족되지 않는다는 것을 검출하는 것에 응답하여, 전자 디바이스(101)는 재중심설정 옵션(712)을 디스플레이한다.
일부 실시예들에서, 전자 디바이스(101)는 3차원 환경(702)을 재중심설정하라는 요청에 대응하는 입력을 검출한다. 예를 들어, 전자 디바이스(101)는 위에서 더 상세히 설명된 바와 같이, 손(713a)을 이용한 재중심설정 옵션(712)의 선택을 검출하거나 또는 도 7d의 버튼(703)을 통해 입력을 검출한다. 일부 실시예들에서, 사용자 인터페이스(704)의 포지션이 업데이트된 이후 3차원 환경(101)을 재중심설정하라는 요청에 대응하는 입력을 검출하는 것에 응답하여, 전자 디바이스(101)는 도 7e에 예시된 바와 같이, 하나 이상의 기준들을 만족시키도록 사용자 인터페이스(704)의 포지션을 업데이트한다.
도 7e는 도 7d에 예시된 재중심설정 입력에 응답하여 전자 디바이스(101)가 3차원 환경(702) 내의 업데이트된 위치(예를 들어, 및/또는 배향)에서 제1 애플리케이션의 사용자 인터페이스(704)를 디스플레이하는 것을 예시한다. 일부 실시예들에서, 제1 애플리케이션의 사용자 인터페이스(704)의 포지션(예를 들어, 및/또는 배향)이 (예를 들어, 사용자의 시점의 이동이 하나 이상의 기준들이 만족되지 않는 원인이 되는 것과는 대조적으로) 3차원 환경(702)을 재중심설정하라는 요청에 대응하는 입력을 수신하기 전에 업데이트되었기 때문에, 전자 디바이스(101)는 (예를 들어, 사용자의 시점을 업데이트하지 않으면서) 재중심설정 입력에 응답하여 3차원 환경(702) 내의 제1 애플리케이션의 사용자 인터페이스(704)의 포지션(예를 들어, 및/또는 배향)을 업데이트한다. 예를 들어, 전자 디바이스(101)는 제2 애플리케이션의 사용자 인터페이스(706)의 임계 거리(예를 들어, 하나 이상의 기준들에 포함됨) 내에 있도록 그리고 제1 애플리케이션의 사용자 인터페이스(704)가 전자 디바이스(101)의 시야 내에 있는 것을 보장하도록 제1 애플리케이션의 사용자 인터페이스(704)의 포지션 및/또는 배향을 업데이트한다. 일부 실시예들에서, 전자 디바이스(101)가 재중심설정 입력을 검출하기 전에 제2 애플리케이션의 사용자 인터페이스(706)와 같은 상이한 가상 객체의 이동을 검출했다면, 전자 디바이스(101)는 대신에, 재중심설정 입력에 응답하여 그 가상 객체의 포지션(예를 들어, 및/또는 배향)을 업데이트할 것이다.
일부 실시예들에서, 전자 디바이스(101)는, 전자 디바이스(101)가 재중심설정 입력을 검출하기 전에 전자 디바이스가 사용자 인터페이스(704)를 리포지셔닝 및/또는 재배향시키라는 이전의 요청을 제공했는지에 관계없이, 재중심설정 입력에 응답하여 제1 애플리케이션의 사용자 인터페이스(704)의 포지션을 업데이트한다. 예를 들어, 제2 전자 디바이스의 제2 사용자가 제2 애플리케이션의 사용자 인터페이스(706) 포지션을 업데이트하면(예를 들어, 둘 모두의 전자 디바이스들이 그에 대한 액세스를 가짐), 제2 전자 디바이스 및 전자 디바이스(101)는 제2 전자 디바이스의 제2 사용자에 의해 제공된 입력에 따라 3차원 환경(702) 내의 업데이트된 포지션에서 그리고/또는 배향으로 사용자 인터페이스(706)를 디스플레이할 것이다. 제2 전자 디바이스에 의해 검출된 입력에 따라 사용자 인터페이스(706)가 포지션에서 그리고 배향으로 디스플레이되는 동안 전자 디바이스(101)가 재중심설정 입력을 검출하면, 전자 디바이스(101)는 위에서 설명된 하나 이상의 기준들을 만족시키도록 3차원 환경(702) 내의 사용자 인터페이스(706)의 포지션 및/또는 배향을 업데이트한다. 일부 실시예들에서, 3차원 환경(702) 내의 사용자 인터페이스(706)의 포지션을 업데이트하는 것은 전자 디바이스(101) 및 제2 전자 디바이스로 하여금 업데이트된 포지션 및/또는 위치에서 사용자 인터페이스(706)를 디스플레이하게 한다.
도 7f는 전자 디바이스(101)가 제3 애플리케이션의 사용자 인터페이스(714)를 포함하는 3차원 환경(702)을 디스플레이하는 일 예를 예시한다. 도 7f에 도시된 바와 같이, 제3 애플리케이션의 사용자 인터페이스(714)의 일부는 전자 디바이스(101)의 시야 내에 있고, 제3 애플리케이션의 사용자 인터페이스(714)의 일부는 전자 디바이스(101)의 시야를 넘는다. 제2 사용자(708)가 3차원 환경(702)에 포함되지만, 제2 사용자(708)가 전자 디바이스(101)의 시야에 있지 않기 때문에, 전자 디바이스(101)는 제2 사용자의 표현 또는 제2 전자 디바이스의 표현을 디스플레이하지 않는다. 일부 실시예들에서, 사용자의 시점의 공간 배열, 제3 애플리케이션의 사용자 인터페이스(714), 및 제2 사용자(708)는 위에서 설명된 하나 이상의 기준들을 만족시키지 않는다. 예를 들어, 하나 이상의 기준들은, 적어도 제2 사용자(708)가 전자 디바이스(101)의 시야에 있지 않고 제3 애플리케이션의 사용자 인터페이스(714)의 일부가 전자 디바이스(101)의 시야에 있지 않기 때문에 만족되지 않는다. 하나 이상의 기준들이 만족되지 않기 때문에, 전자 디바이스(101)는 3차원 환경(702)에서 재중심설정 옵션(712)을 디스플레이한다.
일부 실시예들에서, 도 7f에 도시된 바와 같이, 전자 디바이스(101)는 3차원 환경(702)을 재중심설정하라는 요청에 대응하는 입력을 검출한다. 일부 실시예들에서, 입력은 버튼(703)으로 지향되는 입력을 검출하는 것을 포함한다. 일부 실시예들에서, 입력은 손(713a)에 의한 재중심설정 옵션(712)의 선택을 검출하는 것을 포함한다. 도 7f가 둘 모두의 입력들을 예시하지만, 일부 실시예들에서, 입력들은 동시에 검출되지 않는다는 것이 이해되어야 한다. 일부 실시예들에서, 재중심설정 입력에 응답하여, 전자 디바이스(101)는 도 7g에 예시된 바와 같이 3차원 환경(702)을 업데이트한다.
도 7g는 도 7f를 참조하여 위에서 설명된 재중심설정 입력에 응답하여 전자 디바이스(101)가 3차원 환경(702)을 디스플레이하는 일 예를 예시한다. 일부 실시예들에서, 재중심설정 입력에 응답하여, 전자 디바이스(101)는, 전자 디바이스(101)의 시야가 제2 사용자의 표현(708), 제2 전자 디바이스의 표현(710), 및 제3 애플리케이션의 사용자 인터페이스(714)를 포함하도록 3차원 환경(702) 내의 사용자의 시점을 업데이트한다.
일부 실시예들에서, 전자 디바이스(101)는 제3 애플리케이션의 사용자 인터페이스(714)와 연관된 공유 활동 공간 템플릿에 따라 3차원 환경(702)을 업데이트한다. 예를 들어, 제3 애플리케이션의 사용자 인터페이스(714)는 제3 애플리케이션의 사용자 인터페이스(714)의 상이한 측들로부터 사용자들에 의해 보여지도록 의도된 가상 보드 게임 또는 다른 콘텐츠를 포함한다. 따라서, 일부 실시예들에서, 재중심설정하라는 요청에 응답하여 3차원 환경(702)을 업데이트하는 것은 사용자의 시점과 제2 사용자의 표현(708) 사이에 제3 애플리케이션의 사용자 인터페이스(714)를 포지셔닝시키도록 사용자의 시점의 공간 배열, 제3 애플리케이션의 사용자 인터페이스(714), 제2 사용자의 표현(708), 및 제2 전자 디바이스의 표현(710)을 업데이트하는 것을 포함한다.
일부 실시예들에서, 전자 디바이스(101)는 어느 공간 템플릿들이 3차원 환경(702)에 적용되는지에 의존하여 다른 공간 템플릿들에 따라 3차원 환경(702)을 업데이트한다. 예를 들어, 일부 실시예들에서, 3차원 환경(702)은 3차원 환경(702) 내의 특정 사용자 인터페이스와 연관되지 않을 수 있는 그룹 활동 공간 템플릿과 연관된다. 예를 들어, 그룹 활동 공간 템플릿은 사용자들 사이의 (예를 들어, 가상) 회의들을 위해 사용된다. 일부 실시예들에서, 전자 디바이스(101)는, 사용자들의 시점들이 서로를 향하고 복수의 사용자들이 전자 디바이스(101)의 사용자의 시야에 있는 포지션으로 사용자의 시점을 재중심설정함으로써 그룹 활동 공간 템플릿을 적용한다.
일부 실시예들에서, 도 7g에서, 3차원 환경(702)은 제2 사용자의 표현(708)의 포지션 및/또는 이동에 따라 업데이트된다. 예를 들어, 3차원 환경(702)을 재중심설정하는 것은, 사용자들이 제3 애플리케이션의 사용자 인터페이스(714)에 대해 서로 가로지르도록 3차원 환경(702)을 업데이트하는 것을 포함한다. 일부 실시예들에서, 재중심설정 입력이 수신되었을 때 제2 사용자(708)가 도 7f에 예시된 포지션과 상이한 3차원 환경(702) 내의 포지션을 가졌다면, 전자 디바이스(101)는 도 7f에 예시된 재중심설정 입력에 응답하여 (예를 들어, 3차원 환경(702) 내의 제2 사용자(708)의 포지션에 따라) 도 7g에 예시된 방식과 상이하게 3차원 환경(702)을 재중심설정할 것이다.
도 7a 내지 도 7g에 예시된 실시예들에 관한 부가적인 또는 대안적인 세부사항들은 도 8a 내지 도 8k를 참조하여 설명된 방법(800)의 아래의 설명에서 제공된다.
도 8a 내지 도 8k는 일부 실시예들에 따른, 3차원 환경 내의 하나 이상의 가상 객체들의 공간 배열을 업데이트하는 방법을 예시하는 흐름도이다. 일부 실시예들에서, 방법(800)은, 디스플레이 생성 컴포넌트(예를 들어, 도 1, 도 3, 및 도 4의 디스플레이 생성 컴포넌트(120))(예를 들어, 헤드업 디스플레이, 디스플레이, 터치스크린, 프로젝터 등) 및 하나 이상의 카메라들(예를 들어, 사용자의 손을 하향으로 포인팅하는 카메라(예를 들어, 컬러 센서들, 적외선 센서들, 및 다른 깊이 감지 카메라들) 또는 사용자의 머리로부터 전방으로 향하는 카메라)을 포함하는 컴퓨터 시스템(예를 들어, 도 1의 컴퓨터 시스템(101))에서 수행된다. 일부 실시예들에서, 방법(800)은, 비일시적 컴퓨터 판독가능 저장 매체에 저장되며 컴퓨터 시스템의 하나 이상의 프로세서들, 예컨대 컴퓨터 시스템(101)의 하나 이상의 프로세서들(202)(예를 들어, 도 1a의 제어 유닛(110))에 의해 실행되는 명령어들에 의해 관리된다. 방법(800) 내의 일부 동작들은 선택적으로 조합되고 그리고/또는 일부 동작들의 순서는 선택적으로 변경된다.
일부 실시예들에서, 방법(800)은 디스플레이 생성 컴포넌트 및 하나 이상의 입력 디바이스들과 통신하는 전자 디바이스(예를 들어, 101)(예를 들어, 모바일 디바이스(예를 들어, 태블릿, 스마트폰, 미디어 플레이어, 또는 웨어러블 디바이스), 또는 컴퓨터)에서 수행된다. 일부 실시예들에서, 디스플레이 생성 컴포넌트는 전자 디바이스와 통합된 디스플레이(선택적으로 터치 스크린 디스플레이), 사용자 인터페이스를 투영하거나 사용자 인터페이스로 하여금 하나 이상의 사용자들에게 보이게 하기 위한 외부 디스플레이, 예컨대 모니터, 프로젝터, 텔레비전, 또는 하드웨어 컴포넌트(선택적으로 통합형 또는 외부) 등이다. 일부 실시예들에서, 하나 이상의 입력 디바이스들은 사용자 입력을 수신(예를 들어, 사용자 입력을 캡처, 사용자 입력을 검출 등)하고 사용자 입력과 연관된 정보를 전자 디바이스에 송신할 수 있는 전자 디바이스 또는 컴포넌트를 포함한다. 입력 디바이스들의 예들은 터치 스크린, 마우스(예를 들어, 외장형), 트랙패드(선택적으로, 통합형 또는 외장형), 터치패드(선택적으로, 통합형 또는 외장형), 원격 제어 디바이스(예를 들어, 외장형), 다른 모바일 디바이스(예를 들어, 전자 디바이스로부터 분리됨), 핸드헬드 디바이스(예를 들어, 외장형), 제어기(예를 들어, 외장형), 카메라, 깊이 센서, 눈 추적 디바이스, 및/또는 모션 센서(예를 들어, 손 추적 디바이스, 손 모션 센서) 등을 포함한다. 일부 실시예들에서, 전자 디바이스는 손 추적 디바이스(예를 들어, 하나 이상의 카메라들, 깊이 센서들, 근접 센서들, 터치 센서들(예를 들어, 터치 스크린, 트랙패드))와 통신한다. 일부 실시예들에서, 손 추적 디바이스는 스마트 장갑과 같은 웨어러블 디바이스이다. 일부 실시예들에서, 손 추적 디바이스는, 원격 제어부 또는 스타일러스와 같은 핸드헬드 입력 디바이스이다.
일부 실시예들에서, 도 7a에서와 같이, 디스플레이 생성 컴포넌트(예를 들어, 120)를 통해, 전자 디바이스(예를 들어, 101)의 사용자의 현재 시점에 대해 제1 공간 배열로 복수의 가상 객체들(예를 들어, 704, 706)을 포함하는 3차원 환경(예를 들어, 702)을 디스플레이하는 동안, 전자 디바이스(예를 들어, 101)는 하나 이상의 입력 디바이스들(예를 들어, 314)을 통해, 제1 시점으로부터 제2 시점으로의 3차원 환경(예를 들어, 702) 내의 사용자의 현재 시점의 이동을 검출한다(802a). 일부 실시예들에서, 3차원 환경은 애플리케이션 윈도우들, 운영 체제 요소들, 다른 사용자들의 표현들, 및/또는 전자 디바이스의 물리적 환경 내의 물리적 객체들의 표현들 및/또는 콘텐츠 항목과 같은 가상 객체들을 포함한다. 일부 실시예들에서, 물리적 객체들의 표현들은 디스플레이 생성 컴포넌트(예를 들어, 가상 또는 비디오 패스스루)를 통해 3차원 환경에서 디스플레이된다. 일부 실시예들에서, 물리적 객체들의 표현들은 디스플레이 생성 컴포넌트의 투명 부분(예를 들어, 진짜 또는 실제 패스스루)을 통한 가시적인 전자 디바이스의 물리적 환경 내의 물리적 객체들의 뷰들이다. 일부 실시예들에서, 전자 디바이스는 전자 디바이스의 물리적 환경 내의 전자 디바이스의 물리적 위치에 대응하는 3차원 환경 내의 위치에서 사용자의 시점으로부터 3차원 환경을 디스플레이한다. 일부 실시예들에서, 3차원 환경은 디바이스에 의해 보여질 수 있도록 생성되거나, 디스플레이되거나, 또는 달리 야기된다(예를 들어, 가상 현실(VR) 환경, 혼합 현실(MR) 환경, 또는 증강 현실(AR) 환경 등과 같은 컴퓨터 생성 현실(XR) 환경). 일부 실시예들에서, 사용자의 시점의 이동을 검출하는 것은 사용자의 적어도 일부(예를 들어, 사용자의 머리, 몸통, 손 등)의 이동을 검출하는 것을 포함한다. 일부 실시예들에서, 사용자의 시점의 이동을 검출하는 것은 전자 디바이스 또는 디스플레이 생성 컴포넌트의 이동을 검출하는 것을 포함한다. 일부 실시예들에서, 사용자의 시점으로부터 3차원 환경을 디스플레이하는 것은 3차원 환경에서 사용자의 시점의 위치와 연관된 관점으로부터 3차원 환경을 디스플레이하는 것을 포함한다. 일부 실시예들에서, 사용자의 시점을 업데이트하는 것은 전자 디바이스로 하여금 사용자의 업데이트된 시점의 위치와 연관된 관점으로부터 복수의 가상 객체들을 디스플레이하게 한다. 예를 들어, 사용자의 시점이 좌측으로 이동하면, 전자 디바이스는 우측으로 이동하도록, 디스플레이 생성 컴포넌트를 통해 디스플레이된 복수의 가상 객체들의 포지션을 업데이트한다.
일부 실시예들에서, 도 7b에서와 같이, 제1 시점으로부터 제2 시점으로의 사용자의 현재 시점의 이동에 대응하는 이동을 검출하는 것에 응답하여, 전자 디바이스(예를 들어, 101)는 디스플레이 생성 컴포넌트(예를 들어, 120)를 통해, 사용자의 현재 시점에 대해 제1 공간 배열과 상이한 제2 공간 배열로 복수의 가상 객체들을 포함하는 3차원 환경(예를 들어, 702)을 제2 시점으로부터 디스플레이한다(예를 들어, 802b). 일부 실시예들에서, 3차원 환경 내의 복수의 가상 객체들의 위치들은 동일하게 유지되고, 3차원 환경 내의 사용자의 시점의 위치는 변경되며, 그에 의해, 사용자의 시점에 대한 복수의 객체들의 공간 배열을 변경시킨다. 예를 들어, 사용자의 시점이 복수의 가상 객체들로부터 멀리 이동하면, 전자 디바이스는 사용자의 시점의 이동 전에 3차원 환경 내의 동일한 위치들에서 가상 객체들을 디스플레이하고, (예를 들어, 가상 객체들을 더 작은 크기로 디스플레이함으로써, 객체들의 입체 깊이를 증가시킴으로써, 등에 의해) 사용자의 시점과 가상 객체들 사이의 공간의 양을 증가시킨다.
일부 실시예들에서, 도 7b에서와 같이, 사용자의 현재 시점에 대해 제2 공간 배열로 복수의 가상 객체들(예를 들어, 704, 706)을 포함하는 3차원 환경(예를 들어, 702)을 제2 시점으로부터 디스플레이하는 동안, 전자 디바이스(예를 들어, 101)는 하나 이상의 입력 디바이스들(예를 들어, 314)을 통해, 사용자의 현재 시점에 대한(예를 들어, 그리고 사용자의 이전의 시점에 기초하지 않는) 가상 객체들의 거리들의 범위 또는 배향들의 범위를 특정하는 하나 이상의 기준들을 만족시키기 위해 사용자의 현재 시점에 대한 복수의 가상 객체들의 공간 배열을 업데이트하라는 요청에 대응하는 입력을 수신한다(802c). 일부 실시예들에서, 방법(800)을 참조하여 설명된 입력 및/또는 하나 이상의 입력들은 에어 제스처 입력들이다. 일부 실시예들에서, 에어 제스처는, 사용자가 디바이스의 일부인 입력 요소를 터치하지 않으면서(또는 디바이스의 일부인 입력 요소와 독립적으로) 검출되고, 절대적 기준에 대한 사용자의 신체의 모션(예를 들어, 지면에 대한 사용자의 팔의 각도 또는 지면에 대한 사용자의 손의 거리), 사용자의 신체의 다른 부분에 대한 사용자의 신체의 모션(예를 들어, 사용자의 어깨에 대한 사용자의 손의 이동, 사용자의 하나의 손의 사용자의 다른 손에 대한 이동, 및/또는 사용자의 손가락의 사용자의 손의 다른 손가락 또는 부분에 대한 이동), 및/또는 사용자의 신체의 부분의 절대적 모션(예를 들어, 미리 결정된 양 및/또는 속도만큼의 미리 결정된 포즈에서의 손의 이동을 포함하는 탭 제스처, 또는 사용자의 신체의 부분의 미리 결정된 회전 속도 또는 회전량을 포함하는 쉐이크 제스처)을 포함하는 공중을 통한 사용자의 신체의 부분의 검출된 모션에 기초하는 제스처이다.
아래에서 더 상세히 설명될 바와 같이, 일부 실시예들에서, 하나 이상의 기준들을 만족시키도록 사용자의 시점에 대한 복수의 객체들의 공간 배열을 업데이트하라는 요청에 대응하는 입력은 전자 디바이스와 통신하는(예를 들어, 그와 통합된) 하드웨어 버튼, 스위치 등으로 지향되는 입력이다. 아래에서 더 상세히 설명될 바와 같이, 일부 실시예들에서, 하나 이상의 기준들을 만족시키도록 3차원 환경을 업데이트하라는 요청에 대응하는 입력은 디스플레이 생성 컴포넌트를 통해 디스플레이된 선택가능 옵션으로 지향되는 입력이다. 일부 실시예들에서, 사용자의 시점이 제2 시점이고, 복수의 가상 객체들이 사용자의 시점에 대해 제2 공간 배열로 디스플레이되는 동안, 복수의 가상 객체들의 공간 배향은 사용자의 현재 시점에 기초하지 않는다. 예를 들어, 복수의 객체들의 공간 배열은 사용자의 제1 시점, 또는 제2 시점 이전의 사용자의 다른 시점에 기초한다. 일부 실시예들에서, 전자 디바이스는 초기에, 가상 객체들이 초기에 디스플레이되었던 시간에 사용자의 시점에 기초하여 3차원 환경 내의 위치들에서 가상 객체들을 제시한다. 일부 실시예들에서, 가상 객체들은 초기에, 가상 객체들의 인터랙티브 부분이 사용자의 시점을 향해 배향되거나, 가상 객체들이 사용자의 시점으로부터 다른 가상 객체들의 뷰를 방해하지 않거나, 가상 객체들이 사용자의 시점의 임계 거리(예를 들어, 10, 20, 30, 40, 50, 100, 200, 300, 400, 500, 1000, 또는 2000 센티미터) 내에 있거나, 가상 객체들이 서로 임계 거리(예를 들어, 1, 5, 10, 20, 30, 40, 50, 100, 200, 300, 400, 500, 1000, 또는 2000 센티미터) 내에 있는 등일 때 만족되는 기준들을 포함하는 하나 이상의 기준들에 따라 배치된다. 일부 실시예들에서, 입력은 방법(1000)을 참조하여 본 명세서에 설명된 입력들과 같이, (예를 들어, 사용자의 시점에 대해) 3차원 환경 내의 하나 이상의 객체들의 포지션들을 업데이트하라고 요청하는 입력과 상이하다.
일부 실시예들에서, 도 7c에서와 같이, 3차원 환경(예를 들어, 702)을 업데이트하라는 요청에 대응하는 입력에 응답하여, 전자 디바이스(예를 들어, 101)는 디스플레이 생성 컴포넌트(예를 들어, 120)를 통해, 사용자의 시점에 대해 제2 공간 배열과 상이한 제3 공간 배열로 복수의 가상 객체들(예를 들어, 704, 706)을 디스플레이하는 것을 포함하여, 제2 시점으로부터 3차원 환경(예를 들어, 702)을 디스플레이하며, 여기서 복수의 가상 객체들의 제3 공간 배열은 하나 이상의 기준들을 만족시킨다(예를 들어, 802b). 일부 실시예들에서, 하나 이상의 기준들은, 가상 객체들의 인터랙티브 부분이 사용자의 시점을 향해 배향되거나, 가상 객체들이 사용자의 시점으로부터 다른 가상 객체들의 뷰를 방해하지 않거나, 가상 객체들이 사용자의 시점의 임계 거리(예를 들어, 10, 20, 30, 40, 50, 100, 200, 300, 400, 500, 1000, 또는 2000 센티미터) 내에 있거나, 가상 객체들이 서로 임계 거리(예를 들어, 1, 5, 10, 20, 30, 40, 50, 100, 200, 300, 400, 500, 1000, 또는 2000 센티미터) 내에 있는 등일 때 만족되는 기준들을 포함한다. 일부 실시예들에서, 제3 공간 배열은 제1 공간 배열과 동일하다(예를 들어, 제1 공간 배열은 사용자의 제1 시점에 기초했다). 일부 실시예들에서, 제3 공간 배열은 제1 공간 배열과 상이하다(예를 들어, 제1 공간 배열은 사용자의 제1 시점에 기초하지 않았고, 3차원 환경 내의 실제 객체들은 사용자의 시점이 제2 시점에 있는 동안 제1 공간 배열로의 가상 객체들의 배치를 방지한다). 일부 실시예들에서, 제3 공간 배열로 복수의 가상 객체들을 디스플레이하는 것은, 3차원 환경 내의 일정한 위치에 사용자의 제2 시점을 유지하면서 가상 객체들 중 하나 이상의 가상 객체들의 위치(예를 들어, 및/또는 포즈)를 업데이트하는 것을 포함한다. 일부 실시예들에서, 입력에 응답하여, 전자 디바이스는 사용자의 시점 주위에 반드시 배향되지는 않는 위치들로부터 사용자의 시점 주위에 배향된 위치들로 가상 객체들의 포지션들을 업데이트한다.
입력에 응답하여 하나 이상의 기준들을 만족시키는 제3 공간 배열로 복수의 가상 객체들을 디스플레이하는 것을 포함하도록 3차원 환경을 업데이트하는 것은 사용자의 업데이트된 시점에 기초한 공간 배열로 가상 객체들을 디스플레이하는 효율적인 방식을 제공함으로써 전자 디바이스와의 사용자 상호작용들을 향상시키며, 그에 의해, 사용자가 3차원 환경 내의 가상 객체들의 향상된 배치로 전자 디바이스를 신속하고 효율적으로 사용할 수 있게 한다.
일부 실시예들에서, 도 7b에서와 같이, 복수의 가상 객체들의 공간 배열을 업데이트하라는 요청에 대응하는 입력을 수신하는 것은 하나 이상의 입력 디바이스들의 하드웨어 입력 디바이스(예를 들어, 703)를 통해 입력을 수신하는 것을 포함한다(804). 일부 실시예들에서, 하드웨어 입력 디바이스는 사용자에 의한 기계적 입력 디바이스의 물리적 조작을 검출함으로써 입력들을 검출한다. 일부 실시예들에서, 기계적 입력 디바이스는 버튼, 스위치, 다이얼 등이다.
기계적 입력 디바이스를 통해 수신된 입력에 응답하여 복수의 가상 객체들의 공간 배열을 업데이트하는 것은 3차원 환경 내의 복수의 가상 객체들의 공간 배열을 업데이트하는 효율적이고 일관된 방식을 제공하며, 그에 의해, 사용자가 향상된 입력 메커니즘들로 전자 디바이스를 신속하고 효율적으로 사용할 수 있게 한다.
일부 실시예들에서, 도 7b에서와 같이, 복수의 가상 객체들의 공간 배열을 업데이트하라는 요청에 대응하는 입력은 하나 이상의 제1 입력 기준들을 만족시킨다(806a). 일부 실시예들에서, 하나 이상의 제1 입력 기준들은 복수의 가상 객체들의 공간 배열을 업데이트하라는 요청에 대응하는 입력과 연관된다. 일부 실시예들에서, 전자 디바이스는 수신된 입력이 대응하는 동작을 결정하기 위해 기준들의 상이한 세트들을 만족시키는, 기계적 입력 디바이스를 통해 상이한 개개의 동작들에 대응하는 복수의 입력들을 수용하도록 구성된다. 예를 들어, 기계적 입력 디바이스는 버튼과 같이 푸시되도록 구성된 버튼 또는 다이얼이며, 하나 이상의 제1 기준들은, 기계적 입력 디바이스가 임계 시간 기간(예를 들어, 0.1, 0.2, 0.3, 0.5, 1, 2, 3, 4, 또는 5초)을 만족시키는(예를 들어, 그보다 크거나 작은) 시간 기간 동안 눌려진다는 것을 전자 디바이스가 검출할 때 만족된다.
일부 실시예들에서, 도 7b에서와 같이, 전자 디바이스(예를 들어, 101)는 하드웨어 입력 디바이스(예를 들어, 703)를 통해 제2 입력을 수신한다(806b). 일부 실시예들에서, 제2 입력은 하나 이상의 제1 입력 기준들을 만족시키지 않는다.
일부 실시예들에서, 제2 입력을 수신하는 것에 응답하여, 제2 입력이 하나 이상의 제1 입력 기준들과 상이한 하나 이상의 제2 입력 기준들을 만족시킨다는 결정에 따라, 전자 디바이스(예를 들어, 101)는 복수의 가상 객체들의 공간 배열을 업데이트하지 않으면서 제2 입력에 대응하는 개개의 동작을 수행한다(806c)(예를 들어, 디스플레이 생성 컴포넌트를 통해 홈 사용자 인터페이스를 디스플레이함). 예를 들어, 하나 이상의 제1 입력 기준들은, 기계적 입력 디바이스가 임계 시간 기간 초과 동안 눌려진다는 것을 검출하는 것을 입력이 포함할 때 만족되고, 하나 이상의 제2 입력 기준들은, 기계적 입력 디바이스가 임계 시간 기간 미만 동안 눌려진다는 것을 검출하는 것을 입력이 포함할 때 만족된다. 다른 예로서, 하나 이상의 제1 입력 기준들은, 기계적 입력 디바이스가 임계 시간 기간 미만 동안 눌려진다는 것을 검출하는 것을 입력이 포함할 때 만족되고, 하나 이상의 제2 입력 기준들은, 기계적 입력 디바이스가 임계 시간 기간 초과 동안 눌려진다는 것을 검출하는 것을 입력이 포함할 때 만족된다. 일부 실시예들에서, 제2 입력이 하나 이상의 제1 입력 기준들 및 하나 이상의 제2 입력 기준들과는 상이한 하나 이상의 제3 입력 기준들을 만족시킨다는 결정에 따라, 전자 디바이스는, 전자 디바이스가 디스플레이 생성 컴포넌트를 통해, 3차원 환경 내의 실제 객체들의 하나 이상의 표현들을 디스플레이하는 시각적 강조의 양을 수정한다. 일부 실시예들에서, 하나 이상의 제3 입력 기준들은, 입력이 지향성 양태, 예컨대 다이얼의 회전, 지향성 버튼의 선택, 또는 터치 감응형 표면 상의 접촉의 이동을 포함할 때 만족되는 기준을 포함한다. 제3 입력 기준들이 만족되는 것에 응답하여, 전자 디바이스는 선택적으로, (예를 들어, 복수의 가상 객체들의 공간 배열을 업데이트하지 않으면서 그리고/또는 개개의 동작을 수행하지 않으면서) 3차원 환경의 다른 부분들에 대해 3차원 환경에서 디스플레이되는 물리적 환경의 표현들의 상대적 시각적 강조를 수정한다. 일부 실시예들에서, 전자 디바이스는 제3 입력 기준들을 만족시키는 입력의 이동 메트릭(예를 들어, 입력의 이동 또는 지향성 컴포넌트의 방향, 속도, 지속기간, 거리 등)에 따라 상대적 시각적 강조의 양을 수정한다.
하나 이상의 입력 기준들에 기초하여, 기계적 입력 디바이스를 통해 수신된 입력이 복수의 가상 객체들의 공간 배열을 업데이트하라는 요청에 대응하는지 여부를 결정하는 것은 하나의 기계적 입력 디바이스를 통해 수신된 입력들에 응답하여 다수의 동작들을 수행하는 효율적인 방식을 제공하며, 그에 의해, 간소화된 인간-기계 인터페이스를 제공함으로써 전자 디바이스와의 사용자 상호작용들을 향상시킨다.
일부 실시예들에서, 도 7b에서와 같이, 복수의 가상 객체들(예를 들어, 704, 706)의 공간 배열을 업데이트하라는 요청에 대응하는 입력을 수신하는 것은 디스플레이 생성 컴포넌트(예를 들어, 120)를 통해 3차원 환경(예를 들어, 702)에서 디스플레이된 사용자 인터페이스 요소(예를 들어, 712)의 선택을 검출하는 것을 포함한다(808). 일부 실시예들에서, 사용자 인터페이스 요소의 선택은, 커서를 조작하고 커서가 디스플레이되는 위치에서 사용자 인터페이스 요소의 선택을 검출하는 입력 디바이스(예를 들어, 키보드, 트랙패드, 스타일러스, 손 추적 디바이스, 눈 추적 디바이스)를 통해 검출된다. 일부 실시예들에서, 사용자 인터페이스 요소의 선택은, 사용자의 개개의 부분(예를 들어, 손)에 대응하는 위치를 추적하고, 선택 제스처(예를 들어, 개개의 손 형상, 손으로 만들어진 3차원 제스처, 터치 감응형 표면을 통해 검출된 터치 제스처)가 선택가능 사용자 인터페이스 요소에 대응하는 위치에서 수행될 때 선택을 검출하는 입력 디바이스(예를 들어, 터치 감응형 표면, 손 추적 디바이스)를 통해 검출된다. 일부 실시예들에서, 사용자 인터페이스 요소의 선택을 검출하는 것은 사용자의 개개의 부분(예를 들어, 손)의 미리 결정된 제스처를 검출하는 동안 사용자 인터페이스 요소로 지향되는 사용자의 주의(예를 들어, 시선)를 검출하는 것을 포함한다. 예를 들어, 제스처는 엄지가 손의 다른 손가락을 터치하는 핀치 제스처이다. 다른 예로서, 제스처는, 손의 펴진 손가락이 (예를 들어, 하나 이상의 다른 손가락들이 손바닥을 향해 구부러진 동안) 3차원 환경에서 사용자 인터페이스 요소를 누르는 누르기 제스처이다.
사용자 인터페이스 요소의 선택을 검출함으로써 복수의 가상 객체들의 공간 배열을 업데이트하라는 요청에 대응하는 입력을 수신하는 것은 복수의 가상 객체들의 공간 배열을 어떻게 업데이트할지를 사용자에게 표시하는 효율적인 방식을 제공하며, 그에 의해, 사용자가 디바이스를 더 신속하고 효율적으로 사용할 수 있게 하는 개선된 시각적 피드백으로 전자 디바이스와의 사용자의 상호작용들을 향상시킨다.
일부 실시예들에서, 도 7b에서와 같이, 제2 공간 배열로 복수의 가상 객체들(예를 들어, 704, 706)을 디스플레이하는 것은 디스플레이 생성 컴포넌트(예를 들어, 120)를 통해, (예를 들어, 3차원 환경 내의 개개의 기준 포인트에 대한) 3차원 환경(예를 들어, 702) 내의 제1 포지션들에서 복수의 가상 객체들(예를 들어, 704, 706)을 디스플레이하는 것을 포함한다(810a). 일부 실시예들에서, 전자 디바이스는 사용자의 시점의 이동을 검출하는 것에 응답하여 제2 공간 배열로 복수의 가상 객체들을 디스플레이한다.
일부 실시예들에서, 도 7c에서와 같이, 입력을 수신하는 것에 응답하여, 전자 디바이스(예를 들어, 101)는 복수의 가상 객체들을 (예를 들어, 3차원 환경 내의 개개의 기준 포인트에 대한) 3차원 환경 내의 제1 포지션들로부터 제2 포지션들로 이동시킨다(810a). 일부 실시예들에서, 전자 디바이스는, 입력을 수신하는 것에 응답하여 하나 이상의 기준들을 만족시키기 위해 (예를 들어, 3차원 환경 내의 사용자의 시점의 포지션을 업데이트하기보다는) 3차원 환경 내의 복수의 가상 객체들의 포지션들을 업데이트한다. 일부 실시예들에서, 전자 디바이스는 입력을 수신하는 것에 응답하여 하나 이상의 기준들을 만족시키기 위해 복수의 가상 객체들의 포지션들을 업데이트하고 사용자의 시점의 포지션을 업데이트한다.
사용자의 시점의 이동을 검출한 이후 입력을 수신하는 것에 응답하여 복수의 가상 객체들의 포지션들을 업데이트함으로써 하나 이상의 기준들을 만족시키는 것은 사용자에게 편안한 방식으로 복수의 가상 객체들을 제시하는 효율적인 방식을 제공하며, 그에 의해, 복수의 가상 객체들과 상호작용하는 데 필요한 인지적 부담, 시간, 및 입력들을 감소시킴으로써 전자 디바이스와의 사용자 상호작용들을 향상시킨다.
일부 실시예들에서, 도 7c에서와 같이, 디스플레이 생성 컴포넌트(예를 들어, 120)를 통해, 3차원 환경(예를 들어, 702) 내의 제1 포지션에서 복수의 가상 객체들(예를 들어, 704, 706)의 개개의 가상 객체(예를 들어, 704)를 포함하는 3차원 환경(예를 들어, 702)을 디스플레이하는 동안 - 사용자의 현재 시점에 대한 복수의 가상 객체들의 공간 배열은 하나 이상의 기준들을 만족시키는 제1 개개의 공간 배열임 -, 전자 디바이스(예를 들어, 101)는 하나 이상의 입력 디바이스들을 통해, 3차원 환경(예를 들어, 702) 내의 개개의 가상 객체(예를 들어, 704)의 포지션을 업데이트하라는 요청에 대응하는 입력(예를 들어, 방법들(1000 및/또는 1400)을 참조하여 설명된 객체 이동 입력들과 유사함)을 수신한다(812a). 일부 실시예들에서, 입력은, 선택될 때, 전자 디바이스로 하여금 3차원 환경에서 개개의 가상 객체를 이동시키기 위한 프로세스를 개시하게 하는, 개개의 가상 객체에 근접하게 디스플레이되는 사용자 인터페이스 요소로 지향된다.
일부 실시예들에서, 도 7d에서와 같이, 3차원 환경(예를 들어, 702) 내의 개개의 가상 객체(예를 들어, 704)의 포지션을 업데이트하라는 요청에 대응하는 입력에 응답하여, 전자 디바이스(예를 들어, 101)는 디스플레이 생성 컴포넌트(예를 들어, 120)를 통해, 3차원 환경(예를 들어, 702) 내의 제1 포지션과 상이한 제2 포지션에서 개개의 가상 객체(예를 들어, 704)를 디스플레이하는 것을 포함하여, 하나 이상의 기준들을 만족시키지 않는 제2 개개의 공간 배열로 복수의 가상 객체들(예를 들어, 704, 706)을 디스플레이한다(812b). 일부 실시예들에서, 전자 디바이스는 3차원 환경 내의 다른 가상 객체들의 포지션들을 업데이트하라는 요청들에 대응하는 부가적인 입력들을 검출하지 않는다. 일부 실시예들에서, 전자 디바이스는 하나 이상의 기준들을 계속 만족시키는 방식들로 하나 이상의 다른 가상 객체들의 포지션들을 업데이트하라는 요청들에 대응하는 하나 이상의 부가적인 입력들을 수신한다.
일부 실시예들에서, 도 7d에서와 같이, 3차원 환경 내의 제2 포지션에서 개개의 가상 객체(예를 들어, 704)를 디스플레이하는 것을 포함하여 3차원 환경(예를 들어, 702)을 디스플레이하는 동안, 전자 디바이스(예를 들어, 101)는 하나 이상의 입력 디바이스들을 통해, 하나 이상의 기준들을 만족시키기 위해 사용자의 현재 시점에 대한 복수의 가상 객체들(예를 들어, 704, 706)의 공간 배열을 업데이트하라는 요청에 대응하는 제2 입력을 수신한다(812c).
일부 실시예들에서, 도 7e에서와 같이, 제2 입력을 수신하는 것에 응답하여, 전자 디바이스(예를 들어, 101)는 복수의 가상 객체들 내의 하나 이상의 다른 가상 객체들(예를 들어, 706)의 포지션들을 업데이트하지 않으면서(예를 들어, 그리고 3차원 환경 내의 사용자의 시점의 포지션 및/또는 배향을 업데이트하지 않으면서) 하나 이상의 기준들을 만족시키도록 개개의 가상 객체(예를 들어, 704)의 포지션을 업데이트한다(812b). 일부 실시예들에서, 3차원 환경 내의 제2 가상 객체의 이동이 하나 이상의 기준들로 하여금 만족되지 않게 하면, 제2 입력에 응답하여, 전자 디바이스는 하나 이상의 다른 가상 객체들의 포지션들을 업데이트하지 않으면서 하나 이상의 기준들을 만족시키도록 제2 가상 객체의 포지션을 업데이트한다.
제2 입력에 응답하여 하나 이상의 다른 가상 객체들의 포지션들을 업데이트하지 않으면서 개개의 가상 객체의 포지션을 업데이트하는 것은 다른 가상 객체들의 디스플레이를 그들 개개의 포지션들에 유지하면서 개개의 가상 객체에 대한 향상된 액세스를 제공하며, 그에 의해, 복수의 가상 객체들과 상호작용하는 데 필요한 인지적 부담, 시간, 및 입력들을 감소시킨다.
일부 실시예들에서, 도 7c에서와 같이, 제3 공간 배열로 복수의 가상 객체들(예를 들어, 704, 706)을 디스플레이하는 것(814)은, 3차원 환경(예를 들어, 702)이 제1 공간 템플릿과 연관된다는 결정에 따라, 디스플레이 생성 컴포넌트(예를 들어, 120)를 통해, 제3 공간 배열로 복수의 가상 객체들(예를 들어, 704, 706)을 디스플레이하는 것이 디스플레이 생성 컴포넌트(예를 들어, 120)를 통해, 제1 공간 템플릿과 연관된 하나 이상의 기준들을 만족시키는 사용자의 현재 시점에 대한 배향으로 복수의 가상 객체들의 개개의 가상 객체(예를 들어, 706)를 디스플레이하는 것을 포함하는 것을 포함한다(814b). 일부 실시예들에서, 공간 템플릿은, 3차원 환경 내의 가상 객체들의 포지션들 및 배향들 및/또는 하나 이상의 사용자들의 시점들을 선택하기 위해 전자 디바이스에 의해 사용되는 하나 이상의 기준들을 식별한다. 일부 실시예들에서, 공간 템플릿은 3차원 환경에 포함된 가상 객체들(예를 들어, 개개의 가상 객체들과 연관된 공간 템플릿들)에 기초하여 설정되고 그리고/또는 사용자-정의된 설정에 기초하여 설정된다. 일부 실시예들에 따른 예시적인 공간 템플릿들이 아래에서 더 상세히 설명된다. 예를 들어, 공간 템플릿이 공유 콘텐츠 공간 템플릿이고, 개개의 가상 객체가 3차원 환경에서 다수의 사용자들에 의해 소비될 콘텐츠 항목이면, 전자 디바이스는 3차원 환경에서 사용자들의 시점들을 향한 콘텐츠를 포함하는 콘텐츠 항목의 개개의 측을 배향시키는 포지션 및 배향으로 개개의 가상 객체를 디스플레이한다.
일부 실시예들에서, 도 7g에서와 같이, 제3 공간 배열로 복수의 가상 객체들(예를 들어, 714)을 디스플레이하는 것(814)은, 3차원 환경(예를 들어, 702)이 제2 공간 템플릿과 연관된다는 결정에 따라, 디스플레이 생성 컴포넌트(예를 들어, 120)를 통해, 제3 공간 배열로 복수의 가상 객체들을 디스플레이하는 것이 디스플레이 생성 컴포넌트(예를 들어, 120)를 통해, 제2 공간 템플릿과 연관된 하나 이상의 기준들을 만족시키는 사용자의 현재 시점에 대한 배향으로 복수의 가상 객체들의 개개의 객체(예를 들어, 714)를 디스플레이하는 것을 포함하는 것을 포함한다(814c). 예를 들어, 공간 템플릿이 공유 활동 공간 템플릿이고, 개개의 가상 객체가 3차원 환경에서 복수의 사용자들에 의해 재생되는 가상 보드 게임이면, 전자 디바이스는 사용자들의 시점들이 개개의 가상 객체의 상이한 측들을 향하고 있도록 3차원 환경 내의 사용자들의 시점들 사이에서 개개의 가상 객체를 디스플레이한다.
복수의 가상 객체들의 공간 배열을 업데이트하라는 요청에 대응하는 입력에 응답하여 상이한 공간 템플릿들과 연관된 상이한 기준들을 만족시키기 위해 상이한 배향들로 개개의 가상 객체를 디스플레이하는 것은 다양한 기능들에 대한 가상 객체들과의 사용자 상호작용을 용이하게 하는 3차원 환경 내의 위치들 및 배향들로 가상 객체들을 제시하는 효율적이고 다목적인 방식을 제공하며, 그에 의해, 사용자가 전자 디바이스를 신속하고 효율적으로 사용할 수 있게 한다.
일부 실시예들에서, 도 7c에서와 같이, 제3 공간 배열로 복수의 가상 객체들(예를 들어, 704, 706)을 디스플레이하는 것은 3차원 환경(예를 들어, 702)이 공유 콘텐츠 공간 템플릿과 연관된다는 결정에 따라, 디스플레이 생성 컴포넌트(예를 들어, 120)를 통해, 3차원 환경(예를 들어, 702) 내의 사용자의 시점 및 제2 사용자(또는 더 많은 사용자들)의 제2 시점을 향해 개개의 객체(예를 들어, 706)의 개개의 측을 배향시키는 포즈로 복수의 가상 객체들의 개개의 객체(예를 들어, 706)를 디스플레이하는 것을 포함한다(816). 일부 실시예들에서, 공유 콘텐츠 공간 템플릿은 콘텐츠(예를 들어, 전달, 재생, 스트리밍 등) 애플리케이션의 사용자 인터페이스 또는 콘텐츠를 포함하는 가상 객체와 연관된다. 일부 실시예들에서, 개개의 가상 객체의 개개의 측은 콘텐츠 항목(예를 들어, 그의 가상 콘텐츠)을 포함한다(예를 들어, 영화, 텔레비전 쇼 등의 콘텐츠를 디스플레이하고 있음). 일부 실시예들에서, 공유 콘텐츠 공간 템플릿은 다수의 사용자들이 둘 모두(또는 그 이상)의 사용자들의 시점들을 향해 콘텐츠를 배향시킴으로써 콘텐츠의 항목의 동일한 측으로부터 함께 콘텐츠의 항목을 소비할 수 있게 한다.
사용자들의 시점들을 향해 배향된 개개의 가상 객체의 개개의 측을 포지셔닝시키는 것은 개개의 가상 객체와 연관된 콘텐츠 항목의 공유 소비를 용이하게 하는 효율적인 방식을 제공하며, 그에 의해, 사용자가 콘텐츠 항목의 공유 소비를 위해 3차원 환경을 신속하고 효율적으로 구성할 수 있게 한다.
일부 실시예들에서, 도 7g에서와 같이, 제3 공간 배열로 복수의 가상 객체들(예를 들어, 714, 708)을 디스플레이하는 것은 3차원 환경(예를 들어, 702)이 공유 활동 공간 템플릿과 연관된다는 결정에 따라, 디스플레이 생성 컴포넌트(예를 들어, 120)를 통해, 사용자의 시점을 향해 개개의 객체(예를 들어, 714)의 제1 측을 그리고 제2 사용자의 제2 시점을 향해 개개의 객체의 제1 측과 상이한 제2 측을 배향시키는 포즈로 복수의 가상 객체들의 개개의 객체(예를 들어, 714)를 디스플레이하는 것을 포함한다(818). 일부 실시예들에서, 공유 활동 공간 템플릿은 가상 객체의 다수의 측들로부터의 다수의 사용자들에 의한 상호작용을 위해 구성된 개개의 가상 객체와 연관된다. 예를 들어, 개개의 가상 객체는 다수의 사용자들에 의한 플레이를 위한 가상 보드 게임 또는 다수의 사용자들의 시점들이 배열되는 가상 테이블이다. 일부 실시예들에서, 공유 활동 공간 템플릿은 사용자들이 3차원 환경 내의 다른 사용자들의 시점들의 위치들에서 디스플레이된 3차원 환경 내의 다른 사용자들의 표현들과 동시에 개개의 가상 객체를 볼 수 있게 한다.
3차원 환경에서 상이한 사용자들을 향해 개개의 가상 객체의 상이한 측들을 포지셔닝시키는 것은 사용자들 사이의 그리고/또는 개개의 가상 객체와의 상호작용을 용이하게 하는 효율적인 방식을 제공하며, 그에 의해, 사용자가 개개의 가상 객체와 연관된 공유 활동을 위해 3차원 환경을 신속하고 효율적으로 구성할 수 있게 한다.
일부 실시예들에서, 도 7g에서와 같이, 제3 공간 배열로 복수의 가상 객체들(예를 들어, 708, 710)을 디스플레이하는 것은 3차원 환경(예를 들어, 702)이 그룹 활동 공간 템플릿과 연관된다는 결정에 따라, 디스플레이 생성 컴포넌트(예를 들어, 120)를 통해, 전자 디바이스의 사용자의 현재 시점을 향해 배향된 포즈로 제2 사용자(예를 들어, 708)의 표현을 디스플레이하는 것을 포함한다(820). 일부 실시예들에서, 그룹 활동 공간 템플릿은, 선택적으로 하나 이상의 다른 사용자들의 표현들 이외의 개개의 가상 객체에 관련되지 않은 방식으로, 3차원 환경 내의 하나 이상의 다른 사용자들과 상호작용하기 위한 사용자-정의된 설정과 연관된다(예를 들어, 사용자들 사이의 가상 회의). 일부 실시예들에서, 그룹 활동 공간 템플릿은, (예를 들어, 다른 사용자들의 표현들 및/또는 시점들의 포지션들을 업데이트하지 않으면서) 사용자의 시점이 3차원 환경 내의 하나 이상의 다른 사용자들의 표현들 및/또는 시점들을 향해 배향되도록 하는 위치에서, 전자 디바이스로 하여금 3차원 환경 내의 사용자의 시점(예를 들어, 및 3차원 환경 내의 사용자들의 대응하는 표현들)을 포지셔닝시키게 한다.
3차원 환경에서 제2 사용자의 표현을 향해 사용자의 시점을 배향시키는 것은 사용자들 사이의 상호작용을 용이하게 하는 효율적인 방식을 제공하며, 그에 의해, 사용자가 그룹 활동을 위해 3차원 환경을 신속하고 효율적으로 구성할 수 있게 한다.
일부 실시예들에서, 도 7b에서와 같이, 디스플레이 생성 컴포넌트(예를 들어, 120)를 통해, 3차원 환경(예를 들어, 702)에서 제2 시점과 연관된 제2 사용자를 포함하는 3차원 환경(예를 들어, 702)을 디스플레이하는 동안 - 사용자의 현재 시점(예를 들어, 및 제2 사용자의 제2 시점)에 대한 복수의 가상 객체들(예를 들어, 704, 706)의 공간 배열은 하나 이상의 기준들을 만족시키는 제1 개개의 공간 배열임 -, 전자 디바이스(예를 들어, 101)는 제1 개개의 시점으로부터 제2 개개의 시점으로의 3차원 환경 내의 제2 사용자의 제2 시점의 이동의 표시를 검출한다(822a). 일부 실시예들에서, 제2 사용자의 제2 시점의 이동은 하나 이상의 기준들이 전자 디바이스에서 만족되지 않게 한다. 일부 실시예들에서, 제2 사용자의 제2 시점의 이동은 하나 이상의 기준들이 사용자에 의해 사용되는 제2 전자 디바이스에서 만족되지 않게 한다. 일부 실시예들에서, 전자 디바이스는, 사용자의 시점 및/또는 복수의 가상 객체들의 포즈들을 업데이트하라는 요청들에 대응하는 하나 이상의 입력들을 수신하지 않으면서 제2 사용자의 제2 시점의 이동의 표시를 검출한다. 일부 실시예들에서, 전자 디바이스는 부가적으로, 전자 디바이스에서 그리고/또는 제2 사용자에 의해 사용되는 제2 전자 디바이스에서 하나 이상의 기준들을 계속 만족시키는 방식들로 사용자의 시점의 이동 및/또는 가상 객체들 중 하나 이상의 가상 객체들의 이동을 검출한다.
일부 실시예들에서, 도 7b에서와 같이, 제2 개개의 시점에서 제2 사용자의 제2 시점으로 3차원 환경을 디스플레이하는 동안, 전자 디바이스(예를 들어, 101)는 하나 이상의 입력 디바이스들(예를 들어, 314)을 통해, 하나 이상의 기준들을 만족시키기 위해 사용자의 현재 시점에 대한 복수의 가상 객체들(예를 들어, 704, 706)의 공간 배열을 업데이트하라는 요청에 대응하는 제2 입력을 수신한다(822b).
일부 실시예들에서, 도 7c에서와 같이, 제2 입력을 수신하는 것에 응답하여, 전자 디바이스(예를 들어, 101)는 제2 사용자의 제2 개개의 시점에 따라 복수의 가상 객체들(예를 들어, 704, 706)의 공간 배열을 하나 이상의 기준들을 만족시키는 제2 개개의 공간 배열로 업데이트한다(822c). 일부 실시예들에서, 전자 디바이스는, 하나 이상의 기준들이 사용자의 시점에 대해 그리고 제2 사용자의 제2 시점에 대해 만족되도록 복수의 가상 객체들의 공간 배열을 업데이트한다. 예를 들어, 제2 사용자의 제2 시점이 사용자의 시점의 좌측으로 이동하면, 복수의 가상 객체들의 공간 배열을 업데이트하는 것은 가상 객체들 중 하나 이상을 사용자의 시점에 대해 좌측을 향해(예를 들어, 사용자의 시점 및 제2 사용자의 새로운 시점에 기초한 배향들로) 이동 또는 배향시키는 것을 포함한다. 다른 예로서, 제2 사용자의 제2 시점이 사용자의 시점의 우측으로 이동하면, 복수의 가상 객체들의 공간 배열을 업데이트하는 것은 가상 객체들 중 하나 이상을 사용자의 시점에 대해 우측을 향해 이동 또는 배향시키는 것을 포함한다.
제2 사용자의 제2 개개의 시점에 따라 공간 배열을 업데이트하는 것은 하나의 입력에 응답하여 전자 디바이스에서 그리고 제2 사용자의 제2 전자 디바이스에서 하나 이상의 기준들을 만족시키는 효율적인 방식을 제공하며, 그에 의해, 사용자 및 제2 사용자에 대해 편안한 방식으로 3차원 환경을 구성하는 데 필요한 입력들의 수, 시간, 및 인지적 부담을 감소시킨다.
일부 실시예들에서, 도 7c에서와 같이, 디스플레이 생성 컴포넌트(예를 들어, 120)를 통해 3차원 환경(예를 들어, 702)을 디스플레이하는 동안 - 사용자의 현재 시점에 대한 복수의 가상 객체들(예를 들어, 704, 706)의 공간 배열은 하나 이상의 기준들을 만족시키는 제1 개개의 공간 배열임 -, 전자 디바이스(예를 들어, 101)는 하나 이상의 입력 디바이스들을 통해, 3차원 환경(예를 들어, 702) 내의 복수의 가상 객체들(예를 들어, 704)의 하나 이상의 포지션들을 업데이트하라는 요청에 대응하는 하나 이상의 입력들의 시퀀스를 수신한다(824a). 일부 실시예들에서, 입력들의 시퀀스는 방법(1400)을 참조하여 설명된 바와 같이, 3차원 환경에서 개개의 가상 객체들을 리포지셔닝시키기 위한 사용자 인터페이스 요소들로 지향되는 입력들이다. 일부 실시예들에서, 입력들의 시퀀스는 아래에서 더 상세히 설명되는 방법(1000)의 하나 이상의 단계들에 따라 복수의 가상 객체들을 함께 리포지셔닝시키라는 요청에 대응하는 입력이다.
일부 실시예들에서, 도 7d에서와 같이, 하나 이상의 입력들의 시퀀스를 수신하는 것에 응답하여, 전자 디바이스(예를 들어, 101)는 디스플레이 생성 컴포넌트(예를 들어, 120)를 통해, 하나 이상의 기준들을 만족시키지 않는 제2 개개의 공간 배열로 하나 이상의 입력들의 시퀀스에 따라 3차원 환경(예를 들어, 702) 내의 개개의 포지션들에서 복수의 가상 객체들(예를 들어, 704, 706)을 디스플레이한다(824b). 일부 실시예들에서, 전자 디바이스는 사용자의 시점을 업데이트하라는 요청에 대응하는 입력을 수신하지 않는다. 일부 실시예들에서, 전자 디바이스는 하나 이상의 기준들이 만족되지 않게 하는 방식으로 사용자의 시점을 업데이트하라는 요청에 대응하는 입력을 수신한다.
일부 실시예들에서, 도 7d에서와 같이, 3차원 환경(예를 들어, 702) 내의 개개의 포지션들에서 복수의 가상 객체들(예를 들어, 704, 706)을 디스플레이하는 것을 포함하여 3차원 환경(예를 들어, 702)을 디스플레이하는 동안, 전자 디바이스(예를 들어, 101)는 하나 이상의 입력 디바이스들(예를 들어, 314)을 통해, 하나 이상의 기준들을 만족시키기 위해 사용자의 현재 시점에 대한 복수의 가상 객체들(예를 들어, 704, 706)의 공간 배열을 업데이트하라는 요청에 대응하는 제2 입력을 수신한다(824c).
일부 실시예들에서, 도 7e에서와 같이, 제2 입력을 수신하는 것에 응답하여, 전자 디바이스(예를 들어, 101)는 3차원 환경(예를 들어, 702) 내의 복수의 가상 객체들(예를 들어, 704, 706)의 개개의 포지션들에 따라 복수의 가상 객체들(예를 들어, 704, 706)의 포지션들을 하나 이상의 기준들을 만족시키는 제3 개개의 공간 배열로 업데이트한다(824d). 일부 실시예들에서, 제3 개개의 공간 배열은 제1 개개의 공간 배열과 동일하다. 일부 실시예들에서, 제3 개개의 공간 배열은 제1 개개의 공간 배열과 상이하다. 일부 실시예들에서, 제3 개개의 공간 배열은 하나 이상의 기준들을 만족시키는 데 필요한 3차원 환경 내의(예를 들어, 3차원 환경 내의 복수의 가상 객체들의 하나 이상의 포지션들을 업데이트하라는 요청에 대응하는 입력들의 시퀀스에 응답하여 가상 객체들이 디스플레이되는 개개의 포지션들 및/또는 배향들로부터의) 복수의 가상 객체들의 최소 이동 및/또는 재배향을 수반한다.
복수의 가상 객체들이 리포지셔닝된 이후 하나 이상의 기준들을 만족시키기 위해 3차원 환경 내의 복수의 가상 객체들의 개개의 포지션들에 따라 복수의 가상 객체들의 포지션들을 업데이트하는 것은 복수의 가상 객체들과의 사용자 상호작용을 용이하게 하는 효율적인 방식을 제공하며, 그에 의해, 복수의 가상 객체들과의 편리한 사용자 상호작용을 위해 필요한 인지적 부담, 시간, 및 입력들을 감소시킨다.
일부 실시예들에서, 디스플레이 생성 컴포넌트(예를 들어, 120)를 통해 3차원 환경(예를 들어, 120)을 디스플레이하는 동안 - 사용자의 현재 시점에 대한 복수의 가상 객체들(예를 들어, 704, 706)의 공간 배열은 하나 이상의 기준들을 만족시키는 제1 개개의 공간 배열임 -, 도 7a에서와 같이, 전자 디바이스(예를 들어, 101)는 3차원 환경(예를 들어, 702) 내의 복수의 가상 객체들(예를 들어, 704, 706)의 하나 이상의 포지션들을 업데이트하라는 3차원 환경(예를 들어, 702) 내의 제2 사용자에 의한 요청들의 하나 이상의 표시들을 검출한다(826a). 일부 실시예들에서, 3차원 환경 내의 제2 사용자에 의한 요청들은 하나 이상의 가상 객체들의 포지션들을 (예를 들어, 개별적으로) 업데이트하라는 하나 이상의 요청들을 포함한다. 일부 실시예들에서, 3차원 환경 내의 제2 사용자에 의한 요청들은 3차원 환경 내의 제2 사용자의 제2 시점을 업데이트하라는 제2 사용자에 의한 요청을 포함하지 않는다.
일부 실시예들에서, 하나 이상의 표시들을 검출하는 것에 응답하여, 전자 디바이스(예를 들어, 101)는 디스플레이 생성 컴포넌트(예를 들어, 120)를 통해, 도 7b에서와 같이, 하나 이상의 기준들을 만족시키지 않는 제2 개개의 공간 배열로 하나 이상의 입력들의 시퀀스에 따라 3차원 환경(예를 들어, 702) 내의 개개의 포지션들에서 복수의 가상 객체들(예를 들어, 704, 706)을 디스플레이한다(826b). 일부 실시예들에서, 전자 디바이스는 가상 객체들의 포즈들 또는 사용자의 시점을 업데이트하라는 요청들에 대응하는 입력들을 수신하지 않고, 제2 사용자의 제2 시점의 포지션을 업데이트하라는 제2 사용자에 의한 요청의 표시를 검출하지 않는다. 일부 실시예들에서, 전자 디바이스는 가상 객체들의 포즈들 및/또는 사용자의 시점을 업데이트하라는 요청들에 대응하는 입력들을 수신하고 그리고/또는 사용자의 제2 시점의 포지션을 업데이트하라는 제2 사용자에 의한 요청의 표시를 검출하지만, 이러한 업데이트들은 하나 이상의 기준들이 만족되지 않게 한다.
일부 실시예들에서, 3차원 환경(예를 들어, 702) 내의 개개의 포지션들에서 복수의 가상 객체들(예를 들어, 704, 706)을 디스플레이하는 것을 포함하여 3차원 환경(예를 들어, 702)을 디스플레이하는 동안, 전자 디바이스(예를 들어, 101)는 하나 이상의 입력 디바이스들(예를 들어, 314)을 통해, 도 7b에서와 같이, 하나 이상의 기준들을 만족시키기 위해 사용자의 현재 시점에 대한 복수의 가상 객체들(예를 들어, 704, 706)의 공간 배열을 업데이트하라는 요청에 대응하는 제2 입력을 수신한다(826c).
일부 실시예들에서, 제2 입력을 수신하는 것에 응답하여, 전자 디바이스(예를 들어, 101)는 도 7c에서와 같이, 3차원 환경(예를 들어, 702) 내의 복수의 가상 객체들(예를 들어, 704, 706)의 개개의 포지션들에 따라 복수의 가상 객체들(예를 들어, 704, 706)의 포지션들을 하나 이상의 기준들을 만족시키는 제3 개개의 공간 배열로 업데이트한다(826d). 일부 실시예들에서, 제3 개개의 공간 배열은 제1 개개의 공간 배열과 동일하다. 일부 실시예들에서, 제3 개개의 공간 배열은 제1 개개의 공간 배열과 상이하다. 일부 실시예들에서, 제3 개개의 공간 배열은 하나 이상의 기준들을 만족시키는 데 필요한 3차원 환경 내의(예를 들어, 3차원 환경 내의 복수의 가상 객체들의 하나 이상의 포지션들을 업데이트하라는 요청에 대응하는 표시들에 응답하여 가상 객체들이 디스플레이되는 개개의 포지션들 및/또는 배향들로부터의) 복수의 가상 객체들의 최소 이동 및/또는 재배향을 수반한다.
복수의 가상 객체들이 제2 사용자에 의해 리포지셔닝된 이후 하나 이상의 기준들을 만족시키기 위해 3차원 환경 내의 복수의 가상 객체들의 개개의 포지션들에 따라 복수의 가상 객체들의 포지션들을 업데이트하는 것은 복수의 가상 객체들과의 사용자 상호작용을 용이하게 하는 효율적인 방식을 제공하며, 그에 의해, 복수의 가상 객체들과의 편리한 사용자 상호작용을 위해 필요한 인지적 부담, 시간, 및 입력들을 감소시킨다.
일부 실시예들에서, 복수의 가상 객체들(예를 들어, 704, 706)의 공간 배열이 하나 이상의 기준들을 만족시키지 않는 동안, 도 7b에서와 같이, 복수의 객체들의 공간 배열을 업데이트하라는 요청에 대응하는 입력이 수신되지 않았다는 결정에 따라, 전자 디바이스(예를 들어, 101)는 복수의 객체들의(예를 들어, 704, 706) 공간 배열을 업데이트하라는 요청에 대응하는 입력이 수신될 때까지 복수의 가상 객체들(예를 들어, 704, 706)의 공간 배열을 유지한다(828). 일부 실시예들에서, 전자 디바이스는 복수의 객체들의 공간 배열을 업데이트하라는 요청에 대응하는 입력이 수신되지 않는 한 그리고 수신될 때까지 하나 이상의 기준들을 만족시키기 위해 복수의 객체들의 공간 배열을 업데이트하지 않는다. 일부 실시예들에서, 전자 디바이스는 하나 이상의 기준들을 자동으로 만족시키기 위해 하나 이상의 가상 객체들의 공간 배열을 업데이트하지 않는다.
입력이 수신될 때까지 복수의 가상 객체들의 공간 배열을 유지하는 것은 3차원 환경에서 친숙한 위치들에서 그리고/또는 배향들로 가상 객체들을 디스플레이하는 효율적인 방식을 제공하며, 그에 의해, 사용자가 상호작용을 위해 3차원 환경 내에 가상 객체들을 신속하고 효율적으로 위치파악할 수 있게 함으로써 전자 디바이스와의 사용자 상호작용들을 향상시킨다.
일부 실시예들에서, 전자 디바이스(예를 들어, 101)는 도 7b에서와 같이, 사용자의 현재 시점으로부터 미리 정의된 임계 거리(예를 들어, 1, 2, 3, 4, 5, 10, 15, 30, 또는 50 미터)를 초과하는 위치에서 복수의 가상 객체들 중 제1 가상 객체(예를 들어, 704, 706)를 디스플레이하는 것을 포함하여, 3차원 환경(예를 들어, 702)에서 복수의 가상 객체들(예를 들어, 704, 706)을 디스플레이한다(830a). 일부 실시예들에서, 제2 가상 객체는 사용자의 시점으로부터 미리 정의된 임계 거리를 초과하는 위치에 포지셔닝된다. 일부 실시예들에서, 다수의(예를 들어, 모든) 가상 객체들은 사용자의 시점으로부터 미리 정의된 임계 거리를 초과하는 위치들에 포지셔닝된다. 일부 실시예들에서, 하나 이상의 기준들은, 다수의(예를 들어, 모든) 가상 객체들이 사용자의 현재 시점으로부터 미리 정의된 임계 거리 내에 포지셔닝될 때 만족되는 기준을 포함한다.
일부 실시예들에서, 도 7b에서와 같이, 사용자의 현재 시점으로부터 미리 정의된 임계 거리를 초과하는 위치에서 복수의 가상 객체들(예를 들어, 704, 706) 중 제1 가상 객체를 디스플레이하는 것을 포함하여, 복수의 가상 객체들(예를 들어, 704, 706)이 3차원 환경(예를 들어, 702)에서 디스플레이되는 동안, 전자 디바이스(예를 들어, 101)는 하나 이상의 입력 디바이스들을 통해, 하나 이상의 기준들을 만족시키기 위해 사용자의 현재 시점에 대한 복수의 가상 객체들(예를 들어, 704, 706)의 공간 배열을 업데이트하라는 요청에 대응하는 제2 입력을 수신한다(830b).
일부 실시예들에서, 도 7c에서와 같이, 제2 입력을 수신하는 것에 응답하여, 전자 디바이스(예를 들어, 101)는 사용자의 시점을 제1 가상 객체(예를 들어, 704, 706)의 미리 정의된 임계 거리 내에 있는 개개의 시점으로 업데이트하며, 여기서 개개의 시점에 대한 복수의 가상 객체들(예를 들어, 704, 706)의 공간 배열은 하나 이상의 기준들을 만족시킨다(830c). 일부 실시예들에서, 전자 디바이스는 가상 객체들의 위치들 및/또는 배향들을 업데이트하지 않으면서 사용자의 시점을 업데이트한다. 일부 실시예들에서, 전자 디바이스는 사용자의 시점을 업데이트하고, 가상 객체들의 위치들 및/또는 배향들을 업데이트한다. 일부 실시예들에서, 가상 객체들의 포지션들 및 배향들을 업데이트하지 않으면서 사용자의 시점을 업데이트함으로써 하나 이상의 기준들을 만족시키는 것이 가능하면, 전자 디바이스는 제2 입력에 응답하여 가상 객체들의 포지션들 및/또는 배향들을 업데이트하지 않으면서 사용자의 시점을 업데이트한다.
제1 가상 객체가 사용자의 시점으로부터 미리 정의된 임계 거리보다 더 멀리 포지셔닝될 때 제2 시점에 응답하여 하나 이상의 기준들을 만족시키도록 사용자의 시점을 업데이트하는 것은 상호작용을 위해 가상 객체들에 액세스하는 효율적인 방식을 제공하며, 그에 의해, 가상 객체들과 상호작용하는 데 필요한 인지적 부담, 시간, 및 입력들을 감소시킨다.
일부 실시예들에서, 도 7d에서와 같이, 전자 디바이스(예를 들어, 101)는 디스플레이 생성 컴포넌트(예를 들어, 120)를 통해, 복수의 가상 객체들 중 제1 가상 객체(예를 들어, 704)와 복수의 가상 객체들 중 제2 가상 객체(예를 들어, 704) 사이의 제1 간격으로 복수의 가상 객체들(예를 들어, 704, 706)을 디스플레이하며, 여기서 제1 간격은 하나 이상의 기준들의 하나 이상의 간격 기준들을 만족시키지 않는다(832a). 일부 실시예들에서, 하나 이상의 간격 기준들은, 개개의 가상 객체들(예를 들어, 가상 객체들의 쌍들) 사이의 거리들이 제1 미리 정의된 임계 거리(예를 들어, 1, 2, 3, 5, 10, 15, 30, 50, 또는 100 센티미터)와 제2 미리 정의된 임계 거리 (예를 들어, 1, 2, 3, 5, 10, 15, 30, 또는 50 미터) 사이에 있을 때 만족되는 기준들을 포함한다.
일부 실시예들에서, 도 7d에서와 같이, 제1 가상 객체(예를 들어, 704)와 제2 가상 객체(예를 들어, 706) 사이의 제1 간격으로 복수의 가상 객체들(예를 들어, 704, 706)을 디스플레이하는 동안, 전자 디바이스(예를 들어, 101)는 하나 이상의 입력 디바이스들(예를 들어, 314)을 통해, 하나 이상의 기준들(예를 들어, 하나 이상의 간격 기준들을 포함함)을 만족시키기 위해 사용자의 현재 시점에 대한 복수의 가상 객체들(예를 들어, 704, 706)의 공간 배열을 업데이트하라는 요청에 대응하는 제2 입력을 수신한다(832b).
일부 실시예들에서, 도 7e에서와 같이, 제2 입력을 수신하는 것에 응답하여, 전자 디바이스(예를 들어, 101)는 디스플레이 생성 컴포넌트(예를 들어, 120)를 통해, 제1 가상 객체(예를 들어, 704)와 제2 가상 객체(예를 들어, 706) 사이의 제2 간격으로 복수의 가상 객체들(예를 들어, 704, 706)을 디스플레이하며, 여기서 제2 간격은 하나 이상의 간격 기준들을 만족시킨다(832c). 일부 실시예들에서, 제1 가상 객체와 제2 가상 객체 사이의 제2 간격으로 복수의 가상 객체들을 디스플레이하는 것은 하나 이상의 기준들을 만족시키는 공간 배열로 복수의 가상 객체들을 디스플레이하는 것을 포함한다. 일부 실시예들에서, 전자 디바이스는 하나 이상의 기준들을 만족시키기 위해 필요에 따라 제1 및 제2 가상 객체들 이외의 하나 이상의 가상 객체들의 포지션들 및/또는 배향들을 업데이트한다. 일부 실시예들에서, 제2 간격은 제1 간격보다 작은 간격이다. 일부 실시예들에서, 제1 가상 객체와 제2 가상 객체 사이의 제2 간격으로 복수의 가상 객체들을 디스플레이하는 것은 (예를 들어, 배향들을 업데이트하지 않으면서) 포지션들을 업데이트하는 것 또는 포지션들 및 배향들 둘 모두를 업데이트하는 것과 같은, 제1 및/또는 제2 객체들의 포지션들 및/또는 배향들을 변경시키는 것을 포함한다.
제2 입력에 응답하여 제1 가상 객체와 제2 가상 객체 사이의 제2 간격으로 복수의 가상 객체들을 디스플레이하는 것은 사용자가 제1 및 제2 가상 객체들을 동시에 보고 그리고/또는 그들과 동시에 상호작용할 수 있게 하는 효율적인 방식을 제공하며, 그에 의해, 제1 및 제2 가상 객체들과 상호작용하는 데 필요한 시간, 입력, 및 인지적 부담을 감소시킨다.
일부 실시예들에서, 도 7a에서와 같이, 제1 시점으로부터 제2 시점으로의 3차원 환경 내의 사용자의 현재 시점의 이동을 검출하는 것은, 하나 이상의 입력 디바이스들(예를 들어, 314)을 통해, 전자 디바이스(예를 들어, 101)의 물리적 환경 내의 전자 디바이스(예를 들어, 101)의 이동 또는 디스플레이 생성 컴포넌트(예를 들어, 120)의 물리적 환경 내의 디스플레이 생성 컴포넌트(예를 들어, 120)의 이동을 검출하는 것을 포함한다(834). 일부 실시예들에서, 전자 디바이스 또는 디스플레이 생성 컴포넌트의 이동을 검출하는 것은 (예를 들어, 전자 디바이스 또는 디스플레이 생성 컴포넌트가 웨어러블 디바이스이면) 사용자의 이동을 검출하는 것을 포함한다.
전자 디바이스 또는 디스플레이 생성 컴포넌트의 이동을 검출하는 것에 응답하여 사용자의 시점을 업데이트하는 것은 3차원 환경을 횡단하는 효율적이고 직관적인 방식을 제공하며, 그에 의해, 3차원 환경과의 사용자 상호작용들을 향상시킨다.
도 9a 내지 도 9g는 일부 실시예들에 따른, 전자 디바이스가 다수의 가상 객체들의 포지션들을 어떻게 함께 업데이트하는지의 예들을 예시한다.
도 9a는, 전자 디바이스(101a)가 디스플레이 생성 컴포넌트(120a)를 통해 3차원 환경(902a)을 디스플레이하는 것을 예시한다. 일부 실시예들에서, 전자 디바이스(101a)는 본 개시내용의 범주를 벗어나지 않으면서 2차원 환경에서 도 9a 내지 도 9g를 참조하여 설명되는 하나 이상의 기법들을 이용한다는 것이 이해되어야 한다. 도 1 내지 도 6을 참조하여 위에서 설명된 바와 같이, 전자 디바이스(101a)는 선택적으로, 디스플레이 생성 컴포넌트(120a)(예를 들어, 터치 스크린) 및 복수의 이미지 센서들(314a)을 포함한다. 이미지 센서들은, 선택적으로, 가시광 카메라, 적외선 카메라, 깊이 센서, 또는 사용자가 전자 디바이스(101a)와 상호작용하는 동안 전자 디바이스(101a)가 사용자 또는 사용자의 일부의 하나 이상의 이미지들을 캡처하는 데 사용할 수 있을 임의의 다른 센서 중 하나 이상을 포함한다. 일부 실시예들에서, 디스플레이 생성 컴포넌트(120a)는 사용자의 손의 제스처들 및 이동들을 검출할 수 있는 터치 스크린이다. 일부 실시예들에서, 아래에 도시된 사용자 인터페이스들은 또한, 사용자 인터페이스를 사용자에게 디스플레이하는 디스플레이 생성 컴포넌트, 및 사용자의 손들의 물리적 환경 및/또는 이동들(예를 들어, 사용자로부터 바깥쪽으로 향하는 외부 센서들), 및/또는 사용자의 시선(예를 들어, 사용자의 얼굴을 향해 안쪽으로 향하는 내부 센서들)을 검출하기 위한 센서들을 포함하는 머리 장착형 디스플레이 상에서 구현될 수 있다.
도 9a에서, 제1 전자 디바이스(101a) 및 제2 전자 디바이스(101b)는 제1 전자 디바이스(101a)의 표현, 제2 전자 디바이스(101b)의 표현, 제1 전자 디바이스(101a)의 제1 사용자(916a), 제2 전자 디바이스(101b)의 제2 사용자(916b), 전자 디바이스들(101a, 101b) 둘 모두에 액세스가능한 제1 애플리케이션의 사용자 인터페이스(904), 제1 전자 디바이스(101a)에 액세스가능하지만 제2 전자 디바이스(101b)에 액세스가능하지 않은 제2 애플리케이션의 사용자 인터페이스(906), 및 전자 디바이스(101a, 101b) 둘 모두에 액세스가능한 제3 애플리케이션의 사용자 인터페이스(908)를 포함하는 3차원 환경(902)에 대한 액세스를 갖는다. 일부 실시예들에서, 제1 전자 디바이스(101a) 및 제2 전자 디바이스(101b)는 공유된 물리적 환경에 위치되고, 물리적 환경 내의 제1 전자 디바이스(101a) 및 제2 전자 디바이스(101b)의 공간 배열은 3차원 환경(902) 내의 제1 전자 디바이스(101a) 및 제2 전자 디바이스(101b)의 공간 배열에 대응한다(예를 들어, 그와 동일하다). 일부 실시예들에서, 제1 전자 디바이스(101a) 및 제2 전자 디바이스(101b)는 상이한 물리적 환경들(예를 들어, 상이한 룸들, 상이한 빌딩들, 상이한 도시들 등)에 위치되고, 물리적 세계 내의 제1 전자 디바이스(101a) 및 제2 전자 디바이스(101b)의 공간 배열은 3차원 환경(902) 내의 제1 전자 디바이스(101a) 및 제2 전자 디바이스(101b)의 공간 배열과 상이하다. 일부 실시예들에서, 전자 디바이스(101b)는 전자 디바이스(101a)의 특성들 중 하나 이상을 갖는다.
도 9a 내지 도 9g는 전자 디바이스들(101a, 101b)에 의해 디스플레이되는 3차원 환경(902)의 평면도를 포함한다. 제1 전자 디바이스(101a)는, 예를 들어 제1 애플리케이션의 사용자 인터페이스(904a), 제2 애플리케이션의 사용자 인터페이스(906a), 제3 애플리케이션의 사용자 인터페이스(908a), 제2 사용자의 표현들(916b), 및 제2 전자 디바이스(101b)의 표현을 디스플레이하는 것을 포함하여, 3차원 환경(902)에서 제1 사용자(916a)의 시점으로부터 3차원 환경(902a)을 제시한다. 다른 예로서, 제2 전자 디바이스(101b)는, 제1 애플리케이션의 사용자 인터페이스(904b), 제3 애플리케이션의 사용자 인터페이스(908b), 제1 사용자의 표현들(916a), 및 제1 전자 디바이스(101a)의 표현을 디스플레이하는 것을 포함하여, 3차원 환경(902)에서 제2 사용자(916b)의 시점으로부터 3차원 환경(902b)을 제시한다. 일부 실시예들에서, 제2 전자 디바이스(101b)가 제2 애플리케이션의 사용자 인터페이스(906)에 대한 액세스를 갖지 않기 때문에, 제2 전자 디바이스(101b)는 제2 애플리케이션의 사용자 인터페이스(906)를 디스플레이하지 않지만, 도 9a는, 제2 전자 디바이스(101b)가 제2 애플리케이션의 사용자 인터페이스(906)에 대한 액세스를 가졌다면, 제2 애플리케이션의 사용자 인터페이스(906)가 디스플레이될 3차원 환경(902b) 내의 위치(906b)를 표시한다.
일부 실시예들에서, 제1 전자 디바이스(101a)는 3차원 환경(902) 내의 디지털 오리진(digital origin)(912)과 연관된다. 일부 실시예들에서, 제2 전자 디바이스(101b)는 3차원 환경(902) 내의 상이한 디지털 오리진(도시되지 않음)과 연관된다. 일부 실시예들에서, 디지털 오리진(912)은, 방법(800)의 하나 이상의 단계들에 따라 3차원 환경(902a)을 재중심설정하라는 요청에 응답하여, 전자 디바이스(101a)가 가상 객체들(예를 들어, 사용자 인터페이스들(904, 906, 908)) 및/또는 제1 사용자(101a)의 시점에 대한 위치들 및/또는 배향들을 선택하기 위해 사용하는 3차원 환경(902) 내의 위치이다. 예를 들어, 3차원 환경(902a)을 재중심설정하라는 요청에 응답하여, 전자 디바이스(101a)는 디지털 오리진(912)에 대한 가상 객체들 및/또는 사용자(916a)의 시점의 공간 배열에 대한 하나 이상의 기준들을 평가하고, 하나 이상의 가상 객체들 및/또는 사용자(916a)의 시점의 포지션 및/또는 배향을 업데이트하여, 하나 이상의 기준들을 만족시킨다. 일부 실시예들에서, 전자 디바이스(101a)는 재중심설정하라는 요청에 응답하여 디지털 오리진(912)의 위치에 있도록 제1 사용자(916a)의 시점을 업데이트한다. 일부 실시예들에서, 전자 디바이스(101a)는 사용자 인터페이스(904a, 904b, 904c)와의 사용자 상호작용을 용이하게 하는 포지션들 및/또는 배향들을 선택하기 위해 디지털 오리진(912)에 대해 사용자 인터페이스들(904a, 904b, 904c)의 포지션들 및/또는 배향들을 업데이트한다. 예를 들어, 하나 이상의 기준들은, 방법들(800 및/또는 1000)을 참조하여 설명된 바와 같이 디지털 오리진(912)으로부터의 거리들의 범위 및/또는 디지털 오리진(912)에 대한 배향들의 범위를 특정하는 기준들을 포함한다.
일부 실시예들에서, 전자 디바이스(101a)는 AR/VR 세션의 시작에서 디지털 오리진(912)을 선택한다. 예를 들어, 디지털 오리진(912)은 물리적 환경 내의 전자 디바이스(101a)의 포지션 및/또는 배향 및 3차원 환경(902) 내의 전자 디바이스(101a)의 포지션 및/또는 배향에 기초하여 선택된다. 일부 실시예들에서, 전자 디바이스(101a)는, 임계량의 시간(예를 들어, 10, 20, 30, 또는 45초 또는 1, 2, 3, 5, 10, 또는 15분) 동안 미리 결정된 포즈에 있지 않는 것으로부터 제1 사용자에 대한 미리 결정된 포즈로의 디스플레이 생성 컴포넌트(120a) 전환을 검출하는 것에 응답하여 디지털 오리진(912)을 설정 또는 재설정한다. 일부 실시예들에서, 미리 결정된 포즈는 사용자에 대한 거리들 및/또는 배향들의 범위이다. 예를 들어, 디스플레이 생성 컴포넌트(120a)가 웨어러블 디바이스이면, 디스플레이 생성 컴포넌트(120a)는 사용자가 디스플레이 생성 컴포넌트(120a)를 착용하고 있을 때 미리 결정된 포즈에 있다.
도 9b 및 도 9f에서 그리고 방법(1000)에 관해 아래에서 더 상세히 설명될 바와 같이, 일부 실시예들에서, 디지털 오리진이 무효화되는 다수의 상황들이 존재한다. 일부 실시예들에서, 디지털 오리진은 하나 이상의 무효화 기준들이 만족될 때 무효화된다. 예를 들어, 무효화 기준들은, 방법들(1000 및/또는 800)을 참조하여 설명된 하나 이상의 공간 기준들을 만족시키지 않는 디지털 오리진(912)에 대한 공간 관계들을 갖는 객체들(예를 들어, 사용자 인터페이스들(904a, 904b, 904c), 및 사용자(916a)의 시점)의 수에 관련된다. 다른 예로서, 무효화 기준들은 객체들이 하나 이상의 공간 기준들을 만족시키지 않는 정도, 및/또는 객체들 자체 사이의 공간 관계들에 관련된다. 예를 들어, 디지털 오리진(912)은, 하나 이상의 공간 기준들이 만족되지 않을 때 무효하고, 디지털 오리진(912)의 위치를 업데이트하는 것은 디지털 오리진이 그의 현재 위치에 유지되었다면 요구될 가상 객체들의 포지션들 및/또는 배향들의 적은 또는 최소 업데이트로 하나 이상의 공간 기준들을 만족시킬 것이다. 일부 실시예들에서, 전자 디바이스(101a)는 디지털 오리진(912)이 무효화될 때 디지털 오리진(912)의 위치를 즉시 업데이트한다. 일부 실시예들에서, 전자 디바이스(101a)는 3차원 환경(902a)을 재중심설정하라는 요청이 수신되지 않는 한 그리고 수신될 때까지 디지털 오리진(912)의 위치를 업데이트하지 않는다.
일부 실시예들에서, 전자 디바이스(101a)는 다양한 사용자 입력들에 응답하여 사용자 인터페이스들(904a, 906a, 908a)의 포지션들을 업데이트한다. 일부 실시예들에서, 사용자 인터페이스들(904a, 906a, 908a)은, 선택될 때, 전자 디바이스(101a)로 하여금 방법(800)을 참조하여 위에서 설명된 바와 같이 개개의 사용자 인터페이스(904a, 906a, 또는 908a)의 포지션 및/또는 배향을 업데이트하기 위한 프로세스를 개시하게 하는 개개의 선택가능 옵션들과 연관하여 디스플레이된다. 부가적으로, 일부 실시예들에서, 3차원 환경(902a) 내의 가상 객체들(예를 들어, 사용자 인터페이스들(904a, 906a, 908a), 제2 사용자(916b)의 표현, 및 제2 전자 디바이스(101b)의 표현)의 포지션들 및/또는 배향들을 함께 업데이트하라는 요청에 응답하여, 전자 디바이스(101a)는 다른 가상 객체들에 대한 가상 객체들의 공간 배열들을 업데이트하지 않으면서 사용자(916a)의 시점에 대한 가상 객체들의 포지션들 및/또는 배향들을 업데이트한다. 예를 들어, 전자 디바이스(101a)는 가상 객체들을 그룹으로서 함께 이동시킨다. 일부 실시예들에서, 전자 디바이스(101a)는, 선택될 때, 전자 디바이스(101a)로 하여금 가상 객체들의 포지션들 및/또는 배향들을 그룹으로서 업데이트하기 위한 프로세스를 개시하게 하는 선택가능 옵션을 디스플레이한다. 다른 예로서, 도 9a에 도시된 바와 같이, (예를 들어, 손들(913a, 913b)을 이용한) 양손 선택 입력을 검출하는 것에 응답하여, 전자 디바이스(101a)는 가상 객체들의 포지션들 및/또는 배향들을 그룹으로서 함께 업데이트하기 위한 프로세스를 개시한다. 예를 들어, 도 9a에 도시된 바와 같이, 전자 디바이스(101a)는 사용자가 (예를 들어, 적어도 임계 시간(예를 들어, 0.1, 0.2, 0.5, 1, 2, 또는 3초) 동안) 양손들(913a, 913b)을 이용하여 핀치 손 형상들(예를 들어, 엄지가 동일한 손의 다른 손가락을 터치하는 손 형상)을 만든다는 것을 검출한다. 일부 실시예들에서, 양손들(913a, 913b)을 이용한 핀치 손 형상들을 검출하는 것에 응답하여, 전자 디바이스(101a)는 핀치 손 형상들이 유지되는 동안 손들(913a, 913b)의 이동에 따라 가상 객체들의 포지션들 및/또는 배향들을 업데이트하기 위한 프로세스를 개시한다.
도 9b는 손들이 핀치 손 형상에 있는 동안 전자 디바이스(101a)가 손들(913a, 913b)의 이동의 시작을 검출하는 일 예를 예시한다. 일부 실시예들에서, 핀치 손 형상에서 손들(913a, 913b)의 이동의 시작을 검출하는 것에 응답하여(또는 일부 실시예들에서, 손들(913a, 913b)의 이동을 아직 검출하지 않으면서 손들(913a, 913b)의 핀치 손 형상들을 검출하는 것에 응답하여), 전자 디바이스(101a)는, 추가적인 입력이 전자 디바이스(101a)로 하여금 3차원 환경(902a) 내의 가상 객체들의 포지션들 및/또는 배향들을 업데이트하게 할 것이라는 것을 표시하기 위해 가상 객체들의 시각적 특성을 변경시키도록 가상 객체들(예를 들어, 사용자 인터페이스들(904a, 906a, 908a), 제2 사용자(916b)의 표현, 및 전자 디바이스(101b)의 표현)의 디스플레이를 업데이트한다. 예를 들어, 전자 디바이스(101a)는, 예를 들어 도 9a의 사용자 인터페이스들(904a, 906a, 908a) 및 제2 사용자(916b) 및 제2 전자 디바이스(101b)의 표현들의 반투명도 및/또는 흐릿함의 양에 비해, 양손 핀치 손 형상 및/또는 양손 핀치 손 형상에서의 손들(913a, 913b)의 이동을 검출하는 것에 응답하여 사용자 인터페이스들(904a, 906a, 908a) 및 제2 사용자(916b) 및 제2 전자 디바이스(101b)의 표현들의 반투명도 및/또는 흐릿함의 양을 증가시킨다. 일부 실시예들에서, 전자 디바이스(101a)는, 예컨대 사용자 인터페이스들(904a, 906a, 908a) 및 제2 사용자(916b) 및 제2 전자 디바이스(101b)의 표현들 이외의 3차원 환경(902a)의 영역들을 블러링 및/또는 디밍(dim) 및/또는 다크닝(darken)함으로써, 도 9b의 입력이 수신되고 있는 동안 사용자 인터페이스들(904a, 906a, 908a) 및 제2 사용자(916b) 및 제2 전자 디바이스(101b)의 표현들의 시각적 강조의 양을 증가시킨다. 일부 실시예들에서, 전자 디바이스(101a)가 핀치 손 형상들에서의 손들(913a, 913b)의 이동에 따라 사용자 인터페이스들(904a, 906a, 908a) 및 제2 사용자(916b) 및 제2 전자 디바이스(101b)의 표현들의 포지션들을 업데이트하는 동안, 전자 디바이스(101a)는 사용자 인터페이스들(904a, 906a, 908a) 및 제2 사용자(916b) 및 제2 전자 디바이스(101b)의 표현들의 증가된 반투명도 및/또는 흐릿함을 유지한다. 일부 실시예들에서, 제1 전자 디바이스(101a)가 양손 핀치 손 형상을 검출하는 동안, 제2 전자 디바이스(101b)는, 제2 전자 디바이스(101b)가 도 9a에서 제1 사용자(916a)의 표현 및 제1 전자 디바이스(101a)의 표현을 디스플레이했던 반투명도 및/또는 흐릿함의 양들에 비해 증가된 반투명도 및/또는 흐릿함으로 제1 사용자(916a)의 표현 및 제1 전자 디바이스(101a)의 표현을 디스플레이한다.
도 9b에 도시된 바와 같이, 제1 전자 디바이스(101a)는, 3차원 환경(902a) 내의 제1 사용자(916a)의 시점으로부터 멀어지는 이동에 대응하는, 제1 사용자(916a)의 신체로부터 멀어지는 방향으로의 손들(913a, 913b)의 이동을 검출한다. 도 9b에 예시된 입력에 응답하여, 전자 디바이스(101a)는 도 9c에 도시된 바와 같이, 사용자 인터페이스들(904a, 906a, 908a) 및 제2 사용자(916b) 및 제2 전자 디바이스(101b)의 표현들 중 2개 이상 사이의 공간 관계들을 변경시키지 않으면서 제1 사용자(916a)의 시점에 대해 사용자 인터페이스들(904a, 906a, 908a) 및 제2 사용자(916b) 및 제2 전자 디바이스(101b)의 표현들의 포지션들 및/또는 배향들을 업데이트한다.
도 9c는, 핀치 손 형상에 있는 동안 손들(913a, 913b)의 이동에 따라 사용자 인터페이스들(904a, 906a, 908a) 및 제2 사용자(916b) 및 제2 전자 디바이스(101b)의 표현들을 이동시키는 동안 제1 전자 디바이스(101a)에 의해 디스플레이된 3차원 환경(902a)을 제1 전자 디바이스(101a)가 어떻게 업데이트하는지를 예시한다. 예를 들어, 제1 전자 디바이스(101a)는, 사용자 인터페이스들(904a, 906a, 908a) 및 제2 사용자(916b) 및 제2 전자 디바이스(101b)의 표현들 사이의 공간 관계들을 유지하면서 사용자의 시점으로부터 멀어지도록 사용자 인터페이스들(904a, 906a, 908a) 및 제2 사용자(916b) 및 제2 전자 디바이스(101b)의 표현들의 포지션들을 업데이트한다. 일부 실시예들에서, 사용자 인터페이스들(904a, 906a, 908a) 및 제2 사용자(916b) 및 제2 전자 디바이스(101b)의 표현들이 제1 사용자(916a)의 시점에 대해 이동하는 양은 손들(913a, 913b)의 이동의 양에 대응한다. 사용자 인터페이스들(904a, 906a, 908a) 및 제2 사용자(916b) 및 제2 전자 디바이스(101b)의 표현들이 제1 사용자(916a)의 시점으로부터 이동하는 것으로 보이지만, 3차원 환경(906)의 평면도에 도시된 바와 같이, 사용자(916a)의 시점은 사용자 인터페이스들(904, 906, 908) 및 제2 사용자(916b) 및 제2 전자 디바이스(101b)의 표현들로부터 멀리 이동하고, 사용자 인터페이스들(904, 906, 908) 및 제2 사용자(916b) 및 제2 전자 디바이스(101b)의 표현들은 도 9b에 예시된 입력에 응답하여 3차원 환경(906) 내의 그들 개개의 위치들에 유지된다. 일부 실시예들에서, 제1 전자 디바이스(101a)가 도 9b에 예시된 입력을 수신하는 것에 응답하여, 제2 전자 디바이스(101b)는 도 9b에서와 같이 도 9c에서의 제2 사용자(916b)의 시점으로부터 3차원 환경(902b) 내의 동일한 위치들에서 사용자 인터페이스(904b, 908b)를 계속 디스플레이한다.
일부 실시예들에서, 제1 사용자(916a)의 시점에 대한 사용자 인터페이스들(904a, 906a, 908a) 및 제2 사용자(916b) 및 제2 전자 디바이스(101b)의 표현들의 포지션들 및/또는 배향들을 업데이트하기 위한 입력에 응답하여, 제1 전자 디바이스(101a)는 디지털 오리진(912)의 위치를 업데이트한다. 일부 실시예들에서, 제1 전자 디바이스(101a)는 하나 이상의 공간 기준들이 디지털 오리진의 업데이트된 위치에서 만족될 것이라는 결정에 따라 도 9b에 예시된 입력에 응답하여 디지털 오리진(912)의 위치를 업데이트한다. 예를 들어, 도 9c에 도시된 바와 같이, 제1 전자 디바이스(101a)는 3차원 환경(902) 내의 제1 사용자(916a)의 시점의 위치가 되도록 디지털 오리진(912)을 업데이트한다. 일부 실시예들에서, 디지털 오리진(912)의 업데이트된 위치는 사용자 인터페이스들(904a, 906a, 908a) 및 제2 사용자(916b) 및 제2 전자 디바이스(101b)의 표현들에 대한 하나 이상의 공간 기준들을 만족시킨다.
제1 전자 디바이스(101a)가 사용자 인터페이스들(904a, 906a, 908a) 및 제2 사용자(916b) 및 제2 전자 디바이스(101b)의 표현들의 포지션들 및/또는 배향들을 함께 업데이트하라는 요청에 대응하는 양손 입력을 검출하는 동안, 제2 전자 디바이스(101b)는, 예를 들어 증가된 반투명도 및/또는 흐릿함으로 제1 사용자(916a) 및 제1 전자 디바이스(101a)의 표현들을 계속 디스플레이한다. 일부 실시예들에서, 제2 전자 디바이스(101b)는, 제1 전자 디바이스(101a)가 사용자 인터페이스들(904a, 906a, 908a, 908a) 및 제2 사용자(916b) 및 제2 전자 디바이스(101b)의 표현들의 위치들을 함께 업데이트하기 위한 입력의 종료를 검출할 때까지, 제2 전자 디바이스(101b)가 제1 사용자(916a)의 표현 및 제1 전자 디바이스(101a)의 표현을 디스플레이하는 위치를 업데이트하지 않는다. 예를 들어, 입력의 종료를 검출하는 것은 사용자가 손들(913a, 913b) 중 하나 이상을 이용하여 핀치 손 형상을 만드는 것을 중지한다는 것을 검출하는 것을 포함한다. 도 9c에 도시된 바와 같이, 제1 전자 디바이스(101a)는 손들(913a, 913b)에 의해 제공되는 양손 핀치 입력의 계속을 검출한다. 도 9c에 예시된 입력의 계속에 응답하여, 전자 디바이스(101a)는, 핀치 손 형상에서의 손들(913a, 913b)의 계속된 이동에 따라 사용자 인터페이스들(904a, 906a, 908a) 및 제2 사용자(916b) 및 제2 전자 디바이스(101b)의 표현들과 제1 사용자(916a)의 시점들 사이의 공간 관계를 업데이트한다.
도 9d는 도 9c에 예시된 입력의 계속에 따라 제1 전자 디바이스(101a)가 3차원 환경(902a)을 어떻게 업데이트하는지의 일 예를 예시한다. 일부 실시예들에서, 전자 디바이스(101a)는 도 9c의 손들(913a, 913b)의 방향 및 이동의 양에 따라 3차원 환경(902) 내의 사용자(916a)의 시점에 대한 사용자 인터페이스들(904a, 906a, 908a) 및 제2 사용자(916b) 및 제2 전자 디바이스(101b)의 표현들의 포지션들을 업데이트한다. 예를 들어, 전자 디바이스(101a)는 사용자 인터페이스들(904a, 906a, 908a) 및 제2 사용자(916b) 및 제2 전자 디바이스(101b)의 표현들을 사용자의 시점으로부터 멀리 디스플레이하도록 3차원 환경(902a)을 업데이트한다. 3차원 환경(902)의 평면도에 도시된 바와 같이, 전자 디바이스(101a)는 3차원 환경(902) 내의 사용자 인터페이스들(904, 906, 908) 및 제2 사용자(916b) 및 제2 전자 디바이스(101b)의 표현들의 포지션들 및/또는 배향들을 업데이트하지 않으면서 3차원 환경(902) 내의 제1 사용자(916a)의 시점을 업데이트한다. 따라서, 제2 전자 디바이스(101b)는 선택적으로, 사용자 인터페이스들(904b, 908b)이 도 9c에 디스플레이되었던 위치들에서 사용자 인터페이스들(904b, 908b)을 계속 디스플레이한다.
일부 실시예들에서, 제2 전자 디바이스(101b)는, 제1 사용자(101a)의 시점에 대한 사용자 인터페이스들(904a, 906a, 908a) 및 제2 사용자(916b) 및 제2 전자 디바이스(101b)의 표현들의 포지션들 및/또는 배향들을 업데이트하기 위한 입력의 종료를 제1 전자 디바이스(101a)가 검출하는 것에 응답하여, 제1 사용자(916a)의 표현 및 제1 전자 디바이스(101a)의 표현의 포지션을 업데이트한다. 도 9d에 도시된 바와 같이, 제2 전자 디바이스(101b)는, 예를 들어 제1 전자 디바이스(101a) 및 제1 사용자(916a)의 표현들이 도 9c에 디스플레이되었던 반투명도 및/또는 흐릿함에 비해 감소된 반투명도 및/또는 흐릿함으로 그리고 업데이트된 위치들에서 제1 사용자(916a)의 표현들 및 제1 전자 디바이스(101a)의 표현을 디스플레이한다. 일부 실시예들에서, 제1 전자 디바이스(101a)가 도 9c에 예시된 입력의 종료를 검출하는 것에 응답하여, 제2 전자 디바이스(101b)는 제1 사용자(916a) 및 제1 전자 디바이스(101a)의 표현들의 포지션을 업데이트하는 애니메이션을 디스플레이한다. 일부 실시예들에서, 제1 전자 디바이스(101a)가 도 9c에 예시된 입력의 종료를 검출하는 것에 응답하여, 제2 전자 디바이스(101b)는 도 9c에 도시된 위치들에서 제1 사용자(916a) 및 제1 전자 디바이스(101a)의 표현들의 디스플레이를 중단하고, (예를 들어, "텔레포팅(teleporting)" 효과를 통해) 도 9d의 위치들에서 제1 사용자(916a) 및 제1 전자 디바이스(101a)의 표현들의 디스플레이를 개시한다.
일부 실시예들에서, 디지털 오리진(912)은, 제1 사용자(916a)가 사용자 인터페이스들(904a, 906a, 908a) 및 제2 사용자(916b) 및 제2 전자 디바이스(101b)의 표현들 중 하나 이상으로부터 임계 거리(예를 들어, 1, 2, 3, 5, 10, 또는 15 미터) 초과일 때 무효화된다. 도 9d에서, 예를 들어 가상 객체들 중 하나 이상이 제1 사용자(916a)의 시점으로부터 임계 거리 초과이도록 제1 사용자(916a)의 시점에 대한 사용자 인터페이스들(904a, 906a, 908a) 및 제2 사용자(916b) 및 제2 전자 디바이스(101b)의 표현들의 포지션들을 제1 사용자(916a)가 업데이트하는 것으로 인해, 디지털 오리진(912)이 무효화된다는 것을 표시하기 위해, 디지털 오리진(912)은 파선들로 예시된다. 일부 실시예들에서, (예를 들어, 하나 이상의 애플리케이션들을 개별적으로 이동시킴으로써) 3차원 환경(902) 내의 사용자의 시점으로부터 멀리 사용자 인터페이스들(904a, 908a) 및 제2 사용자(916b) 및 제2 전자 디바이스(101b)의 표현들 중 하나 이상을 제2 사용자(916b)가 이동시키는 것에 응답하여, 사용자 인터페이스들(904a, 906a, 908a) 및 제2 사용자(916b) 및 제2 전자 디바이스(101b)의 표현들 중 하나 이상이 제1 사용자(916a)의 시점으로부터 임계 거리 초과보다 멀리 있을 때, 디지털 오리진(912)은 무효화된다.
일부 실시예들에서, 도 9d에 도시된 바와 같이, 제1 사용자(101a)의 시점으로부터 멀리 사용자 인터페이스들(904a, 906a, 908a) 및 제2 사용자(916b) 및 제2 전자 디바이스(101b)의 표현들을 이동시키는 것은 방법(800)을 참조하여 위에서 설명된 하나 이상의 공간 기준들이 더 이상 만족되지 않게 한다. 일부 실시예들에서, 하나 이상의 공간 기준들이 더 이상 만족되지 않는 것에 응답하여, 제1 전자 디바이스(101a)는, 선택될 때, 제1 전자 디바이스(101a)로 하여금 방법(800)의 하나 이상의 단계들에 따라 3차원 환경(902a)을 재중심설정하게 하는 선택가능 옵션(914a)을 디스플레이한다. 일부 실시예들에서, 디지털 오리진(912)이 무효하기 때문에, 옵션(914a)의 선택을 검출하는 것에 응답하여, 전자 디바이스(101a)는 디지털 오리진(912)을 업데이트하고, 업데이트된 디지털 오리진(912)에 기초하여 3차원 환경(902a)을 재중심설정한다. 일부 실시예들에서, 제1 전자 디바이스(101a)는 3차원 환경(902) 내의 객체들의 포지션들 및/또는 배향들 및 방법들(800 및/또는 1000)을 참조하여 설명된 하나 이상의 공간 기준들에 기초하여 디지털 오리진(912)에 대한 새로운 위치를 선택한다.
일부 실시예들에서, 디지털 오리진(912)은, 하나 이상의 사용자들이 3차원 환경(902)에서 임계량(예를 들어, 1, 2, 3, 5, 10, 15, 또는 25 미터) 초과만큼 이동하는 것에 응답하여 무효화된다. 예를 들어, 도 9d에서, 제2 사용자(916b)는 스스로를 그리고/또는 전자 디바이스(101b)를 이동시켜, 3차원 환경(902) 내의 제2 사용자(916b)의 위치가 도 9e에 도시된 바와 같이 업데이트되는 것을 초래한다. 제2 사용자(916b)가 이러한 방식으로 3차원 환경(902) 내의 그들의 포지션을 업데이트하는 것에 응답하여, 디지털 오리진(912)이 무효화된다. 도 9e는, 일부 실시예들에서, 디지털 오리진(912)이 무효화된 것에 응답하여, 전자 디바이스(101a)가 디지털 오리진(1912)을 업데이트할 것(예를 들어, 옵션(914a)의 선택)을 요청하는 사용자 입력을 수신하지 않으면서 전자 디바이스(101a)가 디지털 오리진(912)에 대한 새로운 위치를 어떻게 자동으로 선택하는지를 예시한다. 예를 들어, 제1 사용자(916a)가 디지털 오리진(912)의 그들의 시점을 업데이트하기 위해 3차원 환경(902a)을 재중심설정하면, 사용자들(916a, 916b) 둘 모두가 제1 애플리케이션의 사용자 인터페이스(904)의 동일한 측(예를 들어, 방법(800)을 참조하여 위에서 설명된 바와 같은 공유 콘텐츠 애플리케이션) 상에 그리고 제3 애플리케이션의 사용자 인터페이스(908)의 대향 측들(예를 들어, 방법(800)을 참조하여 위에서 설명된 바와 같은 공유 활동 애플리케이션) 상에 있도록 하는 위치에, 업데이트된 디지털 오리진(912)이 위치된다.
도 9e에 도시된 바와 같이, 제2 사용자(916b)가 3차원 환경(902b) 내의 그들의 시점을 업데이트하는 것에 응답하여, 제2 전자 디바이스(101b)는 제2 사용자(916b)의 시점에 대한 사용자 인터페이스들(904b, 908b)의 포지션들 및/또는 배향들을 업데이트하고, 제1 전자 디바이스(101a)는 제2 사용자(916b) 및 제2 전자 디바이스(101b)의 표현들의 디스플레이를 중지하는데, 그 이유는 제2 사용자(916b)가 제1 전자 디바이스(101a)의 시야에 더 이상 있지 않기 때문이다.
일부 실시예들에서, 도 9f 및 도 9g를 참조하여 아래에서 설명될 바와 같이, 제1 전자 디바이스(101a)는 애플리케이션을 제2 전자 디바이스(101b)와 공유하라는 요청에 응답하여 디지털 오리진(912)을 무효화한다. 도 9f에서, 제1 전자 디바이스(101a)는 제1 전자 디바이스(101a)에 액세스가능하지만 제2 전자 디바이스(101b)에 액세스가능하지 않은 제4 애플리케이션의 사용자 인터페이스(918a)를 포함하는 3차원 환경(902a)을 디스플레이한다. 제4 애플리케이션의 사용자 인터페이스(918)가 제2 전자 디바이스(101b)에 액세스가능하지 않기 때문에, 제2 전자 디바이스(101b)는 제4 애플리케이션의 사용자 인터페이스(918)를 디스플레이하지 않으면서 제1 사용자(916a) 및 제1 전자 디바이스(101a)의 표현들을 디스플레이하지만, 도 9f는 제4 애플리케이션이 제2 전자 디바이스(101b)에 액세스가능했다면 제4 애플리케이션의 사용자 인터페이스(918)가 디스플레이될 위치(918b)를 예시한다. 도 9f는 또한 제1 전자 디바이스(101a)와 연관된 디지털 오리진(912)을 예시한다. 일부 실시예들에서, 도 9f의 디지털 오리진(912)의 위치는, 제4 애플리케이션의 사용자 인터페이스(918a) 및 제2 사용자(916b)의 표현이 하나 이상의 공간 기준들을 만족시키는 위치들 및 배향들에 있기 때문에 유효하다. 일부 실시예들에서, 공간 기준들은, 제2 전자 디바이스(101b)가 제4 애플리케이션에 대한 액세스를 갖지 않기 때문에, 제2 사용자(916b)가 제4 애플리케이션의 사용자 인터페이스(918)의 방해받지 않은 뷰를 가질 것을 요구하지 않는다.
도 9f에 도시된 바와 같이, 제1 전자 디바이스(101a)는, 선택될 때, 제1 전자 디바이스(101a)로 하여금 제4 애플리케이션을 제2 전자 디바이스(101b)와 공유하게 하는 선택가능 옵션(920)의 (예를 들어, 손(913a)을 통한) 선택을 검출한다. 일부 실시예들에서, 선택 입력은 방법(800)을 참조하여 위에서 설명된 바와 같이, 직접 선택 입력, 간접 선택 입력, 에어 제스처 선택 입력, 또는 입력 디바이스를 사용하는 선택 입력 중 하나이다. 입력에 응답하여, 제1 전자 디바이스(101a)는 도 9g에 도시된 바와 같이 제4 애플리케이션의 사용자 인터페이스(918)를 제2 전자 디바이스(101b)에 액세스가능하게 만든다.
도 9g는 도 9f에서 제1 전자 디바이스(101a)에 의해 검출된 제4 애플리케이션을 공유하기 위한 입력에 응답하여 제2 전자 디바이스(101b)가 제4 애플리케이션의 사용자 인터페이스(918b)를 디스플레이하는 것을 예시한다. 도 9f에 예시된 입력에 응답하여, 제1 전자 디바이스(101a)는 디지털 오리진(912)을 무효화한다. 도 9g는, 제1 전자 디바이스(101a)가 3차원 환경(902a)을 재중심설정했다면, 제1 전자 디바이스(101a)가 제1 사용자(101a)의 시점을 이동시킬 디지털 오리진(912)의 업데이트된 위치를 예시한다. 일부 실시예들에서, 제1 전자 디바이스(101a)와 연관된 디지털 오리진(912)은, 제1 사용자의 표현들(916a)이 제2 사용자(916b)의 뷰로부터 제4 애플리케이션의 사용자 인터페이스(918b)를 막기 때문에 제4 애플리케이션의 사용자 인터페이스(918)를 공유하라는 요청에 응답하여 무효화된다.
도 9a 내지 도 9g에 예시된 실시예들에 관한 부가적인 또는 대안적인 세부사항들은 도 10a 내지 도 10k를 참조하여 설명된 방법(1000)의 아래의 설명에서 제공된다.
도 10a 내지 도 10k는 일부 실시예들에 따른, 다수의 가상 객체들의 포지션들을 함께 업데이트하는 방법을 예시하는 흐름도이다. 일부 실시예들에서, 방법(1000)은, 디스플레이 생성 컴포넌트(예를 들어, 도 1, 도 3, 및 도 4의 디스플레이 생성 컴포넌트(120))(예를 들어, 헤드업 디스플레이, 디스플레이, 터치스크린, 프로젝터 등) 및 하나 이상의 카메라들(예를 들어, 사용자의 손을 하향으로 포인팅하는 카메라(예를 들어, 컬러 센서들, 적외선 센서들, 및 다른 깊이 감지 카메라들) 또는 사용자의 머리로부터 전방으로 향하는 카메라)을 포함하는 컴퓨터 시스템(예를 들어, 도 1의 컴퓨터 시스템(101))에서 수행된다. 일부 실시예들에서, 방법(1000)은, 비일시적 컴퓨터 판독가능 저장 매체에 저장되며 컴퓨터 시스템의 하나 이상의 프로세서들, 예컨대 컴퓨터 시스템(101)의 하나 이상의 프로세서들(202)(예를 들어, 도 1a의 제어 유닛(110))에 의해 실행되는 명령어들에 의해 관리된다. 방법(1000) 내의 일부 동작들은 선택적으로 조합되고 그리고/또는 일부 동작들의 순서는 선택적으로 변경된다.
일부 실시예들에서, 방법(1000)은 디스플레이 생성 컴포넌트 및 하나 이상의 입력 디바이스들과 통신하는 전자 디바이스(예를 들어, 모바일 디바이스(예를 들어, 태블릿, 스마트폰, 미디어 플레이어, 또는 웨어러블 디바이스), 또는 컴퓨터)에서 수행된다. 일부 실시예들에서, 디스플레이 생성 컴포넌트는 전자 디바이스와 통합된 디스플레이(선택적으로 터치 스크린 디스플레이), 사용자 인터페이스를 투영하거나 사용자 인터페이스로 하여금 하나 이상의 사용자들에게 보이게 하기 위한 외부 디스플레이, 예컨대 모니터, 프로젝터, 텔레비전, 또는 하드웨어 컴포넌트(선택적으로 통합형 또는 외부) 등이다. 일부 실시예들에서, 하나 이상의 입력 디바이스들은 사용자 입력을 수신(예를 들어, 사용자 입력을 캡처, 사용자 입력을 검출 등)하고 사용자 입력과 연관된 정보를 전자 디바이스에 송신할 수 있는 전자 디바이스 또는 컴포넌트를 포함한다. 입력 디바이스들의 예들은 터치 스크린, 마우스(예를 들어, 외장형), 트랙패드(선택적으로, 통합형 또는 외장형), 터치패드(선택적으로, 통합형 또는 외장형), 원격 제어 디바이스(예를 들어, 외장형), 다른 모바일 디바이스(예를 들어, 전자 디바이스로부터 분리됨), 핸드헬드 디바이스(예를 들어, 외장형), 제어기(예를 들어, 외장형), 카메라, 깊이 센서, 눈 추적 디바이스, 및/또는 모션 센서(예를 들어, 손 추적 디바이스, 손 모션 센서) 등을 포함한다. 일부 실시예들에서, 전자 디바이스는 손 추적 디바이스(예를 들어, 하나 이상의 카메라들, 깊이 센서들, 근접 센서들, 터치 센서들(예를 들어, 터치 스크린, 트랙패드))와 통신한다. 일부 실시예들에서, 손 추적 디바이스는 스마트 장갑과 같은 웨어러블 디바이스이다. 일부 실시예들에서, 손 추적 디바이스는, 원격 제어부 또는 스타일러스와 같은 핸드헬드 입력 디바이스이다.
일부 실시예들에서, 도 9b에서와 같이, 디스플레이 생성 컴포넌트(예를 들어, 120a)를 통해, 전자 디바이스(예를 들어, 101a)의 사용자(예를 들어, 916a)의 시점으로부터 3차원 환경(예를 들어, 902a)을 디스플레이하는 동안 - 3차원 환경(예를 들어, 902a)은 3차원 환경(예를 들어, 902a) 내의 사용자의 시점에 대해 제1 공간 배열로 제1 위치들에 복수의 가상 객체들(예를 들어, 904a, 906a)을 포함함 -, 전자 디바이스(예를 들어, 101)는 하나 이상의 입력 디바이스들을 통해, 복수의 가상 객체들(예를 들어, 904a, 906a) 중 하나 이상을 이동시키라는 요청에 대응하는 입력을 수신한다(1002a). 일부 실시예들에서, 방법(1000)을 참조하여 설명된 입력 및/또는 하나 이상의 입력들은 방법(800)을 참조하여 설명된 바와 같은 에어 제스처 입력들이다. 일부 실시예들에서, 3차원 환경은 애플리케이션 윈도우들, 운영 체제 요소들, 다른 사용자들의 표현들, 및/또는 전자 디바이스의 물리적 환경 내의 물리적 객체들의 표현들 및/또는 콘텐츠 항목과 같은 가상 객체들을 포함한다. 일부 실시예들에서, 물리적 객체들의 표현들은 디스플레이 생성 컴포넌트(예를 들어, 가상 또는 비디오 패스스루)를 통해 3차원 환경에서 디스플레이된다. 일부 실시예들에서, 물리적 객체들의 표현들은 디스플레이 생성 컴포넌트의 투명 부분(예를 들어, 진짜 또는 실제 패스스루)을 통한 가시적인 전자 디바이스의 물리적 환경 내의 물리적 객체들의 뷰들이다. 일부 실시예들에서, 전자 디바이스는 전자 디바이스의 물리적 환경 내의 전자 디바이스의 물리적 위치에 대응하는 3차원 환경 내의 위치에서 사용자의 시점으로부터 3차원 환경을 디스플레이한다. 일부 실시예들에서, 3차원 환경은 디바이스에 의해 보여질 수 있도록 생성되거나, 디스플레이되거나, 또는 달리 야기된다(예를 들어, 가상 현실(VR) 환경, 혼합 현실(MR) 환경, 또는 증강 현실(AR) 환경 등과 같은 컴퓨터 생성 현실(XR) 환경). 일부 실시예들에서, 입력을 수신하는 것은 사용자의 미리 정의된 부분(예를 들어, 손(들))에 의해 수행되는 미리 정의된 제스처를 검출하는 것을 포함한다. 일부 실시예들에서, 미리 정의된 제스처는, 사용자가 엄지로 손가락을 터치하고 손가락 및 엄지를 이격되게 이동시키는, 사용자의 하나 이상의 손들에 의해 수행되는 핀치 제스처이다. 예를 들어, 입력은 사용자가 양손들로 핀치 손 형상을 만들고, 양손들을 이동시켜, 전자 디바이스로 하여금 사용자의 손들의 이동에 따라 복수의 가상 객체들의 포지션들을 업데이트하게 하는 것을 포함한다. 일부 실시예들에서, 미리 정의된 제스처는, 하나 이상의 손가락들이 펴지고 하나 이상의 손가락들이 손바닥들을 향해 구부러진 가리키는 손 형상을 만드는 동안, 사용자가 그들의 손(들)을 미리 정의된 위치(예를 들어, 이동될 하나 이상의 사용자 인터페이스 요소들에 대응하는 위치, 입력이 지향되는 하나 이상의 사용자 인터페이스 요소들과 상이한 에어 제스처 사용자 인터페이스 요소에 대응하는 위치)로 이동시키는 누르기 제스처이다. 일부 실시예들에서, 복수의 가상 객체들 중 하나 이상을 이동시키기 위한 입력은 방법(1400)을 참조하여 설명된 객체 이동 입력들의 특성들 중 하나 이상을 갖는다.
일부 실시예들에서, 도 9c에서와 같이, 입력을 수신하는 것에 응답하여(1002b), 입력이 하나 이상의 제1 기준들을 만족시킨다는 결정에 따라(1002c)(예를 들어, 입력은 복수의 가상 객체들의 나머지로 지향되지 않으면서 복수의 가상 객체들의 개개의 객체로 지향됨), 전자 디바이스(예를 들어, 101)는 입력에 따라 복수의 가상 객체들의 개개의 객체(예를 들어, 904a)를 3차원 환경(예를 들어, 902a) 내의 제1 위치로부터 제1 위치와 상이한 제2 위치로 이동시키도록 3차원 환경(예를 들어, 902a)을 업데이트하며, 여기서 제2 위치의 개개의 객체(예를 들어, 904a)는 사용자(예를 들어, 916a)의 시점에 대한 제1 공간 배열과 상이한 사용자(예를 들어, 916a)의 시점에 대한 제2 공간 배열을 갖는다(1002d). 일부 실시예들에서, 입력은 3차원 환경 내의 개개의 객체의 위치를 변경시킨다. 일부 실시예들에서, 입력은 3차원 환경 내의 다른 가상 객체들에 대한 개개의 객체의 위치를 변경시킨다. 일부 실시예들에서, 입력은 사용자의 시점에 대한 3차원 환경 내의 개개의 객체의 위치를 변경시킨다. 일부 실시예들에서, 개개의 객체의 위치를 업데이트하는 것은 사용자의 시점으로부터의 가상 객체의 거리를 변경시키는 것을 포함한다. 일부 실시예들에서, 제2 개개의 위치는 입력을 제공하는 사용자의 미리 정의된 부분(예를 들어, 손(들))의 이동(예를 들어, 그의 속도, 지속기간, 거리 등)에 기초한다. 일부 실시예들에서, 하나 이상의 제1 기준들은, 전자 디바이스가 양손들이 아니라 사용자의 손들 중 하나로 수행되는 미리 정의된 제스처를 검출할 때 만족되는 기준을 포함한다. 일부 실시예들에서, 하나 이상의 제1 기준들은, 사용자 인터페이스 요소로 지향되는 입력에 응답하여, 전자 디바이스로 하여금 3차원 환경 내의 다른 가상 객체들을 이동시키지 않으면서 개개의 가상 객체를 이동시키기 위한 프로세스를 개시하게 하는 사용자 인터페이스 요소로 입력이 지향될 때 만족되는 기준을 포함한다.
일부 실시예들에서, 입력을 수신하는 것에 응답하여(1002b), 입력이 하나 이상의 제1 기준들을 만족시킨다는 결정에 따라(1002c)(예를 들어, 입력은 복수의 가상 객체들의 나머지로 지향되지 않으면서 복수의 가상 객체들의 개개의 객체로 지향됨), 전자 디바이스(예를 들어, 101)는 사용자의 시점에 대해 제1 공간 배열로 3차원 환경 내의 제1 위치들에 복수의 가상 객체들 중 하나 이상의 제2 객체들(예를 들어, 도 9c의 906a)을 유지한다(1002e). 일부 실시예들에서, 입력은 전자 디바이스로 하여금 3차원 환경 내의 다른 가상 객체들의 위치들을 유지하게 한다. 일부 실시예들에서, 입력은 전자 디바이스로 하여금 사용자의 시점에 대해 다른 가상 객체들의 위치들을 유지하게 한다. 일부 실시예들에서, 입력은 전자 디바이스로 하여금 다른 제2 객체들에 대해 각각의 제2 객체의 위치들을 유지하게 한다.
일부 실시예들에서, 도 9c에서와 같이, 입력을 수신하는 것에 응답하여(1002b), 입력이 하나 이상의 제2 기준들을 만족시킨다는 결정에 따라(예를 들어, 입력은 복수의 가상 객체들로 지향됨), 전자 디바이스(예를 들어, 101)는 입력에 따라 3차원 환경(예를 들어, 902a)에서 복수의 가상 객체들(예를 들어, 904a, 906a)을 이동시키도록 3차원 환경(예를 들어, 902a)을 업데이트하며, 여기서 이동 이후, 복수의 가상 객체들(예를 들어, 904a, 906a)은 사용자(예를 들어, 916a)의 시점에 대한 제1 공간 배열과 상이한 사용자(예를 들어, 916a)의 시점에 대한 제3 공간 배열을 갖는다(1002f). 일부 실시예들에서, 하나 이상의 제2 기준들은, 전자 디바이스가 사용자의 손들 둘 모두로 수행되는 미리 정의된 제스처를 검출할 때 만족되는 기준을 포함한다. 일부 실시예들에서, 하나 이상의 제2 기준들은, 사용자 인터페이스 요소로 지향되는 입력에 응답하여, 전자 디바이스로 하여금 3차원 환경 내의 복수의 가상 객체들을 이동시키기 위한 프로세스를 개시하게 하는 사용자 인터페이스 요소로 입력이 지향될 때 만족되는 기준을 포함한다. 일부 실시예들에서, 입력은 전자 디바이스로 하여금 3차원 환경 내의 복수의 가상 객체들의 위치들을 업데이트하게 한다. 일부 실시예들에서, 입력은 전자 디바이스로 하여금 사용자의 시점에 대해 가상 객체들의 위치들을 업데이트하게 한다. 일부 실시예들에서, 입력 동안 그리고/또는 입력에 응답하여(예를 들어, 복수의 요소들이 입력에 기초하여 함께 이동하고 있는 동안 그리고/또는 그 이후) 가상 객체들 중 하나 이상(예를 들어, 모두)은 서로 및/또는 다른 가상 객체들에 대한 공간 관계들을 유지한다. 일부 실시예들에서, 전자 디바이스가 제2 사용자를 갖는 그리고/또는 그와 연관된 제2 전자 디바이스와 통신하면, 전자 디바이스는 3차원 환경 내의 가상 객체들의 위치들을 유지하고, 3차원 환경 내의 사용자의 시점의 위치를 업데이트하여, 사용자의 시점에 대한 가상 객체들의 공간 배향은 제2 사용자의 시점에 대한 가상 객체들의 위치들을 변경시키지 않으면서 업데이트된다.
입력이 하나 이상의 제2 기준들을 만족시킨다는 결정에 따라 복수의 객체들을 이동시키도록 3차원 환경을 업데이트하는 것은 하나의 입력에 응답하여 다수의 가상 객체들을 이동시키는 데 필요한 입력들을 감소시킴으로써 전자 디바이스와의 사용자 상호작용들을 향상시키며, 그에 의해, 사용자가 전자 디바이스를 신속하고 효율적으로 사용할 수 있게 한다.
일부 실시예들에서, 도 9c에서와 같이, 입력을 수신하는 것에 응답하여 그리고 입력이 하나 이상의 제2 기준들을 만족시킨다는 결정에 따라, 입력에 따라 3차원 환경(예를 들어, 902a)에서 복수의 가상 객체들(예를 들어, 904a, 906a)을 이동시키도록 3차원 환경(예를 들어, 902a)을 업데이트하는 것은, 입력의 방향 및 크기에 기초하여, 복수의 가상 객체들 중 제1 가상 객체(예를 들어, 904a)를 개개의(예를 들어, 측방향, 각도) 양만큼 그리고 개개의(예를 들어, 측방향, 각도) 방향으로 이동시키고, 복수의 가상 객체들 중 제2 가상 객체(예를 들어, 906a)를 개개의 양만큼 그리고 개개의 방향으로 이동시키는 것을 포함한다(1004). 일부 실시예들에서, 복수의 가상 객체들을 이동시킬 때, 가상 객체들은 다른 가상 객체들에 대해 개개의 공간 배향을 유지하고, 사용자의 시점에 대해 상이한 공간 배열로 디스플레이된다. 예를 들어, 복수의 가상 객체들을 제1 양만큼 제1 방향으로 이동시키기 위한 입력에 응답하여, 전자 디바이스는 제1 가상 객체 및 제2 가상 객체를 3차원 환경에서 제1 양만큼 제1 방향으로 이동시킨다. 다른 예로서, 복수의 객체들을 제2 양만큼 제2 방향으로 회전시키기 위한 입력에 응답하여, 전자 디바이스는 제1 가상 객체 및 제2 가상 객체를 (예를 들어, 3차원 환경 내의 개개의 기준 포인트 주위에서) 제2 양만큼 제2 방향으로 회전시키기 위해 제1 가상 객체 및 제2 가상을 이동시킨다.
입력을 수신하는 것에 응답하여 제1 및 제2 가상 객체들을 개개의 양만큼 개개의 방향으로 이동시키는 것은 복수의 가상 객체들의 포지션 및/또는 배향을 (예를 들어, 집합적으로) 조정하는 동안 복수의 가상 객체들의 개개의 공간 배열을 유지하는 효율적인 방식을 제공하며, 그에 의해, 사용자가 더 적은 입력들로 디바이스를 신속하고 효율적으로 사용할 수 있게 한다.
일부 실시예들에서, 도 9c에서와 같이, 하나 이상의 제2 기준들은, 입력을 수신하는 것이 하나 이상의 포즈 기준들을 만족시키는 포즈에서 사용자(예를 들어, 913a)의 제1 부분(예를 들어, 제1 손)을 검출하는 것 및 하나 이상의 포즈 기준들을 만족시키는 포즈에서 사용자(예를 들어, 913b)의 제2 부분(예를 들어, 제2 손)을 검출하는 것을 포함할 때 만족되는 기준을 포함한다(1006). 일부 실시예들에서, 하나 이상의 제2 기준들은, 하나 이상의 입력 디바이스들(예를 들어, 손 추적 디바이스)을 통해, 사용자가 양손들을 이용하여 핀치 손 형상들(예를 들어, 엄지를 동일한 손의 다른 손가락에 터치함)을 만든다는 것을 전자 디바이스가 검출할 때 만족되는 기준을 포함한다. 일부 실시예들에서, 사용자가 양손들을 이용하여 핀치 손 형상들을 만든다는 것을 검출하는 것에 응답하여, 전자 디바이스는 복수의 가상 객체들을 이동시키기 위한 프로세스를 개시하고, 핀치 손 형상들이 유지되는 동안 손들의 이동을 검출하는 것에 응답하여, 전자 디바이스는 손들 중 하나 이상의 손들의 이동(예를 들어, 그의 방향, 속도, 지속기간, 거리 등)에 따라 복수의 객체들을 이동시킨다. 일부 실시예들에서, (예를 들어, 양손들이 아니라) 하나의 손을 이용한 핀치 제스처를 검출하는 것을 포함하는, 개개의 가상 객체를 이동시키기 위한 사용자 인터페이스 요소로 지향되는 입력을 검출하는 것에 응답하여, 전자 디바이스는 (예를 들어, 복수의 가상 객체들을 이동시키지 않으면서) 개개의 가상 객체를 이동시키기 위한 프로세스를 개시한다.
하나 이상의 포즈 기준들을 만족시키는 포즈들에서 사용자의 제1 및 제2 부분들을 검출하는 것에 응답하여 복수의 객체들을 이동시키는 것은 다수의 가상 객체들의 포지션을 한번에 업데이트하는 효율적인 방식을 제공하며, 그에 의해, 사용자가 전자 디바이스를 신속하고 효율적으로 사용할 수 있게 한다.
일부 실시예들에서, 도 9a에서와 같이, 전자 디바이스(예를 들어, 101)가 입력을 수신하고 있지 않는 동안, 전자 디바이스(예를 들어, 101)는 디스플레이 생성 컴포넌트(예를 들어, 120a)를 통해, 제1 양의 시각적 강조들(예를 들어, 불투명도, 선예도, 컬러 콘트라스트, 크기 등)로 3차원 환경(예를 들어, 101a) 내의 복수의 가상 객체들(예를 들어, 904a, 906a)을 디스플레이한다(1008a). 일부 실시예들에서, 전자 디바이스가 입력을 수신하고 있지 않는 동안, 전자 디바이스는 풀 컬러, 불투명도, 및 선예도로 복수의 가상 객체들을 디스플레이한다. 일부 실시예들에서, 전자 디바이스가 입력을 수신하고 있지 않는 동안, 전자 디바이스는 3차원 환경의 나머지에 대해 제1 양의 시각적 강조로 복수의 가상 객체들을 디스플레이한다.
일부 실시예들에서, 도 9b에서와 같이, 입력을 수신하는 동안 입력이 하나 이상의 제2 기준들을 만족시킨다는 결정에 따라, 전자 디바이스(예를 들어, 101)는 디스플레이 생성 컴포넌트(예를 들어, 120a)를 통해, 제1 양의 시각적 강조보다 작은 제2 양의 시각적 강조(예를 들어, 불투명도, 선예도, 컬러 콘트라스트, 크기 등)로 3차원 환경(예를 들어, 902a) 내의 복수의 가상 객체들(예를 들어, 904a, 906a)을 디스플레이한다(1008db). 일부 실시예들에서, 전자 디바이스가 입력을 수신하고 있는 동안, 전자 디바이스는 감소된 불투명도 및/또는 선예도로 복수의 가상 객체들을 디스플레이하고, 그리고/또는 더 밝은 컬러들, 더 흐릿한 컬러들, 더 적은 포화도/콘트라스트를 갖는 컬러들 등과 같은 수정된 컬러들로 복수의 가상 객체들을 디스플레이한다. 일부 실시예들에서, 전자 디바이스가 입력을 수신하고 있는 동안, 전자 디바이스는 3차원 환경의 나머지에 대해 제1 양의 시각적 강조보다 작은 제2 양의 시각적 강조로 복수의 가상 객체들을 디스플레이한다.
입력이 수신되는 동안 복수의 객체들의 시각적 강조를 감소시키는 것은 가상 객체들의 포지션들을 업데이트하기 위한 입력을 수신하는 동안 복수의 가상 객체들에 근접한 그리고/또는 그들에 의해 중첩되는 3차원 환경의 부분들을 제시하는 효율적인 방식을 제공하며, 이는 복수의 가상 객체들의 포지션을 업데이트하기 위한 입력이 수신되는 동안 향상된 시각적 피드백을 제공함으로써 전자 디바이스와의 사용자 상호작용들을 향상시키고, 그에 의해, 사용자가 향상된 시각적 피드백으로 전자 디바이스를 신속하고 효율적으로 사용할 수 있게 한다.
일부 실시예들에서, 도 9b에서와 같이, 전자 디바이스(예를 들어, 101b)는 디스플레이 생성 컴포넌트(예를 들어, 120b)를 통해, 3차원 환경(예를 들어, 902b)에서 제2 전자 디바이스(예를 들어, 101a)의 제2 사용자(예를 들어, 916a)의 표현을 디스플레이한다(1010a). 일부 실시예들에서, 전자 디바이스 및 제2 전자 디바이스는 (예를 들어, 네트워크 연결을 통해) 서로 통신한다. 일부 실시예들에서, 전자 디바이스 및 제2 전자 디바이스는 3차원 환경에 대한 액세스를 갖는다. 일부 실시예들에서, 전자 디바이스는 제2 사용자의 시점에 대응하는 3차원 환경 내의 위치에서 제2 사용자의 표현을 디스플레이한다. 일부 실시예들에서, 제2 전자 디바이스는 전자 디바이스의 사용자의 시점에 대응하는 3차원 환경 내의 위치에서 전자 디바이스의 사용자의 표현을 디스플레이한다.
일부 실시예들에서, 도 9b에서와 같이, 제2 전자 디바이스(예를 들어, 101a)가 하나 이상의 제2 기준들을 만족시키는 개개의 입력(예를 들어, 제2 사용자의 시점의 관점에 대한 복수의 가상 객체들의 포지션들을 업데이트하기 위한 입력)을 검출하는 동안, 전자 디바이스(예를 들어, 101)는 디스플레이 생성 컴포넌트(예를 들어, 120a)를 통해, 제1 양의 시각적 강조(예를 들어, 불투명도, 선예도, 컬러 콘트라스트, 크기, 3차원 환경의 나머지에 대한 시각적 강조 등)로 제2 사용자(예를 들어, 916a)의 표현을 디스플레이한다(1010b). 일부 실시예들에서, 제2 전자 디바이스가 개개의 입력을 검출하는 동안, 전자 디바이스는, 제2 전자 디바이스가 개개의 입력을 검출하지 않는 동안 제2 사용자의 표현이 디스플레이되는 시각적 강조에 비해 감소된 시각적 강조로 제2 사용자의 표현을 디스플레이한다. 예를 들어, 제2 전자 디바이스가 개개의 입력을 검출하는 동안, 전자 디바이스는, 제2 전자 디바이스가 개개의 입력을 검출하지 않는 동안 전자 디바이스가 제2 사용자의 표현을 디스플레이하는 방식과 비교하여 감소된 불투명도 및/또는 선예도로 그리고/또는 밝거나, 페이딩되거나, 다크닝되는 컬러들로, 그리고/또는 감소된 콘트라스트 및/또는 포화도로 제2 사용자의 표현을 디스플레이한다. 일부 실시예들에서, 전자 디바이스는 제2 전자 디바이스가 개개의 입력을 검출하는 동안 3차원 환경 내의 개개의 위치에 제2 사용자의 표현의 디스플레이를 유지한다. 일부 실시예들에서, 전자 디바이스는 제2 전자 디바이스에 의해 검출된 개개의 입력에 따라 제2 사용자의 표현을 이동시키는 동안 제1 양의 시각적 강조로 제2 사용자의 표현을 디스플레이한다. 예를 들어, 제2 전자 디바이스가 제2 사용자의 시점에 더 가깝게 복수의 가상 객체들을 이동시키라는 요청에 대응하는 입력을 검출하는 동안, 전자 디바이스는, 가상 객체들이 제2 사용자의 시점에 대해 이동하더라도, 사용자의 시점에 대한 가상 객체들의 이동을 디스플레이하지 않으면서 복수의 가상 객체들을 향해 이동하는 제2 사용자의 표현을 제1 양의 시각적 강조로 디스플레이한다. 일부 실시예들에서, 전자 디바이스는 제2 전자 디바이스로부터 개개의 입력의 표시를 수신한다.
일부 실시예들에서, 도 9a에서와 같이, 제2 전자 디바이스(예를 들어, 101a)가 하나 이상의 제2 기준들을 만족시키는 개개의 입력을 검출하지 않는 동안, 전자 디바이스(예를 들어, 101b)는 디스플레이 생성 컴포넌트(예를 들어, 120b)를 통해, 제1 양의 시각적 강조보다 큰 제2 양의 시각적 강조(예를 들어, 3차원 환경의 나머지에 대한 시각적 강조)로 제2 사용자(예를 들어, 916a)의 표현을 디스플레이한다(1010c). 일부 실시예들에서, 제2 전자 디바이스가 개개의 입력을 검출하고 있지 않는 동안, 전자 디바이스는 더 큰(또는 풀) 불투명도 및/또는 선예도로 그리고/또는 증가된 정도의 포화도로 제2 사용자의 표현을 디스플레이한다.
제2 전자 디바이스가 개개의 입력을 검출하는 동안 제2 사용자의 표현을 디스플레이하는 것은 제2 사용자가 개개의 입력을 제공하는 것에 관여된다는 것을 사용자에게 표시하는 효율적인 방식을 제공하며, 그에 의해, 사용자들 사이의 통신을 개선시키고, 사용자가 전자 디바이스를 신속하고 효율적으로 사용할 수 있게 한다.
일부 실시예들에서, 도 9a에서와 같이, 전자 디바이스(예를 들어, 101b)는 디스플레이 생성 컴포넌트(예를 들어, 120b)를 통해, 3차원 환경(예를 들어, 902b) 내의 제3 위치에서 제2 전자 디바이스의 제2 사용자(예를 들어, 916a)의 표현을 디스플레이한다(1012a). 일부 실시예들에서, 전자 디바이스 및 제2 전자 디바이스는 (예를 들어, 네트워크 연결을 통해) 서로 통신한다. 일부 실시예들에서, 전자 디바이스 및 제2 전자 디바이스는 3차원 환경에 대한 액세스를 갖는다. 일부 실시예들에서, 제3 위치는 제2 사용자의 시점의 3차원 환경 내의 위치이다. 일부 실시예들에서, 제2 전자 디바이스는 전자 디바이스의 사용자의 시점의 3차원 환경 내의 위치에서 전자 디바이스의 사용자의 표현을 디스플레이한다. 일부 실시예들에서, 전자 디바이스는 다른 사용자들의 시점들의 3차원 환경 내의 위치들에서 3차원 환경에 대한 액세스를 갖는 다른 사용자들의 부가적인 표현들을 디스플레이한다.
일부 실시예들에서, 도 9b에서와 같이, 3차원 환경(예를 들어, 902b) 내의 제3 위치에서 제2 사용자(예를 들어, 916a)의 표현을 디스플레이하는 동안, 전자 디바이스(예를 들어, 101b)는 제2 전자 디바이스(예를 들어, 101a)가 하나 이상의 제2 기준들을 만족시키는 개개의 입력을 수신했다는 표시를 수신한다(1012b). 일부 실시예들에서, 개개의 입력은 3차원 환경 내의 제2 사용자의 시점에 대한 가상 객체들의 포지션들을 업데이트하라는 요청에 대응하는, 제2 전자 디바이스에서 수신된 입력이다.
일부 실시예들에서, 도 9d에서와 같이, 표시에 응답하여, 전자 디바이스(예를 들어, 101b)는 디스플레이 생성 컴포넌트(예를 들어, 120b)를 통해, 개개의 입력에 따라 3차원 환경(예를 들어, 902b) 내의 제4 위치에서 제2 사용자(예를 들어, 916a)의 표현을, 제3 위치로부터 제4 위치로 이동하는 제2 사용자의 표현의 애니메이션을 디스플레이하지 않으면서 디스플레이한다(1012c). 일부 실시예들에서, 전자 디바이스는 제3 위치로부터 제4 위치로 "점프" 또는 "텔레포팅"하는 제2 사용자의 표현을 디스플레이한다. 일부 실시예들에서, 제4 위치는 제2 전자 디바이스에 의해 수신된 개개의 입력에 기초한다. 예를 들어, (예를 들어, 복수의 가상 객체들 주위의 경계 내부에서) 기준 포인트에 대해 시계방향으로 복수의 가상 객체들을 회전시키기 위한 개개의 입력에 응답하여, 개개의 입력의 표시에 응답하여, 전자 디바이스는 제3 위치로부터 복수의 가상 객체들 주위에서 반시계방향으로 제2 사용자의 표현의 위치를 제4 위치로 업데이트한다. 일부 실시예들에서, 전자 디바이스는 제2 전자 디바이스가 하나 이상의 제2 기준들을 만족시키는 입력의 종료를 검출할 때까지 3차원 환경 내의 제3 위치에서 제2 사용자의 표현을 디스플레이한다.
제3 위치로부터 제4 위치로 이동하는 제2 사용자의 표현의 애니메이션을 디스플레이하지 않으면서 제4 위치에서 제2 사용자의 표현을 디스플레이하는 것은, 감소된 산만으로 제2 사용자의 시점에 따라 제2 사용자의 표현을 업데이트하는 효율적인 방식을 제공하며, 그에 의해, 전자 디바이스와의 사용자 상호작용들을 향상시키고, 사용자가 전자 디바이스를 신속하고 효율적으로 사용할 수 있게 한다.
일부 실시예들에서, 하나 이상의 제2 기준들은, 입력이 디스플레이 생성 컴포넌트(예를 들어, 120a)를 통해 디스플레이되는 사용자 인터페이스 요소로 지향될 때 만족되고, 입력이 사용자 인터페이스 요소로 지향될 때, 전자 디바이스(예를 들어, 101a)로 하여금 입력에 따라 복수의 가상 객체들(예를 들어, 도 9a의 904a, 906a)을 이동시키게 하는 기준을 포함한다(1014). 일부 실시예들에서, 전자 디바이스는 또한, 하나 이상의 제1 기준들을 만족시키는 입력이 개개의 사용자 인터페이스 요소로 지향될 때, 전자 디바이스로 하여금 (예를 들어, 복수의 가상 객체들을 이동시키지 않으면서) 개개의 가상 객체를 이동시키게 하는, 복수의 가상 객체들의 개개의 가상 객체들과 연관된 개개의 사용자 인터페이스 요소들을 디스플레이한다. 일부 실시예들에서, 전자 디바이스로 하여금 복수의 가상 객체들을 이동시키게 하는 사용자 인터페이스 요소의 선택을 검출하는 것에 응답하여, 전자 디바이스는 복수의 가상 객체들을 이동시키기 위한 프로세스를 개시하고, 이동을 포함하는 추가적인 입력(예를 들어, 사용자의 개개의 부분의 이동, 다른 지향성 입력, 예컨대 지향성 버튼 또는 키와의 상호작용, 조이스틱의 조작 등)에 응답하여, 전자 디바이스는 이동에 따라 복수의 객체들을 이동시킨다. 일부 실시예들에서, 사용자 인터페이스 요소의 선택을 검출하는 것은 사용자 인터페이스 요소로 지향되는 사용자의 주의(예를 들어, 시선)를 검출하는 것, 및 (예를 들어, 손 추적 디바이스를 통해) 사용자가 위에서 설명된 핀치 손 형상을 만드는 것과 같이 사용자의 개개의 부분(예를 들어, 사용자의 손)을 이용하여 미리 정의된 제스처를 수행한다는 것을 검출하는 것을 포함한다. 일부 실시예들에서, 사용자 인터페이스 요소의 선택을 검출한 이후, 전자 디바이스는 사용자의 개개의 부분이 핀치 손 형상을 유지하는 동안 사용자의 개개의 부분(예를 들어, 사용자의 손)의 이동에 따라 복수의 가상 객체들을 이동시킨다. 일부 실시예들에서, 사용자 인터페이스 요소로 지향되는 입력을 검출하는 것은 사용자의 (2개의 손들이 아니라) 하나의 손에 의해 제공되는 입력을 검출하는 것을 포함한다.
개개의 사용자 인터페이스 요소로 지향되는 입력에 응답하여 복수의 가상 객체들을 이동시키는 것은 복수의 가상 객체들을 어떻게 이동시킬지를 사용자에게 교시하는 효율적인 방식을 제공하며, 그에 의해, 사용자가 전자 디바이스를 신속하고 효율적으로 사용할 수 있게 한다.
일부 실시예들에서, 입력이 하나 이상의 제2 기준들을 만족시킨다는 결정에 따라(1016a), 도 9b에서와 같이, 입력이 제1 크기의 이동을 포함한다는 결정에 따라, 전자 디바이스(예를 들어, 101)는 3차원 환경(예를 들어, 902a) 내의 복수의 가상 객체들(예를 들어, 904a, 906a)을 제2 양만큼 이동시킨다(1016b). 일부 실시예들에서, 제2 양의 이동(예를 들어, 속도, 지속기간, 거리)은 제1 크기의 이동(예를 들어, 속도, 지속기간, 거리)에 대응한다.
일부 실시예들에서, 입력이 하나 이상의 제2 기준들을 만족시킨다는 결정에 따라(1016a), 도 9c에서와 같이, 입력이 제1 크기의 이동과 상이한 제3 크기의 이동을 포함한다는 결정에 따라, 전자 디바이스(예를 들어, 101)는 3차원 환경(예를 들어, 902a) 내의 복수의 가상 객체들(예를 들어, 904a, 906a)을 제2 양과 상이한 제4 양만큼 이동시킨다(1016c). 일부 실시예들에서, 제4 양의 이동(예를 들어, 속도, 지속기간, 거리)은 제3 크기의 이동(예를 들어, 속도, 지속기간, 거리)에 대응한다. 일부 실시예들에서, 제1 크기의 이동이 제3 크기의 이동보다 크면, 제2 양은 제4 양보다 크다. 일부 실시예들에서, 제1 크기의 이동이 제3 크기의 이동보다 작으면, 제2 양은 제4 양보다 작다. 예를 들어, (예를 들어, 사용자의 손(들)의) 제1 크기의 이동이 (예를 들어, 사용자의 손(들)의) 제3 크기의 이동보다 빠른 이동, 또는 큰 거리 및/또는 지속기간을 갖는 이동을 포함하면, 제2 양은 제4 양보다 크다. 다른 예로서, (예를 들어, 사용자의 손(들)의) 제1 크기의 이동이 (예를 들어, 사용자의 손(들)의) 제3 크기의 이동보다 느린 이동, 또는 작은 거리 및/또는 지속기간을 갖는 이동을 포함하면, 제2 양은 제4 양보다 작다.
입력의 이동의 크기에 대응하는 양만큼 복수의 가상 객체들을 이동시키는 것은 사용자가 향상된 제어로 복수의 객체들의 이동의 양을 제어할 수 있게 하는 효율적인 방식을 제공하며, 그에 의해, 사용자가 전자 디바이스를 신속하고 효율적으로 사용할 수 있게 한다.
일부 실시예들에서, 복수의 가상 객체들(예를 들어, 도 9a의 904a, 906a) 중 하나 이상을 이동시키라는 요청에 대응하는 입력을 수신하기 전에, 전자 디바이스(예를 들어, 101a)는 디스플레이 생성 컴포넌트(예를 들어, 120a)를 통해, 복수의 가상 객체들(예를 들어, 904a, 906a)과 연관된 복수의 사용자 인터페이스 요소들을 디스플레이하며, 여기서 하나 이상의 제1 기준들은, 입력이 개개의 객체와 연관된 복수의 사용자 인터페이스 요소들의 개개의 사용자 인터페이스 요소로 지향될 때 만족되고, 입력이 개개의 사용자 인터페이스 요소로 지향될 때, 전자 디바이스로 하여금 3차원 환경(예를 들어, 902a)에서 복수의 가상 객체들의 개개의 객체를 이동시키기 위한 프로세스를 개시하게 하는 기준을 포함한다(1018). 일부 실시예들에서, 복수의 가상 객체들은 제1 가상 객체 및 제2 가상 객체를 포함한다. 일부 실시예들에서, 전자 디바이스는, 선택될 때, 전자 디바이스로 하여금 3차원 환경에서 제1 가상 객체를 이동시키기 위한 프로세스를 개시하게 하는 제1 선택가능 요소를 제1 가상 객체에 근접하게 디스플레이한다. 일부 실시예들에서, 전자 디바이스는, 선택될 때, 전자 디바이스로 하여금 3차원 환경에서 제2 가상 객체를 이동시키기 위한 프로세스를 개시하게 하는 제2 선택가능 요소를 제2 가상 객체에 근접하게 디스플레이한다. 일부 실시예들에서, 선택적으로 손이 제1 객체의 미리 정의된 임계 거리(예를 들어, 1, 2, 3, 5, 10, 15, 30, 50, 또는 100 센티미터) 내에 있는 동안, 선택적으로, 엄지가 손의 다른 손가락의 미리 정의된 임계 거리(예를 들어, 0.5, 1, 2, 3, 4, 또는 5 센티미터) 내에 있는 사전-핀치 손 형상 또는 하나 이상의 손가락들이 펴지고 하나 이상의 손가락들이 손바닥을 향해 구부러진 가리키는 손 형상과 같은 미리 정의된 형상에서 사용자의 개개의 부분(예를 들어, 손)을 검출하는 동안, 제1 가상 객체로 지향되는 사용자의 주의(예를 들어, 시선)를 검출하는 것에 응답하여, 전자 디바이스는 제1 선택가능 요소를 디스플레이한다. 일부 실시예들에서, 선택적으로 손이 제2 객체의 미리 정의된 임계 거리(예를 들어, 1, 2, 3, 5, 10, 15, 30, 50, 또는 100 센티미터) 내에 있는 동안, 선택적으로, 사전-핀치 손 형상 또는 가리키는 손 형상과 같은 미리 정의된 형상에서 사용자의 개개의 부분(예를 들어, 손)을 검출하는 동안, 제2 가상 객체로 지향되는 사용자의 주의(예를 들어, 시선)를 검출하는 것에 응답하여, 전자 디바이스는 제2 선택가능 요소를 디스플레이한다.
전자 디바이스로 하여금 개개의 가상 객체를 이동시키게 하기 위한 프로세스를 개시하게 하는 개개의 사용자 인터페이스 요소로 지향되는 입력에 응답하여 (예를 들어, 복수의 가상 객체들을 이동시키지 않으면서) 개개의 가상 객체를 이동시키는 것은 어느 가상 객체를 이동시킬지를 선택하는 효율적인 방식을 제공함으로써 전자 디바이스와의 사용자 상호작용들을 향상시키며, 그에 의해, 사용자가 전자 디바이스를 신속하고 효율적으로 사용할 수 있게 한다.
일부 실시예들에서, 3차원 환경(예를 들어, 902a)을 디스플레이하는 동안, 전자 디바이스(예를 들어, 101a)는 하나 이상의 입력 디바이스들을 통해, 디지털 오리진(예를 들어, 도 9d의 912)에 대한 하나 이상의 공간 기준들을 만족시키도록 3차원 환경(예를 들어, 902a)을 업데이트하라는 요청에 대응하는 입력(예를 들어, 예컨대 방법(800)을 참조하여 설명된 입력들)을 수신한다(1020a). 일부 실시예들에서, 요청은, 방법(800)의 하나 이상의 단계들에 따라 사용자의 현재 시점 및/또는 디지털 오리진에 대한 가상 객체들의 거리들의 범위 및/또는 배향들의 범위를 특정하는 하나 이상의 기준들을 만족시키기 위해 사용자의 현재 시점에 대한 복수의 가상 객체들의 공간 배열을 업데이트하라는 요청에 대응한다(예를 들어, 그 요청이거나 이를 포함함). 일부 실시예들에서, 디지털 오리진은, 전자 디바이스가 방법(800)의 하나 이상의 단계들에 따라 사용자의 현재 시점 및/또는 디지털 오리진에 대한 가상 객체들의 거리들의 범위 및/또는 배향들의 범위를 특정하는 하나 이상의 공간 기준들을 만족시키기 위해 사용자의 현재 시점에 대한 복수의 가상 객체들의 공간 배열을 업데이트하라는 요청에 응답하여 3차원 환경을 업데이트할 때, 복수의 가상 객체들에 대한 그리고/또는 사용자의 시점에 대한 하나 이상의 위치 및/또는 배향 기준들을 평가하기 위해 사용하는 3차원 환경 내의 위치에 위치된다. 일부 실시예들에서, 디지털 오리진 및 사용자의 시점은 3차원 환경 내의 동일한 위치에 위치된다. 일부 실시예들에서, 디지털 오리진 및 사용자의 시점은 3차원 환경 내의 상이한 위치들에 위치된다.
일부 실시예들에서, 입력에 응답하여, 전자 디바이스(예를 들어, 101a)는 디지털 오리진에 대한 하나 이상의 공간 기준들을 만족시키도록 3차원 환경(예를 들어, 902a)을 업데이트한다(1020b). 일부 실시예들에서, 디지털 오리진에 대한 하나 이상의 공간 기준들을 만족시키도록 3차원 환경을 업데이트하는 것은 하나 이상의 가상 객체들의 공간 배열을 업데이트하는 것 및/또는 방법(800)의 하나 이상의 단계들에 따라 사용자의 시점을 업데이트하는 것에 대응한다(예를 들어, 이들이거나 이들을 포함함). 일부 실시예들에서, 가상 객체들이 디지털 오리진에 대한 하나 이상의 기준들을 만족시키지만 사용자의 시점이 디지털 오리진에 대한 하나 이상의 기준들을 만족시키지 않으면, 전자 디바이스는 입력에 응답하여 사용자의 시점을 업데이트한다. 일부 실시예들에서, 사용자의 시점이 디지털 오리진에 대한 하나 이상의 기준들을 만족시키지만 하나 이상의 가상 객체들이 디지털 오리진에 대한 하나 이상의 기준들을 만족시키지 않으면, 전자 디바이스는 입력에 응답하여 하나 이상의 가상 객체들의 위치 및/또는 배향을 업데이트한다.
디지털 오리진에 대한 하나 이상의 공간 기준들을 만족시키도록 3차원 환경을 업데이트하는 것은, 사용자가 3차원 환경을 업데이트하라는 요청을 행할 때 일관된 경험을 제공함으로써 전자 디바이스와의 사용자 상호작용들을 향상시키며, 그에 의해, 사용자가 전자 디바이스를 신속하고 효율적으로 사용할 수 있게 한다.
일부 실시예들에서, 도 9a에서와 같이, 디지털 오리진(예를 들어, 912)은, 전자 디바이스(예를 들어, 101a)가 3차원 환경(예를 들어, 902a)을 디스플레이하는 것을 포함하는 증강 현실 또는 가상 현실 세션을 개시할 때 결정된다(1022). 일부 실시예들에서, 디지털 오리진은, 사용자에 대한 전자 디바이스 또는 디스플레이 생성 컴포넌트의 공간 배향이 미리 결정된 공간 배향이 된다는 것을 전자 디바이스가 검출할 때 결정된다. 예를 들어, 전자 디바이스 및/또는 디스플레이 생성 컴포넌트는 웨어러블 디바이스이고, 미리 결정된 공간 위치는 사용자가 전자 디바이스 및/또는 디스플레이 생성 컴포넌트를 몸에 걸치거나 그리고/또는 착용하고 있을 때이다. 일부 실시예들에서, 디지털 오리진은 초기에, (예를 들어, AR 또는 VR 세션이 시작될 때 또는 사용자에 대한 전자 디바이스 또는 디스플레이 생성 컴포넌트의 공간 배향이 초기에, 미리 결정된 공간 배향이 될 때) 사용자의 시점의 3차원 환경 내의 위치에 있다.
AR 또는 VR 세션이 시작될 때 디지털 오리진을 결정하는 것은 세션의 시작에서 기준 포인트를 확립함으로써 전자 디바이스와의 사용자 상호작용들을 향상시키며, 그에 의해, 일관된 경험을 사용자에게 제공하고, 사용자가 감소된 사용자 에러들로 전자 디바이스를 신속하고 효율적으로 사용할 수 있게 한다.
일부 실시예들에서, 도 9a에서와 같이, 하나 이상의 제2 기준들을 만족시키는 입력을 수신하기 전에, 디지털 오리진(예를 들어, 912)은 3차원 환경(예를 들어, 902a) 내의 제1 개개의 위치에 위치된다(1024a). 일부 실시예들에서, 디지털 오리진의 제1 개개의 위치는 VR 또는 AR 세션의 시작에서 선택된다. 일부 실시예들에서, 디지털 오리진의 제1 개개의 위치는 아래에서 더 상세히 설명되는 바와 같이, 디지털 오리진이 무효 상태를 갖는 동안 수신되는 하나 이상의 공간 기준들을 만족시키도록 3차원 환경을 업데이트하라는 요청에 응답하여 선택된 위치이다. 일부 실시예들에서, 디지털 오리진의 제1 개개의 위치는 아래에서 설명되는 바와 같이, 하나 이상의 제2 기준들을 만족시키는 이전의 입력에 응답하여 선택된 위치이다.
일부 실시예들에서, 도 9c에서와 같이, 하나 이상의 제2 기준들을 만족시키는 입력을 수신하는 것에 응답하여, 입력이 하나 이상의 제2 기준들을 만족시킨다는 결정에 따라, 전자 디바이스(예를 들어, 101a)는 3차원 환경(예를 들어, 902a) 내의 제1 개개의 위치와 상이한 제2 개개의 위치에 위치되도록 디지털 오리진(예를 들어, 912)을 업데이트한다(1024b). 일부 실시예들에서, 전자 디바이스는 입력이 수신될 때 존재했던 복수의 가상 객체들과 디지털 오리진 사이의 공간 관계를 유지하도록 디지털 오리진을 업데이트한다. 일부 실시예들에서, 전자 디바이스는 입력이 수신될 때 존재했던 복수의 가상 객체들과 디지털 오리진 사이의 공간 관계를 변경시키는 방식으로 디지털 오리진을 업데이트한다. 일부 실시예들에서, 사용자의 시점은 하나 이상의 기준들을 만족시키는 입력을 수신하는 것에 응답하여 이동하지 않는다. 일부 실시예들에서, 전자 디바이스는 3차원 환경 내의 사용자의 시점의 위치에 위치되도록 디지털 오리진을 업데이트한다. 일부 실시예들에서, 디지털 오리진의 위치를 업데이트한 이후, 방법(800)의 하나 이상의 단계들에 따라 디지털 오리진 및/또는 사용자의 시점에 대해 하나 이상의 공간 기준들을 만족시키라는 요청에 대응하는 입력을 수신하는 것에 응답하여, 전자 디바이스는 (예를 들어, 디지털 오리진의 위치에 위치되도록) 사용자의 시점을 업데이트한다.
하나 이상의 제2 기준들을 만족시키는 입력에 응답하여 디지털 오리진을 업데이트하는 것은 사용자에 의해 요청된 복수의 객체들의 업데이트된 공간 배열에 따라 가상 객체들 및 사용자의 시점의 공간 배향을 평가하는 데 사용되는 3차원 환경 내의 위치를 업데이트함으로써 전자 디바이스와의 사용자 상호작용들을 향상시키며, 그에 의해, 사용자가 전자 디바이스를 신속하고 효율적으로 사용할 수 있게 한다.
일부 실시예들에서, 도 9f에서와 같이, 3차원 환경(예를 들어, 902)이 제2 전자 디바이스(예를 들어, 101b)의 제2 사용자에 액세스가능한 동안(1026a), 전자 디바이스(예를 들어, 101a)는 디스플레이 생성 컴포넌트(예를 들어, 120a)를 통해, 디지털 오리진(예를 들어, 912)이 3차원 환경 내의 제1 개개의 위치에 위치되는 동안 전자 디바이스(예를 들어, 101a)에 액세스가능하지만 제2 전자 디바이스(예를 들어, 101b)에 액세스가능하지 않은 개개의 가상 객체(예를 들어, 918a)를 포함하는 3차원 환경(예를 들어, 101a) 내의 복수의 가상 객체들(예를 들어, 918a)을 디스플레이한다(1026b). 일부 실시예들에서, 제2 전자 디바이스는 개개의 가상 객체가 제2 전자 디바이스에 액세스가능하지 않는 동안 개개의 가상 객체를 디스플레이하지 않는다. 일부 실시예들에서, 개개의 가상 객체들, 사용자의 시점, 및 디지털 오리진 중 2개 이상 사이의 공간 관계들은 개개의 가상 객체가 제2 전자 디바이스에 액세스가능하지 않는 동안 하나 이상의 공간 기준들을 만족시킨다. 일부 실시예들에서, 개개의 가상 객체가 제2 전자 디바이스에 액세스가능했다면, 개개의 가상 객체들, 사용자의 시점, 디지털 오리진, 및 제2 전자 디바이스의 제2 사용자의 시점 중 2개 이상 사이의 하나 이상의 공간 관계들은 하나 이상의 공간 기준들을 만족시키지 않을 것이다. 일부 실시예들에서, 개개의 가상 객체가 전자 디바이스에 액세스가능하지만 제2 전자 디바이스에 액세스가능하지 않는 동안, 개개의 가상 객체는 (예를 들어, 사용자의) "개인" 객체이다.
일부 실시예들에서, 도 9f에서와 같이, 3차원 환경(예를 들어, 902)이 제2 전자 디바이스(예를 들어, 101b)의 제2 사용자에 액세스가능한 동안(1026a), 개개의 가상 객체(예를 들어, 918a)가 전자 디바이스(예를 들어, 101a)에 액세스가능하지만 제2 전자 디바이스(예를 들어, 101b)에 액세스가능하지 않고, 디지털 오리진(예를 들어, 912)이 3차원 환경(예를 들어, 902) 내의 제1 개개의 위치에 위치되는 동안, 전자 디바이스(예를 들어, 101)는 하나 이상의 입력 디바이스들(예를 들어, 314)을 통해, 개개의 가상 객체(예를 들어, 918a)를 전자 디바이스(예를 들어, 101a) 및 제2 전자 디바이스(예를 들어, 101b)에 액세스가능하게 만들라는 요청에 대응하는 입력을 수신한다(1026c).
일부 실시예들에서, 도 9g에서와 같이, 3차원 환경(예를 들어, 902)이 제2 전자 디바이스의 제2 사용자에 액세스가능한 동안(1026a), 개개의 객체(예를 들어, 918a)를 전자 디바이스(예를 들어, 101a) 및 제2 전자 디바이스(예를 들어, 101b)에 액세스가능하게 만들라는 요청에 대응하는 입력에 응답하여(1026d), 전자 디바이스(예를 들어, 101a)는 전자 디바이스(예를 들어, 101a) 및 제2 전자 디바이스(예를 들어, 101b)에 액세스가능하도록 개개의 가상 객체(예를 들어, 918a)를 업데이트한다(1026e). 일부 실시예들에서, 개개의 가상 객체가 전자 디바이스 및 제2 전자 디바이스에 액세스가능한 동안, 전자 디바이스는 디스플레이 생성 컴포넌트를 통해, 3차원 환경 내의 가상 객체를 디스플레이하고, 제2 전자 디바이스는 제2 전자 디바이스와 통신하는 제2 디스플레이 생성 컴포넌트를 통해 3차원 환경 내의 가상 객체를 디스플레이한다. 일부 실시예들에서, 개개의 가상 객체가 전자 디바이스 및 제2 전자 디바이스에 액세스가능한 동안, 개개의 가상 객체는 "공유" 객체이다.
일부 실시예들에서, 도 9g에서와 같이, 3차원 환경(예를 들어, 902)이 제2 전자 디바이스(예를 들어, 101b)의 제2 사용자에 액세스가능한 동안(1026a), 개개의 객체(예를 들어, 918)를 전자 디바이스(예를 들어, 101a) 및 제2 전자 디바이스(예를 들어, 101b)에 액세스가능하게 만들라는 요청에 대응하는 입력에 응답하여(1026d), 전자 디바이스(예를 들어, 101)는 개개의 가상 객체의 위치(예를 들어, 918a)(및/또는 제2 전자 디바이스와 연관된 3차원 환경의 제2 시점의 위치)에 따라 3차원 환경(예를 들어, 902) 내의 제1 개개의 위치와 상이한 제2 개개의 위치에 위치되도록 디지털 오리진(예를 들어, 912)을 업데이트한다(1026f). 일부 실시예들에서, 개개의 가상 객체들, 사용자의 시점, 디지털 오리진, 및 제2 전자 디바이스의 제2 사용자의 시점 중 2개 이상 사이의 하나 이상의 공간 관계들은 디지털 오리진이 제2 개개의 위치에 위치되는 동안 하나 이상의 공간 기준들을 만족시킨다. 일부 실시예들에서, 디지털 오리진은 전자 디바이스의 사용자의 시점과 연관되고, 제2 사용자의 시점은 디지털 오리진과 상이한 제2 디지털 오리진과 연관된다. 일부 실시예들에서, 디지털 오리진은 3차원 환경, 제1 사용자의 시점, 및 제2 사용자의 시점과 연관된다. 일부 실시예들에서, 전자 디바이스는 개개의 객체를 전자 디바이스 및 제2 전자 디바이스에 액세스가능하게 만들라는 요청에 대응하는 입력에 응답하여 사용자의 시점을 업데이트하지 않는다. 일부 실시예들에서, 디지털 오리진이 제2 개개의 위치에 있는 동안, 방법(800)의 하나 이상의 단계들에 따라 복수의 가상 객체들, 사용자의 시점, 및 디지털 오리진의 공간 배열을 업데이트하라는 요청에 대응하는 입력을 수신하는 것에 응답하여, 전자 디바이스는 (예를 들어, 제2 개개의 위치에 위치되도록) 사용자의 시점을 업데이트할 것이다. 일부 실시예들에서, 제1 전자 디바이스 및 제2 전자 디바이스 둘 모두가 방법(800)의 하나 이상의 단계들에 따라 복수의 가상 객체들, 사용자의 시점, 및 디지털 오리진의 공간 배열을 업데이트하라는 요청에 대응하는 입력들을 수신했다면, 사용자들 둘 모두의 시점들은 하나 이상의 공간 기준들을 만족시키도록 업데이트될 것이며, 그에 의해, 사용자들 둘 모두와의 상호작용 및 그들에 의한 개개의 가상 객체의 보기를 용이하게 하는 방식으로 사용자의 시점 및 개개의 가상 객체를 포지셔닝시킨다.
개개의 가상 객체를 제2 전자 디바이스에 액세스가능하게 만들기 위한 입력에 응답하여 디지털 오리진을 업데이트하는 것은 개개의 가상 객체를 제2 전자 디바이스와 공유하는 것과 호환가능한 3차원 환경 내의 기준 포인트를 확립하는 효율적인 방식을 제공하며, 그에 의해, 사용자가 전자 디바이스를 신속하고 효율적으로 사용할 수 있게 한다.
일부 실시예들에서, 도 9d에서와 같이, 사용자의 시점이 3차원 환경(예를 들어, 902) 내의 제1 시점이고, 디지털 오리진(예를 들어, 912)이 3차원 환경(예를 들어, 902) 내의 제1 개개의 위치에 위치되고, 3차원 환경(예를 들어, 902) 내의 제1 개개의 위치에서 유효 상태를 갖는(예를 들어, 디지털 오리진이 유효함) 동안, 전자 디바이스(예를 들어, 101b)는 하나 이상의 입력 디바이스들을 통해, 사용자의 시점을 3차원 환경 내의 제1 시점과 상이한 제2 시점으로 업데이트하라는 요청에 대응하는 입력을 수신한다(1028a). 일부 실시예들에서, 디지털 오리진은, 디지털 오리진, 하나 이상의 가상 객체들, 및 사용자의 시점 중 2개 이상 사이의 공간 배열(들)이 하나 이상의 공간 기준들을 만족시킬 때 유효 상태를 갖는다. 일부 실시예들에서, 하나 이상의 공간 기준들은, 디지털 오리진과 가상 객체들 및/또는 사용자의 시점 사이의 공간 관계들의 임계 수(예를 들어, 1, 2, 또는 3 및/또는 25%, 50%, 또는 75%)가 방법(800)을 참조하여 위에서 설명된 가상 객체들의 거리들의 범위 또는 배향들의 범위를 특정하는 하나 이상의 기준들을 만족시킬 때 만족되는 기준을 포함한다. 예를 들어, 디지털 오리진이 유효한지 여부를 결정하기 위한 기준들은 공간 관계들의 50%가 기준들을 만족시킬 때 만족되는 기준을 포함한다. 일부 실시예들에서, 디지털 오리진이 유효한 동안, 방법(800)을 참조하여 위에서 설명된 사용자의 현재 시점에 대한 가상 객체들의 거리들의 범위 또는 배향들의 범위를 특정하는 하나 이상의 기준들을 만족시키도록 3차원 환경을 업데이트하라는 요청에 대응하는 입력에 응답하여, 전자 디바이스는 디지털 오리진의 위치를 유지하고, 디지털 오리진에 따라 가상 객체들 및 사용자의 시점의 공간 관계를 업데이트한다.
일부 실시예들에서, 도 9e에서와 같이, 사용자의 시점을 3차원 환경(예를 들어, 902b) 내의 제2 시점으로 업데이트하라는 요청에 대응하는 입력에 응답하여(1028b), 전자 디바이스(예를 들어, 101b)는 디스플레이 생성 컴포넌트(예를 들어, 120b)를 통해, 제2 시점으로부터 3차원 환경(902b)을 디스플레이한다(1028c).
일부 실시예들에서, 도 9e에서와 같이, 사용자의 시점을 3차원 환경(예를 들어, 902b) 내의 제2 시점으로 업데이트하라는 요청에 대응하는 입력에 응답하여(1028b), 제2 시점이 제1 시점의 임계 거리 내에 있다는 결정에 따라, 전자 디바이스(예를 들어, 101)는 3차원 환경(예를 들어, 902b) 내의 제1 개개의 위치에서 디지털 오리진(예를 들어, 912)의 유효 상태를 유지한다(1028d).
일부 실시예들에서, 도 9e에서와 같이, 사용자의 시점을 3차원 환경 내의 제2 시점으로 업데이트하라는 요청에 대응하는 입력에 응답하여(1028b), 제2 시점이 제1 시점으로부터 임계 거리 초과라는 결정에 따라, 전자 디바이스(예를 들어, 101b)는 디지털 오리진(예를 들어, 912)의 상태를 무효 상태로 업데이트한다(1028e)(예를 들어, 디지털 오리진이 유효가 아니라고 결정함). 일부 실시예들에서, 디지털 오리진의 유효 상태를 무효 상태로 업데이트하는 것에 응답하여, 전자 디바이스는 디지털 오리진에 대해 (예를 들어, 디지털 오리진과 가상 객체들 및/또는 사용자의 시점 사이의 공간 관계들에 대한 하나 이상의 기준들에 따라) 3차원 환경 내의 새로운 위치를 선택한다. 일부 실시예들에서, 디지털 오리진이 유효하지 않는 동안, 전자 디바이스는, 방법(800)을 참조하여 위에서 설명된 사용자의 현재 시점에 대한 가상 객체들의 거리들의 범위 또는 배향들의 범위를 특정하는 하나 이상의 기준들을 만족시키도록 3차원 환경을 업데이트하라는 요청에 대응하는 입력을 수신할 때까지 디지털 오리진의 위치를 업데이트하지 않고, 이어서, 전자 디바이스는 디지털 오리진의 위치를 업데이트하고, 선택적으로, 업데이트된 디지털 오리진에 따라 가상 객체들 및 사용자의 시점의 공간 관계를 업데이트한다. 일부 실시예들에서, 디지털 오리진의 유효 상태에 대한 기준들은, 사용자의 시점이 임계 거리 내에 유지될 때 만족되고, 사용자의 시점이 임계 거리를 넘어 이동할 때 만족되지 않는 기준을 포함한다. 일부 실시예들에서, 전자 디바이스는, 제2 시점이 유효하지 않다는 결정에 따라 또는 디지털 오리진의 위치를 업데이트할 때 사용자의 시점을 업데이트하지 않는다. 일부 실시예들에서, 방법(800)의 하나 이상의 단계들에 따라 하나 이상의 공간 기준들에 따라 가상 객체들 및 사용자의 시점의 공간 배열을 업데이트하라는 요청에 대응하는 입력에 응답하여, 전자 디바이스는 업데이트된 디지털 오리진에 따라 사용자의 시점을 업데이트한다.
임계 거리를 초과하는 사용자의 시점의 이동에 응답하여 디지털 오리진을 무효화하는 것은 사용자의 업데이트된 시점에 따라 사용자 인터페이스를 업데이트하는 효율적인 방식을 제공하며, 이는 사용자가 3차원 환경에서 시점을 선택할 수 있게 함으로써 전자 디바이스와의 사용자 상호작용들을 향상시키고, 그에 의해, 사용자가 전자 디바이스를 신속하고 효율적으로 사용할 수 있게 한다.
일부 실시예들에서, 디스플레이 생성 컴포넌트(예를 들어, 120a)를 포함하는 디바이스(예를 들어, 및/또는 전자 디바이스)가 하나 이상의 포즈 기준들을 만족시키는 사용자의 개개의 부분(예를 들어, 사용자의 머리)에 대한 포즈에 있고(예를 들어, 사용자는 미리 결정된 방식으로 그들의 머리 상에 디스플레이 생성 컴포넌트를 착용하고 있음), 디지털 오리진(예를 들어, 도 9a에서와 같은 912)이 3차원 환경(예를 들어, 902) 내의 제1 개개의 위치에 위치되는 동안, 전자 디바이스(예를 들어, 101a)는 하나 이상의 포즈 기준들을 만족시키지 않는 사용자의 개개의 부분에 대한 포즈로의 디스플레이 생성 컴포넌트(예를 들어, 120a)의 이동을 검출한다(1030a). 일부 실시예들에서, 디스플레이 생성 컴포넌트(예를 들어, 및/또는 전자 디바이스)는 웨어러블 디바이스이고, 하나 이상의 포즈 기준들은 사용자가 그들의 머리 상에 디스플레이 생성 컴포넌트(예를 들어, 및/또는 전자 디바이스)를 착용하고 있을 때 만족된다. 일부 실시예들에서, 하나 이상의 포즈 기준들은, 사용자가 그들의 머리 상에 디스플레이 생성 컴포넌트(예를 들어, 및/또는 전자 디바이스)를 착용하고 있지 않거나, 또는 사용자가 그들의 머리 상에 디스플레이 생성 컴포넌트(예를 들어, 및/또는 전자 디바이스)를 착용하고 있지만 미리 결정된 포즈에서 그들의 얼굴의 전방에 있지 않을 때 만족되지 않는다.
일부 실시예들에서, 디스플레이 생성 컴포넌트(예를 들어, 120a)를 포함하는 디바이스가 하나 이상의 포즈 기준들을 만족시키지 않는 사용자의 개개의 부분에 대한 포즈에 있는 동안, 전자 디바이스(예를 들어, 101)는 하나 이상의 포즈 기준들을 만족시키는 사용자의 개개의 부분에 대한 포즈로의 디스플레이 생성 컴포넌트(예를 들어, 120a)의 이동을 검출한다(1030b). 일부 실시예들에서, 디스플레이 생성 컴포넌트(예를 들어, 및/또는 전자 디바이스)를 착용하지 않은 이후, 사용자는 하나 이상의 포즈 기준들을 만족시키는 포즈에서 디스플레이 생성 컴포넌트(예를 들어, 및/또는 전자 디바이스)를 착용하기 시작한다.
일부 실시예들에서, 하나 이상의 포즈 기준들을 만족시키는 사용자의 개개의 부분에 대한 포즈로의 디스플레이 생성 컴포넌트(예를 들어, 120)의 이동에 응답하여(1030c), 디스플레이 생성 컴포넌트(예를 들어, 120a)를 포함하는 디바이스가 미리 결정된 시간 임계치(예를 들어, 1, 2, 3, 5, 30, 또는 45초 또는 1, 2, 3, 5, 또는 10분)보다 작은 시간 동안 하나 이상의 포즈 기준들을 만족시키지 않는 사용자의 개개의 부분에 대한 포즈에 있었다는 결정에 따라, 전자 디바이스(예를 들어, 101a)는 3차원 환경(예를 들어, 902) 내의 제1 개개의 위치에 디지털 오리진(예를 들어, 도 9a에서와 같은 912)을 유지한다(1030d). 일부 실시예들에서, 전자 디바이스는 포즈가 미리 결정된 시간 임계치 미만 동안 하나 이상의 포즈 기준들을 만족시키지 않고, 사용자의 시점을 업데이트하지 않으면 디지털 오리진을 재설정하지 않는다.
일부 실시예들에서, 하나 이상의 포즈 기준들을 만족시키는 사용자의 개개의 부분에 대한 포즈로의 디스플레이 생성 컴포넌트(예를 들어, 120a)의 이동에 응답하여(1030c), 디스플레이 생성 컴포넌트(예를 들어, 120a)를 포함하는 디바이스가 미리 결정된 시간 임계치보다 큰 시간 동안 하나 이상의 포즈 기준들을 만족시키지 않는 사용자의 개개의 부분에 대한 포즈에 있었다는 결정에 따라, 전자 디바이스(예를 들어, 101a)는 디지털 오리진(예를 들어, 도 9a에서와 같은 912)을 3차원 환경(예를 들어, 902) 내의 제1 개개의 위치와 상이한 제2 개개의 위치로 업데이트한다(1030e). 일부 실시예들에서, 제2 개개의 위치는 사용자 및/또는 디스플레이 생성 컴포넌트(예를 들어, 및/또는 전자 디바이스)의 물리적 위치에 기초한 3차원 환경 내의 사용자의 시점의 위치와 연관된다(예를 들어, 그 위치이다). 일부 실시예들에서, 임계 시간 기간이 경과된 이후 사용자의 개개의 부분에 대한 포즈로의 디스플레이 생성 컴포넌트의 이동이 하나 이상의 기준들을 만족시킬 때 디지털 오리진이 제1 개개의 위치에서 여전히 유효하면, 전자 디바이스는 제1 개개의 위치에 디지털 오리진을 유지한다. 일부 실시예들에서, 디지털 오리진을 업데이트하는 것은 사용자의 시점을 업데이트하는 것을 포함하지 않는다. 일부 실시예들에서, 방법(800)의 하나 이상의 단계들에 따라 하나 이상의 공간 기준들에 따라 가상 객체들 및 사용자의 시점의 공간 배열을 업데이트하라는 요청에 대응하는 입력에 응답하여, 전자 디바이스는 업데이트된 디지털 오리진에 따라 사용자의 시점을 업데이트한다.
미리 결정된 시간 임계치 동안 포즈 기준들이 만족되지 않았을 때 포즈 기준들을 만족시키는 포즈로의 디스플레이 생성 컴포넌트의 이동에 응답하여 디지털 오리진을 업데이트하는 것은, 일단 디스플레이 생성 컴포넌트(예를 들어, 및/또는 전자 디바이스)의 포즈가 하나 이상의 포즈 기준들을 만족시키면 사용자가 3차원 환경을 업데이트할 수 있게 함으로써 전자 디바이스와의 사용자 상호작용들을 향상시키며, 그에 의해, 사용자가 전자 디바이스를 신속하고 효율적으로 사용할 수 있게 한다.
일부 실시예들에서, 도 9a에서와 같이, 사용자의 시점에 대해 제1 개개의 공간 배열로 복수의 가상 객체들(예를 들어, 904a, 906a)을 포함하는 3차원 환경(예를 들어, 902a)을 디스플레이하는 동안 - 제1 개개의 공간 배열은 사용자의 시점의 미리 정의된 임계 거리 내에 복수의 가상 객체들(예를 들어, 904a, 906a)을 디스플레이하는 것을 포함함 -, 그리고 디지털 오리진(예를 들어, 912)이 3차원 환경(예를 들어, 902a) 내의 제1 개개의 위치에 위치되고, 3차원 환경(예를 들어, 902a) 내의 제1 개개의 위치에서 유효 상태를 갖는 동안, 전자 디바이스(예를 들어, 101)는 사용자의 시점에 대해 복수의 가상 객체들(예를 들어, 904a, 906a)의 공간 배열을 업데이트하라는 요청에 대응하는 하나 이상의 입력들의 표시들을 검출한다(1032a). 일부 실시예들에서, 하나 이상의 입력들, 예컨대 방법(1400)을 참조하여 설명된 입력들은 하나 이상의 제1 기준들을 만족시키고, 하나 이상의 제2 기준들을 만족시키지 않는다(예를 들어, 하나 이상의 입력들은 가상 객체들의 포지션들을 개별적으로 업데이트하라는 요청들에 대응함).
일부 실시예들에서, 도 9d에서와 같이, 하나 이상의 입력들의 표시들을 검출하는 것에 응답하여, 전자 디바이스(예를 들어, 101)는 디스플레이 생성 컴포넌트(예를 들어, 120a)를 통해, 사용자의 시점에 대해 제2 개개의 공간 배열로 복수의 가상 객체들(예를 들어, 904a, 904b)을 디스플레이한다(1032b).
일부 실시예들에서, 도 9c에서와 같이, 제2 개개의 공간 배열이 사용자의 시점의 미리 정의된 임계 거리(예를 들어, 1, 2, 3, 5, 10, 15, 또는 30 미터) 내에 복수의 가상 객체들(예를 들어, 904a, 906a) 중 적어도 하나를 디스플레이하는 것을 포함한다는 결정에 따라, 전자 디바이스(예를 들어, 101)는 3차원 환경 내의 제1 개개의 위치에서 디지털 오리진의 유효 상태를 유지한다(1032c). 일부 실시예들에서, 디지털 오리진이 유효 상태를 갖는 동안, 방법(800)을 참조하여 위에서 설명된 하나 이상의 기준들을 만족시키도록 가상 객체들의 공간 배열을 업데이트하라는 요청에 응답하여, 전자 디바이스는 디지털 오리진의 제1 개개의 위치에 따라 3차원 환경을 업데이트한다. 일부 실시예들에서, 전자 디바이스는 제1 개개의 위치에 디지털 오리진을 유지할 때 사용자의 시점을 업데이트하지 않는다.
일부 실시예들에서, 도 9d에서와 같이, 제2 개개의 공간 배열이 사용자의 시점으로부터 미리 정의된 임계 거리 초과로 복수의 가상 객체들(예를 들어, 904a, 906a)을 디스플레이하는 것을 포함한다는 결정에 따라, 전자 디바이스(예를 들어, 101)는 무효 상태가 되도록 디지털 오리진의 상태를 업데이트한다(1032d). 일부 실시예들에서, 디지털 오리진이 무효 상태를 갖는 동안, 방법(800)을 참조하여 위에서 설명된 하나 이상의 기준들을 만족시키도록 가상 객체들의 공간 배열을 업데이트하라는 요청에 응답하여, 전자 디바이스는 디지털 오리진의 제2 개개의 위치에 따라 3차원 환경을 업데이트한다. 일부 실시예들에서, 제2 개개의 위치는 디지털 오리진의 유효 상태를 무효 상태로 업데이트하는 것에 응답하여 결정된다. 일부 실시예들에서, 제2 개개의 위치는 방법(800)을 참조하여 위에서 설명된 하나 이상의 기준들을 만족시키도록 가상 객체들의 공간 배열을 업데이트하라는 요청에 응답하여 결정된다.
복수의 객체들이 사용자로부터 미리 정의된 임계 거리 초과일 때 디지털 오리진을 무효화하는 것은, 업데이트된 디지털 오리진을 사용하여 사용자의 시점에 더 가깝게 가상 객체들을 디스플레이하도록 3차원 환경을 업데이트하는 효율적인 방식을 제공함으로써 전자 디바이스와의 사용자 상호작용들을 향상시키며, 그에 의해, 사용자가 전자 디바이스를 신속하고 효율적으로 사용할 수 있게 한다.
일부 실시예들에서, 도 9f에서와 같이, 디지털 오리진(예를 들어, 912)의 위치가 하나 이상의 디지털 오리진 기준들을 만족시키는 동안, 전자 디바이스(예를 들어, 101)는 3차원 환경 내의 제1 개개의 위치에 디지털 오리진(예를 들어, 912)을 유지한다(1034a). 일부 실시예들에서, 디지털 오리진 기준들은, 사용자의 시점이 임계 거리 초과로 이동하지 않는 것, 사용자의 시점이 하나 이상의 가상 객체들의 임계 거리 내에 있는 것, 및/또는 가상 객체들, 사용자의 시점, 및 디지털 오리진 중 2개 이상 사이의 공간 배열들에 관련된 다른 기준들과 같은 위에서 설명된 기준들 중 하나 이상을 포함한다. 일부 실시예들에서, 디지털 오리진이 제1 개개의 위치에 위치되는 동안 방법(800)의 하나 이상의 단계들에 따라 사용자의 시점에 대한 공간 배열을 업데이트하라는 요청에 응답하여, 전자 디바이스는 제1 개개의 위치에 위치된 디지털 오리진에 대한 하나 이상의 기준들을 만족시키도록 3차원 환경을 업데이트한다.
일부 실시예들에서, 도 9g에서와 같이, 디지털 오리진(예를 들어, 912)의 위치가 하나 이상의 디지털 오리진 기준들을 더 이상 만족시키지 않는다는 것을 검출하는 것에 응답하여, 전자 디바이스(예를 들어, 101)는 3차원 환경(예를 들어, 902) 내의 제1 개개의 위치와 상이한 제2 개개의 위치에 위치되도록 디지털 오리진(예를 들어, 912)을 업데이트하며, 여기서 제2 개개의 위치는 하나 이상의 디지털 오리진 기준들을 만족시킨다(1034b). 일부 실시예들에서, 디지털 오리진이 제2 개개의 위치에 위치되는 동안 방법(800)의 하나 이상의 단계들에 따라 사용자의 시점에 대한 공간 배열을 업데이트하라는 요청에 응답하여, 전자 디바이스는 제2 개개의 위치에 위치된 업데이트된 디지털 오리진에 대한 하나 이상의 기준들을 만족시키도록 3차원 환경을 업데이트한다. 일부 실시예들에서, 전자 디바이스는 (예를 들어, 디지털 오리진을 업데이트하라는 요청에 대응하는 입력을 수신하지 않으면서) 디지털 오리진이 무효하다고 결정하는 것에 응답하여 디지털 오리진을 자동으로 업데이트한다. 일부 실시예들에서, 디지털 오리진을 업데이트하는 것은 사용자의 시점을 업데이트하는 것을 포함하지 않는다. 일부 실시예들에서, 방법(800)의 하나 이상의 단계들에 따라 하나 이상의 공간 기준들에 따라 가상 객체들 및 사용자의 시점의 공간 배열을 업데이트하라는 요청에 대응하는 입력에 응답하여, 전자 디바이스는 업데이트된 디지털 오리진에 따라 사용자의 시점을 업데이트한다.
디지털 오리진이 무효하다고 결정하는 것에 응답하여 디지털 오리진을 업데이트하는 것은 유효 디지털 오리진을 사용하여 3차원 환경을 신속하게 업데이트함으로써 전자 디바이스와의 사용자 상호작용들을 향상시키며, 그에 의해, 사용자가 전자 디바이스를 신속하고 효율적으로 사용할 수 있게 한다.
일부 실시예들에서, 도 9a에서와 같이, 제1 공간 배열로 복수의 가상 객체들(예를 들어, 904a, 906a)을 디스플레이하는 것은 복수의 가상 객체들(예를 들어, 904a, 906a)을 서로에 대해 개개의 배열(예를 들어, 배향들 및/또는 포지션들 및/또는 거리들)로 디스플레이하는 것을 포함한다(1036a).
일부 실시예들에서, 도 9c에서와 같이, 제3 공간 배열로 복수의 가상 객체들(예를 들어, 904a, 906a)을 디스플레이하는 것은 복수의 가상 객체들(예를 들어, 904a, 906a)을 서로에 대해 개개의 배열로 디스플레이하는 것을 포함한다(1036b). 일부 실시예들에서, 가상 객체들의 서로에 대한 포지션들 및 배향들은 하나 이상의 제2 기준들을 만족시키는 입력에 응답하여 3차원 환경을 업데이트하는 것에 응답하여 유지된다. 일부 실시예들에서, 가상 객체들을 함께 이동시키는 동안, 전자 디바이스는 가상 객체들의 서로에 대한 개개의 배열을 유지하면서 가상 객체들을 함께 디스플레이한다.
하나 이상의 제2 기준들을 만족시키는 입력에 응답하여 가상 객체들의 서로에 대한 개개의 공간 배열을 유지하는 것은 사용자가 복수의 가상 객체들을 함께 신속하고 효율적으로 이동할 수 있게 함으로써 전자 디바이스와의 사용자 상호작용들을 향상시킨다.
도 11a 내지 도 11e는 본 개시내용의 일부 실시예들에 따른, 3차원 환경에 대한 바닥의 추정된 위치에 기초하여 3차원 환경에서 객체들을 디스플레이하는 예시적인 방식들을 예시한다.
도 11a는 사용자 A의 전자 디바이스(1102a) 및 사용자 B의 전자 디바이스(1104b)의 디스플레이 생성 컴포넌트들(120a, 120b)에 의해 각각 디스플레이되고 있는 3차원 환경(1122)을 예시한다. 일부 실시예들에서, 전자 디바이스들(1102a, 1104b)는 본 개시내용의 범주를 벗어나지 않으면서 2차원 환경에서 도 11a 내지 도 11e를 참조하여 설명되는 하나 이상의 기법들을 이용한다는 것이 이해되어야 한다. 도 1 내지 도 6을 참조하여 위에서 설명된 바와 같이, 전자 디바이스들(1102a, 1104b)(예를 들어, 각각은 디바이스(101)에 대응함)은 선택적으로, 디스플레이 생성 컴포넌트(120a, 120b)(예를 들어, 터치 스크린) 및 복수의 이미지 센서들(314a, 314b)을 각각 포함한다. 이미지 센서들(314a, 314b)은 선택적으로, 가시광 카메라, 적외선 카메라, 깊이 센서, 또는 사용자가 전자 디바이스들(1102a, 1104b)과 상호작용하는 동안 사용자 또는 사용자의 일부의 하나 이상의 이미지들을 캡처하는 데 사용될 수 있을 전자 디바이스들(1102a, 1104b)의 임의의 다른 센서 중 하나 이상을 포함한다. 일부 실시예들에서, 아래에 도시된 사용자 인터페이스들은 또한, 사용자 인터페이스를 사용자에게 디스플레이하는 디스플레이 생성 컴포넌트, 및 사용자의 손들의 물리적 환경 및/또는 이동들(예를 들어, 사용자로부터 바깥쪽으로 향하는 외부 센서들), 및/또는 사용자의 시선(예를 들어, 사용자의 얼굴을 향해 안쪽으로 향하는 내부 센서들)을 검출하기 위한 센서들을 포함하는 머리 장착형 디스플레이 상에서 구현될 수 있다.
도 11a에 도시된 바와 같이, 전자 디바이스(1102a)는, 가상 의자(1107)(예를 들어, 가상 객체)에 앉아 있는 사용자 B의 표현(1106) 및 애플리케이션 A의 사용자 인터페이스(1110)를 현재 디스플레이하고 있다. 일부 실시예들에서, 애플리케이션 A는 단일 사용자 게이밍 애플리케이션, 다중-사용자 게이밍 애플리케이션(예를 들어, 사용자 A 및 사용자 B 둘 모두가 선택적으로 상호작용함), 미디어 애플리케이션, 소셜 애플리케이션, 내비게이션 애플리케이션, 스트리밍 애플리케이션 등이다. 일부 실시예들에서, 전자 디바이스(1102a)는 표현(1106), 가상 의자(1107), 및 사용자 인터페이스(1110)를 디스플레이하고 있는데, 그 이유는 이러한 객체들이 3차원 환경(1122)의 사용자 A의 현재 시점으로부터의 시야에 있기 때문이다. 예를 들어, 오버헤드 뷰(1140)에서 표시된 바와 같이, 사용자 A는 3차원 환경(1122)의 후방 부분으로부터 그리고 3차원 환경(1122)의 전방 부분을 향해 배향된 포즈로 3차원 환경(1122)을 현재 보고 있다. 따라서, 사용자 A와 연관된 전자 디바이스(1102a)는 사용자 인터페이스(1110), 가상 의자(1107), 및 사용자 B의 표현(1106)을 디스플레이하고 있는데, 그 이유는 이러한 객체들이 사용자 A의 현재 시점으로부터의 시야에 있기 때문이다. 유사하게, 도 11a의 예에서, 도 11a의 오버헤드 뷰(1140)에서 표시된 바와 같이, 사용자 B와 연관된 전자 디바이스(1104b)는 사용자 인터페이스(1110), 및 가상 의자(1111)에 앉아 있는 사용자 A의 표현(1118)을 제시하고 있는데, 그 이유는 이러한 객체들이 3차원 환경(1122)의 사용자 B의 현재 시점으로부터의 시야에 있기 때문이다.
일부 실시예들에서, 3차원 환경(1122)은 전자 디바이스의 물리적 환경(예를 들어, 동작 환경(100)) 내의 물리적 바닥의 전자 디바이스의 추정된 위치에 대해 디스플레이된다. 예를 들어, 도 11a에서, 전자 디바이스(1102a)는 전자 디바이스(1102a)의 물리적 환경(1121a) 내의 물리적 바닥이 (전자 디바이스(1102a)의 물리적 환경 내의 바닥의 진짜/실제 위치에 대응하는 위치(1150a)가 아니라) 위치(1120a)에 있는 것으로 추정되었다. 일부 실시예들에서, 전자 디바이스(1102a)는 아래에서 설명될 바와 같이, 사용자 A(예를 들어, 전자 디바이스(1102a)와 연관된 사용자)에 관한 정보에 기초하여 물리적 환경(1121a) 내의 물리적 바닥의 위치를 추정한다.
일부 실시예들에서, 사용자 A와 연관된 전자 디바이스(1102a)는 선택적으로, 사용자 A의 알려진 높이에 기초하여 물리적 환경(1121a) 내의 물리적 바닥의 위치가 위치(1120a)에 있다고 추정한다. 예를 들어, 전자 디바이스(1102)는 선택적으로, 사용자 A가 60, 70, 80, 100, 140, 200, 220, 또는 240 센티미터 높이라는 것을 표시하는 (예를 들어, 전자 디바이스(1102a) 상의 메모리에 저장된 사용자 프로파일로부터 또는 전자 디바이스(1102a)가 선택적으로 통신하는 서버로부터) 정보에 액세스/그 정보를 획득하고, 사용자 A의 획득된 높이에 기초하여, 전자 디바이스(1102a)는 선택적으로, 물리적 환경(1121a) 내의 물리적 바닥의 위치가 위치(1120a)에 있다고 추정하는데, 그 이유는, 위치(1120a)가 60, 70, 80, 100, 140, 200, 220, 또는 240 센티미터 아래에 있는 위치에 대응하기 때문이며, 여기서 사용자 A는 (예를 들어, 전자 디바이스(1102a)가 머리 장착형 디바이스이면) 전자 디바이스(1102a)를 현재 보유 또는 착용하고 있다. 위에서 설명된 기법은, 사용자 A가 서 있는 포즈에 있다고 전자 디바이스(1102a)가 결정할 때 선택적으로 사용된다. 일부 실시예들에서, 사용자 A가 서 있는 포즈에 있는 것이 아니라 오히려 상이한 포즈, 예컨대 앉아 있는 포즈, 무릎꿇는 포즈, 웅크린 포즈 등에 있다고 전자 디바이스(1102a)가 결정하면, 전자 디바이스(1102a)는 선택적으로, 물리적 환경(1121a) 내의 물리적 바닥의 위치가 사용자 A가 서 있는 포즈에 있었던 경우보다 전자 디바이스(1102a)에 (예를 들어, 6, 15, 30, 45, 60, 70, 또는 130 센티미터) 더 가깝다고 추정한다.
일부 실시예들에서, 전자 디바이스(1102a)는, (예를 들어, 사용자 A에 관한 높이 정보에 부가적으로 또는 그에 대한 대안으로서) 하나 이상의 다른 사용자들에 관한 평균 정보에 기초하여 물리적 환경(1121a)의 물리적 바닥이 위치(1120a)에 있다고 추정한다. 예를 들어, 전자 디바이스(1102a)는 선택적으로, (예를 들어, 메모리, 서버, 데이터베이스 등으로부터) 3차원 환경(1122)과 연관된 하나 이상의 사용자들 및/또는 (예를 들어, 사용자들의 일반적인 집단과 같은) 3차원 환경(1122)과 연관되지 않은 하나 이상의 사용자들에 관한 평균 높이 정보에 대한 액세스를 갖고/그 정보를 획득한다. 일부 실시예들에서, 전자 디바이스(1102a)는, 이전에 설명된 바와 유사한 방식들로 물리적 환경(1122) 내의 물리적 바닥의 위치를 추정하기 위해 하나 이상의 사용자들에 대해 획득된 평균 높이 정보를 사용한다. 전자 디바이스(1102a)가 물리적 환경(1121a)의 물리적 바닥의 위치를 추정하기 위해 선택적으로 사용하는 부가적인 기법들/방법들이 방법(1200)에서 추가로 설명된다.
부가적으로, 도 11a에 도시된 바와 같이, 전자 디바이스(1104b)(사용자 B와 연관됨)는, 전자 디바이스(1104b)의 물리적 환경(1123b) 내의 물리적 바닥이 (물리적 환경(1123b) 내의 물리적 바닥의 진짜/실제 위치인 위치(1152b)가 아니라) 위치(1127b)에 있다고 추정했다. 일부 실시예들에서, 물리적 환경들(1121a, 1123b)은, 사용자들 A 및 B(및 사용자들 A 및 B와 각각 연관된 전자 디바이스들(1102a, 1104b))가 동일한 물리적 환경에 위치되면 동일한 물리적 환경에 대응하고, 또는 사용자들 A 및 B가 상이한 물리적 환경들에 위치되면 상이한 물리적 환경들에 대응한다. 전자 디바이스(1104b)는 선택적으로, 전자 디바이스(1102a)가 그의 개개의 물리적 환경(1121a) 내의 물리적 바닥의 위치를 추정했던 방식과 유사한 방식들로 물리적 환경(1123b) 내의 물리적 바닥의 위치가 위치(1127b)에 있다고 추정했다. 본 개시내용의 나머지 부분들에서의 설명의 용이함을 위해, 그의 개개의 물리적 환경 내의 바닥의 개개의 전자 디바이스의 추정된 위치는 추정된 물리적 바닥 위치(1120a) 또는 추정된 물리적 바닥 위치(1127b)와 같은 추정된 물리적 바닥 위치로 본 명세서에서 지칭될 것이다.
일부 실시예들에서, 전자 디바이스는 그의 개개의 물리적 환경 내의 물리적 바닥의 전자 디바이스의 추정된 위치에 대한 위치들에서 3차원 환경(1122) 내의 객체들을 디스플레이하는데, 그 이유는 3차원 환경(1122) 내의 객체들의 위치들이 추정된 바닥 위치에 대한 것으로 선택적으로 정의되기 때문이다. 예를 들어, 도 11a에 도시된 바와 같이, 전자 디바이스(1102a)는 물리적 환경(1121a) 내의 물리적 바닥이 위치(1120a)에 있다고 추정했다. 이러한 추정의 결과로서, 전자 디바이스(1102a)는 추정된 물리적 바닥 위치(1120a)로부터의 거리(1114)(예를 들어, 15, 30, 60, 150, 304, 또는 610 센티미터)인 위치에 대응하는 3차원 환경(1122) 내의 상대적 위치에서 사용자 인터페이스(1110)를 디스플레이하고, 추정된 물리적 바닥 위치(1120a)에 대응하는 3차원 환경(1122) 내의 위치에서 가상 객체(1107)를 디스플레이하고, 표현(1106)이 가상 의자(1111)에 앉아 있도록, 추정된 물리적 바닥 위치(1120a) 위의 개개의 거리(예를 들어, 15, 30, 60, 150, 300, 또는 600 센티미터)에서 사용자 B의 표현(1106)을 디스플레이한다. 일부 실시예들에서, 3차원 환경(1122) 내의 모든 객체들(그리고 그 뿐만 아니라 사용자 A의 시점으로부터의 시야 내의 객체들)은 추정된 물리적 바닥 위치(1120a)에 대해 선택적으로 디스플레이된다는 것이 이해된다.
유사하게, 전자 디바이스(1104b)는 그의 추정된 물리적 바닥 위치(1127b)에 대한 위치들에서 3차원 환경(1122) 내의 객체들을 제시하고 있다. 구체적으로, 전자 디바이스(1104b)가 물리적 환경(1123b) 내의 물리적 바닥이 위치(1127b)에 있다고 추정했기 때문에, 전자 디바이스(1104b)는 추정된 물리적 바닥 위치(1127b)로부터의 거리(1114)인 위치에 대응하는 3차원 환경(1122) 내의 상대적 위치에서 사용자 인터페이스(1110)를 디스플레이하고 있고, 추정된 물리적 바닥 위치(1127b)에 대응하는 3차원 환경(1122) 내의 상대적 위치에서 가상 의자(1111)를 디스플레이하고, 사용자 A의 표현(1118)이 가상 의자(1111)에 앉아 있도록, 추정된 물리적 바닥 위치(1127b) 위의 위치/개개의 거리(예를 들어, 15, 30, 60, 150, 300, 또는 600 센티미터)에서 표현(1118)을 디스플레이한다.
일부 실시예들에서, 3차원 환경(1122) 내의 가상 객체들이 물리적 바닥의 추정된 위치로부터 디스플레이되는 상대적 거리들은 물리적 환경 내의 물리적 바닥의 디바이스의 현재 추정된 위치에 관계없이 일정하게 유지된다. 예를 들어, 전자 디바이스들(1102a, 1104b)이 그들의 개개의 물리적 환경들 내의 물리적 바닥들의 상이한 추정된 위치들(예를 들어, 각각 위치들(1120a, 1127b))에 대해 객체들을 디스플레이하고 있더라도, 사용자 인터페이스(1110)는 개개의 추정된 물리적 바닥 위치들(1120a, 1127b) 둘 모두로부터의 거리(1114)에 여전히 디스플레이된다.
도 11b에서, 전자 디바이스(1102a)가 추정된 물리적 바닥 위치(1120a)에 대한 위치들에서 3차원 환경(1122) 내의 객체들을 디스플레이하고 있는 동안, 전자 디바이스(1102a)는 3차원 환경(1122)의 사용자 A의 시점이 3차원 환경(1122) 내의 사용자 A의 시점으로부터 아래로 이동했다는 것을 검출했다. 일부 실시예들에서, 3차원 환경(1122) 내의 사용자 A의 시점은 하향 방향으로 이동했는데, 그 이유는 사용자 A가 물리적 환경(1121a)에서 대응하는 포즈로 이동했기 때문이다(예를 들어, 사용자 A는 하향 방향으로 보기 시작했고 그리고/또는 전자 디바이스(1102a)는 도 11a의 그의 배향과 비교하여 하향으로 배향되었다).
일부 실시예들에서, 전자 디바이스(1102a)가 3차원 환경(1122) 내의 사용자 A의 시점의 이동을 검출하는 것에 응답하여, 전자 디바이스(1102a)는 선택적으로, 3차원 환경(1122)의 사용자 A의 새로운/업데이트된 시점으로부터 3차원 환경(1122)을 디스플레이한다. 예를 들어, 도 11b에서, 디바이스(1102a)가 사용자 A의 시점의 하향 이동을 검출하는 것에 응답하여, 전자 디바이스(1102a)는 사용자 A의 시점이 도 11a에 예시된 시점에 대응했을 때 시야에 있지 않았던 3차원 환경(1122)의 새로운 부분들을 디스플레이하고, (예를 들어, 3차원 환경(1122)의 사용자 A의 시점이 하향 방향으로 이동했기 때문에) 도 11a와 비교하여 사용자 A의 시야 내의 더 높은 위치들에서 사용자 인터페이스(1110), 가상 의자(1107), 및 사용자 B의 표현(1106)을 디스플레이한다 도 11b에서, 3차원 환경의 사용자 B의 시점이 도 11a로부터 도 11b로 변경되지 않았기 때문에, 전자 디바이스(1104b)는 도 11a에 설명된 사용자 B의 동일한 시점으로부터 3차원(1122)을 계속 디스플레이한다.
부가적으로, 도 11b에서, 전자 디바이스(1102a)는 물리적 환경(1121a) 내의 물리적 바닥의 추정된 그의 위치를 위치(1120a)(도 11a에 설명된 바와 같음)로부터 위치(1150a)(예를 들어, 물리적 환경(1121a) 내의 물리적 바닥의 실제/진짜 위치)로 업데이트했다. 물리적 환경(1121a) 내의 물리적 바닥의 전자 디바이스(1102a)의 추정된 위치는 선택적으로, 위치(1150a)로 변경되었는데, 그 이유는 방법(1200)에 더 상세히 설명되는 바와 같이, 전자 디바이스(1102)가 물리적 환경(1121a) 내의 물리적 바닥의 일부(예를 들어, 5%, 20%, 50%, 80%, 또는 100%)에 대응하는 평면을 검출할 수 있도록, 사용자 A의 시점이 도 11a에 예시된 시점으로부터 도 11b에 예시된 시점으로 이동됨에 따라, 디바이스(1102a)의 하나 이상의 센서들(314a)이 물리적 환경(1121a) 내의 물리적 바닥을 향해 배향되었기 때문이다. 대안적으로, 일부 실시예들에서, 전자 디바이스(1102a)는 물리적 환경(1121a) 내의 물리적 바닥의 그의 추정된 위치를 업데이트했는데, 그 이유는 전자 디바이스(1102a)가 사용자 A에 대한 업데이트된 높이 정보, 사용자 A 이외의 하나 이상의 사용자들에 관한 업데이트된 높이 정보 등을 수신했기 때문이다. 도 11b에서, 전자 디바이스(1104b)가 물리적 환경(1123b) 내의 물리적 바닥의 그의 추정된 위치를 업데이트하지 않았지만, 일부 실시예들에서, 전자 디바이스(1104b)는 선택적으로, 전자 디바이스(1102a)와 유사한 이유들 때문에 물리적 환경(1123b) 내의 물리적 바닥의 그의 추정된 위치를 업데이트했다는 것이 이해되어야 한다.
일부 실시예들에서, 개개의 전자 디바이스가 전자 디바이스의 물리적 환경 내의 물리적 바닥의 그의 추정된 위치를 업데이트한 이후, 전자 디바이스는 아래에서 그리고 방법(1200)에서 더 상세히 설명되는 바와 같이, 특정 기준들/조건들이 만족될 때까지 물리적 바닥의 이전의 추정된 위치에 대한 객체들을 계속 디스플레이한다. 예를 들어, 도 11b에서, 전자 디바이스(1102a)가 물리적 환경(1121a) 내의 물리적 바닥이 위치(1150a)라고 이제 추정하고 있더라도, 방법(1200)에 설명된 하나 이상의 기준들이 아직 만족되지 않았기 때문에, 전자 디바이스(1102a)는 위치(1150a)에 대한 것이 아니라 (도 11a에 설명된 바와 같은) 디바이스(1102)의 이전의 추정된 물리적 바닥 위치(1120a)에 대해 3차원 환경(1122) 내의 객체들(예를 들어, 예컨대 사용자 인터페이스(1110), 가상 의자(1107), 및 사용자 B의 표현(1106))을 여전히 디스플레이하고 있다. 일부 실시예들에서, 전자 디바이스(1102a)는 하나 이상의 기준들을 먼저 만족시키지 않으면서 물리적 바닥의 그의 업데이트된/가장 최근의 추정된 위치에 대해 3차원 환경(1122) 내의 객체들을 디스플레이하기 시작한다.
도 11c에서, 전자 디바이스(1102a)는, 3차원 환경(1122)의 사용자의 시점이 도 11b의 오버헤드 뷰(1140)에서 표시된 사용자 A의 관점으로부터 도 11c의 오버헤드 뷰(1140)에서 표시된 시점으로 이동했다(예를 들어, 3차원 환경(1122) 내의 사용자 A의 포지션이 3차원 환경(1122)의 후방 코너를 향해 배향되도록 이동했다)는 것을 검출했다. 일부 실시예들에서, 3차원(1122)의 사용자 A의 시점은, 사용자 A가 물리적 환경(1121a) 내의 대응하는 포즈로 이동했기 때문에 도 11c에서 표시된 시점으로 이동했다.
도 11b의 오버헤드 뷰(1140)에서 표시된 시점으로부터 도 11c에서 표시된 시점으로의 3차원 환경(1122) 내의 사용자 A의 시점의 이동을 검출하는 것에 응답하여, 전자 디바이스(1102a)는 선택적으로, 도 11c에 예시된 바와 같이, 3차원 환경(1122)의 사용자의 새로운 시점으로부터 3차원 환경(1122)을 디스플레이한다. 특히, 디바이스(101)의 디스플레이 생성 컴포넌트(120a)는 3차원 환경(1122)의 후방 코너를 이제 디스플레이하고 있는데, 그 이유는 3차원 환경(1122)의 그 부분이 3차원 환경(1122)의 사용자 A의 새로운 시점으로부터의 시야에 있고, 사용자 인터페이스(1110), 가상 의자(1107), 및 사용자 B의 표현(1106)을 더 이상 디스플레이하고 있지 않기 때문이고, 그 이유는 이러한 객체들이 3차원 환경(1122)의 사용자 A의 새로운 시점으로부터의 시야에 더 이상 있지 않기 때문이다. 부가적으로, 전자 디바이스(1104b)는 (도 11b에 이전에 도시된 바와 같이) 사용자 A의 표현(1118)을 더 이상 제시하고 있지 않는데, 그 이유는 도 11c의 오버헤드 뷰(1140)에서 표시된 바와 같이, 3차원 환경(1122) 내의 사용자 A의 포지션/시점의 이동 이후, 사용자 A의 표현(1118)이 3차원 환경(1122)의 사용자 B의 현재 시점으로부터의 시야에 더 이상 있지 않기 때문이다.
사용자 인터페이스(1110), 가상 의자(1107), 및 표현(1106)이 오버헤드 뷰(1140)에서 표시된 바와 같이 사용자 A의 시점의 시야에 더 이상 있지 않더라도, 이러한 객체들은 여전히 선택적으로, 도 11b에서 이전에 설명된 바와 같이(예를 들어, 아래에서 상세히 설명될 바와 같은 하나 이상의 기준들이 아직 만족되지 않았기 때문에), 추정된 물리적 바닥 위치(1120a)에 대한 3차원 환경(1122) 내의 위치들에 있다는 것이 이해되어야 한다. 도 11c에서, 디바이스(1102a)는 또한, 선택가능 사용자 인터페이스 옵션(1124a)을 디스플레이하고 있다. 일부 실시예들에서, 선택가능 사용자 인터페이스 옵션(1124a)은 도 7a 내지 도 7g에 설명된 선택가능 재중심설정 옵션(712)과 유사하고, 유사한 이유들 때문에 디바이스(1102a)에 의해 선택적으로 디스플레이된다. 일부 실시예들에서, 도 7a 내지 도 7g 및 방법(800)에서 더 상세히 설명된 바와 같이, 전자 디바이스(1102a)는 선택가능 사용자 인터페이스 옵션(1124a)을 디스플레이하고 있는데, 그 이유는 3차원 환경(1122) 내의 하나 이상의 객체들의 포지션들/위치들이 3차원 환경(1122)의 사용자 A의 새로운 시점에 대한 공간 기준들을 만족시키지 않기 때문이다. 예를 들어, 전자 디바이스(1102a)는 선택적으로 선택가능 사용자 인터페이스 옵션(1124a)을 디스플레이하는데, 그 이유는 3차원 환경(1122) 내의 하나 이상의 객체들이 이제, 3차원 환경(1122)의 사용자 A의 새로운 시점으로부터 임계 거리(예를 들어, 10, 20, 30, 40, 50, 100, 200, 300, 400, 500, 1000, 또는 2000 센티미터) 초과이기 때문이고 그리고/또는 3차원 환경(1122) 내의 하나 이상의 객체들(예를 들어, 3차원 환경(1122) 내의 사용자 A의 이전의 시점으로부터의 시야에 선택적으로 있었음)이 3차원 환경(1122)의 사용자 A의 새로운 시점으로부터의 시야에 더 이상 있지 않기 때문이다.
일부 실시예들에서, 사용자 A의 시선이 사용자 선택가능 사용자 인터페이스 객체(1124a)를 향해 선택적으로 지향되는 동안, 사용자 A의 손(1101)이 "가리키는" 포즈에(예를 들어, 손(1101)의 하나 이상의 손가락들이 펴지고 손(1101)의 하나 이상의 손가락들이 손(1101)의 손바닥을 향해 구부러짐) 그리고/또는 "핀칭" 포즈(예를 들어, 손(1101)의 엄지 및 검지 손가락이 서로의 임계 거리(예를 들어, 0.2, 0.5, 1, 1.5, 2, 또는 2.5 센티미터)에 또는 그 내에 수렴됨)에 있다는 것을 전자 디바이스(1102a)가 검출할 때, 전자 디바이스(1102a)는 선택가능 사용자 인터페이스 옵션(1124a)의 선택을 검출한다. 예를 들어, 도 11c에 예시된 바와 같이, 전자 디바이스(1102a)는 선택가능 사용자 인터페이스 옵션(1124a)의 선택을 검출하는데, 그 이유는 사용자 A의 손(1101)이 옵션(1124a)과 접촉하는 "가리키는" 포즈에 있기 때문이다.
일부 실시예들에서, 전자 디바이스(101)가 3차원 환경(1122)에서 객체들을 재중심설정하라는 요청을 검출하는 것에 응답하여, 전자 디바이스(1102a)는 그의 현재(예를 들어, 가장 새로운/업데이트된/가장 최근의) 추정된 물리적 바닥 위치에 대한 위치들에서 3차원 환경(1122) 내의 객체들을 디스플레이한다. 예를 들어, 도 11d에 도시된 바와 같이, 전자 디바이스(1102a)가 선택가능 옵션(1124a)의 선택을 검출하는 것에 응답하여, 전자 디바이스(1102a)는 방법(800)에 따라 3차원 환경(1122)에서 객체들을 "재중심설정"한다. 부가적으로, 도 11c에서 전자 디바이스(1102a)가 선택가능 사용자 인터페이스 옵션(1124a)의 선택을 검출하는 것에 응답하여, 전자 디바이스(1102a)는, 추정된 물리적 바닥 위치(1150a)(예를 들어, 물리적 환경(1121a) 내의 물리적 바닥의 가장 새로운/가장 최근의 추정된 위치)에 대한 위치들에서 디스플레이되도록 3차원 환경(1122) 내의 객체들(예를 들어, 사용자 인터페이스(1110), 가상 의자(1107), 사용자 B의 표현(1106))의 상대적 위치들을 업데이트했고, 도 11a에서 검출된 디바이스의 이전에 추정된 물리적 바닥 위치(1120a)에 대해 3차원 환경(1122) 내의 객체들을 더 이상 디스플레이하고 있지 않다. 부가적으로, 도 11d에서, 사용자 B와 연관된 전자 디바이스(1104b)는, 디바이스(1104b)가 새로운/업데이트된 추정된 물리적 바닥 위치를 아직 결정하지 않았으므로, 추정된 물리적 바닥 위치(1127b)에 대한 위치들에서 3차원 환경(1122) 내의 객체들을 계속 디스플레이한다. 도 11d에서, 디바이스(1104b)는 또한 사용자 A(1118)의 표현을 디스플레이하고 있는데, 그 이유는 사용자 A(1118)의 표현이 3차원 환경(1122)의 사용자 B의 현재 시점으로부터의 시야에 이제 있기 때문이다.
일부 실시예들에서, 3차원 환경(1122) 내의 객체들이 물리적 바닥의 추정된 위치로부터 디스플레이되는 상대적 거리들은 물리적 바닥의 디바이스의 추정된 위치에 관계없이 일정하게 유지된다. 예를 들어, 도 11b 및 도 11d에서, 전자 디바이스(1102a)가 2개의 상이한 추정된 물리적 바닥 위치들 - 도 11b의 위치(1120a) 및 도 11d의 위치(1150A) - 에 대해 3차원 환경(1122) 내의 가상 객체들을 디스플레이하고 있었더라도, 사용자 인터페이스(1110)는 각각, 위치(1120a)에 대해 그리고 또한 위치(1150a)에 대해 일정한 거리(1114)로 디스플레이된다. 3차원 환경(1122) 내의 다른 객체들의 상대적 거리들은 선택적으로, 사용자 인터페이스(1110)를 참조하여 설명된 유사한 방식들로 개개의 디바이스의 추정된 물리적 바닥으로부터 일정한 거리들로 디스플레이된다. 디바이스(1102a)가 3차원 환경(1122)을 재중심설정하라는 요청을 수신한 이후, 전자 디바이스(1102a)가 위치(1150a)(예를 들어, 물리적 바닥의 디바이스의 가장 최근의/업데이트된 추정된 위치)에 대해 3차원 환경(1122a) 내의 가상 객체들을 디스플레이하기 시작했더라도, 전자 디바이스(1102a)는 선택적으로, 방법(1200)에 설명된 기준들과 같은 다른 기준들이 만족될 때 위치(1150a)에 대해 디스플레이되도록 가상 객체들을 업데이트한다는 것이 이해되어야 한다.
일부 실시예들에서, 개개의 전자 디바이스(예를 들어, 디바이스(1102a 또는 1104b))는 3차원 환경(1122)에서 하나 이상의 새로운 애플리케이션들(예를 들어, 3차원 환경(1122)에서 아직 디스플레이되고 있지 않는 애플리케이션들)을 개시하라는 요청을 수신한다. 예를 들어, 도 11d에서, 애플리케이션 B의 사용자 인터페이스(1132)는 선택적으로, 전자 디바이스(1102a) 및/또는 디바이스(1102b)가 3차원 환경(1122)에서 애플리케이션 B를 개시하라는 요청을 수신하는 것에 응답하여 3차원 환경(1122)에서 디스플레이된다. 일부 실시예들에서, 3차원 환경(1122)에서 개시되는 새로운 애플리케이션은 3차원 환경(1122) 내의 다른 객체들이 디스플레이되고 있는 동일한 추정된 물리적 바닥에 대해 디스플레이된다. 예를 들어, 애플리케이션 B의 사용자 인터페이스(1132)는 추정된 물리적 바닥 위치(1150a)에 대해 디스플레이되는데, 그 이유는 전자 디바이스(1102a)가 위치(1150a)에 대해 3차원 환경 내의 객체들을 현재 디스플레이하고 있기 때문이다. 유사하게, 디바이스(1104b)는 추정된 물리적 바닥 위치(1127b)에 대해 애플리케이션 B의 사용자 인터페이스(1132)를 디스플레이하고 있는데, 그 이유는 전자 디바이스(1104b)는 위치(1127b)에 대해 3차원 환경(1122) 내의 객체들을 현재 디스플레이하고 있기 때문이다. 일부 실시예들에서, 사용자 인터페이스(1132)는 추정된 물리적 바닥 위치들(1150a, 1127b)로부터 거리(1130)(예를 들어, 15, 30, 60, 90, 200, 또는 400 센티미터)로 디스플레이되고 있는데, 그 이유는 애플리케이션 B의 하나 이상의 설정들/특성들이 물리적 바닥의 추정된 위치로부터 디폴트 디스플레이 높이를 정의하기 때문이다.
일부 실시예들에서, 3차원 환경(1122) 내의 객체들은 3차원 환경(1122) 내의 사용자의 시점이 변경됨에 따라 물리적 바닥의 추정된 위치에 대해 계속 디스플레이된다. 예를 들어, 도 11e에서, 물리적 환경(1121a) 내의 사용자 A의 포즈는 앉아 있는 포즈로부터 서 있는 포즈로 변경되었다. 일부 실시예들에서, 전자 디바이스(1102a)가 물리적 환경(1121a) 내의 사용자 A의 이동을 검출하는 것에 응답하여, 전자 디바이스(1102a)는 선택적으로, 물리적 환경(1121a) 내의 사용자 A의 새로운 포즈에 대응하는 새로운/업데이트된 시점으로부터 3차원 환경(1122)을 디스플레이한다. 예를 들어, 도 11e에서, 디바이스(1102a)가 물리적 환경(1121a) 내의 사용자 A의 이동(예를 들어, 사용자 A가 앉아 있는 포즈로부터 서 있는 포즈로 이동하는 것)을 검출하는 것에 응답하여, 전자 디바이스(1102a)는 도 11d와 비교하여, (예를 들어, 3차원 환경의 사용자 A의 시점이 상향 방향으로 이동했기 때문에) 3차원 환경(1122)의 새로운 부분들을 디스플레이하고, 사용자 A의 시야 내의 더 낮은 위치들에서 사용자 인터페이스(1110), 가상 의자(1107), 및 사용자 B의 표현(1106)을 디스플레이한다. 따라서, 도 11e에 도시된 바와 같이, 3차원 환경(1122)의 사용자 A의 시점이 물리적 환경(1121a) 내의 사용자 A의 이동에 응답하여 변경되었더라도, 전자 디바이스(1102a)는 추정된 바닥 위치(1150a)에 대해 3차원 환경(1122) 내의 객체들을 계속 디스플레이한다. 부가적으로, 도 11e의 디바이스(1104b)에 도시된 바와 같이, 사용자 A의 표현(1118)은 (도 11d와 비교하여) 사용자 B의 시야에서 위로 이동했는데, 그 이유는 물리적 환경(1121a) 내의 사용자 A의 포즈가 앉아 있는 포즈로부터 서 있는 포즈로 변경됐기 때문이다.
도 11a 내지 도 11e에 예시된 실시예들에 관한 부가적인 또는 대안적인 세부사항들은 도 12a 내지 도 12g를 참조하여 설명된 방법(1200)의 아래의 설명에서 제공된다.
도 12a 내지 도 12g는 일부 실시예들에 따른, 3차원 환경에 대한 바닥의 추정된 위치에 기초하여 3차원 환경에서 객체들을 디스플레이하는 방법(1200)을 예시하는 흐름도이다. 일부 실시예들에서, 방법(1200)은, 디스플레이 생성 컴포넌트(예를 들어, 도 1, 도 3, 및 도 4의 디스플레이 생성 컴포넌트(120))(예를 들어, 헤드업 디스플레이, 디스플레이, 터치스크린, 프로젝터 등) 및 하나 이상의 카메라들(예를 들어, 사용자의 손을 하향으로 포인팅하는 카메라(예를 들어, 컬러 센서들, 적외선 센서들, 및 다른 깊이 감지 카메라들) 또는 사용자의 머리로부터 전방으로 향하는 카메라)을 포함하는 컴퓨터 시스템(예를 들어, 태블릿, 스마트폰, 웨어러블 컴퓨터, 또는 머리 장착형 디바이스와 같은 도 1의 컴퓨터 시스템(101))에서 수행된다. 일부 실시예들에서, 방법(1200)은, 비일시적 컴퓨터 판독가능 저장 매체에 저장되며 컴퓨터 시스템의 하나 이상의 프로세서들, 예컨대 컴퓨터 시스템(101)의 하나 이상의 프로세서들(202)(예를 들어, 도 1a의 제어 유닛(110))에 의해 실행되는 명령어들에 의해 관리된다. 방법(1200) 내의 일부 동작들은 선택적으로 조합되고 그리고/또는 일부 동작들의 순서는 선택적으로 변경된다.
일부 실시예들에서, 방법(1200)이 디스플레이 생성 컴포넌트(예를 들어, 120) 및 하나 이상의 입력 디바이스들(예를 들어, 314)과 통신하는 전자 디바이스(예를 들어, 101)에서 수행된다. 예를 들어, 모바일 디바이스(예를 들어, 태블릿, 스마트폰, 미디어 플레이어, 또는 웨어러블 디바이스), 또는 컴퓨터. 일부 실시예들에서, 디스플레이 생성 컴포넌트는 전자 디바이스와 통합된 디스플레이(선택적으로 터치 스크린 디스플레이), 사용자 인터페이스를 투영하거나 사용자 인터페이스로 하여금 하나 이상의 사용자들에게 보이게 하기 위한 외부 디스플레이, 예컨대 모니터, 프로젝터, 텔레비전, 또는 하드웨어 컴포넌트(선택적으로 통합형 또는 외부) 등이다. 일부 실시예들에서, 하나 이상의 입력 디바이스들은 사용자 입력을 수신(예를 들어, 사용자 입력을 캡처, 사용자 입력을 검출 등)하고 사용자 입력과 연관된 정보를 전자 디바이스에 송신할 수 있는 전자 디바이스 또는 컴포넌트를 포함한다. 입력 디바이스들의 예들은 터치 스크린, 마우스(예를 들어, 외장형), 트랙패드(선택적으로, 통합형 또는 외장형), 터치패드(선택적으로, 통합형 또는 외장형), 원격 제어 디바이스(예를 들어, 외장형), 다른 모바일 디바이스(예를 들어, 전자 디바이스로부터 분리됨), 핸드헬드 디바이스(예를 들어, 외장형), 제어기(예를 들어, 외장형), 카메라, 깊이 센서, 눈 추적 디바이스, 및/또는 모션 센서(예를 들어, 손 추적 디바이스, 손 모션 센서) 등을 포함한다. 일부 실시예들에서, 전자 디바이스는 손 추적 디바이스(예를 들어, 하나 이상의 카메라들, 깊이 센서들, 근접 센서들, 터치 센서들(예를 들어, 터치 스크린, 트랙패드))와 통신한다. 일부 실시예들에서, 손 추적 디바이스는 스마트 장갑과 같은 웨어러블 디바이스이다. 일부 실시예들에서, 손 추적 디바이스는, 원격 제어부 또는 스타일러스와 같은 핸드헬드 입력 디바이스이다.
일부 실시예들에서, 전자 디바이스는 디스플레이 생성 컴포넌트를 통해, 사용자의 시점으로부터 3차원 환경(예를 들어, 3차원 환경(1122))을 디스플레이하며(1202a)(예를 들어, 3차원 환경은 가상 현실(VR) 환경, 혼합 현실(MR) 환경, 또는 증강 현실(AR) 환경 등과 같은 컴퓨터 생성 현실(XR) 환경임), 3차원 환경은, 3차원 환경 내의 제1 추정된 바닥 위치(예를 들어, 전자 디바이스의 물리적 환경 내의 물리적 바닥의 추정된 위치에 대응함)에 적어도 부분적으로 기초하여 결정된 위치들에서 3차원 환경에 하나 이상의 제1 가상 객체들(예를 들어, 일부 실시예들에서, 하나 이상의 가상 객체들은 하나 이상의 애플리케이션 사용자 인터페이스들 및/또는 윈도우들, 운영 체제 요소들, 3차원 환경 내의 다른 사용자들의 표현들, 전자 디바이스의 3차원 환경 내의 물리적 객체들의 표현들 등에 대응함)을 포함한다(1202b). 예를 들어, 사용자 인터페이스(1110), 가상 의자(1107), 및 사용자 B의 표현(1106)은 도 11a의 추정된 물리적 바닥 위치(1120a)에 기초하여 디스플레이되고 있다. 예를 들어, 3차원 환경 내의 하나 이상의 가상 객체들은 3차원 환경 내의 제1 추정된 바닥 위치에 기초한 위치들에 디스플레이된다(예를 들어, 하나 이상의 가상 객체들 중 제1 가상 객체는 제1 추정된 바닥 위치의 위치로부터(예를 들어, 그 위에) 0, 15, 30, 60, 90, 180, 또는 200 센티미터로 디스플레이되고, 하나 이상의 가상 객체들 중 제2 가상 객체는 제1 추정 바닥 위치로부터(예를 들어, 그 위에) 0, 1, 1.5, 3, 6, 9, 또는 12 센티미터로 디스플레이되는 등임). 일부 실시예들에서, 하나 이상의 가상 객체들은 3차원 환경 내의 제1 추정된 바닥 위치 아래의 위치에서 디스플레이될 수 없다. 일부 실시예들에서, 3차원 환경의 사용자의 시점이 변경되면, 전자 디바이스는 3차원 환경의 사용자의 새로운 시점으로부터 3차원 환경을 디스플레이하지만, 하나 이상의 가상 객체들은 제1 추정된 바닥에 대해 하나 이상의 위치들에 유지된다(예를 들어, 하나 이상의 가상 객체들이 3차원 환경 내의 바닥으로부터 디스플레이되고 있는 거리는 3차원 환경의 사용자의 시점이 변경될 때 변경되지 않음). 일부 실시예들에서, 전자 디바이스는 사용자의 머리/신체의 회전이 (예를 들어, 디바이스의 회전과 동시에) 검출될 때 그리고/또는 방법(800)을 참조하여 설명된 바와 같이 3차원 환경의 사용자의 시점의 변화를 검출한다.
일부 실시예들에서, 제1 추정된 바닥 위치에 기초하여 사용자의 시점으로부터 3차원 환경을 디스플레이하는 동안, 전자 디바이스는 전자 디바이스의 물리적 환경 내의 물리적 바닥의 추정된 위치에 대응하는, 제1 추정된 바닥 위치와 상이한 제2 추정된 바닥 위치를 결정한다(1202c). 예를 들어, 도 11b에서, 전자 디바이스(1102a)는 추정된 물리적 바닥 위치를 도 11a의 위치(1120a)로부터 도 11b의 위치(1150a)로 업데이트한다. 일부 실시예들에서, 나중에 더 상세히 설명될 바와 같이, 물리적 환경 내의 바닥의 추정된 위치는 전자 디바이스가 전자 디바이스의 물리적 환경에 관한 부가적인 정보를 획득/수집/검출함에 따라 업데이트된다. 일부 실시예들에서, 전자 디바이스는, 제2 추정된 위치가 물리적 환경 내의 물리적 바닥의 새로운 추정된 위치에 대응하기 때문에, 3차원의 바닥이 제2 추정된 위치로 업데이트되어야 한다고 결정한다. 일부 실시예들에서, 물리적 환경 내의 물리적 바닥의 추정된 위치가 변경될 때, 3차원 환경 내의 제1 추정된 바닥 위치는 물리적 환경 내의 바닥의 추정된 위치에 더 이상 대응하지 않는다.
일부 실시예들에서, 전자 디바이스의 물리적 환경 내의 물리적 바닥의 추정된 위치에 대응하는 제2 추정된 바닥 위치를 결정한 이후(1202d), 하나 이상의 기준들이 만족된다는 결정에 따라(1202e)(예를 들어, 3차원 환경 내의 객체들이 나중에 더 상세히 설명될 바와 같이, 제2 추정된 바닥 위치(예를 들어, 가장 최근에 결정된 바닥)에 대해 디스플레이되어야 하면), 전자 디바이스는 제2 추정된 바닥 위치에 기초하여 3차원 환경 내의 업데이트된 위치들에서 하나 이상의 제1 가상 객체들을 디스플레이한다(1202f). 예를 들어, 도 11d에서, 전자 디바이스(1102a)는 (더 이상, 추정된 물리적 바닥 위치(1120a)가 아니라) 추정된 물리적 바닥 위치(1150a)에 기초하여 3차원 환경(1122) 내의 객체들을 디스플레이하기 시작한다. 예를 들어, 하나 이상의 가상 객체들의 위치들은 바닥의 새로운 위치 - 제2 추정된 위치 - 에 대해 디스플레이된다(예를 들어, 하나 이상의 가상 객체들은 제2 추정된 바닥 위치에 기초하여 그리고 제1 추정된 바닥 위치에 기초하지 않으면서 디스플레이됨). 일부 실시예들에서, 3차원 환경 내의 바닥과 하나 이상의 가상 객체들 사이의 동일한 상대적 간격은 3차원 환경 내의 바닥이 제1 추정된 바닥 위치에 대응하는지 또는 제2 추정된 바닥 위치에 대응하는지에 관계없이 유지된다. 예를 들어, 하나 이상의 가상 객체들 중 제1 가상 객체가 제1 추정된 바닥 위치 위에 60 센티미터로 디스플레이되고 있었으면, 제1 가상 객체의 위치는 제1 가상 객체가 제2 추정된 바닥 위치 위에 60 센티미터로 디스플레이되도록 업데이트될 것이다. 일부 실시예들에서, 하나 이상의 가상 객체들은 3차원 환경 내의 제2 추정된 바닥 위치 아래의 위치에서 디스플레이될 수 없다. 일부 실시예들에서, 3차원 환경 내의 바닥이 제2 추정된 바닥 위치에 있는 동안 3차원 환경의 사용자의 시점이 변경되면, 전자 디바이스는 3차원 환경의 사용자의 새로운 시점으로부터 3차원 환경을 디스플레이하지만, 하나 이상의 가상 객체들은 3차원 환경 내의 하나 이상의 제2 위치들에 유지된다(예를 들어, 하나 이상의 가상 객체들이 바닥으로부터 디스플레이되고 있는 거리는 3차원 환경의 사용자의 시점이 변경될 때 변경되지 않음).
일부 실시예들에서, 하나 이상의 기준들이 만족되지 않는다는 결정에 따라(1202g)(예를 들어, 3차원 환경 내의 객체들이 제2 추정된 바닥 위치(예를 들어, 가장 최근에 결정된 바닥)에 대해 디스플레이되는 것이 아니라, 오히려 제1 추정된 바닥 위치에 대해 디스플레이되어야 하면), 전자 디바이스는 (예를 들어, 제1 추정된 바닥 위치가 부정확한 것으로 결정되고, 제2 추정된 바닥 위치가 더 정확한 것으로 결정된 이후에도) 제1 추정된 바닥 위치에 기초하여 하나 이상의 제1 가상 객체들을 3차원 환경 내의 그들의 위치들에 유지한다(1202h). 예를 들어, 도 11b에서, 전자 디바이스(1102a)가 전자 디바이스(1102a)의 물리적 환경(1121a) 내의 물리적 바닥의 그의 추정된 위치를 위치(1120a)로부터 위치(1150a)로 업데이트했더라도, 전자 디바이스(1102a)는 (위의 하나 이상의 기준들이 만족되지 않았기 때문에) 위치(1120a)에 대해 3차원 환경 내의 객체들을 계속 디스플레이한다. 예를 들어, 하나 이상의 기준들이 만족되지 않으면, 하나 이상의 가상 객체들은 제1 추정된 바닥 위치에 대한 위치들에 위치된 상태로 유지된다(예를 들어, 그리고 3차원 환경의 바닥이 제2 추정된 바닥 위치로 아직 업데이트되지 않았기 때문에 하나 이상의 제2 위치들로 이동되지 않음).
새로운 바닥 위치가 결정되었을 때 그리고 하나 이상의 기준들이 만족되었을 때 3차원 환경 내의 추정된 바닥을 업데이트하는 것은 특정 기준들이 충족될 때에만 3차원 환경 내의 객체들을 이동시키는 효율적인 방식을 제공하며, 그에 의해, 3차원 환경에 관여할 때 사용자에 대한 방향감각상실 및 인지적 부담을 감소시킨다.
일부 실시예들에서, 하나 이상의 기준들은, 전자 디바이스가 하나 이상의 입력 디바이스들을 통해, 하나 이상의 제2 기준들을 만족시키기 위해 하나 이상의 제1 가상 객체들의 위치들을 업데이트하라는 요청에 대응하는 개개의 입력 요소(예를 들어, 디스플레이 생성 컴포넌트, 전자 디바이스 상에 포함된 기계적 입력 요소 등을 통해 디스플레이됨)의 선택을 수신할 때 만족되는 기준을 포함한다(1204a). 일부 실시예들에서, 개개의 입력 요소를 선택하는 입력 및/또는 방법(1200)을 참조하여 설명된 하나 이상의 입력들은 방법(800)을 참조하여 설명된 바와 같은 에어 제스처 입력들이다. 예를 들어, 도 11c에서와 같이, 전자 디바이스(1102a)가 3차원 환경(1122) 내의 객체들을 재중심설정하라는 요청을 검출할 때, 전자 디바이스(1102a)는 추정된 물리적 바닥 위치(1120a)에 기초하여 3차원 환경(1122) 내의 객체들을 디스플레이하는 것을 중지하고, 추정된 물리적 바닥 위치(1150a)에 기초하여 3차원 환경(1122) 내의 객체들을 디스플레이하기 시작한다. 일부 실시예들에서, 개개의 입력 요소의 선택에 응답하여, 하나 이상의 제1 가상 객체들의 위치들은 방법(800)에 설명된 바와 유사한 방식으로 하나 이상의 제2 기준들을 만족시키도록 업데이트된다. 일부 실시예들에서, 3차원 환경의 사용자의 시점이 하나 이상의 제1 가상 객체들로부터 임계 거리(예를 들어, 10, 20, 30, 40, 50, 100, 200, 300, 400, 500, 1000, 또는 2000 센티미터) 초과로 이동될 때, 하나 이상의 제1 가상 객체들이 3차원 환경의 사용자의 새로운 시점을 향해 더 이상 배향되지 않을 때, 그리고/또는 하나 이상의 제1 가상 객체들이 3차원 환경의 사용자의 새로운 시점으로부터의 시야에 더 이상 있지 않을 때 등에(예를 들어, 그리고/또는 방법(800)을 참조하여 설명된 임의의 다른 방식으로), 개개의 입력 요소는 디스플레이 생성 컴포넌트를 통해 디스플레이된다. 일부 실시예들에서, 3차원 환경의 사용자의 시점이 3차원 환경의 제2 시점으로 변경/이동할 때 디스플레이 생성 컴포넌트를 통해 디스플레이되지만, 하나 이상의 제1 가상 객체들은 3차원 환경의 사용자의 이전의 시점에 기초한 포즈들(예를 들어, 포지션들/배향들)로 3차원 환경에서 디스플레이되고 있다. 일부 실시예들에서, 전자 디바이스는, (예를 들어, 개개의 입력 요소가 디스플레이 생성 컴포넌트를 통해 디스플레이되면) 사용자의 시선이 개개의 사용자 인터페이스 요소를 향해 지향되는 동안 사용자가 사용자의 손의 검지 손가락 및 엄지를 사용하여 핀칭 제스처를 수행할 때 개개의 사용자 인터페이스 요소의 선택을 검출한다. 일부 실시예들에서, 전자 디바이스는, (예를 들어, 개개의 입력 요소가 디스플레이 생성 컴포넌트를 통한 디스플레이이면) 사용자가 개개의 사용자 인터페이스 요소의 위치에 대응하는 전자 디바이스의 터치 스크린의 위치를 탭할 때 개개의 사용자 인터페이스 요소의 선택을 검출한다. 일부 실시예들에서, 개개의 사용자 인터페이스 요소는, (예를 들어, 개개의 입력 요소가 디스플레이 생성 컴포넌트를 통한 디스플레이이면) 개개의 사용자 인터페이스 요소가 포커스를 갖는 동안 마우스 또는 터치패드 상에서의 클릭 동작이 수행될 때 선택된다. 일부 실시예들에서, 개개의 입력 요소는 물리적 버튼, 스위치, 다이얼 등이다.
개개의 입력 요소의 선택이 검출될 때까지 새로운 추정된 바닥 위치(예를 들어, 제2 추정된 바닥 위치)에 기초하여 3차원 환경 내의 업데이트된 위치들에서 하나 이상의 제1 가상 객체들의 디스플레이를 지연시키는 것은 사용자 입력이 이를 행하기 위해 수신될 때까지 이전의 추정된 바닥 위치에서 하나 이상의 제1 가상 객체들을 계속 디스플레이하는 효율적인 방식을 제공하며, 그에 의해, 3차원 환경에 관여할 때 사용자에 대한 방향감각상실 및 인지적 부담을 감소시킨다.
일부 실시예들에서, 하나 이상의 기준들은, 사용자의 일부 상의 디스플레이 생성 컴포넌트를 포함하는 디바이스의 배치가 제2 추정된 바닥 위치를 결정한 이후 변경될 때 만족되는(예를 들어, 그리고 사용자의 일부 상의 디스플레이 생성 컴포넌트의 배치가 제2 추정된 바닥 위치를 결정한 이후 변경되지 않을 때 만족되지 않는) 기준을 포함한다(1206a). 예를 들어, 새로운 추정된 물리적 바닥 위치(1150a)를 검출한 이후, 전자 디바이스(1102a)는 디바이스(1102a)의 사용자가 디바이스(1102a)를 오프/온으로 취할 때까지 위치(1120a)에 대해 3차원 환경(1102) 내의 객체들을 계속 디스플레이한다. 예를 들어, 전자 디바이스가 3차원 환경에 대한 새로운 추정된 바닥 위치(예를 들어, 제2 추정된 바닥 위치)를 결정한 이후, 하나 이상의 가상 객체들은 사용자 상의 디스플레이 생성 컴포넌트의 배치가 변경될 때까지 제1 추정된 바닥 위치(예를 들어, 이전의 추정된 바닥 위치)에 기초한 위치들에서 계속 디스플레이된다. 일부 실시예들에서, 디스플레이 생성 컴포넌트가 머리 장착형 디스플레이이면, 사용자가 머리 장착형 디스플레이를 더 이상 착용하고 있지 않다는 것(예를 들어, 디스플레이 생성 컴포넌트가 사용자의 머리 상에 더 이상 배치되지 않는다는 것)을 전자 디바이스가 검출할 때, 전자 디바이스는 디스플레이 생성 컴포넌트의 배치가 변경된다는 것을 검출한다. 일부 실시예들에서, 사용자가 디스플레이 생성 컴포넌트를 더 이상 보유하고 있지 않다는 것을 전자 디바이스가 검출할 때, 전자 디바이스는 디스플레이 생성 컴포넌트의 배치가 변경된다는 것을 검출한다. 일부 실시예들에서, 제2 추정된 바닥 위치가 검출된 이후, 하나 이상의 제1 가상 객체들의 위치들은, 전자 디바이스가 이전에 오프로 취해진(예를 들어, 제2 추정된 바닥 위치가 결정된 이후 오프로 취해진) 이후 전자 디바이스가 사용자 상에 배치되는(예를 들어, 사용자의 머리 상에 배치되는) 것에 응답하여 제2 추정된 바닥 위치에 기초하여, 업데이트된 위치들에서 디스플레이된다.
디스플레이 생성 컴포넌트의 배치가 변경될 때까지 새로운 추정된 바닥 위치(예를 들어, 제2 추정된 바닥 위치)에 기초하여 3차원 환경 내의 업데이트된 위치들에서 하나 이상의 제1 가상 객체들의 디스플레이를 지연시키는 것은 특정 기준들/조건들이 만족될 때까지 이전의 추정된 바닥 위치에서 하나 이상의 제1 가상 객체들을 계속 디스플레이하는 효율적인 방식을 제공하며, 그에 의해, 3차원 환경에 관여할 때 사용자에 대한 방향감각상실 및 인지적 부담을 감소시킨다.
일부 실시예들에서, 하나 이상의 기준들은, 전자 디바이스가 제2 추정된 바닥 위치를 결정한 이후 3차원 환경에서 가상 환경을 디스플레이하라는 요청을 수신할 때 만족되는(예를 들어, 그리고 전자 디바이스가 제2 추정된 바닥 위치를 결정한 이후 3차원 환경에서 가상 환경을 디스플레이하라는 요청을 수신하지 않을 때 만족되지 않는) 기준을 포함하며, 여기서 가상 환경은 제2 추정된 바닥 위치가 결정되었을 때 3차원 환경에서 디스플레이되지 않았다(1208a). 예를 들어, 새로운 추정된 물리적 바닥 위치(1150a)를 검출한 이후, 전자 디바이스(1102a)는 디바이스(1102a)가 가상 환경을 디스플레이하라는 요청을 검출할 때까지 위치(1120a)에 대해 3차원 환경(1102) 내의 객체들을 계속 디스플레이한다. 예를 들어, 전자 디바이스가 전자 디바이스의 물리적 환경 내의 물리적 바닥의 더 적절한 추정된 위치를 결정한 이후에도, 하나 이상의 제1 가상 객체들은, 새로운 가상 환경이 3차원 환경에서 디스플레이될 때까지 새롭게 결정된 바닥 위치(제2 추정된 바닥 위치)가 아니라 제1 추정된 바닥 위치(예를 들어, 이전의 추정된 바닥 위치)에 기초하여 3차원 환경에서 계속 디스플레이된다. 일부 실시예들에서, 3차원 내의 가상 환경을 디스플레이하라는 요청이 수신될 때, 3차원 환경은 임의의 가상 환경을 디스플레이하고 있지 않았거나 또는 상이한 가상 환경을 디스플레이하고 있었다. 일부 실시예들에서, 3차원 환경은 하나 이상의 가상 환경들에 대응하는 하나 이상의 어포던스들을 포함한다. 일부 실시예들에서, 가상 환경은 가상 환경에 대응하는 어포던스가 선택될 때 디스플레이된다. 일부 실시예들에서, 가상 환경은, 선택적으로 물리적 환경의 표현들 대신에 또는 선택적으로 물리적 환경의 표현과 동시에, 3차원 환경에서 디스플레이될 수 있는 시뮬레이션된 3차원 환경이다. 가상 환경의 일부 예들은 호수 환경, 산 환경, 일몰 장면, 일출 장면, 야간 환경, 초원 환경, 콘서트 장면, 스포츠 게임 등을 포함한다.
전자 디바이스가 가상 환경을 디스플레이하라는 요청을 수신할 때까지 새로운 추정된 바닥 위치(예를 들어, 제2 추정된 바닥 위치)에 기초하여 3차원 환경 내의 업데이트된 위치들에서 하나 이상의 제1 가상 객체들의 디스플레이를 지연시키는 것은 특정 기준들/조건들이 만족될 때까지 이전의 추정된 바닥 위치에서 하나 이상의 제1 가상 객체들을 계속 디스플레이하는 효율적인 방식을 제공하며, 그에 의해, 3차원 환경에 관여할 때 사용자에 대한 방향감각상실 및 인지적 부담을 감소시킨다.
일부 실시예들에서, 물리적 바닥의 추정된 위치를 결정하는 것은 물리적 환경 내의 물리적 바닥의 적어도 일부에 대응하는 평면을 검출하는 것에 기초한다(1210a). 예를 들어, 도 11b에서, 디바이스(1102a)는 물리적 환경(1121a) 내의 물리적 바닥의 새로운 추정된 위치 - 위치(1150a) - 를 검출했는데, 그 이유는 디바이스(1102a)가 물리적 환경(1121a) 내의 바닥의 일부에 대응하는 평면을 검출했기 때문이다. 일부 실시예들에서, 물리적 환경 내의 물리적 바닥의 적어도 일부에 대응하는 평면은 전자 디바이스의 하나 이상의 (예를 들어, 이미지, 레이더, 라이더, 깊이, 초음파 등) 센서들을 통해 검출된다. 일부 실시예들에서, 전자 디바이스는 물리적 환경 내의 평면과 전자 디바이스 사이의 높이 차이(예를 들어, 검출된 평면이 전자 디바이스로부터 Y-방향에서 얼마나 멀리 있는지)를 결정함으로써 물리적 바닥 위치를 추정하기 위해 평면을 사용한다. 일부 실시예들에서, 전자 디바이스는 물리적 바닥의 일부가 사용자/전자 디바이스의 시야에 있을 때 평면을 검출한다(예를 들어, 이미지 센서(들)는 시야를 정의하기 위해 사용자에 대해 포지셔닝됨).
평면 검출에 기초하여 물리적 바닥의 추정된 위치를 결정하는 것은 물리적 환경 내의 물리적 바닥의 위치를 자동으로 추정하는 효율적인 방식을 제공하며, 그에 의해, 사용자가 전자 디바이스를 신속하고 효율적으로, 그리고 전자 디바이스의 사용자가 물리적 환경 내의 물리적 바닥의 위치를 수동으로 설정할 필요 없이 사용할 수 있게 한다.
일부 실시예들에서, 물리적 바닥의 추정된 위치를 결정하는 것은 디바이스에 의해 검출되는 사용자의 제1 부분(예를 들어, 사용자의 머리)의 위치에 관한 정보 및 사용자의 제1 부분과, 바닥과 접촉하는 것으로 가정된 사용자의 제2 부분(예를 들어, 사용자의 다리) 사이의 거리의 추정에 기초한다(1212a). 예를 들어, 도 11a에서, 전자 디바이스(1102a)는 선택적으로, 물리적 환경(1121a) 내의 물리적 바닥의 위치가 전자 디바이스(1102a)의 사용자(사용자 A)에 관한 높이 정보에 기초하여 위치(1120a)에 있다고 추정했다. 일부 실시예들에서, 전자 디바이스가 물리적 환경 내의 물리적 바닥의 적어도 일부에 대응하는 평면을 검출하지 않으면, 전자 디바이스는 하나 이상의 사용자들에 관한 정보에 기초하여 물리적 바닥의 위치를 추정한다. 일부 실시예들에서, 하나 이상의 사용자들에 관한 정보는 전자 디바이스의 사용자에 관한 정보 및/또는 전자 디바이스의 사용자 이외의 사용자(들)에 관한 정보를 포함한다. 예를 들어, 전자 디바이스가 전자 디바이스의 사용자의 연령 및/또는 성별에 대한 액세스를 갖는다면(예를 들어, 그러한 정보를 포함하는 사용자 프로파일에 대한 액세스를 갖는다면), 물리적 바닥의 위치는 전자 디바이스의 사용자와 유사한 연령들 및/또는 성별들의 사용자들에 대한 알려진 서 있는 평균 높이에 기초하여 선택적으로 추정된다. 일부 실시예들에서, 물리적 바닥 내의 물리적 바닥의 위치를 더 양호하게 추정하기 위해, 하나 이상의 사용자들에 관한 정보가 위에서 설명된 평면 검출 기법에 부가하여 사용된다. 일부 실시예들에서, 하나 이상의 사용자들의 높이 정보는 물리적 환경 내의 물리적 바닥의 위치를 추정하는 데 사용된다. 예를 들어, 사용자가 5살의 150 센티미터 높이이면, 전자 디바이스는 선택적으로 전자 디바이스 아래에 5가 되도록 바닥을 추정한다.
사용자 정보에 기초하여 물리적 바닥의 추정된 위치를 결정하는 것은 물리적 환경 내의 물리적 바닥의 위치를 자동으로 추정하는 효율적인 방식을 제공하며, 그에 의해, 사용자가 전자 디바이스를 신속하고 효율적으로, 그리고 전자 디바이스의 사용자가 물리적 환경 내의 물리적 바닥의 위치를 수동으로 설정할 필요 없이 사용할 수 있게 한다.
일부 실시예들에서, 사용자의 제1 부분과 사용자의 제2 부분 사이의 거리의 추정은 전자 디바이스의 사용자의 알려진 높이에 기초한다(1214a). 예를 들어, 도 11a에서, 전자 디바이스(1102a)는 선택적으로, 물리적 환경(1121a) 내의 물리적 바닥의 위치가 전자 디바이스(1102a)의 사용자(사용자 A)에 관한 높이 정보에 기초하여 위치(1120a)에 있다고 추정했다. 예를 들어, 전자 디바이스가 사용자의 높이에 관한 정보에 대한 액세스(예를 들어, 그 정보를 포함하는 사용자 프로파일)를 갖는다면, 전자 디바이스는 전자 디바이스의 사용자의 높이에 기초하여 물리적 바닥의 위치를 추정한다. 예를 들어, 사용자가 (예를 들어, 전자 디바이스가 머리 장착형 디바이스이면) 전자 디바이스를 현재 착용하고 있고, 전자 디바이스의 사용자가 180 센티미터 높이라는 것을 표시하는 정보에 대한 액세스를 전자 디바이스가 갖는다면, 전자 디바이스는 선택적으로, 전자 디바이스가 현재 착용되고 있는 곳의 182 센티미터 아래(또는 0.5, 5, 10, 15, 20, 또는 30 센티미터 위 또는 아래)에 물리적 바닥이 현재 위치된다고 추정한다. 일부 실시예들에서, 전자 디바이스는, 물리적 바닥이 사용자의 시야에 있지 않을 때(예를 들어, 물리적 바닥의 적어도 일부의 평면이 전자 디바이스에 의해 검출될 수 없을 때) 사용자의 높이 정보로 물리적 바닥의 위치를 추정한다.
전자 디바이스의 사용자의 높이 정보에 기초하여 물리적 바닥의 추정된 위치를 결정하는 것은 물리적 환경 내의 물리적 바닥의 위치를 자동으로 추정하는 효율적인 방식을 제공하며, 그에 의해, 사용자가 전자 디바이스를 신속하고 효율적으로, 그리고 전자 디바이스의 사용자가 물리적 환경 내의 물리적 바닥의 위치를 수동으로 설정할 필요 없이 사용할 수 있게 한다.
일부 실시예들에서, 사용자의 제1 부분과 사용자의 제2 부분 사이의 거리의 추정은 평균 높이(예를 들어, 잠재적 사용자들의 평균 높이 또는 디바이스의 사용자와 유사한 인구통계학적 특성들을 갖는 사용자들의 평균 높이)에 기초한 사용자의 추정된 높이에 기초한다(1216a). 예를 들어, 도 11a에서, 전자 디바이스(1102a)는 선택적으로, 물리적 환경(1121a) 내의 물리적 바닥의 위치가 복수의 사용자들에 대한 평균 높이 정보에 기초하여 위치(1120a)에 있다고 추정했다. 전자 디바이스의 사용자의 높이에 관한 정보를 사용하는 것에 부가적으로 또는 대안적으로, 전자 디바이스는 선택적으로, 다른 사용자들의 평균 높이 정보에 기초하여 전자 디바이스의 물리적 환경 내의 물리적 바닥의 위치를 추정한다. 예를 들어, 전자기기의 사용자 프로파일이 전자 디바이스의 사용자에 관한 높이 정보를 현재 포함하지 않으면 그리고 전자 디바이스가 머리 장착형 디바이스이면, 전자 디바이스는 선택적으로, 물리적 바닥이 복수의 사용자들의 평균 높이 미만의 개개의 거리에 현재 위치된다고 추정한다. 예를 들어, 사용자가 (예를 들어, 전자 디바이스가 머리 장착형 디바이스이면) 전자 디바이스를 현재 착용하고 있고, 복수의 사용자들의 평균 높이가 180 센티미터 높이라는 것을 표시하는 정보에 대한 액세스를 전자 디바이스가 갖는다면, 전자 디바이스는 선택적으로, 전자 디바이스가 현재 착용되고 있는 곳의 180 센티미터 아래(또는 0.5, 5, 10, 15, 20, 25, 또는 30 센티미터 위 또는 아래)에 물리적 바닥이 현재 위치된다고 추정한다. 일부 실시예들에서, 전자 디바이스는, 물리적 바닥이 사용자/전자 디바이스의 시야에 있지 않을 때 물리적 바닥의 위치를 추정한다(예를 들어, 이미지 센서(들)는 시야를 정의하기 위해 사용자에 대해 포지셔닝됨). 일부 실시예들에서, 복수의 사용자들은 3차원 환경에 포함되는 사용자들, 일반적인 공중의 사용자들, 3차원 환경에 포함되지 않은 사용자들 등이다. 복수의 사용자들에 대한 평균 높이 정보에 기초하여 물리적 바닥의 추정된 위치를 결정하는 것은 물리적 환경 내의 물리적 바닥의 위치를 자동으로 추정하는 효율적인 방식을 제공하며, 그에 의해, 사용자가 전자 디바이스를 신속하고 효율적으로, 그리고 전자 디바이스의 사용자가 물리적 환경 내의 물리적 바닥의 위치를 수동으로 설정할 필요 없이 사용할 수 있게 한다.
일부 실시예들에서, 사용자의 제1 부분과 사용자의 제2 부분 사이의 거리의 추정은 전자 디바이스의 물리적 환경 내의 전자 디바이스의 사용자의 현재 포즈에 기초한다(1218a). 예를 들어, 도 11a에서, 전자 디바이스(1102a)는 선택적으로, 물리적 환경(1121a) 내의 물리적 바닥의 위치가 물리적 환경(1121a) 내의 전자 디바이스(1102a)의 사용자(사용자 A)의 포즈에 기초한 위치(1120a)에 있다고 추정했다. 예를 들어, 전자 디바이스는 전자 디바이스의 사용자의 현재 포즈에 기초하여 물리적 환경 내의 물리적 바닥의 위치를 추정한다. 예를 들어, 전자 디바이스의 사용자가 "앉아 있는" 포즈에 있는 동안 전자 디바이스를 유지 또는 착용하고 있으면, 전자 디바이스는 선택적으로, 물리적 바닥이 사용자가 서 있었던 경우보다 전자 디바이스에 더 가깝다고 결정한다. 유사하게, 전자 디바이스의 사용자가 "서 있는" 포즈에 있다고 전자 디바이스가 결정하면, 전자 디바이스는 선택적으로, 물리적 바닥이 사용자가 앉아 있었던 경우보다 전자 디바이스로부터 더 멀리 있다고 결정한다. 일부 실시예들에서, 사용자의 다른 포즈들, 예컨대 무릎꿇는 포즈, 웅크린 포즈 등이 또한 전자 디바이스에 의해 검출될 수 있으며, 이는 또한, 전자 디바이스가 물리적 환경 내의 물리적 바닥으로부터 얼마나 가까운지 또는 얼마나 멀리 있는지를 추정하기 위해 전자 디바이스에 의해 사용될 수 있다. 일부 실시예들에서, 전자 디바이스는 하나 이상의 활동 센서들을 사용하는 사용자의 포즈를 검출한다. 일부 실시예들에서, 전자 디바이스는 선택적으로, 디바이스가 물리적 환경 내의 물리적 객체로부터 제1 개개의 높이에 또는 그 내에 있다는 것을 전자 디바이스가 검출하면 사용자가 앉아 있다고 결정하고, 선택적으로, 디바이스가 물리적 객체로부터 적어도 제1 개개의 높이가 아니라면 사용자가 서 있다고 결정한다. 일부 실시예들에서, 전자 디바이스는 사용자의 포즈가 변경될 때 물리적 환경 내의 물리적 바닥의 추정된 위치를 업데이트한다.
전자 디바이스의 사용자의 현재 포즈에 기초하여 물리적 바닥의 추정된 위치를 결정하는 것은 물리적 환경 내의 물리적 바닥의 위치를 자동으로 추정하는 효율적인 방식을 제공하며, 그에 의해, 사용자가 전자 디바이스를 신속하고 효율적으로, 그리고 전자 디바이스의 사용자가 물리적 환경 내의 물리적 바닥의 위치를 수동으로 설정할 필요 없이 사용할 수 있게 한다.
일부 실시예들에서, 전자 디바이스의 현재 위치가 알려진 위치라는 결정에 따라, 물리적 바닥의 추정된 위치를 결정하는 것은 (예를 들어, 전자 디바이스에 의해 이전에 검출/관측되었던) 전자 디바이스의 물리적 환경에 관한 이전의 정보에 기초한다(1220a). 예를 들어, 도 11a에서, 전자 디바이스(1102a)는 선택적으로, 물리적 환경(1121a) 내의 물리적 바닥의 위치가 위치(1120a)에 있다고 추정했는데, 그 이유는 디바이스(1102a)의 현재 위치가 알려진 위치라는 것을 전자 디바이스(1102a)가 검출했기 때문이다. 일부 실시예들에서, 전자 디바이스는 그것이 동작되었던 곳에 관한 정보(예를 들어, 하나 이상의 물리적 환경들의 위치 정보)를 저장한다. 예를 들어, 전자 디바이스가 현재 위치되는 위치에서 전자 디바이스가 이전에 동작되었다면, 전자 디바이스는 물리적 바닥의 위치를 추정하기 위해, 이전의 동작 세션들에서 저장되었던 정보를 사용한다. 일부 실시예들에서, 이전의 동작 세션들 동안 저장되었던 정보는 물리적 바닥의 위치에 관한 정보, 바닥이 물리적으로 위치되지 않는 곳에 관한 정보, 물리적 바닥의 일부에 대응하는, 이전에 검출되었던 평면에 관한 위치 정보, 물리적 바닥에 대한 물리적 객체들의 거리에 관한 정보 등을 포함한다. 일부 실시예들에서, 전자기기의 현재 위치가 알려진 위치가 아니면(예를 들어, 전자 디바이스가 현재 위치에서 이전에 결코 동작되지 않았다면), 전자 디바이스는 이전에 위에서 설명된 기법들 중 하나 이상을 사용한다.
전자 디바이스의 현재 위치에 관해 검출되었던 이전의 정보에 기초하여 물리적 바닥의 추정된 위치를 결정하는 것은 물리적 환경 내의 물리적 바닥의 위치를 자동으로 추정하는 효율적인 방식을 제공하며, 그에 의해, 사용자가 전자 디바이스를 신속하고 효율적으로, 그리고 전자 디바이스의 사용자가 물리적 환경 내의 물리적 바닥의 위치를 수동으로 설정할 필요 없이 사용할 수 있게 한다.
일부 실시예들에서, 제2 추정된 바닥 위치에 기초하여 하나 이상의 가상 객체들을 디스플레이하는 동안, 전자 디바이스는 하나 이상의 입력 디바이스들을 통해, 3차원 환경에서 하나 이상의 제1 가상 객체들과 상이한 하나 이상의 제2 가상 객체들을 디스플레이하라는 요청(예를 들어, 하나 이상의 제2 애플리케이션 윈도우들, 하나 이상의 제2 운영 체제 요소들, 하나 이상의 제2 사용자들의 하나 이상의 제2 표현들, 하나 이상의 제2 콘텐츠 항목들 등을 디스플레이하라는 요청)에 대응하는 입력을 수신한다(1222a). 일부 실시예들에서, 입력을 수신하는 것에 응답하여, 전자 디바이스는 제2 추정된 바닥 위치에 기초하여 3차원 환경 내의 하나 이상의 위치들에서 하나 이상의 제2 가상 객체들을 디스플레이한다(1222b). 예를 들어, 도 11d에서, 전자 디바이스(1102a)는 추정된 물리적 바닥 위치(1150a)에 대해 애플리케이션 B의 사용자 인터페이스(1132)를 디스플레이하는데, 그 이유는 3차원 환경(1122) 내의 다른 객체들이 추정된 물리적 바닥 위치(1150a)에 대해 디스플레이되고 있기 때문이다. 예를 들어, 전자 디바이스가 제2 추정된 바닥 위치(예를 들어, 가장 최근에 결정된 추정된 바닥 위치)에 기초하여, 업데이트된 위치들에서 디스플레이되도록 하나 이상의 제1 가상 객체들을 업데이트한 이후, 미래의 디스플레이된 가상 객체들은 또한, 제1 추정된 바닥 위치(예를 들어, 물리적 환경 내의 물리적 바닥의 이전에 추정된 위치)가 아니라 제2 추정된 바닥 위치에 기초하여 디스플레이된다. 일부 실시예들에서, - 위에서 설명된 - 하나 이상의 기준들이 만족되기 전에 가상 객체가 3차원 환경에 추가되면, 가상 객체는 제1 추정된 바닥 위치에 기초한 위치에서 디스플레이된다. 일부 실시예들에서, 하나 이상의 제2 객체들은 제2 추정된 바닥 위치로부터 디폴트 높이(예를 들어, 15, 30, 45, 2, 60, 150, 또는 200 센티미터)에 배치된다.
3차원 환경에서 현재 디스플레이되고 있는 가상 객체들의 위치들이 기초하는 동일한 추정된 바닥 위치에 기초한 위치들에서 새로운 가상 객체들을 디스플레이하는 것은 동일한 추정된 바닥 위치에 기초하여 3차원 환경 내의 새로운 및 현재 가상 객체들을 디스플레이하는 효율적인 방식을 제공하며, 그에 의해, 3차원 환경에 관여할 때 사용자에 대한 방향감각상실 및 인지적 부담을 감소시킨다.
일부 실시예들에서, 제1 추정된 바닥 위치는 3차원 환경의 제1 경계 - 하나 이상의 제1 가상 객체들은 제1 경계를 넘어 이동될 수 없음 - 를 정의하고, 제2 추정된 바닥 위치는 3차원 환경의 제1 경계와 상이한 제2 경계 - 하나 이상의 제1 가상 객체들은 제2 경계를 넘어 이동될 수 없음 - 를 정의한다(1224a). 예를 들어, 도 11d에서, 전자 디바이스(1102a)가 위치(1150a)에 대해 3차원 환경(1122) 내의 객체들을 디스플레이하고 있는 동안, 전자 디바이스(101)는 3차원 환경(1304) 내의 객체들로 하여금 위치(1150a) 아래로 이동되게 할 입력에 응답하지 않는다. 예를 들어, 하나 이상의 제1 가상 객체들이 제1 추정된 바닥 위치에 기초하여 결정된 위치들에서 디스플레이되고 있는 동안, 하나 이상의 가상 객체들은 제1 추정된 바닥 위치 아래에서 디스플레이/그 아래로 이동될 수 없다. 유사하게, 하나 이상의 제1 가상 객체들이 제2 추정된 바닥 위치에 기초하여 결정된 위치들에서 디스플레이되고 있는 동안, 하나 이상의 제1 가상 객체들은 제2 추정된 바닥 위치 아래에서 디스플레이/그 아래로 이동될 수 없다.
3차원 환경 내의 추정된 바닥 위치가 변경됨에 따라 3차원 환경의 경계를 변경시키는 것은 3차원 환경 내의 현재 추정된 바닥 위치를 넘는 3차원 환경 내의 가상 객체들의 이동을 제한하는 효율적인 방식을 제공하며, 그에 의해, 3차원 환경에 관여할 때 사용자에 대한 방향감각상실 및 인지적 부담을 감소시킨다.
일부 실시예들에서, 하나 이상의 가상 객체들은 전자 디바이스의 사용자 이외의 3차원 환경 내의 하나 이상의 사용자들의 하나 이상의 표현들, 예컨대 도 11a의 사용자 B의 표현(1106)을 포함한다(1226a). 예를 들어, 일부 실시예들에서, 3차원 환경은 전자 디바이스의 사용자 및 하나 또는 다른 사용자들을 포함하는 2개 이상의 사용자들을 포함한다. 일부 실시예들에서, 사용자와 연관된 전자 디바이스는 3차원 환경 내의 그러한 다른 사용자들의 시점들의 위치들에서 3차원 환경 내의 하나 이상의 다른 사용자들의 아바타를 디스플레이한다. 일부 실시예들에서, 3차원 환경 내의 하나 이상의 사용자들의 하나 이상의 표현들의 위치들은 3차원 환경 내의 바닥의 추정된 위치가 변경됨에 따라 업데이트된다. 예를 들어, 3차원 환경 내의 바닥의 위치가 제1 추정된 바닥 위치에 대응하는 동안, 하나 이상의 사용자들의 표현들은 선택적으로, 제1 추정된 바닥 위치에 기초한 위치들에서 디스플레이된다. 유사하게, 3차원 환경 내의 바닥의 위치가 제2 추정된 바닥 위치에 대응하는 동안, 하나 이상의 사용자들의 표현들은 선택적으로, (예를 들어, 위에서 설명된 하나 이상의 기준들이 만족되면) 제2 추정된 바닥 위치에 기초한 위치들에서 디스플레이된다. 3차원 환경에서, 3차원 환경 내의 현재 추정된 바닥 위치에 기초한 위치들에서 사용자들의 표현들을 디스플레이하는 것은 3차원 환경 내의 추정된 바닥 위치에 대해 그러한 가상 객체들을 디스플레이하는 효율적인 방식을 제공하며, 그에 의해, 3차원 환경에 관여할 때 사용자에 대한 방향감각상실 및 인지적 부담을 감소시킨다.
일부 실시예들에서, 전자 디바이스가 제2 추정된 바닥 위치에 기초하여 하나 이상의 제1 가상 객체들을 디스플레이하고 있는 동안, 제2 전자 디바이스는 제2 전자 디바이스의 제2 사용자의 시점으로부터 3차원 환경을 디스플레이하고 있으며(예를 들어, 제2 전자 디바이스는 전자 디바이스와 동일한 3차원 환경을 (전자 디바이스의 사용자의 시점으로부터가 아니라) 제2 사용자의 시점으로부터 디스플레이하고 있다. 일부 실시예들에서, 제2 전자 디바이스는 제2 사용자의 시점으로부터 3차원 환경을 디스플레이하고 있는데, 그 이유는 제2 전자 디바이스가 제2 사용자의 시점에 대응하는 제2 전자 디바이스의 물리적 환경 내의 위치 및/또는 배향에 있기 때문이다.), 여기서 하나 이상의 제1 가상 객체들은 제2 전자 디바이스의 물리적 환경 내의 물리적 바닥의 추정된 위치에 기초하여 제2 전자 디바이스에 의해 디스플레이된다(1230a). 예를 들어, 전자 디바이스(1102a)는 그의 추정된 물리적 바닥 위치(1120a)에 대해 3차원 환경(1102a) 내의 객체들을 디스플레이하고 있고, 전자 디바이스(1104b)는 그의 추정된 물리적 바닥 위치(1127b)에 대해 3차원 환경(1122) 내의 객체들을 디스플레이하고 있다. 예를 들어, 제2 전자 디바이스는 제2 전자 디바이스의 물리적 환경 내의 물리적 바닥의 추정된 위치에 대해 3차원 환경을 디스플레이하고 있는 반면, 전자 디바이스는 제1 전자 디바이스의 물리적 환경 내의 물리적 바닥의 추정된 위치에 대해 3차원 환경을 디스플레이하고 있다. 따라서, 3차원 환경이 개개의 사용자들에 대한 추정된 바닥 위치에 대해 디스플레이되기 때문에, 가상 객체들은 또한, 그러한 개개의 사용자들에 대한 추정된 바닥 위치에 대해 디스플레이된다. 예를 들어, 전자 디바이스가, 3차원 환경에서, 제2 추정된 바닥 위치 위의 개개의 거리(예를 들어, 0, 15, 30, 45, 60, 90, 180, 또는 200 센티미터)로 하나 이상의 제1 가상 객체들의 개개의 가상 객체를 디스플레이하고 있으면, 제2 전자 디바이스는 또한, 3차원 환경에서, 제2 전자 디바이스의 물리적 환경 내의 물리적 바닥의 추정된 위치 위의 개개의 거리(예를 들어, 0, 15, 30, 45, 60, 90, 180, 또는 200 센티미터)로 개개의 가상 객체를 디스플레이하고 있다. 일부 실시예들에서, 전자 디바이스의 물리적 환경 내의 물리적 바닥의 추정된 위치 및 제2 전자 디바이스의 물리적 환경 내의 물리적 바닥의 추정된 위치는 개개의 물리적 바닥들의 실제 위치로부터 상이한 거리들이다(예를 들어, 전자 디바이스의 물리물 내의 물리적 바닥의 추정된 위치는 실제 물리적 바닥으로부터 0, 15, 40, 또는 90 센티미터 떨어져 있을 수 있는 반면, 물리적 바닥 내의 물리물의 추정된 위치는 실제 물리적 바닥으로부터 100, 200, 300, 또는 400 센티미터 떨어져 있을 수 있다).
3차원 환경 내의 하나 이상의 사용자들에 대한 물리적 바닥의 추정된 위치에 대해 3차원 환경(및 3차원 환경의 객체들)을 디스플레이하는 것은 3차원 환경의 다수의 사용자들에 대해 3차원 환경을 디스플레이하는 효율적인 방식을 제공하며, 그에 의해, 3차원 환경에 관여할 때 사용자에 대한 방향감각상실 및 인지적 부담을 감소시킨다.
일부 실시예들에서, 3차원 환경을 디스플레이하는 동안, 전자 디바이스는 하나 이상의 입력 디바이스들을 통해, 3차원 환경에서 제1 동작을 수행하기 위한(예를 들어, 3차원 환경에서 애플리케이션을 개시하기 위한) 입력을 수신한다(1232a). 일부 실시예들에서, 입력을 수신하는 것에 응답하여(1232b), 제1 동작이 제1 레벨의 정밀도를 갖는 물리적 환경 내의 물리적 바닥의 추정된 위치의 결정을 요구한다는 결정에 따라(1232c)(예를 들어, 개시되고 있는 애플리케이션이 제1 양의 정확도로 추정되도록 물리적 바닥의 추정된 위치를 요구하면. 일부 실시예들에서, 제1 레벨의 정밀도로 추정되도록 물리적 바닥의 위치를 요구하는 동작들/애플리케이션들은 제1 동작과 연관된 사용자 인터페이스들/요소들이 디스플레이될 수 있는 경계들을 정의하도록 사용자에게 요구하는 동작들/애플리케이션들을 포함한다. 일부 그러한 예들에서, 경계들을 요구하는 애플리케이션들은 게이밍 애플리케이션들 및/또는 정규 사용자 이동을 요구하는 애플리케이션들을 포함한다(예를 들어, 사용자는 정지상태 또는 앉아 있는 상태로 유지되는 동안 애플리케이션과 상호작용할 수 없음)), 전자 디바이스는 물리적 환경 내의 물리적 바닥의 추정된 위치를 결정하는 데 사용될 정보를 수집하기 위한 명령어들을 제공한다(1232d). 예를 들어, 도 11a의 사용자 인터페이스(1110)와 연관된 동작들이 제1 레벨의 정밀도를 요구하면, 전자 디바이스(1102a)는 선택적으로, 위에서 설명된 바와 같이, 디바이스(1102a)가 물리적 바닥에 대응하는 평면을 검출할 수 있게 하기 위해 물리적 환경(1121a) 내의 물리적 바닥을 보기 위한 명령어들을 디바이스(1102a)의 사용자에게 제공한다. 예를 들어, 전자 디바이스는, 전자 디바이스가 제1 레벨의 정밀도로 물리적 바닥의 위치를 추정하게 허용하기 위해 사용자가 수행할 필요가 있는 하나 이상의 액션들을 표시하는 시각적 및/또는 오디오 표시들을 제공한다. 일부 실시예들에서, 그러한 액션은 전자 디바이스를 보고/물리적 바닥의 일부를 향해 배향시키도록 사용자에게 요구하는 것을 포함할 수 있어서, 전자 디바이스는 물리적 바닥의 적어도 일부에 대응하는 평면을 검출함으로써 물리적 바닥의 위치를 추정할 수 있다.
전자 디바이스가 제1 양의 정밀도로 물리적 바닥의 추정된 위치를 결정하게 허용하기 위한 표시를 제공하는 것은 그러한 바닥이 필요할 때 결정되는 것을 보장하며, 그에 의해, 사용자가 전자 디바이스를 신속하고 효율적으로 사용할 수 있게 한다.
일부 실시예들에서, 입력을 수신하는 것에 응답하여(1234a), 제1 동작이 제1 레벨의 정밀도를 갖는 물리적 환경 내의 물리적 바닥의 추정된 위치의 결정을 요구되지 않는다는 결정에 따라(1234b)(예를 들어, 개시되고 있는 애플리케이션이 제1 양의 정확도로 추정되도록 물리적 바닥의 추정된 위치를 요구하지 않으면. 일부 실시예들에서, 제1 레벨의 정밀도로 추정되도록 물리적 바닥의 위치를 요구하지 않는 동작들/애플리케이션들은 사용자가 애플리케이션/동작과 상호작용하는 동안 앉아 있거나 정지상태에 있게 허용하는 동작들/애플리케이션들을 포함한다.), 전자 디바이스는 물리적 환경 내의 물리적 바닥의 추정된 위치를 결정하는 데 사용될 정보를 수집하기 위한 명령어들을 제공하지 않으면서 물리적 환경 내의 물리적 바닥의 추정된 위치를 결정한다(1234c). 예를 들어, 도 11a의 사용자 인터페이스(1110)와 연관된 동작들이 제1 레벨의 정밀도를 요구하지 않으면, 전자 디바이스(1102a)는 전자 디바이스(1102a)의 물리적 환경(1121a) 내의 물리적 바닥을 보기 위한 명령어들을 사용자에게 제공하지 않는다. 예를 들어, 제1 레벨의 정밀도로 추정되도록 물리적 바닥의 추정된 위치를 요구하지 않으면서 동작이 기능할 수 있으면, 물리적 바닥의 위치를 추정하기 위한 임의의 기법이 사용될 수 있으며, 이는 이전에 설명된 기법들 중 하나 이상과 같은, 제1 레벨의 정밀도보다 낮은 레벨의 정밀도를 초래할 수 있는 기법들을 포함한다. 일부 실시예들에서, 표시를 제공하지 않으면서 물리적 바닥의 추정된 위치를 결정하는 것은, 물리적 바닥의 위치를 추정하기 위해 명시적으로 이루어지는 사용자로부터의 액션을 요구하지 않으면서, 애플리케이션/동작이 사용되고 있는 동안 물리적 바닥의 추정된 위치를 결정하는 것을 포함한다. 표시를 제공하지 않으면서 물리적 바닥의 추정된 위치를 결정하는 것은 특정 양의 정밀도가 요구되지 않을 때 제1 동작으로 진행하기 위한 효율적인 방식을 제공하며, 그에 의해, 사용자가 전자 디바이스를 신속하고 효율적으로 사용할 수 있게 한다.
일부 실시예들에서, 제1 추정된 바닥 위치에 기초하여 하나 이상의 제1 가상 객체들을 디스플레이하는 동안, 전자 디바이스는 3차원 환경 내의 제1 추정된 바닥 위치에서 바닥을 디스플레이한다(1236a). 예를 들어, 전자 디바이스(1102a)는 도 11a의 위치(1120a)에 대응하는 3차원 환경(1122) 내의 가상 바닥을 디스플레이한다. 일부 실시예들에서, 3차원 환경의 바닥이 제1 추정된 바닥 위치에서 디스플레이되는데, 그 이유는 제1 추정된 바닥 위치가 전자 디바이스의 물리적 환경 내의 물리적 바닥의 추정된 위치에 대응하기 때문이다. 예를 들어, 물리적 바닥의 추정된 위치가 전자 디바이스 아래의 30, 60, 90, 120, 150, 200, 또는 400 센티미터인 위치에 있는 것으로 추정되면, 3차원 환경의 바닥은 선택적으로 3차원 환경 내의 대응하는 위치에서 디스플레이된다(예를 들어, 3차원 환경 내의 바닥은 전자 디바이스 아래의 30, 60, 90, 120, 150, 200, 또는 400 센티미터인 물리적 위치에 대응하는 3차원 환경 내의 위치에서 디스플레이됨). 일부 실시예들에서, 3차원 환경 내의 바닥은, 바닥이 3차원 환경의 사용자의 시점으로부터의 시야에 현재 있지 않으면 전자 디바이스의 디스플레이 생성 컴포넌트를 통해 디스플레이되지 않는다. 일부 실시예들에서, 3차원 환경 내의 바닥은 바닥의 가상 표현(예를 들어, 실사 표현, 단순화된 표현, 카툰, 캐리커처 등)이다. 일부 실시예들에서, 3차원 환경 내의 바닥은, 3차원 환경에서 디스플레이되지 않거나 포함되지 않지만 3차원 환경 내의 가상 및/또는 물리적 객체들의 배치를 위한 참조로서 작용하는 논리 객체이다. 실시예들에서, 바닥은 3차원 환경에서 디스플레이되지 않지만, 디스플레이 생성 컴포넌트의 투명 부분을 통해 가시적이다(예를 들어, 진짜 또는 실제 패스스루).
일부 실시예들에서, 제2 추정된 바닥 위치에 기초하는 하나 이상의 제1 가상 객체들의 경우, 전자 디바이스는 3차원 환경 내의 제2 추정된 바닥 위치에서 바닥을 디스플레이한다(1236b). 예를 들어, 전자 디바이스(1102a)는 도 11d의 위치(1150a)에 대응하는 3차원 환경(1122) 내의 가상 바닥을 디스플레이한다. 일부 실시예들에서, 제2 추정된 위치에서 바닥을 디스플레이하는 것은 제1 추정된 바닥 위치에서 바닥을 디스플레이하는 것과 유사하다. 3차원 환경에서 바닥을 디스플레이하는 것은 가상 객체들의 위치들이 기초하는 바닥의 포지션을 표시하기 위한 효율적인 방식을 제공하며, 그에 의해, 사용자가 전자 디바이스를 신속하고 효율적으로 사용할 수 있게 한다.
도 13a 내지 도 13d는 본 개시내용의 일부 실시예들에 따른, 3차원 환경에서 객체들을 이동시키는 예시적인 방식들을 예시한다.
도 13a는 전자 디바이스(101)의 디스플레이 생성 컴포넌트(120)에 의해 디스플레이되고 있는 3차원 환경(1320)을 예시한다. 도 1 내지 도 6을 참조하여 위에서 설명된 바와 같이, 전자 디바이스(101)는 선택적으로, 디스플레이 생성 컴포넌트(예를 들어, 터치 스크린) 및 복수의 이미지 센서들(예를 들어, 도 3의 이미지 센서들(314))을 포함한다. 이미지 센서들은 선택적으로, 가시광 카메라, 적외선 카메라, 깊이 센서, 또는 사용자가 전자 디바이스(101)와 상호작용하는 동안 전자 디바이스(101)가 사용자 또는 사용자의 일부의 하나 이상의 이미지들을 캡처하는 데 사용할 수 있을 임의의 다른 센서 중 하나 이상을 포함한다. 일부 실시예들에서, 아래에 도시된 사용자 인터페이스들은 또한, 사용자 인터페이스를 사용자에게 디스플레이하는 디스플레이 생성 컴포넌트, 및 사용자의 손들의 물리적 환경 이동들(예를 들어, 사용자로부터 외향으로 향하는 외부 센서들), 및/또는 사용자의 시선(예를 들어, 사용자의 얼굴을 향해 내향으로 향하는 내부 센서들)을 검출하기 위한 센서들을 포함하는 머리 장착형 디스플레이 상에서 구현될 수 있다.
도 13a에서, 전자 디바이스(101)는, 애플리케이션 E의 사용자 인터페이스(1302), 애플리케이션 A의 사용자 인터페이스(1304), 애플리케이션 B의 사용자 인터페이스(1306), 애플리케이션 C의 사용자 인터페이스(1308), 애플리케이션 D의 사용자 인터페이스(1310)를 포함하는 3차원 환경(1320)을 디스플레이하고 있다. 일부 실시예들에서, 애플리케이션들 A 내지 E는 미디어 애플리케이션들, 소셜 애플리케이션들, 내비게이션 애플리케이션들, 스트리밍 애플리케이션들, 인터넷 브라우징 애플리케이션들 등이다. 일부 실시예들에서, 전자 디바이스(101)는, 전자 디바이스(101)가 3차원 환경(1320)에서 애플리케이션들 A 내지 E를 개시하라는 하나 이상의 요청들을 검출하는 것에 응답하여 애플리케이션들 A 내지 E의 사용자 인터페이스들(1302 내지 1310)을 디스플레이하고 있다. 도 13a에 도시된 바와 같이, 3차원 환경(1320)은 또한, 소파의 표현(1322), 테이블의 표현(1324), 코너 테이블의 표현(1326)을 포함하는, 전자 디바이스의 물리적 환경(1352) 내의 실제 객체들의 표현들을 포함한다.
도 13a에서, 전자 디바이스(101)는 디폴트 시각적 외관으로 사용자 인터페이스들(1302 내지 1310)을 디스플레이하고 있다. 일부 실시예들에서, 사용자 인터페이스들(1302 내지 1310)은 디폴트 시각적 외관으로 디스플레이되고 있는데, 그 이유는 사용자 인터페이스들(1302 내지 1310)이 3차원 환경(1320)에서의 이동을 위해 선택되지 않았기 때문이다. 일부 실시예들에서, 디폴트 시각적 외관은, 사용자 인터페이스들(1302 내지 1310)이 "선택되지 않은" 상태에 현재 대응한다는 것을 표시한다(예를 들어, 사용자 인터페이스들(1302 내지 1310)은 3차원 환경(1320)에서의 이동을 위해 현재 선택되지 않음). 일부 실시예들에서, 인터페이스들(1302 내지 1310)이 디폴트 시각적 외관으로 디스플레이되고 있는 동안, 사용자 인터페이스들(1302 내지 1310)은 선택적으로, 도 13a에 예시된 바와 같이, 3차원 환경(1320)의 부분들이 그러한 사용자 인터페이스들에 의해 (예를 들어, 완전히) 가려지게/막히게 하는 불투명도를 갖는다.
일부 실시예들에서, 사용자 인터페이스들(1302 내지 1310) 및 표현들(1322 내지 1326)은 디스플레이 생성 컴포넌트(120)에 의해 디스플레이되고 있는데, 그 이유는 이러한 객체들이 3차원 환경(1320)의 사용자(예를 들어, 전자 디바이스(101)의 사용자)의 현재 시점으로부터의 시야에 있기 때문이다. 일부 실시예들에서, 전자 디바이스(101)는 도 13a에서 표시된 시점으로부터 3차원 환경(1320)을 디스플레이하고 있는데, 그 이유는 전자 디바이스(101)의 사용자가 전자 디바이스(101)의 물리적 환경(예를 들어, 동작 환경(100)) 내의 대응하는 포즈/포지션에 있기 때문이다. 도 13a 내지 도 13d가 디바이스(101)에 의해 디스플레이되는 다수의 사용자 인터페이스들, 및 그러한 사용자 인터페이스들의 이동 동안 그러한 사용자 인터페이스들의 디스플레이를 변경시키는 다수의 방식들을 예시하지만, 일부 실시예들에서, 디바이스(101)는 그러한 사용자 인터페이스들을 독립적으로 디스플레이하고 그리고/또는 독립적인 이동 입력들에 응답하여 아래에서 설명되는 방식들로 독립적으로 응답한다는 것이 이해된다.
도 13b에서, 전자 디바이스(101)가 3차원 환경(1320)에서 사용자 인터페이스들(1302 내지 1310)을 디스플레이하고 있는 동안, 전자 디바이스(101)는 3차원 환경(1320)에서의 이동을 위해 사용자 인터페이스들(1302 내지 1310) 중 하나를 선택하기 위한 입력을 검출한다. 일부 실시예들에서, 사용자 인터페이스가 3차원 환경(1320)에서의 이동을 위해 선택될 때, 전자 디바이스(101)는 선택적으로, 아래에서 설명될 바와 같이 그리고 방법(1400)을 참조하여 더 상세히 설명되는 바와 같이, 다양한 방식들로, 선택된 사용자 인터페이스의 디스플레이를 수정한다. 반대로, 일부 실시예들에서, 사용자 인터페이스가 3차원 환경(1320)에서의 이동을 위해 선택될 때, 전자 디바이스는 도 13a에 설명된 디폴트 시각적 외관으로(예를 들어, 개개의 사용자 인터페이스가 선택되지 않은 상태로 디스플레이되는 동일한 시각적 외관/시각적 강조로) 사용자 인터페이스들을 계속 디스플레이한다.
본 명세서에 설명된 사용자 인터페이스를 수정하는 다양한 방식들이 3차원 환경(1320) 내의 사용자 인터페이스의 현재 위치를 전자 디바이스의 사용자에게 표시하는 기술적 이점을 포함하는 많은 기술적 이점들을 제공한다는 것은 본 개시내용의 나머지 부분들로부터 명백할 것이다. 3차원 환경(1320) 내의 사용자 인터페이스의 현재 위치의 표시를 제공하는 것은 특히, 사용자 인터페이스가 3차원 환경의 사용자의 시점에 더 가깝게 또는 사용자의 시점으로부터 더 멀리 이동됨에 따라 (예를 들어, 3차원 환경 내의 상이한 거리들/위치들에서 그 사용자 인터페이스의 계속된 상호작용성을 보장하기 위해) 전자 디바이스가 사용자 인터페이스의 크기를 자동으로/동적으로 스케일링하는 상황들에서 유익할 수 있다. 3차원 환경 내의 사용자 인터페이스들이 본 명세서에 설명된 방식들로 수정되지 않는 일부 상황들에서, 사용자 인터페이스를 향해 지향되는 이동 입력이 실제로 사용자 인터페이스로 하여금 3차원 환경(1320)의 사용자의 현재 시점에 대해 더 멀리 또는 더 가깝게 이동하게 한다는 것을 전자 디바이스의 사용자가 이해하는 것은 어려울 수 있다. 예를 들어, 사용자 인터페이스가 3차원 환경(1320)에서 이동되고 있으므로 사용자의 시야에서 사용자 인터페이스에 의해 점유되는 공간의 양이 일정하게 유지되도록 3차원 환경(1320)에서 이동되는 사용자 인터페이스가 동적으로 스케일링되고 있으면, 사용자 인터페이스가 실제로 3차원 환경(1320)의 사용자의 시점에 대해 더 멀리(또는 더 가깝게) 이동하게 한다는 것을 사용자가 이해하는 것은 혼란스러울 수 있는데, 그 이유는 사용자 인터페이스가 사용자의 시점으로부터 멀어지게 이동함에 따라 사용자 인터페이스가 더 작은 크기로(또는 사용자 인터페이스가 사용자의 시점에 더 가깝게 이동함에 따라 더 큰 크기로) 디스플레이되고 있지 않기 때문이다.
일부 실시예들에서, (예를 들어, 디바이스(101)가 머리 장착형 디바이스이면) 사용자의 시선(1330)이 사용자 인터페이스들(1302 내지 1320) 중 하나를 향해 선택적으로 지향되는 동안, 사용자의 손(1318)이 "가리키는" 포즈에(예를 들어, 손(1318)의 하나 이상의 손가락들이 펴지고 손(1318)의 하나 이상의 손가락들이 손(1318)의 손바닥을 향해 구부러짐) 또는 "핀칭" 포즈(예를 들어, 사용자의 손(1318)의 엄지 및 검지가 서로의 임계 거리(예를 들어, 0.2, 0.5, 1, 1.5, 2, 또는 2.5 센티미터)에 또는 그 내에 수렴됨)에 있다는 것을 전자 디바이스(101)가 검출할 때, 전자 디바이스(101)는 3차원 환경(1320)에서의 이동을 위해 사용자 인터페이스들(1302 내지 1310) 중 하나를 선택하라는 요청을 검출한다. 일부 실시예들에서, 손(1318)의 손가락이 임계량의 시간(0.5, 1, 1.1, 1.5, 2, 2.5, 5, 또는 10초) 초과 동안 사용자 인터페이스들(1302 내지 1310) 중 하나에 대응하는 (예를 들어, 디스플레이 생성 컴포넌트(120)가 터치 스크린이면) 디스플레이 생성 컴포넌트(120) 상의 위치에서 터치 다운했다는 것을 전자 디바이스가 검출할 때, 전자 디바이스는 3차원 환경(1320)에서의 이동을 위해 사용자 인터페이스들 중 하나를 선택하라는 요청을 검출한다. 예를 들어, 전자 디바이스(101)는 선택적으로, 손(1318)이 (도 13b에 예시된 바와 같이) 가리키는 포즈에 있고 사용자 인터페이스(1302)를 터치할 때 3차원 환경(1320)에서의 이동을 위해 사용자 인터페이스(1302)를 선택하라는 요청을 검출한다.
일부 실시예들에서, 전자 디바이스(101)는 3차원 환경(1320)에 대해 개개의 사용자 인터페이스를, 그 사용자 인터페이스가 이동을 위해 선택될 때 시각적으로 강조해제한다. 일부 실시예들에서, 3차원 환경(1320)에 대해 개개의 사용자 인터페이스를 시각적으로 강조해제하는 것은 3차원 환경(1320)에서의 이동을 위해 선택되었던 개개의 사용자 인터페이스의 투명도를 수정하는 것을 포함한다. 예를 들어, 도 13b에서, 전자 디바이스(101)는 도 13a의 사용자 인터페이스(1302)와 비교할 때 사용자 인터페이스(1302)의 투명도를 증가시켰다. 일부 실시예들에서, 전자 디바이스(101)는 위에서 설명된 바와 같이, 전자 디바이스(101)가 3차원 환경(1320)에서의 이동을 위해 사용자 인터페이스(1302)를 선택하라는 요청을 검출하는 것에 응답하여 사용자 인터페이스(1302)의 투명도를 수정했다. 일부 실시예들에서, 전자 디바이스(101)는, 전자 디바이스(101)가 3차원 환경(1320)에서의 이동을 위해 사용자 인터페이스(1302)를 선택하라는 요청을 수신하는 것에 응답하여 사용자 인터페이스(1302)의 투명도를 수정하지 않는다.
도 13b에 도시된 예에서, 전자 디바이스(101)는 사용자 인터페이스(1302)의 모든 부분들의 투명도를 증가시켰다. 그러나, 일부 실시예들에서, 전자 디바이스(101)가 3차원 환경(1320)에서의 이동을 위해 사용자 인터페이스(1302)를 선택하라는 요청을 검출하는 것에 응답하여, 전자 디바이스(101)는 선택적으로, 사용자 인터페이스(1302)의 개개의 부분(예를 들어, 사용자 인터페이스(1302)의 총 크기의 10%, 20%, 40%, 60%, 또는 80%)의 투명도를 수정하는 반면(예를 들어, 증가시키는 반면), 사용자 인터페이스(1302)의 나머지 부분의 투명도들은 수정되지 않는다.
일부 실시예들에서, 사용자 인터페이스가 3차원 환경(1320)에서의 이동을 위해 선택될 때, 전자 디바이스(101)는 선택된 사용자 인터페이스의 다수의 부분들의 투명도를 수정한다. 예를 들어, 전자 디바이스(101)가 3차원 환경(1320)에서의 이동을 위한 사용자 인터페이스(1302)의 선택을 검출하는 것에 응답하여, 전자 디바이스(101)는 선택적으로 사용자 인터페이스(1302)의 다수의 부분들의 투명도를 수정한다. 일부 실시예들에서, 전자 디바이스(101)가 사용자 인터페이스(1302)의 다수의 부분들의 투명도를 수정하는 양은 사용자 인터페이스(1302)의 중심과 사용자 인터페이스(1302)의 개개의 부분 사이의 거리의 함수이다. 예를 들어, 사용자 인터페이스(1302)의 제1 부분이 사용자 인터페이스(1302)의 제2 부분보다 사용자 인터페이스(1302)의 중심에 가까우면, 사용자 인터페이스(1302)의 제1 부분은 선택적으로 사용자 인터페이스(1302)의 제2 부분보다 덜 투명하다. 반대로, 사용자 인터페이스(1302)의 제1 부분이 사용자 인터페이스(1302)의 제2 부분보다 사용자 인터페이스(1302)의 중심으로부터 더 멀리 있으면, 사용자 인터페이스(1302)의 제1 부분은 선택적으로 사용자 인터페이스(1302)의 제2 부분보다 더 투명하다.
일부 실시예들에서, 전자 디바이스(101)는, 개개의 사용자 인터페이스가 이동을 위해 선택될 때 3차원 환경 내의 개개의 사용자 인터페이스의 위치를 표시하는 표시를 디스플레이한다. 예를 들어, 도 13b에서, 전자 디바이스(101)는 사용자 인터페이스(1310)와 연관하여 가상 섀도우(1332)(예를 들어, 드롭 섀도우)를 디스플레이하고 있다. 일부 실시예들에서, 드롭 섀도우는, 3차원 환경(1320)에서 사용자 인터페이스(1310) 아래(선택적으로는 바로 아래)에 있는 3차원 환경(1320) 표면 상에 디스플레이되고, 사용자의 시점에 대한 그 표면 상의 드롭 섀도우의 위치는 시점으로부터의 사용자 인터페이스(1310)의 거리를 표시한다. 일부 실시예들에서, 전자 디바이스(101)는, 전자 디바이스(101)가 3차원 환경(1320)에서의 이동을 위해 사용자 인터페이스(1310)를 선택하라는 요청을 수신하는 것에 응답하여 가상 섀도우(1332)를 디스플레이하고 있다. 도 13b에 도시된 바와 같이, 가상 섀도우(1332)는 테이블의 표현(1324) 상에 디스플레이되고 있는데, 그 이유는 사용자 인터페이스(1310)가 3차원 환경(1320) 내의 테이블의 표현(1324)의 일부 위에서 현재 호버링하고 있기 때문이다. 일부 실시예들에서, 가상 섀도우(1332)의 크기는, 사용자 인터페이스(1310)가 (예를 들어, Y-방향에서) 테이블의 표현(1324)에 더 가깝게 이동함에 따라 증가하고, 사용자 인터페이스(1310)가 (예를 들어, Y-방향에서) 테이블의 표현(1324)으로부터 더 멀리 이동함에 따라 감소한다. 일부 실시예들에서, 전자 디바이스(101)는, 3차원 환경(1332)에서의 이동을 위해 사용자 인터페이스(1310)를 선택하라는 요청을 수신하는 것에 응답하여 가상 섀도우(1332)를 디스플레이하지 않는다. 개개의 사용자 인터페이스가 3차원 환경(1320)에서의 이동을 위해 선택되었을 때 전자 디바이스(101)가 응답하는 본 명세서에 설명된 다양한 방식들이 선택적으로, 서로 독립적으로 또는 동시에 발생한다는 것이 이해되어야 한다. 예를 들어, 전자 디바이스(101)는 선택적으로, 사용자 인터페이스(1302)와 유사한 방식으로 사용자 인터페이스(1310)의 투명도를 수정하고, 전자 디바이스(101)가 3차원 환경(1320)에서의 이동을 위해 사용자 인터페이스(1310)를 선택하라는 요청을 수신하는 것에 응답하여 (예를 들어, 드롭 섀도우(1332)와 유사한) 드롭 섀도우를 디스플레이한다.
일부 실시예들에서, 전자 디바이스(101)는, 개개의 사용자 인터페이스가 이동을 위해 선택될 때 사용자의 시선에 기초하여 3차원 환경(1320) 내의 개개의 사용자 인터페이스의 하나 이상의 부분들을 시각적으로 강조해제한다. 예를 들어, 도 13b에서, 전자 디바이스(101)는 사용자의 시선(1330)과 사용자 인터페이스(1308)의 하나 이상의 부분들 사이의 거리에 기초하여 사용자 인터페이스(1308)의 투명도를 수정하고 있다. 일부 실시예들에서, 사용자 인터페이스(1308)의 하나 이상의 부분들의 투명도는, 전자 디바이스(101)가 3차원 환경(1320)에서의 이동을 위해 사용자 인터페이스(1308)를 선택하라는 요청을 검출하는 것에 응답하여 사용자의 시선(1330)에 기초하여 수정된다.
일부 실시예들에서, 사용자의 현재 시선 위치(1330)에 더 가까운 사용자 인터페이스(1308)의 부분들은 사용자의 현재 시선 위치(1330)로부터 더 멀리 있는 부분들보다 덜 투명하다. 예를 들어, 도 13b에 예시된 바와 같이, 사용자 인터페이스(1308)의 상단 좌측 부분은 사용자 인터페이스(1308)의 하부 우측 부분보다 덜 투명한데, 그 이유는 상단 좌측 부분이 사용자 인터페이스(1308)의 하부 우측 부분보다 사용자의 시선에 가깝기 때문이다. 일부 실시예들에서, 전자 디바이스(101)는, 사용자의 현재 시선 위치(1330)의 임계 거리(예를 들어, 1, 5 10, 20, 30, 40, 50, 100, 200, 300, 400, 500, 1000, 또는 2000 센티미터)에 또는 그 내에 있는 사용자 인터페이스(1308)의 부분들의 투명도를 수정하는 것이 아니라, 오히려 사용자의 현재 시선 위치로부터의 임계 거리보다 멀리 있는 사용자 인터페이스(1308)의 부분들의 투명도를 수정한다. 예를 들어, 도 13b에서, 위에서 언급된 임계 거리에 또는 그 내에 있는 사용자 인터페이스(1308)의 부분들 및 위에서 언급된 임계 거리 외부에 있는 사용자 인터페이스(1308)의 부분들은 표시(1316)(이는 선택적으로 3차원 환경(1320)에서 디스플레이되지 않음)에 의해 예시된다. 도 13b의 예에서, 전자 디바이스(101)는 도 13a와 비교하여, - 표시(1316)에 의해 표시된 - 위에서 언급된 임계 거리 내에 있는 사용자 인터페이스(1308)의 부분들의 투명도를 수정하지 않았지만, 표시(1316)에 의해 표시된 위의 임계 거리 내에 있지 않은 사용자 인터페이스(1308)의 부분들의 투명도를 증가시켰다. 일부 실시예들에서, 표시(1316)는 사용자의 중심 및 주변 비전 구역들 사이의 경계에 대응한다. 일부 실시예들에서, 전자 디바이스(101)가 3차원 환경(1320)에서의 이동을 위해 사용자 인터페이스(1308)를 선택하라는 요청을 수신하는 것에 응답하여, 전자 디바이스(101)는 선택적으로, 사용자의 시선에 기초하여 사용자 인터페이스(1308)의 부분들의 투명도를 수정하지 않는다.
일부 실시예들에서, 전자 디바이스(101)는 아래에서 더 상세히 설명될 바와 같이, 3차원 환경(1320) 내의 개개의 사용자 인터페이스와 연관하여, 개개의 사용자 인터페이스가 3차원 환경(1320) 내의 특정 위치로 이동되면, 3차원 환경(1320) 내의 시각적 표시의 크기가 표시로 하여금, 개개의 사용자 인터페이스가 3차원 환경(1320)의 사용자의 시야에서 점유할 공간의 양을 표시하게 하는 시각적 표시를 디스플레이한다. 예를 들어, 도 13b에서, 전자 디바이스(101)는 사용자 인터페이스(1304)와 연관하여 시각적 표시(1334)를 디스플레이하고 있다. 표시(1334)는 선택적으로, 도 13c를 참조하여 더 상세히 설명될 바와 같이 3차원 환경(1320) 내의 영역/체적의 윤곽이다. 일부 실시예들에서, 시각적 표시(1334)는, 전자 디바이스(101)가 3차원 환경(1320)에서의 이동을 위해 사용자 인터페이스(1304)를 선택하라는 요청을 수신하는 것에 응답하여 3차원 환경(1320)에서 디스플레이되고 있다. 도 13b에 도시된 바와 같이, 시각적 표시(1334)는, 사용자 인터페이스(1304)가 도 13b에서 표시된 위치에 있는 동안, 전자 디바이스(101)가 사용자 인터페이스(1304)를 선택해제하기 위한 입력을 검출하면, 전자 디바이스(101)로 하여금 3차원 환경(1320) 내의 사용자 인터페이스(1304)의 크기가 변경되지 않을 것이라는 것을 표시하게 하는 3차원 환경(1304) 내의 크기를 갖는다. 일부 실시예들에서, 전자 디바이스(101)는, 손(1318)의 엄지가 위에서 언급된 임계 거리 내에 있었던 이후 손(1318)의 다른 손가락으로부터 멀리 임계 거리(예를 들어, 0.1, 0.2, 0.3, 0.5, 1, 2, 3, 또는 5 센티미터)로 이동할 때 그리고/또는 손(1318)이 "가리키는" 포즈에 이전에 있었던 이후 "가리키는" 포즈에 더 이상 있지 않다는 것을 전자 디바이스(101)가 검출할 때 사용자 인터페이스(1304)를 선택해제하기 위한 입력을 검출한다. 일부 실시예들에서, 전자 디바이스(101)가 3차원 환경(1320)에서의 이동을 위해 사용자 인터페이스(1304)를 선택하라는 요청을 수신하는 것에 응답하여, 전자 디바이스(101)는 선택적으로 표시(1304)를 디스플레이하지 않는다.
일부 실시예들에서, 개개의 사용자 인터페이스가 3차원 환경(1320)에서의 이동을 위해 선택될 때, 3차원 환경 내의 개개의 사용자 인터페이스의 시각적 외관은 변경되지 않는다. 예를 들어, 도 13a 및 도 13b의 사용자 인터페이스(1306)의 시각적 외관은 사용자 인터페이스(1306)가 (도 13b에서 표시된 바와 같이) 3차원 환경(1320)에서의 이동을 위해 선택되었더라도 동일하다.
도 13c는 3차원 환경(1320) 내의 상이한 위치들로의 사용자 인터페이스들(1302 내지 1310)의 이동을 예시한다. 도 13c에서, 사용자 인터페이스(1302)는 도 13b에서 표시된 3차원 환경(1320) 내의 위치로부터 도 13c에서 표시된 3차원 환경(1320) 내의 위치로 이동했다. 일부 실시예들에서, 도 13b에 설명된 바와 같이 사용자 인터페이스(1302)를 선택한 이후, 사용자의 손(1318)이 전자 디바이스(101)의 물리적 환경(1352) 내의 대응하는 위치로 이동했다는 것을 전자 디바이스(101)가 검출했기 때문에, 사용자 인터페이스(1302)는 도 13c에서 표시된 위치로 이동했다. 일부 실시예들에서, 사용자 인터페이스(1302)가 도 13b에서 표시된 위치로부터 도 13c에서 표시된 위치로 이동하고 있는 동안, 전자 디바이스(101)는 3차원 환경(1320) 내의 새로운 위치로의 사용자 인터페이스(1302)의 이동 동안 동일한 수정된 양의 투명도로 사용자 인터페이스(1302)를 계속 디스플레이한다. 예를 들어, 도 13c에 예시된 바와 같이, 도 13b 및 도 13c의 사용자 인터페이스(1302)의 투명도는 사용자 인터페이스(1302)가 도 13b에서 표시된 위치로부터 도 13c로 이동하고 있었던 동안 동일하게 유지됐다. 일부 실시예들에서, 사용자 인터페이스(1302)가 3차원 환경(1320) 내의 상이한 위치들로 이동함에 따라, 전자 디바이스(101)는, 예를 들어 이동의 속도에 기초하여 사용자 인터페이스(1302)가 3차원 환경(1320)에서의 이동을 위해 선택된 이후 사용자 인터페이스(1302)가 디스플레이되는 투명도와 비교하여 사용자 인터페이스(1302)의 투명도를 선택적으로 증가시킨다(또는 선택적으로 감소시킴).
일부 실시예들에서, 전자 디바이스(101)는 선택적으로, 전자 디바이스(101)가 개개의 사용자 인터페이스의 이동을 검출할 때까지 3차원 환경(1320) 내의 개개의 사용자 인터페이스의 투명도를 수정하지 않는다. 따라서, 도 13c에서, 전자 디바이스(101)는 선택적으로, 도 13b에서의 사용자 인터페이스(1302)의 선택에 후속하여 전자 디바이스(101)가 사용자 인터페이스(1302)의 이동을 검출한 이후에만 도 13c에 예시된 수정된 투명도로 사용자 인터페이스(1302)를 디스플레이한다. 일부 실시예들에서, 전자 디바이스(101)는 사용자 인터페이스(1302)의 10%, 20%, 40%, 60%, 80%, 또는 100%에 걸쳐 있는 사용자 인터페이스(1302)의 일부를 수정한다(예를 들어, 그 일부의 투명도를 증가시킴).
일부 실시예들에서, 사용자 인터페이스(1302)가 도 13b에서 표시된 3차원 환경(1320) 내의 위치로부터 도 13c에서 표시된 3차원 환경 내의 위치로 이동하고 있는 동안, 전자 디바이스(101)가 3차원 환경(1320)에 대해 사용자 인터페이스(1302)를 시각적으로 강조해제하는 양은 사용자 인터페이스(1302)의 이동 특성들에 기초한다. 예를 들어, 사용자 인터페이스(1302)가 도 13c에서 표시된 위치로 이동하고 있는 동안 사용자 인터페이스가 임계량(예를 들어, 1, 2, 10, 50, 100, 400, 또는 1000 센티미터) 초과로 이동했다면, 전자 디바이스(101)는 선택적으로, 제1 양의 투명도만큼 사용자 인터페이스(1302)의 투명도를 수정한다. 반대로, 사용자 인터페이스(1302)가 도 13c에서 표시된 위치로 이동하고 있는 동안 사용자 인터페이스(1302)가 임계량 초과로 이동되지 않았다면, 전자 디바이스(101) 선택적으로, 사용자 인터페이스(1302)가 위에서 언급된 임계량의 이동 초과로 이동했던 경우보다 적은 양만큼 사용자 인터페이스(1302)의 투명도를 수정한다. 전자 디바이스(101)가 사용자 인터페이스(1302)의 이동 특성들에 기초하여 사용자 인터페이스(1302)를 시각적으로 강조해제하는 다른 예들이 방법(1400)에서 설명된다.
일부 실시예들에서, 도 13c에서 표시된 위치로의 사용자 인터페이스(1302)의 이동 이후 전자 디바이스(101)가 사용자 인터페이스(1302)를 선택해제하기 위한 입력을 수신하면, 전자 디바이스(101)는 선택적으로, 도 13a에 설명된 바와 같이 사용자 인터페이스(1302)를 그의 디폴트 시각적 외관으로 디스플레이하고, 사용자 인터페이스(1302)를 더 이상 시각적으로 강조해제하지 않는다. 일부 실시예들에서, 사용자 인터페이스(1302)를 도 13c에서 표시된 위치로 이동시킨 이후, 전자 디바이스(101)는 (사용자 인터페이스(1302)가 선택적으로 3차원 환경(1320)에서의 이동을 위해 여전히 선택되는 동안) 사용자 인터페이스(1302)에 적용되는 시각적 강조해제를 적어도 부분적으로 반전시킨다. 예를 들어, 사용자 인터페이스(1302)를 도 13c에서 표시된 3차원 환경 내의 위치로 이동시킨 이후 그리고 사용자 인터페이스(1302)가 3차원 환경(1320)에서의 이동을 위해 여전히 선택되는 동안, 전자 디바이스(101)는 선택적으로, 사용자 인터페이스(1302)가 개개의 시간량(예를 들어, 0.5, 1, 2, 4, 10, 20, 또는 40초) 동안 임계량(예를 들어, 1, 2, 10, 50, 100, 400, 또는 1000 센티미터) 초가로 3차원 환경(1320)에서 이동하지 않았다면, (사용자 인터페이스(1302)가 도 13c의 위치를 이동시키고 있었던 동안의 사용자 인터페이스(1302)의 투명도와 비교하여) 사용자 인터페이스(1302)의 투명도를 감소시킨다.
부가적으로, 도 13c에서, 사용자 인터페이스(1310)는 도 13b에서 표시된 3차원 환경(1320) 내의 위치로부터 도 13c에서 표시된 3차원 환경(1320) 내의 위치로 이동했다. 일부 실시예들에서, 도 13b에 설명된 바와 같이 사용자 인터페이스(1310)를 선택한 이후, 사용자의 손(1318)이 전자 디바이스(101)의 물리적 환경(1352) 내의 대응하는 위치로 이동했다는 것을 전자 디바이스(101)가 검출했기 때문에, 사용자 인터페이스(1310)는 도 13c에서 표시된 위치로 이동했다. 도 13c에 도시된 바와 같이, 사용자 인터페이스(1310)의 이동의 결과로서, 가상 섀도우(1332)는, 사용자 인터페이스(1310)가 이제, 코너 테이블의 표현(1326)의 일부 및 3차원 환경(1320) 내의 바닥(예를 들어, 방법(1200)에서의 3차원 환경 내의 바닥과 유사함)의 일부 위에서 호버링하고 있다는 것을 표시하기 위해 3차원 환경(1320)에서 이동했다. 일부 실시예들에서, 사용자 인터페이스(1310)가 도 13c에서 표시된 3차원 환경(1320) 내의 위치로 이동하고 있음에 따라, 가상 섀도우(1332)는, 사용자 인터페이스(1320)가 3차원 환경(1320)의 어느 부분(들) 위에서 현재 호버링하고 있는지를 표시하기 위해 (예를 들어, 실시간으로) 사용자 인터페이스(1310)와 함께 계속 이동한다. 일부 실시예들에서, 사용자 인터페이스(1310)가 선택되었던 3차원 환경(1320) 내의 위치로부터의 사용자 인터페이스(1310)의 이동(예를 들어, 도 13b의 사용자 인터페이스(1310)의 위치로부터의 이동)을 전자 디바이스(101)가 검출할 때까지, 전자 디바이스(101)는 가상 섀도우(1332)를 디스플레이하지 않는다.
일부 실시예들에서, 사용자 인터페이스(1310)를 도 13c에서 표시된 위치로 이동시킨 이후, 사용자 인터페이스(1310)가 개개의 시간량(예를 들어, 0.5, 1, 2, 4, 10, 20, 또는 40초) 동안 임계량(예를 들어, 1, 2, 10, 50, 100, 400, 또는 1000 센티미터) 초과로 이동하지 않았다는 것을 전자 디바이스(101)가 검출했다면, 전자 디바이스(101)는 3차원 환경(1320)에서 가상 섀도우(1332)의 디스플레이를 중단한다.
부가적으로, 도 13c에 도시된 바와 같이, 사용자 인터페이스(1304)는 도 13b의 3차원 환경(1320) 내의 위치로부터 도 13c에서 표시된 3차원 환경(1320) 내의 위치로 이동했다. 일부 실시예들에서, 도 13b에 설명된 바와 같이 사용자 인터페이스(1310)를 선택한 이후, 사용자의 손(1318)이 전자 디바이스(101)의 물리적 환경(1352) 내의 대응하는 위치로 이동했다는 것을 전자 디바이스(101)가 검출했기 때문에, 사용자 인터페이스(1304)는 도 13b에서 표시된 위치로부터 도 13c에서 표시된 위치로 이동했다.
일부 실시예들에서, 3차원 환경(1320) 내의 개개의 사용자 인터페이스가 3차원 환경(1320) 내의 사용자의 시점으로부터 더 멀리 이동함에 따라, 개개의 사용자 인터페이스가 사용자의 시야에서 점유하는 공간의 양이 대응하여 감소한다. 반대로, 일부 실시예들에서, 3차원 환경(1320) 내의 개개의 사용자 인터페이스가 3차원 환경(1320)의 사용자의 시점에 더 가깝게 이동함에 따라, 개개의 사용자 인터페이스가 사용자의 시야에서 점유하는 공간의 양이 대응하여 증가한다. 예를 들어, 도 13c에서, 사용자 인터페이스(1304)는 도 13b에서보다 3차원 환경(1320)의 사용자의 시점으로부터 더 멀리 이동했다. 그 결과, 사용자 인터페이스(1304)는 사용자 인터페이스가 도 13b에서 표시된 3차원 환경(1320) 내의 위치에 있었을 때와 비교하여 사용자의 시야에서 더 작은 양의 공간을 점유하고 있다. 일부 실시예들에서, 사용자 인터페이스(1310)가 도 13c에서 표시된 3차원 환경(1320) 내의 위치로 이동하고 있음에 따라, 사용자 인터페이스(1304)가 사용자의 시야에서 점유하는 공간의 양은 계속 감소하는데, 그 이유는 사용자 인터페이스(1304)가 3차원 환경(1320)의 사용자의 시점으로부터 더 멀리 이동하고 있기 때문이라는 것이 이해되어야 한다.
도 13c에 또한 예시된 바와 같이, 전자 디바이스(101)는 시각적 표시(1334)를 디스플레이하고 있다. 일부 실시예들에서, 사용자 인터페이스(1302)가 이동을 위해 선택되었던 3차원 환경(1320) 내의 위치로부터의 사용자 인터페이스의 이동(예를 들어, 도 13b의 사용자 인터페이스(1302)의 위치로부터의 이동)을 전자 디바이스(101)가 검출할 때까지, 전자 디바이스(101)는 시각적 표시(1334)를 디스플레이하지 않는다. 도 13c에 도시된 바와 같이, 시각적 표시(1334)는 그의 연관된 사용자 인터페이스 - 사용자 인터페이스(1304) - 보다 큰 3차원 환경(1320) 내의 크기를 갖는다. 시각적 표시(1334)는 선택적으로 3차원 환경(1320) 내의 사용자 인터페이스(1304)보다 큰 크기를 갖는데, 그 이유는 (예를 들어, 사용자 인터페이스(1304)의 콘텐츠가 3차원 환경(1320) 내의 그의 현재 위치에서 계속 상호작용가능한 것을 보장하기 위해) 사용자 인터페이스(1304)의 이동이 완료될 때 전자 디바이스(101)가 사용자 인터페이스(1304)를 스케일링할 크기를 시각적 표시가 표시하고 있기 때문이다. 일부 실시예들에서, 시각적 표시(1334)의 크기는 사용자 인터페이스(1304)와 3차원 환경(1320) 내의 사용자의 현재 시점의 포지션 사이의 거리에 기초한다(예를 들어, 사용자 인터페이스(1304)는, 사용자 인터페이스(1304)가 사용자의 시점으로부터 더 멀리 이동함에 따라 더 큰 크기로 디스플레이될 것이고, 사용자 인터페이스(1304)가 사용자의 시점에 더 가깝게 이동함에 따라 더 작은 크기로 디스플레이될 것이며, 표시(1334)는 사용자 인터페이스(1304)로 지향되는 이동 입력의 완료 시에 사용자 인터페이스(1304)가 디바이스(101)에 의해 스케일링될 크기를 표시하는 윤곽임).
일부 실시예들에서, 사용자 인터페이스(1304)가 도 13b에서 표시된 3차원 환경(1320) 내의 위치로부터 도 13c에서 표시된 3차원 환경(1320) 내의 위치로 이동하고 있음에 따라, 시각적 표시(1334)는, 사용자 인터페이스(1304)의 콘텐츠가 3차원 환경(1320) 내의 그의 현재 위치에서 상호작용가능하기 위해 이동 입력의 완료 시에 전자 디바이스(101)가 사용자 인터페이스(1304)를 디스플레이할 크기를 계속 표시하도록 사용자 인터페이스(1304)와 함께 이동한다. 따라서, 일부 실시예들에서, 사용자 인터페이스(1304)가 도 13b에서 표시된 3차원 환경(1320) 내의 위치로부터 도 13c에서 표시된 3차원 환경(1320) 내의 위치로 (예를 들어, 동적으로) 이동하고 있음에 따라, - 사용자 인터페이스(1304)가 사용자의 시야에서 점유하고 있는 공간의 양이 계속 감소하고 있는 동안 - 시각적 표시(1334)의 크기는 선택적으로 계속 증가하는데, 그 이유는 사용자 인터페이스(1304)가 3차원 환경(1320)의 사용자의 시야로부터 더 멀리 이동하고 있기 때문이다. 일부 실시예들에서, 전자 디바이스(101)가 (선택적으로, 3차원 환경(1320)에서의 이동을 위해 여전히 선택되고 있는 동안) 3차원 환경(1320)에서의 사용자 인터페이스(1304)의 이동을 더 이상 검출하지 않을 때, 전자 디바이스(101)는 시각적 표시(1334)에 의해 표시된 크기를 갖도록 사용자 인터페이스(1304)를 업데이트한다.
부가적으로, 도 13c에 도시된 바와 같이, 사용자 인터페이스(1308)는 도 13b에서 표시된 3차원 환경(1320) 내의 위치로부터 도 13c에서 표시된 3차원 환경(1320) 내의 위치로 이동했다. 일부 실시예들에서, 도 13b에 설명된 바와 같이 사용자 인터페이스(1308)를 선택한 이후, 사용자의 손(1318)이 전자 디바이스(101)의 물리적 환경(1352) 내의 대응하는 위치로 이동했다는 것을 전자 디바이스(101)가 검출했기 때문에, 사용자 인터페이스(1308)는 도 13b에서 표시된 위치로부터 도 13c에서 표시된 위치로 이동했다. 도 13c에 도시된 바와 같이, 전자 디바이스(101)는 사용자의 시선(1330)과 사용자 인터페이스(1308)의 부분들 사이의 거리에 기초하여 사용자 인터페이스(1308)의 부분들을 강조해제(예를 들어, 사용자 인터페이스(1308)의 다수의 부분들의 투명도를 수정)하고 있다. 일부 실시예들에서, 사용자 인터페이스(1302)가 3차원 환경(1320)에서의 이동을 위해 선택되었던 3차원 환경(1320) 내의 위치(예를 들어, 도 13b의 사용자 인터페이스(1308)의 위치)로부터의 사용자 인터페이스의 이동을 전자 디바이스(101)가 검출할 때까지, 전자 디바이스(101)는 사용자 인터페이스(1308)의 투명도를 수정하지 않는다.
일부 실시예들에서, 사용자의 현재 시선 위치(1330)에 더 가까운 사용자 인터페이스(1308)의 부분들은 사용자의 현재 시선 위치(1330)로부터 더 멀리 있는 부분들보다 덜 투명하다. 예를 들어, 도 13c에 예시된 바와 같이, 사용자 인터페이스(1308)의 상단 좌측 부분은 사용자 인터페이스(1308)의 하부 우측 부분보다 덜 투명하다. 일부 실시예들에서, 전자 디바이스(101)는, 사용자의 현재 시선 위치(1330)의 임계 거리에 또는 그 내에 있는 사용자 인터페이스(1308)의 부분들의 투명도를 수정하는 것이 아니라, 오히려 사용자의 현재 시선 위치(1330)로부터의 임계 거리보다 멀리 있는 사용자 인터페이스(1308)의 부분들의 투명도들을 수정한다. 예를 들어, 도 13c에서, 위에서 언급된 임계 거리에 또는 그 내에 있는 사용자 인터페이스(1308)의 부분들 및 위에서 언급된 임계 거리 외부에 있는 사용자 인터페이스(1308)의 부분들은 표시(1316)(이는 선택적으로 3차원 환경(1320)에서 디스플레이되지 않음)에 의해 예시되고, 사용자 인터페이스(1308)의 이동으로 인해 도 13b에 대해 변경되었다. 도 13c의 예에서, 전자 디바이스(101)는 도 13b와 비교하여, - 표시(1316)에 의해 표시된 - 위에서 언급된 임계 거리 내에 있는 사용자 인터페이스(1308)의 부분들의 투명도를 수정하지 않았지만, 표시(1316)에 의해 표시된 위의 임계 거리 내에 있지 않은 사용자 인터페이스(1308)의 부분들의 투명도를 증가시켰다. 일부 실시예들에서, 사용자 인터페이스(1308)가 도 13b에서 표시된 3차원 환경(1320) 내의 위치로부터 도 13c의 3차원 환경(1320) 내의 위치로 (예를 들어, 동적으로) 이동하고 있음에 따라, 전자 디바이스(101)는 선택적으로, 사용자의 시선 위치(1330)에 대한 사용자 인터페이스(1308)의 현재 위치 및/또는 표시(1316) 내의 또는 외부의 그들의 위치들 사이 거리에 기초하여 사용자 인터페이스의 부분들의 투명도를 계속 수정한다.
부가적으로, 도 13c에 도시된 바와 같이, 사용자 인터페이스(1306)는 도 13b에서 표시된 3차원 환경(1320) 내의 위치로부터 도 13c에서 표시된 3차원 환경(1320) 내의 위치로 이동했다. 일부 실시예들에서, 도 13b에 설명된 바와 같이 사용자 인터페이스(1306)를 선택한 이후, 사용자의 손(1318)이 전자 디바이스(101)의 물리적 환경(1352) 내의 대응하는 위치로 이동했다는 것을 전자 디바이스(101)가 검출했기 때문에, 사용자 인터페이스(1306)는 도 13b에서 표시된 위치로부터 도 13c에서 표시된 위치로 이동했다.
일부 실시예들에서, 개개의 사용자 인터페이스가 3차원 환경(1320)에서 (예를 들어, 사용자의 시점으로부터 더 멀리 또는 그에 더 가깝게) 이동되고 있으므로, 3차원 환경(1320) 내의 개개의 사용자 인터페이스 객체들의 크기는 변경되지 않는다. 따라서, 일부 실시예들에서, 3차원 환경(1320) 내의 개개의 사용자 인터페이스가 3차원 환경(1320) 내의 사용자의 시점으로부터 더 멀리 이동함에 따라, 개개의 사용자 인터페이스가 사용자의 시야에서 점유하는 공간의 양이 대응하여 감소한다. 반대로, 일부 실시예들에서, 3차원 환경(1320) 내의 개개의 사용자 인터페이스가 3차원 환경(1320)의 사용자의 시점에 더 가깝게 이동함에 따라, 개개의 사용자 인터페이스가 사용자의 시야에서 점유하는 공간의 양이 대응하여 증가한다. 예를 들어, 도 13c에서, 사용자 인터페이스(1306)는 도 13b에서보다 3차원 환경(1320)의 사용자의 시점으로부터 더 멀리 이동했다. 그 결과, 사용자 인터페이스(1306)는 사용자 인터페이스가 도 13b에서 표시된 3차원 환경(1320) 내의 위치에 있었을 때와 비교하여 사용자의 시야에서 더 작은 양의 공간을 점유하고 있다. 일부 실시예들에서, 사용자 인터페이스(1306)가 도 13c에서 표시된 3차원 환경(1320) 내의 위치로 (예를 들어, 동적으로) 이동하고 있음에 따라, 사용자 인터페이스(1306)가 사용자의 시야에서 점유하는 공간의 양은 계속 감소하는데, 그 이유는 사용자 인터페이스(1306)가 3차원 환경(1320)의 사용자의 시점으로부터 더 멀리 이동하고 있기 때문이라는 것이 이해되어야 한다.
일부 실시예들에서, 사용자 인터페이스(1306)가 3차원 환경(1320)에서 더 이상 이동되고 있지 않는다는 것을 전자 디바이스(101)가 검출할 때, 전자 디바이스(101)는 사용자의 시점으로부터의 사용자 인터페이스(1306)의 거리에 기초한 크기로(예를 들어, 그의 현재 거리에서의 사용자 인터페이스(1306)와의 계속된 상호작용성을 보장하는 크기로) 사용자 인터페이스(1306)의 크기를 업데이트한다 예를 들어, 도 13d에서, 전자 디바이스(101)는 사용자 인터페이스(1306)가 3차원 환경(1320)에서 더 이상 이동되고 있지 않는다는 것을 검출했다. 그 결과, 전자 디바이스(101)는 3차원 환경(1320) 내의 사용자 인터페이스(1306)의 크기를 증가시킨다. 일부 실시예들에서, 전자 디바이스(101)는, 사용자 인터페이스(1306)가 개개의 시간량(예를 들어, 0.1, 0.2, 2, 3, 4, 5, 또는 10초) 동안 임계량(예를 들어, 0, 0.5, 1, 3, 5, 10, 20, 40, 60, 또는 200 센티미터) 미만으로 이동했다면, 사용자 인터페이스(1306)가 3차원 환경(1320)에서 더 이상 이동되고 있지 않다는 것을 검출한다. 일부 실시예들에서, 사용자 인터페이스(1306)의 이동이 비교되는 시간량은 사용자 인터페이스(1306)가 도 13c에서 표시된 위치로부터 도 13d에서 표시된 위치로 이동했던 속도에 기초한다(예를 들어, 사용자 인터페이스(1306)의 더 빠른 이동 속도들은 사용자 인터페이스(1306)의 더 느린 이동 속도들과 비교한 것보다 더 긴 시간량 동안 위에서 언급된 임계량 미만으로 이동하도록 사용자 인터페이스(1306)에게 요구함). 일부 실시예들에서, 전자 디바이스(101)는 사용자 인터페이스(1306)의 크기를 도 13d에서 표시된 크기로 증가시키는데, 그 이유는 이러한 크기가 3차원 환경(1320) 내의 그의 현재 위치에서 사용자 인터페이스(1306)의 콘텐츠가 상호작용가능하게 허용하기 때문이다.
부가적으로, 도 13d에 도시된 바와 같이, 사용자 인터페이스들(1302, 1308, 1310)은 도 13c에서 표시된 위치들로부터 도 13d에서 표시된 위치들로 이동했다. 일부 실시예들에서, 이전에 설명된 바와 같이, 사용자 인터페이스들(1302, 1306, 1308, 1310)로 하여금 도 13c에서 표시된 위치들로 이동하게 된 이후 사용자의 손(1318)이 전자 디바이스(101)의 물리적 환경(1352) 내의 대응하는 위치로 이동했다는 것을 전자 디바이스(101)가 검출하기 때문에, 사용자 인터페이스들(1302, 1306, 1308, 1310)은 도 13d에서 표시된 위치들로 이동했다. 부가적으로, 도 13d에 도시된 바와 같이, 사용자 인터페이스들(1302, 1306, 1308, 1310)의 이동의 결과로서, 전자 디바이스(101)는, 이러한 사용자 인터페이스들이 도 13b에서 표시된 3차원 환경(1320) 내의 위치들로부터 도 13c에서 표시된 3차원 환경 내의 위치들로 이동했을 때와 유사한 방식들로 이러한 사용자 인터페이스들(및 연관된 사용자 인터페이스 요소들)을 업데이트했다.
도 13a 내지 도 13d에 예시된 실시예들에 관한 부가적인 또는 대안적인 세부사항들은 도 14a 내지 도 14g를 참조하여 설명된 방법(1400)의 아래의 설명에서 제공된다.
도 14a 내지 도 14g는 일부 실시예들에 따른, 3차원 환경에서 객체들을 이동시키는 방법(1400)을 예시하는 흐름도이다. 일부 실시예들에서, 방법(1400)은, 디스플레이 생성 컴포넌트(예를 들어, 도 1, 도 3, 및 도 4의 디스플레이 생성 컴포넌트(120))(예를 들어, 헤드업 디스플레이, 디스플레이, 터치스크린, 프로젝터 등) 및 하나 이상의 카메라들(예를 들어, 사용자의 손을 하향으로 포인팅하는 카메라(예를 들어, 컬러 센서들, 적외선 센서들, 및 다른 깊이 감지 카메라들) 또는 사용자의 머리로부터 전방으로 향하는 카메라)을 포함하는 컴퓨터 시스템(예를 들어, 태블릿, 스마트폰, 웨어러블 컴퓨터, 또는 머리 장착형 디바이스와 같은 도 1의 컴퓨터 시스템(101))에서 수행된다. 일부 실시예들에서, 방법(1400)은, 비일시적 컴퓨터 판독가능 저장 매체에 저장되며 컴퓨터 시스템의 하나 이상의 프로세서들, 예컨대 컴퓨터 시스템(101)의 하나 이상의 프로세서들(202)(예를 들어, 도 1a의 제어 유닛(110))에 의해 실행되는 명령어들에 의해 관리된다. 방법(1400) 내의 일부 동작들은 선택적으로 조합되고 그리고/또는 일부 동작들의 순서는 선택적으로 변경된다.
일부 실시예들에서, 방법(1400)이 디스플레이 생성 컴포넌트(예를 들어, 120) 및 하나 이상의 입력 디바이스들(예를 들어, 314)과 통신하는 전자 디바이스(예를 들어, 101)에서 수행된다. 예를 들어, 모바일 디바이스(예를 들어, 태블릿, 스마트폰, 미디어 플레이어, 또는 웨어러블 디바이스), 또는 컴퓨터. 일부 실시예들에서, 디스플레이 생성 컴포넌트는 전자 디바이스와 통합된 디스플레이(선택적으로 터치 스크린 디스플레이), 사용자 인터페이스를 투영하거나 사용자 인터페이스로 하여금 하나 이상의 사용자들에게 보이게 하기 위한 외부 디스플레이, 예컨대 모니터, 프로젝터, 텔레비전, 또는 하드웨어 컴포넌트(선택적으로 통합형 또는 외부) 등이다. 일부 실시예들에서, 하나 이상의 입력 디바이스들은 사용자 입력을 수신(예를 들어, 사용자 입력을 캡처, 사용자 입력을 검출 등)하고 사용자 입력과 연관된 정보를 전자 디바이스에 송신할 수 있는 전자 디바이스 또는 컴포넌트를 포함한다. 입력 디바이스들의 예들은 터치 스크린, 마우스(예를 들어, 외장형), 트랙패드(선택적으로, 통합형 또는 외장형), 터치패드(선택적으로, 통합형 또는 외장형), 원격 제어 디바이스(예를 들어, 외장형), 다른 모바일 디바이스(예를 들어, 전자 디바이스로부터 분리됨), 핸드헬드 디바이스(예를 들어, 외장형), 제어기(예를 들어, 외장형), 카메라, 깊이 센서, 눈 추적 디바이스, 및/또는 모션 센서(예를 들어, 손 추적 디바이스, 손 모션 센서) 등을 포함한다. 일부 실시예들에서, 전자 디바이스는 손 추적 디바이스(예를 들어, 하나 이상의 카메라들, 깊이 센서들, 근접 센서들, 터치 센서들(예를 들어, 터치 스크린, 트랙패드))와 통신한다. 일부 실시예들에서, 손 추적 디바이스는 스마트 장갑과 같은 웨어러블 디바이스이다. 일부 실시예들에서, 손 추적 디바이스는, 원격 제어부 또는 스타일러스와 같은 핸드헬드 입력 디바이스이다.
일부 실시예들에서, 전자 디바이스는 디스플레이 생성 컴포넌트를 통해 사용자의 제1 시점으로부터 3차원 환경(예를 들어, 3차원 환경(1320))(예를 들어, 3차원 환경은 가상 현실(VR) 환경, 혼합 현실(MR) 환경, 또는 증강 현실(AR) 환경 등과 같은 컴퓨터 생성 현실(XR) 환경임)을 디스플레이하며, 3차원 환경은 3차원 환경 내의 제1 위치에 제1 사용자 인터페이스 객체를 포함한다(1402a). 일부 실시예들에서, 제1 객체는 애플리케이션 윈도우, 운영 체제 요소, 콘텐츠 항목 등과 같은 가상 객체이다. 일부 실시예들에서, 3차원 환경은 부가적으로, 전자 디바이스가 물리적으로 위치되는 환경 내의 물리적 객체들의 표현들을 포함한다. 일부 실시예들에서, 전자 디바이스는, 전자 디바이스가 제1 개개의 시점에 대응하는 물리적 환경 내의 위치 및/또는 배향에 있기 때문에, 제1 개개의 시점으로부터 3차원 환경을 디스플레이하고 있다. 일부 실시예들에서, 사용자의 시점이 제1 개개의 시점에 대응할 때, 제1 객체는 사용자의 시야 내에 위치된다.
일부 실시예들에서, 사용자의 제1 시점으로부터 3차원 환경 내의 제1 객체를 디스플레이하는 동안(예를 들어, 일부 실시예들에서, 전자 디바이스가 사용자의 제1 시점으로부터 3차원 환경 내의 제1 객체를 디스플레이하고 있는 동안, 전자 디바이스는 제1 시각적 외관으로 제1 객체를 디스플레이한다. 일부 실시예들에서, 제1 시각적 외관은 제1 객체의 디폴트 시각적 외관에 대응한다. 일부 실시예들에서, 제1 객체가 제1 시각적 외관으로 디스플레이되고 있을 때, 제1 객체는 완전히(또는 부분적으로) 불투명하다. 일부 실시예들에서, 제1 객체가 전자 디바이스의 사용자에 의해 선택되지 않았기 때문에, 제1 객체는 제1 시각적 외관으로 디스플레이된다(예를 들어, 애플리케이션 상태는 선택되지 않은 상태에 대응함). 일부 실시예들에서, 제1 객체는, 전자기기의 사용자가 제1 객체와 현재 상호작용하고 있지 않기 때문에 제1 시각적 외관으로 디스플레이된다), 전자 디바이스는 하나 이상의 입력 디바이스들을 통해, 제1 사용자 인터페이스 객체를 3차원 환경 내의 제1 위치로부터 제2 위치로 이동시키기 위한 제1 입력, 예컨대 사용자 인터페이스(1302)를 도 13b에서 표시된 3차원 환경(1320) 내의 위치로부터 도 13c에서 표시된 3차원 환경(1320) 내의 위치로 이동시키기 위한 입력을 수신한다(1402b). 일부 실시예들에서, 방법(1400)을 참조하여 설명된 제1 입력 및/또는 하나 이상의 입력들은 방법(800)을 참조하여 설명된 바와 같은 에어 제스처 입력들이다. 일부 실시예들에서, (예를 들어, 전자 디바이스가 머리 장착형 디바이스이면) 전자 디바이스의 사용자가 사용자의 시선이 제1 객체를 향해 지향되는 동안 사용자의 손의 검지 손가락 및 엄지를 사용하여 핀칭 제스처를 수행하고, 뒤이어 핀치 손 형상을 유지하면서 사용자의 손의 이동을 수행할 때, 전자 디바이스는 제1 입력을 수신한다. 일부 실시예들에서, (예를 들어, 전자 디바이스와 연관된 디스플레이 생성 컴포넌트가 터치 스크린이면) 사용자의 손이 전자 디바이스의 터치 스크린 상의 드래깅/이동 제스처를 통해 제1 객체를 이동시키고 있다는 것을 전자 디바이스가 검출할 때, 제1 입력이 수신된다. 일부 실시예들에서, 제1 객체를 이동시키기 위한 제1 입력은 방법(1000)을 참조하여 설명된 하나 이상의 객체들을 이동시키기 위한 입력의 특성들 중 하나 이상을 갖는다.
일부 실시예들에서, 제1 입력을 수신하는 동안, 전자 디바이스는 제1 사용자 인터페이스 객체를 제1 위치로부터 제2 위치로 이동시키고(1402c), 제1 사용자 인터페이스 객체를 제1 위치로부터 제2 위치로 이동시키는 동안, 전자 디바이스는 3차원 환경에 대해 제1 사용자 인터페이스 객체의 일부를 시각적으로 강조해제한다(1402d). 예를 들어, 도 13b에서 표시된 위치로부터 도 13c에서 표시된 위치로의 사용자 인터페이스(1302)의 이동 동안, 전자 디바이스(101)는 사용자 인터페이스(1302)가 3차원 환경(1320)에서 이동되고 있지 않았을 때와 비교하여 사용자 인터페이스(1302)의 투명도를 증가시킨다. 일부 실시예들에서, 제1 객체의 크기는 제1 객체의 이동 동안 변경되지 않는다. 일부 실시예들에서, 시각적으로 강조해제되는 제1 사용자 인터페이스 객체의 일부는 제1 사용자 인터페이스 객체의 총 크기의 5%, 10%, 20%, 40%, 60%, 90%, 또는 100%에 대응한다. 일부 실시예들에서, 제1 사용자 인터페이스 객체의 일부를 시각적으로 강조해제하는 것은 제1 사용자 인터페이스 객체의 일부의 밝기를 5%, 7%, 9%, 11%, 13%, 또는 20%만큼 낮추는 것을 포함한다. 일부 실시예들에서, 제1 사용자 인터페이스 객체의 일부를 시각적으로 강조해제하는 것은 제1 사용자 인터페이스 객체의 일부의 투명도를 5%, 7%, 9%, 11%, 13%, 또는 20%만큼 증가시키는 것을 포함한다. 일부 실시예들에서, 제1 사용자 인터페이스 객체의 일부를 시각적으로 강조해제하는 것은 제1 사용자 인터페이스 객체의 일부의 막힘(occlusion)을 5%, 7%, 9%, 11%, 13%, 또는 20%만큼 감소시키는 것을 포함한다.
일부 실시예들에서, 제1 사용자 인터페이스 객체의 일부가 3차원 환경에 대해 시각적으로 강조해제되는 동안, 전자 디바이스는 제1 사용자 인터페이스 객체와 제1 시점 사이의 거리가 변경됨에 따라, 제1 사용자 인터페이스 객체가 디스플레이되는 크기를 변경시킨다(1402e). 예를 들어, 도 13c에서, 사용자 인터페이스(1302)가 사용자의 시야에서 점유하는 공간의 양은, 사용자 인터페이스(1302)가 3차원 환경(1320)의 사용자의 시점으로부터 더 멀리 이동함에 따라 감소한다. 반대로, 도 13c에서, 사용자 인터페이스(1302)가 사용자의 시야에서 점유하는 공간의 양은, 사용자 인터페이스(1302)가 3차원 환경(1320)의 사용자의 시점에 더 가깝게 이동함에 따라 증가한다. 일부 실시예들에서, 제1 사용자 인터페이스 객체를 제1 위치로부터 제2 위치로 이동시키는 동안, 3차원 환경 내의 제1 사용자 인터페이스 객체의 크기가 변경되는 것이 아니라, 오히려 객체의 각도 크기(예를 들어, 제1 사용자 인터페이스 객체가 사용자의 시야에서 점유하는 공간의 양)가 변경된다. 예를 들어, 제1 사용자 인터페이스 객체가 사용자의 시점으로부터 더 멀리 이동함에 따라(예를 들어, 제2 위치가 제1 위치보다 사용자의 시점으로부터 더 멀리 있으면), 제1 사용자 인터페이스 객체의 각도 크기는 선택적으로, 제1 사용자 인터페이스 객체가 사용자의 시야에서 더 적은 공간을 점유하도록 감소한다(그러나, 3차원 환경 내의 제1 사용자 인터페이스 객체의 크기는 동일하게 유지됨). 반대로, 제1 사용자 인터페이스 객체가 사용자의 시점에 더 가깝게 이동하면(예를 들어, 제2 위치가 제1 위치보다 사용자의 시점에 더 가까우면), 제1 사용자 인터페이스 객체의 각도 크기는 선택적으로, 제1 사용자 인터페이스 객체가 사용자의 시야에서 더 많은 공간을 점유하도록 증가한다(그러나, 3차원 환경 내의 제1 사용자 인터페이스 객체의 크기는 동일하게 유지됨). 3차원 환경에서 객체를 이동시킬 때 객체의 적어도 일부를 시각적으로 강조해제하는 것은 어지러움 또는 멀미 증상들을 유발할 수 있는 잠재적인 방향감각상실을 감소시키며, 따라서 사용자가 3차원 환경과 안전하게 상호작용할 수 있게 하는 메커니즘을 제공하고, 그에 의해, 3차원 환경과 상호작용할 때 사용자에 대한 인지적 부담을 감소시킨다.
일부 실시예들에서, 3차원 환경에 대해 제1 사용자 인터페이스 객체의 일부를 시각적으로 강조해제하는 것(1404a)은 제1 사용자 인터페이스 객체의 이동이 하나 이상의 기준들을 만족시킨다는 결정에 따라(예를 들어, 일부 실시예들에서, 제1 사용자 인터페이스 객체의 이동은 제1 사용자 인터페이스 객체가 3차원 환경에서 제1 임계량의 이동 미만(예를 들어, 1, 2, 5, 10, 20, 40, 또는 60 센티미터 미만)으로 이동했을 때 하나 이상의 기준들을 만족시킨다. 일부 실시예들에서, 제1 사용자 인터페이스 객체의 이동은 제1 사용자 인터페이스 객체가 제1 속도 임계치(예를 들어, 초당 1.1, 1.9, 2.1, 5, 5.5 10, 20, 40, 또는 60 센티미터) 이하로 이동되고 있을 때 하나 이상의 기준들을 만족시킨다. 일부 실시예들에서, 제1 사용자 인터페이스 객체의 이동은 제1 사용자 인터페이스 객체가 제1 가속도 임계치(예를 들어, 초당 1.1, 1.9, 2.1, 5, 5.5 10, 20, 40, 60 센티미터) 이하로 가속되고 있을 때 하나 이상의 기준들을 만족시킨다.), 제1 사용자 인터페이스 객체의 일부를 제1 양만큼 시각적으로 강조해제한다(1404b). 예를 들어, 사용자 인터페이스(1302)의 이동이 하나 이상의 기준들을 만족시키면, 전자 디바이스(101)는 사용자 인터페이스(1302)의 투명도를 제1 양만큼 수정한다. 예를 들어, 제1 사용자 인터페이스의 일부는, 제1 사용자 인터페이스 객체가 이동하고 있는 이동 및/또는 속도의 양이 하나 이상의 기준들을 만족시키기 때문에 제1 양만큼 시각적으로 강조해제된다. 일부 실시예들에서, 제1 사용자 인터페이스 객체의 일부를 제1 양만큼 시각적으로 강조해제하는 것은 제1 사용자 인터페이스 객체의 일부의 밝기를 5%, 7%, 9%, 11%, 13%, 또는 20%만큼 낮추는 것을 포함한다. 일부 실시예들에서, 제1 사용자 인터페이스 객체의 일부를 제1 양만큼 시각적으로 강조해제하는 것은 제1 사용자 인터페이스 객체의 일부의 투명도를 5%, 7%, 9%, 11%, 13%, 또는 20%만큼 증가시키는 것을 포함한다. 일부 실시예들에서, 제1 사용자 인터페이스 객체의 일부를 제1 양만큼 시각적으로 강조해제하는 것은 제1 사용자 인터페이스 객체의 일부의 막힘을 5%, 7%, 9%, 11%, 13%, 또는 20%만큼 감소시키는 것을 포함한다.
일부 실시예들에서, 제1 사용자 인터페이스 객체들의 이동이 하나 이상의 제2 기준들을 만족시킨다는 결정에 따라(예를 들어, 일부 실시예들에서, 제1 사용자 인터페이스 객체의 이동은 제1 사용자 인터페이스 객체가 3차원 환경에서 제1 임계량의 이동 초과(예를 들어, 1, 2, 5, 10, 20, 40, 또는 60 센티미터 초과)로 그러나 선택적으로, 제2 임계량의 이동 미만(예를 들어, 1.9, 2.5, 5.5, 10, 15, 30, 또는 70 센티미터 미만)으로 이동했을 때 하나 이상의 제2 기준들을 만족시킨다. 일부 실시예들에서, 제1 사용자 인터페이스 객체의 이동은 제1 사용자 인터페이스 객체가 제1 속도 임계치 초과(예를 들어, 초당 1.1, 1.9, 2.1, 5, 5.5 10, 20, 40, 또는 60 센티미터 초과)이지만, 선택적으로 제2 속도 임계치 미만(예를 들어, 초당 1.9, 2.5, 3.1, 7, 9.5 13, 25, 45, 또는 70 센티미터 미만)의 속도로 이동하고 있을 때 하나 이상의 제2 기준들을 만족시킨다. 일부 실시예들에서, 제1 사용자 인터페이스 객체의 이동은 제1 사용자 인터페이스 객체가 제1 가속도 임계치(예를 들어, 초당 1.1, 1.9, 2.1, 5, 5.5 10, 20, 40, 또는 60 센티미터) 초과로 가속되고 있을 때 하나 이상의 제2 기준들을 만족시킨다.), 전자 디바이스는 제1 사용자 인터페이스 객체의 일부를 제1 양보다 큰 제2 양만큼 시각적으로 강조해제한다(1404c). 예를 들어, 사용자 인터페이스(1302)의 이동이 하나 이상의 제2를 만족시키면, 전자 디바이스(101)는 사용자 인터페이스(1302)의 투명도를 제2 양만큼 수정한다. 예를 들어, 제1 사용자 인터페이스 객체의 일부는 제1 사용자 인터페이스 객체의 이동(예를 들어, 그의 속도 및/또는 그의 양 및/또는 그의 가속도)이 하나 이상의 제2 기준들을 만족시킬 때 더 많이 시각적으로 강조해제된다. 예를 들어, 제1 사용자 인터페이스 객체의 이동이 하나 이상의 제2 기준들을 만족시키면, 제1 사용자 인터페이스 객체의 밝기 부분은 선택적으로, 제1 사용자 인터페이스 객체의 이동이 (하나 또는 제2 기준들이 아니라) 하나 이상의 기준들을 만족시킬 때보다 추가로(예를 들어, 10%, 20%, 30%, 40%, 또는 50%만큼) 감소된다. 일부 실시예들에서, 제1 사용자 인터페이스 객체의 이동이 하나 이상의 제2 기준들을 만족시키면, 제1 사용자 인터페이스 객체의 일부의 투명도는 선택적으로, 제1 사용자 인터페이스 객체의 이동이 (하나 또는 제2 기준들이 아니라) 하나 이상의 기준들을 만족시킬 때보다 추가로(예를 들어, 10%, 20%, 30%, 40%, 또는 50%만큼) 증가된다. 일부 실시예들에서, 제1 사용자 인터페이스 객체의 이동이 하나 이상의 제2 기준들을 만족시키면, 제1 사용자 인터페이스 객체의 일부의 막힘은, 제1 사용자 인터페이스 객체의 이동이 (하나 또는 제2 기준들이 아니라) 하나 이상의 기준들을 만족시킬 때보다 추가로(예를 들어, 10%, 20%, 30%, 40%, 또는 50%만큼) 감소된다.
3차원 환경 내의 제1 사용자 인터페이스 객체의 이동과 연관된 하나 이상의 기준들에 기초하여 상이한 양만큼 제1 사용자 인터페이스 객체의 일부를 시각적으로 강조해제하는 것은 3차원 환경에서 객체들을 이동시키는 효율적인 방식을 제공하고, 어지러움 또는 멀미 증상들을 유발할 수 있는 잠재적인 방향감각상실을 감소시키며, 따라서 사용자가 3차원 환경과 안전하게 상호작용할 수 있게 하는 메커니즘을 제공하고, 그에 의해, 3차원 환경과 상호작용할 때 사용자에 대한 인지적 부담을 감소시킨다.
일부 실시예들에서, (예를 들어, 3차원 환경 내의 제1 위치로부터 3차원 환경 내의 제2 위치로) 3차원 환경 내의 제1 사용자 인터페이스 객체를 이동시키는 동안, 제1 사용자 인터페이스 객체가 개개의 시간량(예를 들어, 0.5, 1, 2, 4, 10, 또는 20초) 동안 이동 임계치(예를 들어, 10, 20, 40, 60, 80, 또는 200 센티미터) 미만으로 이동했다는 결정에 따라, 전자 디바이스는 3차원 환경에 대한 제1 사용자 인터페이스 객체의 일부의 시각적 강조해제를 적어도 부분적으로 반전시킨다(1406a). 예를 들어, 사용자 인터페이스(1302)를 도 13c에서 표시된 위치로 이동시킨 이후, 전자 디바이스(101)는 선택적으로, 객체가 위에서 언급된 개개의 시간량 동안 위의 임계량 미만으로 이동했을 때 도 13a에 예시된 사용자 인터페이스(1302)의 시각적 외관으로 사용자 인터페이스를 디스플레이한다. 예를 들어, 제1 사용자 인터페이스 객체가 개개의 시간량(예를 들어, 1, 2, 4, 또는 10초) 동안 임계량(예를 들어, 5, 10, 20, 30, 또는 40 센티미터) 초과로 이동하지 않았다면, 제1 사용자 인터페이스의 일부는 제1 사용자 인터페이스 객체가 개개의 시간량 동안 임계량 초과로 이동할 때와 비교하여 더 적은 양만큼 강조해제된다. 일부 실시예들에서, 제1 사용자 인터페이스 객체의 일부의 시각적 강조해제는, 제1 사용자 인터페이스 객체가 위에서 설명된 개개의 시간량 동안 위에서 설명된 임계량의 이동 초과로 이동할 때까지 적어도 부분적으로 반전된 상태로 유지된다. 일부 실시예들에서, 제1 사용자 인터페이스 객체의 일부의 시각적 강조해제를 적어도 부분적으로 반전시키는 것은, 제1 사용자 인터페이스 객체가 개개의 시간량 동안 임계량 초과로 이동하고 있을 때와 비교하여 제1 사용자 인터페이스 객체의 일부의 밝기를 증가시키거나, 투명도를 감소시키거나, 막힘을 증가시키는 등을 포함한다. 예를 들어, 3차원 환경 내의 제1 사용자 인터페이스 객체를 이동시키는 동안 일부가 제1 양만큼 시각적으로 강조해제되었다면, 제1 사용자 인터페이스 객체의 일부는, 제1 사용자 인터페이스가 위에서 설명된 개개의 시간량 동안 위에서 설명된 임계량의 이동 미만으로 이동한 이후 제1 양보다 작은 양만큼 시각적으로 강조해제된다. 일부 실시예들에서, 제1 사용자 인터페이스 객체의 일부의 시각적 강조해제는, 제1 사용자 인터페이스 객체가 제1 입력에 의해 여전히 선택되는지 여부 또는 제1 사용자 인터페이스 객체가 제1 입력에 의해 더 이상 선택되지 않는지에 기초하여 상이한 양들만큼 반전된다. 일부 실시예들에서, 제1 사용자 인터페이스 객체의 일부의 시각적 강조해제는, 제1 사용자 인터페이스 객체가 위에서 설명된 임계량의 이동 초과로 더 오래 이동하지 않을수록 추가로 반전된다. 일부 실시예들에서, 강조해제를 적어도 부분적으로 반전시키는 것은 제1 사용자 인터페이스 객체가 제1 입력에 의해 이동되기 전에 했었던 강조로 완전히 복귀하는 것을 포함한다.
제1 사용자 인터페이스 객체의 이동이 이동 기준들을 만족시키지 않을 때 사용자 인터페이스 객체의 일부의 시각적 강조해제를 감소시키는 것은 이전에 강조해제되었던 제1 사용자 인터페이스 객체의 부분들을 반전시키는 효율적인 방식을 제공하며, 따라서 3차원 환경 내의 제1 사용자 인터페이스 객체를 이동시킨 이후 사용자가 3차원 환경과 효율적으로 상호작용하게 허용하는 메커니즘을 제공하고, 그에 의해, 3차원 환경과 상호작용할 때 사용자에 대한 인지적 부담을 감소시킨다.
일부 실시예들에서, 제1 위치에서 제1 사용자 인터페이스 객체를 디스플레이하는 동안 그리고 제1 입력을 수신하기 전에, 제1 사용자 인터페이스 객체는 3차원 환경에서 제1 크기를 갖는다(1408a)(예를 들어, 제1 사용자 인터페이스 객체의 제1 크기는 3차원 환경 내의 제1 사용자 인터페이스 객체의 실제 크기에 대응함). 일부 실시예들에서, 제1 사용자 인터페이스 객체를 제1 위치로부터 제2 위치로 이동시키는 동안(1408b), 전자 디바이스는 3차원 환경에서 제1 사용자 인터페이스 객체를 제1 크기로 유지한다(1408c). 예를 들어, 제1 사용자 인터페이스 객체는 제1 사용자 인터페이스 객체가 제1 위치로부터 제2 위치로 이동하고 있음에 따라 3차원 환경에서 동일한 크기를 계속 갖는다. 따라서, 제1 사용자 인터페이스는 3차원 환경에서의 제1 사용자 인터페이스 객체의 이동에 관계없이 동일한 (예를 들어, 가상) 크기를 계속 갖는다. 그러나, 제1 사용자 인터페이스 객체가 사용자의 시야에서 점유하는 공간의 양(예를 들어, 제1 사용자 인터페이스의 각도 크기(예를 들어, 겉보기 크기))은 제1 사용자 인터페이스 객체가 3차원 환경에서 이동함에 따라 변경될 수 있다. 예를 들어, 제1 사용자 인터페이스 객체가 사용자의 시점으로부터 더 멀리 이동함에 따라, 제1 사용자 인터페이스 객체의 각도 크기는 선택적으로, 제1 사용자 인터페이스 객체가 사용자의 시야에서 더 적은 공간을 점유하도록 감소한다. 반대로, 제1 사용자 인터페이스 객체가 사용자의 시점에 더 가깝게 이동하면, 제1 사용자 인터페이스 객체의 각도 크기는 선택적으로, 제1 사용자 인터페이스 객체가 사용자의 시야에서 더 많은 공간을 점유하도록 증가한다. 일부 실시예들에서, 전자 디바이스는 제1 사용자 인터페이스 객체와 연관하여, 3차원 환경에서 (예를 들어, 제1 사용자 인터페이스 객체와 연관된) 제2 크기를 갖는 시각적 표시, 예컨대 시각적 표시(1334)를 디스플레이하며, 여기서 제2 크기는 사용자의 제1 시점으로부터의 제1 사용자 인터페이스 객체의 현재 거리에 기초한다(1408d). 예를 들어, 제1 사용자 인터페이스 객체가 3차원 환경 내의 제1 위치로부터 3차원 환경 내의 제2 위치로 이동하고 있음에 따라, 윤곽(예를 들어, 시각적 표시)은 제1 사용자 인터페이스 객체와 연관하여(예를 들어, 그의 주변에서) 디스플레이된다. 일부 실시예들에서, 제2 크기는 3차원 환경 내의 제1 사용자 인터페이스 객체의 현재 위치 및/또는 사용자의 시점으로부터의 제1 사용자 인터페이스 객체의 현재 거리에 기초한 제1 사용자 인터페이스 객체의 타겟 각도 크기를 표시한다. 일부 실시예들에서, 타겟 각도 크기는 제1 사용자 인터페이스 객체가 3차원 환경의 사용자의 현재 시점에 대해 상호작용가능하게 허용한다. 따라서, 제1 사용자 인터페이스 객체가 3차원 환경의 사용자의 시점으로부터 멀리 이동하고 있으면, 시각적 표시는 선택적으로, 제1 입력이 제1 사용자 인터페이스 객체를 더 이상 선택하지 않거나 이동시키고 있지 않을 때 제1 사용자 인터페이스 객체가 점유할 사용자의 시야 내의 공간의 양을 표시하기 위해 제1 사용자 인터페이스 객체보다 큰 크기를 갖는다. 반대로, 제1 사용자 인터페이스 객체가 3차원 환경의 사용자의 시점에 더 가깝게 이동하고 있으면, 시각적 표시는 선택적으로, 제1 입력이 제1 사용자 인터페이스 객체를 더 이상 선택하지 않거나 이동시키고 있지 않을 때 제1 사용자 인터페이스 객체가 점유할 사용자의 시야 내의 공간의 양을 표시하기 위해 제1 사용자 인터페이스 객체보다 작은 크기를 갖는다. 일부 실시예들에서, 시각적 표시의 크기는 전자 디바이스의 사용자의 시점에 대한 제1 사용자 인터페이스 객체의 거리의 함수이다. 예를 들어, 시각적 표시의 크기는 제1 사용자 인터페이스 객체가 사용자의 시점으로부터 멀어질수록 증가한다. 일부 실시예들에서, 시각적 표시의 크기는 제1 사용자 인터페이스 객체가 사용자의 시점으로부터 가까워질수록 감소한다. 일부 실시예들에서, 시각적 표시는 제1 사용자 인터페이스 객체가 제1 위치로부터 제2 위치로 이동하고 있음에 따라 제1 사용자 인터페이스 객체와 함께 이동한다. 따라서, 시각적 표시는 선택적으로, 제1 사용자 인터페이스 객체와 동일한 방식으로 시점으로부터 더 멀어지거나/시점에 더 가까워진다.
제1 사용자 인터페이스 객체가 3차원 환경에서 이동하고 있음에 따라 제1 사용자 인터페이스 객체와 연관하여 시각적 표시를 디스플레이하는 것은 3차원 환경 내의 원하는 위치로의 제1 사용자 인터페이스 객체의 이동 이후 제1 사용자 인터페이스 객체가 가질 크기를 표시하는 효율적인 방식을 제공하며, 따라서 사용자가 제1 사용자 인터페이스 객체를 이동시키는 동안 3차원 환경과 안전하게 상호작용하게 허용하고, 어지러움 또는 멀미 증상들을 유발할 수 있는 잠재적인 방향감각상실을 감소시키게 허용하는 메커니즘을 제공하고, 그에 의해, 3차원 환경과 상호작용할 때 사용자에 대한 인지적 부담을 감소시킨다.
일부 실시예들에서, 제1 사용자 인터페이스 객체를 3차원 환경 내의 제2 위치로 이동시킨 이후, 전자 디바이스는 3차원 환경에서 제2 크기를 갖는 제1 사용자 인터페이스 객체를 디스플레이한다(1410a). 예를 들어, 전자 디바이스(101)는, 사용자 인터페이스(1304)가 3차원 환경(1320)에서 더 이상 이동되고 있지 않다는 것을 전자 디바이스(101)가 검출할 때 사용자 인터페이스(1304)를 시각적 표시(1334)에 의해 표시된 크기로 크기조절한다. 예를 들어, 제1 사용자 인터페이스 객체가 3차원 환경 내의 제2 위치로 이동한 이후(예를 들어, 제1 입력의 종료를 검출하는 것에 응답하여), 제1 사용자 인터페이스 객체는 시각적 표시에 의해 표시된 크기로 디스플레이된다. 일부 실시예들에서, 제1 사용자 인터페이스 객체가 제1 입력에 의해 여전히 선택되고, 제1 사용자 인터페이스 객체가 임계량의 시간(예를 들어, 0.5, 1, 2, 4, 10, 또는 20초) 내에서 임계량의 이동(예를 들어, 10, 20, 40, 60, 80, 또는 200 센티미터) 초과로 이동하지 않았다면, 전자 디바이스는 제2 크기를 갖는 제1 사용자 인터페이스 객체를 디스플레이한다. 부가적으로 또는 대안적으로, 제1 입력이 제1 사용자 인터페이스 객체를 더 이상 선택하고 있지 않다는 것을 전자 디바이스가 검출하면, 제1 사용자 인터페이스 객체는 선택적으로 3차원 환경에서 제2 크기를 갖게 디스플레이된다. 일부 실시예들에서, 전자 디바이스는 제2 (예를 들어, 가상) 크기로 제1 가상 객체를 디스플레이하는데, 그 이유는 제2 (예를 들어, 가상) 크기가 전자 디바이스로 하여금 사용자의 시점으로부터 현재 거리에 대해 타겟 각도 크기로 제1 가상 객체를 디스플레이하게 하기(예를 들어, 제1 사용자 인터페이스 객체로 하여금 사용자의 시야에서 타겟량의 공간을 점유하게 하기) 때문이다. 일부 실시예들에서, 전자 디바이스는 제2 크기로 제1 사용자 인터페이스 객체를 디스플레이하는데, 그 이유는 그 크기가 (3차원 환경 내의 제2 위치에서의) 제1 사용자 인터페이스 객체로 하여금, 제1 사용자 인터페이스 객체가 3차원 환경 내의 제1 위치에서 디스플레이되었을 때와 비교하여 사용자의 시야에서 동일하거나 유사한(예를 들어, 1%, 5%, 10%, 또는 20% 내의) 양의 공간을 점유하게 할 것이기 때문이다.
제1 사용자 인터페이스 객체를 3차원 환경 내의 원하는 위치로 이동시킨 이후 시각적 표시에 의해 표시된 크기로 제1 사용자 인터페이스 객체를 디스플레이하는 것은 그 객체의 이동 (이전이 아니라) 이후 제1 사용자 인터페이스 객체의 크기를 업데이트하기 위한 효율적인 방식을 제공하며, 따라서 사용자가 3차원 환경과 효율적으로 상호작용하게 하용하고, 어지러움 또는 멀미 증상들을 유발할 수 있는 잠재적인 방향감각상실을 감소시키게 허용하는 메커니즘을 제공하고, 그에 의해, 3차원 환경과 상호작용할 때 사용자에 대한 인지적 부담을 감소시킨다.
일부 실시예들에서, 3차원 환경에 대해 제1 사용자 인터페이스 객체의 일부를 시각적으로 강조해제하는 것은 제1 사용자 인터페이스 객체의 투명도를 수정하는 것을 포함한다(1412a). 예를 들어, 사용자 인터페이스(1302)가 도 13b에서 표시된 위치로부터 도 13c에서 표시된 위치로 이동하고 있는 동안, 전자 디바이스(101)는 사용자 인터페이스(1302)의 투명도를 수정한다. 예를 들어, 제1 사용자 인터페이스 객체가 3차원 환경에서 이동하고 있는 동안, 시각적으로 강조해제되고 있는 제1 사용자 인터페이스 객체의 일부의 투명도는 (제1 사용자 인터페이스 객체가 제1 입력에 의해 선택되지 않았고 그리고/또는 이동되고 있지 않을 때와 비교하여) 증가한다. 일부 실시예들에서, 제1 사용자 인터페이스 객체의 일부의 투명도는 균일하여, 제1 사용자 인터페이스 객체의 다수의(또는 선택적으로, 모든) 부분들이 동등한 양의 투명도를 갖는다. 일부 실시예들에서, 제1 사용자 인터페이스 객체의 일부를 시각적으로 강조해제하는 것은 제1 사용자 인터페이스 객체가 제1 입력에 의해 선택되지 않았고 그리고/또는 이동되지 않을 때와 비교하여 제1 사용자 인터페이스 객체의 일부의 밝기를 낮추는 것을 포함한다. 일부 실시예들에서, 제1 사용자 인터페이스 객체의 일부를 시각적으로 강조해제하는 것은 제1 사용자 인터페이스 객체가 제1 입력에 의해 선택되지 않았고 그리고/또는 이동되지 않을 때와 비교하여 제1 사용자 인터페이스 객체의 일부의 막힘을 감소시키는 것을 포함한다.
시각적으로 강조해제되고 있는 제1 사용자 인터페이스 객체의 일부의 투명도를 수정하는 것은, 3차원 환경 내의 제1 사용자 인터페이스 객체를 이동시키는 동안 제1 사용자 인터페이스 객체를 강조해제하기 위한 효율적인 방식을 제공하고, 어지러움 또는 멀미 증상들을 유발할 수 있는 잠재적인 방향감각상실을 감소시키며, 따라서 사용자가 3차원 환경과 안전하게 상호작용할 수 있게 하는 메커니즘을 제공하고, 그에 의해, 3차원 환경과 상호작용할 때 사용자에 대한 인지적 부담을 감소시킨다.
일부 실시예들에서, 3차원 환경에 대해 제1 사용자 인터페이스 객체의 일부를 시각적으로 강조해제하는 것은, 도 13c의 사용자 인터페이스(1308)와 같이, 제1 사용자 인터페이스 객체의 일부의 투명도를 제1 양만큼 수정하는 것, 및 제1 사용자 인터페이스 객체의 제2 부분의 투명도를 제1 양과 상이한 제2 양만큼 수정하는 것을 포함한다(1414a). 예를 들어, 제1 사용자 인터페이스 객체가 3차원 환경에서 이동하고 있는 동안, 제1 사용자 인터페이스 객체의 다수의 부분들이 시각적으로 강조해제된다. 일부 실시예들에서, 제1 사용자 인터페이스의 일부의 투명도 및 제2 부분의 투명도는 상이하다. 일부 실시예들에서, 제1 사용자 인터페이스 객체의 일부가 제1 사용자 인터페이스 객체의 제2 부분보다 제1 사용자 인터페이스 객체의 중심에 있거나 그에 가까우면, 제1 사용자 인터페이스 객체의 일부는 선택적으로 제1 사용자 인터페이스 객체의 제2 부분보다 덜 투명하다. 반대로, 제1 사용자 인터페이스 객체의 일부가 제1 사용자 인터페이스 객체의 제2 부분보다 제1 사용자 인터페이스 객체의 중심으로부터 더 멀리 있으면, 제1 사용자 인터페이스 객체의 일부는 선택적으로 제1 사용자 인터페이스 객체의 제2 부분보다 더 투명하다. 일부 실시예들에서, 제1 사용자 인터페이스 객체의 상이한 부분들(예를 들어, 일부 및 제2 부분)에 적용되는 강조해제의 양은 사용자가 현재 응시하고 있는 3차원 환경 내의 위치에 대한 그러한 상이한 부분들 사이의 거리에 기초한다(예를 들어, 제1 사용자 인터페이스 객체의 개개의 부분이 사용자의 현재 시선 위치에 가까울수록, 개개의 부분은 덜 투명하고, 제1 사용자 인터페이스 객체의 개개의 부분이 사용자의 현재 시선 위치로부터 멀수록, 개개의 부분은 더 투명함).
제1 사용자 인터페이스 객체를 3차원 환경으로 이동시키는 동안 상이한 양들의 투명도들로 제1 사용자 인터페이스 객체의 상이한 부분들을 수정하는 것은 3차원 환경 내의 제1 사용자 인터페이스 객체를 이동시키는 동안 제1 사용자 인터페이스 객체를 강조해제하기 위한 효율적인 방식을 제공하고, 어지러움 또는 멀미 증상들을 유발할 수 있는 잠재적인 방향감각상실을 감소시키며, 따라서 사용자가 3차원 환경과 안전하게 상호작용할 수 있게 하는 메커니즘을 제공하고, 그에 의해, 3차원 환경과 상호작용할 때 사용자에 대한 인지적 부담을 감소시킨다.
일부 실시예들에서, 제1 사용자 인터페이스 객체를 제1 위치로부터 제2 위치로 이동시키는 동안, 전자 디바이스는 제1 사용자 인터페이스 객체와 연관하여, 3차원 환경 내의 제1 사용자 인터페이스 객체의 현재 위치를 표시하는 제1 사용자 인터페이스 객체의 가상 섀도우(예를 들어, 제1 사용자 인터페이스 객체와 별개임), 예컨대 가상 섀도우(1332)를 디스플레이한다(1416a). 일부 실시예들에서, 가상 섀도우는 제1 입력이 제1 사용자 인터페이스 객체를 선택할 때까지 디스플레이되지 않는다. 일부 실시예들에서, 가상 섀도우는 제1 사용자 인터페이스 객체가 3차원 환경 내의 제1 위치로부터 제2 위치로 이동하기 시작할 때까지 디스플레이되지 않는다. 일부 실시예들에서, 가상 섀도우는 제1 사용자 인터페이스 객체 아래에서 디스플레이된다. 일부 실시예들에서, 섀도우는 3차원 환경 내의 제1 사용자 인터페이스 객체 아래에 있는 하나 이상의 객체들 및/또는 표면들, 예컨대 3차원 환경의 바닥 또는 3차원 환경 내의 물리적 객체들의 표현들 상에 캐스팅(cast)된다(예를 들어, 이를 오버레이함). 일부 실시예들에서, 가상 섀도우는 3차원 환경 내의 제1 사용자 인터페이스 객체의 현재 위치(예를 들어, 그리고/또는 사용자의 시점으로부터의 현재 거리)를 표시한다. 예를 들어, 제1 사용자 인터페이스 객체가 3차원 환경 내의 테이블의 표현 위에서 현재 호버링하고 있으면, 가상 섀도우는 제1 사용자 인터페이스 객체의 현재 위치를 표시하기 위해 테이블의 표현 상에서 디스플레이된다. 일부 실시예들에서, 제1 사용자 인터페이스 객체가 제1 위치로부터 제2 위치로 이동하고 있음에 따라, 가상 섀도우는 3차원 환경 내의 제1 사용자 인터페이스 객체의 현재 위치를 표시하도록 제1 사용자 인터페이스 객체와 함께 이동한다.
제1 사용자 인터페이스 객체에 대한 가상 섀도우를 디스플레이하는 것은 3차원 환경 내의 제1 사용자 인터페이스 객체의 위치를 표시하는 효율적인 방식을 제공하고, 어지러움 또는 멀미 증상들을 유발할 수 있는 잠재적인 방향감각상실을 감소시키며, 따라서 사용자가 3차원 환경과 안전하게 상호작용할 수 있게 하는 메커니즘을 제공하고, 그에 의해, 3차원 환경과 상호작용할 때 사용자에 대한 인지적 부담을 감소시킨다.
일부 실시예들에서, 제1 위치에서 제1 사용자 인터페이스 객체를 디스플레이하는 동안 그리고 제1 입력을 수신하기 전에, 제1 사용자 인터페이스 객체는 3차원 환경에서 제1 크기를 갖는다(1418a)(예를 들어, 3차원 환경 내의 제1 사용자 인터페이스 객체의 실제 크기는 제1 크기임). 일부 실시예들에서, 제1 사용자 인터페이스 객체를 3차원 환경 내의 제1 위치로부터 제2 위치로 이동시키는 동안, 전자 디바이스는 3차원 환경에서 제1 사용자 인터페이스 객체를 제1 크기, 예컨대 사용자 인터페이스(1306)가 도 13b의 위치로부터 도 13c의 위치로 이동하고 있음에 따라 변경되지 않는 사용자 인터페이스(1306)의 (예를 들어, 실제) 크기로 유지한다(1418b). 예를 들어, 제1 사용자 인터페이스 객체가 제1 위치로부터 제2 위치로 이동하고 있음에 따라, 3차원 환경 내의 제1 사용자 인터페이스 객체의 크기는 변경되지 않는다. 그러나, 3차원 환경에서의 이동 방향(예를 들어, 사용자의 시점에 더 가깝거나 또는 사용자의 시점으로부터 멀어짐)에 기초하여, 제1 사용자 인터페이스 객체의 각도 크기가 변경될 수 있다. 예를 들어, 제1 사용자 인터페이스 객체가 사용자의 시점에 더 가깝게 이동하면(예를 들어, 제2 위치가 제1 위치보다 사용자의 시점에 가까우면), 제1 사용자 인터페이스 객체는 선택적으로, 제1 위치에서의 제1 사용자 인터페이스 객체와 비교하여 사용자의 시야에서 더 많은 공간을 점유한다(예를 들어, 제1 사용자 인터페이스 객체의 각도 크기가 변경됨). 반대로, 제1 사용자 인터페이스 객체가 사용자의 시점으로부터 더 멀리 이동하면(예를 들어, 제2 위치가 제1 위치보다 사용자의 시점으로부터 더 멀리 있으면), 제1 사용자 인터페이스 객체는 선택적으로, 제1 사용자 인터페이스 객체가 제1 위치에 있을 때와 비교하여 사용자의 시야에서 더 적은 공간을 점유한다(예를 들어, 제1 사용자 인터페이스 객체의 각도 크기가 변경됨).
일부 실시예들에서, 제1 사용자 인터페이스 객체를 3차원 환경 내의 제2 위치로 이동시킨 이후 그리고 하나 이상의 기준들이 만족된다는 결정에 따라(예를 들어, 제1 사용자 인터페이스 객체를 제2 위치로 이동시킨 이후 제1 사용자 인터페이스 객체가 임계량(예를 들어, 1, 5, 10, 15, 20, 또는 40 센티미터) 미만으로 이동했다면, 제1 사용자 인터페이스 객체를 3차원 환경 내의 제2 위치로 이동시킨 이후 임계량의 시간(예를 들어, 0, 0.5, 1, 3, 5, 10, 또는 20초)이 경과했다면, 제1 사용자 인터페이스 객체가 제1 입력에 의해 여전히 선택되면, 제1 사용자 인터페이스 객체가 제1 입력에 의해 더 이상 선택되지 않으면, 그리고/또는 임의의 다른 적합한 기준들), 전자 디바이스는 3차원 환경에서 제1 크기와 상이한 제2 크기를 갖는 제1 사용자 인터페이스 객체를 디스플레이하며, 여기서 제2 크기, 예컨대 도 13d의 사용자 인터페이스(1306)의 크기는 (예를 들어, 제2 위치에서의) 제1 사용자 인터페이스 객체로부터 사용자의 제1 시점으로의 거리에 기초한다(1418c). 예를 들어, 제1 사용자 인터페이스 객체를 제1 위치로부터 제2 위치로 이동시킨 이후, 제1 사용자 인터페이스 객체는 제2 크기로 크기조절되지만, 선택적으로 제1 사용자 인터페이스 객체가 3차원 환경 내의 제2 위치에 도달하기 전에는 크기조절되지 않는다. 일부 실시예들에서, 사용자의 시점으로부터 제1 사용자 인터페이스 객체의 현재 거리에 기초하여 제2 크기가 제1 사용자 인터페이스 객체로 하여금 타겟 각도 크기로 디스플레이되게 하기(예를 들어, 제1 사용자 인터페이스 객체로 하여금 사용자의 시야에서 타겟량의 공간을 점유하게 하기) 때문에, 제1 사용자 인터페이스 객체는 제2 크기로 디스플레이된다. 일부 실시예들에서, 제2 크기가 3차원 환경 내의 그의 현재 위치 및/또는 사용자의 시점으로부터의 거리에서 제1 사용자 인터페이스 객체가 상호작용가능하게 허용하기 때문에, 제1 사용자 인터페이스 객체는 제2 크기로 디스플레이된다. 따라서, 제1 사용자 인터페이스 객체가 3차원 환경의 사용자의 시점으로부터 멀리 이동하고 있으면, 제1 사용자 인터페이스 객체의 다양한 콘텐츠는 선택적으로, 제1 사용자 인터페이스 객체를 3차원 환경 내의 사용자의 시점으로부터 멀리 이동시킨 이후에도 사용자가 제1 사용자 인터페이스 객체와 계속 상호작용하게 허용하는 크기들을 갖는다(예를 들어, 제1 사용자 인터페이스 객체의 부분들은 사용자가 제1 사용자 인터페이스 객체와 상호작용하도록 제1 사용자 인터페이스 객체에 더 가깝게 이동해야 할만큼 너무 작지는 않음). 반대로, 제1 사용자 인터페이스 객체가 3차원 환경의 사용자의 시점에 더 가깝게 이동하고 있으면, 제1 사용자 인터페이스 객체의 다양한 콘텐츠는, 제1 사용자 인터페이스 객체를 3차원 환경 내의 사용자의 시점에 더 가깝게 이동시킨 이후에도 사용자가 제1 사용자 인터페이스 객체와 계속 상호작용하게 허용하는 크기들을 갖는다(예를 들어, 제1 사용자 인터페이스 객체의 부분들은 사용자가 제1 사용자 인터페이스 객체와 상호작용하도록 제1 사용자 인터페이스 객체로부터 멀리 이동해야 할만큼 너무 크지는 않음). 일부 실시예들에서, 제1 사용자 인터페이스 객체의 크기는 전자 디바이스의 사용자의 시점에 대한 제1 사용자 인터페이스 객체의 위치/거리의 함수이다. 예를 들어, 제2 크기는 제1 사용자 인터페이스 객체가 사용자의 시점으로부터 멀어질수록 증가한다. 일부 실시예들에서, 제2 크기는 제1 사용자 인터페이스 객체가 사용자의 시점에 가까워질수록 감소한다. 제1 사용자 인터페이스 객체를 3차원 환경 내의 원하는 위치로 이동시킨 이후 제2 크기로 제1 사용자 인터페이스 객체를 디스플레이하는 것은 그 객체의 이동 이후 제1 사용자 인터페이스 객체의 크기를 업데이트하기 위한 효율적인 방식을 제공하며, 따라서 사용자가 제1 사용자 인터페이스 객체를 이동시키는 동안 3차원 환경과 안전하게 상호작용하게 허용하고, 어지러움 또는 멀미 증상들을 유발할 수 있는 잠재적인 방향감각상실을 감소시키게 허용하는 메커니즘을 제공하고, 그에 의해, 3차원 환경과 상호작용할 때 사용자에 대한 인지적 부담을 감소시킨다.
일부 실시예들에서, 제1 사용자 인터페이스 객체를 제1 위치로부터 제2 위치로 이동시키는 동안(1420a), 3차원에서 제1 크기를 갖는 제1 사용자 인터페이스 객체를 디스플레이한 이후 그리고 제2 위치에서 제1 사용자 인터페이스 객체를 디스플레이하기 전에(1420b)(예를 들어, 제1 사용자 인터페이스 객체가 제2 위치로 아직 이동되지 않은 동안), 전자 디바이스는 제1 크기와 상이한 제3 크기를 갖는 제1 사용자 인터페이스 객체를 디스플레이하며, 여기서 3차원 환경 내의 제3 크기는 사용자의 제1 시점으로부터의 제1 사용자 인터페이스 객체의 현재 거리에 기초한다(1420c). 예를 들어, 사용자 인터페이스(1306)를 도 13c에서 표시된 위치로부터 이동시킨 이후 그리고 사용자 인터페이스(1306)를 도 1306에서 표시된 위치로 이동시키기 전에, 전자 디바이스(101)는 사용자 인터페이스(1306)가 3차원 환경(1320)의 사용자의 시점으로부터 얼마나 가깝게/얼마나 멀리 이동했는지에 기초하여 사용자 인터페이스(1306)를 제3 크기로 업데이트한다. 예를 들어, 제1 사용자 인터페이스 객체가 3차원 환경에서 이동하고 있지만, 3차원 환경 내의 그의 최종 위치로 아직 이동되지 않는 동안, 제1 사용자 인터페이스 객체의 크기가 변경된다. 일부 실시예들에서, 사용자의 시점으로부터 사용자 인터페이스 객체의 현재 거리에 기초하여 제3 크기가 전자 디바이스로 하여금 타겟 각도 크기로 디스플레이되게 하기(예를 들어, 제1 사용자 인터페이스 객체로 하여금 사용자의 시야에서 타겟량의 공간을 점유하게 하기) 때문에, 제1 사용자 인터페이스 객체는 제3 크기로 디스플레이된다. 일부 실시예들에서, 제3 크기가 3차원 환경 내의 그의 현재 위치 및 사용자의 시점으로부터의 거리에서 제1 사용자 인터페이스 객체가 상호작용가능하게 허용하기 때문에, 제1 사용자 인터페이스 객체는 제3 크기로 디스플레이된다. 일부 실시예들에서, 제1 사용자 인터페이스 객체의 제3 크기는 전자 디바이스의 사용자의 시점에 대한 제1 사용자 인터페이스 객체의 위치의 함수이다. 예를 들어, 제3 크기는 제1 사용자 인터페이스 객체가 사용자의 시점으로부터 멀어질수록 증가한다. 일부 실시예들에서, 제3 크기는 제1 사용자 인터페이스 객체가 사용자의 시점으로부터 가까워질수록 감소한다.
제1 사용자 인터페이스 객체가 3차원 환경에서 이동하고 있음에 따라 제1 사용자 인터페이스 객체의 크기를 업데이트하는 것은 3차원 환경 내의 제1 사용자 인터페이스 객체를 이동시키는 동안 타겟 각도 크기에 대응하는 크기로 제1 사용자 인터페이스를 디스플레이하기 위한 효율적인 방식을 제공하며, 따라서 사용자가 제1 사용자 인터페이스 객체를 이동시키는 동안 3차원 환경과 안전하게 상호작용하게 허용하고, 어지러움 또는 멀미 증상들을 유발할 수 있는 잠재적인 방향감각상실을 감소시키게 허용하는 메커니즘을 제공하고, 그에 의해, 3차원 환경과 상호작용할 때 사용자에 대한 인지적 부담을 감소시킨다.
일부 실시예들에서, 제1 사용자 인터페이스를 제1 위치로부터 제2 위치로 이동시키는 것은 제1 입력의 제1 부분에 대응한다(1422a). 일부 실시예들에서, 제1 입력의 제1 부분(예를 들어, 그의 속도, 거리, 지속기간, 방향 등)에 따라 제1 사용자 인터페이스 객체를 제2 위치로 이동시킨 이후 그리고 제2 위치에서 제2 크기를 갖는 제1 사용자 인터페이스 객체를 디스플레이하는 동안, 전자 디바이스는 하나 이상의 입력 디바이스들을 통해, 제1 사용자 인터페이스 객체를 3차원 환경 내의 제2 위치로부터 제3 위치로 이동시키기 위한 제1 입력의 제2 부분을 수신한다(1422b). 예를 들어, 전자 디바이스가 3차원 환경 내의 제2 위치에서 제2 크기를 갖도록 제1 사용자 인터페이스 객체의 크기를 업데이트한 이후, 제1 입력은 제1 사용자 인터페이스 객체를 3차원 환경 내의 제3 위치로 추가로 이동시킨다. 일부 실시예들에서, 전자 디바이스는, 제1 사용자 인터페이스 객체를 제2 위치로 이동시킨 이후 제1 입력이 제1 사용자 인터페이스 객체의 선택을 유지한 이후에 제1 입력의 제2 부분을 검출하고, 제2 부분은 검출되는 제1 입력의 부가적인 이동에 대응한다.
일부 실시예들에서, 제1 사용자 인터페이스 객체를 3차원 환경 내의 제2 위치로부터 제3 위치로 이동시키는 동안, 전자 디바이스는 3차원 환경에서 제2 크기를 갖는 것으로부터 제2 크기와 상이한 제3 크기를 갖는 것으로 제1 사용자 인터페이스 객체를 업데이트하며, 여기서 3차원 환경 내의 제3 크기는 사용자의 제1 시점으로부터의 제1 사용자 인터페이스 객체의 현재 거리에 기초한다(1422c). 예를 들어, 제1 사용자 인터페이스 객체를 3차원 환경 내의 제2 위치로 이동시키는 것에 응답하여 제2 크기를 갖도록 제1 사용자 인터페이스 객체의 크기를 업데이트한 이후, (예를 들어, 선택적으로 동일한 입력을 이용한) 제1 사용자 인터페이스 객체의 추가적인 이동은 제1 사용자 인터페이스의 크기가 다시 업데이트되게 한다. 일부 실시예들에서, 제1 사용자 인터페이스 객체의 크기는 객체가 제2 위치로 이동된 이후 그리고 객체가 제3 위치로 이동되기 전에 다수회 변경된다. 일부 실시예들에서, 사용자의 시점에 대한 제1 사용자 인터페이스 객체의 현재 거리에 기초하여 제3 (예를 들어, 가상) 크기가 제1 사용자 인터페이스 객체로 하여금 타겟 각도 크기로 디스플레이되게 하기(예를 들어, 제1 사용자 인터페이스 객체로 하여금 사용자의 시야에서 타겟량의 공간을 점유하게 하기) 때문에, 제1 사용자 인터페이스 객체는 제3 크기로 디스플레이된다. 일부 실시예들에서, 제3 크기가 3차원 환경 내의 그의 현재 위치 및 사용자의 시점으로부터의 거리에서 제1 사용자 인터페이스 객체가 상호작용가능하게 허용하기 때문에, 제1 사용자 인터페이스 객체는 제3 크기로 디스플레이된다. 일부 실시예들에서, 제1 사용자 인터페이스 객체의 크기는 전자 디바이스의 사용자의 시점에 대한 제1 사용자 인터페이스 객체의 위치의 함수이다. 예를 들어, 제3 크기는 제1 사용자 인터페이스 객체가 사용자의 시점으로부터 멀어질수록 증가한다. 일부 실시예들에서, 제3 크기는 제1 사용자 인터페이스 객체가 사용자의 시점으로부터 가까워질수록 감소한다.
3차원 환경 내의 제2 위치로부터 멀어지는 제1 사용자 인터페이스 객체의 추가적인 이동을 검출한 이후 제3 크기로 제1 사용자 인터페이스 객체를 디스플레이하는 것은 제1 사용자 인터페이스 객체가 3차원 환경에서 이동함에 따라 제1 사용자 인터페이스 객체의 크기를 업데이트하기 위한 효율적인 방식을 제공하며, 따라서, 사용자가 제1 사용자 인터페이스 객체를 이동시키는 동안 3차원 환경과 안전하게 상호작용하게 하용하고, 어지러움 또는 멀미 증상들을 유발할 수 있는 잠재적인 방향감각상실을 감소시키게 허용하는 메커니즘을 제공하고, 그에 의해, 3차원 환경과 상호작용할 때 사용자에 대한 인지적 부담을 감소시킨다.
일부 실시예들에서, 하나 이상의 기준들은 제1 사용자 인터페이스 객체를 3차원 환경 내의 제2 위치로 이동시킨 이후 임계량의 시간(예를 들어, 0.5, 1, 2, 3, 4, 5, 10, 15, 20, 또는 30초)이 경과됐을 때 만족되는 기준을 포함한다(1424a). 예를 들어, 사용자 인터페이스(1306)를 도 13d에서 표시된 위치로 이동시킨 이후, 위에서 언급된 임계량의 시간이 경과됐기 때문에, 전자 디바이스(101)는 도 13d에서 표시된 크기로 사용자 인터페이스(1306)를 크기조절한다. 예를 들어, 제1 사용자 인터페이스 객체를 3차원 환경 내의 제1 위치로부터 제2 위치로 이동시킨 이후, 제1 사용자 인터페이스 객체는 제2 위치로의 제1 사용자 인터페이스 객체의 이동 이후 임계량의 시간(예를 들어, 0.5, 1, 2, 3, 5, 6, 12, 20, 40, 또는 60초)이 경과했다면 제2 크기를 갖도록 업데이트된다. 따라서, 전자 디바이스는 선택적으로, 위에서 언급된 임계량의 시간이 경과했을 때 제1 사용자 인터페이스 객체의 크기를 제2 크기로 업데이트한다. 일부 실시예들에서, 하나 이상의 기준들은, 제1 사용자 인터페이스 객체를 3차원 환경 내의 제2 위치로 이동시킨 이후 개개의 시간량(예를 들어, 0.5, 1, 2, 4, 10, 또는 20초) 동안 제1 사용자 인터페이스가 이동 임계치(예를 들어, 10, 20, 40, 60, 80, 또는 200 센티미터) 미만으로 이동했을 때 만족되는 기준을 포함한다.
제1 사용자 인터페이스 객체가 개개의 시간량 동안 3차원 환경 내의 제2 위치에 위치된 이후 제2 크기로 제1 사용자 인터페이스 객체를 디스플레이하는 것은, 사용자가 제1 사용자 인터페이스 객체를 이동시키는 동안 3차원 환경과 안전하게 상호작용하게 허용하고, 어지러움 또는 멀미 증상들을 유발할 수 있는 잠재적인 방향감각상실을 감소시키게 허용하는 메커니즘을 제공하며, 그에 의해, 3차원 환경과 상호작용할 때 사용자에 대한 인지적 부담을 감소시킨다.
일부 실시예들에서, 제1 사용자 인터페이스 객체가 제1 속도로 3차원 환경 내의 제1 위치로부터 제2 위치로 이동했다는 결정에 따라, 임계량의 시간은 제1 시간량이다(1426a). 예를 들어, 사용자 인터페이스(1306)가 제1 양의 속도로 도 13c에서 표시된 위치로부터 도 13d에서 표시된 위치로 이동했다면, 전자 디바이스(101)는 제1 시간량이 경과한 이후 사용자 인터페이스(1306)를 도 13d의 크기로 크기조절한다. 예를 들어, 제1 입력이 제1 사용자 인터페이스 객체로 하여금 제1 속도로 제1 위치로부터 제2 위치로 이동하게 했다면, 제1 사용자 인터페이스 객체는 제1 사용자 인터페이스 객체가 제2 크기로 업데이트되기 전에 제1 시간량(예를 들어, 1, 2, 3, 4, 5, 20, 40, 또는 60초) 동안 제2 위치에 유지되어야 한다.
일부 실시예들에서, 제1 사용자 인터페이스 객체가 제1 속도보다 큰 제2 속도로 3차원 환경 내의 제1 위치로부터 제2 위치로 이동했다는 결정에 따라, 임계량의 시간은 제1 시간량보다 큰 제2 시간량이다(1426b). 예를 들어, 사용자 인터페이스(1306)가 제2 양의 속도로 도 13c에서 표시된 위치로부터 도 13d에서 표시된 위치로 이동했다면, 전자 디바이스(101)는 제2 시간량이 경과한 이후 사용자 인터페이스(1306)를 도 13d의 크기로 크기조절한다. 예를 들어, 제1 입력이 제1 사용자 인터페이스 객체로 하여금 제2 속도(예를 들어, 더 빠른 속도)로 제1 위치로부터 제2 위치로 이동하게 했다면, 제1 사용자 인터페이스 객체는 제1 사용자 인터페이스 객체가 제2 크기로 업데이트되기 전에 제2 시간량(예를 들어, 2, 4, 6, 8, 10, 20, 40, 또는 60초) 동안 제2 위치에 유지되어야 한다. 따라서, 일부 실시예들에서, 제1 사용자 인터페이스 객체가 3차원 환경 내의 제2 위치로 더 신속하게 이동할수록, 전자 디바이스가 제2 크기를 갖는 제1 사용자 인터페이스를 디스플레이할 때까지의 시간 지연이 더 길어진다.
제1 사용자 인터페이스 객체가 상이한 시간량들 동안 3차원 환경 내의 제2 위치에 위치된 이후 제2 크기로 제1 사용자 인터페이스 객체를 디스플레이하는 것은 제1 사용자 인터페이스 객체의 과도한 재스케일링을 회피하며, 따라서 사용자가 제1 사용자 인터페이스 객체를 이동시키는 동안 3차원 환경과 안전하게 상호작용하게 허용하고, 어지러움 또는 멀미 증상들을 유발할 수 있는 잠재적인 방향감각상실을 감소시키게 허용하는 메커니즘을 제공하고, 그에 의해, 3차원 환경과 상호작용할 때 사용자에 대한 인지적 부담을 감소시킨다.
일부 실시예들에서, 방법들(800, 1000, 1200, 및/또는 1400)의 양태들/동작들은 이러한 방법들 사이에서 상호교환, 대체, 및/또는 추가될 수 있다. 예를 들어, 방법들(800, 1000, 1200, 및/또는 1400)의 3차원 환경들 및/또는 방법들(800 및/또는 1000)의 공간 기준들은 선택적으로 이러한 방법들 사이에서 상호교환, 대체, 및/또는 추가된다. 간결함을 위해, 이러한 세부사항들은 여기서 반복되지 않는다.
전술한 설명은, 설명의 목적을 위해, 특정 실시예들을 참조하여 설명되었다. 그러나, 위의 예시적인 논의들은 본 발명을 개시된 정확한 형태들로 규명하거나 제한하려는 의도는 아니다. 많은 수정들 및 변형들이 위의 교시 내용들의 관점에서 가능하다. 본 발명의 원리들 및 그의 실제적인 응용들을 가장 잘 설명하여, 그에 의해 당업자들이 본 발명 및 다양한 설명된 실시예들을 고려되는 특정 용도에 적합한 바와 같은 다양한 변형들을 갖고서 가장 잘 이용하는 것을 가능하게 하도록, 실시예들이 선택 및 설명되었다.

Claims (97)

  1. 방법으로서,
    디스플레이 생성 컴포넌트 및 하나 이상의 입력 디바이스들과 통신하는 전자 디바이스에서,
    상기 디스플레이 생성 컴포넌트를 통해, 상기 전자 디바이스의 사용자의 현재 시점에 대해 제1 공간 배열로 복수의 가상 객체들을 포함하는 3차원 환경을 디스플레이하는 동안, 상기 하나 이상의 입력 디바이스들을 통해, 제1 시점으로부터 제2 시점으로의 상기 3차원 환경 내의 상기 사용자의 상기 현재 시점의 이동을 검출하는 단계;
    상기 제1 시점으로부터 상기 제2 시점으로의 상기 사용자의 상기 현재 시점의 이동에 대응하는 이동을 검출하는 것에 응답하여, 상기 디스플레이 생성 컴포넌트를 통해, 상기 사용자의 상기 현재 시점에 대해 상기 제1 공간 배열과 상이한 제2 공간 배열로 상기 복수의 가상 객체들을 포함하는 상기 3차원 환경을 상기 제2 시점으로부터 디스플레이하는 단계;
    상기 사용자의 상기 현재 시점에 대해 상기 제2 공간 배열로 상기 복수의 가상 객체들을 포함하는 상기 3차원 환경을 상기 제2 시점으로부터 디스플레이하는 동안, 상기 하나 이상의 입력 디바이스들을 통해, 상기 사용자의 상기 현재 시점에 대한 가상 객체들의 거리들의 범위 또는 배향들의 범위를 특정하는 하나 이상의 기준들을 만족시키기 위해 상기 사용자의 상기 현재 시점에 대한 상기 복수의 가상 객체들의 공간 배열을 업데이트하라는 요청에 대응하는 입력을 수신하는 단계; 및
    상기 3차원 환경을 업데이트하라는 상기 요청에 대응하는 상기 입력에 응답하여, 상기 디스플레이 생성 컴포넌트를 통해, 상기 사용자의 상기 시점에 대해 상기 제2 공간 배열과 상이한 제3 공간 배열로 상기 복수의 가상 객체들을 디스플레이하는 것을 포함하여, 상기 제2 시점으로부터 상기 3차원 환경을 디스플레이하는 단계를 포함하며, 상기 복수의 가상 객체들의 상기 제3 공간 배열은 상기 하나 이상의 기준들을 만족시키는, 방법.
  2. 제1항에 있어서,
    상기 복수의 가상 객체들의 상기 공간 배열을 업데이트하라는 상기 요청에 대응하는 상기 입력을 수신하는 단계는 상기 하나 이상의 입력 디바이스들의 하드웨어 입력 디바이스를 통해 상기 입력을 수신하는 단계를 포함하는, 방법.
  3. 제2항에 있어서,
    상기 복수의 가상 객체들의 상기 공간 배열을 업데이트하라는 상기 요청에 대응하는 상기 입력은 하나 이상의 제1 입력 기준들을 만족시키며, 상기 방법은,
    상기 하드웨어 입력 디바이스를 통해 제2 입력을 수신하는 단계; 및
    상기 제2 입력을 수신하는 것에 응답하여,
    상기 제2 입력이 상기 하나 이상의 제1 입력 기준들과 상이한 하나 이상의 제2 입력 기준들을 만족시킨다는 결정에 따라, 상기 복수의 가상 객체들의 상기 공간 배열을 업데이트하지 않으면서 상기 제2 입력에 대응하는 개개의 동작을 수행하는 단계를 더 포함하는, 방법.
  4. 제1항 내지 제3항 중 어느 한 항에 있어서,
    상기 복수의 가상 객체들의 상기 공간 배열을 업데이트하라는 상기 요청에 대응하는 상기 입력을 수신하는 단계는 상기 디스플레이 생성 컴포넌트를 통해 상기 3차원 환경에서 디스플레이된 사용자 인터페이스 요소의 선택을 검출하는 단계를 포함하는, 방법.
  5. 제1항 내지 제4항 중 어느 한 항에 있어서,
    상기 제2 공간 배열로 상기 복수의 가상 객체들을 디스플레이하는 단계는 상기 디스플레이 생성 컴포넌트를 통해, 상기 3차원 환경 내의 제1 포지션들에서 상기 복수의 가상 객체들을 디스플레이하는 단계를 포함하며, 상기 방법은,
    상기 입력을 수신하는 것에 응답하여, 상기 복수의 가상 객체들을 상기 3차원 환경 내의 상기 제1 포지션들로부터 제2 포지션들로 이동시키는 단계를 더 포함하는, 방법.
  6. 제1항 내지 제5항 중 어느 한 항에 있어서,
    상기 디스플레이 생성 컴포넌트를 통해, 상기 3차원 환경 내의 제1 포지션에서 상기 복수의 가상 객체들의 개개의 가상 객체를 포함하는 상기 3차원 환경을 디스플레이하는 동안 - 상기 사용자의 상기 현재 시점에 대한 상기 복수의 가상 객체들의 상기 공간 배열은 상기 하나 이상의 기준들을 만족시키는 제1 개개의 공간 배열임 -, 상기 하나 이상의 입력 디바이스들을 통해, 상기 3차원 환경 내의 상기 개개의 가상 객체의 포지션을 업데이트하라는 요청에 대응하는 입력을 수신하는 단계;
    상기 3차원 환경 내의 상기 개개의 가상 객체의 상기 포지션을 업데이트하라는 상기 요청에 대응하는 상기 입력에 응답하여, 상기 디스플레이 생성 컴포넌트를 통해, 상기 3차원 환경 내의 상기 제1 포지션과 상이한 제2 포지션에서 상기 개개의 가상 객체를 디스플레이하는 것을 포함하여, 상기 하나 이상의 기준들을 만족시키지 않는 제2 개개의 공간 배열로 상기 복수의 가상 객체들을 디스플레이하는 단계;
    상기 3차원 환경 내의 상기 제2 포지션에서 상기 개개의 가상 객체를 디스플레이하는 것을 포함하여 상기 3차원 환경을 디스플레이하는 동안, 상기 하나 이상의 입력 디바이스들을 통해, 상기 하나 이상의 기준들을 만족시키기 위해 상기 사용자의 상기 현재 시점에 대한 상기 복수의 가상 객체들의 상기 공간 배열을 업데이트하라는 요청에 대응하는 제2 입력을 수신하는 단계; 및
    상기 제2 입력을 수신하는 것에 응답하여, 상기 복수의 가상 객체들 내의 하나 이상의 다른 가상 객체들의 포지션들을 업데이트하지 않으면서 상기 하나 이상의 기준들을 만족시키도록 상기 개개의 가상 객체의 상기 포지션을 업데이트하는 단계를 더 포함하는, 방법.
  7. 제1항 내지 제6항 중 어느 한 항에 있어서,
    상기 제3 공간 배열로 상기 복수의 가상 객체들을 디스플레이하는 것은,
    상기 3차원 환경이 제1 공간 템플릿과 연관된다는 결정에 따라, 상기 디스플레이 생성 컴포넌트를 통해, 상기 제3 공간 배열로 상기 복수의 가상 객체들을 디스플레이하는 것이 상기 디스플레이 생성 컴포넌트를 통해, 상기 제1 공간 템플릿과 연관된 하나 이상의 기준들을 만족시키는 상기 사용자의 상기 현재 시점에 대한 배향으로 상기 복수의 가상 객체들의 개개의 가상 객체를 디스플레이하는 것을 포함하는 것, 및
    상기 3차원 환경이 제2 공간 템플릿과 연관된다는 결정에 따라, 상기 디스플레이 생성 컴포넌트를 통해, 상기 제3 공간 배열로 상기 복수의 가상 객체들을 디스플레이하는 것이 상기 디스플레이 생성 컴포넌트를 통해, 상기 제2 공간 템플릿과 연관된 하나 이상의 기준들을 만족시키는 상기 사용자의 상기 현재 시점에 대한 배향으로 상기 복수의 가상 객체들의 상기 개개의 객체를 디스플레이하는 것을 포함하는 것을 포함하는, 방법.
  8. 제7항에 있어서,
    상기 제3 공간 배열로 상기 복수의 가상 객체들을 디스플레이하는 것은,
    상기 3차원 환경이 공유 콘텐츠 공간 템플릿과 연관된다는 결정에 따라, 상기 디스플레이 생성 컴포넌트를 통해, 상기 3차원 환경 내의 상기 사용자의 상기 시점 및 제2 사용자의 제2 시점을 향해 상기 개개의 객체의 개개의 측을 배향시키는 포즈로 상기 복수의 가상 객체들의 상기 개개의 객체를 디스플레이하는 것을 포함하는, 방법.
  9. 제7항 또는 제8항에 있어서,
    상기 제3 공간 배열로 상기 복수의 가상 객체들을 디스플레이하는 것은,
    상기 3차원 환경이 공유 활동 공간 템플릿과 연관된다는 결정에 따라, 상기 디스플레이 생성 컴포넌트를 통해, 상기 사용자의 상기 시점을 향해 상기 개개의 객체의 제1 측을 그리고 제2 사용자의 제2 시점을 향해 상기 개개의 객체의 상기 제1 측과 상이한 제2 측을 배향시키는 포즈로 상기 복수의 가상 객체들의 상기 개개의 객체를 디스플레이하는 것을 포함하는, 방법.
  10. 제7항 내지 제9항 중 어느 한 항에 있어서,
    상기 제3 공간 배열로 상기 복수의 가상 객체들을 디스플레이하는 것은,
    상기 3차원 환경이 그룹 활동 공간 템플릿과 연관된다는 결정에 따라, 상기 디스플레이 생성 컴포넌트를 통해, 상기 전자 디바이스의 상기 사용자의 상기 현재 시점을 향해 배향된 포즈로 제2 사용자의 표현을 디스플레이하는 것을 포함하는, 방법.
  11. 제1항 내지 제10항 중 어느 한 항에 있어서,
    상기 디스플레이 생성 컴포넌트를 통해, 상기 3차원 환경에서 제2 시점과 연관된 제2 사용자를 포함하는 상기 3차원 환경을 디스플레이하는 동안 - 상기 사용자의 상기 현재 시점에 대한 상기 복수의 가상 객체들의 상기 공간 배열은 상기 하나 이상의 기준들을 만족시키는 제1 개개의 공간 배열임 -, 제1 개개의 시점으로부터 제2 개개의 시점으로의 상기 3차원 환경 내의 상기 제2 사용자의 상기 제2 시점의 이동의 표시를 검출하는 단계;
    상기 제2 개개의 시점에서 상기 제2 사용자의 상기 제2 시점으로 상기 3차원 환경을 디스플레이하는 동안, 상기 하나 이상의 입력 디바이스들을 통해, 상기 하나 이상의 기준들을 만족시키기 위해 상기 사용자의 상기 현재 시점에 대한 상기 복수의 가상 객체들의 상기 공간 배열을 업데이트하라는 요청에 대응하는 제2 입력을 수신하는 단계; 및
    상기 제2 입력을 수신하는 것에 응답하여, 상기 제2 사용자의 상기 제2 개개의 시점에 따라 상기 복수의 가상 객체들의 상기 공간 배열을 상기 하나 이상의 기준들을 만족시키는 제2 개개의 공간 배열로 업데이트하는 단계를 더 포함하는, 방법.
  12. 제1항 내지 제11항 중 어느 한 항에 있어서,
    상기 디스플레이 생성 컴포넌트를 통해 상기 3차원 환경을 디스플레이하는 동안 - 상기 사용자의 상기 현재 시점에 대한 상기 복수의 가상 객체들의 상기 공간 배열은 상기 하나 이상의 기준들을 만족시키는 제1 개개의 공간 배열임 -, 상기 하나 이상의 입력 디바이스들을 통해, 상기 3차원 환경 내의 상기 복수의 가상 객체들의 하나 이상의 포지션들을 업데이트하라는 요청에 대응하는 하나 이상의 입력들의 시퀀스를 수신하는 단계;
    상기 하나 이상의 입력들의 시퀀스를 수신하는 것에 응답하여, 상기 디스플레이 생성 컴포넌트를 통해, 상기 하나 이상의 기준들을 만족시키지 않는 제2 개개의 공간 배열로 상기 하나 이상의 입력들의 시퀀스에 따라 상기 3차원 환경 내의 개개의 포지션들에서 상기 복수의 가상 객체들을 디스플레이하는 단계;
    상기 3차원 환경 내의 상기 개개의 포지션들에서 상기 복수의 가상 객체들을 디스플레이하는 것을 포함하여 상기 3차원 환경을 디스플레이하는 동안, 상기 하나 이상의 입력 디바이스들을 통해, 상기 하나 이상의 기준들을 만족시키기 위해 상기 사용자의 상기 현재 시점에 대한 상기 복수의 가상 객체들의 상기 공간 배열을 업데이트하라는 요청에 대응하는 제2 입력을 수신하는 단계; 및
    상기 제2 입력을 수신하는 것에 응답하여, 상기 3차원 환경 내의 상기 복수의 가상 객체들의 상기 개개의 포지션들에 따라 상기 복수의 가상 객체들의 상기 포지션들을 상기 하나 이상의 기준들을 만족시키는 제3 개개의 공간 배열로 업데이트하는 단계를 더 포함하는, 방법.
  13. 제1항 내지 제12항 중 어느 한 항에 있어서,
    상기 디스플레이 생성 컴포넌트를 통해 상기 3차원 환경을 디스플레이하는 동안 - 상기 사용자의 상기 현재 시점에 대한 상기 복수의 가상 객체들의 상기 공간 배열은 상기 하나 이상의 기준들을 만족시키는 제1 개개의 공간 배열임 -, 상기 3차원 환경 내의 상기 복수의 가상 객체들의 하나 이상의 포지션들을 업데이트하라는 상기 3차원 환경 내의 제2 사용자에 의한 요청들의 하나 이상의 표시들을 검출하는 단계;
    상기 하나 이상의 표시들을 검출하는 것에 응답하여, 상기 디스플레이 생성 컴포넌트를 통해, 상기 하나 이상의 기준들을 만족시키지 않는 제2 개개의 공간 배열로 상기 하나 이상의 입력들의 시퀀스에 따라 상기 3차원 환경 내의 개개의 포지션들에서 상기 복수의 가상 객체들을 디스플레이하는 단계;
    상기 3차원 환경 내의 상기 개개의 포지션들에서 상기 복수의 가상 객체들을 디스플레이하는 것을 포함하여 상기 3차원 환경을 디스플레이하는 동안, 상기 하나 이상의 입력 디바이스들을 통해, 상기 하나 이상의 기준들을 만족시키기 위해 상기 사용자의 상기 현재 시점에 대한 상기 복수의 가상 객체들의 상기 공간 배열을 업데이트하라는 요청에 대응하는 제2 입력을 수신하는 단계; 및
    상기 제2 입력을 수신하는 것에 응답하여, 상기 3차원 환경 내의 상기 복수의 가상 객체들의 상기 개개의 포지션들에 따라 상기 복수의 가상 객체들의 상기 포지션들을 상기 하나 이상의 기준들을 만족시키는 제3 개개의 공간 배열로 업데이트하는 단계를 더 포함하는, 방법.
  14. 제1항 내지 제13항 중 어느 한 항에 있어서,
    상기 복수의 가상 객체들의 상기 공간 배열이 상기 하나 이상의 기준들을 만족시키지 않는 동안,
    상기 복수의 객체들의 상기 공간 배열을 업데이트하라는 상기 요청에 대응하는 상기 입력이 수신되지 않았다는 결정에 따라, 상기 복수의 객체들의 상기 공간 배열을 업데이트하라는 상기 요청에 대응하는 상기 입력이 수신될 때까지 상기 복수의 가상 객체들의 상기 공간 배열을 유지하는 단계를 더 포함하는, 방법.
  15. 제1항 내지 제14항 중 어느 한 항에 있어서,
    상기 사용자의 상기 현재 시점으로부터 미리 정의된 임계 거리를 초과하는 위치에서 상기 복수의 가상 객체들 중 제1 가상 객체를 디스플레이하는 것을 포함하여, 상기 3차원 환경에서 상기 복수의 가상 객체들을 디스플레이하는 단계;
    상기 사용자의 상기 현재 시점으로부터 상기 미리 정의된 임계 거리를 초과하는 상기 위치에서 상기 복수의 가상 객체들 중 상기 제1 가상 객체를 디스플레이하는 것을 포함하여, 상기 복수의 가상 객체들이 상기 3차원 환경에서 디스플레이되는 동안, 상기 하나 이상의 입력 디바이스들을 통해, 상기 하나 이상의 기준들을 만족시키기 위해 상기 사용자의 상기 현재 시점에 대한 상기 복수의 가상 객체들의 상기 공간 배열을 업데이트하라는 요청에 대응하는 제2 입력을 수신하는 단계; 및
    상기 제2 입력을 수신하는 것에 응답하여, 상기 사용자의 상기 시점을 상기 제1 가상 객체의 상기 미리 정의된 임계 거리 내에 있는 개개의 시점으로 업데이트하는 단계를 더 포함하며, 상기 개개의 시점에 대한 상기 복수의 가상 객체들의 상기 공간 배열은 상기 하나 이상의 기준들을 만족시키는, 방법.
  16. 제1항 내지 제15항 중 어느 한 항에 있어서,
    상기 디스플레이 생성 컴포넌트를 통해, 상기 복수의 가상 객체들 중 제1 가상 객체와 상기 복수의 가상 객체들 중 제2 가상 객체 사이의 제1 간격으로 상기 복수의 가상 객체들을 디스플레이하는 단계 - 상기 제1 간격은 상기 하나 이상의 기준들의 하나 이상의 간격 기준들을 만족시키지 않음 -;
    상기 제1 가상 객체와 상기 제2 가상 객체 사이의 상기 제1 간격으로 상기 복수의 가상 객체들을 디스플레이하는 동안, 상기 하나 이상의 입력 디바이스들을 통해, 상기 하나 이상의 기준들을 만족시키기 위해 상기 사용자의 상기 현재 시점에 대한 상기 복수의 가상 객체들의 상기 공간 배열을 업데이트하라는 요청에 대응하는 제2 입력을 수신하는 단계; 및
    상기 제2 입력을 수신하는 것에 응답하여, 상기 디스플레이 생성 컴포넌트를 통해, 상기 제1 가상 객체와 상기 제2 가상 객체 사이의 제2 간격으로 상기 복수의 가상 객체들을 디스플레이하는 단계를 더 포함하며, 상기 제2 간격은 상기 하나 이상의 간격 기준들을 만족시키는, 방법.
  17. 제1항 내지 제16항 중 어느 한 항에 있어서,
    상기 제1 시점으로부터 상기 제2 시점으로의 상기 3차원 환경 내의 상기 사용자의 상기 현재 시점의 상기 이동을 검출하는 단계는, 상기 하나 이상의 입력 디바이스들을 통해, 상기 전자 디바이스의 물리적 환경에서의 상기 전자 디바이스의 이동 또는 상기 디스플레이 생성 컴포넌트의 물리적 환경에서의 상기 디스플레이 생성 컴포넌트의 이동을 검출하는 단계를 포함하는, 방법.
  18. 전자 디바이스로서,
    하나 이상의 프로세서들;
    메모리; 및
    하나 이상의 프로그램들을 포함하고,
    상기 하나 이상의 프로그램들은, 상기 메모리에 저장되고, 상기 하나 이상의 프로세서들에 의해 실행되도록 구성되며,
    상기 하나 이상의 프로그램들은,
    디스플레이 생성 컴포넌트를 통해, 상기 전자 디바이스의 사용자의 현재 시점에 대해 제1 공간 배열로 복수의 가상 객체들을 포함하는 3차원 환경을 디스플레이하는 동안, 상기 하나 이상의 입력 디바이스들을 통해, 제1 시점으로부터 제2 시점으로의 상기 3차원 환경 내의 상기 사용자의 상기 현재 시점의 이동을 검출하고;
    상기 제1 시점으로부터 상기 제2 시점으로의 상기 사용자의 상기 현재 시점의 이동에 대응하는 이동을 검출하는 것에 응답하여, 상기 디스플레이 생성 컴포넌트를 통해, 상기 사용자의 상기 현재 시점에 대해 상기 제1 공간 배열과 상이한 제2 공간 배열로 상기 복수의 가상 객체들을 포함하는 상기 3차원 환경을 상기 제2 시점으로부터 디스플레이하고;
    상기 사용자의 상기 현재 시점에 대해 상기 제2 공간 배열로 상기 복수의 가상 객체들을 포함하는 상기 3차원 환경을 상기 제2 시점으로부터 디스플레이하는 동안, 하나 이상의 입력 디바이스들을 통해, 상기 사용자의 상기 현재 시점에 대한 가상 객체들의 거리들의 범위 또는 배향들의 범위를 특정하는 하나 이상의 기준들을 만족시키기 위해 상기 사용자의 상기 현재 시점에 대한 상기 복수의 가상 객체들의 공간 배열을 업데이트하라는 요청에 대응하는 입력을 수신하고;
    상기 3차원 환경을 업데이트하라는 상기 요청에 대응하는 상기 입력에 응답하여, 상기 디스플레이 생성 컴포넌트를 통해, 상기 사용자의 상기 시점에 대해 상기 제2 공간 배열과 상이한 제3 공간 배열로 상기 복수의 가상 객체들을 디스플레이하는 것을 포함하여, 상기 제2 시점으로부터 상기 3차원 환경을 디스플레이하기 위한
    명령어들을 포함하고, 상기 복수의 가상 객체들의 상기 제3 공간 배열은 상기 하나 이상의 기준들을 만족시키는, 전자 디바이스.
  19. 하나 이상의 프로그램들을 저장하는 비일시적 컴퓨터 판독가능 저장 매체로서,
    상기 하나 이상의 프로그램들은, 전자 디바이스의 하나 이상의 프로세서들에 의해 실행될 때, 상기 전자 디바이스로 하여금, 방법을 수행하게 하는 명령어들을 포함하며,
    상기 방법은,
    디스플레이 생성 컴포넌트를 통해, 상기 전자 디바이스의 사용자의 현재 시점에 대해 제1 공간 배열로 복수의 가상 객체들을 포함하는 3차원 환경을 디스플레이하는 동안, 상기 하나 이상의 입력 디바이스들을 통해, 제1 시점으로부터 제2 시점으로의 상기 3차원 환경 내의 상기 사용자의 상기 현재 시점의 이동을 검출하는 단계;
    상기 제1 시점으로부터 상기 제2 시점으로의 상기 사용자의 상기 현재 시점의 이동에 대응하는 이동을 검출하는 것에 응답하여, 상기 디스플레이 생성 컴포넌트를 통해, 상기 사용자의 상기 현재 시점에 대해 상기 제1 공간 배열과 상이한 제2 공간 배열로 상기 복수의 가상 객체들을 포함하는 상기 3차원 환경을 상기 제2 시점으로부터 디스플레이하는 단계;
    상기 사용자의 상기 현재 시점에 대해 상기 제2 공간 배열로 상기 복수의 가상 객체들을 포함하는 상기 3차원 환경을 상기 제2 시점으로부터 디스플레이하는 동안, 하나 이상의 입력 디바이스들을 통해, 상기 사용자의 상기 현재 시점에 대한 가상 객체들의 거리들의 범위 또는 배향들의 범위를 특정하는 하나 이상의 기준들을 만족시키기 위해 상기 사용자의 상기 현재 시점에 대한 상기 복수의 가상 객체들의 공간 배열을 업데이트하라는 요청에 대응하는 입력을 수신하는 단계; 및
    상기 3차원 환경을 업데이트하라는 상기 요청에 대응하는 상기 입력에 응답하여, 상기 디스플레이 생성 컴포넌트를 통해, 상기 사용자의 상기 시점에 대해 상기 제2 공간 배열과 상이한 제3 공간 배열로 상기 복수의 가상 객체들을 디스플레이하는 것을 포함하여, 상기 제2 시점으로부터 상기 3차원 환경을 디스플레이하는 단계를 포함하고, 상기 복수의 가상 객체들의 상기 제3 공간 배열은 상기 하나 이상의 기준들을 만족시키는, 비일시적 컴퓨터 판독가능 저장 매체.
  20. 전자 디바이스로서,
    하나 이상의 프로세서들;
    메모리;
    디스플레이 생성 컴포넌트를 통해, 상기 전자 디바이스의 사용자의 현재 시점에 대해 제1 공간 배열로 복수의 가상 객체들을 포함하는 3차원 환경을 디스플레이하는 동안, 상기 하나 이상의 입력 디바이스들을 통해, 제1 시점으로부터 제2 시점으로의 상기 3차원 환경 내의 상기 사용자의 상기 현재 시점의 이동을 검출하기 위한 수단;
    상기 제1 시점으로부터 상기 제2 시점으로의 상기 사용자의 상기 현재 시점의 이동에 대응하는 이동을 검출하는 것에 응답하여, 상기 디스플레이 생성 컴포넌트를 통해, 상기 사용자의 상기 현재 시점에 대해 상기 제1 공간 배열과 상이한 제2 공간 배열로 상기 복수의 가상 객체들을 포함하는 상기 3차원 환경을 상기 제2 시점으로부터 디스플레이하기 위한 수단;
    상기 사용자의 상기 현재 시점에 대해 상기 제2 공간 배열로 상기 복수의 가상 객체들을 포함하는 상기 3차원 환경을 상기 제2 시점으로부터 디스플레이하는 동안, 하나 이상의 입력 디바이스들을 통해, 상기 사용자의 상기 현재 시점에 대한 가상 객체들의 거리들의 범위 또는 배향들의 범위를 특정하는 하나 이상의 기준들을 만족시키기 위해 상기 사용자의 상기 현재 시점에 대한 상기 복수의 가상 객체들의 공간 배열을 업데이트하라는 요청에 대응하는 입력을 수신하기 위한 수단; 및
    상기 3차원 환경을 업데이트하라는 상기 요청에 대응하는 상기 입력에 응답하여, 상기 디스플레이 생성 컴포넌트를 통해, 상기 사용자의 상기 시점에 대해 상기 제2 공간 배열과 상이한 제3 공간 배열로 상기 복수의 가상 객체들을 디스플레이하는 것을 포함하여, 상기 제2 시점으로부터 상기 3차원 환경을 디스플레이하기 위한 수단을 포함하고, 상기 복수의 가상 객체들의 상기 제3 공간 배열은 상기 하나 이상의 기준들을 만족시키는, 전자 디바이스.
  21. 전자 디바이스에서 사용하기 위한 정보 프로세싱 장치로서,
    디스플레이 생성 컴포넌트를 통해, 상기 전자 디바이스의 사용자의 현재 시점에 대해 제1 공간 배열로 복수의 가상 객체들을 포함하는 3차원 환경을 디스플레이하는 동안, 상기 하나 이상의 입력 디바이스들을 통해, 제1 시점으로부터 제2 시점으로의 상기 3차원 환경 내의 상기 사용자의 상기 현재 시점의 이동을 검출하기 위한 수단;
    상기 제1 시점으로부터 상기 제2 시점으로의 상기 사용자의 상기 현재 시점의 이동에 대응하는 이동을 검출하는 것에 응답하여, 상기 디스플레이 생성 컴포넌트를 통해, 상기 사용자의 상기 현재 시점에 대해 상기 제1 공간 배열과 상이한 제2 공간 배열로 상기 복수의 가상 객체들을 포함하는 상기 3차원 환경을 상기 제2 시점으로부터 디스플레이하기 위한 수단;
    상기 사용자의 상기 현재 시점에 대해 상기 제2 공간 배열로 상기 복수의 가상 객체들을 포함하는 상기 3차원 환경을 상기 제2 시점으로부터 디스플레이하는 동안, 하나 이상의 입력 디바이스들을 통해, 상기 사용자의 상기 현재 시점에 대한 가상 객체들의 거리들의 범위 또는 배향들의 범위를 특정하는 하나 이상의 기준들을 만족시키기 위해 상기 사용자의 상기 현재 시점에 대한 상기 복수의 가상 객체들의 공간 배열을 업데이트하라는 요청에 대응하는 입력을 수신하기 위한 수단; 및
    상기 3차원 환경을 업데이트하라는 상기 요청에 대응하는 상기 입력에 응답하여, 상기 디스플레이 생성 컴포넌트를 통해, 상기 사용자의 상기 시점에 대해 상기 제2 공간 배열과 상이한 제3 공간 배열로 상기 복수의 가상 객체들을 디스플레이하는 것을 포함하여, 상기 제2 시점으로부터 상기 3차원 환경을 디스플레이하기 위한 수단을 포함하고, 상기 복수의 가상 객체들의 상기 제3 공간 배열은 상기 하나 이상의 기준들을 만족시키는, 정보 프로세싱 장치.
  22. 전자 디바이스로서,
    하나 이상의 프로세서들;
    메모리; 및
    하나 이상의 프로그램들을 포함하며,
    상기 하나 이상의 프로그램들은, 상기 메모리에 저장되고, 상기 하나 이상의 프로세서들에 의해 실행되도록 구성되고, 상기 하나 이상의 프로그램들은 제1항 내지 제17항 중 어느 한 항의 방법을 수행하기 위한 명령어들을 포함하는, 전자 디바이스.
  23. 하나 이상의 프로그램들을 저장하는 비일시적 컴퓨터 판독가능 저장 매체로서, 상기 하나 이상의 프로그램들은, 전자 디바이스의 하나 이상의 프로세서들에 의해 실행될 때, 상기 전자 디바이스로 하여금, 제1항 내지 제17항 중 어느 한 항의 방법을 수행하게 하는 명령어들을 포함하는, 비일시적 컴퓨터 판독가능 저장 매체.
  24. 전자 디바이스로서,
    하나 이상의 프로세서들;
    메모리; 및
    제1항 내지 제17항 중 어느 한 항의 방법을 수행하기 위한 수단을 포함하는, 전자 디바이스.
  25. 전자 디바이스에서 사용하기 위한 정보 프로세싱 장치로서,
    제1항 내지 제17항 중 어느 한 항의 방법을 수행하기 위한 수단을 포함하는, 정보 프로세싱 장치.
  26. 방법으로서,
    디스플레이 생성 컴포넌트 및 하나 이상의 입력 디바이스들과 통신하는 전자 디바이스에서,
    상기 디스플레이 생성 컴포넌트를 통해, 상기 전자 디바이스의 사용자의 시점으로부터 3차원 환경을 디스플레이하는 동안 - 상기 3차원 환경은 상기 3차원 환경 내의 상기 사용자의 상기 시점에 대해 제1 공간 배열로 제1 위치들에 복수의 가상 객체들을 포함함 -, 상기 하나 이상의 입력 디바이스들을 통해, 상기 복수의 가상 객체들 중 하나 이상을 이동시키라는 요청에 대응하는 입력을 수신하는 단계; 및
    상기 입력을 수신하는 것에 응답하여,
    상기 입력이 하나 이상의 제1 기준들을 만족시킨다는 결정에 따라,
    상기 입력에 따라 상기 복수의 가상 객체들의 개개의 객체를 상기 3차원 환경 내의 제1 위치로부터 상기 제1 위치와 상이한 제2 위치로 이동시키도록 상기 3차원 환경을 업데이트하는 단계 - 상기 제2 위치의 상기 개개의 객체는 상기 사용자의 상기 시점에 대한 상기 제1 공간 배열과 상이한 상기 사용자의 상기 시점에 대한 제2 공간 배열을 가짐 -; 및
    상기 사용자의 상기 시점에 대해 상기 제1 공간 배열로 상기 3차원 환경 내의 상기 제1 위치들에 상기 복수의 가상 객체들 중 하나 이상의 제2 객체들을 유지하는 단계; 및
    상기 입력이 하나 이상의 제2 기준들을 만족시킨다는 결정에 따라, 상기 입력에 따라 상기 3차원 환경에서 상기 복수의 가상 객체들을 이동시키도록 상기 3차원 환경을 업데이트하는 단계를 포함하며, 상기 이동 이후, 상기 복수의 가상 객체들은 상기 사용자의 상기 시점에 대한 상기 제1 공간 배열과 상이한 상기 사용자의 상기 시점에 대한 제3 공간 배열을 갖는, 방법.
  27. 제26항에 있어서,
    상기 입력을 수신하는 것에 응답하여 그리고 상기 입력이 상기 하나 이상의 제2 기준들을 만족시킨다는 상기 결정에 따라, 상기 입력에 따라 상기 3차원 환경에서 상기 복수의 가상 객체들을 이동시키도록 상기 3차원 환경을 업데이트하는 단계는, 상기 입력의 방향 및 크기에 기초하여, 상기 복수의 가상 객체들 중 제1 가상 객체를 개개의 양만큼 그리고 개개의 방향으로 이동시키고, 상기 복수의 가상 객체들 중 제2 가상 객체를 상기 개개의 양만큼 그리고 상기 개개의 방향으로 이동시키는 단계를 포함하는, 방법.
  28. 제26항 또는 제27항에 있어서,
    상기 하나 이상의 제2 기준들은, 상기 입력을 수신하는 것이 하나 이상의 포즈 기준들을 만족시키는 포즈에서 상기 사용자의 제1 부분을 검출하는 것 및 상기 하나 이상의 포즈 기준들을 만족시키는 상기 포즈에서 상기 사용자의 제2 부분을 검출하는 것을 포함할 때 만족되는 기준을 포함하는, 방법.
  29. 제26항 내지 제28항 중 어느 한 항에 있어서,
    상기 전자 디바이스가 상기 입력을 수신하고 있지 않는 동안, 상기 디스플레이 생성 컴포넌트를 통해, 제1 양의 시각적 강조들로 상기 3차원 환경 내의 상기 복수의 가상 객체들을 디스플레이하는 단계; 및
    상기 입력을 수신하는 동안 상기 입력이 상기 하나 이상의 제2 기준들을 만족시킨다는 결정에 따라, 상기 디스플레이 생성 컴포넌트를 통해, 상기 제1 양의 시각적 강조보다 작은 제2 양의 시각적 강조로 상기 3차원 환경 내의 상기 복수의 가상 객체들을 디스플레이하는 단계를 더 포함하는, 방법.
  30. 제26항 내지 제29항 중 어느 한 항에 있어서,
    상기 디스플레이 생성 컴포넌트를 통해, 상기 3차원 환경에서 제2 전자 디바이스의 제2 사용자의 표현을 디스플레이하는 단계;
    상기 제2 전자 디바이스가 상기 하나 이상의 제2 기준들을 만족시키는 개개의 입력을 검출하는 동안, 상기 디스플레이 생성 컴포넌트를 통해, 제1 양의 시각적 강조로 상기 제2 사용자의 상기 표현을 디스플레이하는 단계; 및
    상기 제2 전자 디바이스가 상기 하나 이상의 제2 기준들을 만족시키는 상기 개개의 입력을 검출하지 않는 동안, 상기 디스플레이 생성 컴포넌트를 통해, 상기 제1 양의 시각적 강조보다 큰 제2 양의 시각적 강조로 상기 제2 사용자의 상기 표현을 디스플레이하는 단계를 더 포함하는, 방법.
  31. 제26항 내지 제30항 중 어느 한 항에 있어서,
    상기 디스플레이 생성 컴포넌트를 통해, 상기 3차원 환경 내의 제3 위치에서 제2 전자 디바이스의 제2 사용자의 표현을 디스플레이하는 단계;
    상기 3차원 환경 내의 상기 제3 위치에서 상기 제2 사용자의 상기 표현을 디스플레이하는 동안, 상기 제2 전자 디바이스가 상기 하나 이상의 제2 기준들을 만족시키는 개개의 입력을 수신했다는 표시를 수신하는 단계; 및
    상기 표시에 응답하여, 상기 디스플레이 생성 컴포넌트를 통해, 상기 개개의 입력에 따라 상기 3차원 환경 내의 제4 위치에서 상기 제2 사용자의 상기 표현을, 상기 제3 위치로부터 상기 제4 위치로 이동하는 상기 제2 사용자의 상기 표현의 애니메이션을 디스플레이하지 않으면서 디스플레이하는 단계를 더 포함하는, 방법.
  32. 제26항 내지 제31항 중 어느 한 항에 있어서,
    상기 하나 이상의 제2 기준들은, 상기 입력이 상기 디스플레이 생성 컴포넌트를 통해 디스플레이되는 사용자 인터페이스 요소로 지향될 때 만족되고, 상기 입력이 상기 사용자 인터페이스 요소로 지향될 때, 상기 전자 디바이스로 하여금 상기 입력에 따라 상기 복수의 가상 객체들을 이동시키게 하는 기준을 포함하는, 방법.
  33. 제26항 내지 제32항 중 어느 한 항에 있어서,
    상기 입력이 상기 하나 이상의 제2 기준들을 만족시킨다는 상기 결정에 따라,
    상기 입력이 제1 크기의 이동을 포함한다는 결정에 따라, 상기 3차원 환경 내의 상기 복수의 가상 객체들을 제2 양만큼 이동시키는 단계; 및
    상기 입력이 상기 제1 크기의 이동과 상이한 제3 크기의 이동을 포함한다는 결정에 따라, 상기 3차원 환경 내의 상기 복수의 가상 객체들을 상기 제2 양과 상이한 제4 양만큼 이동시키는 단계를 더 포함하는, 방법.
  34. 제26항 내지 제33항 중 어느 한 항에 있어서,
    상기 복수의 가상 객체들 중 상기 하나 이상을 이동시키라는 상기 요청에 대응하는 상기 입력을 수신하기 전에, 상기 디스플레이 생성 컴포넌트를 통해, 상기 복수의 가상 객체들과 연관된 복수의 사용자 인터페이스 요소들을 디스플레이하는 단계를 더 포함하며, 상기 하나 이상의 제1 기준들은, 상기 입력이 상기 개개의 객체와 연관된 상기 복수의 사용자 인터페이스 요소들의 개개의 사용자 인터페이스 요소로 지향될 때 만족되고, 상기 입력이 상기 개개의 사용자 인터페이스 요소로 지향될 때, 상기 전자 디바이스로 하여금 상기 3차원 환경에서 상기 복수의 가상 객체들의 상기 개개의 객체를 이동시키기 위한 프로세스를 개시하게 하는 기준을 포함하는, 방법.
  35. 제26항 내지 제34항 중 어느 한 항에 있어서,
    상기 3차원 환경을 디스플레이하는 동안, 상기 하나 이상의 입력 디바이스들을 통해, 디지털 오리진(digital origin)에 대한 하나 이상의 공간 기준들을 만족시키도록 상기 3차원 환경을 업데이트하라는 요청에 대응하는 입력을 수신하는 단계; 및
    상기 입력에 응답하여, 상기 디지털 오리진에 대한 상기 하나 이상의 공간 기준들을 만족시키도록 상기 3차원 환경을 업데이트하는 단계를 더 포함하는, 방법.
  36. 제35항에 있어서,
    상기 디지털 오리진은, 상기 전자 디바이스가 상기 3차원 환경을 디스플레이하는 것을 포함하는 증강 현실 또는 가상 현실 세션을 개시할 때 결정되는, 방법.
  37. 제35항 또는 제36항에 있어서,
    상기 하나 이상의 제2 기준들을 만족시키는 상기 입력을 수신하기 전에, 상기 디지털 오리진은 상기 3차원 환경 내의 제1 개개의 위치에 위치되고, 상기 하나 이상의 제2 기준들을 만족시키는 상기 입력을 수신하는 것에 응답하여, 상기 입력이 상기 하나 이상의 제2 기준들을 만족시킨다는 상기 결정에 따라, 상기 3차원 환경 내의 상기 제1 개개의 위치와 상이한 제2 개개의 위치에 위치되도록 상기 디지털 오리진을 업데이트하는, 방법.
  38. 제35항 내지 제37항 중 어느 한 항에 있어서,
    상기 3차원 환경이 제2 전자 디바이스의 제2 사용자에 액세스가능한 동안,
    상기 디스플레이 생성 컴포넌트를 통해, 상기 디지털 오리진이 상기 3차원 환경 내의 제1 개개의 위치에 위치되는 동안 상기 전자 디바이스에 액세스가능하지만 상기 제2 전자 디바이스에 액세스가능하지 않은 개개의 가상 객체를 포함하는 상기 3차원 환경 내의 상기 복수의 가상 객체들을 디스플레이하는 단계;
    상기 개개의 가상 객체가 상기 전자 디바이스에 액세스가능하지만 상기 제2 전자 디바이스에 액세스가능하지 않고, 상기 디지털 오리진이 상기 3차원 환경 내의 상기 제1 개개의 위치에 위치되는 동안, 상기 하나 이상의 입력 디바이스들을 통해, 상기 개개의 가상 객체를 상기 전자 디바이스 및 상기 제2 전자 디바이스에 액세스가능하게 만들라는 요청에 대응하는 입력을 수신하는 단계; 및
    상기 개개의 객체를 상기 전자 디바이스 및 상기 제2 전자 디바이스에 액세스가능하게 만들라는 상기 요청에 대응하는 상기 입력에 응답하여,
    상기 전자 디바이스 및 상기 제2 전자 디바이스에 액세스가능하도록 상기 개개의 가상 객체를 업데이트하는 단계; 및
    상기 개개의 가상 객체의 위치에 따라 상기 3차원 환경 내의 상기 제1 개개의 위치와 상이한 제2 개개의 위치에 위치되도록 상기 디지털 오리진을 업데이트하는 단계를 더 포함하는, 방법.
  39. 제35항 내지 제38항 중 어느 한 항에 있어서,
    상기 사용자의 상기 시점이 상기 3차원 환경 내의 제1 시점이고, 상기 디지털 오리진이 상기 3차원 환경 내의 제1 개개의 위치에 위치되고, 상기 3차원 환경 내의 상기 제1 개개의 위치에서 유효 상태를 갖는 동안,
    상기 하나 이상의 입력 디바이스들을 통해, 상기 사용자의 상기 시점을 상기 3차원 환경 내의 상기 제1 시점과 상이한 제2 시점으로 업데이트하라는 요청에 대응하는 입력을 수신하는 단계; 및
    상기 사용자의 상기 시점을 상기 3차원 환경 내의 상기 제2 시점으로 업데이트하라는 상기 요청에 대응하는 상기 입력에 응답하여,
    상기 디스플레이 생성 컴포넌트를 통해, 상기 제2 시점으로부터 상기 3차원 환경을 디스플레이하는 단계;
    상기 제2 시점이 상기 제1 시점의 임계 거리 내에 있다는 결정에 따라, 상기 3차원 환경 내의 상기 제1 개개의 위치에서 상기 디지털 오리진의 상기 유효 상태를 유지하는 단계; 및
    상기 제2 시점이 상기 제1 시점으로부터 상기 임계 거리 초과라는 결정에 따라, 상기 디지털 오리진의 상태를 무효 상태로 업데이트하는 단계를 더 포함하는, 방법.
  40. 제35항 내지 제39항 중 어느 한 항에 있어서,
    상기 디스플레이 생성 컴포넌트를 포함하는 디바이스가 하나 이상의 포즈 기준들을 만족시키는 상기 사용자의 개개의 부분에 대한 포즈에 있고, 상기 디지털 오리진이 상기 3차원 환경 내의 제1 개개의 위치에 위치되는 동안, 상기 하나 이상의 포즈 기준들을 만족시키지 않는 상기 사용자의 상기 개개의 부분에 대한 포즈로의 상기 디스플레이 생성 컴포넌트의 이동을 검출하는 단계;
    상기 디스플레이 생성 컴포넌트를 포함하는 상기 디바이스가 상기 하나 이상의 포즈 기준들을 만족시키지 않는 상기 사용자의 상기 개개의 부분에 대한 상기 포즈에 있는 동안, 상기 하나 이상의 포즈 기준들을 만족시키는 상기 사용자의 상기 개개의 부분에 대한 상기 포즈로의 상기 디스플레이 생성 컴포넌트의 이동을 검출하는 단계; 및
    상기 하나 이상의 포즈 기준들을 만족시키는 상기 사용자의 상기 개개의 부분에 대한 상기 포즈로의 상기 디스플레이 생성 컴포넌트의 상기 이동에 응답하여,
    상기 디스플레이 생성 컴포넌트를 포함하는 상기 디바이스가 미리 결정된 시간 임계치보다 작은 시간 동안 상기 하나 이상의 포즈 기준들을 만족시키지 않는 상기 사용자의 상기 개개의 부분에 대한 상기 포즈에 있었다는 결정에 따라, 상기 3차원 환경 내의 상기 제1 개개의 위치에 상기 디지털 오리진을 유지하는 단계; 및
    상기 디스플레이 생성 컴포넌트를 포함하는 상기 디바이스가 상기 미리 결정된 시간 임계치보다 큰 시간 동안 상기 하나 이상의 포즈 기준들을 만족시키지 않는 상기 사용자의 상기 개개의 부분에 대한 상기 포즈에 있었다는 결정에 따라, 상기 디지털 오리진을 상기 3차원 환경 내의 상기 제1 개개의 위치와 상이한 제2 개개의 위치로 업데이트하는 단계를 더 포함하는, 방법.
  41. 제35항 내지 제40항 중 어느 한 항에 있어서,
    상기 사용자의 상기 시점에 대해 제1 개개의 공간 배열로 상기 복수의 가상 객체들을 포함하는 상기 3차원 환경을 디스플레이하는 동안 - 상기 제1 개개의 공간 배열은 상기 사용자의 상기 시점의 미리 정의된 임계 거리 내에 상기 복수의 가상 객체들을 디스플레이하는 것을 포함함 -, 그리고 상기 디지털 오리진이 상기 3차원 환경 내의 제1 개개의 위치에 위치되고, 상기 3차원 환경 내의 상기 제1 개개의 위치에서 유효 상태를 갖는 동안,
    상기 사용자의 상기 시점에 대해 상기 복수의 가상 객체들의 상기 공간 배열을 업데이트하라는 요청에 대응하는 하나 이상의 입력들의 표시들을 검출하는 단계;
    상기 하나 이상의 입력들의 상기 표시들을 검출하는 것에 응답하여, 상기 디스플레이 생성 컴포넌트를 통해, 상기 사용자의 상기 시점에 대해 제2 개개의 공간 배열로 상기 복수의 가상 객체들을 디스플레이하는 단계; 및
    상기 제2 개개의 공간 배열이 상기 사용자의 상기 시점의 상기 미리 정의된 임계 거리 내에 상기 복수의 가상 객체들 중 적어도 하나를 디스플레이하는 것을 포함한다는 결정에 따라, 상기 3차원 환경 내의 상기 제1 개개의 위치에서 상기 디지털 오리진의 상기 유효 상태를 유지하는 단계; 및
    상기 제2 개개의 공간 배열이 상기 사용자의 상기 시점으로부터 상기 미리 정의된 임계 거리 초과로 상기 복수의 가상 객체들을 디스플레이하는 것을 포함한다는 결정에 따라, 무효 상태가 되도록 상기 디지털 오리진의 상태를 업데이트하는 단계를 더 포함하는, 방법.
  42. 제35항 내지 제41항 중 어느 한 항에 있어서,
    상기 디지털 오리진의 위치가 하나 이상의 디지털 오리진 기준들을 만족시키는 동안, 상기 3차원 환경 내의 제1 개개의 위치에 상기 디지털 오리진을 유지하는 단계; 및
    상기 디지털 오리진의 상기 위치가 상기 하나 이상의 디지털 오리진 기준들을 더 이상 만족시키지 않는다는 것을 검출하는 것에 응답하여, 상기 3차원 환경 내의 상기 제1 개개의 위치와 상이한 제2 개개의 위치에 위치되도록 상기 디지털 오리진을 업데이트하는 단계를 더 포함하며, 상기 제2 개개의 위치는 상기 하나 이상의 디지털 오리진 기준들을 만족시키는, 방법.
  43. 제26항 내지 제42항 중 어느 한 항에 있어서,
    상기 제1 공간 배열로 상기 복수의 가상 객체들을 디스플레이하는 것은 상기 복수의 가상 객체들을 서로에 대해 개개의 배열로 디스플레이하는 것을 포함하고,
    상기 제3 공간 배열로 상기 복수의 가상 객체들을 디스플레이하는 것은 상기 복수의 가상 객체들을 서로에 대해 상기 개개의 배열로 디스플레이하는 것을 포함하는, 방법.
  44. 전자 디바이스로서,
    하나 이상의 프로세서들;
    메모리; 및
    하나 이상의 프로그램들을 포함하고,
    상기 하나 이상의 프로그램들은, 상기 메모리에 저장되고, 상기 하나 이상의 프로세서들에 의해 실행되도록 구성되며,
    상기 하나 이상의 프로그램들은,
    디스플레이 생성 컴포넌트를 통해, 상기 전자 디바이스의 사용자의 시점으로부터 3차원 환경을 디스플레이하는 동안 - 상기 3차원 환경은 상기 3차원 환경 내의 상기 사용자의 상기 시점에 대해 제1 공간 배열로 제1 위치들에 복수의 가상 객체들을 포함함 -, 하나 이상의 입력 디바이스들을 통해, 상기 복수의 가상 객체들 중 하나 이상을 이동시키라는 요청에 대응하는 입력을 수신하고;
    상기 입력을 수신하는 것에 응답하여,
    상기 입력이 하나 이상의 제1 기준들을 만족시킨다는 결정에 따라,
    상기 입력에 따라 상기 복수의 가상 객체들의 개개의 객체를 상기 3차원 환경 내의 제1 위치로부터 상기 제1 위치와 상이한 제2 위치로 이동시키도록 상기 3차원 환경을 업데이트하고 - 상기 제2 위치의 상기 개개의 객체는 상기 사용자의 상기 시점에 대한 상기 제1 공간 배열과 상이한 상기 사용자의 상기 시점에 대한 제2 공간 배열을 가짐 -;
    상기 사용자의 상기 시점에 대해 상기 제1 공간 배열로 상기 3차원 환경 내의 상기 제1 위치들에 상기 복수의 가상 객체들 중 하나 이상의 제2 객체들을 유지하고;
    상기 입력이 하나 이상의 제2 기준들을 만족시킨다는 결정에 따라, 상기 입력에 따라 상기 3차원 환경에서 상기 복수의 가상 객체들을 이동시키도록 상기 3차원 환경을 업데이트하기 위한
    명령어들을 포함하고, 상기 이동 이후, 상기 복수의 가상 객체들은 상기 사용자의 상기 시점에 대한 상기 제1 공간 배열과 상이한 상기 사용자의 상기 시점에 대한 제3 공간 배열을 갖는, 전자 디바이스.
  45. 하나 이상의 프로그램들을 저장하는 비일시적 컴퓨터 판독가능 저장 매체로서,
    상기 하나 이상의 프로그램들은, 전자 디바이스의 하나 이상의 프로세서들에 의해 실행될 때, 상기 전자 디바이스로 하여금, 방법을 수행하게 하는 명령어들을 포함하며,
    상기 방법은,
    디스플레이 생성 컴포넌트를 통해, 상기 전자 디바이스의 사용자의 시점으로부터 3차원 환경을 디스플레이하는 동안 - 상기 3차원 환경은 상기 3차원 환경 내의 상기 사용자의 상기 시점에 대해 제1 공간 배열로 제1 위치들에 복수의 가상 객체들을 포함함 -, 하나 이상의 입력 디바이스들을 통해, 상기 복수의 가상 객체들 중 하나 이상을 이동시키라는 요청에 대응하는 입력을 수신하는 단계; 및
    상기 입력을 수신하는 것에 응답하여,
    상기 입력이 하나 이상의 제1 기준들을 만족시킨다는 결정에 따라,
    상기 입력에 따라 상기 복수의 가상 객체들의 개개의 객체를 상기 3차원 환경 내의 제1 위치로부터 상기 제1 위치와 상이한 제2 위치로 이동시키도록 상기 3차원 환경을 업데이트하는 단계 - 상기 제2 위치의 상기 개개의 객체는 상기 사용자의 상기 시점에 대한 상기 제1 공간 배열과 상이한 상기 사용자의 상기 시점에 대한 제2 공간 배열을 가짐 -; 및
    상기 사용자의 상기 시점에 대해 상기 제1 공간 배열로 상기 3차원 환경 내의 상기 제1 위치들에 상기 복수의 가상 객체들 중 하나 이상의 제2 객체들을 유지하는 단계; 및
    상기 입력이 하나 이상의 제2 기준들을 만족시킨다는 결정에 따라, 상기 입력에 따라 상기 3차원 환경에서 상기 복수의 가상 객체들을 이동시키도록 상기 3차원 환경을 업데이트하는 단계를 포함하고, 상기 이동 이후, 상기 복수의 가상 객체들은 상기 사용자의 상기 시점에 대한 상기 제1 공간 배열과 상이한 상기 사용자의 상기 시점에 대한 제3 공간 배열을 갖는, 비일시적 컴퓨터 판독가능 저장 매체.
  46. 전자 디바이스로서,
    하나 이상의 프로세서들;
    메모리;
    디스플레이 생성 컴포넌트를 통해, 상기 전자 디바이스의 사용자의 시점으로부터 3차원 환경을 디스플레이하는 동안 - 상기 3차원 환경은 상기 3차원 환경 내의 상기 사용자의 상기 시점에 대해 제1 공간 배열로 제1 위치들에 복수의 가상 객체들을 포함함 -, 하나 이상의 입력 디바이스들을 통해, 상기 복수의 가상 객체들 중 하나 이상을 이동시키라는 요청에 대응하는 입력을 수신하기 위한 수단;
    상기 입력을 수신하는 것에 응답하여,
    상기 입력이 하나 이상의 제1 기준들을 만족시킨다는 결정에 따라,
    상기 입력에 따라 상기 복수의 가상 객체들의 개개의 객체를 상기 3차원 환경 내의 제1 위치로부터 상기 제1 위치와 상이한 제2 위치로 이동시키도록 상기 3차원 환경을 업데이트하고 - 상기 제2 위치의 상기 개개의 객체는 상기 사용자의 상기 시점에 대한 상기 제1 공간 배열과 상이한 상기 사용자의 상기 시점에 대한 제2 공간 배열을 가짐 -;
    상기 사용자의 상기 시점에 대해 상기 제1 공간 배열로 상기 3차원 환경 내의 상기 제1 위치들에 상기 복수의 가상 객체들 중 하나 이상의 제2 객체들을 유지하고;
    상기 입력이 하나 이상의 제2 기준들을 만족시킨다는 결정에 따라, 상기 입력에 따라 상기 3차원 환경에서 상기 복수의 가상 객체들을 이동시키도록 상기 3차원 환경을 업데이트하기 위한
    수단을 포함하고, 상기 이동 이후, 상기 복수의 가상 객체들은 상기 사용자의 상기 시점에 대한 상기 제1 공간 배열과 상이한 상기 사용자의 상기 시점에 대한 제3 공간 배열을 갖는, 전자 디바이스.
  47. 전자 디바이스에서 사용하기 위한 정보 프로세싱 장치로서,
    디스플레이 생성 컴포넌트를 통해, 상기 전자 디바이스의 사용자의 시점으로부터 3차원 환경을 디스플레이하는 동안 - 상기 3차원 환경은 상기 3차원 환경 내의 상기 사용자의 상기 시점에 대해 제1 공간 배열로 제1 위치들에 복수의 가상 객체들을 포함함 -, 하나 이상의 입력 디바이스들을 통해, 상기 복수의 가상 객체들 중 하나 이상을 이동시키라는 요청에 대응하는 입력을 수신하기 위한 수단;
    상기 입력을 수신하는 것에 응답하여,
    상기 입력이 하나 이상의 제1 기준들을 만족시킨다는 결정에 따라,
    상기 입력에 따라 상기 복수의 가상 객체들의 개개의 객체를 상기 3차원 환경 내의 제1 위치로부터 상기 제1 위치와 상이한 제2 위치로 이동시키도록 상기 3차원 환경을 업데이트하고 - 상기 제2 위치의 상기 개개의 객체는 상기 사용자의 상기 시점에 대한 상기 제1 공간 배열과 상이한 상기 사용자의 상기 시점에 대한 제2 공간 배열을 가짐 -;
    상기 사용자의 상기 시점에 대해 상기 제1 공간 배열로 상기 3차원 환경 내의 상기 제1 위치들에 상기 복수의 가상 객체들 중 하나 이상의 제2 객체들을 유지하고;
    상기 입력이 하나 이상의 제2 기준들을 만족시킨다는 결정에 따라, 상기 입력에 따라 상기 3차원 환경에서 상기 복수의 가상 객체들을 이동시키도록 상기 3차원 환경을 업데이트하기 위한
    수단을 포함하고, 상기 이동 이후, 상기 복수의 가상 객체들은 상기 사용자의 상기 시점에 대한 상기 제1 공간 배열과 상이한 상기 사용자의 상기 시점에 대한 제3 공간 배열을 갖는, 정보 프로세싱 장치.
  48. 전자 디바이스로서,
    하나 이상의 프로세서들;
    메모리; 및
    하나 이상의 프로그램들을 포함하며,
    상기 하나 이상의 프로그램들은, 상기 메모리에 저장되고, 상기 하나 이상의 프로세서들에 의해 실행되도록 구성되고,
    상기 하나 이상의 프로그램들은 제26항 내지 제43항 중 어느 한 항의 방법을 수행하기 위한 명령어들을 포함하는, 전자 디바이스.
  49. 하나 이상의 프로그램들을 저장하는 비일시적 컴퓨터 판독가능 저장 매체로서,
    상기 하나 이상의 프로그램들은, 전자 디바이스의 하나 이상의 프로세서들에 의해 실행될 때, 상기 전자 디바이스로 하여금, 제26항 내지 제43항 중 어느 한 항의 방법을 수행하게 하는 명령어들을 포함하는, 비일시적 컴퓨터 판독가능 저장 매체.
  50. 전자 디바이스로서,
    하나 이상의 프로세서들;
    메모리; 및
    제26항 내지 제43항 중 어느 한 항의 방법을 수행하기 위한 수단을 포함하는, 전자 디바이스.
  51. 전자 디바이스에서 사용하기 위한 정보 프로세싱 장치로서,
    제26항 내지 제43항 중 어느 한 항의 방법을 수행하기 위한 수단을 포함하는, 정보 프로세싱 장치.
  52. 방법으로서,
    디스플레이 생성 컴포넌트 및 하나 이상의 입력 디바이스들과 통신하는 전자 디바이스에서,
    상기 디스플레이 생성 컴포넌트를 통해, 사용자의 시점으로부터 3차원 환경을 디스플레이하는 단계 - 상기 3차원 환경은,
    상기 3차원 환경 내의 제1 추정된 바닥 위치에 적어도 부분적으로 기초하여 결정된 위치들에서 상기 3차원 환경에 하나 이상의 제1 가상 객체들을 포함함 -;
    상기 제1 추정된 바닥 위치에 기초하여 상기 사용자의 상기 시점으로부터 상기 3차원 환경을 디스플레이하는 동안, 상기 전자 디바이스의 물리적 환경 내의 물리적 바닥의 추정된 위치에 대응하는, 상기 제1 추정된 바닥 위치와 상이한 제2 추정된 바닥 위치를 결정하는 단계; 및
    상기 전자 디바이스의 상기 물리적 환경 내의 상기 물리적 바닥의 상기 추정된 위치에 대응하는 상기 제2 추정된 바닥 위치를 결정한 이후,
    하나 이상의 기준들이 만족된다는 결정에 따라,
    상기 제2 추정된 바닥 위치에 기초하여 상기 3차원 환경 내의 업데이트된 위치들에서 상기 하나 이상의 제1 가상 객체들을 디스플레이하는 단계; 및
    하나 이상의 기준들이 만족되지 않는다는 결정에 따라,
    상기 제1 추정된 바닥 위치에 기초하여 상기 하나 이상의 제1 가상 객체들을 상기 3차원 환경 내의 그들의 위치들에 유지하는 단계를 포함하는, 방법.
  53. 제52항에 있어서,
    상기 하나 이상의 기준들은, 상기 전자 디바이스가 상기 하나 이상의 입력 디바이스들을 통해, 하나 이상의 제2 기준들을 만족시키기 위해 상기 하나 이상의 제1 가상 객체들의 상기 위치들을 업데이트하라는 요청에 대응하는 개개의 입력 요소의 선택을 수신할 때 만족되는 기준을 포함하는, 방법.
  54. 제52항 또는 제53항에 있어서,
    상기 하나 이상의 기준들은, 상기 사용자의 일부 상의 상기 디스플레이 생성 컴포넌트를 포함하는 디바이스의 배치가 상기 제2 추정된 바닥 위치를 결정한 이후 변경될 때 만족되는 기준을 포함하는, 방법.
  55. 제52항 내지 제54항 중 어느 한 항에 있어서,
    상기 하나 이상의 기준들은, 상기 전자 디바이스가 상기 제2 추정된 바닥 위치를 결정한 이후 상기 3차원 환경에서 가상 환경을 디스플레이하라는 요청을 수신할 때 만족되는 기준을 포함하며, 상기 가상 환경은 상기 제2 추정된 바닥 위치가 결정되었을 때 상기 3차원 환경에서 디스플레이되지 않았던, 방법.
  56. 제52항 내지 제55항 중 어느 한 항에 있어서,
    상기 물리적 바닥의 상기 추정된 위치를 결정하는 것은 상기 물리적 환경 내의 상기 물리적 바닥의 적어도 일부에 대응하는 평면을 검출하는 것에 기초하는, 방법.
  57. 제52항 내지 제56항 중 어느 한 항에 있어서,
    상기 물리적 바닥의 상기 추정된 위치를 결정하는 것은 상기 디바이스에 의해 검출되는 사용자의 제1 부분의 위치에 관한 정보 및 상기 사용자의 상기 제1 부분과, 상기 바닥과 접촉하는 것으로 가정된 상기 사용자의 제2 부분 사이의 거리의 추정에 기초하는, 방법.
  58. 제57항에 있어서,
    상기 사용자의 상기 제1 부분과 상기 사용자의 상기 제2 부분 사이의 상기 거리의 추정은 상기 전자 디바이스의 상기 사용자의 알려진 높이에 기초하는, 방법.
  59. 제57항 또는 제58항에 있어서,
    상기 사용자의 상기 제1 부분과 상기 사용자의 상기 제2 부분 사이의 상기 거리의 상기 추정은 평균 높이에 기초한 상기 사용자의 추정된 높이에 기초하는, 방법.
  60. 제57항 내지 제59항 중 어느 한 항에 있어서,
    상기 사용자의 상기 제1 부분과 상기 사용자의 상기 제2 부분 사이의 상기 거리의 상기 추정은 상기 전자 디바이스의 상기 물리적 환경 내의 상기 전자 디바이스의 상기 사용자의 현재 포즈에 기초하는, 방법.
  61. 제52항 내지 제60항 중 어느 한 항에 있어서,
    상기 전자 디바이스의 현재 위치가 알려진 위치라는 결정에 따라, 상기 물리적 바닥의 상기 추정된 위치를 결정하는 것은 상기 전자 디바이스의 상기 물리적 환경에 관한 이전의 정보에 기초하는, 방법.
  62. 제52항 내지 제61항 중 어느 한 항에 있어서,
    상기 제2 추정된 바닥 위치에 기초하여 상기 하나 이상의 가상 객체들을 디스플레이하는 동안, 상기 하나 이상의 입력 디바이스들을 통해, 상기 3차원 환경에서 상기 하나 이상의 제1 가상 객체들과 상이한 하나 이상의 제2 가상 객체들을 디스플레이하라는 요청에 대응하는 입력을 수신하는 단계; 및
    상기 입력을 수신하는 것에 응답하여, 상기 제2 추정된 바닥 위치에 기초하여 상기 3차원 환경 내의 하나 이상의 위치들에서 상기 하나 이상의 제2 가상 객체들을 디스플레이하는 단계를 더 포함하는, 방법.
  63. 제52항 내지 제62항 중 어느 한 항에 있어서,
    상기 제1 추정된 바닥 위치는 상기 3차원 환경의 제1 경계 - 상기 하나 이상의 제1 가상 객체들은 상기 제1 경계를 넘어 이동될 수 없음 - 를 정의하고, 상기 제2 추정된 바닥 위치는 상기 3차원 환경의 상기 제1 경계와 상이한 제2 경계 - 상기 하나 이상의 제1 가상 객체들은 상기 제2 경계를 넘어 이동될 수 없음 - 를 정의하는, 방법.
  64. 제52항 내지 제63항 중 어느 한 항에 있어서,
    상기 하나 이상의 가상 객체들은 상기 전자 디바이스의 상기 사용자 이외의 상기 3차원 환경 내의 하나 이상의 사용자들의 하나 이상의 표현들을 포함하는, 방법.
  65. 제52항 내지 제64항 중 어느 한 항에 있어서,
    상기 전자 디바이스가 상기 제2 추정된 바닥 위치에 기초하여 상기 하나 이상의 제1 가상 객체들을 디스플레이하고 있는 동안, 제2 전자 디바이스는 상기 제2 전자 디바이스의 제2 사용자의 시점으로부터 상기 3차원 환경을 디스플레이하고 있으며, 상기 하나 이상의 제1 가상 객체들은 상기 제2 전자 디바이스의 물리적 환경 내의 물리적 바닥의 추정된 위치에 기초하여 상기 제2 전자 디바이스에 의해 디스플레이되는, 방법.
  66. 제52항 내지 제65항 중 어느 한 항에 있어서,
    상기 3차원 환경을 디스플레이하는 동안, 상기 하나 이상의 입력 디바이스들을 통해, 상기 3차원 환경에서 제1 동작을 수행하기 위한 입력을 수신하는 단계; 및
    상기 입력을 수신하는 것에 응답하여,
    상기 제1 동작이 제1 레벨의 정밀도를 갖는 상기 물리적 환경 내의 상기 물리적 바닥의 상기 추정된 위치의 결정을 요구한다는 결정에 따라,
    상기 물리적 환경 내의 상기 물리적 바닥의 상기 추정된 위치를 결정하는 데 사용될 정보를 수집하기 위한 명령어들을 제공하는 단계를 더 포함하는, 방법.
  67. 제66항에 있어서,
    상기 입력을 수신하는 것에 응답하여,
    상기 제1 동작이 상기 제1 레벨의 정밀도를 갖는 상기 물리적 환경 내의 상기 물리적 바닥의 상기 추정된 위치의 결정을 요구하지 않는다는 결정에 따라,
    상기 물리적 환경 내의 상기 물리적 바닥의 상기 추정된 위치를 결정하는 데 사용될 정보를 수집하기 위한 상기 명령어들을 제공하지 않으면서 상기 물리적 환경 내의 상기 물리적 바닥의 상기 추정된 위치를 결정하는 단계를 더 포함하는, 방법.
  68. 제52항 내지 제67항 중 어느 한 항에 있어서,
    상기 제1 추정된 바닥 위치에 기초하여 상기 하나 이상의 제1 가상 객체들을 디스플레이하는 동안, 상기 3차원 환경 내의 상기 제1 추정된 바닥 위치에서 바닥을 디스플레이하는 단계; 및
    상기 제2 추정된 바닥 위치에 기초하는 상기 하나 이상의 제1 가상 객체들의 경우, 상기 3차원 환경 내의 상기 제2 추정된 바닥 위치에서 바닥을 디스플레이하는 단계를 더 포함하는, 방법.
  69. 전자 디바이스로서,
    하나 이상의 프로세서들;
    메모리; 및
    하나 이상의 프로그램들을 포함하고,
    상기 하나 이상의 프로그램들은, 상기 메모리에 저장되고, 상기 하나 이상의 프로세서들에 의해 실행되도록 구성되며,
    상기 하나 이상의 프로그램들은,
    디스플레이 생성 컴포넌트를 통해, 사용자의 시점으로부터 3차원 환경을 디스플레이하고 - 상기 3차원 환경은,
    상기 3차원 환경 내의 제1 추정된 바닥 위치에 적어도 부분적으로 기초하여 결정된 위치들에서 상기 3차원 환경에 하나 이상의 제1 가상 객체들을 포함함 -;
    상기 제1 추정된 바닥 위치에 기초하여 상기 사용자의 상기 시점으로부터 상기 3차원 환경을 디스플레이하는 동안, 상기 전자 디바이스의 물리적 환경 내의 물리적 바닥의 추정된 위치에 대응하는, 상기 제1 추정된 바닥 위치와 상이한 제2 추정된 바닥 위치를 결정하고;
    상기 전자 디바이스의 상기 물리적 환경 내의 상기 물리적 바닥의 상기 추정된 위치에 대응하는 상기 제2 추정된 바닥 위치를 결정한 이후,
    하나 이상의 기준들이 만족된다는 결정에 따라,
    상기 제2 추정된 바닥 위치에 기초하여 상기 3차원 환경 내의 업데이트된 위치들에서 상기 하나 이상의 제1 가상 객체들을 디스플레이하고;
    하나 이상의 기준들이 만족되지 않는다는 결정에 따라,
    상기 제1 추정된 바닥 위치에 기초하여 상기 하나 이상의 제1 가상 객체들을 상기 3차원 환경 내의 그들의 위치들에 유지하기 위한
    명령어들을 포함하는, 전자 디바이스.
  70. 하나 이상의 프로그램들을 저장하는 비일시적 컴퓨터 판독가능 저장 매체로서,
    상기 하나 이상의 프로그램들은, 전자 디바이스의 하나 이상의 프로세서들에 의해 실행될 때, 상기 전자 디바이스로 하여금, 방법을 수행하게 하는 명령어들을 포함하며,
    상기 방법은,
    디스플레이 생성 컴포넌트를 통해, 사용자의 시점으로부터 3차원 환경을 디스플레이하는 단계 - 상기 3차원 환경은,
    상기 3차원 환경 내의 제1 추정된 바닥 위치에 적어도 부분적으로 기초하여 결정된 위치들에서 상기 3차원 환경에 하나 이상의 제1 가상 객체들을 포함함 -;
    상기 제1 추정된 바닥 위치에 기초하여 상기 사용자의 상기 시점으로부터 상기 3차원 환경을 디스플레이하는 동안, 상기 전자 디바이스의 물리적 환경 내의 물리적 바닥의 추정된 위치에 대응하는, 상기 제1 추정된 바닥 위치와 상이한 제2 추정된 바닥 위치를 결정하는 단계; 및
    상기 전자 디바이스의 상기 물리적 환경 내의 상기 물리적 바닥의 상기 추정된 위치에 대응하는 상기 제2 추정된 바닥 위치를 결정한 이후,
    하나 이상의 기준들이 만족된다는 결정에 따라,
    상기 제2 추정된 바닥 위치에 기초하여 상기 3차원 환경 내의 업데이트된 위치들에서 상기 하나 이상의 제1 가상 객체들을 디스플레이하는 단계; 및
    하나 이상의 기준들이 만족되지 않는다는 결정에 따라,
    상기 제1 추정된 바닥 위치에 기초하여 상기 하나 이상의 제1 가상 객체들을 상기 3차원 환경 내의 그들의 위치들에 유지하는 단계를 포함하는, 비일시적 컴퓨터 판독가능 저장 매체.
  71. 전자 디바이스로서,
    하나 이상의 프로세서들;
    메모리;
    디스플레이 생성 컴포넌트를 통해, 사용자의 시점으로부터 3차원 환경을 디스플레이하기 위한 수단 - 상기 3차원 환경은,
    상기 3차원 환경 내의 제1 추정된 바닥 위치에 적어도 부분적으로 기초하여 결정된 위치들에서 상기 3차원 환경에 하나 이상의 제1 가상 객체들을 포함함 -;
    상기 제1 추정된 바닥 위치에 기초하여 상기 사용자의 상기 시점으로부터 상기 3차원 환경을 디스플레이하는 동안, 상기 전자 디바이스의 물리적 환경 내의 물리적 바닥의 추정된 위치에 대응하는, 상기 제1 추정된 바닥 위치와 상이한 제2 추정된 바닥 위치를 결정하기 위한 수단; 및
    상기 전자 디바이스의 상기 물리적 환경 내의 상기 물리적 바닥의 상기 추정된 위치에 대응하는 상기 제2 추정된 바닥 위치를 결정한 이후,
    하나 이상의 기준들이 만족된다는 결정에 따라,
    상기 제2 추정된 바닥 위치에 기초하여 상기 3차원 환경 내의 업데이트된 위치들에서 상기 하나 이상의 제1 가상 객체들을 디스플레이하고;
    하나 이상의 기준들이 만족되지 않는다는 결정에 따라,
    상기 제1 추정된 바닥 위치에 기초하여 상기 하나 이상의 제1 가상 객체들을 상기 3차원 환경 내의 그들의 위치들에 유지하기 위한
    수단을 포함하는, 전자 디바이스.
  72. 전자 디바이스에서 사용하기 위한 정보 프로세싱 장치로서,
    디스플레이 생성 컴포넌트를 통해, 사용자의 시점으로부터 3차원 환경을 디스플레이하기 위한 수단 - 상기 3차원 환경은,
    상기 3차원 환경 내의 제1 추정된 바닥 위치에 적어도 부분적으로 기초하여 결정된 위치들에서 상기 3차원 환경에 하나 이상의 제1 가상 객체들을 포함함 -;
    상기 제1 추정된 바닥 위치에 기초하여 상기 사용자의 상기 시점으로부터 상기 3차원 환경을 디스플레이하는 동안, 상기 전자 디바이스의 물리적 환경 내의 물리적 바닥의 추정된 위치에 대응하는, 상기 제1 추정된 바닥 위치와 상이한 제2 추정된 바닥 위치를 결정하기 위한 수단; 및
    상기 전자 디바이스의 상기 물리적 환경 내의 상기 물리적 바닥의 상기 추정된 위치에 대응하는 상기 제2 추정된 바닥 위치를 결정한 이후,
    하나 이상의 기준들이 만족된다는 결정에 따라,
    상기 제2 추정된 바닥 위치에 기초하여 상기 3차원 환경 내의 업데이트된 위치들에서 상기 하나 이상의 제1 가상 객체들을 디스플레이하고;
    하나 이상의 기준들이 만족되지 않는다는 결정에 따라,
    상기 제1 추정된 바닥 위치에 기초하여 상기 하나 이상의 제1 가상 객체들을 상기 3차원 환경 내의 그들의 위치들에 유지하기 위한
    수단을 포함하는, 정보 프로세싱 장치.
  73. 전자 디바이스로서,
    하나 이상의 프로세서들;
    메모리; 및
    하나 이상의 프로그램들을 포함하며,
    상기 하나 이상의 프로그램들은, 상기 메모리에 저장되고, 상기 하나 이상의 프로세서들에 의해 실행되도록 구성되고,
    상기 하나 이상의 프로그램들은 제52항 내지 제68항 중 어느 한 항의 방법을 수행하기 위한 명령어들을 포함하는, 전자 디바이스.
  74. 하나 이상의 프로그램들을 저장하는 비일시적 컴퓨터 판독가능 저장 매체로서,
    상기 하나 이상의 프로그램들은, 전자 디바이스의 하나 이상의 프로세서들에 의해 실행될 때, 상기 전자 디바이스로 하여금, 제52항 내지 제68항 중 어느 한 항의 방법을 수행하게 하는 명령어들을 포함하는, 비일시적 컴퓨터 판독가능 저장 매체.
  75. 전자 디바이스로서,
    하나 이상의 프로세서들;
    메모리; 및
    제52항 내지 제68항 중 어느 한 항의 방법을 수행하기 위한 수단을 포함하는, 전자 디바이스.
  76. 전자 디바이스에서 사용하기 위한 정보 프로세싱 장치로서,
    제52항 내지 제68항 중 어느 한 항의 방법을 수행하기 위한 수단을 포함하는, 정보 프로세싱 장치.
  77. 방법으로서,
    디스플레이 생성 컴포넌트 및 하나 이상의 입력 디바이스들과 통신하는 전자 디바이스에서,
    상기 디스플레이 생성 컴포넌트를 통해 사용자의 제1 시점으로부터 3차원 환경을 디스플레이하는 단계 - 상기 3차원 환경은 상기 3차원 환경 내의 제1 위치에 제1 사용자 인터페이스 객체를 포함함 -;
    상기 사용자의 상기 제1 시점으로부터 상기 3차원 환경 내의 상기 제1 객체를 디스플레이하는 동안, 상기 하나 이상의 입력 디바이스들을 통해, 상기 제1 사용자 인터페이스 객체를 상기 3차원 환경 내의 상기 제1 위치로부터 제2 위치로 이동시키기 위한 제1 입력을 수신하는 단계; 및
    상기 제1 입력을 수신하는 동안, 상기 제1 사용자 인터페이스 객체를 상기 제1 위치로부터 상기 제2 위치로 이동시키는 단계, 및
    상기 제1 사용자 인터페이스 객체를 상기 제1 위치로부터 상기 제2 위치로 이동시키는 동안,
    상기 3차원 환경에 대해 상기 제1 사용자 인터페이스 객체의 일부를 시각적으로 강조해제하는 단계; 및
    상기 제1 사용자 인터페이스 객체의 상기 일부가 상기 3차원 환경에 대해 시각적으로 강조해제되는 동안, 상기 제1 사용자 인터페이스 객체와 상기 제1 시점 사이의 거리가 변경됨에 따라, 상기 제1 사용자 인터페이스 객체가 디스플레이되는 크기를 변경시키는 단계를 포함하는, 방법.
  78. 제77항에 있어서,
    상기 3차원 환경에 대해 상기 제1 사용자 인터페이스 객체의 상기 일부를 시각적으로 강조해제하는 단계는,
    상기 제1 사용자 인터페이스 객체의 이동이 하나 이상의 기준들을 만족시킨다는 결정에 따라, 상기 제1 사용자 인터페이스 객체의 상기 일부를 제1 양만큼 시각적으로 강조해제하는 단계; 및
    상기 제1 사용자 인터페이스 객체들의 상기 이동이 하나 이상의 제2 기준들을 만족시킨다는 결정에 따라, 상기 제1 사용자 인터페이스 객체의 상기 일부를 상기 제1 양보다 큰 제2 양만큼 시각적으로 강조해제하는 단계를 포함하는, 방법.
  79. 제77항 또는 제78항에 있어서,
    상기 3차원 환경 내의 상기 제1 사용자 인터페이스 객체를 이동시키는 동안, 상기 제1 사용자 인터페이스 객체가 개개의 시간량 동안 이동 임계치 미만으로 이동했다는 결정에 따라, 상기 3차원 환경에 대한 상기 제1 사용자 인터페이스 객체의 상기 일부의 상기 시각적 강조해제를 적어도 부분적으로 반전시키는 단계를 더 포함하는, 방법.
  80. 제77항 내지 제79항 중 어느 한 항에 있어서,
    상기 제1 위치에서 상기 제1 사용자 인터페이스 객체를 디스플레이하는 동안 그리고 상기 제1 입력을 수신하기 전에, 상기 제1 사용자 인터페이스 객체는 상기 3차원 환경에서 제1 크기를 가지며, 상기 방법은,
    상기 제1 사용자 인터페이스 객체를 상기 제1 위치로부터 상기 제2 위치로 이동시키는 동안,
    상기 3차원 환경에서 상기 제1 사용자 인터페이스 객체를 상기 제1 크기로 유지하는 단계; 및
    상기 제1 사용자 인터페이스 객체와 연관하여, 상기 3차원 환경에서 제2 크기를 갖는 시각적 표시를 디스플레이하는 단계를 더 포함하고, 상기 제2 크기는 상기 사용자의 상기 제1 시점으로부터의 상기 제1 사용자 인터페이스 객체의 현재 거리에 기초하는, 방법.
  81. 제80항에 있어서,
    상기 제1 사용자 인터페이스 객체를 상기 3차원 환경 내의 상기 제2 위치로 이동시킨 이후, 상기 3차원 환경에서 상기 제2 크기를 갖는 상기 제1 사용자 인터페이스 객체를 디스플레이하는 단계를 더 포함하는, 방법.
  82. 제77항 내지 제81항 중 어느 한 항에 있어서,
    상기 3차원 환경에 대해 상기 제1 사용자 인터페이스 객체의 상기 일부를 시각적으로 강조해제하는 단계는 상기 제1 사용자 인터페이스 객체의 투명도를 수정하는 단계를 포함하는, 방법.
  83. 제82항에 있어서,
    상기 3차원 환경에 대해 상기 제1 사용자 인터페이스 객체의 상기 일부를 시각적으로 강조해제하는 단계는 상기 제1 사용자 인터페이스 객체의 상기 일부의 투명도를 제1 양만큼 수정하는 단계, 및 상기 제1 사용자 인터페이스 객체의 제2 부분의 투명도를 상기 제1 양과 상이한 제2 양만큼 수정하는 단계를 포함하는, 방법.
  84. 제77항 내지 제83항 중 어느 한 항에 있어서,
    상기 제1 사용자 인터페이스 객체를 상기 제1 위치로부터 상기 제2 위치로 이동시키는 동안, 상기 제1 사용자 인터페이스 객체와 연관하여, 상기 3차원 환경 내의 상기 제1 사용자 인터페이스 객체의 현재 위치를 표시하는 상기 제1 사용자 인터페이스 객체의 가상 섀도우(shadow)를 디스플레이하는 단계를 더 포함하는, 방법.
  85. 제77항 내지 제84항 중 어느 한 항에 있어서,
    상기 제1 위치에서 상기 제1 사용자 인터페이스 객체를 디스플레이하는 동안 그리고 상기 제1 입력을 수신하기 전에, 상기 제1 사용자 인터페이스 객체는 상기 3차원 환경에서 제1 크기를 가지며, 상기 방법은,
    상기 제1 사용자 인터페이스 객체를 상기 3차원 환경 내의 상기 제1 위치로부터 상기 제2 위치로 이동시키는 동안, 상기 3차원 환경에서 상기 제1 사용자 인터페이스 객체를 상기 제1 크기로 유지하는 단계; 및
    상기 제1 사용자 인터페이스 객체를 상기 3차원 환경 내의 상기 제2 위치로 이동시킨 이후 그리고 하나 이상의 기준들이 만족된다는 결정에 따라, 상기 3차원 환경에서 상기 제1 크기와 상이한 제2 크기를 갖는 상기 제1 사용자 인터페이스 객체를 디스플레이하는 단계를 더 포함하고, 상기 제2 크기는 상기 제1 사용자 인터페이스 객체로부터 상기 사용자의 상기 제1 시점으로의 거리에 기초하는, 방법.
  86. 제85항에 있어서,
    상기 제1 사용자 인터페이스 객체를 상기 제1 위치로부터 제2 위치로 이동시키는 동안,
    상기 3차원에서 상기 제1 크기를 갖는 상기 제1 사용자 인터페이스 객체를 디스플레이한 이후 그리고 상기 제2 위치에서 상기 제1 사용자 인터페이스 객체를 디스플레이하기 전에,
    상기 제1 크기와 상이한 제3 크기를 갖는 상기 제1 사용자 인터페이스 객체를 디스플레이하는 단계를 더 포함하며, 상기 3차원 환경 내의 상기 제3 크기는 상기 사용자의 상기 제1 시점으로부터의 상기 제1 사용자 인터페이스 객체의 현재 거리에 기초하는, 방법.
  87. 제85항 또는 제86항에 있어서,
    제1 사용자 인터페이스를 상기 제1 위치로부터 상기 제2 위치로 이동시키는 것은 상기 제1 입력의 제1 부분에 대응하며, 상기 방법은,
    상기 제1 입력의 상기 제1 부분에 따라 상기 제1 사용자 인터페이스 객체를 상기 제2 위치로 이동시킨 이후 그리고 상기 제2 위치에서 상기 제2 크기를 갖는 상기 제1 사용자 인터페이스 객체를 디스플레이하는 동안, 상기 하나 이상의 입력 디바이스들을 통해, 상기 제1 사용자 인터페이스 객체를 상기 3차원 환경 내의 상기 제2 위치로부터 제3 위치로 이동시키기 위한 상기 제1 입력의 제2 부분을 수신하는 단계; 및
    상기 제1 사용자 인터페이스 객체를 상기 3차원 환경 내의 상기 제2 위치로부터 상기 제3 위치로 이동시키는 동안, 상기 3차원 환경에서 상기 제2 크기를 갖는 것으로부터 상기 제2 크기와 상이한 제3 크기를 갖는 것으로부터 상기 제1 사용자 인터페이스 객체를 업데이트하는 단계를 더 포함하고, 상기 3차원 환경 내의 상기 제3 크기는 상기 사용자의 상기 제1 시점으로부터의 상기 제1 사용자 인터페이스 객체의 현재 거리에 기초하는, 방법.
  88. 제85항 내지 제87항 중 어느 한 항에 있어서,
    상기 하나 이상의 기준들은 상기 제1 사용자 인터페이스 객체를 상기 3차원 환경 내의 상기 제2 위치로 이동시킨 이후 임계량의 시간이 경과됐을 때 만족되는 기준을 포함하는, 방법.
  89. 제88항에 있어서,
    상기 제1 사용자 인터페이스 객체가 제1 속도로 상기 3차원 환경 내의 상기 제1 위치로부터 상기 제2 위치로 이동했다는 결정에 따라, 상기 임계량의 시간은 제1 시간량이고,
    상기 제1 사용자 인터페이스 객체가 상기 제1 속도보다 큰 제2 속도로 상기 3차원 환경 내의 상기 제1 위치로부터 상기 제2 위치로 이동했다는 결정에 따라, 상기 임계량의 시간은 상기 제1 시간량보다 큰 제2 시간량인, 방법.
  90. 전자 디바이스로서,
    하나 이상의 프로세서들;
    메모리; 및
    하나 이상의 프로그램들을 포함하고,
    상기 하나 이상의 프로그램들은, 상기 메모리에 저장되고, 상기 하나 이상의 프로세서들에 의해 실행되도록 구성되며,
    상기 하나 이상의 프로그램들은,
    디스플레이 생성 컴포넌트를 통해 사용자의 제1 시점으로부터 3차원 환경을 디스플레이하고 - 상기 3차원 환경은 상기 3차원 환경 내의 제1 위치에 제1 사용자 인터페이스 객체를 포함함 -;
    상기 사용자의 상기 제1 시점으로부터 상기 3차원 환경 내의 상기 제1 객체를 디스플레이하는 동안, 하나 이상의 입력 디바이스들을 통해, 상기 제1 사용자 인터페이스 객체를 상기 3차원 환경 내의 상기 제1 위치로부터 제2 위치로 이동시키기 위한 제1 입력을 수신하고;
    상기 제1 입력을 수신하는 동안, 상기 제1 사용자 인터페이스 객체를 상기 제1 위치로부터 상기 제2 위치로 이동시키고,
    상기 제1 사용자 인터페이스 객체를 상기 제1 위치로부터 상기 제2 위치로 이동시키는 동안,
    상기 3차원 환경에 대해 상기 제1 사용자 인터페이스 객체의 일부를 시각적으로 강조해제하고;
    상기 제1 사용자 인터페이스 객체의 상기 일부가 상기 3차원 환경에 대해 시각적으로 강조해제되는 동안, 상기 제1 사용자 인터페이스 객체와 상기 제1 시점 사이의 거리가 변경됨에 따라, 상기 제1 사용자 인터페이스 객체가 디스플레이되는 크기를 변경시키기 위한
    명령어들을 포함하는, 전자 디바이스.
  91. 하나 이상의 프로그램들을 저장하는 비일시적 컴퓨터 판독가능 저장 매체로서,
    상기 하나 이상의 프로그램들은, 전자 디바이스의 하나 이상의 프로세서들에 의해 실행될 때, 상기 전자 디바이스로 하여금, 방법을 수행하게 하는 명령어들을 포함하며,
    상기 방법은,
    디스플레이 생성 컴포넌트를 통해 사용자의 제1 시점으로부터 3차원 환경을 디스플레이하는 단계 - 상기 3차원 환경은 상기 3차원 환경 내의 제1 위치에 제1 사용자 인터페이스 객체를 포함함 -;
    상기 사용자의 상기 제1 시점으로부터 상기 3차원 환경 내의 상기 제1 객체를 디스플레이하는 동안, 하나 이상의 입력 디바이스들을 통해, 상기 제1 사용자 인터페이스 객체를 상기 3차원 환경 내의 상기 제1 위치로부터 제2 위치로 이동시키기 위한 제1 입력을 수신하는 단계; 및
    상기 제1 입력을 수신하는 동안, 상기 제1 사용자 인터페이스 객체를 상기 제1 위치로부터 상기 제2 위치로 이동시키는 단계, 및
    상기 제1 사용자 인터페이스 객체를 상기 제1 위치로부터 상기 제2 위치로 이동시키는 동안,
    상기 3차원 환경에 대해 상기 제1 사용자 인터페이스 객체의 일부를 시각적으로 강조해제하는 단계; 및
    상기 제1 사용자 인터페이스 객체의 상기 일부가 상기 3차원 환경에 대해 시각적으로 강조해제되는 동안, 상기 제1 사용자 인터페이스 객체와 상기 제1 시점 사이의 거리가 변경됨에 따라, 상기 제1 사용자 인터페이스 객체가 디스플레이되는 크기를 변경시키는 단계를 포함하는, 비일시적 컴퓨터 판독가능 저장 매체.
  92. 전자 디바이스로서,
    하나 이상의 프로세서들;
    메모리;
    디스플레이 생성 컴포넌트를 통해 사용자의 제1 시점으로부터 3차원 환경을 디스플레이하기 위한 수단 - 상기 3차원 환경은 상기 3차원 환경 내의 제1 위치에 제1 사용자 인터페이스 객체를 포함함 -;
    상기 사용자의 상기 제1 시점으로부터 상기 3차원 환경 내의 상기 제1 객체를 디스플레이하는 동안, 하나 이상의 입력 디바이스들을 통해, 상기 제1 사용자 인터페이스 객체를 상기 3차원 환경 내의 상기 제1 위치로부터 제2 위치로 이동시키기 위한 제1 입력을 수신하기 위한 수단; 및
    상기 제1 입력을 수신하는 동안, 상기 제1 사용자 인터페이스 객체를 상기 제1 위치로부터 상기 제2 위치로 이동시키고,
    상기 제1 사용자 인터페이스 객체를 상기 제1 위치로부터 상기 제2 위치로 이동시키는 동안,
    상기 3차원 환경에 대해 상기 제1 사용자 인터페이스 객체의 일부를 시각적으로 강조해제하고;
    상기 제1 사용자 인터페이스 객체의 상기 일부가 상기 3차원 환경에 대해 시각적으로 강조해제되는 동안, 상기 제1 사용자 인터페이스 객체와 상기 제1 시점 사이의 거리가 변경됨에 따라, 상기 제1 사용자 인터페이스 객체가 디스플레이되는 크기를 변경시키기 위한
    수단을 포함하는, 전자 디바이스.
  93. 전자 디바이스에서 사용하기 위한 정보 프로세싱 장치로서,
    디스플레이 생성 컴포넌트를 통해 사용자의 제1 시점으로부터 3차원 환경을 디스플레이하기 위한 수단 - 상기 3차원 환경은 상기 3차원 환경 내의 제1 위치에 제1 사용자 인터페이스 객체를 포함함 -;
    상기 사용자의 상기 제1 시점으로부터 상기 3차원 환경 내의 상기 제1 객체를 디스플레이하는 동안, 하나 이상의 입력 디바이스들을 통해, 상기 제1 사용자 인터페이스 객체를 상기 3차원 환경 내의 상기 제1 위치로부터 제2 위치로 이동시키기 위한 제1 입력을 수신하기 위한 수단; 및
    상기 제1 입력을 수신하는 동안, 상기 제1 사용자 인터페이스 객체를 상기 제1 위치로부터 상기 제2 위치로 이동시키고,
    상기 제1 사용자 인터페이스 객체를 상기 제1 위치로부터 상기 제2 위치로 이동시키는 동안,
    상기 3차원 환경에 대해 상기 제1 사용자 인터페이스 객체의 일부를 시각적으로 강조해제하고;
    상기 제1 사용자 인터페이스 객체의 상기 일부가 상기 3차원 환경에 대해 시각적으로 강조해제되는 동안, 상기 제1 사용자 인터페이스 객체와 상기 제1 시점 사이의 거리가 변경됨에 따라, 상기 제1 사용자 인터페이스 객체가 디스플레이되는 크기를 변경시키기 위한
    수단을 포함하는, 정보 프로세싱 장치.
  94. 전자 디바이스로서,
    하나 이상의 프로세서들;
    메모리; 및
    하나 이상의 프로그램들을 포함하며,
    상기 하나 이상의 프로그램들은, 상기 메모리에 저장되고, 상기 하나 이상의 프로세서들에 의해 실행되도록 구성되고,
    상기 하나 이상의 프로그램들은 제77항 내지 제89항 중 어느 한 항의 방법을 수행하기 위한 명령어들을 포함하는, 전자 디바이스.
  95. 하나 이상의 프로그램들을 저장하는 비일시적 컴퓨터 판독가능 저장 매체로서,
    상기 하나 이상의 프로그램들은, 전자 디바이스의 하나 이상의 프로세서들에 의해 실행될 때, 상기 전자 디바이스로 하여금, 제77항 내지 제89항 중 어느 한 항의 방법을 수행하게 하는 명령어들을 포함하는, 비일시적 컴퓨터 판독가능 저장 매체.
  96. 전자 디바이스로서,
    하나 이상의 프로세서들;
    메모리; 및
    제77항 내지 제89항 중 어느 한 항의 방법을 수행하기 위한 수단을 포함하는, 전자 디바이스.
  97. 전자 디바이스에서 사용하기 위한 정보 프로세싱 장치로서,
    제77항 내지 제89항 중 어느 한 항의 방법을 수행하기 위한 수단을 포함하는, 정보 프로세싱 장치.
KR1020247013915A 2021-09-25 2022-09-16 가상 환경들에서 가상 객체들을 제시하기 위한 디바이스들, 방법들, 및 그래픽 사용자 인터페이스들 KR20240064014A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US202163261667P 2021-09-25 2021-09-25
US63/261,667 2021-09-25
PCT/US2022/076603 WO2023049670A1 (en) 2021-09-25 2022-09-16 Devices, methods, and graphical user interfaces for presenting virtual objects in virtual environments

Publications (1)

Publication Number Publication Date
KR20240064014A true KR20240064014A (ko) 2024-05-10

Family

ID=83688679

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020247013915A KR20240064014A (ko) 2021-09-25 2022-09-16 가상 환경들에서 가상 객체들을 제시하기 위한 디바이스들, 방법들, 및 그래픽 사용자 인터페이스들

Country Status (4)

Country Link
US (1) US20230152935A1 (ko)
KR (1) KR20240064014A (ko)
AU (1) AU2022352933A1 (ko)
WO (1) WO2023049670A1 (ko)

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030222924A1 (en) * 2002-06-04 2003-12-04 Baron John M. Method and system for browsing a virtual environment
WO2012135545A1 (en) * 2011-03-29 2012-10-04 Qualcomm Incorporated Modular mobile connected pico projectors for a local multi-user collaboration
US10380799B2 (en) * 2013-07-31 2019-08-13 Splunk Inc. Dockable billboards for labeling objects in a display having a three-dimensional perspective of a virtual or real environment
US11103122B2 (en) * 2014-07-15 2021-08-31 Mentor Acquisition One, Llc Content presentation in head worn computing
US10222932B2 (en) * 2015-07-15 2019-03-05 Fyusion, Inc. Virtual reality environment based manipulation of multilayered multi-view interactive digital media representations
US10395428B2 (en) * 2016-06-13 2019-08-27 Sony Interactive Entertainment Inc. HMD transitions for focusing on specific content in virtual-reality environments
US10504287B2 (en) * 2016-10-24 2019-12-10 Snap Inc. Redundant tracking system
US11347054B2 (en) * 2017-02-16 2022-05-31 Magic Leap, Inc. Systems and methods for augmented reality
IL301443A (en) * 2018-02-22 2023-05-01 Magic Leap Inc A browser for mixed reality systems

Also Published As

Publication number Publication date
WO2023049670A1 (en) 2023-03-30
US20230152935A1 (en) 2023-05-18
AU2022352933A1 (en) 2024-04-11

Similar Documents

Publication Publication Date Title
US11768579B2 (en) Devices, methods, and graphical user interfaces for interacting with three-dimensional environments
US11557102B2 (en) Methods for manipulating objects in an environment
KR20230054733A (ko) 가상 제어부들과 상호작용하기 위한 방법들 및/또는 가상 환경들에서 가상 객체들을 이동시키기 위한 어포던스
US11853527B2 (en) Devices, methods, and graphical user interfaces for providing computer-generated experiences
US11995230B2 (en) Methods for presenting and sharing content in an environment
US20230384907A1 (en) Methods for relative manipulation of a three-dimensional environment
US20240028177A1 (en) Devices, methods, and graphical user interfaces for interacting with media and three-dimensional environments
US20230334808A1 (en) Methods for displaying, selecting and moving objects and containers in an environment
US20230221833A1 (en) Methods for displaying user interface elements relative to media content
US20230106627A1 (en) Devices, Methods, And Graphical User Interfaces for Interacting with Three-Dimensional Environments
US20230092874A1 (en) Devices, Methods, and Graphical User Interfaces for Interacting with Three-Dimensional Environments
KR20230158505A (ko) 맵들을 위한 디바이스들, 방법들, 및 그래픽 사용자 인터페이스들
KR20240064014A (ko) 가상 환경들에서 가상 객체들을 제시하기 위한 디바이스들, 방법들, 및 그래픽 사용자 인터페이스들
US20230350539A1 (en) Representations of messages in a three-dimensional environment
US20240103614A1 (en) Devices, methods, for interacting with graphical user interfaces
US20230103161A1 (en) Devices, methods, and graphical user interfaces for tracking mitigation in three-dimensional environments
KR20240047458A (ko) 미디어 및 3차원 환경들과의 상호작용을 위한 디바이스들, 방법들 및 그래픽 사용자 인터페이스들
WO2024064930A1 (en) Methods for manipulating a virtual object
CN117940880A (zh) 用于与媒体和三维环境交互的设备、方法和图形用户界面
WO2024064016A1 (en) Devices, methods, and user interfaces for gesture-based interactions
CN118043766A (zh) 用于与三维环境进行交互的设备、方法和图形用户界面