KR102596341B1 - 환경에서 객체들을 조작하기 위한 방법들 - Google Patents

환경에서 객체들을 조작하기 위한 방법들 Download PDF

Info

Publication number
KR102596341B1
KR102596341B1 KR1020237010010A KR20237010010A KR102596341B1 KR 102596341 B1 KR102596341 B1 KR 102596341B1 KR 1020237010010 A KR1020237010010 A KR 1020237010010A KR 20237010010 A KR20237010010 A KR 20237010010A KR 102596341 B1 KR102596341 B1 KR 102596341B1
Authority
KR
South Korea
Prior art keywords
user
representation
dimensional environment
delete delete
location
Prior art date
Application number
KR1020237010010A
Other languages
English (en)
Other versions
KR20230048152A (ko
Inventor
조너선 알. 다스콜라
알렉시스 헨리 팔랑기
피터 디. 안톤
스티븐 오. 르메이
크리스토퍼 디. 맥켄지
이스라엘 파스트라나 비센테
니콜라스 더블유. 헨더슨
도리안 디. 다르간
조너선 라바즈
시-상 치우
조너선 페론
통 첸
네이선 기터
벤자민 에이치. 보에젤
캐서린 수사
크리스티 이. 바우얼리
Original Assignee
애플 인크.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 애플 인크. filed Critical 애플 인크.
Priority to KR1020237036954A priority Critical patent/KR20230152826A/ko
Publication of KR20230048152A publication Critical patent/KR20230048152A/ko
Application granted granted Critical
Publication of KR102596341B1 publication Critical patent/KR102596341B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T19/00Manipulating 3D models or images for computer graphics
    • G06T19/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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0487Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser
    • G06F3/0488Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser using a touch-screen or digitiser, e.g. input of commands through traced gestures
    • G06F3/04883Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser using a touch-screen or digitiser, e.g. input of commands through traced gestures for inputting data by handwriting, e.g. gesture or text
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/011Arrangements for interaction with the human body, e.g. for user immersion in virtual reality
    • G06F3/013Eye tracking input arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/017Gesture based interaction, e.g. based on a set of recognized hand gestures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/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
    • 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/0482Interaction with lists of selectable items, e.g. menus
    • 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
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T19/00Manipulating 3D models or images for computer graphics
    • G06T19/003Navigation within 3D models or images
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T19/00Manipulating 3D models or images for computer graphics
    • G06T19/20Editing of 3D images, e.g. changing shapes or colours, aligning objects or positioning parts
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/10Image acquisition
    • G06V10/12Details of acquisition arrangements; Constructional details thereof
    • G06V10/14Optical characteristics of the device performing the acquisition or on the illumination arrangements
    • G06V10/143Sensing or illuminating at different wavelengths
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/10Image acquisition
    • G06V10/17Image acquisition using hand-held instruments
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V20/00Scenes; Scene-specific elements
    • G06V20/20Scenes; Scene-specific elements in augmented reality scenes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V40/00Recognition of biometric, human-related or animal-related patterns in image or video data
    • G06V40/10Human or animal bodies, e.g. vehicle occupants or pedestrians; Body parts, e.g. hands
    • G06V40/18Eye characteristics, e.g. of the iris
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V40/00Recognition of biometric, human-related or animal-related patterns in image or video data
    • G06V40/20Movements or behaviour, e.g. gesture recognition
    • G06V40/28Recognition of hand or arm movements, e.g. recognition of deaf sign language
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2219/00Indexing scheme for manipulating 3D models or images for computer graphics
    • G06T2219/20Indexing scheme for editing of 3D models
    • G06T2219/2016Rotation, translation, scaling

Abstract

일부 실시예들에서, 전자 디바이스는 3차원 환경에서의 사용자의 시점에 기초하여 3차원 환경에서 가상 객체의 배향을 자동으로 업데이트한다. 일부 실시예들에서, 전자 디바이스는 3차원 환경에서의 복수의 사용자들의 시점들에 기초하여 3차원 환경에서 가상 객체의 배향을 자동으로 업데이트한다. 일부 실시예들에서, 전자 디바이스는 3차원 환경에서 사용자의 시점과 가상 객체 사이에 있는 실제 객체의 외관을 수정한다. 일부 실시예들에서, 전자 디바이스는 하나 이상의 가상 객체들 및/또는 다른 사용자들을 포함하는 3차원 환경에서 사용자에 대한 위치를 자동으로 선택한다.

Description

환경에서 객체들을 조작하기 위한 방법들
관련 출원의 상호 참조
본 출원은 2020년 9월 25일자로 출원된 미국 가출원 제63/083,720호의 이익을 주장하며, 이 출원의 내용은 모든 목적들을 위해 그 전체가 본 명세서에 참고로 통합된다.
기술분야
본 발명은, 일반적으로, 디스플레이 생성 컴포넌트를 통해 가상 객체들을 포함하는 3차원 환경들을 제시하는 전자 디바이스들을 포함하지만 이에 제한되지 않는, 그래픽 사용자 인터페이스들을 제시하는 하나 이상의 입력 디바이스들 및 디스플레이 생성 컴포넌트를 갖는 컴퓨터 시스템들에 관한 것이다.
증강 현실을 위한 컴퓨터 시스템들의 개발은 최근에 상당히 증가하였다. 예시적인 증강 현실 환경들은 물리적 세계를 대체하거나 증강시키는 적어도 일부 가상 요소들을 포함한다. 컴퓨터 시스템들 및 다른 전자 컴퓨팅 디바이스들에 대한 입력 디바이스들, 예를 들어 카메라들, 제어기들, 조이스틱들, 터치-감응형 표면들, 및 터치-스크린 디스플레이들이 가상/증강 현실 환경들과 상호작용하기 위해 사용된다. 예시적인 가상 요소들은 디지털 이미지들, 비디오, 텍스트, 아이콘들, 및 버튼들 및 다른 그래픽들과 같은 제어 요소들을 포함하는 가상 객체들을 포함한다.
그러나, 적어도 일부 가상 요소들(예를 들어, 애플리케이션들, 증강 현실 환경들, 혼합 현실 환경들, 및 가상 현실 환경들)을 포함하는 환경들과 상호작용하기 위한 방법들 및 인터페이스들은 번거롭고, 비효율적이고, 제한된다. 예를 들어, 가상 객체들과 연관된 액션들을 수행하기 위한 불충분한 피드백을 제공하는 시스템들, 증강 현실 환경에서 원하는 결과를 달성하기 위해 일련의 입력들을 요구하는 시스템들, 및 가상 객체들의 조작이 복잡하고, 지루하며, 에러가 발생하기 쉬운 시스템들은 사용자에게 상당한 인지 부담을 생성하고, 가상/증강 현실 환경과의 경험을 손상시킨다. 게다가, 이러한 방법들은 필요 이상으로 오래 걸려서, 에너지가 낭비된다. 이러한 후자의 고려사항은 배터리-작동형 디바이스들에서 특히 중요하다.
따라서, 컴퓨터 시스템들과의 상호작용을 사용자에게 더 효율적이고 직관적으로 만드는 컴퓨터 생성 경험들을 사용자들에게 제공하기 위한 개선된 방법들 및 인터페이스들을 갖는 컴퓨터 시스템들에 대한 필요성이 존재한다. 그러한 방법들 및 인터페이스들은 선택적으로, 컴퓨터 생성 현실 경험들을 사용자들에게 제공하기 위한 종래의 방법들을 보완하거나 대체한다. 이러한 방법들 및 인터페이스들은, 사용자가 제공된 입력들과 입력들에 대한 디바이스 응답들 사이의 접속을 이해하는 것을 도움으로써 사용자로부터의 입력들의 수, 크기, 및/또는 종류를 줄여서, 이에 의해 더 효율적인 인간-기계 인터페이스를 생성한다.
개시된 시스템들에 의해, 디스플레이 생성 컴포넌트 및 하나 이상의 입력 디바이스들을 갖는 컴퓨터 시스템들에 대한 사용자 인터페이스들과 연관된 위의 결점들 및 다른 문제들이 감소되거나 제거된다. 일부 실시예들에서, 컴퓨터 시스템은 연관된 디스플레이를 갖는 데스크톱 컴퓨터이다. 일부 실시예들에서, 컴퓨터 시스템은 휴대용 디바이스(예를 들어, 노트북 컴퓨터, 태블릿 컴퓨터, 또는 핸드헬드 디바이스)이다. 일부 실시예들에서, 컴퓨터 시스템은 개인용 전자 디바이스(예를 들어, 시계 또는 머리 장착형 디바이스와 같은 웨어러블 전자 디바이스)이다. 일부 실시예들에서, 컴퓨터 시스템은 터치패드를 갖는다. 일부 실시예들에서, 컴퓨터 시스템은 하나 이상의 카메라들을 갖는다. 일부 실시예들에서, 컴퓨터 시스템은 터치 감응형 디스플레이("터치 스크린" 또는 "터치 스크린 디스플레이"로도 알려짐)를 갖는다. 일부 실시예들에서, 컴퓨터 시스템은 하나 이상의 눈 추적 컴포넌트들을 갖는다. 일부 실시예들에서, 컴퓨터 시스템은 하나 이상의 손 추적 컴포넌트들을 갖는다. 일부 실시예들에서, 컴퓨터 시스템은 디스플레이 생성 컴포넌트에 추가하여 하나 이상의 출력 디바이스들을 갖고, 출력 디바이스들은 하나 이상의 촉각적 출력 생성기들 및 하나 이상의 오디오 출력 디바이스들을 포함한다. 일부 실시예들에서, 컴퓨터 시스템은 그래픽 사용자 인터페이스(GUI), 하나 이상의 프로세서들, 메모리, 및 다수의 기능들을 수행하기 위해 메모리에 저장되는 하나 이상의 모듈들, 프로그램들 또는 명령어들의 세트들을 갖는다. 일부 실시예들에서, 사용자는 터치-감응형 표면 상의 스타일러스 및/또는 손가락 접촉들 및 제스처들, 카메라들 및 다른 이동 센서들에 의해 캡처된 GUI 또는 사용자의 신체에 대한 공간에서의 사용자의 눈들 및 손의 이동, 및 하나 이상의 오디오 입력 디바이스들에 의해 캡처된 음성 입력들을 통해 GUI와 상호작용한다. 일부 실시예들에서, 상호작용들을 통해 수행되는 기능들은, 선택적으로, 이미지 편집, 드로잉, 프레젠팅(presenting), 워드 프로세싱, 스프레드시트 작성, 게임 하기, 전화 걸기, 화상 회의, 이메일 보내기, 인스턴트 메시징(instant messaging), 운동 지원, 디지털 사진촬영, 디지털 비디오 녹화, 웹 브라우징, 디지털 음악 재생, 메모하기(note taking), 및/또는 디지털 비디오 재생을 포함한다. 이러한 기능들을 수행하기 위한 실행가능 명령어들은, 선택적으로, 하나 이상의 프로세서들에 의한 실행을 위해 구성된 비일시적 컴퓨터 판독가능 저장 매체 또는 다른 컴퓨터 프로그램 제품에 포함된다.
3차원 환경 내의 객체들과 상호작용하기 위한 개선된 방법들 및 인터페이스들을 갖는 전자 디바이스들이 필요하다. 이러한 방법들 및 인터페이스들은 3차원 환경 내의 객체들과 상호작용하기 위한 종래의 방법들을 보완하거나 대체할 수 있다. 이러한 방법들 및 인터페이스들은 사용자로부터의 입력들의 수, 정도, 및/또는 종류를 줄이고 더 효율적인 인간-기계 인터페이스를 생성한다.
일부 실시예들에서, 전자 디바이스는 3차원 환경에서의 사용자의 시점에 기초하여 3차원 환경에서 가상 객체의 배향을 자동으로 업데이트한다. 일부 실시예들에서, 전자 디바이스는 3차원 환경에서의 복수의 사용자들의 시점들에 기초하여 3차원 환경에서 가상 객체의 배향을 자동으로 업데이트한다. 일부 실시예들에서, 전자 디바이스는 3차원 환경에서 사용자의 시점과 가상 객체 사이에 있는 실제 객체의 외관을 수정한다. 일부 실시예들에서, 전자 디바이스는 하나 이상의 가상 객체들 및/또는 다른 사용자들을 포함하는 3차원 환경에서 사용자에 대한 위치를 자동으로 선택한다.
전술된 다양한 실시예들이 본 명세서에 기술된 임의의 다른 실시예들과 조합될 수 있음을 유의해야 한다. 본 명세서에 기술된 특징들 및 이점들은 모두를 포함하는 것은 아니며, 특히, 많은 추가적인 특징들 및 이점들이 도면, 명세서 및 청구범위를 고려하여 당업자에게 명백할 것이다. 그에 부가하여, 본 명세서에 사용된 표현은 주로 이해의 편의 및 설명을 위해 선택되었고, 본 발명의 요지를 상세히 기술하거나 제한하기 위해 선택되지 않았을 수 있다는 것에 주목해야 한다.
다양하게 기술된 실시예들의 더 양호한 이해를 위해, 유사한 도면 부호들이 도면 전체에 걸쳐서 대응 부분들을 나타내는 하기의 도면들과 관련하여 하기의 발명을 실시하기 위한 구체적인 내용이 참조되어야 한다.
도 1은 일부 실시예들에 따른 CGR 경험들을 제공하기 위한 컴퓨터 시스템의 동작 환경을 예시하는 블록도이다.
도 2는 일부 실시예들에 따른 사용자에 대한 CGR 경험을 관리 및 조정하도록 구성된 컴퓨터 시스템의 제어기를 예시하는 블록도이다.
도 3은 일부 실시예들에 따른 CGR 경험의 시각적 컴포넌트를 사용자에게 제공하도록 구성된 컴퓨터 시스템의 디스플레이 생성 컴포넌트를 예시하는 블록도이다.
도 4는 일부 실시예들에 따른 사용자의 제스처 입력들을 캡처하도록 구성된 컴퓨터 시스템의 손 추적 유닛을 예시하는 블록도이다.
도 5는 일부 실시예들에 따른 사용자의 시선 입력들을 캡처하도록 구성된 컴퓨터 시스템의 눈 추적 유닛을 예시하는 블록도이다.
도 6은 일부 실시예들에 따른 글린트-보조(glint-assisted) 시선 추적 파이프라인을 예시하는 흐름도이다.
도 7a 내지 도 7c는 일부 실시예들에 따른, 전자 디바이스가 3차원 환경에서의 사용자의 시점에 기초하여 3차원 환경에서 가상 객체의 배향을 자동으로 업데이트하는 방법의 예들을 예시한다.
도 8a 내지 도 8p는 일부 실시예들에 따른 사용자의 시점에 기초하여 3차원 환경에서 가상 객체의 배향을 자동으로 업데이트하는 방법을 예시하는 흐름도이다.
도 9a 내지 도 9d는 일부 실시예들에 따른, 전자 디바이스가 3차원 환경에서의 복수의 사용자들의 시점들에 기초하여 3차원 환경에서 가상 객체의 배향을 자동으로 업데이트하는 방법의 예들을 예시한다.
도 10a 내지 도 10t는 일부 실시예들에 따른 3차원 환경에서의 복수의 사용자들의 시점들에 기초하여 3차원 환경에서 가상 객체의 배향을 자동으로 업데이트하는 방법을 예시하는 흐름도이다.
도 11a 내지 도 11c는 일부 실시예들에 따른, 전자 디바이스가 3차원 환경에서 사용자의 시점과 가상 객체 사이에 있는 실제 객체의 외관을 수정하는 방법의 예들을 예시한다.
도 12a 내지 도 12h는 일부 실시예들에 따른 3차원 환경에서 사용자의 시점과 가상 객체 사이에 있는 실제 객체의 외관을 수정하는 방법을 예시하는 흐름도이다.
도 13a 내지 도 13c는 일부 실시예들에 따른, 전자 디바이스가 하나 이상의 가상 객체들 및/또는 다른 사용자들을 포함하는 3차원 환경에서 사용자에 대한 위치를 자동으로 선택하는 방법의 예들을 예시한다.
도 14a 내지 도 14l은 일부 실시예들에 따른 하나 이상의 가상 객체들 및/또는 다른 사용자들을 포함하는 3차원 환경에서 사용자에 대한 위치를 자동으로 선택하는 방법을 예시하는 흐름도이다.
본 개시내용은 일부 실시예들에 따른, 컴퓨터 생성 현실(CGR) 경험을 사용자에게 제공하기 위한 사용자 인터페이스들에 관한 것이다.
본 명세서에서 설명된 시스템들, 방법들, 및 GUI들은 전자 디바이스가 3차원 환경에서 객체들과 상호작용하고 조작하기 위한 개선된 방식들을 제공한다. 3차원 환경은 선택적으로, 하나 이상의 가상 객체들, 전자 디바이스의 물리적 환경 내에 있는 실제 객체들의 하나 이상의 표현들(예를 들어, 실제 객체들의 포토리얼리스틱(photorealistic)(예를 들어, "패스-스루(pass-through)") 표현들로서 디스플레이되거나 디스플레이 생성 컴포넌트의 투명 부분을 통해 사용자에게 가시적임) 및/또는 3차원 환경 내의 사용자들의 표현들을 포함한다.
일부 실시예들에서, 전자 디바이스는 3차원 환경에서의 사용자의 시점에 기초하여 3차원 환경에서 가상 객체의 배향을 자동으로 업데이트한다. 일부 실시예들에서, 전자 디바이스는 사용자 입력에 따라 가상 객체를 이동시키고, 사용자 입력의 종료에 응답하여, 업데이트된 위치에 객체를 디스플레이한다. 일부 실시예들에서, 전자 디바이스는 업데이트된 위치에서(그리고/또는 예를 들어, 가상 객체가 업데이트된 위치로 이동할 때) 가상 객체의 배향을 자동으로 업데이트하여, 가상 객체는 (예를 들어, 자신의 이동 전반에 걸쳐 그리고/또는 그 이동의 끝에서) 3차원 환경에서 사용자의 시점을 향해 배향된다. 3차원 환경에서 가상 객체의 배향을 자동으로 업데이트하는 것은, 사용자가 객체의 배향을 수동으로 조정할 것을 요구하지 않으면서, 사용자가 가상 객체를 보다 자연스럽고 효율적으로 볼 수 있고 상호작용할 수 있게 한다.
일부 실시예들에서, 전자 디바이스는 3차원 환경에서의 복수의 사용자들의 시점들에 기초하여 3차원 환경에서 가상 객체의 배향을 자동으로 업데이트한다. 일부 실시예들에서, 전자 디바이스는 사용자 입력에 따라 가상 객체를 이동시키고, 사용자 입력의 종료에 응답하여, 업데이트된 위치에 객체를 디스플레이한다. 일부 실시예들에서, 전자 디바이스는 업데이트된 위치에서(그리고/또는 예를 들어, 가상 객체가 업데이트된 위치로 이동할 때) 가상 객체의 배향을 자동으로 업데이트하여, 가상 객체는 (예를 들어, 자신의 이동 전반에 걸쳐 그리고/또는 그 이동의 끝에서) 3차원 환경에서 복수의 사용자들의 시점들을 향해 배향된다. 3차원 환경에서 가상 객체의 배향을 자동으로 업데이트하는 것은, 사용자들이 객체의 배향을 수동으로 조정할 것을 요구하지 않으면서, 사용자들이 가상 객체를 보다 자연스럽고 효율적으로 볼 수 있고 상호작용할 수 있게 한다.
일부 실시예들에서, 전자 디바이스는 3차원 환경에서 사용자의 시점과 가상 객체 사이에 있는 실제 객체의 외관을 수정한다. 전자 디바이스는 선택적으로 3차원 환경에서 사용자의 시점과 가상 객체 사이에 있는 실제 객체(예를 들어, 실제 객체들의 포토리얼리스틱(예를 들어, "패스-스루") 표현으로서 디스플레이되거나 디스플레이 생성 컴포넌트의 투명 부분을 통해 사용자에게 가시적임)의 일부를 블러링하거나, 어둡게 하거나, 또는 다른 방식으로 수정한다. 일부 실시예들에서, 전자 디바이스는 가상 객체의 경계의 임계 거리(예를 들어, 5, 10, 30, 50, 100 센티미터 등)보다 큰 실제 객체의 일부를 수정하지 않으면서 가상 객체의 경계의 임계 거리 내에 있는 실제 객체의 일부를 수정한다. 실제 객체의 외관을 수정하는 것은 사용자가 가상 객체를 보다 자연스럽고 효율적으로 볼 수 있고 상호작용할 수 있게 한다. 또한, 실제 객체의 외관을 수정하는 것은 사용자에 대한 인지 부담을 감소시킨다.
일부 실시예들에서, 전자 디바이스는 하나 이상의 가상 객체들 및/또는 다른 사용자들을 포함하는 3차원 환경에서 사용자에 대한 위치를 자동으로 선택한다. 일부 실시예들에서, 사용자는 하나 이상의 다른 사용자들 및 하나 이상의 가상 객체들을 이미 포함하는 3차원 환경에 대한 액세스를 얻는다. 일부 실시예들에서, 전자 디바이스는 3차원 환경 내의 가상 객체들 및 다른 사용자들의 위치들 및 배향들에 기초하여 사용자를 연관시킬 위치(예를 들어, 사용자의 시점을 배치할 위치)를 자동으로 선택한다. 일부 실시예들에서, 전자 디바이스는 사용자들 및 가상 객체들의 다른 사용자들의 뷰들을 차단하지 않으면서 사용자가 3차원 환경에서 다른 사용자들 및 가상 객체들을 볼 수 있게 하기 위해 사용자에 대한 위치를 선택한다. 3차원 환경 내의 가상 객체들 및 다른 사용자들의 위치들 및 배향들에 기초하여 사용자를 3차원 환경에 자동으로 배치하는 것은, 연관될 3차원 환경 내의 위치를 수동으로 선택하도록 사용자에게 요구하지 않으면서, 사용자가 3차원 환경에서 가상 객체들 및 다른 사용자들을 효율적으로 보고 상호작용할 수 있게 한다.
도 1 내지 도 6은 (예컨대, 방법들(800, 1000, 1200, 및 1400)에 대해 아래에서 설명되는) CGR 경험들을 사용자들에게 제공하기 위한 예시적인 컴퓨터 시스템들의 설명을 제공한다. 일부 실시예들에서, 도 1에 도시된 바와 같이, CGR 경험은 컴퓨터 시스템(101)을 포함하는 동작 환경(100)을 통해 사용자에게 제공된다. 컴퓨터 시스템(101)은 제어기(110)(예를 들어, 휴대용 전자 디바이스 또는 원격 서버의 프로세서들), 디스플레이 생성 컴포넌트(120)(예를 들어, 머리 장착형 디바이스(head-mounted device; HMD), 디스플레이, 프로젝터, 터치-스크린 등), 하나 이상의 입력 디바이스들(125)(예를 들어, 눈 추적 디바이스(130), 손 추적 디바이스(140), 다른 입력 디바이스들(150)), 하나 이상의 출력 디바이스들(155)(예를 들어, 스피커들(160), 촉각적 출력 생성기들(170), 및 다른 출력 디바이스들(180)), 하나 이상의 센서들(190)(예를 들어, 이미지 센서들, 광 센서들, 깊이 센서들, 촉각 센서들, 배향 센서들, 근접 센서들, 온도 센서들, 위치 센서들, 모션 센서들, 속도 센서들 등), 그리고 선택적으로, 하나 이상의 주변 디바이스들(195)(예를 들어, 가전기기들, 웨어러블 디바이스들 등)을 포함한다. 일부 실시예들에서, 입력 디바이스들(125), 출력 디바이스들(155), 센서들(190) 및 주변 디바이스들(195) 중 하나 이상은 (예를 들어, 머리 장착형 디바이스 또는 핸드헬드 디바이스에서) 디스플레이 생성 컴포넌트(120)와 통합된다.
CGR 경험을 설명할 때, (예를 들어, CGR 경험을 생성하는 컴퓨터 시스템으로 하여금 컴퓨터 시스템(101)에 제공된 다양한 입력들에 대응하는 오디오, 시각적 및/또는 촉각적 피드백을 생성하게 하는, CGR 경험을 생성하는 컴퓨터 시스템(101)에 의해 검출된 입력들로) 사용자가 감지할 수 있고/있거나 사용자가 상호작용할 수 있는 몇몇 관련되지만 구별되는 환경들을 구별하여 지칭하기 위해 다양한 용어들이 사용된다. 다음은 이들 용어의 서브세트이다:
물리적 환경: 물리적 환경은 사람들이 전자 시스템들의 도움없이 감지하고 그리고/또는 상호작용할 수 있는 물리적 세계를 지칭한다. 물리적 공원과 같은 물리적 환경들은 물리적 물품들, 예컨대 물리적 나무들, 물리적 건물들, 및 물리적 사람들을 포함한다. 사람들은, 예컨대 시각, 촉각, 청각, 미각, 및 후각을 통해, 물리적 환경을 직접 감지하고 그리고/또는 그와 상호작용할 수 있다.
컴퓨터 생성 현실: 대조적으로, 컴퓨터 생성 현실(CGR) 환경은 사람들이 전자 시스템을 통해 감지하고/하거나 그와 상호작용하는 완전히 또는 부분적으로 시뮬레이션된 환경을 지칭한다. CGR에서, 사람의 신체적 움직임들, 또는 이들의 표현들의 서브세트가 추적되고, 이에 응답하여, CGR 환경에서 시뮬레이션된 하나 이상의 가상 객체들의 하나 이상의 특성들이 적어도 하나의 물리 법칙에 따르는 방식으로 조정된다. 예를 들어, CGR 시스템은 사람이 고개를 돌리는 것을 검출할 수 있고, 이에 응답하여, 그 사람에게 제시되는 그래픽 콘텐츠 및 음장(acoustic field)을 물리적 환경에서 이러한 뷰들 및 소리들이 변경되는 방식과 유사한 방식으로 조정할 수 있다. 일부 상황들에서(예를 들어, 접근성 이유들 때문에), CGR 환경에서의 가상 객체(들)의 특성(들)에 대한 조정들은 신체적 움직임들의 표현들(예를 들어, 음성 커맨드들)에 응답하여 이루어질 수 있다. 사람은, 시각, 청각, 촉각, 미각, 및 후각을 포함하는 그들의 감각들 중 임의의 하나를 사용하여 CGR 객체를 감지하고/하거나 그와 상호작용할 수 있다. 예를 들어, 사람은 3D 공간에서의 포인트 오디오 소스들의 지각을 제공하는 3D 또는 공간적 오디오 환경을 생성하는 오디오 객체들을 감지하고/하거나 그와 상호작용할 수 있다. 다른 예에서, 오디오 객체들은 오디오 투명성을 가능하게 할 수 있으며, 이는 선택적으로, 물리적 환경으로부터의 주변 소리들을 컴퓨터 생성 오디오와 함께 또는 그것 없이 통합한다. 일부 CGR 환경들에서, 사람은 오디오 객체들만을 감지하고/하거나 그와 상호작용할 수 있다.
CGR의 예들은 가상 현실 및 혼합 현실(mixed reality)을 포함한다.
가상 현실: 가상 현실(virtual reality; VR) 환경은 하나 이상의 감각들에 대한 컴퓨터-생성 감각 입력들에 전적으로 기초하도록 설계된 시뮬레이션된 환경을 지칭한다. VR 환경은 사람이 감지하고/하거나 그와 상호작용할 수 있는 복수의 가상 객체들을 포함한다. 예를 들어, 나무들, 빌딩들, 및 사람들을 표현하는 아바타들의 컴퓨터 생성 이미지가 가상 객체들의 예들이다. 사람은, 컴퓨터 생성 환경에서의 사람의 존재의 시뮬레이션을 통해 그리고/또는 컴퓨터 생성 환경에서의 사람의 신체적 움직임들의 서브세트의 시뮬레이션을 통해 VR 환경에서 가상 객체들을 감지하며 및/또는 그와 상호작용할 수 있다.
혼합 현실: 컴퓨터-생성 감각 입력들에 전적으로 기초하도록 설계되는 VR 환경과는 대조적으로, 혼합 현실(mixed reality; MR) 환경은 컴퓨터-생성 감각 입력들(예를 들어, 가상 객체들)을 포함하는 것에 부가하여, 물리적 환경으로부터의 감각 입력들, 또는 그들의 표현을 통합하도록 설계된 시뮬레이션된 환경을 지칭한다. 가상 연속체(virtuality continuum)에서, 혼합 현실 환경은 한쪽의 완전히 물리적인 환경과 다른 쪽의 가상 현실 환경 사이의 임의의 곳에 있지만, 포함하지는 않는다. 일부 MR 환경들에서, 컴퓨터 생성 감각 입력들은 물리적 환경으로부터의 감각 입력들의 변화들에 응답할 수 있다. 또한, MR 환경을 제시하기 위한 일부 전자 시스템들은 물리적 환경에 대한 위치 및/또는 배향을 추적하여 가상 객체들이 실제 객체들(즉, 물리적 환경으로부터의 물리적 물품들 또는 물리적 물품들의 표현들)과 상호작용할 수 있게 할 수 있다. 예를 들어, 시스템은 움직임들을 고려하여 가상 나무가 물리적 땅에 대하여 고정되어 있는 것처럼 보이도록 할 수 있다.
혼합 현실들의 예들은 증강 현실 및 증강 가상을 포함한다.
증강 현실: 증강 현실(augmented reality; AR) 환경은 하나 이상의 가상 객체들이 물리적 환경, 또는 그의 표현 위에 중첩되어 있는 시뮬레이션된 환경을 지칭한다. 예를 들어, AR 환경을 제시하기 위한 전자 시스템은 사람이 직접 물리적 환경을 볼 수 있는 투명 또는 반투명 디스플레이를 가질 수 있다. 시스템은, 사람이 시스템을 사용하여 물리적 환경 위에 중첩된 가상 객체들을 인지하도록, 투명 또는 반투명 디스플레이 상에 가상 객체들을 제시하도록 구성될 수 있다. 대안적으로, 시스템은 불투명 디스플레이, 및 물리적 환경의 표현들인 물리적 환경의 이미지들 또는 비디오를 캡처하는 하나 이상의 이미징 센서들을 가질 수 있다. 시스템은 이미지들 또는 비디오를 가상 객체들과 합성하고, 합성물을 불투명 디스플레이 상에 제시한다. 사람은 시스템을 사용하여 물리적 환경의 이미지들 또는 비디오에 의해 물리적 환경을 간접적으로 보고, 물리적 환경 위에 중첩된 가상 객체들을 인지한다. 본 명세서에 사용되는 바와 같이, 불투명 디스플레이 상에 보여지는 물리적 환경의 비디오는 "패스 스루(pass-through) 비디오"로 불리는데, 이는 시스템이 하나 이상의 이미지 센서(들)를 사용하여 물리적 환경의 이미지들을 캡처하고, AR 환경을 불투명 디스플레이 상에 제시할 시에 이들 이미지들을 사용하는 것을 의미한다. 추가로 대안적으로, 시스템은, 사람이 시스템을 사용하여 물리적 환경 위에 중첩된 가상 객체들을 인지하도록, 가상 객체들을 물리적 환경에, 예를 들어, 홀로그램으로서 또는 물리적 표면 상에 투영하는 투영 시스템을 가질 수 있다. 증강 현실 환경은 또한 물리적 환경의 표현이 컴퓨터 생성 감각 정보에 의해 변환되는 시뮬레이션된 환경을 지칭한다. 예를 들어, 패스 스루 비디오를 제공할 시에, 시스템은 하나 이상의 센서 이미지들을 변환하여 이미징 센서들에 의해 캡처된 관점과는 상이한 선택 관점(예를 들어, 시점)을 부과할 수 있다. 다른 예로서, 물리적 환경의 표현은 그것의 일부들을 그래픽적으로 수정(예를 들어, 확대)함으로써 변환될 수 있어서, 수정된 부분은 원래 캡처된 이미지들의 표현일 수 있지만, 실사 버전은 아닐 수 있다. 추가적인 예로서, 물리적 환경의 표현은 그의 일부들을 그래픽적으로 제거하거나 또는 흐리게 함으로써 변환될 수 있다.
증강 가상: 증강 가상(augmented virtuality; AV) 환경은 가상 또는 컴퓨터 생성 환경이 물리적 환경으로부터의 하나 이상의 감각 입력들을 통합하는 시뮬레이션된 환경을 지칭한다. 감각 입력들은 물리적 환경의 하나 이상의 특성들의 표현들일 수 있다. 예를 들어, AV 공원은 가상 나무들 및 가상 빌딩들을 가질 수 있지만, 사람들의 얼굴들은 물리적 사람들을 촬영한 이미지들로부터 실사처럼 재현될 수 있다. 다른 예로서, 가상 객체는 하나 이상의 이미징 센서들에 의해 이미징되는 물리적 물품의 형상 또는 색상을 채용할 수 있다. 추가적인 예로서, 가상 객체는 물리적 환경에서 태양의 위치에 부합하는 그림자들을 채용할 수 있다.
하드웨어: 사람이 다양한 CGR 환경들을 감지하고/하거나 그와 상호작용할 수 있게 하는 많은 상이한 유형의 전자 시스템들이 있다. 예들은 머리 장착형 시스템들, 투영 기반 시스템들, 헤드업(head-up) 디스플레이(HUD)들, 디스플레이 능력이 통합된 차량 앞유리들, 디스플레이 능력이 통합된 창문들, 사람의 눈들에 배치되도록 설계된 렌즈들로서 형성된 디스플레이들(예를 들어, 콘택트 렌즈들과 유사함), 헤드폰들/이어폰들, 스피커 어레이들, 입력 시스템들(예를 들어, 햅틱(haptic) 피드백이 있거나 또는 없는 웨어러블 또는 핸드헬드 제어기들), 스마트폰들, 태블릿들, 및 데스크톱/랩톱 컴퓨터들을 포함한다. 헤드 장착형 시스템은 하나 이상의 스피커(들) 및 통합 불투명 디스플레이를 가질 수 있다. 대안적으로, 헤드 장착형 시스템은 외부 불투명 디스플레이(예를 들어, 스마트폰)를 수용하도록 구성될 수 있다. 헤드 장착형 시스템은 물리적 환경의 이미지들 또는 비디오를 캡처하기 위한 하나 이상의 이미징 센서들, 및/또는 물리적 환경의 오디오를 캡처하기 위한 하나 이상의 마이크로폰들을 통합할 수 있다. 헤드 장착형 시스템은 불투명 디스플레이보다는, 투명 또는 반투명 디스플레이를 가질 수 있다. 투명 또는 반투명 디스플레이는 이미지들을 표현하는 광이 사람의 눈들로 지향되는 매체를 가질 수 있다. 디스플레이는 디지털 광 프로젝션, OLED들, LED들, uLED들, 실리콘 액정 표시장치, 레이저 스캐닝 광원, 또는 이들 기술들의 임의의 조합을 이용할 수 있다. 매체는 광학 도파관, 홀로그램 매체, 광학 조합기, 광학 반사기, 또는 이들의 임의의 조합일 수 있다. 일 실시예에서, 투명 또는 반투명 디스플레이는 선택적으로 불투명하게 되도록 구성될 수 있다. 투영 기반 시스템들은 그래픽 이미지들을 사람의 망막 상에 투영하는 망막 투영 기술을 채용할 수 있다. 투영 시스템들은, 또한, 가상 객체들을 물리적 환경 내에, 예를 들어 홀로그램으로서, 또는 물리적 표면 상에 투영하도록 구성될 수 있다. 일부 실시예들에서, 제어기(110)는 사용자에 대한 CGR 경험을 관리 및 조정하도록 구성된다. 일부 실시예들에서, 제어기(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)는 CGR 경험(예를 들어, 적어도 CGR 경험의 시각적 컴포넌트)을 사용자에게 제공하도록 구성된다. 일부 실시예들에서, 디스플레이 생성 컴포넌트(120)는 소프트웨어, 펌웨어, 및/또는 하드웨어의 적합한 조합을 포함한다. 디스플레이 생성 컴포넌트(120)는 도 3과 관련하여 아래에서 더욱 상세히 기술된다. 일부 실시예들에서, 제어기(110)의 기능성들은 디스플레이 생성 컴포넌트(120)에 의해 제공되거나 및/또는 이와 조합된다.
일부 실시예들에 따르면, 디스플레이 생성 컴포넌트(120)는 사용자가 장면(105) 내에 가상으로 그리고/또는 물리적으로 존재하는 동안 CGR 경험을 사용자에게 제공한다.
일부 실시예들에서, 디스플레이 생성 컴포넌트는 사용자의 신체의 일부(예를 들어, 그의 머리에, 그의 손에 등)에 착용된다. 이와 같이, 디스플레이 생성 컴포넌트(120)는 CGR 콘텐츠를 디스플레이하기 위해 제공되는 하나 이상의 CGR 디스플레이들을 포함한다. 예를 들어, 다양한 실시예들에서, 디스플레이 생성 컴포넌트(120)는 사용자의 시야를 둘러싼다. 일부 실시예들에서, 디스플레이 생성 컴포넌트(120)는 CGR 콘텐츠를 제시하도록 구성된 핸드헬드 디바이스(예를 들어, 스마트폰 또는 태블릿)이고, 사용자는 사용자의 시야를 향해 지향된 디스플레이 및 장면(105)을 향해 지향된 카메라를 갖는 디바이스를 유지한다. 일부 실시예들에서, 핸드헬드 디바이스는 선택적으로 사용자의 머리에 착용된 인클로저 내에 배치된다. 일부 실시예들에서, 핸드헬드 디바이스는 선택적으로 사용자 전방의 지지부(예를 들어, 삼각대) 상에 배치된다. 일부 실시예들에서, 디스플레이 생성 컴포넌트(120)는 사용자가 디스플레이 생성 컴포넌트(120)를 착용하거나 유지하지 않는 CGR 콘텐츠를 제공하도록 구성된 CGR 챔버, 인클로저 또는 룸이다. CGR 콘텐츠를 디스플레이하기 위한 하나의 유형의 하드웨어(예를 들어, 핸드헬드 디바이스 또는 삼각대 상의 디바이스)를 참조하여 설명된 많은 사용자 인터페이스들은 CGR 콘텐츠를 디스플레이하기 위한 다른 유형의 하드웨어(예를 들어, HMD 또는 다른 웨어러블 컴퓨팅 디바이스) 상에서 구현될 수 있다. 예를 들어, 핸드헬드 또는 삼각대 장착형 디바이스 전방의 공간에서 발생하는 상호작용들에 기초하여 트리거된 CGR 콘텐츠와의 상호작용들을 보여주는 사용자 인터페이스는, 상호작용들이 HMD 전방의 공간에서 발생하고 CGR 콘텐츠의 응답들이 HMD를 통해 디스플레이되는 HMD를 이용하여 유사하게 구현될 수 있다. 유사하게, 물리적 환경(예를 들어, 장면(105) 또는 사용자의 신체의 일부(예를 들어, 사용자의 눈(들), 머리 또는 손)에 대한 핸드헬드 또는 삼각대 장착형 디바이스의 이동에 기초하여 트리거되는 CRG 콘텐츠와의 상호작용들을 보여주는 사용자 인터페이스는 유사하게, 물리적 환경(예를 들어, 장면(105) 또는 사용자의 신체의 일부(예를 들어, 사용자의 눈(들), 머리 또는 손)에 대한 HMD의 이동에 의해 이동이 야기되는 HMD로 구현될 수 있다.
동작 환경(100)의 관련 특징부들이 도 1에 도시되어 있지만, 당업자들은 본 개시내용으로부터, 간결함을 위해 그리고 본 명세서에 개시되는 예시적인 실시예들의 더 많은 관련 태양들을 불명료하게 하지 않기 위해 다양한 다른 특징부들이 예시되지 않았음을 인식할 것이다.
도 2는 일부 실시예들에 따른 제어기(110)의 일 예의 블록도이다. 소정의 특정 특징부들이 예시되어 있지만, 당업자들은 본 개시내용으로부터, 간결함을 위해 그리고 본 명세서에 개시되는 실시예들의 더 많은 관련 태양들을 불명료하게 하지 않기 위해 다양한 다른 특징부들이 예시되지 않았음을 인식할 것이다. 이를 위해, 비제한적인 예로서, 일부 실시예들에서, 제어기(110)는 하나 이상의 프로세싱 유닛들(202)(예를 들어, 마이크로프로세서들, 주문형 집적 회로(application-specific integrated-circuit; ASIC)들, 필드-프로그래밍가능 게이트 어레이(field-programmable gate array; FPGA)들, 그래픽 프로세싱 유닛(graphics processing unit; GPU)들, 중앙 프로세싱 유닛(central processing unit; CPU)들, 프로세싱 코어들 등), 하나 이상의 입/출력(input/output; I/O) 디바이스들(206), 하나 이상의 통신 인터페이스들(208)(예를 들어, 범용 직렬 버스(universal serial bus; USB), FIREWIRE, THUNDERBOLT, IEEE 802.3x, IEEE 802.11x, IEEE 802.16x, 모바일 통신들을 위한 글로벌 시스템(global system for mobile communication; GSM), 코드 분할 다중 액세스(code division multiple access; CDMA), 시분할 다중 액세스(time division multiple access; TDMA), 글로벌 포지셔닝 시스템(global positioning system; GPS), 적외선(infrared; IR), 블루투스, 지그비, 및/또는 유사한 유형의 인터페이스), 하나 이상의 프로그래밍(예를 들어, I/O) 인터페이스들(210), 메모리(220), 및 이들 및 다양한 다른 컴포넌트들을 상호연결하기 위한 하나 이상의 통신 버스들(204)을 포함한다.
일부 실시예들에서, 하나 이상의 통신 버스들(204)은 시스템 컴포넌트들 사이의 통신을 상호연결하고 제어하는 회로부를 포함한다. 일부 실시예들에서, 하나 이상의 I/O 디바이스들(206)은 키보드, 마우스, 터치패드, 조이스틱, 하나 이상의 마이크로폰들, 하나 이상의 스피커들, 하나 이상의 이미지 센서들, 하나 이상의 디스플레이들 등 중 적어도 하나를 포함한다.
메모리(220)는 동적-랜덤 액세스 메모리(DRAM), 정적 랜덤-액세스 메모리(SRAM), 더블-데이터-레이트 랜덤-액세스 메모리(DDR RAM), 또는 다른 랜덤-액세스 솔리드-스테이트 메모리 디바이스들과 같은 고속 랜덤-액세스 메모리를 포함한다. 일부 실시예들에서, 메모리(220)는 하나 이상의 자기 디스크 저장 디바이스들, 광 디스크 저장 디바이스들, 플래시 메모리 디바이스들, 또는 다른 비휘발성 솔리드-스테이트 저장 디바이스들과 같은 비휘발성 메모리를 포함한다. 메모리(220)는 선택적으로, 하나 이상의 프로세싱 유닛들(202)로부터 원격으로 위치된 하나 이상의 저장 디바이스들을 포함한다. 메모리(220)는 비일시적 컴퓨터 판독가능 저장 매체를 포함한다. 일부 실시예들에서, 메모리(220) 또는 메모리(220)의 비일시적 컴퓨터 판독가능 저장 매체는 다음의 프로그램들, 모듈들 및 데이터 구조들, 또는 선택적인 운영 체제(230) 및 CGR 경험 모듈(240)을 포함하는 그들의 서브세트를 저장한다.
운영 체제(230)는 다양한 기본 시스템 서비스들을 처리하고 하드웨어 의존 태스크들을 수행하기 위한 명령어들을 포함한다. 일부 실시예들에서, CGR 경험 모듈(240)은 1명 이상의 사용자들에 대한 하나 이상의 CGR 경험들(예를 들어, 1명 이상의 사용자들에 대한 단일 CGR 경험, 또는 1명 이상의 사용자들의 개개의 그룹들에 대한 다수의 CGR 경험들)을 관리하고 조정하도록 구성된다. 이를 위해, 다양한 실시예들에서, CGR 경험 모듈(240)은 데이터 획득 유닛(242), 추적 유닛(244), 조정 유닛(246), 및 데이터 송신 유닛(248)을 포함한다.
일부 실시예들에서, 데이터 획득 유닛(242)은 적어도 도 1의 디스플레이 생성 컴포넌트(120) 및 선택적으로, 입력 디바이스들(125), 출력 디바이스들(155), 센서들(190), 및/또는 주변 디바이스들(195) 중 하나 이상으로부터 데이터(예를 들어, 제시 데이터, 상호작용 데이터, 센서 데이터, 위치 데이터 등)를 획득하도록 구성된다. 이를 위해, 다양한 실시예들에서, 데이터 획득 유닛(242)은 그에 대한 명령어들 및/또는 로직, 및 그에 대한 휴리스틱 및 메타데이터를 포함한다.
일부 실시예들에서, 추적 유닛(244)은 장면(105)을 맵핑하도록 그리고 도 1의 장면(105)에 대해 그리고 선택적으로, 입력 디바이스들(125), 출력 디바이스들(155), 센서들(190), 및/또는 주변 디바이스들(195) 중 하나 이상에 대해 적어도 디스플레이 생성 컴포넌트(120)의 포지션/위치를 추적하도록 구성된다. 이를 위해, 다양한 실시예들에서, 추적 유닛(244)은 그에 대한 명령어들 및/또는 로직, 및 그에 대한 휴리스틱 및 메타데이터를 포함한다. 일부 실시예들에서, 추적 유닛(244)은 손 추적 유닛(243), 및/또는 눈 추적 유닛(245)을 포함한다. 일부 실시예들에서, 손 추적 유닛(243)은 도 1의 장면(105)에 대해, 디스플레이 생성 컴포넌트(120)에 대해, 및/또는 사용자의 손에 대해 정의된 좌표계에 대해 사용자의 손들의 하나 이상의 부분들의 포지션/위치 및/또는 사용자의 손들의 하나 이상의 부분들의 모션들을 추적하도록 구성된다. 손 추적 유닛(243)은 도 4와 관련하여 아래에서 더욱 상세히 설명된다. 일부 실시예들에서, 눈 추적 유닛(245)은 장면(105)에 대해(예를 들어, 물리적 환경 및/또는 사용자(예를 들어, 사용자의 손)에 대해) 또는 디스플레이 생성 컴포넌트(120)를 통해 디스플레이되는 CGR 콘텐츠에 대해 사용자의 시선(또는 더 광범위하게는 사용자의 눈들, 얼굴 또는 머리)의 위치 및 이동을 추적하도록 구성된다. 눈 추적 유닛(245)은 도 5와 관련하여 아래에서 더욱 상세히 설명된다.
일부 실시예들에서, 조정 유닛(246)은 디스플레이 생성 컴포넌트(120)에 의해 그리고 선택적으로, 출력 디바이스들(155) 및/또는 주변 디바이스들(195) 중 하나 이상에 의해 사용자에게 제시되는 CGR 경험을 관리 및 조정하도록 구성된다. 이를 위해, 다양한 실시예들에서, 조정 유닛(246)은 그에 대한 명령어들 및/또는 로직, 및 그에 대한 휴리스틱 및 메타데이터를 포함한다.
일부 실시예들에서, 데이터 송신 유닛(248)은 적어도 디스플레이 생성 컴포넌트(120) 및 선택적으로, 입력 디바이스들(125), 출력 디바이스들(155), 센서들(190), 및/또는 주변 디바이스들(195) 중 하나 이상에 데이터(예를 들어, 제시 데이터, 위치 데이터 등)를 송신하도록 구성된다. 이를 위해, 다양한 실시예들에서, 데이터 송신 유닛(248)은 그에 대한 명령어들 및/또는 로직, 및 그에 대한 휴리스틱 및 메타데이터를 포함한다.
데이터 획득 유닛(242), 추적 유닛(244)(예를 들어, 눈 추적 유닛(243) 및 손 추적 유닛(244)을 포함함), 조정 유닛(246), 및 데이터 송신 유닛(248)이 단일 디바이스(예를 들어, 제어기(110)) 상에 존재하는 것으로 도시되어 있지만, 다른 실시예들에서, 데이터 획득 유닛(242), 추적 유닛(244)(예를 들어, 눈 추적 유닛(243) 및 손 추적 유닛(244)을 포함함), 조정 유닛(246), 및 데이터 송신 유닛(248)의 임의의 조합이 별개의 컴퓨팅 디바이스들 내에 위치될 수 있다는 것을 이해해야 한다.
게다가, 도 2는 본 명세서에 설명된 실시예들의 구조적 개략도와는 대조적으로 특정 구현예에 존재할 수 있는 다양한 특징부들의 기능 설명으로서 더 의도된다. 당업자들에 의해 인식되는 바와 같이, 별개로 도시된 아이템들은 조합될 수 있고 일부 아이템들은 분리될 수 있다. 예를 들어, 다양한 실시예들에서, 도 2에 별개로 도시된 일부 기능 모듈들은 단일 모듈로 구현될 수 있고, 단일 기능 블록들의 다양한 기능들은 하나 이상의 기능 블록들에 의해 구현될 수 있다. 모듈들의 실제 수량 및 특정 기능들의 분할 그리고 특징부들이 그들 사이에서 어떻게 할당되는지는 구현예들마다 다를 것이고, 일부 실시예들에서, 특정 구현예에 대해 선택된 하드웨어, 소프트웨어, 및/또는 펌웨어의 특정 조합에 부분적으로 의존한다.
도 3은 일부 실시예들에 따른 디스플레이 생성 컴포넌트(120)의 일 예의 블록도이다. 소정의 특정 특징부들이 예시되어 있지만, 당업자들은 본 개시내용으로부터, 간결함을 위해 그리고 본 명세서에 개시되는 실시예들의 더 많은 관련 태양들을 불명료하게 하지 않기 위해 다양한 다른 특징부들이 예시되지 않았음을 인식할 것이다. 이를 위해, 비제한적인 예로서, 일부 실시예들에서, HMD(120)는 하나 이상의 프로세싱 유닛들(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), 하나 이상의 CGR 디스플레이들(312), 하나 이상의 선택적인 내부 및/또는 외부 대면 이미지 센서들(314), 메모리(320), 및 이들 및 다양한 다른 컴포넌트들을 상호연결시키기 위한 하나 이상의 통신 버스들(304)을 포함한다.
일부 실시예들에서, 하나 이상의 통신 버스들(304)은 시스템 컴포넌트들 사이의 통신을 상호연결하고 제어하는 회로부를 포함한다. 일부 실시예들에서, 하나 이상의 I/O 디바이스들 및 센서들(306)은 관성 측정 유닛(inertial measurement unit, IMU), 가속도계, 자이로스코프, 온도계, 하나 이상의 생리학적 센서들(예를 들어, 혈압 모니터, 심박수 모니터, 혈중 산소 센서, 혈당 센서 등), 하나 이상의 마이크로폰들, 하나 이상의 스피커들, 햅틱 엔진, 하나 이상의 심도 센서들(예를 들어, 구조화된 광, 비행 시간 등) 등 중 적어도 하나를 포함한다.
일부 실시예들에서, 하나 이상의 CGR 디스플레이들(312)은 CGR 경험을 사용자에게 제공하도록 구성된다. 일부 실시예들에서, 하나 이상의 CGR 디스플레이들(312)은 홀로그래픽, 디지털 광 프로세싱(digital light processing; DLP), 액정 디스플레이(liquid-crystal display; LCD), 실리콘 액정 표시장치(liquid-crystal on silicon; LCoS), 유기 발광 전계-효과 트랜지터리(organic light-emitting field-effect transitory; OLET), 유기 발광 다이오드(organic light-emitting diode; OLED), 표면-전도 전자-방출기 디스플레이(surface-conduction electron-emitter display; SED), 전계-방출 디스플레이(field-emission display; FED), 양자점 발광 다이오드(quantum-dot light-emitting diode; QD-LED), 마이크로-전자기계 시스템(micro-electro-mechanical system; MEMS), 및/또는 유사한 디스플레이 유형들에 대응한다. 일부 실시예들에서, 하나 이상의 CGR 디스플레이들(312)은 회절, 반사, 편광, 홀로그래픽 등의 도파관 디스플레이들에 대응한다. 예를 들어, HMD(120)는 단일 CGR 디스플레이를 포함한다. 다른 예에서, HMD(120)는 사용자의 각각의 눈에 대한 CGR 디스플레이를 포함한다. 일부 실시예들에서, 하나 이상의 CGR 디스플레이들(312)은 MR 및 VR 콘텐츠를 제시할 수 있다. 일부 실시예들에서, 하나 이상의 CGR 디스플레이들(312)은 MR 또는 VR 콘텐츠를 제시할 수 있다.
일부 실시예들에서, 하나 이상의 이미지 센서들(314)은 사용자의 눈들을 포함하는 사용자의 얼굴의 적어도 일 부분에 대응하는 이미지 데이터를 획득하도록 구성된다(그리고 이들은 눈-추적 카메라로 지칭될 수 있다). 일부 실시예들에서, 하나 이상의 이미지 센서들(314)은 사용자의 손(들) 및 선택적으로 사용자의 팔(들)의 적어도 일 부분에 대응하는 이미지 데이터를 획득하도록 구성된다(그리고 이들은 손-추적 카메라로 지칭될 수 있다). 일부 실시예들에서, 하나 이상의 이미지 센서들(314)은 HMD(120)가 존재하지 않았다면 사용자에 의해 보여질 장면에 대응하는 이미지 데이터를 획득하기 위해 전방-대면하도록 구성된다(그리고 장면 카메라로 지칭될 수 있음). 하나 이상의 선택적인 이미지 센서들(314)은 하나 이상의 RGB 카메라들(예를 들어, 상보성 금속-산화물-반도체(complimentary metal-oxide-semiconductor; CMOS)이미지 센서 또는 전하 결합 디바이스(charge-coupled device; CCD)이미지 센서를 가짐), 하나 이상의 적외선(IR) 카메라들, 하나 이상의 이벤트-기반 카메라들 등을 포함할 수 있다.
메모리(320)는 DRAM, SRAM, DDR RAM, 또는 다른 랜덤-액세스 솔리드-스테이트 메모리 디바이스들과 같은 고속 랜덤-액세스 메모리를 포함한다. 일부 실시예들에서, 메모리(320)는 하나 이상의 자기 디스크 저장 디바이스들, 광 디스크 저장 디바이스들, 플래시 메모리 디바이스들, 또는 다른 비휘발성 솔리드-스테이트 저장 디바이스들과 같은 비휘발성 메모리를 포함한다. 메모리(320)는 선택적으로, 하나 이상의 프로세싱 유닛들(302)로부터 원격으로 위치된 하나 이상의 저장 디바이스들을 포함한다. 메모리(320)는 비일시적 컴퓨터 판독가능 저장 매체를 포함한다. 일부 실시예들에서, 메모리(320) 또는 메모리(320)의 비일시적 컴퓨터 판독가능 저장 매체는 다음의 프로그램들, 모듈들 및 데이터 구조들, 또는 선택적인 운영 체제(330) 및 CGR 제시 모듈(340)을 포함하는 그들의 서브세트를 저장한다.
운영 체제(330)는 다양한 기본 시스템 서비스들을 처리하고 하드웨어 의존 태스크들을 수행하기 위한 명령어들을 포함한다. 일부 실시예들에서, CGR 제시 모듈(340)은 하나 이상의 CGR 디스플레이들(312)을 통해 CGR 콘텐츠를 사용자에게 제시하도록 구성된다. 이를 위해, 다양한 실시예들에서, CGR 제시 모듈(340)은 데이터 획득 유닛(342), CGR 제시 유닛(344), CGR 맵 생성 유닛(346), 및 데이터 송신 유닛(348)을 포함한다.
일부 실시예들에서, 데이터 획득 유닛(342)은 적어도 도 1의 제어기(110)로부터 데이터(예컨대, 제시 데이터, 상호작용 데이터, 센서 데이터, 위치 데이터 등)를 획득하도록 구성된다. 이를 위해, 다양한 실시예들에서, 데이터 획득 유닛(342)은 그에 대한 명령어들 및/또는 로직, 및 그에 대한 휴리스틱 및 메타데이터를 포함한다.
일부 실시예들에서, CGR 제시 유닛(344)은 하나 이상의 CGR 디스플레이들(312)을 통해 CGR 콘텐츠를 제시하도록 구성된다. 이를 위해, 다양한 실시예들에서, CGR 제시 유닛(344)은 그에 대한 명령어들 및/또는 로직, 및 그에 대한 휴리스틱 및 메타데이터를 포함한다.
일부 실시예들에서, CGR 맵 생성 유닛(346)은 미디어 콘텐츠 데이터에 기초하여 CGR 맵(예를 들어, 컴퓨터 생성 현실을 생성하기 위해 컴퓨터 생성 객체들이 배치될 수 있는 혼합 현실 장면의 3D 맵 또는 물리적 환경의 맵)을 생성하도록 구성된다. 이를 위해, 다양한 실시예들에서, CGR 맵 생성 유닛(346)은 그에 대한 명령어들 및/또는 로직, 및 그에 대한 휴리스틱 및 메타데이터를 포함한다.
일부 실시예들에서, 데이터 송신 유닛(348)은 적어도 제어기(110) 및 선택적으로, 입력 디바이스들(125), 출력 디바이스들(155), 센서들(190), 및/또는 주변 디바이스들(195) 중 하나 이상에 데이터(예를 들어, 제시 데이터, 위치 데이터 등)를 송신하도록 구성된다. 이를 위해, 다양한 실시예들에서, 데이터 송신 유닛(348)은 그에 대한 명령어들 및/또는 로직, 및 그에 대한 휴리스틱 및 메타데이터를 포함한다.
데이터 획득 유닛(342), CGR 제시 유닛(344), CGR 맵 생성 유닛(346), 및 데이터 송신 유닛(348)이 단일 디바이스(예컨대, 도 1의 디스플레이 생성 컴포넌트(120)) 상에 존재하는 것으로 도시되어 있지만, 다른 실시예들에서, 데이터 획득 유닛(342), CGR 제시 유닛(344), CGR 맵 생성 유닛(346), 및 데이터 송신 유닛(348)의 임의의 조합이 별개의 컴퓨팅 디바이스들 내에 위치될 수 있다는 것을 이해해야 한다.
게다가, 도 3은 본 명세서에 설명된 실시예들의 구조적 개략도와는 대조적으로 특정 구현예에 존재할 수 있는 다양한 특징부들의 기능 설명으로서 더 의도된다. 당업자들에 의해 인식되는 바와 같이, 별개로 도시된 아이템들은 조합될 수 있고 일부 아이템들은 분리될 수 있다. 예를 들어, 다양한 실시예들에서, 도 3에 별개로 도시된 일부 기능 모듈들은 단일 모듈로 구현될 수 있고, 단일 기능 블록들의 다양한 기능들은 하나 이상의 기능 블록들에 의해 구현될 수 있다. 모듈들의 실제 수량 및 특정 기능들의 분할 그리고 특징부들이 그들 사이에서 어떻게 할당되는지는 구현예들마다 다를 것이고, 일부 실시예들에서, 특정 구현예에 대해 선택된 하드웨어, 소프트웨어, 및/또는 펌웨어의 특정 조합에 부분적으로 의존한다.
도 4는 손 추적 디바이스(140)의 예시적인 실시예의 개략적인 그림 예시이다. 일부 실시예들에서, 손 추적 디바이스(140)(도 1)는 사용자의 손들의 하나 이상의 부분들의 포지션/위치 및/또는 도 1의 장면(105)에 대해(예를 들어, 사용자를 둘러싸는 물리적 환경의 일부에 대해, 디스플레이 생성 컴포넌트(120)에 대해, 또는 사용자의 일 부분(예를 들어, 사용자의 얼굴, 눈들, 또는 손)에 대해, 및/또는 사용자의 손에 대해 정의된 좌표계에 대해) 사용자의 손들의 하나 이상의 부분들의 모션들을 추적하기 위해 손 추적 유닛(243)(도 2)에 의해 제어된다. 일부 실시예들에서, 손 추적 디바이스(140)는 디스플레이 생성 컴포넌트(120)(예를 들어, 머리 장착형 디바이스에 내장되거나 그에 부착됨)의 부분이다. 일부 실시예들에서, 손 추적 디바이스(140)는 디스플레이 생성 컴포넌트(120)와 별개이다(예를 들어, 별개의 하우징들에 위치되거나 또는 별개의 물리적 지지 구조들에 부착됨).
일부 실시예들에서, 손 추적 디바이스(140)는 적어도 인간 사용자의 손(406)을 포함하는 3차원 장면 정보를 캡처하는 이미지 센서들(404)(예를 들어, 하나 이상의 IR 카메라들, 3D 카메라들, 깊이 카메라들 및/또는 컬러 카메라들 등)을 포함한다. 이미지 센서들(404)은 손가락들 및 이들 개개의 위치들이 구별될 수 있게 하기에 충분한 해상도로 손 이미지들을 캡처한다. 이미지 센서들(404)은 통상적으로, 또한 사용자의 신체의 다른 부분들, 또는 가능하게는 신체 전부의 이미지들을 캡처하고, 원하는 해상도로 손의 이미지들을 캡처하기 위한 향상된 배율을 갖는 전용 센서 또는 줌 능력들을 가질 수 있다. 일부 실시예들에서, 이미지 센서들(404)은 또한 손(406) 및 장면의 다른 요소들의 2D 컬러 비디오 이미지들을 캡처한다. 일부 실시예들에서, 이미지 센서들(404)은 장면(105)의 물리적 환경을 캡처하거나 또는 장면(105)의 물리적 환경들을 캡처하는 이미지 센서들의 역할을 하기 위해 다른 이미지 센서들과 함께 사용된다. 일부 실시예들에서, 이미지 센서들(404)은, 이미지 센서들에 의해 캡처된 손 이동이 제어기(110)로의 입력들로서 취급되는 상호작용 공간을 정의하기 위해 이미지 센서들의 시야 또는 그의 일부가 사용되는 방식으로 사용자 또는 사용자의 환경에 대해 위치설정된다.
일부 실시예들에서, 이미지 센서들(404)은 3D 맵 데이터(및 가능하게는 또한 컬러 이미지 데이터)를 포함하는 프레임들의 시퀀스를, 맵 데이터로부터 고레벨 정보를 추출하는 제어기(110)에 출력한다. 이러한 고레벨 정보는 통상적으로, 애플리케이션 프로그램 인터페이스(Application Program Interface; API)를 통해 제어기 상에서 실행되는 애플리케이션에 제공되며, 제어기는 그에 따라 디스플레이 생성 컴포넌트(120)를 구동한다. 예를 들어, 사용자는 자신의 손(408)을 이동시키고 자신의 손 포즈를 변경함으로써 제어기(110) 상에서 실행되는 소프트웨어와 상호작용할 수 있다.
일부 실시예들에서, 이미지 센서들(404)은 손(406)을 포함하는 장면 상에 스팟들의 패턴을 투영하고 투영된 패턴의 이미지를 캡처한다. 일부 실시예들에서, 제어기(110)는 패턴 내의 스팟들의 횡방향 시프트들에 기초하여, 삼각측량에 의해 장면 내의 포인트들(사용자의 손의 표면 상의 포인트들을 포함함)의 3D 좌표들을 컴퓨팅한다. 이러한 접근법은 그것이 사용자가 임의의 종류의 비콘(beacon), 센서 또는 다른 마커를 유지하거나 착용할 것을 요구하지 않는다는 점에서 유리하다. 이는 이미지 센서들(404)로부터 특정 거리에서 미리 결정된 기준 평면에 대한 장면 내의 포인트들의 깊이 좌표들을 제공한다. 본 개시내용에서, 이미지 센서들(404)은, 장면 내의 포인트들의 깊이 좌표들이 이미지 센서들에 의해 측정된 z 성분들에 대응하도록 x, y, z 축들의 직교 세트를 정의하는 것으로 가정된다. 대안적으로, 손 추적 디바이스(440)는 단일 또는 다수의 카메라들 또는 다른 유형들의 센서들에 기초하여, 입체 이미징 또는 비행 시간 측정들과 같은 다른 3D 맵핑 방법들을 사용할 수 있다.
일부 실시예들에서, 손 추적 디바이스(140)는 사용자의 손(예를 들어, 전체 손 또는 하나 이상의 손가락들)을 이동시키는 동안 사용자의 손을 포함하는 깊이 맵들의 시간적 시퀀스를 캡처 및 프로세싱한다. 이미지 센서들(404) 및/또는 제어기(110) 내의 프로세서 상에서 실행되는 소프트웨어는 이러한 깊이 맵들에서 손의 패치 디스크립터(patch descriptor)들을 추출하기 위해 3D 맵 데이터를 프로세싱한다. 소프트웨어는, 각각의 프레임에서 손의 포즈를 추정하기 위해, 이전 학습 프로세스에 기초하여, 데이터베이스(408)에 저장된 패치 디스크립터들에 이들 디스크립터들을 매칭한다. 포즈는 전형적으로 사용자의 손 관절들 및 손가락 팁들의 3D 위치들을 포함한다.
소프트웨어는 또한 제스처들을 식별하기 위해 시퀀스에서 다수의 프레임들에 걸친 손들 및/또는 손가락들의 궤적을 분석할 수 있다. 본 명세서에 설명된 포즈 추정 기능들은 모션 추적 기능들과 인터리빙될 수 있어서, 패치-기반 포즈 추정은 2개(또는 그 초과)의 프레임들마다 단 한번만 수행되는 한편, 나머지 프레임들에 걸쳐 발생하는 포즈의 변화들을 발견하기 위해 추적이 사용된다. 포즈, 모션 및 제스처 정보는 위에서 언급된 API를 통해 제어기(110) 상에서 실행되는 애플리케이션 프로그램에 제공된다. 이 프로그램은, 예를 들어, 포즈 및/또는 제스처 정보에 응답하여, 디스플레이 생성 컴포넌트(120) 상에 제시된 이미지들을 이동 및 수정하거나, 또는 다른 기능들을 수행할 수 있다.
일부 실시예들에서, 소프트웨어는, 예를 들어 네트워크를 통해 전자적 형태로 제어기(110)에 다운로드될 수 있거나, 또는 그것은 대안적으로는 광학, 자기, 또는 전자 메모리 매체들과 같은 유형적인 비일시적 매체들 상에 제공될 수 있다. 일부 실시예들에서, 데이터베이스(408)는 마찬가지로 제어기(110)와 연관된 메모리에 저장된다. 대안적으로 또는 추가적으로, 컴퓨터의 설명된 기능들 중 일부 또는 전부는 주문형 또는 반-주문형 집적회로 또는 프로그래밍가능 디지털 신호 프로세서(DSP)와 같은 전용 하드웨어로 구현될 수 있다. 제어기(110)가 예시적으로 이미지 센서들(440)과 별개의 유닛으로서 도 4에 도시되지만, 제어기의 프로세싱 기능들의 일부 또는 전부는 적합한 마이크로프로세서 및 소프트웨어에 의해, 또는 손 추적 디바이스(402)의 하우징 내의 또는 달리 이미지 센서들(404)과 관련된 전용 회로에 의해 수행될 수 있다. 일부 실시예들에서, 이들 프로세싱 기능들의 적어도 일부가 (예를 들어, 텔레비전 세트, 핸드헬드 디바이스, 또는 머리 장착형 디바이스 내의) 디스플레이 생성 컴포넌트(120) 또는 게임 콘솔 또는 미디어 플레이어와 같은, 임의의 다른 적합한 컴퓨터화된 디바이스와 통합된 적합한 프로세서에 의해 수행될 수 있다. 이미지 센서들(404)의 감지 기능들은 센서 출력에 의해 제어될 컴퓨터 또는 다른 컴퓨터화된 장치 내에 마찬가지로 통합될 수 있다.
도 4는 일부 실시예들에 따른, 이미지 센서들(404)에 의해 캡처된 깊이 맵(410)의 개략적인 표현을 더 포함한다. 위에서 설명된 바와 같이, 깊이 맵은 개개의 깊이 값들을 갖는 픽셀들의 행렬을 포함한다. 손(406)에 대응하는 픽셀들(412)은 이 맵에서 배경 및 손목으로부터 분할되었다. 깊이 맵(410) 내의 각각의 픽셀의 밝기는 그의 깊이 값, 즉, 이미지 센서들(404)로부터 측정된 z 거리에 역으로 대응하며, 회색 음영은 깊이가 증가함에 따라 더 어두워진다. 제어기(110)는 인간 손의 특성들을 갖는 이미지의 컴포넌트(즉, 이웃 픽셀들의 그룹)를 식별 및 분할하기 위해 이러한 깊이 값들을 프로세싱한다. 이러한 특성들은, 예를 들어, 깊이 맵들의 시퀀스의 프레임마다 전체 크기, 형상 및 모션을 포함할 수 있다.
도 4는 또한, 일부 실시예들에 따른, 제어기(110)가 궁극적으로 손(406)의 깊이 맵(410)으로부터 추출하는 손 골격(414)을 개략적으로 예시한다. 도 4에서, 골격(414)은 오리지널 깊이 맵으로부터 분할된 손 배경(416) 상에 중첩된다. 일부 실시예들에서, 손(예를 들어, 손가락 관절(knuckle)들, 손가락 팁들, 손바닥의 중심, 손목에 연결되는 손의 단부 등에 대응하는 포인트들) 및 선택적으로, 손에 연결된 손목 또는 팔 상의 핵심 특징 포인트들이 손 골격(414) 상에 식별 및 위치된다. 일부 실시예들에서, 다수의 이미지 프레임들에 걸친 이러한 핵심 특징 포인트들의 위치 및 이동들은, 일부 실시예들에 따라, 손에 의해 수행되는 손 제스처들 또는 손의 현재 상태를 결정하기 위해 제어기(110)에 의해 사용된다.
도 5는 눈 추적 디바이스(130)(도 1)의 예시적인 실시예를 예시한다. 일부 실시예들에서, 눈 추적 디바이스(130)는 장면(105)에 대한 또는 디스플레이 생성 컴포넌트(120)를 통해 디스플레이된 CGR 콘텐츠에 대한 사용자의 시선의 위치 및 이동을 추적하기 위해 눈 추적 유닛(245)(도 2)에 의해 제어된다. 일부 실시예들에서, 눈 추적 디바이스(130)는 디스플레이 생성 컴포넌트(120)와 통합된다. 예를 들어, 일부 실시예들에서, 디스플레이 생성 컴포넌트(120)가 머리 장착형 디바이스, 예를 들어, 헤드셋, 헬멧, 고글, 또는 안경, 또는 웨어러블 프레임에 배치된 핸드헬드 디바이스일 때, 머리 장착형 디바이스는 사용자가 보기 위한 CGR 콘텐츠를 생성하는 컴포넌트 및 CGR 콘텐츠에 대한 사용자의 시선을 추적하기 위한 컴포넌트 둘 모두를 포함한다. 일부 실시예들에서, 눈 추적 디바이스(130)는 디스플레이 생성 컴포넌트(120)와 별개이다. 예를 들어, 디스플레이 생성 컴포넌트가 핸드헬드 디바이스 또는 CGR 챔버일 때, 눈 추적 디바이스(130)는 선택적으로 핸드헬드 디바이스 또는 CGR 챔버와 별개의 디바이스이다. 일부 실시예들에서, 눈 추적 디바이스(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)는 결정된 방향으로 포커싱하도록 CGR 경험의 물리적 환경들을 캡처하기 위한 외부 카메라들에 지시할 수 있다. 이어서, 외부 카메라들의 오토 포커스 메커니즘은 사용자가 현재 디스플레이(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에 예시된 바와 같은 시선 추적 시스템의 실시예들은, 예를 들어, 컴퓨터 생성 현실, 가상 현실, 증강 현실 및/또는 증강 가상 경험들을 사용자에게 제공하기 위해 컴퓨터 생성 현실, 가상 현실 및/또는 혼합 현실 애플리케이션들에서 사용될 수 있다.
도 6은 일부 실시예들에 따른 글린트-보조 시선 추적 파이프라인을 예시한다. 일부 실시예들에서, 시선 추적 파이프라인은 글린트-보조 시선 추적 시스템(예를 들어, 도 1 및 도 5에 예시된 바와 같은 눈 추적 디바이스(130))에 의해 구현된다. 글린트-보조 시선 추적 시스템은 추적 상태를 유지할 수 있다. 초기에, 추적 상태는 오프 또는 "아니오"이다. 추적 상태에 있을 때, 글린트-보조 시선 추적 시스템은 현재 프레임에서 동공 윤곽 및 글린트들을 추적하기 위해 현재 프레임을 분석할 때 이전 프레임으로부터의 이전 정보를 사용한다. 추적 상태에 있지 않을 때, 글린트-보조 시선 추적 시스템은 현재 프레임에서 동공 및 글린트를 검출하려고 시도하고, 성공적인 경우, 추적 상태를 "예"로 초기화하고, 추적 상태에서 다음 프레임으로 계속된다.
도 6에 도시된 바와 같이, 시선 추적 카메라들은 사용자의 좌측 및 우측 눈들의 좌측 및 우측 이미지들을 캡처할 수 있다. 이어서, 캡처된 이미지들은 610에서 시작하는 프로세싱을 위해 시선 추적 파이프라인에 입력된다. 요소(600)로 돌아가는 화살표에 의해 표시된 바와 같이, 시선 추적 시스템은, 예를 들어 초당 60 내지 120 프레임의 레이트로 사용자의 눈들의 이미지들을 캡처하는 것을 계속할 수 있다. 일부 실시예들에서, 캡처된 이미지들의 각각의 세트는 프로세싱을 위해 파이프라인에 입력될 수 있다. 그러나, 일부 실시예들에서 또는 일부 조건들 하에서, 캡처된 모든 프레임들이 파이프라인에 의해 프로세싱되는 것은 아니다.
610에서, 현재 캡처된 이미지들에 대해, 추적 상태가 예인 경우, 방법은 요소(640)로 진행한다. 610에서, 추적 상태가 아니오인 경우, 620에서 표시된 바와 같이, 이미지들에서 사용자의 동공들 및 글린트들을 검출하기 위해 이미지들이 분석된다. 630에서, 동공들 및 글린트들이 성공적으로 검출되는 경우, 방법은 요소(640)로 진행한다. 그렇지 않으면, 방법은 사용자의 눈들의 다음 이미지들을 프로세싱하기 위해 요소(610)로 복귀한다.
640에서, 요소(410)로부터 진행하는 경우, 이전 프레임들로부터의 이전 정보에 부분적으로 기초하여 동공들 및 글린트들을 추적하기 위해 현재 프레임들이 분석된다. 640에서, 요소(630)로부터 진행하는 경우, 추적 상태는 현재 프레임들에서 검출된 동공들 및 글린트들에 기초하여 초기화된다. 요소(640)에서 프로세싱의 결과들은 추적 또는 검출의 결과들이 신뢰할 수 있음을 검증하기 위해 체크된다. 예를 들어, 동공 및 시선 추정을 수행하기에 충분한 수의 글린트들이 현재 프레임들에서 성공적으로 추적되거나 검출되는지를 결정하기 위해 결과들이 체크될 수 있다. 650에서, 결과들이 신뢰될 수 없다면, 추적 상태는 아니오로 설정되고, 방법은 사용자의 눈들의 다음 이미지들을 프로세싱하기 위해 요소(610)로 리턴한다. 650에서, 결과들이 신뢰되는 경우, 방법은 요소(670)로 진행한다. 670에서, 추적 상태는 (이미 예가 아닌 경우) 예로 설정되고, 동공 및 글린트 정보는 사용자의 시선 포인트를 추정하기 위해 요소(680)에 전달된다.
도 6은 특정 구현에서 사용될 수 있는 눈 추적 기술의 일 예로서의 역할을 하도록 의도된다. 당업자들에 의해 인식되는 바와 같이, 현재 존재하거나 미래에 개발될 다른 눈 추적 기술들은, 다양한 실시예들에 따라, 사용자들에게 CGR 경험들을 제공하기 위해 컴퓨터 시스템(101)에서 본 명세서에 설명된 글린트-보조 눈 추적 기술 대신에 또는 그와 조합하여 사용될 수 있다.
따라서, 본 명세서의 설명은 실세계 객체들의 표현들 및 가상 객체들의 표현들을 포함하는 3차원 환경들 (예를 들어, CGR 환경들)의 일부 실시예들을 설명한다. 예를 들어, 3차원 환경은 선택적으로, 3차원 환경에서 (예를 들어, 전자 디바이스의 카메라들 및 디스플레이들을 통해 능동적으로, 또는 전자 디바이스의 투명 또는 반투명 디스플레이를 통해 수동적으로) 캡처되고 디스플레이되는, 물리적 환경에 존재하는 테이블의 표현을 포함한다. 전술된 바와 같이, 3차원 환경은 선택적으로, 3차원 환경이 디바이스의 하나 이상의 센서들에 의해 캡처되고 디스플레이 생성 컴포넌트를 통해 디스플레이되는 물리적 환경에 기초하는 혼합 현실 시스템이다. 혼합 현실 시스템으로서, 디바이스는 선택적으로, 물리적 환경의 개개의 부분들 및/또는 객체들이 전자 디바이스에 의해 디스플레이된 3차원 환경에 존재하는 것처럼 나타나도록 물리적 환경의 부분들 및/또는 객체들을 선택적으로 디스플레이할 수 있다. 유사하게, 디바이스는 선택적으로, 가상 객체들을 실세계(예를 들어, 물리적 환경)에 대응하는 위치들을 갖는 3차원 환경 내의 개개의 위치들에 가상 객체들을 배치함으로써 가상 객체들이 실세계에 존재하는 것처럼 나타나도록 가상 객체들을 3차원 환경에 디스플레이할 수 있다. 예를 들어, 디바이스는 선택적으로, 물리적 환경에서 테이블의 최상부 상에 실제 꽃병이 배치되는 것처럼 나타나도록 꽃병을 디스플레이한다. 일부 실시예들에서, 3차원 환경 내의 각각의 위치는 물리적 환경 내의 대응하는 위치를 갖는다. 따라서, 디바이스가 물리적 객체에 대한 (예를 들어, 사용자의 손의 또는 근처의, 또는 물리적 테이블의 또는 근처의 위치와 같은) 개개의 위치에 가상 객체를 디스플레이하는 것으로 설명될 때, 디바이스는 가상 객체가 물리적 세계의 물리적 객체에 또는 근처에 있는 것처럼 나타나도록 3차원 환경의 특정 위치에 있는 가상 객체를 디스플레이한다(예를 들어, 가상 객체는, 가상 객체가 그 특정 위치의 실제 객체인 경우 가상 객체가 디스플레이될 물리적 환경 내의 위치에 대응하는 3차원 환경 내의 위치에 디스플레이된다).
일부 실시예들에서, 3차원 환경에서 디스플레이되는 물리적 환경에 존재하는 실제 세계 객체들은 3차원 환경에서만 존재하는 가상 객체들과 상호작용할 수 있다. 예를 들어, 3차원 환경은 테이블 및 테이블의 최상부에 배치된 꽃병을 포함할 수 있으며, 테이블은 물리적 환경 내의 물리적 테이블의 뷰(또는 표현)이고, 꽃병은 가상 객체이다.
유사하게, 사용자는 선택적으로, 가상 객체들이 물리적 환경의 실제 객체들인 것처럼 하나 이상의 손들을 사용하여 3차원 환경에서 가상 객체들과 상호작용할 수 있다. 예를 들어, 전술된 바와 같이, 디바이스의 하나 이상의 센서들은 선택적으로, 사용자의 손들 중 하나 이상을 캡처하고, 3차원 환경에서 사용자의 손들의 표현들을 (예를 들어, 전술된 3차원 환경에 실세계 객체를 디스플레이하는 것과 유사한 방식으로) 디스플레이하거나, 또는 일부 실시예들에서, 사용자의 손들은, 사용자 인터페이스를 디스플레이하고 있는 디스플레이 생성 컴포넌트의 일부의 투명/반투명 또는 투명/반투명 표면 상으로의 사용자 인터페이스의 투사 또는 사용자의 눈 상으로의 또는 사용자의 눈의 시야 내로의 사용자 인터페이스의 투사로 인해 사용자 인터페이스를 통해 물리적 환경을 보는 능력을 통한 디스플레이 생성 컴포넌트를 통해 가시적이다. 따라서, 일부 실시예들에서, 사용자의 손들은 3차원 환경 내의 개개의 위치에 디스플레이되고, 이들이 물리적 환경 내의 실제 물리적 객체들인 것처럼 3차원 환경 내의 가상 객체들과 상호작용할 수 있는 3차원 환경 내의 객체들인 것처럼 취급된다. 일부 실시예들에서, 사용자는 3차원 환경에서 손들의 표현들로 하여금 사용자의 손의 이동과 함께 이동하게 하기 위해 자신의 손들을 움직일 수 있다.
아래에서 설명되는 실시예들 중 일부에서, 디바이스는 선택적으로, 예를 들어, 물리적 객체가 가상 객체와 상호작용하고 있는지(예를 들어, 손이 가상 객체를 터치하는 것, 잡는 것, 홀딩하는 것 등 또는 가상 객체로부터 임계 거리 내에 있는 것) 여부를 결정하기 위한 목적으로, 물리적 세계 내의 물리적 객체들과 3차원 환경 내의 가상 객체들 사이의 "유효" 거리를 결정할 수 있다. 예를 들어, 디바이스는, 사용자가 가상 객체들과 상호작용하는지 여부 및/또는 사용자가 가상 객체들과 어떻게 상호작용하고 있는지를 결정할 때, 사용자의 손들과 가상 객체들 사이의 거리를 결정한다. 일부 실시예들에서, 디바이스는 3차원 환경에서의 손들의 위치와 3차원 환경에서의 관심있는 가상 객체의 위치 사이의 거리를 결정함으로써 사용자의 손들과 가상 객체 사이의 거리를 결정한다. 예를 들어, 사용자의 하나 이상의 손들은 물리적 세계의 특정 위치에 위치되고, 디바이스는 선택적으로 이를 캡처하여 3차원 환경 내의 특정 대응 위치(예를 들어, 손들이 물리적 손들보다는 가상인 경우 손들이 디스플레이될 3차원 환경 내의 위치)에 디스플레이한다. 3차원 환경에서의 손들의 위치는 선택적으로, 사용자의 하나 이상의 손들과 가상 객체 사이의 거리를 결정하기 위해 3차원 환경에서의 관심있는 가상 객체의 위치와 비교된다. 일부 실시예들에서, 디바이스는 선택적으로, (예를 들어, 3차원 환경에서의 위치들을 비교하는 것과 대조적으로) 물리적 세계에서의 위치들을 비교함으로써 물리적 객체와 가상 객체 사이의 거리를 결정한다. 예를 들어, 사용자의 하나 이상의 손들과 가상 객체 사이의 거리를 결정할 때, 디바이스는 선택적으로 가상 객체의 물리적 세계 내의 대응하는 위치(예를 들어, 가상 객체가 가상 객체보다는 물리적 객체인 경우 가상 객체가 물리적 세계에 위치될 위치)를 결정하고, 이어서 대응하는 물리적 위치와 사용자의 하나 이상의 손들 사이의 거리를 결정한다. 일부 실시예들에서, 임의의 물리적 객체와 임의의 가상 객체 사이의 거리를 결정하기 위해 동일한 기술들이 선택적으로 사용된다. 따라서, 본 명세서에 설명된 바와 같이, 물리적 객체가 가상 객체와 접촉하는지 여부 또는 물리적 객체가 가상 객체의 임계 거리 내에 있는지 여부를 결정할 때, 디바이스는 선택적으로, 물리적 객체의 위치를 3차원 환경에 맵핑하고/하거나 가상 객체의 위치를 물리적 세계에 맵핑하기 위해 전술된 기술들 중 임의의 기술을 수행한다.
일부 실시예들에서, 사용자의 시선이 어디로 그리고 무엇으로 지향되는지 및/또는 사용자에 의해 홀딩된 물리적 스타일러스가 어디로 그리고 무엇을 가리키는지를 결정하기 위해 동일한 또는 유사한 기술이 사용된다. 예를 들어, 사용자의 시선이 물리적 환경 내의 특정 위치로 지향되면, 디바이스는 선택적으로 3차원 환경 내의 대응하는 위치를 결정하고, 가상 객체가 그 대응하는 가상 위치에 위치되면, 디바이스는 선택적으로 사용자의 시선이 그 가상 객체로 지향된다고 결정한다. 유사하게, 디바이스는 선택적으로, 물리적 스타일러스의 배향에 기초하여, 스타일러스가 물리적 세계에서 가리키는 곳을 결정할 수 있다. 일부 실시예들에서, 이러한 결정에 기초하여, 디바이스는 스타일러스가 가리키고 있는 물리적 세계 내의 위치에 대응하는 3차원 환경 내의 대응하는 가상 위치를 결정하고, 선택적으로 스타일러스가 3차원 환경에서의 대응하는 가상 위치를 가리키고 있다고 결정한다.
유사하게, 본 명세서에서 설명된 실시예들은 3차원 환경에서의 사용자(예를 들어, 디바이스의 사용자)의 위치 및/또는 디바이스의 위치를 지칭할 수 있다. 일부 실시예들에서, 디바이스의 사용자는 전자 디바이스를 홀딩하거나, 착용하거나, 또는 그렇지 않으면 그에 또는 근처에 위치된다. 따라서, 일부 실시예들에서, 디바이스의 위치는 사용자의 위치에 대한 프록시로서 사용된다. 일부 실시예들에서, 물리적 환경 내의 디바이스 및/또는 사용자의 위치는 3차원 환경 내의 개개의 위치에 대응한다. 일부 실시예들에서, 개개의 위치는 3차원 환경의 "카메라" 또는 "뷰"가 그로부터 연장되는 위치이다. 예를 들어, 디바이스의 위치는 물리적 환경 내의 위치(및 3차원 환경에서의 그의 대응하는 위치)일 것이며, 그로부터, 사용자가 디스플레이 생성 컴포넌트에 의해 디스플레이된 물리적 환경의 개개의 부분을 향하는 그 위치에 서 있는 경우, 사용자는 물리적 환경 내의 객체들이 디바이스의 디스플레이 생성 컴포넌트에 의해 디스플레이되는 것과 (예를 들어, 절대적 관점에서 및/또는 서로에 대해) 동일한 위치, 배향 및/또는 크기로 이들을 볼 것이다. 유사하게, 3차원 환경에 디스플레이된 가상 객체들이 물리적 환경 내의 물리적 객체들인 경우(예를 들어, 이들이 3차원 환경에 있는 것과 동일한 물리적 환경 내의 위치에 배치되고, 3차원 환경에서와 동일한 물리적 환경 내의 크기 및 배향을 갖는 경우), 디바이스 및/또는 사용자의 위치는, 이들이 디바이스의 디스플레이 생성 컴포넌트에 의해 디스플레이되는 것과 (예를 들어, 절대적 관점에서 및/또는 실세계 객체들 및 서로에 대해) 동일한 위치, 배향 및/또는 크기로 사용자가 물리적 환경에서 가상 객체들을 볼 위치이다.
본 개시내용에서, 컴퓨터 시스템과의 상호작용들과 관련하여 다양한 입력 방법들이 설명된다. 하나의 입력 디바이스 또는 입력 방법을 사용하여 일 예가 제공되고 다른 입력 디바이스 또는 입력 방법을 사용하여 다른 예가 제공되는 경우, 각각의 예는 다른 예와 관련하여 설명된 입력 디바이스 또는 입력 방법과 호환가능할 수 있고 선택적으로 이를 활용한다는 것을 이해해야 한다. 유사하게, 컴퓨터 시스템과의 상호작용들과 관련하여 다양한 출력 방법들이 설명된다. 하나의 출력 디바이스 또는 출력 방법을 사용하여 일 예가 제공되고 다른 출력 디바이스 또는 출력 방법을 사용하여 다른 예가 제공되는 경우, 각각의 예는 다른 예와 관련하여 설명된 출력 디바이스 또는 출력 방법과 호환가능할 수 있고 선택적으로 이를 활용한다는 것을 이해해야 한다. 유사하게, 컴퓨터 시스템을 통한 가상 환경 또는 혼합 현실 환경과의 상호작용들과 관련하여 다양한 방법들이 설명된다. 가상 환경과의 상호작용들을 사용하여 일 예가 제공되고 혼합 현실 환경을 사용하여 다른 예가 제공되는 경우, 각각의 예는 다른 예와 관련하여 설명된 방법들과 호환가능할 수 있고 선택적으로 이를 활용한다는 것을 이해해야 한다. 따라서, 본 개시내용은, 각각의 예시적인 실시예의 설명에서 실시예의 모든 특징들을 철저히 열거하지 않으면서 다수의 예들의 특징들의 조합들인 실시예들을 개시한다.
게다가, 하나 이상의 단계들이 하나 이상의 조건들이 충족되었음을 조건으로 하는 본 명세서에서 설명되는 방법들에서, 설명된 방법은 다수의 반복들로 반복될 수 있어서, 반복들 동안, 방법의 단계들이 조건으로 하는 조건들 모두가 방법의 상이한 반복들로 충족되게 할 수 있다는 것이 이해되어야 한다. 예를 들어, 방법이, 조건이 만족되면 제1 단계를 그리고 조건이 만족되지 않으면 제2 단계를 수행할 것을 요구하는 경우, 당업자는, 조건이 만족되고 만족되지 않을 때까지, 청구된 단계들이 특정 순서 없이 반복된다는 것을 인식할 것이다. 따라서, 하나 이상의 조건들이 충족되었음을 조건으로 하는 하나 이상의 단계들로 설명되는 방법은, 방법에서 설명되는 조건들 각각이 충족될 때까지 반복되는 방법으로서 재작성될 수 있다. 그러나, 이는, 시스템 또는 컴퓨터 판독가능 매체가 대응하는 하나 이상의 조건들의 만족에 기초하여 조건부(contingent) 동작들을 수행하기 위한 명령어들을 포함하고, 그에 따라, 방법의 단계들이 조건으로 하는 조건들 모두가 충족될 때까지 방법의 단계들을 명시적으로 반복하지 않고서 우연성(contingency)이 만족되었는지 또는 만족되지 않았는지를 결정할 수 있는 시스템 또는 컴퓨터 판독가능 매체 청구항들에서는 요구되지 않는다. 당업자는, 또한, 조건부 단계들을 갖는 방법과 유사하게, 시스템 또는 컴퓨터 판독가능 저장 매체가 조건부 단계들 모두가 수행되었음을 보장하는 데 필요한 횟수만큼 방법의 단계들을 반복할 수 있다는 것을 이해할 것이다.
사용자 인터페이스들 및 연관된 프로세스들
이제, 디스플레이 생성 컴포넌트, 하나 이상의 입력 디바이스들 및 (선택적으로) 하나 이상의 카메라들을 갖는 컴퓨터 시스템, 예를 들어 휴대용 다기능 디바이스 또는 머리 장착형 디바이스 상에서 구현될 수 있는 사용자 인터페이스("UI") 및 연관된 프로세스들의 실시예들에 대해 주목한다.
도 7a 내지 도 7c는 일부 실시예들에 따른, 전자 디바이스가 3차원 환경에서의 사용자의 시점에 기초하여 3차원 환경에서 가상 객체의 배향을 자동으로 업데이트하는 방법의 예들을 예시한다.
도 7a는 디스플레이 생성 컴포넌트(120)를 통해 사용자 인터페이스 상에 3차원 환경(704)을 디스플레이하는 전자 디바이스(101)를 예시한다. 도 1 내지 도 6을 참조하여 위에서 설명된 바와 같이, 전자 디바이스(101)는, 선택적으로, 디스플레이 생성 컴포넌트(120)(예컨대, 터치 스크린) 및 복수의 이미지 센서들(314)을 포함한다. 이미지 센서들은, 선택적으로, 가시광 카메라, 적외선 카메라, 깊이 센서, 또는 사용자가 전자 디바이스(101)와 상호작용하는 동안 전자 디바이스(101)가 사용자 또는 사용자의 일부의 하나 이상의 이미지들을 캡처하는 데 사용할 수 있을 임의의 다른 센서 중 하나 이상을 포함한다. 일부 실시예들에서, 디스플레이 생성 컴포넌트(120)는 사용자의 손의 제스처들 및 이동들을 검출할 수 있는 터치 스크린이다. 일부 실시예들에서, 아래에 도시된 사용자 인터페이스들은 또한, 사용자에게 사용자 인터페이스를 디스플레이하는 디스플레이 생성 컴포넌트, 및 물리적 환경 및/또는 사용자의 손들의 이동들(예를 들어, 사용자로부터 외향으로 향하는 외부 센서들) 및/또는 사용자의 시선(예를 들어, 사용자의 얼굴을 향해 내향으로 향하는 내부 센서들)을 검출하기 위한 센서들을 포함하는 머리 장착형 디스플레이 상에 구현될 수 있다.
도 7a에 도시된 바와 같이, 3차원 환경(704)은 앱 A의 표현(706), 앱 B의 표현(708) 및 가상 객체(710)를 포함하는 복수의 가상 객체들을 포함한다. 일부 실시예들에서, 3차원 환경(704)은 고정된 기준 프레임(예를 들어, 중력, 전자 디바이스(101)의 물리적 환경 내의 하나 이상의 객체들)에 대해 제시된다. 일부 실시예들에서, 3차원 환경(704)은 전자 디바이스의 물리적 환경 내의 객체들의 표현들에 기초하고/하거나 이를 포함하는 3차원 환경이고 3차원 환경(704)이 제시되는 기준 프레임은 전자 디바이스(101)의 물리적 환경 내의 하나 이상의 객체들 또는 물리적 환경이다. 도 7a는 3차원 환경(704)의 조감도를 도시하는 범례(712)를 포함한다. 범례(712)는 3차원 환경에서 앱 A의 표현(706), 앱 B의 표현(708), 가상 객체(710) 및 사용자(714)의 위치들 및 배향들을 예시한다. 도 7a는 또한, 3차원 환경 내의 사용자의 시점으로부터의 3차원 환경(704)을 디스플레이하는 전자 디바이스(101)를 예시한다.
범례(712)에 의해 예시된 바와 같이, 앱 A의 표현(706) 및 앱 B의 표현(708)은 사용자(714)를 향하여 기울어진 3차원 환경(704)에서의 배향을 갖는다. 예를 들어, 앱 A의 표현(706)은 사용자(714)의 좌측에 있고, 따라서 앱 A의 표현(706)의 배향은 사용자(714) 쪽으로 기울어지도록 우측으로 기울어진다. 다른 예로서, 앱 B의 표현(708)은 사용자(714)의 우측에 있고, 따라서 앱 B의 표현(708)의 배향은 사용자(714) 쪽으로 기울어지도록 좌측을 향해 기울어진다. 따라서, 앱 A의 표현(706) 및 앱 B의 표현(708)의 배향들은 서로 상이하다. 일부 실시예들에서, 애플리케이션들의 표현들은 표현의 일 측면 상에 애플리케이션의 콘텐츠를 포함한다. 예를 들어, 3차원 환경(704)에서 사용자(714)를 향하는 앱 A의 표현(706)의 측면은 앱 A의 사용자 인터페이스의 콘텐츠를 포함한다. 마찬가지로, 예를 들어, 3차원 환경(704)에서 사용자(714)를 향하는 앱 B의 표현(708)의 측면은 앱 B의 사용자 인터페이스의 콘텐츠를 포함한다.
일부 실시예들에서, 전자 디바이스(101)는 (예를 들어, 애플리케이션들의 표현들을 디스플레이 하기 위한 입력에 응답하여, 사용자 입력에 응답하여 애플리케이션의 표현을 이동시킨 후 등에) 3차원 환경(712)에서 사용자(714)를 향해 애플리케이션들의 표현들을 자동으로 배향시킨다. 일부 실시예들에서, 사용자를 향해 애플리케이션들의 표현들을 자동으로 배향시키는 것은, 표현들을 사용자를 향해 기울이는 것, 및 표현의 콘텐츠를 포함하는 표현의 측면을 사용자를 향해 위치시키는 것을 포함한다. 일부 실시예들에서, 전자 디바이스(101)는 3차원 환경(704) 상에 중첩된 벡터 필드를 구성하고/하거나 그에 대한 액세스를 갖고, 여기서 벡터들은 3차원 환경(704) 내의 사용자(714)의 위치를 향해 가리키고, 벡터 필드에 따라 가상 객체들(예를 들어, 애플리케이션들의 표현들 등)을 배향시킨다. 배향의 그러한 설정의 결과들이 아래에서 설명된다.
예를 들어, 도 7a에서, 전자 디바이스(101)는 앱 A의 표현(706) 상에서 사용자의 시선(716)을 (예를 들어, 눈 추적 디바이스(314)를 통해) 검출한다. 앱 A의 표현(706) 상에서 사용자의 시선을 검출하는 것에 응답하여, 전자 디바이스(101)는 앱 A의 표현(706) 상에서 사용자의 시선이 검출됨을 나타내는 사용자 인터페이스 요소(718)를 디스플레이한다. 도 7a가 앱 A의 표현(706) 주위의 윤곽으로서 사용자 인터페이스 요소(718)를 예시하지만, 일부 실시예들에서, 사용자 인터페이스 요소(718)는 상이한 형상/외관/위치를 갖는다는 것이 이해되어야 한다. 예를 들어, 전자 디바이스(101)는 선택적으로 앱 A의 표현(706) 상에서 사용자의 시선을 검출하는 것에 응답하여 앱 A의 표현(706)의 하나의 에지를 따라 바 또는 라인과 같은 사용자 인터페이스 요소를 디스플레이한다.
앱 A의 표현(706) 상에서 사용자의 시선(716)을 검출하는 동안, 전자 디바이스(101)는 (예를 들어, 손 추적 디바이스(예를 들어, 하나 이상의 카메라들, 깊이 센서들, 근접 센서들, 터치 센서들(예를 들어, 트랙패드 또는 터치 스크린))를 통해) 사용자가 자신의 손(720)으로 제스처를 수행하는 것을 검출한다. 예를 들어, 제스처는 사용자가 자신의 엄지손가락을 엄지손가락의 손 상의 다른 손가락(예를 들어, 검지, 중지, 약지, 새끼 손가락)에 터치하는 것이다. 사용자의 손(720)으로 수행되는 제스처를 검출하는 동안 앱 A의 표현(706) 상에서 사용자의 시선(716)을 동시에 검출하는 것에 응답하여, 전자 디바이스(101)는 제스처가 유지되는 동안 사용자의 손(720)의 이동에 따라 3차원 환경에서 표현(706)을 이동시키기 위한 프로세스를 개시한다. 도 7a에 도시된 바와 같이, 사용자는 자신의 다른 손가락이 자신의 엄지손가락을 터치한 상태를 유지하면서 자신의 손(720)을 사용자의 신체를 향해 그리고 우측으로 이동시킨다.
도 7a에 예시된 손(720)의 이동에 응답하여, 전자 디바이스는 도 7b에 도시된 바와 같이 이동에 따라 3차원 환경(704)에서 앱 A의 표현(706)을 (예를 들어, 사용자(714)를 향해 그리고 우측으로) 이동시킨다.
도 7b는 도 7a에 예시된 사용자 입력에 따른(예를 들어, 사용자(704)에 더 가깝고, 이제 사용자*714)의 약간 우측으로 객체(710)와 앱 B의 표현(708) 사이에 위치된) 업데이트된 위치에서 앱 A의 표현(706)을 포함하는 3차원 환경(704)을 예시한다. 도 7a의 사용자의 손(720)의 이동에 따라 앱 A의 표현(706)의 위치를 업데이트하는 것에 추가하여, 전자 디바이스(101)는 또한 앱 A의 표현(706)의 배향을 업데이트한다. 전술된 바와 같이 그리고 도 7a에 도시된 바와 같이, 전자 디바이스(101)는 앱 A의 표현(706)이 사용자를 향해 배향되기 위해 우측을 향해 기울어지는 동안 사용자 입력을 검출한다. 도 7b에 도시된 바와 같이, 3차원 환경(704)에서 사용자(714)의 약간 우측에 있는 위치로 앱 A의 표현(706)을 이동시키는 것에 응답하여, 전자 디바이스(101)는 3차원 환경에서 사용자(714)를 향해 계속 배향되기 위해 좌측으로 약간 기울어지도록 앱 A의 표현(706)의 배향을 업데이트한다. 앱 A의 표현(706)은, 3차원 환경(704) 내의 사용자(714)를 향하는 표현(706)의 측면이 앱 A의 사용자 인터페이스의 콘텐츠를 포함하는 표현(706)의 측면이 되도록 계속 배향된다. 일부 실시예들에서, 앱 A의 표현(706)의 배향은 3차원 환경(704) 내의 사용자(714)를 가리키는 벡터 필드에 의해 정의된다. 예를 들어, 도 7b의 3차원 환경(704)에서 앱 A의 표현(706)의 배향은 도 7b의 3차원 환경(704)에서 앱 A의 표현(706)의 위치에서 벡터 필드의 방향이다. 일부 실시예들에서, 앱 A의 표현(706)의 배향은 앱 A의 표현(706)이 3차원 환경(704)에서 이동되고 있는 동안 벡터 필드에 따라 계속해서 업데이트된다.
앱 A의 표현(706)의 배향 및 위치를 변경하는 것에 추가하여, 전자 디바이스(101)는 선택적으로 또한, 사용자 입력이 3차원 환경에서 앱 A의 표현(706)을 이동시키는 것에 응답하여 앱 A의 표현(706)의 크기를 업데이트한다. 도 7a에 도시된 바와 같이, 전자 디바이스(101)가 앱 A의 표현(706)을 이동시키기 위한 입력을 검출하는 동안, 앱 A의 표현(706)은 범례(712)에 도시된 바와 같이, 3차원 환경(704)에서 사용자(714)로부터의 개개의 거리이다. 도 7b의 범례(712)에 도시된 바와 같이, 앱 A의 표현(706)의 업데이트된 위치는 전자 디바이스(101)가 앱 A의 표현(706)을 이동시키기 전의 앱 A의 표현(706)의 위치보다 3차원 환경(704) 내의 사용자(714)에게 더 가깝다. 범례(712)에 도시된 바와 같이, 앱 A의 표현(706)을 이동시키기 위한 입력이 검출되기 전 및 후에 앱 A의 표현(706)은 전자 디바이스(101)에 의해 (예를 들어, 디스플레이 생성 컴포넌트(120)를 통해) 동일한 또는 유사한 크기로 디스플레이되는 것으로 나타나지만, 표현(706)의 크기는 표현(706)을 사용자에게 더 가깝게 이동시키는 것에 응답하여 선택적으로 감소한다. 마찬가지로, 일부 실시예들에서, 사용자(714)가 3차원 환경(704)에서 앱 A의 표현(706)을 사용자(714)로부터 더 멀리 이동시키면, 전자 디바이스(101)는 선택적으로 표현(706)의 크기를 증가시킬 것이다. 이러한 방식으로, 전자 디바이스(101)는, 3차원 환경(704) 내의 사용자(714)까지의 표현(706)의 거리가 변하는 경우에도, 표현(706)을 디스플레이하는 데 사용되는 디스플레이 생성 컴포넌트(120)의 디스플레이 영역의 양을 유지할 수 있다.
일부 실시예들에서, 도 8a 내지 도 13c를 참조하여 아래에서 더 상세히 설명될 바와 같이, 3차원 환경(704)은 다수의 사용자들을 포함한다. 예를 들어, 3차원 환경(704)은 사용자(714)에 추가로 사용자를 포함한다. 일부 실시예들에서, 하나 이상의 객체들(예를 들어, 객체(710), 표현(706), 표현(708))은 3차원 환경(704)에서 사용자들 중 단 한 명(예를 들어, 사용자(714) 또는 다른 사용자들 중 한 명)에게 액세스가능하다. 일부 실시예들에서, 오직 하나의 사용자에게만 액세스가능한 객체는 그 사용자의 전자 디바이스(101)에 의해서만 디스플레이되고, 그 사용자만이 객체로 지향되는 사용자 입력들을 제공할 수 있다. 예를 들어, 사용자(714)에게만 액세스가능한 객체는 도 7a 및 도 7b에 예시된 전자 디바이스(101)에 의해 디스플레이되지만 다른 사용자(들)의 전자 디바이스(들)에 의해 디스플레이되지 않는다. 다른 예로서, 다른 사용자(들)에게만 액세스가능한 객체는 도 7a 및 도 7b에 예시된 전자 디바이스(101)에 의해 디스플레이되지 않는다.
일부 실시예들에서, 가상 객체의 배향은, 다른 사용자들의 위치들에 기초하지 않고 객체에 대한 액세스를 갖는 사용자의 위치에 기초하여 (예를 들어, 3차원 환경(704)에서 초기에 디스플레이될 때, 객체를 이동시키라는 요청에 응답하여 등으로) 업데이트된다. 예를 들어, 3차원 환경(704)이 앱 A의 표현(706)에 대한 액세스를 갖지 않은 추가적인 사용자를 포함했다면, 전자 디바이스(101)는 도 7a 및 도 7b를 참조하여 전술된 것과 동일한 방식으로 앱 A의 표현(706)의 배향을 업데이트할 것이다. 다른 예로서, 3차원 환경(704)이 앱 A의 표현(706)에 대한 액세스를 갖는 다른 사용자를 포함하고 사용자(714)가 앱 A의 표현(706)에 대한 액세스를 갖지 않는다면, 앱 A의 표현(706)의 배향은, 앱 A의 표현(706)의 위치가 업데이트될 때, 사용자(714)의 위치 대신에 다른 사용자의 위치에 기초하여 업데이트된다.
도 8a 내지 도 9d를 참조하여 아래에서 더 상세히 설명될 바와 같이, 객체가 3차원 환경(704)에서 복수의(예를 들어, 모든) 사용자들에게 액세스가능한 경우, 전자 디바이스(101)는 선택적으로, 객체애 대한 액세스를 갖는 복수의(예를 들어, 모든) 사용자들의 위치들에 기초하여 (예를 들어, 3차원 환경(704)에서 초기에 디스플레이될 때, 객체를 이동시키라는 요청에 응답하여 등으로) 객체의 배향을 업데이트한다. 예를 들어, 3차원 환경(704)이 추가적인 사용자를 포함하는 경우, 앱 A의 표현(706)을 이동시키기 위한 입력에 응답하여, 전자 디바이스(101)는 사용자 A(714)의 위치 및 다른 사용자의 위치 둘 모두에 따라 앱 A의 표현(706)의 배향을 업데이트할 것이다. 따라서, 이러한 예에서, 앱 A의 표현(706)이 도 7b에 예시된 위치로 이동되더라도, 앱 A의 표현(706)의 배향은 도 7b에 예시된 배향과 상이할 수 있다. 일부 실시예들에서, 객체(예를 들어, 가상 텔레비전, 애플리케이션의 사용자 인터페이스 등, 도 9a 내지 도 9d의 표현들(706, 708 및 724))의 단지 일 측면 상의 콘텐츠를 포함하는 객체는 콘텐츠를 갖는 측면이 3차원 환경(704) 내의 복수의(예를 들어, 모든) 사용자들을 향하도록 배향된다. 다른 예로서, 다수의 측면들 상의 콘텐츠를 포함하는 객체(예를 들어, 가상 객체, 가상 보드 게임, 예컨대 도 9a 내지 도 9d의 표현(922))는 도 9a 내지 도 10t를 참조하여 더 상세히 설명될 바와 같이, 사용자들 사이에 배향된다.
일부 실시예들에서, 가상 객체에 대한 액세스를 갖는 사용자들의 수를 증가시키기 위한 입력에 응답하여(예를 들어, 오직 하나의 사용자에게만 액세스가능한 것으로부터 3차원 환경 내의 다수의 또는 모든 사용자들에게 액세스가능한 것으로 가상 객체를 업데이트함), 전자 디바이스는 객체를 증가된 수의 사용자들에게 평가가능하게 하고, 객체에 대한 액세스를 갖는 사용자들의 위치들에 따라 객체의 배향, 크기 및 위치 중 하나 이상을 업데이트한다. 예를 들어, 3차원 환경(704)이 표현(706)에 대한 액세스를 갖는 복수의 사용자들을 포함하는 경우, 표현(706)의 배향 및 크기는 사용자(714)의 위치에만 기초하는 대신에 도 7b의 복수의 사용자들의 위치에 기초하여 업데이트될 것이다. 일부 실시예들에서, 객체의 배향은 (예를 들어, 객체에 대한 액세스를 갖는 모든 사용자들의 위치들에 기초한 벡터 필드에 따라) 객체에 대한 액세스를 갖는 복수의 사용자들을 향해 배향되도록 업데이트된다. 일부 실시예들에서, 객체의 크기는, 객체에 대한 액세스를 갖는 사용자들 모두에게 객체가 판독가능한 것을 보장하기 위해, 객체와 객체에 대한 액세스를 갖는 사용자들 사이의 거리들에 기초하여 업데이트된다(예를 들어, 크기는 적어도, 객체로부터 가장 먼 사용자로부터의 거리에 기초하는 최소 크기임). 일부 실시예들에서, 위치(예를 들어, 복수의 사용자들에게 액세스가능한 객체의 디스플레이를 개시하라는 요청에 응답하는 초기 위치)는, 모든 사용자들이 객체를 볼 수 있도록 객체에 대한 액세스를 갖는 복수의 사용자들의 위치들에 기초하여 선택된다.
일부 실시예들에서, 전자 디바이스(101)는, (예를 들어, 도 7a에 예시된 표현(706)을 이동시키라는 요청과 같은 객체를 이동시키라는 요청에 응답하여) 이를 수행하기 위해 전자 디바이스(101)에 의해 프롬프트된 후 다른 사용자들과 객체가 공유된 경우 객체의 배향, 크기 및/또는 위치만을 업데이트한다. 일부 실시예들에서, 전자 디바이스(101)는 객체에 대한 액세스를 갖는 사용자들의 수를 증가시키는 것에 응답하여 객체의 위치, 크기 또는 배향을 업데이트하지 않는다. 예를 들어, 전자 디바이스(101)가 도 7a에 예시된 3차원 환경(704)을 디스플레이하는 동안, 전자 디바이스(101)가 3차원 환경(704)에 참여하는 추가적인 사용자의 표시를 수신하는 경우, 전자 디바이스(101)는, 도 7a에 예시된 입력과 같이 표현(706)을 이동시키라는 요청이 수신될 때까지 추가적인 사용자가 앱 A의 표현(706)에 대한 액세스를 갖는 경우에도 도 7a에 예시된 크기, 위치 및 배향으로 앱 A의 표현(706)을 계속 디스플레이한다. 일부 실시예들에서, 객체가 복수의 사용자들에게 액세스가능하면, 도 7a의 표현(706)을 이동시키라는 요청과 같이 객체를 이동시키기 위한 입력에 응답하여, 전자 디바이스(101)는 입력에 따라 객체를 이동시키고 객체에 대한 액세스를 갖는 사용자들에 대한 객체의 판독가능성을 유지하기 위해 객체에 대한 액세스를 갖는 모든 사용자들의 위치들에 따라 객체의 크기 및/또는 배향을 업데이트한다.
따라서, 도 7a 및 도 7b에 도시된 바와 같이, 일부 실시예들에서, 전자 디바이스(101)는 3차원 환경(704)에서 애플리케이션의 표현(706)의 위치를 업데이트하기 위한 사용자 입력에 응답하여 애플리케이션의 표현(706)의 배향 및/또는 크기를 자동으로 업데이트한다. 일부 실시예들에서, 전자 디바이스(101)는 유사하게, 이러한 가상 객체들 중 어느 하나를 이동시키라는 요청에 응답하여 표현(708) 및 객체(710)의 배향 및/또는 크기를 업데이트할 것이다. 일부 실시예들에서, 도 7c를 참조하여 아래에서 더 상세히 설명될 바와 같이, 전자 디바이스(101)는 사용자(714)가 3차원 환경(704) 내의 사용자(714)의 위치를 업데이트하는 것에 응답하여 애플리케이션들(및/또는 예를 들어 3차원 환경(704) 내의 다른 가상 객체들)의 표현들의 배향 및/또는 크기를 업데이트하는 것을 보류한다.
도 7c는, 사용자(714)가 도 7b의 사용자(714)의 위치로부터 3차원 환경(704)에서의 사용자의 위치를 업데이트한 후의 3차원 환경(704)을 예시한다. 일부 실시예들에서, 전자 디바이스는 전자 디바이스(101)의 물리적 환경에서 전자 디바이스(101)의 이동을 (예를 들어, 하나 이상의 자이로스코프들, 가속도계들, 카메라들, 깊이 센서들 등을 통해) 검출하는 것에 응답하여 사용자(714)의 위치를 업데이트한다. 예를 들어, 전자 디바이스(101)는 전자 디바이스(101)의 이동이 검출되는 방향으로 사용자(714)를 이동시킴으로써 3차원 환경(704)에서 사용자(714)의 위치를 업데이트한다. 일부 실시예들에서, 전자 디바이스(101)는 3차원 환경(704)에서 사용자(714)의 위치의 이동을 요청하는 사용자 입력에 응답하여 사용자(714)의 위치를 업데이트한다.
도 7c의 3차원 환경(704)에서의 사용자(714)의 위치는, 그것이 도 7b의 3차원 환경(704)에 있었던 것보다, 범례(712)로 표시된 바와 같이 앱 A 및 객체(710)의 표현(706)에 더 가깝다. 사용자(714)의 위치의 변화를 검출하는 것에 응답하여, 전자 디바이스(101)는 3차원 환경(704)의 디스플레이를 업데이트한다. 도 7c에 도시된 바와 같이, 객체(710) 및 앱 A의 표현(706)은 이들이 도 7b에 있었던 것보다 도 7c에서 더 큰 크기들로 디스플레이(120)에 의해 디스플레이되고, 객체(710) 및 앱 A의 표현(706)에 대한 사용자의 근접도로 인해, 앱 A의 표현(706) 및 객체(710) 각각의 부분들은 전자 디바이스(101)의 시야 외부에 있다. 도 7b 및 도 7c의 범례(712)에 도시된 바와 같이, 3차원 환경(704) 내의 사용자(714)의 위치를 업데이트하는 것에 응답하여 3차원 환경(704)에서 표현(706 및 708) 및 객체(710)의 크기들은 변경되지 않는다(그리고, 일부 실시예들에서, 객체들의 크기들은 사용자(714)의 이동이 검출되고 있는 동안 3차원 환경(704)에서 동일하게 유지된다). 또한, 도 7c에 도시된 바와 같이, 앱 B의 표현(708)은 도 7c에 예시된 위치에서 사용자(714)에게 더 이상 가시적이 아니다.
따라서, 도 7a 내지 도 7c는, 앱 A의 표현(706)을 이동시키기 위한 사용자 입력에 응답하여 앱 A의 표현(706)의 위치, 크기 및/또는 배향을 업데이트하고, 3차원 환경(704) 내의 사용자(714)의 위치에서의 변화를 검출하는 것에 응답하여 앱 A의 표현(706), 앱 B의 표현(708) 및 가상 객체(710)의 위치, 크기 및/또는 배향을 업데이트하는 것을 보류하는 전자 디바이스(101)를 예시한다. 일부 실시예들에서, 전자 디바이스(101)는 또한 이러한 객체들 중 하나를 이동시키기 위한 사용자 입력에 응답하여 표현(708) 또는 객체(710)의 위치, 크기 및/또는 배향을 업데이트할 것이다.
일부 실시예들에서, 전자 디바이스(101)는 사용자 입력에 응답하여, 앱 A의 표현(706), 앱 B의 표현(708) 및/또는 객체(710)의 디스플레이를 개시한다. 전자 디바이스는 선택적으로 초기에, 사용자(714)에게 판독가능하고 (예를 들어, 사용자가 객체를 보고 그와 상호작용하기에 충분히 가까운 거리에 있고, 3차원 환경(704)에서 다른 객체들을 보기에 충분히 멀리 떨어져 있는) 편리한 거리에 가상 객체들을 디스플레이한다. 일부 실시예들에서, 3차원 환경(704)에 사용자(714) 이외의 추가적인 사용자가 있었다면, 전자 디바이스(101)는 초기에, 사용자들 둘 모두에게 판독가능한 위치에 사용자 둘 모두가 액세스를 갖는 가상 객체를 디스플레이할 것이다. 그러나, 사용자(714)만이 객체에 액세스하면, 일부 실시예들에서, 전자 디바이스(101)는 다른 사용자의 위치에 기초하지 않고 사용자(714)의 위치에 기초하여 객체에 대한 초기 위치를 선택한다. 일부 실시예들에서, (예를 들어, 사용자 입력에 응답하여) 3차원 환경(704)에서 가상 객체들을 초기에 디스플레이할 때, 사용자(714)가 3차원 환경(704)에서 유일한 사용자인 경우 또는 사용자(714)가 3차원 환경(704)에서 객체에 대한 액세스를 갖는 유일한 사용자인 경우, 전자 디바이스(101)는 제1 임계치(예를 들어, 30, 40, 50, 100 센티미터 등)와 제2 임계치(예를 들어, 200, 300, 400, 500 센티미터 등) 사이에 있는 사용자(714)로부터의 거리에 있도록 객체의 위치를 선택한다. 예를 들어, 도 7a에 예시된 3차원 환경(704)에 추가적인 사용자가 있고 앱 A의 표현(706)이 다른 사용자에게 액세스가능하지 않고 사용자(714)에게 액세스가능한 경우, 전자 디바이스(101)는 초기에, (다른 사용자가 표현(706)을 보고 그와 상호작용하지 못하기 때문에) 다른 사용자의 위치에 기초하지 않고 (예를 들어, 표현(706)을 사용자(714)에게 판독가능하게 하기 위해) 3차원 환경(704) 내의 사용자(714)의 위치에 기초한 위치, 크기 및 배향으로 앱 A의 표현(706)을 디스플레이할 것이다. 일부 실시예들에서, 3차원 환경(704) 내의 객체에 대한 액세스를 갖는 다수의 사용자들이 존재하는 경우, 전자 디바이스(101)는 초기에, 적어도 모든 사용자들로부터 제3 임계 거리(예를 들어, 30, 40, 50, 100 센티미터 등)에 있고 모든 사용자들로부터 제4 임계 거리(예를 들어, 200, 300, 400, 500 센티미터 등) 미만인 위치에 객체를 디스플레이한다. 예를 들어, 도 7a에 예시된 3차원 환경(704)에 추가적인 사용자가 있고 앱 A의 표현(706)이 사용자(714) 및 다른 사용자에게 액세스가능한 경우, 전자 디바이스(101)는 초기에, (예를 들어, 표현(706)을 사용자(714) 및 다른 사용자에게 판독가능하게 하기 위해) 3차원 환경(704) 내의 사용자(714) 및 추가적인 사용자의 위치에 기초한 위치, 크기 및 배향으로 앱 A의 표현(706)을 디스플레이할 것이다.
도 13a 내지 도 14l을 참조하여 아래에서 더 상세히 설명될 바와 같이, 일부 실시예들에서, 3차원 환경(704)은 적어도 하나의 사용자 및 적어도 하나의 가상 객체를 포함하지만, 전자 디바이스(101)는 다른 사용자가 3차원 환경(704)에 추가되는 것을 검출한다. 일부 실시예들에서, 새로운 사용자가 3차원 환경(704)에 추가되는 것에 응답하여, 전자 디바이스(101)는, 가상 객체들이 가상 객체들에 대한 액세스를 갖는 모든 사용자들에게 판독가능한 것을 보장하기 위해 3차원 환경(704)에 방금 참여한 사용자를 포함하여, 3차원 환경(704) 내의 모든 사용자들의 위치들에 기초하여 배향되도록 3차원 환경(704) 내의 가상 객체들의 배향들을 업데이트한다. 일부 실시예들에서, 사용자가 가상 객체들을 이동시키기 위한 입력을 검출하지 않고 3차원 환경(704)에 참여하는 것에 응답하여, 3차원 환경 내의 객체들의 배향들이 업데이트된다. 일부 실시예들에서, 3차원 환경(704) 내의 객체들의 배향들은 객체를 이동시키기 위한 입력이 검출될 때까지 업데이트되지 않는다. 일부 실시예들에서, 3차원 환경(704)에서 사용자들의 서브세트(예를 들어, 하나의 사용자)에게만 액세스가능하고 3차원 환경(704)에 방금 추가된 사용자에게 액세스가능하지 않은 하나 이상의 가상 객체들은 새로운 사용자가 3차원 환경(704)에 추가되는 것에 응답하여 배향들을 변경하지 않는다. 일부 실시예들에서, 가상 객체가 사용자에게 액세스가능하지 않을 때, 사용자는 3차원 환경(704)에서 가상 객체의 위치의 표시를 볼 수 있지만, 도 9a를 참조하여 아래에서 설명되는 바와 같이 객체의 콘텐츠를 볼 수 없다. 일부 실시예들에서, 전자 디바이스(101)는 전자 디바이스의 사용자에게 액세스가능하지 않은 가상 객체의 표시를 디스플레이하지 않는다.
일부 실시예들에서, 전자 디바이스(101)는 가상 객체를 3차원 환경(704) 내의 복수의(또는 모든) 사용자들에게 액세스가능한 것으로부터 3차원 환경(704) 내의 복수의(또는 모든) 사용자들보다 적은 수의 사용자에게 액세스가능한 것으로(예를 들어, 3차원 환경(704) 내의 하나의 사용자에게 액세스가능함) 업데이트한다. 예를 들어, 도 7a에 예시된 3차원 환경(704)이 추가적인 사용자를 포함하고, 앱 A의 표현(706)이 추가적인 사용자 및 사용자(714)에게 액세스가능했다면, 앱 A의 표현(706)이 추가적인 사용자에게 액세스가능하지 않고 사용자(714)에게 액세스가능하도록 업데이트되는 것이 가능할 것이다. 일부 실시예들에서, 전자 디바이스(101)는 객체를 3차원 환경(704) 내의 사용자들 사이의 위치로 이동시키는 입력에 응답하여 객체에 대한 액세스를 갖는 사용자들의 수를 감소시킨다. 예를 들어, 도 7a에 예시된 3차원 환경(704)이 추가적인 사용자를 포함하고 앱 A의 표현(706)이 추가적인 사용자 및 사용자(714)에게 액세스가능했다면, 앱 A의 표현(706)을 3차원 환경(704) 내의 사용자(714)의 위치와 다른 사용자의 위치 사이의 위치로 이동시키기 위한 입력을 검출하는 것에 응답하여, 전자 디바이스(101)는 다른 사용자에게 액세스가능하지 않고 사용자(714)에게 액세스가능하도록 앱 A의 표현(706)을 업데이트할 것이다. 다른 예로서, 전자 디바이스(101)는 3차원 환경(704) 내의 사용자(714)의 임계 거리(예를 들어, 0.5, 1, 2 미터 등) 내에서 객체를 이동시키는 입력에 응답하여 객체에 대한 액세스를 갖는 사용자들의 수를 감소시킨다. 예를 들어, 도 7a에 예시된 3차원 환경(704)이 추가적인 사용자를 포함하고 앱 A의 표현(706)이 추가적인 사용자 및 사용자(714)에게 액세스가능했다면, 앱 A의 표현(706)을 3차원 환경(704) 내의 사용자(714)의 임계 거리 내의 위치로 이동시키기 위한 입력을 검출하는 것에 응답하여, 전자 디바이스(101)는 다른 사용자에게 액세스가능하지 않고 사용자(714)에게 액세스가능하도록 앱 A의 표현(706)을 업데이트할 것이다. 일부 실시예들에서, 가상 객체가 3차원 환경(704) 내의 제1 사용자에게 액세스가능한 동안, 전자 디바이스(101)는 가상 객체를 제2 사용자의 임계 거리(예를 들어, 0.5, 1, 2 미터 등) 내의 위치로 이동시키기 위한 입력을 (예를 들어, 제1 사용자로부터) 검출한다. 일부 실시예들에서, 입력에 응답하여, 전자 디바이스(101)는 가상 객체를 제1 사용자에게 액세스가능한 것으로부터 제2 사용자에게 액세스가능한 것으로 업데이트한다. 예를 들어, 도 7a에 예시된 3차원 환경(704)이 추가적인 사용자를 포함하고 앱 A의 표현(706)이 다른 사용자에게 액세스가능하지 않고 사용자(714)에게 액세스가능했다면, 앱 A의 표현(706)을 3차원 환경(704) 내의 다른 사용자의 위치의 임계치 내에서 이동시키기 위한 입력을 검출하는 것에 응답하여, 전자 디바이스(101)는 사용자(714)에게 액세스가능하지 않고 다른 사용자에게 액세스가능하도록 앱 A의 표현(706)을 업데이트할 것이다.
일부 실시예들에서, 도 9a 내지 도 10t를 참조하여 아래에서 더 상세히 설명될 바와 같이, 전자 디바이스(101)는 사용자 입력(예를 들어, 가상 객체를 공유하기 위한 사용자 입력)에 응답하여 가상 객체를 하나의 사용자에게만 액세스가능한 것으로부터 다수의 사용자들에게 액세스가능한 것으로 업데이트한다.
도 8a 내지 도 8p는 일부 실시예들에 따른 사용자의 시점에 기초하여 3차원 환경에서 가상 객체의 배향을 자동으로 업데이트하는 방법을 예시하는 흐름도이다. 일부 실시예들에서, 본 방법(800)은, 디스플레이 생성 컴포넌트(예컨대, 도 1, 도 3 및 도 4의 디스플레이 생성 컴포넌트(120))(예컨대, 헤드업 디스플레이, 디스플레이, 터치스크린, 프로젝터 등) 및 하나 이상의 카메라들(예컨대, 사용자의 손에서 하향으로 향하는 카메라(예컨대, 컬러 센서들, 적외선 센서들, 및 다른 심도 감지 카메라들) 또는 사용자의 머리로부터 전방으로 향하는 카메라)을 포함하는 컴퓨터 시스템(예컨대, 태블릿, 스마트폰, 웨어러블 컴퓨터 또는 머리 장착형 디바이스와 같은 도 1의 컴퓨터 시스템(101))에서 수행된다. 일부 실시예들에서, 방법(800)은, 비일시적 컴퓨터 판독가능 저장 매체에 저장되며 컴퓨터 시스템의 하나 이상의 프로세서들, 예를 들어, 컴퓨터 시스템(101)의 하나 이상의 프로세서들(202)(예를 들어, 도 1a의 제어 유닛(110))에 의해 실행되는 명령어들에 의해 통제된다. 방법(800)에서의 일부 동작들이 선택적으로 조합되거나, 및/또는 일부 동작들의 순서가 선택적으로 변경된다.
도 7a에서와 같은 일부 실시예들에서, 방법(800)은 디스플레이 생성 컴포넌트 및 하나 이상의 입력 디바이스들(예컨대, 모바일 디바이스(예컨대, 태블릿, 스마트폰, 미디어 플레이어 또는 웨어러블 디바이스), 또는 컴퓨터)과 통신하는 전자 디바이스에서 수행된다. 일부 실시예들에서, 디스플레이 생성 컴포넌트는 전자 디바이스(선택적으로, 터치 스크린 디스플레이), 모니터, 프로젝터, 텔레비전, 또는 하드웨어 컴포넌트(선택적으로, 통합형 또는 외장형)와 같은, 사용자 인터페이스를 투영하기 위한 또는 사용자 인터페이스가 하나 이상의 사용자들에게 가시적이 되게 하기 위한 외장형 디스플레이 등과 통합된 디스플레이이다. 일부 실시예들에서, 하나 이상의 입력 디바이스들은 사용자 입력을 수신하고(예를 들어, 사용자 입력을 캡처하는 것, 사용자 입력을 검출하는 것 등) 사용자 입력과 연관된 정보를 전자 디바이스에 송신할 수 있는 전자 디바이스 또는 컴포넌트를 포함한다. 입력 디바이스들의 예들은, 터치 스크린, (예를 들어, 외부의) 마우스, (선택적으로 통합된 또는 외부의) 트랙패드, (선택적으로 통합된 또는 외부의) 터치패드, (예를 들어, 외부의) 원격 제어 디바이스, (예를 들어, 전자 디바이스와 별개인) 다른 모바일 디바이스, (예를 들어, 외부의) 핸드헬드 디바이스, (예를 들어, 외부의) 제어기, 카메라, 깊이 센서, 눈 추적 디바이스 및/또는 모션 센서(예를 들어, 손 추적 디바이스, 손 모션 센서) 등을 포함한다.
도 7a에서와 같은 일부 실시예들에서, 전자 디바이스(100)(예를 들어, 101)는 디스플레이 생성 컴포넌트를 통해, 3차원 환경(예를 들어, 704) 내의 제1 위치에 디스플레이된 제1 애플리케이션의 표현(예를 들어, 706)을 포함하는 3차원 환경(예를 들어, 704)을 디스플레이한다(802). 일부 실시예들에서, 3차원 환경은 디바이스에 의해 생성, 디스플레이, 또는 다른 방식으로 볼 수 있게 된다(예를 들어, 3차원 환경은 가상 현실(VR) 환경, 혼합 현실(MR) 환경 또는 증강 현실(AR) 환경 등과 같은 컴퓨터 생성 현실(CGR) 환경임). 일부 실시예들에서, 전자 디바이스가 환경을 디스플레이하는 시점은 3차원 환경에 대응하는 물리적 환경 내의 전자 디바이스의 위치에 대응한다. 일부 실시예들에서, 전자 디바이스가 환경을 디스플레이하는 시점은 3차원 환경 내의 전자 디바이스의 사용자의 가상 위치에 대응한다.
도 7a에서와 같은 일부 실시예들에서, 3차원 환경(예를 들어, 704) 내의 제1 위치에서의 제1 애플리케이션의 표현(예를 들어, 706)은 3차원 환경(예를 들어, 704)에서 제1 배향을 갖는다(804). 일부 실시예들에서, 제1 애플리케이션의 표현이 3차원 환경 내의 제1 위치에 디스플레이되는 동안, 제1 애플리케이션의 표현은 3차원 환경 내의 개개의 고정된 기준 프레임을 향해 배향되어 디스플레이된다. 예를 들어, 제1 애플리케이션을 개시하기 위한 입력을 검출하는 것에 응답하여, 전자 디바이스는 제1 애플리케이션의 표현을, 사용자로부터 제1 애플리케이션을 개시하기 위한 입력이 수신된 그 사용자와 연관된 위치를 향하는 배향으로 제1 위치에 디스플레이한다.
도 7a에서와 같은 일부 실시예들에서, 3차원 환경(예를 들어, 704) 내의 제2 위치는 3차원 환경(예를 들어, 704) 내의 제1 사용자(예를 들어, 714)와 연관된다(806). 일부 실시예들에서, 전자 디바이스는 3차원 환경 내의 제2 위치에 위치된 시점으로부터의 3차원 환경을 디스플레이한다. 일부 실시예들에서, 3차원 환경 내의 제2 위치는 전자 디바이스의 물리적 환경들에서 전자 디바이스의 물리적 위치에 대응한다. 예를 들어, 전자 디바이스는 디스플레이 생성 컴포넌트를 통해, 물리적 환경 내의 전자 디바이스의 물리적 위치에 대응하는 밴티지 포인트(vantage point)로부터 전자 디바이스의 물리적 환경에 대응하는 가상 환경을 디스플레이한다.
도 7a에서와 같은 일부 실시예들에서, 제1 애플리케이션의 표현(예를 들어, 706)을 포함하는 3차원 환경(예를 들어, 704)을 디스플레이하는 동안, 전자 디바이스(예를 들어, 101)는, 하나 이상의 입력 디바이스들을 통해 이동 입력을 수신한다(808). 일부 실시예들에서, 이동 입력을 수신하는 것은, 전자 디바이스와 통신하는 하나 이상의 센서들(예를 들어, 가속도계들, 자이로스코프들, 카메라들, 깊이 센서들 등)을 통해, 3차원 환경 내의 제2 위치에 대응하는 제1 물리적 위치로부터 제2 물리적 위치로의 전자 디바이스의 이동을 검출하는 것을 포함한다. 일부 실시예들에서, 이동 입력을 수신하는 것은, 눈 추적 디바이스를 통해, (예를 들어, 손 추적 디바이스를 통해, 사용자의 손에 의한 미리 결정된 제스처의 수행을 검출하는 것과 같은 선택 입력과 함께) 사용자의 시선의 이동을 검출하는 것을 포함한다. 일부 실시예들에서, 이동 입력을 수신하는 것은, 손 추적 디바이스를 통해, 선택적으로 손 추적 디바이스를 통해 미리 결정된 제스처의 수행을 검출하는 것과 함께 사용자의 손의 이동을 검출하는 것을 포함한다. 일부 실시예들에서, 키보드 또는 가상 키보드의 키의 활성화, 마우스의 이동, 터치-감응형 표면 상의 접촉의 이동(예를 들어, 터치 스크린, 트랙패드 등) 또는 다른 방향성 입력을 검출하는 것과 같은 이동 입력은 전자 디바이스와 통신하는 입력 디바이스를 통해 검출된다.
도 7b에서와 같은 일부 실시예들에서, 이동 입력을 수신하는 것에 응답하여(810), 이동 입력이 3차원 환경(예를 들어, 704)에서 제1 위치로부터 제1 위치와 상이한 제3 위치로 제1 애플리케이션의 표현(예를 들어, 706)을 이동시키라는 요청에 대응한다는 결정에 따라(812)(예를 들어, 제1 사용자와 연관된 위치를 변경하지 않으면서), 전자 디바이스(예를 들어, 101)는 디스플레이 생성 컴포넌트(120)를 통해, 3차원 환경(예를 들어, 704) 내의 제3 위치에 제1 애플리케이션의 표현(예를 들어, 706)을 디스플레이한다(814). 일부 실시예들에서, 제1 애플리케이션의 표현을 제1 위치로부터 제3 위치로 이동시키라는 요청에 대응하는 이동 입력을 수신하는 것은 제1 애플리케이션의 표현과 연관된 사용자 인터페이스 요소의 선택을 검출하는 것을 포함한다. 일부 실시예들에서, 제1 애플리케이션의 표현을 제1 위치로부터 제3 위치로 이동시키라는 요청에 대응하는 이동 입력을 수신하는 것은 손 추적 디바이스를 통해, 선택적으로 선택 입력을 검출하는 것과 함께 사용자의 손의 이동을 검출하는 것을 포함한다. 일부 실시예들에서, 선택 입력을 검출하는 것은 손 추적 디바이스를 통해 사용자가 미리 결정된 손 제스처를 수행하는 것을 검출하는 것을 포함한다. 일부 실시예들에서, 선택 입력을 검출하는 것은 눈 추적 디바이스를 통해, 사용자가 미리 결정된 시간(예를 들어, 0.1, 0.2, 0.3, 0.4, 0.5, 0.75, 1초 등) 동안 사용자 인터페이스 요소를 보는 것을 검출하는 것을 포함한다. 일부 실시예들에서, 제1 애플리케이션의 표현을 제1 위치로부터 제3 위치로 이동시키라는 요청에 대응하는 이동 입력을 수신하는 것은 키보드, 트랙패드, 마우스 또는 터치 스크린과 같이 전자 디바이스와 통신하는 입력 디바이스를 사용하여 입력을 검출하는 것을 포함한다. 일부 실시예들에서, 제3 위치는 이동 입력을 검출하는 것의 일부로서 검출된 방향성 입력에 기초하여 결정된다. 방향성 입력들을 검출하는 예들은, 손 추적 디바이스를 이용하여, 개개의 방향으로의 사용자의 손의 이동을 검출하는 것; 눈 추적 디바이스를 통해, 개개의 방향으로의 사용자의 시선의 이동을 검출하는 것; 터치 감응형 표면을 통해, 접촉 또는 호버링 객체의 이동을 검출하는 것; 키보드를 통해, 방향 키(예를 들어, 화살표 키 또는 방향 입력이 할당된 다른 키)의 선택을 검출하는 것; 및 마우스와 같은 입력 디바이스의 이동을 검출하는 것을 포함한다. 일부 실시예들에서, 방향성 입력은 크기 및 방향을 포함한다. 일부 실시예들에서, 전자 디바이스가 제1 애플리케이션의 표현을 이동시키는 거리는 방향성 입력의 크기에 대응한다. 일부 실시예들에서, 전자 디바이스가 제1 애플리케이션의 표현을 이동시키는 방향은 방향성 입력의 방향에 대응한다.
도 7b에서와 같은 일부 실시예들에서, 이동 입력을 수신하는 것에 응답하여(810), 이동 입력이 3차원 환경에서 제1 위치로부터 제1 위치와 상이한 제3 위치로 제1 애플리케이션의 표현(예를 들어, 706)을 이동시키라는 요청에 대응한다는 결정에 따라(812), 전자 디바이스(예를 들어, 101)는 제3 위치에 기초하여(그리고 선택적으로, 제1 사용자와 연관된 제2 위치에 기초하여) 제1 애플리케이션의 표현(예를 들어, 706)의 배향을 3차원 환경(예를 들어, 704)에 대한 제1 배향으로부터 제1 배향과 상이한 제2 배향으로 업데이트한다(816). 일부 실시예들에서, 제1 애플리케이션의 표현의 배향은 고정된 기준 프레임에 대한 것이고, 고정된 기준 프레임에 대해 업데이트된다. 일부 실시예들에서, 제1 애플리케이션의 표현이 이동 입력에 응답하여 이동됨에 따라, 제1 애플리케이션의 표현의 배향이 점진적으로 변하여, 제1 애플리케이션의 표현은 제1 애플리케이션의 표현을 이동시키기 위한 입력을 제공한 사용자를 향한다. 예를 들어, 제1 애플리케이션의 표현은 제1 애플리케이션에 관련된 정보가 디스플레이되는 개개의 얼굴을 갖는 가상 객체이고, 전자 디바이스는 제1 객체의 표현을 회전시켜서, 개개의 얼굴은 가상 객체를 제1 위치로부터 제3 위치로 이동시키는 것에 응답하여 제1 사용자와 연관된 위치를 향해 위치된다. 일부 실시예들에서, 전자 디바이스는 제1 애플리케이션의 표현의 배향을 변경하기 위한 입력을 수신함이 없이 제1 애플리케이션의 표현의 배향을 변경하고, 단지 제1 애플리케이션의 표현을 이동시키기 위한 입력을 수신한다. 일부 실시예들에서, 제1 애플리케이션의 표현을 (제3 위치와 상이한) 제4 위치로 이동시키는 것은, 전자 디바이스로 하여금, 제1 애플리케이션의 표현을 고정된 기준 프레임에 대해 제2 외관(예를 들어, 배향)과 상이한 제3 외관(예를 들어, 배향)으로 제4 위치에 디스플레이하게 한다.
도 7c에서와 같은 일부 실시예들에서, 이동 입력을 수신하는 것에 응답하여(810), 이동 입력이 제2 위치와 상이한 제4 위치를 제1 사용자(예를 들어, 714)와 연관시키라는 요청에 대응한다는 결정에 따라(예를 들어, 3차원 환경 내의 제1 애플리케이션의 표현의 위치를 변경하지 않음), 전자(예를 들어, 101) 디바이스는 3차원 환경(예를 들어, 704)에 대한 제1 애플리케이션의 표현의 배향을 업데이트하지 않으면서 3차원 환경(예를 들어, 704) 내의 제1 위치에 제1 애플리케이션의 표현(예를 들어, 706)의 디스플레이를 유지한다(818). 일부 실시예들에서, 제4 위치를 제1 사용자와 연관시키라는 요청에 대응하는 이동 입력을 수신하는 것은, 전자 디바이스와 통신하는 하나 이상의 센서들(예를 들어, 가속도계들, 자이로스코프들, 카메라(들), 거리 센서들, 등)을 통해, 3차원 환경에서 제1 위치와 연관된 전자 디바이스의 물리적 환경들 내의 개개의 위치로부터 전자 디바이스의 물리적 환경들 내의 상이한 개개의 위치로의 전자 디바이스의 이동을 검출하는 것을 포함한다. 일부 실시예들에서, 제4 위치를 제1 사용자와 연관시키라는 요청에 대응하는 이동 입력을 수신하는 것은 손 추적 디바이스를 이용하여, 개개의 방향으로의 사용자의 손의 이동을 검출하는 것; 눈 추적 디바이스를 통해, 개개의 방향으로의 사용자의 시선의 이동을 검출하는 것; 터치 감응형 표면을 통해, 접촉 또는 호버링 객체의 이동을 검출하는 것; 키보드를 통해, 방향 키(예를 들어, 화살표 키 또는 방향 입력이 할당된 다른 키)의 선택을 검출하는 것; 및 마우스와 같은 입력 디바이스의 이동을 검출하는 것을 포함한다. 일부 실시예들에서, 제4 위치는 이동 입력의 이동의 크기 및 방향에 기초하여 선택된다. 일부 실시예들에서, 애플리케이션의 표현을 이동시키는 것은 사용자 및 애플리케이션의 표현의 위치들에 기초하여 애플리케이션의 배향이 변경되게 하지만, 사용자의 위치를 변경하는 것은 애플리케이션의 표현의 배향이 변경되게 하지 않는다. 일부 실시예들에서, 3차원 환경에 둘 이상의 사용자들이 있다면, 애플리케이션의 표현의 이동을 검출하는 것에 응답하여, 전자 디바이스는 방법(1000)의 하나 이상의 단계들에 따라 표현의 배향을 업데이트한다.
제1 애플리케이션의 표현을 이동시키고 제1 애플리케이션의 표현의 배향을 업데이트하거나 또는 제1 애플리케이션의 표현의 배향을 업데이트하지 않으면서 제1 사용자와 연관된 위치를 변경하는 전술된 방식은, (예를 들어, 제1 애플리케이션의 표현의 배향을 자동으로 변경함으로써) 제1 애플리케이션의 표현을 이동시킬 때 사용자와 연관된 위치를 향해 애플리케이션의 표현을 배향시키는 효율적인 방식 및 (예를 들어, 전력을 절약하기 위해 제1 애플리케이션의 표현의 배향을 업데이트하는 것을 보류함으로써) 사용자와 연관된 위치를 업데이트하는 효율적인 방식을 제공하며, 이는 추가적으로 전력 사용량을 감소시키고, 사용 시에 에러들을 감소시키면서 사용자가 전자 디바이스를 더 신속하고 효율적으로 사용할 수 있게 함으로써, 전자 디바이스의 배터리 수명을 개선한다.
도 11a에서와 같은 일부 실시예들에서, 3차원 환경(예를 들어, 1104)은 디스플레이 생성 컴포넌트(120)를 통해 디스플레이되는 전자 디바이스(예를 들어, 101)의 물리적 환경의 표현을 포함한다(820). 일부 실시예들에서, 물리적 환경은 패스-스루 비디오(예를 들어, 전자 디바이스의 물리적 환경의 가상 표현들)를 포함한다. 일부 실시예들에서, 전자 디바이스 주위의 물리적 환경은 전자 디바이스와 통신하는 하나 이상의 가시광 센서들(예를 들어, 카메라들)에 의해 캡처되고, 물리적 환경의 포토리얼리스틱 표현으로서 디스플레이 생성 컴포넌트를 통해 디스플레이된다. 일부 실시예들에서, 전자 디바이스 주위의 물리적 환경은 예를 들어, 투명 또는 반투명 디스플레이 생성 컴포넌트를 통해 사용자에게 수동적으로 제시된다.
3차원 환경에서 전자 디바이스의 물리적 환경의 표현을 포함하는 전술된 방식은 전자 디바이스의 물리적 환경의 물리적 콘텐츠에 대해 3차원 환경의 가상 콘텐츠를 배향시키는 효율적인 방식을 제공하며,
이는 추가적으로 전력 사용을 감소시키고, 사용 시에 에러들을 감소시키면서, 사용자가 전자 디바이스를 더 신속하고 효율적으로 사용할 수 있게 함으로써(예를 들어, 가상 객체들과 물리적 객체들 사이의 충돌들 및 이러한 충돌들을 해결하는 데 걸리는 시간을 감소시킴으로써, 그리고 사용자가 전자 디바이스의 환경에서 물리적 객체에 물리적으로 부딪치는 것과 같은 사용자 에러들을 감소시킴으로써) 전자 디바이스의 배터리 수명을 개선한다.
도 7a에서와 같은 일부 실시예들에서, 3차원 환경(예를 들어, 704)은 디스플레이 생성 컴포넌트(120)를 통해 디스플레이되는 가상 환경을 포함한다(822). 일부 실시예들에서, 가상 환경은 전자 디바이스의 및/또는 물리적 환경 내의 객체들에 대응하지 않는 가상 객체들을 포함한다. 예를 들어, 가상 환경은 애플리케이션들의 표현들이 디스플레이되는 가상 설정을 생성하는 가상 객체들을 포함한다.
가상 환경 내의 제1 애플리케이션의 표현의 배향을 조정하는 전술된 방식은 제1 애플리케이션을 사용자와 연관된 가상 환경 내의 위치를 향해 자동으로 배향시키는 효율적인 방식을 제공하며, 이는 추가적으로 전력 사용량을 감소시키고, 사용 시에 에러들을 감소시키면서, 사용자가 전자 디바이스를 더 빠르고 효율적으로 사용할 수 있게 함으로써, 전자 디바이스의 배터리 수명을 개선한다.
도 7a에서와 같은 일부 실시예들에서, 제1 애플리케이션의 표현(예를 들어, 706)은 제1 크기로 디스플레이된 반면, 제1 애플리케이션의 표현(예를 들어, 706)은 제1 위치(824)에서 디스플레이되었다. 도 7b에서와 같은 일부 실시예들에서, 이동 입력을 수신하는 것에 응답하여(826), 이동 입력이 3차원 환경 내의 제1 위치로부터 제1 위치와 상이한 제3 위치로 제1 애플리케이션의 표현(예를 들어, 706)을 이동시키라는 요청에 대응한다는 결정에 따라, 전자 디바이스(예를 들어, 101)는 제3 위치에서 디스플레이될 때, 제1 크기와 상이한 제2 크기로 디스플레이되도록 제1 애플리케이션의 표현(예를 들어, 706)을 업데이트한다(828). 일부 실시예들에서, 표현의 크기를 업데이트하는 것은 표현에 의해 점유되는(예를 들어, 이에 따라 사용자에게 디스플레이되는) 디스플레이 생성 컴포넌트의 디스플레이 영역의 양을 업데이트하는 것을 포함한다. 예를 들어, 사용자와 연관된 가상 위치에 더 가까운 위치로 표현을 이동시키는 입력에 응답하여, 전자 디바이스는, 입력이 수신되기 전보다 표현이 사용자와 연관된 가상 위치에 더 가깝다는 것을 전달하기 위해 표현의 크기를 증가시킨다. 일부 실시예들에서, 표현의 크기를 업데이트하는 것은 표현의 가상 크기(예를 들어, 3차원 환경에 대한 표현의 크기)를 업데이트하는 것을 포함한다. 예를 들어, 사용자와 연관된 위치에 더 가까운 가상 위치로 표현을 이동시키는 입력에 응답하여, 전자 디바이스는 표현이 디스플레이되는 디스플레이 영역을 수정하는 것을 보류하거나 또는 표현의 크기를 변경하지 않으면서 표현을 상이한 가상 거리로 이동시키는 것에 대응하는 양과 상이한 양만큼 표현이 디스플레이되는 디스플레이 영역을 수정한다. 일부 실시예들에서, 표현이 제1 위치로부터 제3 위치로 이동되고 있는 동안, 전자 디바이스는, 표현이 이동하는 동안 이동하고 점진적으로 크기를 변경하는 표현의 애니메이션을 디스플레이한다.
객체를 이동시키라는 요청에 대응하는 입력에 응답하여 표현의 크기를 업데이트하는 전술된 방식은 (예를 들어, 표현의 크기를 조정하기 위한 별개의 입력 없이) 적절한 크기로 제3 위치에 표현을 디스플레이하는 효율적인 방식을 제공하고, 이는 추가적으로 전력 사용량을 감소시키고, 사용 시에 에러들을 감소시키면서, 사용자가 전자 디바이스를 더 빠르고 효율적으로 사용할 수 있게 함으로써, 전자 디바이스의 배터리 수명을 개선한다.
도 9a에서와 같은 일부 실시예들에서, 제1 애플리케이션의 표현(예를 들어, 908)의 배향을 업데이트하는 것(830)은 제1 애플리케이션의 표현(예를 들어, 908)이 3차원 환경(예를 들어, 904) 내의 제5 위치와 연관된 제2 사용자(914B)가 아니라 제1 사용자(예를 들어, 914A)에게 액세스가능하다는 결정에 따라, 제2 사용자(예를 들어, 914B)와 연관된 제5 위치에 기초하지 않고 제1 사용자(예를 들어, 914A)와 연관된 제2 위치에 기초하여 제1 애플리케이션의 표현(예를 들어, 908)의 배향을 업데이트하는 것(832)을 포함한다. 일부 실시예들에서, 전자 디바이스는 3차원 환경 내의 제5 위치에 제2 사용자의 표현을 디스플레이하고, 제2 사용자의 전자 디바이스는 제5 위치의 시점으로부터의 가상 환경을 디스플레이한다. 일부 실시예들에서, 가상 환경 내의 하나 이상의 애플리케이션들은 개인 모드로 디스플레이되며, 여기서 가상 환경 내의 사용자들 전부가 개인 모드에서 애플리케이션들과 상호작용하고/하거나 보는 능력을 갖는 것은 아니다(예를 들어, 하나 이상, 그러나 전부는 아님). 예를 들어, 제1 애플리케이션이 개인 모드로 디스플레이되고 제1 사용자에게만 액세스가능한 경우, 제1 애플리케이션을 이동시키기 위한 입력에 응답하여, 전자 디바이스는 표현이 이동되고 있는 동안 (그리고 예를 들어, 3차원 환경에서 제2 사용자의 위치에 관계없이) 제1 사용자를 향해 배향되도록 제1 애플리케이션의 표현의 배향을 업데이트한다. 일부 실시예들에서, 제1 애플리케이션을 제1 사용자를 향해 배향시키는 것은 제2 사용자의 위치와 독립적이다. 도 9c에서와 같은 일부 실시예들에서, 제1 애플리케이션의 표현(예를 들어, 906)의 배향을 업데이트하는 것은 제1 애플리케이션의 표현(예를 들어, 906)이 3차원 환경 내의 제5 위치와 연관된 제1 사용자(예를 들어, 914A) 및 제2 사용자(예를 들어, 914B)에게 액세스가능하다는 결정에 따라, 제1 사용자(예를 들어, 914A)와 연관된 제2 위치 및 제2 사용자(예를 들어, 914B)와 연관된 제5 위치에 기초하여 제1 애플리케이션의 표현(예를 들어, 906)의 배향을 업데이트하는 것(834)을 포함한다(830). 일부 실시예들에서, 가상 환경 내의 하나 이상의 애플리케이션들은, 가상 환경 내의 사용자들 모두가 공개 모드에서 애플리케이션들과 상호작용하고/하거나 애플리케이션들을 보는 능력을 갖는 공개 모드, 또는 제1 사용자 및 제2 사용자(및 모든 사용자들보다는 적은 잠재적인 다른 사용자들)가 제1 및 제2 사용자들에게 액세스가능한 공유 모드에서 애플리케이션들과 상호작용하고/하거나 애플리케이션들을 보는 능력을 갖는 공유 모드에서 디스플레이된다. 예를 들어, 제1 애플리케이션이 공유 모드로 디스플레이되고 제1 및 제2 사용자들 둘 모두에게 액세스가능한 경우, 제1 애플리케이션을 이동시키기 위한 입력에 응답하여, 전자 디바이스는 제1 및 제2 사용자들의 공유된 시점을 향해 배향되도록 제1 애플리케이션의 표현의 배향을 업데이트한다. 일부 실시예들에서, 애플리케이션의 배향은 방법(1000)의 하나 이상의 단계들에 따라 사용자들 둘 모두의 위치들에 따라 업데이트된다.
애플리케이션과 상호작용할 수 있는 사용자(들)만의 위치(들)에 기초하여 애플리케이션의 표현의 배향을 업데이트하는 전술된 방식은, 애플리케이션에 대한 액세스를 갖는 모든 사용자들이 애플리케이션의 표현을 쉽게 볼 수 있도록 애플리케이션들을 배향시키는 효율적인 방식을 제공하고, 이는 추가적으로 전력 사용량을 감소시키고, 사용 시에 에러들을 감소시키면서, 사용자가 전자 디바이스를 더 빠르고 효율적으로 사용할 수 있게 함으로써, 전자 디바이스의 배터리 수명을 개선한다.
일부 실시예들에서, 전자 디바이스(예를 들어, 101)는 3차원 환경(예를 들어, 704)에서 제2 애플리케이션의 표현을 디스플레이하기 위해 개개의 입력을 검출하고(836), 개개의 입력이 검출되었을 때 제2 애플리케이션의 표현은 3차원 환경(예를 들어, 704)에서 디스플레이되지 않았다. 일부 실시예들에서, 입력은, 입력이 수신되었을 때 전자 디바이스 상에서 실행되고 있지 않았던 애플리케이션을 개시하기 위한 입력, 입력이 수신되었을 때 은닉되었던 사용자 인터페이스를 보기 위한 입력, 또는 입력이 수신되었을 때 추가적인 표현을 디스플레이하지 않으면서 전자 디바이스 상에서 실행되고 있던 애플리케이션의 추가적인 표현을 디스플레이 하기 위한 입력이다. 일부 실시예들에서, 개개의 입력을 검출하는 것에 응답하여, 전자 디바이스(예를 들어, 101)는 3차원 환경 내의 사용자들의 수에 기초하여 3차원 환경(예를 들어, 704) 내의 개개의 위치에 제2 애플리케이션의 표현을 디스플레이한다(838). 일부 실시예들에서, 3차원 환경에 하나의 사용자가 있다면, 전자 디바이스는 사용자와 연관된 위치에 기초하여 제1 개개의 위치에 표현을 디스플레이한다. 일부 실시예들에서, 3차원 환경에 2명의 사용자들이 있다면, 전자 디바이스는 2명의 사용자들 둘 모두와 연관된 위치들에 기초하여 제1 개개의 위치와 상이한 제2 개개의 위치에 표현을 디스플레이한다(예를 들어, 사용자들 둘 모두가 표현의 동일한 측면에 있는 경우 사용자들 둘 모두 사이의 위치를 향해 배향되거나, 또는 2명의, 사용자들이 표현의 상이한 측면들 상에 있는 경우 2명의 사용자들 사이에 위치됨). 일부 실시예들에서, 표현이 초기에 제시되는 3차원 환경 내의 위치는 표현과 상호작용하고/하거나 볼 수 있는 사용자들의 위치(들)에 기초한다. 예를 들어, 가상 환경에 3명의 사용자들이 있고 모든 사용자들이 표현과 상호작용하고/하거나 볼 수 있다면, 전자 디바이스는 3명의 사용자들 각각과 연관된 위치들에 기초하여 3차원 환경 내의 개개의 위치에 표현을 디스플레이한다. 일부 실시예들에서, 표현의 초기 위치는 방법(1000)의 하나 이상의 단계들에 따라 선택된다.
3차원 환경 내의 사용자들의 수에 기초하여 3차원 환경의 위치에 제2 애플리케이션의 표현을 디스플레이하는 전술된 방식은 가상 환경 내의 관련 사용자들 모두에 적합한 위치에 제2 표현을 초기에 제시하는 효율적인 방식을 제공하고, 이는 추가적으로 전력 사용량을 감소시키고, 사용 시에 에러들을 감소시키면서, (예를 들어, 3차원 환경 내의 사용자들 모두에게 적합한 위치로 표현을 이동시키는 데 필요한 입력들의 수를 감소시킴으로써) 사용자가 전자 디바이스를 더 빠르고 효율적으로 사용할 수 있게 함으로써, 전자 디바이스의 배터리 수명을 개선한다.
도 7a와 같은 일부 실시예들에서, 3차원 환경(예를 들어, 704)이 제1 사용자(예를 들어, 714)를 포함하고 어떠한 다른 사용자들도 포함하지 않는다는 결정에 따라, 개개의 위치는 제1 사용자(예를 들어, 714)의 전방에 있다(840). 일부 실시예들에서, 사용자는 3차원 환경 내의 개개의 위치 및 배향과 연관되고, 표현은 사용자와 연관된 위치를 향한 배향으로 사용자의 시선 내의 위치에 배치된다. 도 9a와 같은 일부 실시예들에서, 3차원 환경(예를 들어, 904)이 제1 사용자(예를 들어, 914A) 및 제2 사용자(예를 들어, 914B)를 포함한다는 결정에 따라, 개개의 위치는 제1 사용자(예를 들어, 914A) 및 제2 사용자(예를 들어, 914B)의 위치들에 기초하여 위치된다(842). 일부 실시예들에서, 개개의 위치는 제1 사용자와 제2 사용자의 위치들 사이에 있다. 일부 실시예들에서, 개개의 위치는 제1 사용자와 제2 사용자의 위치들로부터 등거리에 있다. 일부 실시예들에서, (예를 들어, 표현의 제1 측면이 제1 사용자를 향해 그리고/또는 제2 사용자로부터 멀리 배향되고, 표현의 제2 측면이 제2 사용자를 향해 그리고 제1 사용자로부터 멀리 배향되도록) 제1 사용자 및 제2 사용자는 각각 3차원 환경 내의 위치들과 연관되고, 표현은 사용자들과 연관된 위치들 사이에 있는 위치에 제시된다. 일부 실시예들에서, 전자 디바이스는 제1 사용자와 연관된 위치에 기초하여 제1 배향으로 표현을 제시하고, 제2 사용자의 전자 디바이스는 제2 사용자와 연관된 위치에 기초하여 제2 배향으로 표현을 제시한다.
하나의 사용자가 존재할 때에 비해 2명의 사용자들이 존재할 때 상이한 방식들로 애플리케이션을 배치하는 전술된 방식은 표현에 액세스할 수 있는 사용자들이 쉽게 볼 수 있는 방식으로 표현을 제시하는 효율적인 방식들을 제공하고, 이는 추가적으로 전력 사용량을 감소시키고, 사용 시에 에러들을 감소시키면서, (예를 들어, 사용자(들)이 쉽게 볼 수 있는 위치로 표현을 이동시키는 데 필요한 입력들의 수를 감소시킴으로써) 사용자가 전자 디바이스를 더 빠르고 효율적으로 사용할 수 있게 함으로써, 전자 디바이스의 배터리 수명을 개선한다.
도 7a와 같은 일부 실시예들에서, 3차원 환경(예를 들어, 704)이 제1 사용자(예를 들어, 714)를 포함하고 어떠한 다른 사용자들도 포함하지 않는다는 결정에 따라, 제2 애플리케이션의 표현은 제1 사용자를 향해 배향되어 디스플레이된다(844). 일부 실시예들에서, 사용자는 3차원 환경 내의 개개의 위치 및 배향과 연관되고, 표현은 사용자와 연관된 위치를 향한 배향으로 사용자의 시선 내의 위치에 배치된다. 도 9a에서와 같은 일부 실시예들에서, 3차원 환경(예를 들어, 904)이 제1 사용자(예를 들어, 914A) 및 제2 사용자(예를 들어, 914B)를 포함한다는 결정에 따라, 제2 애플리케이션의 표현은 제1 사용자와 제2 사용자 사이의 위치를 향해 배향되어 디스플레이된다(846). 일부 실시예들에서, 제2 애플리케이션의 표현은 사용자들과 연관된 위치들 사이에 있지 않은 위치에 디스플레이된다. 일부 실시예들에서, 제2 애플리케이션의 표현의 위치 및 배향은 애플리케이션의 표현의 개개의 면/측면이 사용자들과 연관된 위치들(예를 들어, 사용자들 사이의 위치, 이를테면 "공유된" 위치)을 향해 배향되도록 한다. 일부 실시예들에서, 사용자들 둘 모두는 제2 애플리케이션의 표현의 동일한 측면 상에 있다(예를 들어, 둘 모두는 제2 애플리케이션의 표현의 전방 측에 있다). 일부 예들에서, 제2 애플리케이션의 표현의 위치는 방법(1000)의 하나 이상의 단계들에 따라 선택된다.
하나의 사용자가 존재할 때에 비해 2명의 사용자들이 존재할 때 상이한 방식들로 애플리케이션을 배치하는 전술된 방식은 표현에 액세스할 수 있는 사용자들이 쉽게 볼 수 있는 방식으로 표현을 제시하는 효율적인 방식들을 제공하고, 이는 추가적으로 전력 사용량을 감소시키고, 사용 시에 에러들을 감소시키면서, (예를 들어, 사용자(들)이 쉽게 볼 수 있는 위치로 표현을 이동시키는 데 필요한 입력들의 수를 감소시킴으로써) 사용자가 전자 디바이스를 더 빠르고 효율적으로 사용할 수 있게 함으로써, 전자 디바이스의 배터리 수명을 개선한다.
도 7a와 같은 일부 실시예들에서, 3차원 환경(예를 들어, 704)이 제1 사용자(예를 들어, 714)를 포함하고 어떠한 다른 사용자들도 포함하지 않는다는 결정에 따라, 개개의 위치는 제1 사용자로부터 제1 거리에 있다(848). 일부 실시예들에서, 개개의 위치는 사용자와 연관된 3차원 환경 내의 위치로부터의 제1 거리에 있다. 일부 실시예들에서, 제1 거리는 사용자와 연관된 위치 및 3차원 환경 내의 하나 이상의 다른 객체들(예를 들어, 가상 객체들, 실제 객체들)의 위치(들)에 기초하여 결정된다. 도 9a와 같은 일부 실시예들에서, 3차원 환경(예를 들어, 904)이 제1 사용자(예를 들어, 914A) 및 제2 사용자(예를 들어, 914B)를 포함한다는 결정에 따라(850), 개개의 위치는 제1 사용자(예를 들어, 914A)로부터 제1 거리와 상이한 제2 거리(그리고 예를 들어, 제2 사용자로부터의 제3 거리(예를 들어, 제2 사용자와 연관된 3차원 환경 내의 위치))에 있다. 일부 실시예들에서, 개개의 위치는 제1 사용자와 연관된 3차원 환경 내의 위치로부터 떨어진 제2 거리에 있다. 일부 실시예들에서, 거리는 제1 사용자 및 제2 사용자 둘 모두가 제1 애플리케이션의 표현을 볼 수 있도록 선택된다. 개개의 위치, 제2 거리 및 제3 거리는 선택적으로, 제1 사용자 및 제2 사용자와 연관된 위치들 및/또는 3차원 환경 내의 하나 이상의 다른 객체들(예를 들어, 가상 객체들, 실제 객체들)의 위치(들)에 기초하여 선택된다. 일부 실시예들에서, 개개의 위치는 방법(1000)의 하나 이상의 단계들에 따라 선택된다. 일부 실시예들에서, 3차원 환경에 하나의 사용자가 있는 동안, 전자 디바이스는 사용자로부터 제1 거리에 표현을 디스플레이하고, 3차원 환경에 하나 초과의 사용자가 있는 동안, 전자 디바이스는 사용자들의 공유된 관심 포인트로부터의 제2 거리(예를 들어, 제1 거리보다 큼)(예를 들어, 사용자들 모두 사이의 위치, 사용자들 모두를 포함하는 환경의 영역 등)에 표현을 디스플레이한다.
하나의 사용자가 존재할 때에 비해 2명의 사용자들이 존재할 때 사용자들로부터 상이한 거리들에 애플리케이션을 배치하는 전술된 방식은 표현에 액세스할 수 있는 사용자들이 쉽게 볼 수 있는 방식으로 표현을 제시하는 효율적인 방식들을 제공하고, 이는 추가적으로 전력 사용량을 감소시키고, 사용 시에 에러들을 감소시키면서, (예를 들어, 사용자(들)이 쉽게 볼 수 있는 위치로 표현을 이동시키는 데 필요한 입력들의 수를 감소시킴으로써) 사용자가 전자 디바이스를 더 빠르고 효율적으로 사용할 수 있게 함으로써, 전자 디바이스의 배터리 수명을 개선한다.
도 13a에서와 같은 일부 실시예들에서, 3차원 환경(1304) 내의 제1 위치에 제1 애플리케이션의 표현(1306)을 디스플레이하는 동안, 전자 디바이스(예를 들어, 101)는 제2 사용자가 3차원 환경(1304)에 추가되었음을 검출하고(852)(예를 들어, 표시(1330a 또는 1330b)를 검출함), 제2 사용자는 3차원 환경 내의 제5 위치와 연관된다. 일부 실시예들에서, 전자 디바이스는 제2 사용자를 3차원 환경에 추가하라는 요청에 대응하는 입력을 검출하거나, 또는 전자 디바이스는 제2 사용자가 3차원 환경에 참여하고 있다는 표시를 (예를 들어, 네트워크 접속을 통해) 수신한다. 일부 실시예들에서, 제2 사용자가 3차원 환경에 추가되는 것을 검출하기 전에, 제1 사용자는 3차원 환경의 유일한 사용자이다. 도 13b에서와 같은 일부 실시예들에서, 제2 사용자(1314C)가 3차원 환경(1304)에 추가되었다는 것을 검출하는 것에 응답하여(854), 제1 애플리케이션의 표현(1306)이 제1 사용자(1314A) 및 제2 사용자(1314C)에게 액세스가능하다는 결정에 따라, 전자 디바이스(예를 들어, 101)는 제2 위치 및 제5 위치에 기초하여 3차원 환경에서 제1 위치로부터 제6 위치로 제1 애플리케이션의 표현(1306)을 이동시킨다(856)(예를 들어, 전자 디바이스(예를 들어, 101a) 또는 (예를 들어, 101b)는 사용자 C(1314C)가 3차원 환경(1304)에 참여하는 것에 응답하여 표현(1306)을 이동시킬 수 있다). 일부 실시예들에서, 제6 위치는 방법(1000)의 하나 이상의 단계들에 따라 선택된다. 일부 실시예들에서, 제2 사용자가 3차원 환경에 추가되는 것을 검출하는 것에 응답하여, 전자 디바이스는, 표현을 사용자들 둘 모두에게 가시적이게 하는 위치 및/또는 배향으로 디스플레이되도록 제1 애플리케이션의 표현을 업데이트한다. 예를 들어, 표현은 콘텐츠가 디스플레이되는 개개의 측면을 포함하고, 제6 위치는 전자 디바이스가 표현의 개개의 측면을 사용자들 둘 모두와 연관된 위치들을 향해 배향시킬 수 있는 위치이다. 일부 실시예들에서, 제1 애플리케이션의 표현의 위치만이 변한다. 일부 실시예들에서, 제1 애플리케이션의 표현의 배향만이 변한다. 일부 실시예들에서, 제1 애플리케이션의 표현의 위치 및 배향이 변한다.
제2 위치 및 제5 위치에 기초하여 제1 애플리케이션의 표현을 이동시키는 전술된 방식은 제1 사용자 및 제2 사용자 둘 모두가 제1 애플리케이션의 표현을 볼 수 있도록 3차원 환경을 업데이트하는 효율적인 방식을 제공하고, 이는 추가적으로 전력 사용량을 감소시키고, 사용 시에 에러들을 감소시키면서, (예를 들어, 사용자들 둘 모두가 표현을 볼 수 있는 위치에 표현을 배치하는 데 필요한 입력들을 감소시킴으로써) 사용자가 전자 디바이스를 더 빠르고 효율적으로 사용할 수 있게 함으로써, 전자 디바이스의 배터리 수명을 개선한다.
도 13a에서와 같은 일부 실시예들에서, 3차원 환경(1304) 내의 제1 위치에 제1 애플리케이션의 표현(1306)을 디스플레이하는 동안, 전자 디바이스(예를 들어, 101)는 제2 사용자가 3차원 환경(1304)에 추가되었음을 검출하고(858)(예를 들어, 표시(1330a 또는 1330b)를 검출함), 제2 사용자는 3차원 환경 내의 제5 위치와 연관된다. 일부 실시예들에서, 전자 디바이스는 제2 사용자를 3차원 환경에 추가하라는 요청에 대응하는 입력을 검출하거나, 또는 전자 디바이스는 제2 사용자가 3차원 환경에 참여하고 있다는 표시를 (예를 들어, 네트워크 접속을 통해) 수신한다. 일부 실시예들에서, 제2 사용자가 3차원 환경에 추가되는 것을 검출하기 전에, 제1 사용자는 3차원 환경의 유일한 사용자이다. 도 9b에서와 같이 제1 애플리케이션의 표현(예를 들어, 908)이 제2 사용자(예를 들어, 914B)가 아니라 제1 사용자(예를 들어, 914A)에게 액세스가능하다는 결정에 따라(860), 전자 디바이스(예를 들어, 101)는 제1 위치에 제1 애플리케이션(예를 들어, 908)의 표현의 디스플레이를 유지하고(862), 제1 애플리케이션의 표현은 제2 사용자에게 가시적이 아니다(예를 들어, 전자 디바이스(예를 들어, 101a)는 추가적인 사용자가 3차원 환경(예를 들어, 904)에 참여하는 것에 응답하여 표현(예를 들어, 908)의 디스플레이를 유지하는데, 이는 표현(예를 들어, 908)이 사용자 A(예를 들어, 914A)에게만 액세스가능하기 때문이다). 일부 실시예들에서, 제1 애플리케이션의 표현은, 제1 사용자가 제1 애플리케이션과 상호작용하고/하거나 볼 수 있지만 3차원 환경 내의 다른 사용자들이 제1 애플리케이션과 상호작용할 수 없고/없거나 볼 수 없는 개인 모드로 디스플레이된다. 예를 들어, 제2 사용자가 제1 애플리케이션에 액세스하지 않기 때문에 제2 사용자의 전자 디바이스는 제1 애플리케이션의 표현을 디스플레이하는 것을 보류한다. 일부 실시예들에서, 제2 사용자가 3차원 공간에 참여한 후에, 전자 디바이스는, 제2 사용자가 3차원 공간에 참여하기 전에 표현이 디스플레이되었던 것과 동일한 위치 및 배향으로 제1 애플리케이션의 표현을 계속 디스플레이한다.
제2 사용자가 3차원 공간에 추가된 후에 제2 사용자에게 액세스가능하지 않은 애플리케이션들의 표현들의 디스플레이를 유지하는 전술된 방식은 3차원 공간에서 다른 사용자들에게 가시적이지 않은 애플리케이션들의 표현들을 디스플레이하는 효율적인 방식을 제공하고, 이는 추가적으로 전력 사용을 감소시키고, 제2 사용자가 제1 애플리케이션에 대한 액세스를 갖지 않을 때 제1 애플리케이션의 표현의 업데이트된 위치를 계산하는 것을 보류함으로써 전자 디바이스의 배터리 수명을 개선한다.
도 9a에서와 같은 일부 실시예들에서, 3차원 환경은 3차원 환경 내의 제2 위치에서의 제1 사용자(예를 들어, 914A), 및 3차원 환경(예를 들어, 904) 내의 제5 위치에서의 제2 사용자(예를 들어, 914B)를 포함한다(864). 일부 실시예들에서, 전자 디바이스는 3차원 환경 내의 제5 위치에 제2 사용자의 표현을 디스플레이하고, 제2 사용자의 전자 디바이스는 3차원 환경 내의 제5 위치의 시점으로 3차원 환경을 디스플레이한다. 일부 실시예들에서, 전자 디바이스(예를 들어, 101)는 3차원 환경에서 제2 애플리케이션의 표현을 디스플레이하기 위해 개개의 입력을 검출하고(866), 개개의 입력이 검출되었을 때 제2 애플리케이션의 표현은 3차원 환경에서 디스플레이되지 않았고, 사용자 A(예를 들어, 914A)에게 액세스가능하지만 사용자 B(예를 들어, 914B)에게 액세스가능하지 않은 도 9a의 표현(예를 들어, 908)과 같은 제2 애플리케이션의 표현은 3차원 환경 내의 복수의 사용자들에 액세스가능하지 않다. 일부 실시예들에서, 제2 애플리케이션은, 입력을 제공한 제1 사용자가 제2 애플리케이션에 액세스하고/하거나 볼 수 있지만 3차원 환경 내의 다른 사용자들이 제2 애플리케이션에 액세스하고/하거나 볼 수 없는 개인 모드에 있다. 일부 실시예들에서, 개개의 입력은, 제2 애플리케이션을 개시하라는 요청, 이전에 은닉되었던 제2 애플리케이션의 표현을 디스플레이하라는 요청, 또는 전자 디바이스에 의해 이미 디스플레이된 제2 애플리케이션의 표현에 추가로 제2 애플리케이션의 추가적인 표현을 디스플레이하라는 요청에 대응한다. 일부 실시예들에서, 개개의 입력을 수신한 것에 응답하여(868), 개개의 입력이 제1 사용자(예를 들어, 914A)와 연관된다는 결정에 따라(예를 들어, 개개의 입력을 검출하는 전자 디바이스가 제1 사용자에 의해 제공됨), 도 9a에서와 같이, 전자 디바이스(예를 들어, 101)는 제2 사용자(예를 들어, 914B)의 제5 위치가 아니라 제1 사용자(예를 들어, 914A)의 제2 위치에 기초하여 3차원 환경(예를 들어, 904) 내의 제6 위치에 제2 애플리케이션의 표현(예를 들어, 908)을 디스플레이(870)한다. 일부 실시예들에서, 제1 사용자가 제2 애플리케이션의 표현을 디스플레이하라는 요청에 대응하는 입력을 제공하면, 전자 디바이스는 제1 사용자와 연관된 위치에 기초한 위치 및/또는 배향에 제2 애플리케이션의 표현을 디스플레이한다. 예를 들어, 제2 애플리케이션의 표현은 제2 위치에 근접한 위치에 디스플레이되고/되거나 제2 위치를 향해 배향된다. 일부 실시예들에서, 제6 위치는 제1 사용자 이외의 3차원 환경 내의 사용자들의 위치(들)와 독립적으로 선택된다. 일부 실시예들에서, 개개의 입력을 수신한 것에 응답하여(868), 개개의 입력이 제2 사용자와 연관된다는 결정에 따라(예를 들어, 개개의 입력을 검출하는 전자 디바이스가 제2 사용자에 의해 제공됨), 전자 디바이스(예를 들어, 101)는 제1 사용자의 제2 위치가 아니라 제2 사용자의 제5 위치에 기초하여 3차원 환경 내의 제7 위치에 제2 애플리케이션의 표현을 디스플레이한다(872)(예를 들어, 표현(예를 들어, 908)이 도 9a의 사용자 A(예를 들어, 914A) 대신 사용자 B(예를 들어, 914B)에 대해 액세스가능한 경우). 일부 실시예들에서, 제2 사용자가 제2 애플리케이션의 표현을 디스플레이하라는 요청에 대응하는 입력을 제공하면, 전자 디바이스는 제2 사용자와 연관된 위치에 기초한 위치 및/또는 배향에 제2 애플리케이션의 표현을 디스플레이한다. 예를 들어, 제2 애플리케이션의 표현은 제5 위치에 근접한 위치에 디스플레이되고/되거나 제5 위치를 향해 배향된다. 일부 실시예들에서, 제6 위치는 제2 사용자 이외의 3차원 환경 내의 사용자들의 위치(들)와 독립적으로 선택된다.
제2 애플리케이션의 표현을 디스플레이하기 위해 입력을 제공한 사용자와 연관된 위치에 기초한 위치에 제2 애플리케이션의 표현을 배치하는 전술된 방식은 애플리케이션의 디스플레이를 요청한 사용자에게 가시적인 위치에 애플리케이션을 배치하는 효율적인 방법을 제공하고, 이는 추가적으로 전력 사용량을 감소시키고, 사용 시에 에러들을 감소시키면서, (예를 들어, 애플리케이션의 디스플레이를 요청한 사용자에게 쉽게 가시적인 위치에 애플리케이션을 배치하는 데 필요한 입력들을 감소시킴으로써) 사용자가 전자 디바이스를 더 빠르고 효율적으로 사용할 수 있게 함으로써, 전자 디바이스의 배터리 수명을 개선한다.
도 9a에서와 같은 일부 실시예들에서, 3차원 환경(예를 들어, 904)은 3차원 환경 내의 제2 위치에서의 제1 사용자, 및 3차원 환경 내의 제5 위치에서의 제2 사용자를 포함한다(874). 일부 실시예들에서, 전자 디바이스는 3차원 환경 내의 제5 위치에 제2 사용자의 표현을 디스플레이하고, 제2 사용자의 전자 디바이스는 3차원 환경 내의 제5 위치의 시점으로부터의 3차원 환경을 디스플레이한다. 일부 실시예들에서, 전자 디바이스(예를 들어, 101)는 3차원 환경에서 제2 애플리케이션의 표현을 디스플레이하기 위해 개개의 입력을 검출하고(876), 개개의 입력이 검출되었을 때(예를 들어, 도 9a에 예시된 3차원 환경(예를 들어, 904)에서 표현들(예를 들어, 906, 908 또는 922) 중 하나를 디스플레이하기 위한 입력을 수신함) 제2 애플리케이션의 표현은 3차원 환경에 디스플레이되지 않았다. 일부 실시예들에서, 제2 애플리케이션은, 3차원 환경 내의 사용자들 전부가 아닌 일부가 애플리케이션에 액세스하고/하거나 볼 수 있는 개인 모드에 있다. 일부 실시예들에서, 개개의 입력은, 제2 애플리케이션을 개시하라는 요청, 이전에 은닉되었던 제2 애플리케이션의 표현을 디스플레이하라는 요청, 또는 전자 디바이스에 의해 이미 디스플레이된 제2 애플리케이션의 표현에 추가로 제2 애플리케이션의 추가적인 표현을 디스플레이하라는 요청에 대응한다. 일부 실시예들에서, 개개의 입력을 수신하는 것에 응답하여, 전자 디바이스(예를 들어, 101)는 3차원 환경(예를 들어, 도 9a의 3차원 환경(예를 들어, 904)) 내의 개개의 위치에 제2 애플리케이션의 표현(예를 들어, 도 9a의 3차원 환경(예를 들어, 904) 내의 표현들(예를 들어, 906, 908 또는 922) 중 하나)을 디스플레이한다(878). 일부 실시예들에서, 제2 애플리케이션의 표현이 제1 사용자에게 액세스가능하지 않다는 결정에 따라(예를 들어, 도 9a에서 표현(예를 들어, 908)이 사용자 B(예를 들어, 914B)에게 액세스가능하지 않는 방식과 유사한 방식으로), 개개의 위치는 제1 사용자의 제2 위치에 기초하지 않는다(880). 일부 실시예들에서, 제2 애플리케이션은 제2 사용자 및 선택적으로 제1 사용자 이외의 3차원 환경 내의 하나 이상의 추가적인 사용자들에게 액세스가능할 수 있다. 일부 실시예들에서, 제2 애플리케이션이 제2 사용자에게만 액세스가능한 경우, 개개의 위치는 제5 위치에 기초한다. 일부 실시예들에서, 제2 애플리케이션이 제2 사용자 및 하나 이상의 추가적인 사용자들에게 액세스가능한 경우, 개개의 위치는, 애플리케이션에 대한 액세스를 갖는 사용자들의 위치들 모두에 기초하고, 애플리케이션에 대한 액세스를 갖지 않는 하나 이상의 사용자들의 위치들에 기초하지 않는다. 일부 실시예들에서, 전자 디바이스는 방법(1000)의 하나 이상의 단계들에 따라 다수의 사용자들의 위치들에 따라 제2 애플리케이션의 표현을 배치한다. 일부 실시예들에서, 제2 애플리케이션의 표현이 제2 사용자에게 액세스가능하지 않다는 결정에 따라(예를 들어, 도 9a에서 표현(예를 들어, 908)이 사용자 B(예를 들어, 914B)에게 액세스가능하지 않는 방식과 유사한 방식으로), 개개의 위치는 제2 사용자의 제5 위치에 기초하지 않는다(882). 일부 실시예들에서, 제2 애플리케이션은 제1 사용자 및 선택적으로 제2 사용자 이외의 3차원 환경 내의 하나 이상의 추가적인 사용자들에게 액세스가능할 수 있다. 일부 실시예들에서, 제2 애플리케이션이 제1 사용자에게만 액세스가능한 경우, 개개의 위치는 제2 위치에 기초한다. 일부 실시예들에서, 제2 애플리케이션이 제1 사용자 및 하나 이상의 추가적인 사용자들에게 액세스가능한 경우, 개개의 위치는, 애플리케이션에 대한 액세스를 갖는 사용자들의 위치들 모두에 기초하고, 애플리케이션에 대한 액세스를 갖지 않는 하나 이상의 사용자들의 위치들에 기초하지 않는다. 일부 실시예들에서, 전자 디바이스는 방법(1000)의 하나 이상의 단계들에 따라 다수의 사용자들의 위치들에 따라 제2 애플리케이션의 표현을 배치한다.
제2 애플리케이션의 개개의 위치를 제2 애플리케이션에 대한 액세스를 갖지 않는 사용자들의 위치들에 기초로 하지 않는 전술된 방식은 제2 애플리케이션의 표현을 배치하기 위한 기준들을 설정하는 효율적인 방법을 제공하고, 이는 추가적으로 전력 사용량을 감소시키고, 사용 시에 에러들을 감소시키면서, 제2 애플리케이션의 위치를 결정하는 복잡도를 단순화시킴으로써 전자 디바이스의 배터리 수명을 개선한다.
도 9a에서와 같은 일부 실시예들에서, 제2 애플리케이션의 표현(예를 들어, 908)이 제1 사용자(예를 들어, 914B)에게 액세스가능하지 않다는 결정에 따라, 제2 애플리케이션의 표현의 시각적 표시는 제2 애플리케이션의 표현의 콘텐츠가 제1 사용자에게 가시적이지 않으면서 제1 사용자에게 가시적이다(884)(예를 들어, 도 9a에서 전자 디바이스 B(예를 들어, 101b)에 의해 디스플레이된 표현(예를 들어, 908)). 일부 실시예들에서, 시각적 표시는 제1 사용자에게 액세스가능하지 않은 객체가 디스플레이되고 있음을 나타내는 제2 애플리케이션의 표현의 위치에 디스플레이되는 객체이다. 일부 실시예들에서, 표시는 객체가 애플리케이션 사용자 인터페이스라는 표시를 포함한다. 일부 실시예들에서, 표시는 객체가 애플리케이션 사용자 인터페이스라는 표시를 포함하지 않는다. 일부 실시예들에서, 표시는 제2 애플리케이션의 이름의 표시를 포함한다. 일부 실시예들에서, 표시는 제2 애플리케이션의 이름의 표시를 포함하지 않는다. 일부 실시예들에서, 표시는 제2 사용자 인터페이스의 표현과 동일한 치수들 및/또는 형상을 갖는다. 일부 실시예들에서, 표시는 제2 사용자 인터페이스의 표현의 치수들과 상이한 치수들 및/또는 형상을 갖는다. 도 9a에서와 같은 일부 실시예들에서, 제2 애플리케이션의 표현(예를 들어, 908)이 제2 사용자에게 액세스가능하지 않다는 결정에 따라, 제2 애플리케이션의 표현의 시각적 표시는 제2 애플리케이션의 표현의 콘텐츠가 제2 사용자에게 가시적이지 않으면서 제2 사용자에게 가시적이다(886)(예를 들어, 도 9a에서 전자 디바이스 B(예를 들어, 101b)에 의해 디스플레이된 표현(예를 들어, 908)). 일부 실시예들에서, 시각적 표시는 제2 사용자에게 액세스가능하지 않은 객체가 디스플레이되고 있음을 나타내는 제2 애플리케이션의 표현의 위치에 디스플레이되는 객체이다. 일부 실시예들에서, 표시는 객체가 애플리케이션 사용자 인터페이스라는 표시를 포함한다. 일부 실시예들에서, 표시는 객체가 애플리케이션 사용자 인터페이스라는 표시를 포함하지 않는다. 일부 실시예들에서, 표시는 제2 애플리케이션의 이름의 표시를 포함한다. 일부 실시예들에서, 표시는 제2 애플리케이션의 이름의 표시를 포함하지 않는다. 일부 실시예들에서, 표시는 제2 사용자 인터페이스의 표현과 동일한 치수들 및/또는 형상을 갖는다. 일부 실시예들에서, 표시는 제2 사용자 인터페이스의 표현의 치수들과 상이한 치수들 및/또는 형상을 갖는다.
제2 애플리케이션의 표현의 콘텐츠를 포함하지 않는 제2 애플리케이션의 시각적 표시를 디스플레이하는 전술된 방식은 제2 애플리케이션에 대한 액세스를 갖지 않는 사용자가 가상 객체를 제2 애플리케이션의 위치에 배치하는 것을 방지하는 효율적인 방법을 제공하고, 이는 추가적으로 전력 사용량을 감소시키고, 사용 시에 에러들을 감소시키면서, (예를 들어, 3차원 환경 내의 동일한 위치에 2개의 객체들을 배치하는 것을 회피하는 데 필요한 입력들의 수를 감소시킴으로써) 사용자가 전자 디바이스를 더 빠르고 효율적으로 사용할 수 있게 함으로써, 전자 디바이스의 배터리 수명을 개선한다.
도 9a에서와 같은 일부 실시예들에서, 3차원 환경(예를 들어, 904)은 3차원 환경 내의 제2 위치에서의 제1 사용자(예를 들어, 914A), 및 3차원 환경 내의 제5 위치에서의 제2 사용자(예를 들어, 914B)를 포함한다(888). 일부 실시예들에서, 전자 디바이스는 3차원 환경 내의 제5 위치에 제2 사용자의 표현을 디스플레이하고, 제2 사용자의 전자 디바이스는 3차원 환경 내의 제5 위치의 시점으로부터의 3차원 환경을 디스플레이한다. 일부 실시예들에서, 개개의 애플리케이션의 표현은, 이동 입력이 수신되기 전에, 제1 사용자 및 제2 사용자에게 액세스가능하고/하거나 볼 수 있다. 일부 실시예들에서, 이동 입력을 수신하는 것에 응답하여(890), 이동 입력이 3차원 환경 내의 제1 위치로부터 제3 위치로 제1 애플리케이션의 표현을 이동시키라는 요청에 대응한다는 결정에 따라(892), 제3 위치가 제1 사용자의 제2 위치와 제2 사용자의 제5 위치 사이에 있다는 결정에 따라, 전자 디바이스(예를 들어, 101)는 제1 애플리케이션의 표현을 제1 사용자에게 액세스가능하지만 제2 사용자에게 액세스가능하지 않은 것으로 업데이트한다(894)(예를 들어, 표현(예를 들어, 908)은 도 9a의 사용자 A(예를 들어, 914A)에게 액세스가능하지만 사용자 B(예를 들어, 914B)에게 액세스가능하지 않음). 일부 실시예들에서, 제2 사용자의 전자 디바이스는 개개의 애플리케이션의 표현 및/또는 콘텐츠를 디스플레이하는 것을 중단한다. 일부 실시예들에서, 이동 입력에 응답하여, 개개의 애플리케이션은 3차원 환경에서 제1 사용자 및 제2 사용자 이외의 하나 이상의 다른 사용자들에게 더 이상 액세스가능하지 않다. 일부 실시예들에서, 이동 입력에 응답하여, 개개의 애플리케이션은 이동 입력을 제공한 사용자에게만 액세스가능하고, 3차원 환경 내의 임의의 다른 사용자들에게 더 이상 액세스가능하지 않다. 도 9c에서와 같은 일부 실시예들에서, 이동 입력을 수신하는 것에 응답하여(890), 이동 입력이 3차원 환경(예를 들어, 904) 내의 제1 위치로부터 제3 위치로 제1 애플리케이션의 표현(예를 들어, 906)을 이동시키라는 요청에 대응한다는 결정에 따라(892), 제3 위치가 제1 사용자(예를 들어, 914A)의 제2 위치와 제2 사용자(예를 들어, 914B)의 제5 위치 사이에 있지 않다는 결정에 따라, 전자 디바이스(예를 들어, 101)는 제1 애플리케이션의 표현(예를 들어, 906)을 제1 사용자(예를 들어, 914A) 및 제2 사용자(예를 들어, 914B)에게 액세스가능한 것으로 유지한다(896). 일부 실시예들에서, 제2 사용자의 전자 디바이스는 3차원 환경 내의 제3 위치에 표현을 디스플레이하기 위해 개개의 애플리케이션의 표현의 디스플레이를 업데이트한다. 일부 실시예들에서, 개개의 애플리케이션은 제1 사용자 및 제2 사용자 외에도 3차원 환경 내의 하나 이상의 다른 사용자들에게 계속 액세스가능하다.
제3 위치가 제2 위치와 제5 위치 사이에 있다는 결정에 따라 제2 사용자에게 더 이상 액세스가능하지 않도록 제1 애플리케이션의 표현을 업데이트하는 전술된 방식은 애플리케이션들의 표현에 대한 다른 사용자의 액세스를 제거하는 효율적인 방식을 제공하고, 이는 추가적으로 전력 사용량을 감소시키고, 사용 시에 에러들을 감소시키면서, 사용자가 전자 디바이스를 더 빠르고 효율적으로 사용할 수 있게 함으로써, 전자 디바이스의 배터리 수명을 개선한다.
일부 실시예들에서, 이동 입력을 수신하는 것에 응답하여(898), 이동 입력이 3차원 환경 내의 제1 위치로부터 제3 위치로 제1 애플리케이션의 표현을 이동시키라는 요청에 대응한다는 결정에 따라(897), 제3 위치가 제1 사용자의 제2 위치의 임계 거리 내에 있다는 결정에 따라, 전자 디바이스(예를 들어, 101)는 제1 애플리케이션의 표현을 3차원 환경 내의 제1 사용자에게 액세스가능하지만 제2 사용자에게 액세스가능하지 않은 것으로 업데이트한다(895)(예를 들어, 표현(예를 들어, 908)은 도 9a의 사용자 A(예를 들어, 914A)에게 액세스가능하지만 사용자 B(예를 들어, 914B)에게 액세스가능하지 않은 방법과 유사함). 일부 실시예들에서, 제2 사용자의 전자 디바이스는 개개의 애플리케이션의 표현 및/또는 콘텐츠를 디스플레이하는 것을 중단한다. 일부 실시예들에서, 이동 입력에 응답하여, 개개의 애플리케이션은 3차원 환경에서 제1 사용자(예를 들어, 이동 입력을 제공한 사용자) 이외의 하나 이상의 다른 사용자들에게 더 이상 액세스가능하지 않다. 일부 실시예들에서, 전자 디바이스는, (1) 제3 위치가 제2 위치의 임계 거리 내에 있고, (2) 제1 사용자가 이동 입력을 제공했다는 결정에 따라, 하나의 제1 사용자에게만 액세스가능하도록 제1 애플리케이션을 업데이트한다. 예를 들어, 제2 사용자가 애플리케이션의 표현을 제2 위치의 임계 거리 내의 위치로 이동시키면, 전자 디바이스는 제1 애플리케이션을 제2 사용자 및 제1 사용자에게 계속 제시한다. 도 9c에서와 같은 일부 실시예들에서, 이동 입력을 수신하는 것에 응답하여(898), 이동 입력이 3차원 환경 내의 제1 위치로부터 제3 위치로 제1 애플리케이션의 표현(예를 들어, 906)을 이동시키라는 요청에 대응한다는 결정에 따라(897), 제3 위치가 제1 사용자(예를 들어, 914A)의 제2 위치의 임계 거리 내에 있지 않다는 결정에 따라, 전자 디바이스(예를 들어, 101)는 제1 사용자(예를 들어, 914A)에게 액세스가능하지만 제2 사용자(예를 들어, 914B)에게 액세스가능하지 않도록 제1 애플리케이션의 표현을 업데이트하는 것을 보류한다(893). 일부 실시예들에서, 제2 사용자의 전자 디바이스는 3차원 환경 내의 제3 위치에 표현을 디스플레이하기 위해 개개의 애플리케이션의 표현의 디스플레이를 업데이트한다. 일부 실시예들에서, 개개의 애플리케이션은 제1 사용자 및 제2 사용자 외에도 3차원 환경 내의 하나 이상의 다른 사용자들에게 계속 액세스가능하다.
제3 위치가 제2 위치로부터 미리 결정된 임계 거리 내에 있다는 결정에 따라 제2 사용자에게 더 이상 액세스가능하지 않도록 제1 애플리케이션의 표현을 업데이트하는 전술된 방식은 애플리케이션들의 표현에 대한 다른 사용자의 액세스를 제거하는 효율적인 방식을 제공하고, 이는 추가적으로 전력 사용량을 감소시키고, 사용 시에 에러들을 감소시키면서, 사용자가 전자 디바이스를 더 빠르고 효율적으로 사용할 수 있게 함으로써, 전자 디바이스의 배터리 수명을 개선한다.
일부 실시예들에서, 이동 입력을 수신하는 것에 응답하여(891), 이동 입력이 3차원 환경 내의 제1 위치로부터 제3 위치로 제1 애플리케이션의 표현을 이동시키라는 요청에 대응한다는 결정에 따라(889), 제3 위치가 제2 사용자와 연관된 제5 위치의 임계 거리 내에 있다는 결정에 따라, 전자 디바이스(예를 들어, 101)는 제1 애플리케이션의 표현을 3차원 환경 내의 제2 사용자에게 액세스가능하지만 제1 사용자에게 액세스가능하지 않은 것으로 (예를 들어, 표현(예를 들어, 906)은 도 9a의 사용자 A(예를 들어, 914A)에게 액세스가능하지만 사용자 B(예를 들어, 914B)에게 액세스가능하지 않은 방법과 유사한 방식으로) 업데이트한다(887). 일부 실시예들에서, 제1 사용자의 전자 디바이스는 제2 애플리케이션의 표현을 디스플레이하는 것을 중단하고, 제2 사용자의 전자 디바이스는 3차원 환경 내의 제3 위치에 제2 애플리케이션의 표현을 디스플레이한다. 일부 실시예들에서, 제1 애플리케이션이 제2 사용자에게 액세스가능하지만 제1 사용자에게 액세스가능하지 않은 동안, 제2 사용자는 제1 애플리케이션을 보고, 제1 애플리케이션에 입력을 제공하고, 제1 애플리케이션과 연관된 오디오를 청취하고, 3차원 환경 내에서 제1 애플리케이션의 표현을 이동시키는 것 등을 할 수 있고, 제1 사용자는 제1 애플리케이션을 보고, 제1 애플리케이션에 입력을 제공하고, 제1 애플리케이션과 연관된 오디오를 청취하고, 3차원 환경 내에서 제1 애플리케이션의 표현을 이동시키는 것 등을 할 수 없다. 일부 실시예들에서, 전자 디바이스는 오직, (1) 제3 위치가 제5 위치의 임계 거리 내에 있고, (2) 제2 사용자가 이동 입력을 제공한 경우 제2 사용자에게 액세스가능하지만 제1 사용자에게 액세스가능하지 않도록 제1 애플리케이션을 업데이트한다. 일부 실시예들에서, 전자 디바이스는, 어느 사용자가 이동 입력을 제공했는지와 무관하게, 제3 위치가 제5 위치의 임계치 내에 있는 경우, 제2 사용자에게 액세스가능하지만 제1 사용자에게 액세스가능하지 않도록 제1 애플리케이션을 업데이트한다. 일부 실시예들에서, 제1 애플리케이션은, (예를 들어, 제1 사용자로부터) 이동 입력이 수신될 때, 제1 사용자에게 액세스가능하지만 제2 사용자에게 액세스가능하지 않다. 일부 실시예들에서, 제3 위치가 제1 사용자와 제2 사용자 사이에 동일하게 이격된다는 결정에 따라, 전자 디바이스는 제1 애플리케이션의 표현을 이동시키기 위해 입력을 어느 사용자가 제공하든 그 사용자를 향해 제1 애플리케이션의 표현을 배향시킨다. 도 9c에서와 같은 일부 실시예들에서, 이동 입력을 수신하는 것에 응답하여(891), 이동 입력이 3차원 환경 내의 제1 위치로부터 제3 위치로 제1 애플리케이션의 표현(예를 들어, 906)을 이동시키라는 요청에 대응한다는 결정에 따라(889), 제3 위치가 제2 사용자(예를 들어, 914B)와 연관된 제5 위치의 임계 거리 내에 있지 않다는 결정에 따라, 전자 디바이스(예를 들어, 101)는 제2 사용자(예를 들어, 914B)에게 액세스가능하지만 제1 사용자(예를 들어, 914A)에게 액세스가능하지 않도록 제1 애플리케이션의 표현을 업데이트하는 것을 보류한다(885). 일부 실시예들에서, 제3 위치가 3차원 환경 내의 사용자와 연관된 임의의 위치의 임계 거리 내에 있지 않다는 결정에 따라, 제2 애플리케이션의 표현은 3차원 환경의 사용자들 모두에게 액세스가능하다. 일부 실시예들에서, 제3 위치가 3차원 환경에서 제2 사용자 및 제1 사용자 이외의 제3 개개의 사용자의 임계 거리 내에 있다는 결정에 따라, 전자 디바이스는 제1 사용자 또는 제2 사용자에게 액세스가능하지 않으면서 제3 개개의 사용자에게 액세스가능하도록 제2 애플리케이션의 표현을 업데이트한다.
제3 위치가 제5 위치의 임계 거리 내에 있다는 결정에 따라 제2 사용자에게 액세스가능하지만 제1 사용자에게 액세스가능하지 않도록 제1 애플리케이션의 표현을 업데이트하는 전술된 방식은 하나의 사용자에게만 가시적이도록 애플리케이션을 업데이트하는 효율적인 방식을 제공하고, 이는 추가적으로 전력 사용량을 감소시키고, 사용 시에 에러들을 감소시키면서, 사용자가 전자 디바이스를 더 빠르고 효율적으로 사용할 수 있게 함으로써, 전자 디바이스의 배터리 수명을 개선한다.
도 7a에서와 같은 일부 실시예들에서, 전자 디바이스(예를 들어, 101)는 3차원 환경(예를 들어, 704)에서, 3차원 환경 내의 제1 위치에서의 제1 애플리케이션의 표현(예를 들어, 706) 및 3차원 환경 내의 제5 위치에서의 제2 애플리케이션의 표현(예를 들어, 708)을 동시에 디스플레이하고(883), 제1 애플리케이션의 표현(예를 들어, 706)은 3차원 환경(예를 들어, 704)에서 제1 개개의 배향으로 디스플레이되고, 제2 애플리케이션의 표현(예를 들어, 708)은 3차원 환경(예를 들어, 704)에서 제1 개개의 배향과 상이한 제2 개개의 배향으로 디스플레이된다. 일부 실시예들에서, 3차원 환경에 상이한 애플리케이션들의 다수의 표현들이 있을 때, 애플리케이션들의 표현들의 배향들은 서로 상이하다. 일부 실시예들에서, 애플리케이션들의 표현들은 사용자와 연관된 제2 위치를 향해 배향되고, 애플리케이션들의 표현들은 표현들 중 어느 것도 다른 표현에 대한 사용자의 뷰를 차단하지 않도록 상이한 위치들에 디스플레이된다. 일부 실시예들에서, 이러한 배열에서, 표현들의 배향들은 서로 상이하다.
제1 및 제2 애플리케이션들의 표현들을 상이한 배향들로 디스플레이하는 전술된 방식은 어떠한 표현도 다른 표현에 대한 사용자의 뷰를 차단하지 않도록 표현들을 제시하는 효율적인 방법을 제공하고, 이는 추가적으로 전력 사용량을 감소시키고, 사용 시에 에러들을 감소시키면서, (예를 들어, 다양한 표현들을 보는 데 필요한 입력들의 수를 감소시킴으로써) 사용자가 전자 디바이스를 더 빠르고 효율적으로 사용할 수 있게 함으로써, 전자 디바이스의 배터리 수명을 개선한다.
일부 실시예들에서, 도 7a에서와 같은 제1 애플리케이션의 표현(예를 들어, 706)의 제1 배향 및 도 7b에서와 같은 제1 애플리케이션의 표현(예를 들어, 706)의 제2 배향은 제1 사용자와 연관된 배향 필드에 기초한다(881). 일부 실시예들에서, 배향 필드는 3차원 환경 내의 모든 위치에 대해 제1 사용자의 위치를 향한 배향을 정의한다. 일부 실시예들에서, 3차원 환경의 개개의 위치에 디스플레이된 객체는 개개의 위치에서의 배향 필드에 대응하는 배향으로 디스플레이된다. 일부 실시예들에서, 배향 필드는, 개개의 객체가 배향 필드 내의 개개의 위치에 배치될 때 콘텐츠를 포함하는 개개의 객체의 표면에 수직인 방향을 정의한다. 일부 실시예들에서, 배향 필드는 3차원 환경에 하나의 사용자가 있는 경우 사용자와 연관된 위치를 향한다. 일부 실시예들에서, 3차원 환경에 다수의 사용자들이 존재하는 경우, 전자 디바이스는, 3차원 환경에서 복수의 사용자들(예를 들어, 각각의 사용자)와 연관된 배향 필드들의 벡터 합과 같은 수학적 조합에 기초하는(예를 들어, 그 수학적 조합인) 배향 필드를 생성한다. 일부 실시예들에서, 다수의 사용자들을 포함하는 3차원 환경에서의 객체들의 배향 및 배치는 방법(1000)의 하나 이상의 단계들에 따라 설정된다. 일부 실시예들에서, 3차원 환경에서 객체를 이동시키기 위한 입력을 검출하는 것에 응답하여, 전자 디바이스는 이동 입력에 대응하는 위치로 객체를 이동시키고, 이동 입력에 대응하는 위치에서의 주의 필드에 따라 객체의 배향을 업데이트한다. 일부 실시예들에서, 주의 필드는 2차원이고, 3차원 환경에서 사용자(들)의 2차원 위치(들)에 기초한다(예를 들어, 주의 필드는 3차원 환경 내의 모든 수직 높이들에 대해 동일하다). 일부 실시예들에서, 주의 필드는 3차원이고, 3차원 환경에서 사용자(들)의 3차원 위치(들)에 기초한다(예를 들어, 주의 필드는 사용자(들)의 수직 위치들에 의존한다).
주의 필드에 따라 제1 애플리케이션 및 제2 애플리케이션의 표현을 배향시키는 전술된 방식은 표현들의 배향들을 계산하는 효율적인 방법을 제공하고, 이는 추가적으로 전력 사용을 감소시키고, 전자 디바이스가 객체들의 디스플레이를 개시할 때 또는 객체들이 사용자에 의해 이동될 때 객체들의 배향들을 업데이트하는 계산 복잡성을 감소시킴으로써 전자 디바이스의 배터리 수명을 개선한다.
도 7a에서와 같은 일부 실시예들에서, 3차원 환경(예를 들어, 904)은 제1 사용자(예를 들어, 914A) 및 제2 사용자(예를 들어, 914B)를 포함하고, 제1 애플리케이션의 표현(예를 들어, 908)은 제1 사용자에게 액세스가능하지만 제2 사용자에게 액세스가능하지 않다(879). 일부 실시예들에서, 제1 사용자의 전자 디바이스는 제1 애플리케이션의 표현을 제시하지만, 제2 사용자의 전자 디바이스는 제1 애플리케이션의 표현을 제시하지 않는다. 일부 실시예들에서, 제1 사용자는, 제1 애플리케이션이 제1 사용자에게 액세스가능한 동안, 제1 애플리케이션을 보고, 그의 오디오를 듣고, 그에 입력을 제공하고/하거나 그의 표현을 이동시킬 수 있다. 일부 실시예들에서, 제2 사용자는, 제1 애플리케이션이 제2 사용자에게 액세스가능하지 않은 동안, 제1 애플리케이션을 보고, 그의 오디오를 듣고, 그에 입력을 제공하고/하거나 그의 표현을 이동시킬 수 없다. 도 9b에서와 같은 일부 실시예들에서, 제1 외관(예를 들어, 제1 크기, 제1 위치 및/또는 제1 배향)으로 제1 애플리케이션의 표현(예를 들어, 908)을 디스플레이하는 동안, 전자 디바이스(예를 들어, 101)는 하나 이상의 입력 디바이스들을 통해, 제1 사용자(예를 들어, 914A) 및 제2 사용자(예를 들어, 914B)에게 액세스가능한 것으로 제1 애플리케이션의 표현(예를 들어, 908)을 업데이트하라는 요청에 대응하는 개개의 입력을 검출한다(877). 일부 실시예들에서, 요청은 제1 애플리케이션을 개개의 제2 사용자 및 선택적으로 3차원 환경에 존재하는 임의의 다른 사용자들과 공유하라는 요청이다. 일부 실시예들에서, 제1 애플리케이션이 제2 사용자에게 액세스가능하면, 제2 사용자의 전자 디바이스는 제1 애플리케이션의 표현을 제시하고, 제2 사용자는 선택적으로 3차원 환경에서 제1 애플리케이션과 상호작용할 수 있다. 일부 실시예들에서, 제1 사용자 및 제2 사용자는, 제1 애플리케이션이 제1 사용자 및 제2 사용자에게 액세스가능한 동안, 제1 애플리케이션을 보고, 그의 오디오를 듣고, 그에 입력을 제공하고/하거나 그의 표현을 이동시킬 수 있다. 도 9c에서와 같은 일부 실시예들에서, 개개의 입력을 검출하는 것에 응답하여(875), 전자 디바이스(예를 들어, 101)는 제1 애플리케이션의 표현(예를 들어, 908)을 제1 사용자(예를 들어, 914A) 및 제2 사용자(예를 들어, 914B)에게 액세스가능한 것으로 업데이트한다(873). 일부 실시예들에서, 제2 사용자의 전자 디바이스는 제1 애플리케이션의 표현의 디스플레이를 개시하고, 제1 사용자의 전자 디바이스는 제1 애플리케이션의 표현을 계속 디스플레이한다. 일부 실시예들에서, 개개의 입력(875)을 검출하는 것에 응답하여, 전자 디바이스(예를 들어, 101)는 제1 외관과 상이한 제2 외관으로 제1 애플리케이션의 표현을 디스플레이한다(871)(예를 들어, 도 9c의 표현(예를 들어, 908)의 외관은 도 9b의 표현(예를 들어, 908)의 외관과 상이하였다). 일부 실시예들에서, 제1 사용자의 전자 디바이스는 제1 애플리케이션을 제2 사용자에게 액세스가능하게 하라는 요청에 응답하여 제1 애플리케이션의 표현의 외관을 업데이트한다. 예를 들어, 전자 디바이스는 이를테면, 제1 애플리케이션의 표현을 제1 사용자 및 제2 사용자 둘 모두를 향해 배향시키기 위해 제1 애플리케이션의 표현의 크기, 배향 및/또는 위치를 업데이트한다. 일부 실시예들에서, 제1 애플리케이션의 표현은 제2 사용자를 향해 이동된다. 일부 실시예들에서, 제1 애플리케이션의 표현은 (예를 들어, 제1 애플리케이션이 공유되기 전보다 더 먼 거리에서 사용자들 둘 모두가 콘텐츠를 더 쉽게 볼 수 있도록) 더 큰 크기로 디스플레이된다.
제1 애플리케이션을 제2 사용자에게 액세스가능하게 하라는 요청에 응답하여 제1 애플리케이션의 표현을 업데이트하는 전술된 방식은 사용자들 둘 모두에게 더 쉽게 가시적인 외관으로 표현을 제시하는 효율적인 방식을 제공하고, 이는 추가적으로 전력 사용량을 감소시키고, 사용 시에 에러들을 감소시키면서, (예를 들어, 제1 애플리케이션이 공유된 후에 제1 애플리케이션의 표현의 외관을 업데이트하는 데 필요한 입력들을 감소시킴으로써) 사용자가 전자 디바이스를 더 빠르고 효율적으로 사용할 수 있게 함으로써, 전자 디바이스의 배터리 수명을 개선한다.
일부 실시예들에서, 개개의 입력은 제2 사용자와 제1 애플리케이션의 표현을 공유하라는 제안과 연관된다(869)(예를 들어, 전자 디바이스(예를 들어, 101a)가 도 9b에 예시된 표현(예를 들어, 908)을 공유하기 위한 입력을 수신하기 전에 표현(예를 들어, 908)을 공유하기 위한 표시를 제시한 경우). 일부 실시예들에서, 전자 디바이스는 제1 애플리케이션을 공유하기 위한 프롬프트를 제시하고, 제1 애플리케이션을 제2 사용자에게 액세스가능하게 하라는 요청에 대응하는 입력은 프롬프트를 향해 지향된다. 일부 실시예들에서, 프롬프트는 제2 사용자가 3차원 환경에 진입하는 것에 응답하여 디스플레이된다. 일부 실시예들에서, 프롬프트는, 프롬프트를 디스플레이하라는 요청(예를 들어, 애플리케이션 내에 콘텐츠를 제시하라는 요청) 이외의 제1 애플리케이션의 개개의 동작의 개시에 응답하여 제시된다. 일부 실시예들에서, 프롬프트는 제2 사용자로부터의 요청에 응답하여 제시된다. 일부 실시예들에서, 제1 애플리케이션이 콘텐츠-디스플레이 애플리케이션이기 때문에 그리고/또는 제1 사용자가 제1 애플리케이션에 대한 액세스를 제2 사용자 및/또는 다른 사용자들과 이전에 공유했기 때문에, 프롬프트가 제시된다. 도 9b에서와 같은 일부 실시예들에서, 제1 외관으로 제1 애플리케이션의 표현(예를 들어, 908)을 디스플레이하는 동안, 전자 디바이스는 하나 이상의 입력 디바이스들을 통해, 제1 사용자(예를 들어, 914A) 및 제2 사용자(예를 들어, 914B)에게 액세스가능하도록 제1 애플리케이션의 표현(예를 들어, 908)을 업데이트하라는 요청에 대응하는 제2 개개의 입력을 검출하고(867), 제2 개개의 입력은 제1 애플리케이션의 표현(예를 들어, 908)을 제2 사용자(예를 들어, 914B)와 공유하라는 제안과 연관되지 않는다. 일부 실시예들에서, 제2 사용자에게 액세스가능하도록 표현을 업데이트하라는 요청은 제1 사용자에 의해 개시된다. 예를 들어, 전자 디바이스는 제1 애플리케이션의 공유를 제안하는 프롬프트의 선택 또는 수락보다는, 메뉴를 제시하라는 요청에 응답하여 제공되는 메뉴에서 디스플레이되는 제1 애플리케이션을 공유하기 위한 옵션의 선택을 검출한다. 일부 실시예들에서, 제1 사용자 및 제2 사용자는, 제1 애플리케이션이 제1 사용자 및 제2 사용자에게 액세스가능한 동안, 제1 애플리케이션을 보고, 그의 오디오를 듣고, 그에 입력을 제공하고/하거나 그의 표현을 이동시킬 수 있다. 도 9c에서와 같은 일부 실시예들에서, 개개의 입력을 검출하는 것에 응답하여(865), 전자 디바이스(예를 들어, 101)는 제1 외관을 갖는 제1 애플리케이션의 표현(예를 들어, 908)을 유지하면서 제1 애플리케이션의 표현(예를 들어, 908)을 제1 사용자(예를 들어, 914A) 및 제2 사용자(예를 들어, 914B)에게 액세스가능한 것으로 업데이트한다(863). 일부 실시예들에서, 제1 사용자의 전자 디바이스 및 제2 사용자의 전자 디바이스 둘 모두는 제1 외관으로 표현을 디스플레이한다. 일부 실시예들에서, 3차원 환경에서의 제1 애플리케이션의 표현의 배향은 변경되지 않는다. 일부 실시예들에서, 3차원 환경에서의 제1 애플리케이션의 표현의 위치는 변경되지 않는다. 일부 실시예에서, 3차원 환경에서의 제1 애플리케이션의 표현의 크기는 변경되지 않는다.
표현을 제2 사용자에게 액세스가능하게 하라는 요청이 공유 제안과 연관될 때 제1 애플리케이션의 표현의 외관을 업데이트하는 전술된 방식은 애플리케이션을 공유하는 것이 제안되는 상황들에서 제1 사용자 및 제2 사용자 둘 모두에게 쉽게 가시적인 외관으로 표현을 제시하는 효율적인 방식을 제공하고, 이는 추가적으로 전력 사용량을 감소시키고, 사용 시에 에러들을 감소시키면서, (예를 들어, 제1 애플리케이션의 표현의 외관을 업데이트하는 데 필요한 입력들을 감소시킴으로써) 사용자가 전자 디바이스를 더 빠르고 효율적으로 사용할 수 있게 함으로써, 전자 디바이스의 배터리 수명을 개선한다.
도 9a에서와 같은 일부 실시예들에서, 3차원 환경(예를 들어, 904)은 제1 사용자(예를 들어, 914A) 및 제2 사용자(예를 들어, 914B)를 포함하고, 제1 애플리케이션의 표현(예를 들어, 908)은 제1 사용자(예를 들어, 914A)에게 액세스가능하지만 제2 사용자(예를 들어, 914B)에게 액세스가능하지 않다(861). 일부 실시예들에서, 제2 사용자의 전자 디바이스는 제1 애플리케이션의 표현을 제시하는 것을 보류한다. 도 9b에서와 같은 일부 실시예들에서, 제1 외관으로 제1 애플리케이션의 표현(예를 들어, 908)을 디스플레이하는 동안, 전자 디바이스(예를 들어, 101)는 하나 이상의 입력 디바이스들을 통해, 제1 사용자(예를 들어, 914A) 및 제2 사용자(예를 들어, 914B)에게 액세스가능한 것으로 제1 애플리케이션의 표현(예를 들어, 908)을 업데이트하라는 요청에 대응하는 개개의 입력을 검출한다(859). 도 9c에서와 같은 일부 실시예들에서, 개개의 입력을 검출하는 것에 응답하여(857), 전자 디바이스(예를 들어, 101)는 제1 외관을 갖는 제1 애플리케이션의 표현(예를 들어, 908)을 유지하면서 제1 애플리케이션의 표현(예를 들어, 908)을 제1 사용자(예를 들어, 914A) 및 제2 사용자(예를 들어, 914B)에게 액세스가능한 것으로 업데이트한다(855). 일부 실시예들에서, 제1 사용자 및 제2 사용자의 전자 디바이스들 둘 모두는 제1 외관으로 제1 애플리케이션의 표현을 디스플레이한다. 일부 실시예들에서, 제1 외관은 3차원 공간에서 고정된 기준 프레임에 대한 개개의 크기, 위치 및/또는 배향을 포함한다. 일부 실시예들에서, 3차원 환경에서의 제1 애플리케이션의 표현의 배향은 변경되지 않는다. 일부 실시예들에서, 3차원 환경에서의 제1 애플리케이션의 표현의 위치는 변경되지 않는다. 일부 실시예에서, 3차원 환경에서의 제1 애플리케이션의 표현의 크기는 변경되지 않는다. 일부 실시예들에서, 제1 사용자 및 제2 사용자의 전자 디바이스들은 상이한 관점들 및/또는 시점들로부터의 3차원 공간을 디스플레이한다. 일부 실시예들에서, 제1 사용자 및 제2 사용자는, 제1 애플리케이션이 제1 사용자 및 제2 사용자에게 액세스가능한 동안, 제1 애플리케이션을 보고, 그의 오디오를 듣고, 그에 입력을 제공하고/하거나 그의 표현을 이동시킬 수 있다.
표현을 제2 사용자에게 액세스가능하게 하라는 요청에 응답하여 제1 애플리케이션의 표현의 제1 외관을 유지하는 전술된 방식은 표현에 대한 업데이트된 외관을 컴퓨팅하지 않으면서 표현을 공유하는 효율적인 방법을 제공하고, 이는 추가적으로 전력 사용량을 감소시키고, 사용 시에 에러들을 감소시키면서, 제2 사용자와 표현을 공유하기 위한 동작의 복잡성을 감소시킴으로써 전자 디바이스의 배터리 수명을 개선한다.
도 7a에서와 같은 일부 실시예들에서, 3차원 환경(예를 들어, 704)은 3차원 환경 내의 제5 위치에서의 제1 유형의 제1 개개의 객체의 표현(예를 들어, 706)을 포함하고, 3차원 환경(예를 들어, 704)은 3차원 환경(예를 들어, 704)에서 제6 위치에서 제1 유형과 상이한 제2 유형의 제2 개개의 객체(예를 들어, 3차원 환경(예를 들어, 704) 주위로 이동될 때 동적으로 스케일링되지 않는 유형의 객체)의 표현(예를 들어, 710)을 포함하고, 제5 위치는 제1 사용자(예를 들어, 714A)와 연관된 제2 위치로부터의 제1 거리에 있고, 제6 위치는 제1 사용자(예를 들어, 714A)와 연관된 제2 위치로부터의 제2 거리에 있다(853). 일부 실시예들에서, 제1 및 제2 객체들은 애플리케이션들, 콘텐츠의 아이템들, 파일들 또는 다른 가상 객체들의 표현들이다. 일부 실시예들에서, 객체의 제1 유형은 3차원 환경에서 객체와 사용자(들) 사이의 거리에 기초하여 동적 가상 크기를 갖는 객체의 유형이다. 일부 실시예들에서, 객체의 제2 유형은 가상 환경 내의 사용자(들)와 객체 사이의 거리에 의존하지 않는 고정된 가상 크기를 갖는 객체의 유형이다. 도 7a에서와 같은 일부 실시예들에서, 전자 디바이스(예를 들어, 101)는 하나 이상의 입력 디바이스들을 통해, 제1 개개의 객체의 표현(예를 들어, 706)을 제2 위치로부터의 제1 거리로부터 제2 위치로부터의 제1 거리와 상이한 제3 거리로 이동시키라는 요청에 대응하는 제1 개개의 입력을 수신한다(851). 도 7b에서와 같은 일부 실시예들에서, 제1 개개의 입력을 수신하는 것에 응답하여(849), 전자 디바이스(예를 들어, 101)는 제1 개개의 객체의 표현(예를 들어, 706)을 제1 사용자(예를 들어, 714A)의 제2 위치로부터의 제3 거리로 이동시킨다(847). 일부 실시예들에서, 전자 디바이스는 여기서 방법(800) 및/또는 방법(1000)에서 설명된 바와 같이 제1 개개의 입력에 응답하여 제1 개개의 객체의 배향을 업데이트한다. 도 7b에서와 같은 일부 실시예들에서, 제1 개개의 입력을 수신하는 것에 응답하여(849), 전자 디바이스(예를 들어, 101)는 제3 거리에 기초하여 제1 개개의 객체의 표현(예를 들어, 706)의 크기를 (예를 들어, 표현이 제5 위치에서 디스플레이되는 동안의 표현의 크기에 비해) 변경한다(845). 일부 실시예들에서, 전자 디바이스는 제1 개개의 객체를 이동시키기 위한 입력에 응답하여 제1 개개의 객체의 가상 크기를 변경한다. 예를 들어, 제1 개개의 객체가 제2 위치로부터 더 멀리 떨어진 거리로 이동되면, 전자 디바이스는 제1 개개의 객체의 가시성을 유지하기 위해 제1 개개의 객체의 가상 크기를 증가시킨다(그리고 예를 들어, 제1 객체의 디스플레이 영역은 동일하게 유지되거나, 증가되거나, 감소됨). 다른 예로서, 제1 개개의 객체가 제2 위치에 더 근접한 거리로 이동되면, 전자 디바이스는 다른 객체들을 위한 디스플레이 영역에서 공간을 보존하기 위해 제1 개개의 객체의 가상 크기를 감소시킨다(그리고 예를 들어, 제1 객체의 디스플레이 영역은 동일하게 유지되거나, 증가되거나, 감소됨). 일부 실시예들에서, 전자 디바이스는 하나 이상의 입력 디바이스들을 통해, 제2 개개의 객체의 표현을 제2 위치로부터의 제2 거리로부터 제2 위치로부터의 제2 거리와 상이한 제4 거리로 이동시키라는 요청에 대응하는 제2 개개의 입력을 수신한다(843)(예를 들어, 도 7a에서 객체(예를 들어, 710)를 이동시키라는 요청을 수신함). 일부 실시예들에서, 제2 개개의 입력을 수신하는 것에 응답하여(841), 전자 디바이스(예를 들어, 101)는 제2 개개의 객체의 표현의 크기를 (예를 들어, 표현이 제5 위치에 디스플레이된 동안의 표현의 크기에 비해) 유지하면서 제2 개개의 객체의 표현을 제2 위치로부터의 제4 거리로 이동시킨다(839)(예를 들어, 도 7a의 3차원 환경(예를 들어, 704)에서 사용자(예를 들어, 714)로부터의 상이한 거리로 객체(예를 들어, 710)를 이동시키는 것에 응답하여 3차원 환경(예를 들어, 704)에서 객체(예를 들어, 710)의 크기를 유지함). 일부 실시예들에서, 제2 개개의 입력에 응답하여, 전자 디바이스는 제2 개개의 객체를 이동시키고 고정된 가상 크기로 제2 개개의 객체를 계속 디스플레이한다. 일부 실시예들에서, 개개의 제2 객체의 고정된 가상 크기를 유지하는 것은 제2 개개의 객체를 디스플레이하는 데 사용되는 디스플레이 영역을 업데이트하는 것을 포함한다. 예를 들어, 제2 개개의 객체가 3차원 환경에서 사용자로부터 더 멀리 이동되면, 디스플레이 생성 컴포넌트는 제2 개개의 객체를 디스플레이하기 위해 더 적은 디스플레이 영역을 사용한다. 다른 예로서, 제2 개개의 객체가 3차원 환경에서 사용자에게 더 가깝게 이동되면, 디스플레이 생성 컴포넌트는 제2 개개의 객체를 디스플레이하기 위해 더 많은 디스플레이 영역을 사용한다. 일부 실시예들에서, 제2 가상 객체와 연관된 사용자 인터페이스 요소(예를 들어, 메뉴 바, 선택되고/되거나 그와 상호작용될 때 방법(1000)을 참조하여 설명된 바와 같이 제2 가상 객체를 이동시키기 위한 프로세스를 개시하는 옵션)는 방법(1000)을 참조하여 설명된 바와 같이 3차원 환경에서 제2 개개의 객체와 사용자 사이의 거리에 의존하는 가변 가상 크기로 디스플레이된다.
제1 개개의 객체의 크기를 변경하고 제2 개개의 객체의 크기를 유지하는 전술된 방식은 개선된 가시성을 위해 객체들의 크기를 스케일링하는 효율적인 방식 및 고정된 가상 크기들을 갖는 현실적인 가상 객체들을 디스플레이하는 방식을 제공하고, 이는 추가적으로 전력 사용량을 감소시키고, 사용 시에 에러들을 감소시키면서, 사용자가 전자 디바이스를 더 빠르고 효율적으로 사용할 수 있게 함으로써, 전자 디바이스의 배터리 수명을 개선한다.
도 9a 내지 도 9d는 일부 실시예들에 따른, 전자 디바이스들(101a 및/또는 101b)이 3차원 환경에서의 복수의 사용자들의 시점들에 기초하여 3차원 환경에서 가상 객체의 배향을 자동으로 업데이트하는 방법의 예들을 예시한다.
도 9a는 디스플레이 생성 컴포넌트들(120a 및 120b)을 통해 사용자 인터페이스 상에 3차원 환경(904)을 디스플레이하는 전자 디바이스들(101a 및 101b)을 예시한다. 도 1 내지 도 6을 참조하여 앞서 설명된 바와 같이, 전자 디바이스들(101a 및 101b)은 선택적으로 디스플레이 생성 컴포넌트(120a 및 120b)(예를 들어, 터치 스크린) 및 복수의 이미지 센서들(314a 및 314b)을 포함한다. 이미지 센서들은, 선택적으로, 가시광 카메라, 적외선 카메라, 깊이 센서, 또는 사용자가 전자 디바이스들(101a 및 101b)과 상호작용하는 동안 전자 디바이스들(101a 및 101b)이 사용자 또는 사용자의 일부의 하나 이상의 이미지들을 캡처하는 데 사용할 수 있을 임의의 다른 센서 중 하나 이상을 포함한다. 일부 실시예들에서, 디스플레이 생성 컴포넌트(120a 및/또는 120b)는 사용자의 손의 제스처들 및 이동들을 검출할 수 있는 터치 스크린이다. 일부 실시예들에서, 아래에 도시된 사용자 인터페이스들은 또한, 사용자들에게 사용자 인터페이스들을 디스플레이하는 디스플레이 생성 컴포넌트들, 및 물리적 환경들 및/또는 사용자들의 손들의 이동들(예를 들어, 사용자들로부터 외향으로 향하는 외부 센서들) 및/또는 사용자들의 시선들(예를 들어, 사용자들의 얼굴들을 향해 내향으로 향하는 내부 센서들)을 검출하기 위한 센서들을 포함하는 머리 장착형 디스플레이들 상에 구현될 수 있다.
일부 실시예들에서, 3차원 환경(904)은 복수의 사용자들에게 액세스가능하다. 도 9a에서, 전자 디바이스 A(101a)는 (예를 들어, 사용자 A의 관점으로부터) 사용자 A에 대한 3차원 환경(904)을 디스플레이하고, 전자 디바이스 B(101b)는 (예를 들어, 사용자 B의 관점으로부터) 사용자 B에 대한 3차원 환경(904)을 디스플레이한다. 3차원 환경(904)은 사용자 A의 표현(914A), 사용자 B의 표현(914B), 앱 B의 표현(908), 앱 A의 표현(906), 앱 C의 표현(922) 및 앱 D의 표현(924)을 포함한다. 도 9a에서, 앱 A의 표현(906), 앱 B의 표현(908) 및 앱 D의 표현(924)은 표현들 중 일 측면 상에 콘텐츠를 포함하는 반면, 앱 C의 표현(922)은 다수의 측면들로부터 가시적인 콘텐츠를 포함한다. 예를 들어, 앱들 A, B, 및 D는 콘텐츠 애플리케이션들(예를 들어, 비디오 플레이어들, 뮤직 플레이어들, 포토 갤러리들) 또는 2차원 사용자 인터페이스들을 포함하는 다른 애플리케이션들(예를 들어, 웹 브라우저들, 이메일 애플리케이션들, 워드 프로세싱 애플리케이션들, 2차원 게임들)인 한편, 앱 C는 가상 보드 게임 또는 다수의 측면들로부터 가시적인 다른 가상 콘텐츠(예를 들어, 3차원 콘텐츠)일 수 있다. 도 9a에 예시된 예에서, 앱 A의 표현(906), 앱 C의 표현(922) 및 앱 D의 표현(924)은 사용자 A(914A) 및 사용자 B(914B)에게 액세스가능하고, 앱 B의 표현(908)은 사용자 A(914A)에게 액세스가능하지만 사용자 B(914B)에게 액세스가능하지 않다. 따라서, 사용자 A(914A) 및 사용자 B(914B) 둘 모두는 앱 A의 표현(906), 앱 C의 표현(922) 및 앱 D의 표현(924)을 보고 그와 상호작용할 수 있는 반면, 사용자 A(914A)만이 앱 B의 표현(908)을 보고 그와 상호작용할 수 있다.
범례(912)는 사용자 A(914A)의 시야(928a) 및 사용자 B(914B)의 시야(928b)를 포함하는 3차원 환경(904)에서의 객체들 및 사용자들의 위치들 및 배향들을 나타낸다. 따라서, 전자 디바이스 A(101a)는 사용자 A(914A)의 시야(928a)에 3차원 환경(904)의 일부를 디스플레이하고, 전자 디바이스 B(101b)는 사용자 B(914B)의 시야(928b)에 3차원 환경(904)의 일부를 디스플레이한다. 전자 디바이스 A(101a)는 앱 A의 표현(906) 및 앱 B의 표현(908)을 디스플레이한다. 전자 디바이스 B(101b)는 사용자 A(914A)의 표현(예를 들어, 사용자 A(914A)의 아바타) 및 앱 C의 표현(922)을 디스플레이한다. 일부 실시예들에서, 전자 디바이스 B(101b)는, 사용자 B(914B)가 앱 B의 표현(908)에 대한 액세스를 갖지 않기 때문에 앱 B의 표현(908)의 콘텐츠를 디스플레이하지 않으면서 앱 B의 표현(908)의 표시를 (예를 들어, 그의 크기 및/또는 위치에) 디스플레이한다. 일부 실시예들에서, 전자 디바이스 B(101b)는 앱 B의 표현(908)의 표시를 디스플레이하는 것을 보류한다.
일부 실시예들에서, 3차원 환경(904) 내의 가상 객체들의 위치들 및/또는 배향들은 3차원 환경(904)에서 사용자들(914A 및/또는 914B)의 위치들에 기초하여 (예를 들어, 객체들 중 하나를 이동시키기 위한 입력에 응답하여, 객체들의 디스플레이를 개시하기 위한 입력에 응답하여 등으로) 자동으로 선택된다. 예를 들어, 전자 디바이스들(101a 및/또는 101b)은, 표현들(906 및 908)의 콘텐츠를 갖는 측면이 3차원 환경(904) 내의 사용자 A(914A) 및 사용자 B(914B)를 향해 배향되도록 앱 A 및 앱 B의 표현들(906 및 908)과 같은 단일 측면 객체들의 배향들, 크기들 및/또는 위치들을 선택/업데이트한다. 다른 예로서, 전자 디바이스들(101a 및/또는 101b)은 앱 C의 표현(922)과 같은 다중 측면 객체들의 배향들, 크기들 및/또는 위치들을 사용자 A(914A)와 사용자 B(914B) 사이에 있도록 선택/업데이트한다. 일부 실시예들에서, 전자 디바이스들(101a 및 101b)은 3차원 환경(904) 상에 중첩된 벡터 필드를 구성하고/하거나 그에 대한 액세스를 갖고, 여기서 벡터들은 사용자들(914A 및 914B)의 공유 관심 포인트를 가리킨다. 일부 실시예들에서, 벡터 필드는 3차원이다. 일부 실시예들에서, 벡터 필드는 3차원 환경(904)에서 사용자 A(914A)의 위치를 가리키는 벡터 필드 및 3차원 환경(904)에서 사용자 B(914B)의 위치를 가리키는 벡터 필드의 합산들의 벡터-합산된 결과(또는, 더 일반적으로, 3차원 환경(904)에서 각각의 사용자의 벡터 필드를 포함하여, 3차원 환경에서 복수의 사용자들 중 하나를 각각 가리키는 벡터 필드들의 합)이다. 따라서, 가상 객체(예를 들어, 애플리케이션의 표현)가 하나 이상의 사용자들의 눈 레벨 위에 있는 높이에 배치되면, 전자 디바이스들(101a 및 101b)은 사용자들의 시점들을 향해 하방을 향하도록 가상 객체를 배향한다. 사용자들의 공유된 관심 포인트는 선택적으로, 가상 객체들이 3차원 환경(904)에서 사용자들 둘 모두에게 가시적이도록 가상 객체들이 배향되는 사용자들 사이의 3차원 환경(904) 내의 위치이다.
일부 실시예들에서, 전자 디바이스(101a 및/또는 101b)는 객체의 배향을 결정할 때 가상 객체로부터 더 먼 사용자에 비해 개개의 가상 객체에 더 가까운 사용자를 우선순위화한다. 예를 들어, 앱 D의 표현(924)은 3차원 환경(904)에서 사용자 B(914B)에 더 가깝고, 따라서 앱 D의 표현(924)의 배향은 사용자 A(914A)보다 사용자 B(914B)를 더 향한다. 일부 실시예들에서, 개개의 가상 객체의 제1 사용자들이 (예를 들어, 다른 사용자 또는 다른 가상 객체에 의해) 차단될 때, 개개의 가상 객체의 배향은 제1 사용자(또는 개개의 가상 객체에 대한 뷰들이 차단되는 임의의 다른 사용자들)의 위치에 기초하지 않으면서 3차원 환경(904) 내의 다른 사용자들(개개의 객체에 대한 이들의 뷰들은 차단되지 않음)의 위치들에 기초한다. 예를 들어, 도 9a의 3차원 환경(904)에서 사용자 A(914A)와 앱 A의 표현(906) 사이에 가상 객체가 존재했다면, 앱 A의 표현(905)의 배향 및/또는 크기는 사용자 A(914A)의 위치에 기초하지 않으면서 사용자 B(914B)의 위치에 기초할 것이다. 일부 실시예들에서, 제1 사용자와 개개의 가상 객체 사이의 거리가 임계치(예를 들어, 4, 5, 10 미터 등)를 초과하기 때문에 제1 사용자가 개개의 가상 객체를 볼 수 없을 때, 개개의 가상 객체의 배향은 제1 사용자(또는 개개의 가상 객체로부터 임계 거리보다 멀리 있는 임의의 다른 사용자들)의 위치에 기초하지 않으면서 3차원 환경(904) 내의 다른 사용자들(개개의 가상 객체의 임계 거리 내에 있음)의 위치들에 기초한다. 예를 들어, 도 9a에 예시된 3차원 환경(904)이 사용자 A(914A)의 임계 거리 내에 있지만 사용자 B(914B)로부터의 임계 거리보다 먼 추가적인 객체를 포함하면, 추가적인 객체의 배향 및/또는 크기는 사용자 B(914B)의 위치에 기초하지 않으면서 사용자 A(914A)의 위치에 기초할 것이다.
일부 실시예들에서, 가상 객체들의 자동 배향들에 대응하는 벡터 필드를 구성하는 것은 3차원 환경의 영역을 확립하는 것을 포함하며(904), 그 영역을 넘어서 가상 객체들은 3차원 환경 내의 사용자들의 위치들에 기초하기보다는 영역의 경계에 기초한 배향을 갖는다. 예를 들어, 도 9a에서, 사용자 A(914A) 및 사용자 B(914B)는 영역 내에 위치되고, 3차원 환경(904)의 영역 내의 임의의 가상 객체들의 배향들(예를 들어, 앱 C(922)의 표현)은 위에서 그리고 아래에서 설명되는 바와 같이 하나 이상의 사용자들의 위치들에 기초한다. 이 예에서, 영역 외부에서, 전자 디바이스들(101a 및 101b)은 가상 객체들의 위치에 가장 가까운 영역의 경계의 위치를 향하도록 가상 객체들을 배향시킨다. 따라서, 일부 실시예들에서, 영역의 경계로부터의 객체들의 거리에 관계없이, 영역의 경계를 따른 개개의 포인트에 가장 가까운 위치에서 영역 외부의 객체는 영역의 경계로부터 객체의 거리에 관계없이 동일한 개개의 배향을 가질 것이다. 일부 실시예들에서, 영역 내에서, 영역의 경계를 따르는 개개의 포인트로부터 객체의 거리를 변경하는 것은, 객체가 영역의 경계를 따라 개개의 포인트에 가장 가깝게 유지되는 경우에도, 객체의 배향을 변경한다. 일부 실시예들에서, 영역 외부에 있고 영역의 경계의 임계 거리(예를 들어, 0.2, 0.5, 0.7, 1 미터 등) 내에 있는 객체들은 3차원 환경(904) 내의 사용자들의 위치들(예를 들어, 영역 내에 객체들을 배치하는 데 사용된 기준들) 및 영역의 경계(예를 들어, 영역 외부에 객체들을 배향하는 데 사용된 기준들)에 따라 배향된다. 따라서, 일부 실시예들에서, 전자 디바이스(101a 및/또는 101b)는, 영역의 임계 거리 외부에 그리고 그 내에 객체들을 배치할 때 영역 내부 및 영역 외부에 사용되는 상이한 알고리즘들을 "혼합"할 수 있다.
일부 실시예들에서, 전자 디바이스(101a 및/또는 101b)는 도 9a 내지 도 10t를 참조하여 전술된 바와 같이 3차원 환경(904) 내에서 객체를 이동시키라는 사용자 요청에 응답하여 그리고/또는 3차원 환경(904) 내에 가상 객체를 초기에 디스플레이할 때 가상 객체의 배향을 자동으로 업데이트한다. 예를 들어, 도 9a에서 앱 A의 표현(906)의 배향은 3차원 환경(904)에서 사용자 A(914A) 및 사용자 B(914B)의 위치들에 기초하여 자동으로 선택된다. 일부 실시예들에서, 3차원 환경(904)에서 가상 객체를 디스플레이하라는 요청에 응답하여, 전자 디바이스(101a 및/또는 101b)는 가상 객체의 초기 위치를 선택하고, 3차원 환경(904) 내의 사용자들(914A 및 914B) 및 다른 객체들의 위치들에 기초하여 배향을 선택한다. 일부 실시예들에서, 가상 객체의 초기 위치는 사용자들(914A 및 914B)의 배향(예를 들어, 사용자들의 시야들(928a 및 928b))에 기초하지 않는다. 예를 들어, 앱 A의 표현(906)의 초기 위치는, 사용자 A(914A) 및 사용자 B(914B)가 도 9a에 예시된 위치들에 있는 동안 3차원 환경(904)의 어느 방향들을 향하고 있는지에 관계없이, 도 9a에 예시된 위치이다. 따라서, 일부 실시예들에서, 3차원 환경에서의 가상 객체들의 초기 배치는 3차원 환경에서의 사용자들의 위치들에 기초한다. 예를 들어, 앱 A의 표현(906) 및 앱 D의 표현(924)은 사용자들(914A 및 914B) 둘 모두가 표현들의 콘텐츠를 포함하는 표현들의 측면을 볼 수 있는 위치들에 배치되는 반면, 앱 C의 표현(922)은 사용자들이 (예를 들어, 가상 보드 게임에 대해) 표현의 상이한 측면들을 볼 수 있도록, 사용자들(914A 및 914B) 사이에 배치된다.
도 9b는 도 9a를 참조하여 전술된 3차원 환경(904)의 다른 예를 예시한다. 도 9b에서, 3차원 환경(904) 내의 사용자들(914A 및 914B) 및 다른 객체들의 위치들은 도 9a에서의 이들의 위치들과 상이하다. 일부 실시예들에서, 앱 A의 표현(906), 앱 D의 표현(924), 앱 C의 표현(922) 및 앱 B의 표현(908)의 초기 위치들 및 배향들은 도 9a에서보다 도 9b에서 상이한데, 이는, 이들 객체들의 위치들 및 배향들이 3차원 환경에서 사용자들(914A 및 914B)의 위치들에 기초하고, 사용자들(914A 및 914B)의 위치들은 그들이 도 9a에서 있었던 것보다 도 9b에서 상이하기 때문이다.
일부 실시예들에서, 도 9a 및 도 9b는 3차원 환경(904)에서 객체들의 초기 위치들 및 배향들 또는 객체들을 이동시키는 사용자 입력에 응답하여 객체들의 자동으로 선택된 배향들을 예시한다는 것이 이해되어야 한다. 일부 실시예들에서, 전자 디바이스들(101a 및/또는 101b)은 하나 이상의 사용자들이 3차원 환경(904)에서 자신의 위치들을 업데이트하는 것에 응답하여 가상 객체들의 배향들 및/또는 위치들을 업데이트하지 않는다. 사용자들(914A 또는 914B) 중 하나 이상이 3차원 환경(904) 내에서 자신들의 위치를 변경하는 것을 검출하는 것에 응답하여, 전자 디바이스들(101a 및 101b)은 가상 객체들의 위치들 및 배향들을 업데이트하는 것을 보류하지만, 3차원 환경(904)에 추가된 새로운 객체들의 초기 위치 및 배향, 및 3차원 환경(904) 주위에서 이동되는 객체들의 배향을 결정하기 위해 사용된 벡터 필드를 업데이트한다.
도 9b의 범례(912)는 3차원 환경(904)에서 사용자 A(914a)의 시야(928a) 및 사용자 B(914B)의 시야(928b)를 예시한다. 전자 디바이스(101a)는 앱 A의 표현(906) 및 앱 B의 표현(908)을 포함하는, 사용자 A(914a)의 시점으로부터의 3차원 환경(904)을 디스플레이한다. 전자 디바이스(101b)는 앱 A의 표현(906), 앱 C의 표현(922) 및 사용자 A(914A)의 표현(예를 들어, 아바타)을 포함하는, 사용자 B(914b)의 시점으로부터의 3차원 환경(904)을 디스플레이한다. 사용자 B(914B)의 시야(928b)는 범례(912)에 도시된 바와 같이 앱 B의 표현(908)을 포함하지만, 전자 디바이스 B(101b)는 앱 B의 표현(908)을 디스플레이하지 않는데, 이는 앱 B의 표현(908)이 사용자 B에게 액세스가능하지 않기 때문이다.
또한, 사용자 B(914B)는 앱 B의 표현(908)에 대한 액세스를 갖지 않기 때문에, 일부 실시예들에서, 앱 B의 표현(908)의 배향은 3차원 환경(904)에서 사용자 B(914B)의 위치에 기초하지 않고 사용자 A(914A)의 위치에 기초한다. 예를 들어, 앱 A의 표현(908) 및 앱 D의 표현(924)은 사용자 A(914A) 및 사용자 B(914B) 둘 모두를 향해 배향되지만, 앱 B의 표현(908)은 사용자 A(914A)를 향해 배향되고, 사용자 B(914B)가 표현(908)에 대한 액세스를 갖는다면 사용자 B(914B)가 표현(908)의 콘텐츠를 보기가 어려울 각도에 있다.
일부 실시예들에서, 전자 디바이스(101a 및/또는 101b)는 초기에, 표현에 대한 액세스를 갖는 3차원 환경(904) 내의 다른 사용자들 없이, 디스플레이를 요청한 사용자가 애플리케이션의 표현에 대한 액세스를 갖는 개인 모드에서 애플리케이션들의 표현들을 디스플레이한다. 예를 들어, 전자 디바이스 A(101a)는, 표현(908)을 사용자 B(914B)에게 액세스가능하게 하라는 요청이 사용자 A(914A)로부터 수신될 때까지 표현(908)을 디스플레이하기 위한 사용자 A(914A)로부터의 요청을 검출하는 것에 응답하여 표현(908)에 대한 액세스를 갖는 사용자 B(914B) 없이 사용자 A(914A)가 표현(908)에 대한 액세스를 갖도록 개인 모드에서 앱 B의 표현(908)을 디스플레이한다. 일부 실시예들에서, 사용자 A(914A) 및 사용자 B(914B) 이외의 추가적인 사용자들이 3차원 환경(904)에 존재한다면, 앱 B의 표현(908)을 사용자 B(914B)에게 액세스가능하게 하라는 요청은 표현(908)을 3차원 환경(914) 내의 사용자들 모두에게 액세스가능하게 하라는 요청 또는 (예를 들어, 표현(908)에 액세스하기 위한 사용자 A(914A)의 능력을 유지하면서 또는 유지하지 않으면서) 다른 사용자들에게 액세스가능함이 없이 표현(908)을 사용자 B(914B)에게 액세스가능하게 하라는 요청이다.
도 9b는 전자 디바이스 A(101a)가 앱 B의 표현(908)을 사용자 B(914b)에게 액세스가능하게 하기 위한 입력을 검출하고 전자 디바이스 B(101b)가 앱 A의 표현(906)을 이동시키기 위한 입력을 검출하는 것을 예시한다. 예를 들어, 전자 디바이스 A(101a)는 사용자 A(914A)가 자신의 손(920a)으로 제스처를 수행하는 것을 검출하면서 앱 B의 표현(908)을 공유하기 위한 옵션(926)으로 지향된 사용자 A(914A)의 시선(916a)을 검출한다. 전자 디바이스 B(101b)는, 사용자 B(914B)가 자신의 손(920b)으로 제스처를 유지하면서 손(920b)의 이동 및 자신의 손(920b)을 이용한 제스처를 수행하는 것을 검출하는 동안 앱 A의 표현(906)으로 지향된 사용자 B(914B)의 시선(916b)을 검출한다. 일부 실시예들에서, 전자 디바이스들에 의해 검출된 제스처는 사용자가 엄지손가락을 엄지손가락과 동일한 손 상의 다른 손가락(예를 들어, 검지, 중지, 약지, 새끼 손가락)에 터치하는 것이다.
일부 실시예들에서, 전자 디바이스 A(101a)는 사용자의 시선(916a)이 표현(908) 상에 있음을 나타내는 표시(918)를 앱 B의 표현(908) 주위에 디스플레이한다. 일부 실시예들에서, 표시(918)는 앱 B의 표현(908) 상에서 사용자의 시선(916a)을 검출하는 것에 응답하여 디스플레이된다. 일부 실시예들에서, 표시(918) 상에서 사용자 A(914A)의 시선을 검출하는 것에 응답하여, 전자 디바이스 A(101a)는 앱 B의 표현(908)을 사용자 B(914B)에게 액세스가능하게 하는 옵션(926)을 디스플레이한다. 일부 실시예들에서, 전자 디바이스 A(101a)는 표시(918) 상에서 사용자의 시선을 검출하는 것에 응답하여 추가적인 옵션들(예를 들어, 표현(908)을 이동시키기 위한 옵션, 표현(908)의 디스플레이를 중단하기 위한 옵션 등)을 디스플레이한다. 표시(918)는 표현(908)을 둘러싸는 것으로 도 9b에서 예시되지만, 일부 실시예들에서, 표시(918)는 표현(908)의 하나의 에지에 인접하게 디스플레이된다(예를 들어, 표시(918)는 표현(908)의 최하부를 따르는 또는 다른 에지를 따르는 바(bar)이다). 전자 디바이스 A(101a)는, 사용자 A(914A)가 자신의 손(920a)으로 제스처를 수행하는 것(예를 들어, 엄지손가락을 엄지손가락과 동일한 손 상의 다른 손가락(예를 들어, 검지, 중지, 약지, 새끼 손가락)에 터치하는 것)을 검출하면서, 앱 B의 표현(908)을 공유하기 위한 옵션(926)에 대한 사용자 A(914a)의 시선(916a)을 검출한다. 응답으로, 전자 디바이스 A(101a)는 도 9c를 참조하여 아래에서 더 상세히 설명될 바와 같이, 앱 B의 표현(908)을 사용자 B(914B)에게 액세스가능하게 한다.
도 9b의 일부 실시예들에서, 전자 디바이스 B(101b)는 사용자의 시선(916b)이 표현(906) 상에 있음을 나타내는 표시(918)를 앱 A의 표현(906) 주위에 디스플레이한다. 일부 실시예들에서, 표시(918)는 앱 A의 표현(906) 상에서 사용자의 시선(916b)을 검출하는 것에 응답하여 디스플레이된다. 표시(918)는 표현(906)을 둘러싸는 것으로 도 9b에서 예시되지만, 일부 실시예들에서, 표시(918)는 표현(906)의 하나의 에지에 인접하게 디스플레이된다(예를 들어, 표시(918)는 표현(906)의 최하부를 따르는 또는 다른 에지를 따르는 바(bar)이다). 전자 디바이스 B(101b)는, 사용자 B(914b)가 자신의 손(920b)으로 제스처를 수행하는 것(예를 들어, 엄지손가락을 엄지손가락과 동일한 손 상의 다른 손가락(예를 들어, 검지, 중지, 약지, 새끼 손가락)에 터치하는 것)을 검출하면서, 표현(906) 주위의 표시(918) 상에서 사용자 B(914b)의 시선(916b)을 검출한다. 응답으로, 전자 디바이스 A(101b)는 도 9c를 참조하여 아래에서 더 상세히 설명될 바와 같이, 손(920b)(예를 들어, 손(920b)의 팔)의 이동에 따라 3차원 환경(904)에서 앱 A의 표현(906)을 이동시키기 위한 프로세스를 개시한다. 일부 실시예들에서, 3차원 환경(904)에서 개개의 가상 객체에 대한 액세스를 갖는 임의의 사용자는 유사한 방식으로 3차원 환경(904)에서 가상 객체를 이동시킬 수 있다. 예를 들어, 사용자 A(914A)는 사용자 B(914B)가 앱 A의 표현(906)을 이동시키는 방식과 유사한 방식으로 앱 A의 표현(906)을 이동시킬 수 있다.
도 9c는 앱 B의 표현(908)을 사용자 B(914B)에게 액세스가능하게 하라는 사용자 A(914A)의 요청, 및 도 9b에 예시된 앱 A의 표현(906)을 이동시키라는 사용자 B(914B)의 요청을 수신한 후의 3차원 환경(904)을 예시한다. 앱 B의 표현(908)을 사용자 B(914B)에게 액세스가능하게 하라는 사용자 A(914A)의 요청에 응답하여, 전자 디바이스 B(101b)는 앱 B의 표현(908)을 3차원 환경(904)에 디스플레이한다. 앱 A의 표현(906)을 이동시키기 위한 사용자 B(914B)의 요청에 응답하여, 전자 디바이스들(101a 및 101b)은 3차원 환경(904)에서 앱 A의 표현(906)의 위치, 배향 및 크기를 업데이트한다.
일부 실시예들에서, 전자 디바이스는 3차원 환경(904)에서 사용자들의 임계 거리(예를 들어, 0.1, 0.2, 0.3, 0.4, 0.5 미터 등) 내에 가상 객체들을 배치하는 것을 저지한다. 예를 들어, 전자 디바이스는, 3차원 환경의 나머지에 대한 사용자들의 뷰들이 방해받지 않도록, 사용자들의 개인 공간 내에 객체들을 배치하는 것을 회피한다. 도 9b에 예시된 사용자 B(914B)의 손(920b)의 이동이 앱 A의 표현(906)을 사용자 A(914A)의 임계 거리 내의 위치로 이동시키는 것에 대응할 수 있지만, 전자 디바이스들은 도 9b의 사용자 B(914b)에 의해 제공된 앱 A의 표현(906)을 이동시키기 위한 요청에 응답하여 3차원 환경에서 사용자 A(914A)로부터 멀리 있는 임계 거리인 3차원 환경(904) 내의 위치에 앱 A의 표현(906A)을 디스플레이한다. 일부 실시예들에서, 이동 입력의 종료(예를 들어, 사용자 B(914b)가 이동 입력과 연관된 미리 결정된 제스처(예를 들어, 엄지손가락을 엄지손가락과 동일한 손 상의 다른 손가락(예를 들어, 검지, 중지, 약지, 새끼 손가락)에 터치하는 것)를 수행하는 것을 중단하는 것) 이전에, 전자 디바이스들(101a 및/또는 101b)은 사용자 A(914A)의 임계 거리 내의 위치에 앱 A의 표현(906)을 디스플레이하는 것을 포함하여, 사용자 B의 손(920b)의 이동에 따라 앱 A의 표현(906)을 이동시킨다. 일부 실시예들에서, 이동 입력의 종료를 검출하는 것에 응답하여, 전자 디바이스(101a 및/또는 101b)는 사용자 A(914A)의 임계 거리 내의 위치로부터 적어도 사용자 A(914A)로부터 멀리 있는 임계 거리의 위치로 이동하는 앱 A의 표현(906)의 애니메이션을 디스플레이한다. 일부 실시예들에서, 이동 입력이 제공되고 있는 동안, 전자 디바이스(101a 및/또는 101b)는 표현(906)을 사용자 A(914A)의 임계 거리 내의 위치로 이동시키는 것에 대응하는 이동 입력에 응답하여, 사용자 A(914A)의 임계 거리 내의 위치에 앱 A의 표현(906)을 디스플레이하지 않고, 사용자 A(914A)로부터 멀리 있는 임계 거리에 표현(906)을 디스플레이한다.
일부 실시예들에서, 전자 디바이스들(101a 및/또는 101b)은, 사용자들(914A 및 914B) 둘 모두가 가상 객체의 콘텐츠를 보는 것이 불가능한 위치에 사용자들(914A 및 914B)이 가상 객체를 배치하는 것을 허용하지 않는다. 예를 들어, 전자 디바이스(101a 및/또는 101b)는 또한 3차원 환경(904)에서 2명의 사용자들(예를 들어, 사용자 A(914A) 및 사용자 B(914B)) 사이에 애플리케이션들의 단방향 표현들(예를 들어, 일 측면 상의 콘텐츠를 포함하는 각각 앱 A, 앱 B 및 앱 D의 표현들(906, 908 및 924))을 배치하는 것을 저지하는데, 이는, 단방향 표현이 사용자들 사이에 있다면, 콘텐츠를 갖는 표현의 측면이 사용자들 둘 모두를 향할 수 없기 때문이다. 일부 실시예들에서, 애플리케이션의 단방향 표현을 사용자 A(914A)와 사용자 B(914B) 사이의 위치로 이동시키는 것에 대응하는 이동 입력(예를 들어, (예를 들어, 표현(922)이 도 9b에 예시된 위치에 디스플레이되지 않는 동안) 표현(906 또는 908)을 표현(922)의 위치로 이동시키기 위한 입력)에 응답하여, 전자 디바이스(101a 및/또는 101b)는 2명의 사용자들(914A 및 914B) 사이에서 직접적으로 라인으로부터 적어도 임계 거리(예를 들어, 5, 10, 15, 20 센티미터 등)의 위치에 표현을 디스플레이한다. 일부 실시예들에서, 전자 디바이스(101a 및/또는 101b)는, 이동 입력이 제공되고 있는 동안 이동 입력에 따라 표현을 디스플레이하고(예를 들어, 2명의 사용자들(914A 및 914B) 사이에 표현을 디스플레이하는 것을 포함함), 이동 입력의 종료를 검출하는 것에 응답하여, 2명의 사용자들(914A 및 914B) 사이에서 직접적으로 라인으로부터 적어도 임계 거리(예를 들어, 5, 10, 15, 20 센티미터 등)의 위치에 표현을 이동시킨다. 일부 실시예들에서, 이동 입력이 제공되고 있는 동안 전자 디바이스(101a 및/또는 101b)는, 2명의 사용자들(914A 및 914B) 사이의 위치로 표현을 이동시키는 것에 대응하는 이동의 양에 응답하여 이동 입력이 제공되는 동안 2명의 사용자들(914A 및 914B) 사이에서 직접적으로 라인으로부터 적어도 임계 거리(예를 들어, 5, 10, 15, 20 센티미터 등)에 표현을 디스플레이한다. 일부 실시예들에서, 전자 디바이스(101a 및/또는 101b)는, 2명의 사용자들 사이에서 직접적으로 라인을 지나도록 표현을 이동시키는 것에 대응하는 이동 입력을 검출하는 것에 응답하여 2명의 사용자들(914A 및 914B) 사이의 라인의 일면 측으로부터 2명의 사용자들(914A 및 914B) 사이의 라인의 다른 측면으로 표현을 이동시킨다.
일부 실시예들에서, 전자 디바이스(101a 및/또는 101b)는 도 9b의 사용자 B(914B)에 의해 제공된 입력과 같은 이동 입력에 응답하여 앱 A의 표현(906)의 위치를 업데이트하는 것에 응답하여 사용자 A(914A) 및 사용자 B(914B)의 위치들에 기초하여 앱 A의 표현(906)을 리사이징한다. 앱 A의 표현(906)이 도 9b에 있는 것보다 도 9c의 사용자들 둘 모두에 더 가깝기 때문에, 3차원 환경(904)에서 앱 A의 표현(906)의 크기는 도면들 둘 모두의 범례(912)에 도시된 바와 같이 도 9b에 있는 것보다 도 9c에서 더 작다. 마찬가지로, 입력이 애플리케이션의 표현을 3차원 환경(904)에서 사용자들(914A 및 914B)로부터 더 멀리 이동시키는 것에 응답하여, 전자 디바이스(101a 및/또는 101b)는 3차원 환경(904)에서 표현의 크기를 증가시킨다. 일부 실시예들에서, 전자 디바이스(101a 및/또는 101b)는 앱 A의 표현(906)의 업데이트된 위치로부터 더 멀리 떨어진 사용자(예를 들어, 사용자 B(914B))에게 판독가능할 정도로 큰 크기로 앱 A의 표현(906)을 디스플레이한다. 예를 들어, 도 9c에서, 앱 A의 표현(906)의 크기는, 표현(906)으로부터 사용자 A(914A)가 있는 것보다 사용자 B(914B)가 표현(906)으로부터 더 멀리 떨어져 있기 때문에, 사용자 B(914B)에게 판독가능할 정도로 충분히 크게 선택된다. 일부 실시예들에서, 전자 디바이스(101a 및/또는 101b)는 객체들과 사용자들 사이의 거리가 변하는 것에 응답하여 일부 객체들의 크기를 업데이트하지 않는다. 일부 실시예들에서, 전자 디바이스(101a 및/또는 101b)가 객체와 사용자들(914A 및 914B) 사이의 거리를 변경하는 것에 응답하여 객체의 크기를 유지하더라도, 객체 상에서 사용자의 시선을 검출하는 것에 응답하여 표시(918)가 디스플레이되는 크기가 (예를 들어, 사용자들에게 더 가까울 때 더 작아지고 사용자들로부터 더 멀어질 때 더 커지도록) 업데이트된다.
따라서, 일부 실시예들에서, 도 9b 및 도 9c를 참조하여 설명된 바와 같이, 애플리케이션의 표현이 3차원 환경(904)에서 복수의 사용자들(914A 및 914B)에게 액세스가능할 때, 표현의 배향 및/또는 사이징은 3차원 환경(904)에서 복수의 사용자들(914A 및 914B)의 위치들에 따라 업데이트된다. 일부 실시예들에서, 애플리케이션의 표현이 3차원 환경에서 하나의 사용자에게만 액세스가능할 때(904), 표현의 배향 및/또는 사이징은 도 7a 내지 도 8p를 참조하여 전술된 방식과 유사한 방식으로 표현에 대한 액세스를 갖는 사용자의 위치에 따라 업데이트된다. 일부 실시예들에서, 애플리케이션의 표현의 배향 및/또는 위치는 표현을 공유하기 위한 입력(예를 들어, 도 9b의 사용자 A(914A)에 의해 제공된 입력)에 응답하여 동일하게 유지되고, 표현이 복수의 사용자들에게 액세스가능한 동안 재배치될 때까지 자동으로 업데이트되지 않는다. 예를 들어, 앱 B의 표현(908)의 위치, 배향 및/또는 크기는, 표현(908)을 공유하기 위한 입력이 전자 디바이스 A(101a)에 의해 수신되기 전에 도 9b에서와 같이 공유되는 것에 응답하여 도 9c에서 동일하다. 일부 실시예들에서, 사용자들(914A 또는 914B) 중 한 사람이 표현(908)을 이동시키면, 전자 디바이스(101a 및/또는 101b)는 입력에 따라 표현(908)을 이동시키고, 이동 입력이 수신된 후에(그리고 선택적으로, 그 동안) 사용자 A(914A) 및 사용자 B(914B)가 표현(906)을 볼 수 있도록, 표현(908), 사용자 A(914A), 및 사용자 B(914B)의 위치들에 따라 표현(906)의 크기 및 배향을 자동으로 업데이트할 것이다.
도 9a 내지 도 9c를 참조하여 전술된 바와 같이, 일부 실시예들에서, 전자 디바이스(101a 및/또는 101b)는 3차원 환경(904)에서 사용자 A(914A) 및 사용자 B(914B)의 위치들에 따라 가상 객체들의 배향 및/또는 크기를 자동으로 (예를 들어, 가상 객체를 초기에 디스플레이할 때, 가상 객체를 이동시키라는 요청에 응답하여) 업데이트한다. 따라서, 일부 실시예들에서, (예를 들어, 사용자들을 추가하거나 제거함으로써) 3차원 환경(904) 내의 사용자들의 수가 변하면, 3차원 환경(904) 내의 개개의 위치에서의 개개의 객체의 자동 배향이 또한 변할 것이다.
도 9d는 전자 디바이스 A(101a), 전자 디바이스 B(101b) 및 전자 디바이스 C(101c) 각각에서의 3차원 환경(904)의 디스플레이를 예시한다. 전자 디바이스 A(101a)는 앱 A의 표현(906) 및 앱 B의 표현(908)을 포함하여, 사용자 A(914A)의 시야(928a) 내의 3차원 환경(904)의 일부를 예시한다. 전자 디바이스 B(101b)는, 앱 A의 표현(906), 앱 B의 표현(908), 앱 C의 표현(922) 및 사용자 A(914A)의 표현을 포함하여, 사용자 B(914B)의 시야(928b) 내의 3차원 환경(904)의 일부를 예시한다. 전자 디바이스 C(101c)는, 앱 A의 표현(906), 앱 B의 표현(908), 앱 C의 표현(922) 및 사용자 A(914A)의 표현을 포함하여, 사용자 C(914C)의 시야(928c) 내의 3차원 환경(904)의 일부를 예시한다.
일부 실시예들에서, 사용자 C(914C)가 3차원 환경(904)에 참여하는 것에 응답하여, 전자 디바이스(101a, 101b 및/또는 101c)는 3차원 환경(904)에서 사용자 C(914C)의 초기 위치를 자동으로 선택한다. 전자 디바이스가 3차원 환경에서 사용자의 초기 위치를 선택하는 예시적인 방식들은 도 13a 내지 도 14l을 참조하여 아래에서 더 상세히 설명된다. 일부 실시예들에서, 전자 디바이스는 사용자가 3차원 환경에 참여하는 것에 응답하여 또는 3차원 환경에 대한 사용자의 뷰를 재설정하기 위한 사용자 입력을 수신하는 것에 응답하여 사용자에 대한 위치를 자동으로 선택한다. 예를 들어, 3차원 환경을 재설정하라는 요청을 검출하는 것에 응답하여, 전자 디바이스는 하나 이상의 규칙들(예를 들어, 도 13a 내지 도 14l을 참조하여 아래에서 설명되는 규칙들 중 하나 이상)에 따라 사용자를 재배치한다. 이러한 방식으로, 전자 디바이스는 3차원 환경에서 다른 사용자들 및 객체들의 위치들 및/또는 배향들을 업데이트하지 않으면서 사용자에 대해 3차원 환경에서 객체들 및 다른 사용자들의 디스플레이를 업데이트할 수 있다.
도 9d는 사용자 C(914C)가 추가된, 도 9c를 참조하여 전술된 3차원 환경(904)을 예시한다. 도 9d는 3차원 환경(904)에서 도 9c의 이러한 객체들의 위치들과 동일한 위치들에 각각 디스플레이된 앱 A, B, C 및 D의 표현들(906, 908, 922 및 924)을 예시한다. 앱 A, B, C 및 D의 표현들(906, 908, 922 및 924)의 배향들은 각각, 도 9c에서보다 도 9d에서 상이한데, 이는, 3차원 환경(904)에 존재하는 사용자 배열이 도 9c(예를 들어, 사용자 C(914C)가 추가됨)에서보다 도 9d에서 상이하기 때문이다. 일부 실시예들에서, 전자 디바이스(101a, 101b 및/또는 101c)는, 사용자 C(914C)가 3차원 환경(904)에 추가되는 것에 응답하여, 앱 A, B, C 및 D의 표현들(906, 908, 922 및 924)의 배향들을 각각 업데이트하지 않는다. 오히려, 도 9d는 선택적으로, 이러한 객체들이 도 9d에 도시된 위치들로 이동된 경우 앱 A, B, C 및 D의 표현들(906, 908, 922 및 924)의 자동 배향을 각각 예시한다. 일부 실시예들에서, 앱 A, B, C 및 D의 표현(906, 808, 922 및 924)의 배향들 및/또는 크기들은 각각, 사용자 C(914C)가 3차원 환경(904)에 참여하는 것에 응답하여 도 9d에 도시된 바와 같이 업데이트된다.
예를 들어, 앱 B 및 A의 표현들(908 및 906)은 각각, 도 9c에서보다 도 9d에서 우측을 향해 더 많이 기울어 있는데, 이는 사용자 C(914C)가 이들 객체들의 우측에 있기 때문에, 표현들(908 및 906)은 적어도 (예를 들어, 전자 디바이스 C(101c)를 통해) 사용자 C(914C)에게 부분적으로 가시적이기 때문이다. 다른 예로서, 앱 C의 표현(922)은, 표현(922)의 측면들 중 하나가 사용자 B(914B) 및 사용자 C(914C) 둘 모두를 향해 배향되어 사용자 C(914C)가 앱 C의 표현(922)의 적어도 일부를 볼 수 있도록 반시계 방향으로 회전된다. 도 9d에서, 사용자 A(914A)는 여전히 앱 C의 표현(922)의 다른 측면을 볼 수 있는데, 이는 앱 C의 표현(922)이 다수의 측면들(예를 들어, 사용자들을 향하는 측면들, 모든 측면들 등) 상에 콘텐츠를 포함하기 때문이다.
도 10a 내지 도 10t는 일부 실시예들에 따른 3차원 환경에서의 복수의 사용자들의 시점들에 기초하여 3차원 환경에서 가상 객체의 배향을 자동으로 업데이트하는 방법을 예시하는 흐름도이다. 일부 실시예들에서, 본 방법(1000)은, 디스플레이 생성 컴포넌트(예컨대, 도 1, 도 3 및 도 4의 디스플레이 생성 컴포넌트(120))(예컨대, 헤드업 디스플레이, 디스플레이, 터치스크린, 프로젝터 등) 및 하나 이상의 카메라들(예컨대, 사용자의 손에서 하향으로 향하는 카메라(예컨대, 컬러 센서들, 적외선 센서들, 및 다른 심도 감지 카메라들) 또는 사용자의 머리로부터 전방으로 향하는 카메라)을 포함하는 컴퓨터 시스템(예컨대, 태블릿, 스마트폰, 웨어러블 컴퓨터 또는 머리 장착형 디바이스와 같은 도 1의 컴퓨터 시스템(101))에서 수행된다. 일부 실시예들에서, 방법(1000)은, 비일시적 컴퓨터 판독가능 저장 매체에 저장되며 컴퓨터 시스템의 하나 이상의 프로세서들, 예를 들어, 컴퓨터 시스템(101)의 하나 이상의 프로세서들(202)(예를 들어, 도 1a의 제어 유닛(110))에 의해 실행되는 명령어들에 의해 통제된다. 방법(1000)에서의 일부 동작들이 선택적으로 조합되거나, 및/또는 일부 동작들의 순서가 선택적으로 변경된다.
일부 실시예들에서, 방법(1000)은 디스플레이 생성 컴포넌트 및 하나 이상의 입력 디바이스들(예컨대, 모바일 디바이스(예컨대, 태블릿, 스마트폰, 미디어 플레이어 또는 웨어러블 디바이스), 또는 컴퓨터)과 통신하는 전자 디바이스에서 수행된다. 일부 실시예들에서, 디스플레이 생성 컴포넌트는 전자 디바이스(선택적으로, 터치 스크린 디스플레이), 모니터, 프로젝터, 텔레비전, 또는 하드웨어 컴포넌트(선택적으로, 통합형 또는 외장형)와 같은, 사용자 인터페이스를 투영하기 위한 또는 사용자 인터페이스가 하나 이상의 사용자들에게 가시적이 되게 하기 위한 외장형 디스플레이 등과 통합된 디스플레이이다. 일부 실시예들에서, 하나 이상의 입력 디바이스들은 사용자 입력을 수신하고(예를 들어, 사용자 입력을 캡처하는 것, 사용자 입력을 검출하는 것 등) 사용자 입력과 연관된 정보를 전자 디바이스에 송신할 수 있는 전자 디바이스 또는 컴포넌트를 포함한다. 입력 디바이스들의 예들은, 터치 스크린, (예를 들어, 외부의) 마우스, (선택적으로 통합된 또는 외부의) 트랙패드, (선택적으로 통합된 또는 외부의) 터치패드, (예를 들어, 외부의) 원격 제어 디바이스, (예를 들어, 전자 디바이스와 별개인) 다른 모바일 디바이스, (예를 들어, 외부의) 핸드헬드 디바이스, (예를 들어, 외부의) 제어기, 카메라, 깊이 센서, 눈 추적 디바이스 및/또는 모션 센서(예를 들어, 손 추적 디바이스, 손 모션 센서) 등을 포함한다.
도 9a에서와 같은 일부 실시예들에서, 전자 디바이스(예를 들어, 101)는 디스플레이 생성 컴포넌트(120)를 통해, 제1 사용자(예를 들어, 914A) 및 제2 사용자(예를 들어, 914B)에 의해 공유되는 3차원 환경(예를 들어, 904)을 디스플레이한다(1002). 일부 실시예들에서, 3차원 환경은 디바이스에 의해 생성, 디스플레이, 또는 다른 방식으로 볼 수 있게 된다(예를 들어, 3차원 환경은 가상 현실(VR) 환경, 혼합 현실(MR) 환경 또는 증강 현실(AR) 환경 등과 같은 컴퓨터 생성 현실(CGR) 환경임). 일부 실시예들에서, 제1 사용자와 연관된 전자 디바이스는 3차원 환경에서 제1 사용자의 위치 및 배향에 대응하는 시점으로부터 3차원 환경을 디스플레이한다. 일부 실시예들에서, 제2 사용자와 연관된 다른 전자 디바이스(예를 들어, 전자 디바이스와 상이함)는 3차원 환경에서 제2 사용자의 위치 및 배향에 대응하는 시점으로부터 3차원 환경을 디스플레이한다. 일부 실시예들에서, 3차원 환경은 제1 사용자가 위치된 환경 내의 물리적 객체들을 표현하는 가상 객체들 및/또는 제2 사용자가 위치된 환경 내의 물리적 객체들을 표현하는 가상 객체들을 포함한다. 일부 실시예들에서, 제1 사용자에 대응하는 3차원 환경 내의 위치는 제1 사용자와 연관된 전자 디바이스의 물리적 환경 내의 제1 사용자와 연관된 전자 디바이스의 물리적 위치에 대응하는 위치이다. 일부 실시예들에서, 제2 사용자에 대응하는 3차원 환경 내의 위치는 제2 사용자와 연관된 다른 전자 디바이스의 물리적 환경 내의 제2 사용자와 연관된 다른 전자 디바이스의 물리적 위치에 대응하는 위치이다. 일부 실시예들에서, 전자 디바이스는 제1 사용자와 연관된 3차원 환경 내의 위치에서 제1 사용자의 아바타를 디스플레이하고/하거나 제2 사용자에 대응하는 3차원 환경 내의 위치에서 제2 사용자의 아바타를 디스플레이한다.
일부 실시예들에서, 전자 디바이스(예를 들어, 101)는, 하나 이상의 입력 디바이스들을 통해, 3차원 환경에서 개개의 애플리케이션의 개개의 표현을 디스플레이하라는 요청에 대응하는 입력을 수신한다(1004)(예를 들어, 표현들(예를 들어, 906), (예를 들어, 908), 또는 (예를 들어, 922) 중 하나를 디스플레이하기 전에, 도 9a의 표현들(예를 들어, 906), (예를 들어, 908) 또는 (예를 들어, 922) 중 하나를 디스플레이하라고 요청하는 입력을 수신함). 일부 실시예들에서, 입력은 개개의 애플리케이션을 개시하라는 요청 및/또는 전자 디바이스 상에서 이미 실행되고 있는 개개의 애플리케이션의 추가적인 표현을 디스플레이하라는 요청과 연관된 입력을 포함한다. 일부 실시예들에서, 개개의 애플리케이션의 개개의 표현은 개개의 애플리케이션의 사용자 인터페이스이다. 일부 실시예들에서, 개개의 애플리케이션의 개개의 표현은 개개의 애플리케이션과 연관된 가상 객체이다.
일부 실시예들에서, 개개의 애플리케이션의 개개의 표현을 디스플레이하라는 요청에 대응하는 입력을 수신하는 것에 응답하여(1006), 제1 사용자(예를 들어, 914A)의 시점 및 제2 사용자(예를 들어, 914B)의 시점이 도 9a에서와 같이 3차원 환경(예를 들어, 904) 내의 제1 복수의 위치들에서의 시점들을 포함하는 제1 배열(예를 들어, 공간적 배열)에 있다는 결정에 따라(예를 들어, 제1 사용자의 시점 및 제2 사용자의 시점은 3차원 환경에서 제1 복수의 위치들(및 예를 들어 배향들)에 있음), 전자 디바이스(예를 들어, 101)는 제1 사용자(예를 들어, 914A)의 시점 및 제2 사용자(예를 들어, 914B)의 시점의 제1 배열에 기초하여 3차원 환경(예를 들어, 904) 내의 제1 위치에 개개의 애플리케이션의 개개의 표현(예를 들어, 906)을 디스플레이한다(1008). 일부 실시예들에서, 제1 위치는 하나 이상의 배치 기준들을 충족시키는 위치이다. 일부 실시예들에서, 하나 이상의 배치 기준들은 3차원 환경에서 제1 및 제2 사용자의 위치들 및 선택적으로 배향들에 적어도 부분적으로 기초하여 충족되는 기준들을 포함한다. 일부 실시예들에서, 하나 이상의 배치 기준들은, 사용자들 둘 모두가 3차원 환경의 그들의 시점들로부터 개개의 애플리케이션의 개개의 표현을 볼 수 있을 때 충족되는 기준을 포함한다. 일부 실시예들에서, 배치 기준들은, 개개의 표현의 배향이 개개의 표현의 콘텐츠가 3차원 환경에서 제1 사용자 및 제2 사용자의 위치들을 향하고 있도록 하는 것일 때 충족되는 기준을 포함한다.
일부 실시예들에서, 개개의 애플리케이션의 개개의 표현을 디스플레이하라는 요청에 대응하는 입력을 수신하는 것에 응답하여(1006), 제1 사용자(예를 들어, 914A)의 시점 및 제2 사용자(예를 들어, 914B)의 시점이 도 9b에서와 같이 3차원 환경(예를 들어, 904) 내의 제1 복수의 위치들과 상이한 3차원 환경(예를 들어, 904) 내의 제2 복수의 위치들에서의 시점들을 포함하는 제2 배열(예를 들어, 공간적 배열)에 있다는 결정에 따라(예를 들어, 제1 사용자의 시점 및 제2 사용자의 시점은 3차원 환경에서 제2 복수의 위치들(및 예를 들어 배향들)에 있음), 전자 디바이스(예를 들어, 101)는 제1 사용자(예를 들어, 914A)의 시점 및 제2 사용자(예를 들어, 914B)의 시점의 제2 배열에 기초하여 3차원 환경(예를 들어, 904) 내의 제2 위치에 개개의 애플리케이션의 개개의 표현(예를 들어, 906)을 디스플레이한다(1010). 일부 실시예들에서, 제1 복수의 위치들과 제2 복수의 위치들 사이의 차이는 하나 이상의 다른 사용자들의 시점의 위치가 동일한 동안 사용자들 중 하나의 시점의 위치의 차이이다. 일부 실시예들에서, 제1 사용자 및 제2 사용자의 시점들의 위치들이 교환되면, 개개의 표현이 디스플레이되는 위치는 동일하다. 일부 실시예들에서, 개개의 표현이 디스플레이되는 위치는 사용자의 시점들의 배향들에 관계없이 사용자들의 시점들의 위치들에 의존한다. 일부 실시예들에서, 개개의 표현이 디스플레이되는 위치는 사용자들의 시점들의 위치들 및 배향들에 의존한다. 일부 실시예들에서, 전자 디바이스는 3차원 환경에서 제1 사용자 및 제2 사용자의 시점들의 위치들에 따라 상이한 위치에 개개의 애플리케이션의 개개의 표현을 디스플레이한다. 일부 실시예들에서, 개개의 애플리케이션의 표현은 개개의 애플리케이션의 개개의 표현의 대향 측면들로부터 제1 사용자 및 제2 사용자에 의해 보여지도록 의도된 양방향 표현이다. 예를 들어, 개개의 표현은 가상 보드 게임이고, 전자 디바이스는 제1 사용자와 제2 사용자의 시점들의 위치들 사이의 위치에서 개개의 표현을 디스플레이하도록 구성된다. 예로서, 제1 사용자의 위치가 기준 프레임에 대해 제2 사용자의 위치의 우측에 있다면, 전자 디바이스는 기준 프레임에 대해 제2 사용자의 우측에 그리고 제1 사용자의 좌측에 개개의 표현을 디스플레이한다. 이 예에서, 제1 사용자가 기준 프레임에 대해 제2 사용자의 좌측에 있다면, 전자 디바이스는 기준 프레임에 대해 제2 사용자의 좌측에 그리고 제1 사용자의 좌측에 개개의 표현을 디스플레이한다.
3차원 환경에서 사용자들의 시점들의 위치들에 의존하는 위치에 개개의 애플리케이션의 개개의 표현을 디스플레이하는 전술된 방식은 사용자들에게 편리한 위치에 개개의 표현을 디스플레이하는 효율적인 방식을 제공하고, 이는 추가적으로 전력 사용량을 감소시키고, 사용 시에 에러들을 감소시키면서, 사용자가 전자 디바이스를 더 빠르고 효율적으로 사용할 수 있게 함으로써, 전자 디바이스의 배터리 수명을 개선한다.
도 9b에서와 같은 일부 실시예들에서, 개개의 애플리케이션의 개개의 표현(예를 들어, 906)을 3차원 환경(예를 들어, 904) 내의 제1 위치에 디스플레이하는 동안 - 개개의 애플리케이션의 개개의 표현(예를 들어, 906)은 제1 사용자(예를 들어, 914A)의 시점 및 제2 사용자(예를 들어, 914B)의 시점의 제1 배열에 기초하여 3차원 환경(예를 들어, 904)에 대한 제1 배향으로 디스플레이됨 -, 전자 디바이스(예를 들어, 101)는 하나 이상의 입력 디바이스들을 통해, 개개의 애플리케이션의 개개의 표현(예를 들어, 906)을 3차원 환경(예를 들어, 904) 내의 제3 위치로 이동시키기 위한 개개의 입력을 수신한다(1012). 일부 실시예들에서, 입력은, 선택될 때, 전자 디바이스로 하여금 개개의 표현을 이동시키기 위한 프로세스를 개시하게 하는 옵션의 선택을 포함한다. 일부 실시예들에서, 입력을 검출하는 것은, 손 추적 디바이스(예를 들어, 하나 이상의 카메라들, 깊이 센서들, 근접도 센서들, 터치 센서들(예를 들어, 터치 스크린, 트랙패드))를 통해, 사용자가 제스처(예를 들어, 자신의 엄지손가락을 엄지손가락과 동일한 손 상의 손가락(예를 들어, 검지 손가락, 중지 손가락, 약지 손가락, 새끼 손가락)에 탭핑하는 것)를 수행하고, 제스처를 수행하는 동안 자신의 손을 이동시키고, 제스처를 해제하는 것을 검출하는 것을 포함한다. 일부 실시예들에서, 전자 디바이스는 사용자의 손의 이동에 따라 표현을 이동시킨다. 도 9c에서와 같은 일부 실시예들에서, 개개의 입력을 수신하는 것에 응답하여(1014), 전자 디바이스(예를 들어, 101)는 3차원 환경(예를 들어, 904) 내의 제3 위치에 개개의 애플리케이션의 개개의 표현(예를 들어, 906)을 디스플레이한다(1016). 도 9c에서와 같은 일부 실시예들에서, 개개의 입력을 수신하는 것에 응답하여(1014), 전자 디바이스(예를 들어, 101)는 제1 사용자(예를 들어, 914A)의 시점 및 제2 사용자(예를 들어, 914B)의 시점의 제1 배열 및 제3 위치에 기초하여, 제1 배향과 상이한 제2 배향으로 디스플레이되도록 개개의 애플리케이션의 표현(예를 들어, 906)을 업데이트한다(1018). 일부 실시예들에서, 전자 디바이스가 개개의 입력에 따라 개개의 표현을 이동시키는 동안, 전자 디바이스는 개개의 표현이 제1 위치로부터 제3 위치로 이동할 때 배향을 변경하고 이동하는 개개의 표현의 애니메이션을 디스플레이한다. 일부 실시예들에서, 제2 배향은 개개의 표현이 제3 위치에 있는 동안 제1 사용자 및 제2 사용자의 시점들을 향하는 배향이다. 일부 실시예들에서, 개개의 표현은 방법들(800 및/또는 1200)의 하나 이상의 단계들에 따라 업데이트된다.
제1 및 제2 사용자의 시점들의 제1 배열 및 제3 위치에 따라 개개의 표현의 위치를 업데이트하는 전술된 방식은 제1 및 제2 사용자들에 대해 가시적인 배향으로 개개의 표현을 디스플레이하는 효율적인 방식을 제공하고, 이는 추가적으로 전력 사용량을 감소시키고, 사용 시에 에러들을 감소시키면서, (예를 들어, 표현의 위치의 변화에 따라 표현의 배향을 조정하는 데 필요한 입력들을 감소시킴으로써) 사용자가 전자 디바이스를 더 빠르고 효율적으로 사용할 수 있게 함으로써, 전자 디바이스의 배터리 수명을 개선한다.
일부 실시예들에서, 개개의 애플리케이션의 개개의 표현(예를 들어, 906)을 도 9c에서와 같이 3차원 환경(예를 들어, 904) 내의 제1 위치에 디스플레이하는 동안 - 개개의 애플리케이션의 개개의 표현(예를 들어, 906)은 제1 사용자(예를 들어, 914A)의 시점 및 제2 사용자(예를 들어, 914B)의 시점의 제1 배열에 기초하여 3차원 환경(예를 들어, 904)에 대한 제1 배향으로 디스플레이됨 -, 전자 디바이스(예를 들어, 101)는 제1 사용자(예를 들어, 914A)의 시점 및 제2 사용자(예를 들어, 914B)의 시점의 제1 배열이 제1 사용자(예를 들어, 914A)의 시점 및 제2 사용자(예를 들어, 914B)의 시점의 제3 배열로 변경된 것을 검출하고(1020), 제3 배열은 3차원 환경 내의 제1 복수의 위치들과 상이한 3차원 환경(예를 들어, 904) 내의 제3 복수의 위치들에서의 시점들을 포함한다(예를 들어, 도 9c의 사용자 A(예를 들어, 914A) 및/또는 사용자 B(예를 들어, 914B)가 3차원 환경(예를 들어, 904) 내의 위치를 변경한 경우). 일부 실시예들에서, 제1 사용자 및 제2 사용자 중 하나 이상의 시점의 위치가 변경되었다. 예를 들어, 사용자들 중 하나 이상은 3차원 환경 내의 위치를 변경한다. 일부 실시예들에서, 전자 디바이스는 전자 디바이스의 제1 사용자의 위치를 변경하라는 요청에 대응하는 입력을 검출한다. 일부 실시예들에서, 전자 디바이스의 제1 사용자의 위치를 변경하라는 요청은 하나 이상의 가속도계들, 자이로스코프들, 거리 센서들, 카메라들 등을 통해 검출되는, 전자 디바이스의 물리적 환경 내에서의 전자 디바이스의 이동이다. 일부 실시예들에서, 제1 사용자의 시점 및 제2 사용자의 시점의 제1 배열이 변경되었음을 검출하는 것에 응답하여, 전자 디바이스(예를 들어, 101)는 도 9c에서와 같이 3차원 환경(예를 들어, 904)에 대한 제1 배향으로 제1 위치에서 개개의 애플리케이션의 개개의 표현(예를 들어, 906)을 유지한다(1022). 일부 실시예들에서, 전자 디바이스는 3차원 환경에서 사용자들 중 하나 이상의 사용자의 위치의 변화를 검출하는 것에 응답하여 개개의 표현의 배향 또는 위치를 변경하지 않는다. 일부 실시예들에서, 전자 디바이스는 방법(800)의 하나 이상의 단계들에 따라 이동한 사용자의 시점으로부터 3차원 환경을 업데이트한다.
제1 및 제2 사용자들의 시점들의 배열이 변할 때 3차원 환경에서 제1 위치 및 제1 배향으로 개개의 표현을 유지하는 전술된 방식은 개개의 표현을 업데이트하기 위한 새로운 위치 또는 배향을 컴퓨팅하지 않으면서 제1 사용자 및 제2 사용자들의 시점들의 배열을 업데이트하는 효율적인 방식을 제공하고, 이는 추가적으로 전력 사용량을 감소시키고, 전자 디바이스의 계산들의 복잡도를 감소시킴으로써 전자 디바이스의 배터리 수명을 개선한다.
도 9b에서와 같은 일부 실시예들에서, 3차원 환경(예를 들어, 904)에 대한 제1 배향으로 제1 위치에서 개개의 애플리케이션의 개개의 표현(예를 들어, 906)을 디스플레이하는 동안, 전자 디바이스(예를 들어, 101)는 개개의 애플리케이션의 개개의 표현(예를 들어, 906)을 3차원 환경(예를 들어, 904) 내의 제1 위치로부터 멀어지게 이동시키기 위한 개개의 입력을 검출한다(1024). 일부 실시예들에서, 전자 디바이스는, 선택될 때, 전자 디바이스로 하여금 개개의 표현을 3차원 환경 내에서 이동시키기 위한 프로세스를 개시하게 하는 옵션의 선택을 검출한다. 일부 실시예들에서, 입력을 검출하는 것은, 손 추적 디바이스(예를 들어, 하나 이상의 카메라들, 깊이 센서들, 근접도 센서들, 터치 센서들(예를 들어, 터치 스크린, 트랙패드))를 통해, 사용자가 제스처(예를 들어, 자신의 엄지손가락을 엄지손가락과 동일한 손 상의 손가락(예를 들어, 검지 손가락, 중지 손가락, 약지 손가락, 새끼 손가락)에 탭핑하는 것)를 수행하고, 제스처를 수행하는 동안 자신의 손을 이동시키고, 제스처를 해제하는 것을 검출하는 것을 포함한다. 일부 실시예들에서, 전자 디바이스는 사용자의 손의 이동에 따라 표현을 이동시킨다. 도 9c에서와 같은 일부 실시예들에서, 개개의 입력을 검출하는 것에 응답하여, 전자 디바이스(예를 들어, 101)는 개개의 입력에 따라 개개의 애플리케이션의 개개의 표현(예를 들어, 906)을 제1 위치로부터 멀어지게 이동시키고(1026), 제1 사용자(예를 들어, 914A)의 시점 및 제2 사용자(예를 들어, 914B)의 시점의 제3 배열에 기초하여 3차원 환경(예를 들어, 906)에서 제1 배향과 상이한 제2 배향을 갖도록 개개의 표현(예를 들어, 906)을 업데이트한다. 일부 실시예들에서, 전자 디바이스는, 개개의 표현을 이동시키기 위한 입력이 수신되고 있는 동안, 사용자들의 시점들의 배열에 따라 표현의 배향을 업데이트한다. 예를 들어, 표현은, 사용자들의 시점들이 제1 배열에 있는 동안 초기에 제1 위치 및 배향으로 디스플레이되고, 시점들의 배열은 업데이트된 배열로 변경되고, 개개의 표현을 이동시키기 위한 입력이 수신된다. 이 예에서, 개개의 표현의 배향은, 개개의 표현을 이동시키기 위한 입력에 응답하여(예를 들어, 개개의 표현을 이동시키기 위한 입력을 검출하기 이전은 아님) 사용자들의 시점들의 업데이트된 배열 및 개개의 표현의 업데이트된 위치에 기초하여 변한다. 일부 실시예들에서, 제1 사용자의 시점 및 제2 사용자의 시점의 제3 배열에 기초한 개개의 표현의 제2 배향은 개개의 표현의 현재 위치에서 사용자들의 시점들을 향하는 배향이다. 일부 실시예들에서, 개개의 표현은 방법들(800 및/또는 1200)의 하나 이상의 단계들에 따라 업데이트된다.
제1 및 제2 사용자의 시점들의 제3 배열에 기초하여 개개의 표현의 배향을 업데이트하는 전술된 방식은 표현이 이동될 때 사용자들에게 가시적인 배향으로 표현을 디스플레이하는 효율적인 방식을 제공하고, 이는 추가적으로 전력 사용량을 감소시키고, 사용 시에 에러들을 감소시키면서, (예를 들어, 개개의 표현의 배향을 조정하는 데 필요한 입력들을 감소시킴으로써) 사용자가 전자 디바이스를 더 빠르고 효율적으로 사용할 수 있게 함으로써, 전자 디바이스의 배터리 수명을 개선한다.
도 9b와 같은 일부 실시예들에서, 개개의 애플리케이션의 개개의 표현(예를 들어, 906)은 개개의 사용자 인터페이스 요소(예를 들어, 918)와 함께 디스플레이된다(1028). 일부 실시예들에서, 전자 디바이스(예를 들어, 101)는, 하나 이상의 입력 디바이스들을 통해, 개개의 사용자 인터페이스 요소(예를 들어, 918)의 선택에 대응하는 입력을 검출한다(1030)(예를 들어, 사용자가 도 9b에서 자신의 손(예를 들어, 920b)으로 제스처를 수행하는 동안 사용자의 시선(예를 들어, 916b)이 사용자 인터페이스 요소(예를 들어, 918) 상에 있는 경우). 일부 실시예들에서, 개개의 사용자 인터페이스 요소(예를 들어, 918)의 선택에 대응하는 입력에 응답하여, 전자 디바이스(예를 들어, 101)는 3차원 환경(예를 들어, 904)에서 개개의 애플리케이션의 개개의 표현(예를 들어, 906)을 이동시키기 위한 프로세스를 개시한다(1032). 일부 실시예들에서, 개개의 사용자 인터페이스 요소를 향해 지향된 제2 입력에 응답하여, 전자 디바이스는, 선택될 때, 전자 디바이스로 하여금 개개의 표현을 이동시키기 위한 프로세스를 개시하게 하는 복수의 선택가능한 옵션들을 포함하도록 개개의 사용자 인터페이스 요소를 업데이트한다. 일부 실시예들에서, 개개의 사용자 인터페이스 요소는 사용자 인터페이스에서 다른 애플리케이션 표현들 및 다른 객체들 각각과 연관하여 디스플레이되는 시스템 객체이다. 일부 실시예들에서, 개개의 사용자 인터페이스 요소는, 눈 추적 디바이스를 통해, 사용자의 시선이 개개의 애플리케이션의 개개의 표현을 향해 지향되는 것을 검출하는 것에 응답하여 디스플레이된다. 일부 실시예들에서, 전자 디바이스는, 손 추적 디바이스(예를 들어, 하나 이상의 카메라들, 깊이 센서들, 근접도 센서들, 터치 센서들(예를 들어, 터치 스크린, 트랙패드))를 통해, 사용자가 개개의 사용자 인터페이스 요소를 보면서 제스처(예를 들어, 자신의 엄지손가락을 엄지손가락과 동일한 손 상의 손가락(예를 들어, 검지 손가락, 중지 손가락, 약지 손가락, 새끼 손가락)에 탭핑하는 것)를 수행하고, 제스처를 수행하는 동안 자신의 손을 이동시키고, 제스처를 해제하는 것을 검출하는 것에 응답하여 표현을 이동시킨다. 일부 실시예들에서, 전자 디바이스는 사용자의 손의 이동에 따라 표현을 이동시킨다. 일부 실시예들에서, 개개의 사용자 인터페이스 요소는 개개의 애플리케이션의 표현의 에지(예를 들어, 최하부 에지)에 인접하게 디스플레이된다.
3차원 환경에서 개개의 표현을 이동시키기 위해 상호작용가능한 개개의 사용자 인터페이스 요소로 개개의 표현을 디스플레이하는 전술된 방식은 개개의 표현을 이동시키기 위한 프로세스를 개시하는 효율적인 방식을 제공하고, 이는 추가적으로 전력 사용량을 감소시키고, 사용 시에 에러들을 감소시키면서, 사용자가 전자 디바이스를 더 빠르고 효율적으로 사용할 수 있게 함으로써, 전자 디바이스의 배터리 수명을 개선한다.
도 9b에서와 같은 일부 실시예들에서, 3차원 환경(예를 들어, 904)에서 제1 사용자(614A)의 시점으로부터 제1 거리에 개개의 애플리케이션의 개개의 표현(예를 들어, 906)을 디스플레이하는 동안 - 개개의 애플리케이션의 개개의 표현(예를 들어, 906)은 제1 사용자(예를 들어, 914A)의 시점으로부터 제1 크기로 디스플레이됨 -, 전자 디바이스(예를 들어, 101)는 제1 사용자(예를 들어, 914A)의 시점으로부터 제1 거리보다 먼 제2 거리로 개개의 애플리케이션의 개개의 표현(예를 들어, 906)을 이동시키기 위한 개개의 입력을 검출한다(1034). 도 9c에서와 같은 일부 실시예들에서, 개개의 입력을 검출하는 것에 응답하여(1036), 전자 디바이스(예를 들어, 101)는 개개의 애플리케이션의 개개의 표현(예를 들어, 906)을 제1 사용자(예를 들어, 914A)의 시점으로부터 제2 거리로 이동시킨다(1038)(예를 들어, 제1 사용자의 시점으로부터 제2 거리에 있는 3차원 환경 내의 업데이트된 위치에 개개의 애플리케이션의 개개의 표현을 디스플레이함). 도 9c에서와 같은 일부 실시예들에서, 개개의 입력을 검출하는 것에 응답하여(1036), 전자 디바이스(예를 들어, 101)는 개개의 애플리케이션의 개개의 표현(예를 들어, 906)을 제1 사용자(예를 들어, 914A)의 시점으로부터 제1 크기보다 큰 제2 크기로 디스플레이한다(1040). 일부 실시예들에서, 디스플레이 생성 컴포넌트는 동일한 디스플레이 영역을 사용하여 제2 거리에 그리고 제1 거리에 개개의 표현을 디스플레이함으로써, 개개의 표현의 가상 크기를 더 크게 만든다. 일부 실시예들에서, 디스플레이 생성 컴포넌트는 제1 거리에서 개개의 표현을 디스플레이하는 데 사용된 디스플레이 영역과 비교하여 제2 거리에서 개개의 표현을 디스플레이하기 위해 더 많은 디스플레이 영역을 사용한다. 일부 실시예들에서, 제2 사용자의 시점으로부터 개개의 표현이 디스플레이되는 크기는 개개의 표현과 제2 사용자의 시점 사이의 업데이트된 거리에 따라 업데이트된다. 일부 실시예들에서, 개개의 표현의 크기는 제1 사용자의 시점 및 제2 사용자의 시점으로부터 동일하고, 개개의 표현의 크기는 제1 사용자의 시점까지의 개개의 표현의 거리 및 제2 사용자의 시점까지의 개개의 표현의 거리에 따라 업데이트된다. 일부 실시예들에서, 개개의 표현이 제1 사용자의 시점 및/또는 제2 사용자의 시점에 더 가까운 위치로 이동된다는 결정에 따라, 전자 디바이스는 더 작은 크기로 디스플레이되도록 개개의 표현을 업데이트한다.
개개의 표현이 제1 사용자의 시점으로부터 더 멀리 이동되는 것을 검출하는 것에 응답하여, 개개의 표현의 크기를 증가시키는 전술된 방식은 개개의 표현의 가독성을 유지하는 효율적인 방식을 제공하고, 이는 추가적으로 전력 사용량을 감소시키고, 사용 시에 에러들을 감소시키면서, (예를 들어, 개개의 표현의 크기를 조정하는 데 필요한 입력들을 감소시킴으로써) 사용자가 전자 디바이스를 더 빠르고 효율적으로 사용할 수 있게 함으로써, 전자 디바이스의 배터리 수명을 개선한다.
도 9b에서와 같은 일부 실시예들에서, 3차원 환경(예를 들어, 904)에서 제1 사용자(예를 들어, 914A)의 관점으로부터 제1 거리에 개개의 애플리케이션의 개개의 표현(예를 들어, 906)을 디스플레이하는 동안 - 개개의 사용자 인터페이스 요소(예를 들어, 918)는 제1 사용자(예를 들어, 914A)의 시점으로부터 제2 크기로 디스플레이됨(그리고 예를 들어, 개개의 애플리케이션의 개개의 표현은 제1 사용자의 시점으로부터 제1 크기로 디스플레이됨) -, 전자 디바이스(예를 들어, 101)는 제1 사용자(예를 들어, 914A)의 시점으로부터 제1 거리보다 먼 제2 거리로 개개의 애플리케이션의 개개의 표현(예를 들어, 906)을 이동시키기 위한 개개의 입력을 검출한다(1042). 일부 실시예들에서, 개개의 입력을 검출하는 것에 응답하여(1044), 전자 디바이스(예를 들어, 101)는 도 9c에서와 같이 개개의 애플리케이션의 개개의 표현(예를 들어, 906)을 제1 사용자(예를 들어, 914A)의 시점으로부터 제2 거리로 이동시킨다(1046)(예를 들어, 제1 사용자의 시점으로부터 제2 거리에 있는 3차원 환경 내의 업데이트된 위치에 개개의 애플리케이션의 개개의 표현을 디스플레이함). 일부 실시예들에서, 개개의 입력을 검출하는 것에 응답하여(1044), 전자 디바이스(예를 들어, 101)는 제1 사용자의 시점으로부터 제2 크기보다 큰 제3 크기로 개개의 사용자 인터페이스 요소를 디스플레이한다(1048)(예를 들어, 사용자 A(예를 들어, 914A)로부터의 표현(예를 들어, 906)의 거리를 변경하는 것에 따라 사용자 인터페이스 요소(예를 들어, 918)의 크기를 업데이트함). 일부 실시예들에서, 디스플레이 생성 컴포넌트는 동일한 디스플레이 영역을 사용하여 제2 거리에 그리고 제1 거리에 개개의 사용자 인터페이스 요소를 디스플레이함으로써, 개개의 사용자 인터페이스 요소의 가상 크기를 더 크게 만든다. 일부 실시예들에서, 디스플레이 생성 컴포넌트는 제1 거리에서 개개의 사용자 인터페이스 요소를 디스플레이하는 데 사용된 디스플레이 영역과 비교하여 제2 거리에서 개개의 사용자 인터페이스 요소를 디스플레이하기 위해 더 많은 디스플레이 영역을 사용한다. 일부 실시예들에서, 제2 사용자의 시점으로부터 개개의 사용자 인터페이스 요소가 디스플레이되는 크기는 개개의 사용자 인터페이스 요소와 제2 사용자의 시점 사이의 업데이트된 거리에 따라 업데이트된다. 일부 실시예들에서, 개개의 사용자 인터페이스 요소의 크기는 제1 사용자의 시점 및 제2 사용자의 시점으로부터 동일하고, 개개의 사용자 인터페이스 요소의 크기는 제1 사용자의 시점까지의 개개의 사용자 인터페이스 요소의 거리 및 제2 사용자의 시점까지의 개개의 사용자 인터페이스 요소의 거리에 따라 업데이트된다. 일부 실시예들에서, 개개의 사용자 인터페이스 요소가 제1 사용자의 시점 및/또는 제2 사용자의 시점에 더 가까운 위치로 이동된다는 결정에 따라, 전자 디바이스는 더 작은 크기로 디스플레이되도록 개개의 사용자 인터페이스 요소를 업데이트한다. 따라서, 일부 실시예들에서, 전자 디바이스는 객체의 크기가 동일하게 유지되는 경우에도 개개의 사용자 인터페이스 요소의 크기를 업데이트한다. 일부 실시예들에서, 전자 디바이스는 사용자의 시점으로부터 제2 거리에 제1 사용자의 시점으로부터 제1 크기로 개개의 애플리케이션의 개개의 표현을 디스플레이한다. 일부 실시예들에서, 디스플레이 생성 컴포넌트는, 개개의 표현의 가상 크기를 유지하기 위해 개개의 표현이 제1 사용자의 시점으로부터 더 멀리 이동된 후에, 개개의 애플리케이션의 개개의 표현을 디스플레이하기 위해 더 적은 디스플레이 영역을 사용한다. 일부 실시예들에서, 전자 디바이스는, 개개의 표현이 3차원 환경 주위에서 이동될 때, 제2 사용자의 시점으로부터 개개의 표현의 크기를 유지한다. 일부 실시예들에서, 전자 디바이스는, 개개의 표현과 제1 사용자의 시점 및/또는 제2 사용자의 시점 사이의 거리에 독립적으로, 제1 사용자의 시점 및/또는 제2 사용자의 시점으로부터의 개개의 표현의 크기를 유지한다. 일부 실시예들에서, 개개의 표현을 제1 사용자의 시점 및/또는 제2 사용자의 시점에 더 가깝게 이동시키는 입력에 응답하여, 전자 디바이스는 개개의 표현의 크기를 유지한다. 일부 실시예들에서, 개개의 표현을 제1 사용자의 시점 및/또는 제2 사용자의 시점에 더 가깝게 이동시키는 입력에 응답하여, 전자 디바이스는 제1 사용자의 시점 및/또는 제2 사용자의 시점으로부터 더 가까운 거리에 개개의 표현의 가상 크기를 유지하도록 개개의 표현을 제시하는 데 사용되는 디스플레이 영역을 증가시킨다.
제1 사용자의 시점과 개개의 표현과 개개의 사용자 인터페이스 요소 사이의 거리의 변화를 검출하는 것에 응답하여 개개의 표현을 동일한 크기로 디스플레이하고 개개의 사용자 인터페이스 요소를 상이한 크기로 디스플레이하는 전술된 방식은 일정한 크기를 갖는 가상 객체와 함께 디스플레이되는 개개의 사용자 인터페이스 요소의 가독성을 유지하는 효율적인 방식을 제공하고, 이는 추가적으로 전력 사용량을 감소시키고, 사용 시에 에러들을 감소시키면서, 사용자가 전자 디바이스를 더 빠르고 효율적으로 사용할 수 있게 함으로써, 전자 디바이스의 배터리 수명을 개선한다.
도 9b에서와 같은 일부 실시예들에서, 개개의 애플리케이션의 개개의 표현(예를 들어, 906)을 3차원 환경(예를 들어, 904) 내의 제1 위치에 디스플레이하는 동안, 전자 디바이스(예를 들어, 101)는, 전자 디바이스와 통신하는 손 추적 디바이스를 통해, 3차원 환경(예를 들어, 904)에서 개개의 애플리케이션의 개개의 표현(예를 들어, 906)을 이동시키기 위한 개개의 입력을 검출하고(1050), 개개의 입력은 전자 디바이스(101b)의 사용자(예를 들어, 914B)의 손(예를 들어, 920b)에 의해 수행된 제스처 다음에 손(예를 들어, 920b)에 의해 수행된 제스처를 유지하면서 손(예를 들어, 920b)의 이동을 포함한다. 일부 실시예들에서, 제스처는, 사용자가 (예를 들어, 눈 추적 디바이스를 통해 검출된) 개개의 표현을 이동시키기 위해 선택가능한 개개의 사용자 인터페이스를 보는 동안 사용자가 자신의 엄지손가락을 자신의 다른 손가락들(예를 들어, 검지 손가락, 중지 손가락, 약지 손가락, 새끼 손가락) 중 하나에 터치하는 것이고, 전자 디바이스는 엄지손가락이 다른 손가락을 터치하는 동안 (예를 들어, 손 추적 디바이스로) 손의 이동을 검출한다. 도 9c에서와 같은 일부 실시예들에서, 개개의 입력을 수신하는 것에 응답하여, 전자 디바이스(예를 들어, 101)는 손(예를 들어, 920b)의 이동에 따라 3차원 환경(예를 들어, 904)에서 개개의 애플리케이션의 개개의 표현(예를 들어, 906)을 이동시킨다(1052). 일부 실시예들에서, 전자 디바이스는 제스처가 검출되는 동안 개개의 표현 상에서 사용자의 시선을 검출하는 것에 응답하여 손의 이동에 따라 개개의 애플리케이션의 개개의 표현을 이동시킨다. 일부 실시예들에서, 개개의 표현은 방법들(800 및/또는 1200)의 하나 이상의 단계들에 따라 업데이트된다.
사용자의 손에 의해 수행되는 제스처를 검출하는 것에 응답하여 손의 이동에 따라 개개의 표현을 이동시키는 전술된 방식은 개개의 표현의 위치를 제어하는 효율적인 방식을 제공하고 이는 추가적으로 전력 사용량을 감소시키고, 사용 시에 에러들을 감소시키면서, 사용자가 전자 디바이스를 더 빠르고 효율적으로 사용할 수 있게 함으로써, 전자 디바이스의 배터리 수명을 개선한다.
도 9b에서와 같은 일부 실시예들에서, 3차원 환경(예를 들어, 904) 내의 제1 위치에서 개개의 애플리케이션의 개개의 표현(예를 들어, 906)을 디스플레이하는 동안, 전자 디바이스(예를 들어, 101)는 개개의 애플리케이션의 개개의 표현(예를 들어, 906)을 3차원 환경(예를 들어, 904)에서 이동시키기 위한 개개의 입력을 검출한다(1054). 일부 실시예들에서, 개개의 입력은, 선택될 때, 전자 디바이스로 하여금 개개의 표현을 이동시키기 위한 프로세스를 개시하게 하는 옵션의 선택을 포함한다. 일부 실시예들에서, 개개의 표현을 이동시키기 위한 프로세스는, 손 추적 디바이스를 통해, 사용자의 손이 제스처 및 이동을 수행하고 있음을 검출하는 것, 및 손의 이동에 따라 개개의 표현을 이동시키는 것을 포함한다. 일부 실시예들에서, 개개의 입력을 수신하는 것에 응답하여(1056), 개개의 입력이 제1 사용자(예를 들어, 914A)와 연관된다는 결정에 따라, 전자 디바이스(예를 들어, 101)는 도 9c에서와 같이, 개개의 입력에 따라 3차원 환경(예를 들어, 904)에서 개개의 애플리케이션의 개개의 표현(예를 들어, 906)을 이동시킨다(1058). 일부 실시예들에서, 제1 사용자의 전자 디바이스는 개개의 애플리케이션의 개개의 표현을 이동시키기 위한 개개의 입력을 검출한다. 일부 실시예들에서, 제1 사용자의 전자 디바이스 및 제2 사용자의 전자 디바이스는 제1 사용자의 전자 디바이스가 개개의 입력을 검출하는 것에 응답하여 개개의 표현의 이동을 디스플레이한다. 일부 실시예들에서, 개개의 입력을 수신하는 것에 응답하여(1056), 개개의 입력이 제2 사용자(예를 들어, 914B)와 연관된다는 결정에 따라, 전자 디바이스(예를 들어, 101)는 도 9c에서와 같이, 개개의 입력에 따라 3차원 환경(예를 들어, 904)에서 개개의 애플리케이션의 개개의 표현(예를 들어, 906)을 이동시킨다(1060). 일부 실시예들에서, 제2 사용자의 전자 디바이스는 개개의 애플리케이션의 개개의 표현을 이동시키기 위한 개개의 입력을 검출한다. 일부 실시예들에서, 제1 사용자의 전자 디바이스 및 제2 사용자의 전자 디바이스는 제2 사용자의 전자 디바이스가 개개의 입력을 검출하는 것에 응답하여 개개의 표현의 이동을 디스플레이한다. 일부 실시예들에서, 개개의 표현은 방법들(800 및/또는 1200)의 하나 이상의 단계들에 따라 업데이트된다.
개개의 입력이 제1 사용자 또는 제2 사용자와 연관되는지에 관계없이 개개의 입력에 응답하여 개개의 애플리케이션의 개개의 표현을 이동시키는 전술된 방식은 개개의 애플리케이션의 개개의 표현을 이동시키는 효율적인 방식을 제공하고, 이는 추가적으로 전력 사용량을 감소시키고, 사용 시에 에러들을 감소시키면서, (예를 들어, 어느 하나의 사용자가 표현을 이동시킬 수 있게 하고, 따라서 하나의 사용자가 다른 사용자에게 표현을 이동시키도록 요청해야 하는 것에 비해 시간을 절약함으로써) 사용자가 전자 디바이스를 더 빠르고 효율적으로 사용할 수 있게 함으로써, 전자 디바이스의 배터리 수명을 개선한다.
일부 실시예들에서, 개개의 애플리케이션의 개개의 표현(예를 들어, 922)을 3차원 환경(예를 들어, 904) 내의 제1 위치에 디스플레이하는 동안 - 개개의 애플리케이션의 개개의 표현(예를 들어, 922)은 도 9a에서와 같이 3차원 환경(예를 들어, 904)에 대한 제1 배향, 제1 사용자(예를 들어, 914A)의 시점에 대한 제1 개개의 위치에서 제2 배향, 및 제2 사용자(예를 들어, 914B)의 시점에 대한 제2 개개의 위치에서 제3 배향으로 디스플레이됨 -, 전자 디바이스(예를 들어, 101)는 하나 이상의 입력 디바이스들을 통해, 3차원 환경(예를 들어, 904)에서 제1 사용자(예를 들어, 914A)의 시점을 자동으로 변경하라는 요청에 대응하는 개개의 입력을 수신하고(1062), 개개의 입력은 3차원 환경(예를 들어, 904)에서 제1 사용자(예를 들어, 914A)의 시점을 변경하는 방법을 나타내지 않는다. 일부 실시예들에서, 입력은 제1 사용자의 시점으로부터의 3차원 환경을 재설정하라는 요청에 대응한다. 일부 실시예들에서, 입력은 제1 사용자와 연관된 위치가 3차원 환경 내의 객체들 및 다른 사용자(들)로부터 적어도 임계 거리에 있다는 결정에 따라 디스플레이되는 3차원 환경에 디스플레이되는 옵션의 선택이다. 일부 실시예들에서, 개개의 입력을 수신하는 것에 응답하여, 전자 디바이스(예를 들어, 101)는 3차원 환경(예를 들어, 904) 내의 제1 위치에서의 개개의 애플리케이션의 개개의 표현(예를 들어, 922) 및 제2 사용자(예를 들어, 914B)의 시점에 기초하여 3차원 환경(예를 들어, 904)에서 제1 사용자(예를 들어, 914A)의 시점을 업데이트한다(1064). 일부 실시예들에서, 제2 사용자의 전자 디바이스는 제2 사용자의 시점에 대한 제2 개개의 위치 및 제3 배향으로 개개의 애플리케이션의 개개의 표현을 계속 디스플레이한다. 일부 실시예들에서, 개개의 입력에 응답하여, 전자 디바이스는 방법(1400)의 하나 이상의 단계들에 따라 3차원 환경 내의 다른 사용자들의 시점들의 위치들, 3차원 환경 내의 애플리케이션들의 표현들 및/또는 3차원 환경 내의 다른 객체들에 기초하여 하나 이상의 기준들에 따라 자동으로 제1 사용자의 시점의 배향 및 위치를 업데이트한다. 예를 들어, 제1 사용자의 위치는 사용자 및 가상 객체 배치 규칙들에 기초하여 자동으로 업데이트된다.
개개의 입력에 응답하여 3차원 환경에서 제1 사용자의 시점을 자동으로 업데이트하는 전술된 방식은 3차원 환경 내의 객체들의 수동 재배열 또는 제1 사용자의 업데이트된 위치의 수동 선택을 요구하지 않으면서 제1 사용자의 시점으로부터 하나 이상의 기준들에 따라 3차원 환경을 제공하는 효율적인 방식을 제공하고, 이는 추가적으로 전력 사용량을 감소시키고, 사용 시에 에러들을 감소시키면서, 사용자가 전자 디바이스를 더 빠르고 효율적으로 사용할 수 있게 함으로써, 전자 디바이스의 배터리 수명을 개선한다.
일부 실시예들에서, 3차원 환경에서 제1 사용자의 시점을 업데이트한 후, 개개의 애플리케이션의 개개의 표현(예를 들어, 922)은 도 9a에서와 같이 제1 위치에서 3차원 환경(예를 들어, 904)에 대한 제1 배향으로(1068) 디스플레이된다(1066). 일부 실시예들에서, 3차원 환경 내의 개개의 애플리케이션의 개개의 표현의 위치 및 3차원 환경에서의 고정된 기준 프레임에 대한 개개의 표현의 배향은 개개의 입력에 응답하여 변경되지 않는다. 일부 실시예들에서, 다른 사용자들은 입력에 응답하여 제1 사용자의 표현의 위치가 업데이트되는 것을 본다(예를 들어, 제1 사용자의 표현은 3차원 환경에서 제1 개개의 위치로부터 제2 개개의 위치로 "점프"한다). 일부 실시예들에서, 시스템은 가상 객체들의 위치 정보(예를 들어, 사용자들, 애플리케이션들, 가상 객체들의 표현들)를 포함하는 3차원 환경을 유지하고, 각각의 사용자는 그들 자신의 시점으로부터의 3차원 환경의 뷰를 갖는다. 일부 실시예들에서, 각각의 사용자의 시점은 제1 사용자의 전자 디바이스의 환경에서 물리적 객체들의 표현들(예를 들어, 전자 디바이스의 환경의 포토리얼리스틱 표현들의 패스-스루 비디오)을 포함한다. 예를 들어, 제1 사용자의 전자 디바이스는 제1 사용자의 전자 디바이스의 물리적 환경에서 하나 이상의 물리적 객체들을 갖는 3차원 환경을 제시하고, 제2 사용자의 전자 디바이스는 제2 사용자의 물리적 환경에서 하나 이상의 물리적 객체들을 갖는 하나의 3차원 환경을 제시한다. 일부 실시예들에서, 3차원 환경은 물리적 객체들에 추가로 가상 객체들을 더 포함한다. 일부 실시예들에서, 3차원 환경(예를 들어, 904)에서 제1 사용자(예를 들어, 914A)의 시점을 업데이트한 후에, 개개의 애플리케이션의 개개의 표현(예를 들어, 922)은 제4 배향으로 그리고 제1 사용자(예를 들어, 914A)의 업데이트된 시점에 대한 제3 개개의 위치에(1070) 디스플레이된다(1066). 일부 실시예들에서, 제1 사용자의 시점이 변할 때, 제1 사용자의 시점에 대한 개개의 애플리케이션의 개개의 표현의 배향 및 위치가 변경된다. 일부 실시예들에서, 3차원 환경(예를 들어, 904)에서 제1 사용자(예를 들어, 914A)의 시점을 업데이트한 후에, 개개의 애플리케이션의 개개의 표현(예를 들어, 922)은 도 9a에서와 같이, 제3 배향으로 그리고 제2 사용자(예를 들어, 914B)의 시점에 대한 제2 개개의 위치에(1072) 디스플레이된다(1066). 일부 실시예들에서, 제2 사용자의 시점에 대한 개개의 애플리케이션의 개개의 표현의 배향 및 위치는 개개의 입력에 응답하여 변경되지 않는다. 일부 실시예들에서, 3차원 환경 내의 제1 사용자의 위치 및 제2 사용자의 시점에 대한 제1 사용자의 위치는 개개의 입력에 응답하여 변한다. 일부 실시예들에서, 제2 사용자의 전자 디바이스는, 개개의 입력에 응답하여 3차원 환경에서 하나의 위치로부터 다른 위치로(예를 들어, 전자 디바이스에 의해 자동으로 결정된 "재설정된" 위치로) 제1 사용자의 표현의 이동을 디스플레이한다.
제1 사용자의 시점이 변경된 후에 3차원 환경에서 개개의 표현의 위치를 유지하는 전술된 방식은 제1 사용자를 자동으로 위치시키는 효율적인 방식을 제공하고, 이는 3차원 환경 내의 제1 사용자 및/또는 하나 이상의 객체들 또는 다른 사용자들을 수동으로 재배치하는 것보다 효율적이고, 이는 추가적으로 전력 사용량을 감소시키고, 사용 시에 에러들을 감소시키면서, (예를 들어, 제2 사용자의 시점을 되돌리는 데 필요한 입력들을 감소시킴으로써) 사용자가 전자 디바이스를 더 빠르고 효율적으로 사용할 수 있게 함으로써, 전자 디바이스의 배터리 수명을 개선한다.
일부 실시예들에서, 도 9c에서와 같이 3차원 환경(예를 들어, 904) 내의 제1 개개의 배향으로 개개의 위치에 개개의 애플리케이션의 개개의 표현(예를 들어, 906)을 디스플레이하는 동안, 전자 디바이스(예를 들어, 101)는 3차원 환경(예를 들어, 904)이 공유되는 사용자들의 수의 변화를 검출한다(1074)(예를 들어, 제1 또는 제2 사용자는 3차원 환경을 떠나고/떠나거나 하나 이상의 추가적인 사용자들이 3차원 환경이 참여한다). 일부 실시예들에서, 3차원 환경이 공유되는 사용자들의 수의 변화를 검출하는 것에 응답하여, 하나 이상의 기준들이 충족된다는 결정에 따라, (예를 들어, 개개의 애플리케이션의 개개의 표현은 제1 개개의 위치로부터 멀리 이동되고 사용자들의 수의 변화 이후 다시 제1 개개의 위치로 이동되거나, 애플리케이션들의 표현들은 이동될 필요 없이 사용자들이 떠나거나 참여하는 것에 기초하여 배향을 변경할 수 있음), 전자 디바이스(예를 들어, 101)는 도 9d에서와 같이, 3차원 환경(예를 들어, 904)이 공유되는 사용자들의 변화된 수의 시점들의 배열에 기초하여, 제1 개개의 배향과 상이한 제2 개개의 배향으로 개개의 위치에 개개의 표현(예를 들어, 906)을 디스플레이한다(1076). 일부 실시예들에서, 개개의 애플리케이션의 개개의 표현의 배향은 3차원 환경 내의 사용자들 중 하나 이상 또는 전부의 시점들의 배열에 기초하고, 따라서 3차원 환경 내의 사용자들의 수가 변경되면, 시점들의 배열이 변경될 것이고, 3차원 환경 내의 제1 위치로 개개의 표현을 이동시키는 것에 응답하여 개개의 표현의 배향이 또한 변경될 것이다. 예를 들어, 3차원 환경에 2명의 사용자들이 있는 동안, 개개의 표현을 3차원 환경 내의 제1 개개의 위치로 이동시키기 위한 입력에 응답하여, 전자 디바이스는 개개의 표현을 제1 배향으로 3차원 환경 내의 제1 개개의 위치에 디스플레이한다. 다른 예로서, 3차원 환경에 3명의 사용자들이 있는 동안, 개개의 표현을 3차원 환경 내의 제1 개개의 위치로 이동시키기 위한 입력에 응답하여, 전자 디바이스는 개개의 표현을 제1 배향과 상이한 제2 배향으로 3차원 환경 내의 제1 개개의 위치에 디스플레이한다. 일부 실시예들에서, 전자 디바이스는 3차원 환경 내의 사용자들의 수가 변하는 것에 응답하여 개개의 표현의 배향을 업데이트하지 않는다. 일부 실시예들에서, 전자 디바이스는 3차원 환경 내의 사용자들의 수가 변하는 것에 응답하여 (예를 들어, 3차원 환경 내의 사용자들 중 하나 이상 또는 전부를 향해 개개의 표현을 배향시키기 위해) 개개의 표현의 배향을 업데이트한다.
3차원 환경 내의 사용자들의 수의 변화를 검출하는 것에 응답하여 제2 배향으로 개개의 위치에 개개의 표현을 디스플레이하는 전술된 방식은 개개의 표현을 3차원 환경 내의 사용자들 중 하나 이상 또는 전부를 향해 배향시키는 효율적인 방법을 제공하고, 이는 추가적으로 전력 사용량을 감소시키고, 사용 시에 에러들을 감소시키면서, 사용자가 전자 디바이스를 더 빠르고 효율적으로 사용할 수 있게 함으로써, 전자 디바이스의 배터리 수명을 개선한다.
도 9a에서와 같은 일부 실시예들에서, 전자 디바이스(예를 들어, 101)는 제1 사용자(예를 들어, 914A)의 시점 및 제2 사용자(예를 들어, 914B)의 시점의 제1 배열에 기초하여 3차원 환경(예를 들어, 904) 내의 제1 위치에 개개의 애플리케이션의 개개의 표현(예를 들어, 906)을 디스플레이한다(1078). 도 9a에서와 같은 일부 실시예들에서, 개개의 애플리케이션의 개개의 표현(예를 들어, 906)이 단일 방향으로부터 볼 수 있다는 결정에 따라(예를 들어, 객체(예를 들어, 가상 텔레비전)의 일 측면 상의 비디오 콘텐츠와 같은 가상 콘텐츠를 포함하는 객체), 개개의 애플리케이션의 개개의 표현(예를 들어, 906)이 제1 사용자(예를 들어, 914A)의 시점 및 제2 사용자(예를 들어, 914B)의 시점으로부터 단일 방향으로부터 볼 수 있도록, 3차원 환경(예를 들어, 904) 내의 제1 위치는 3차원 환경(예를 들어, 904) 내의 제1 개개의 위치이다(1080). 일부 실시예들에서, 제1 위치는, 개개의 표현의 단일 방향이 제1 및 제2 사용자들의 시점들을 향해 배향되도록 선택된다. 도 9a에서와 같은 일부 실시예들에서, 개개의 애플리케이션의 개개의 표현(예를 들어, 922)이 제1 방향 및 제1 방향과 상이한 제2 방향으로부터 볼 수 있다는 결정에 따라(예를 들어, 가상 보드 게임 주위의 다수의 배향들로부터 가시적인 가상 보드 게임), 개개의 애플리케이션의 개개의 표현(예를 들어, 922)이 제1 사용자(예를 들어, 914A)의 시점으로부터 제1 방향으로부터 그리고 제2 사용자(예를 들어, 914B)의 시점으로부터 제2 방향으로부터 볼 수 있도록, 3차원 환경(예를 들어, 904) 내의 제1 위치는 3차원 환경(예를 들어, 904) 내의 제1 개개의 위치와 상이한 제2 개개의 위치이다(1082). 일부 실시예들에서, 제1 위치는, 제1 방향이 제1 사용자의 시점을 향하고 제2 방향이 제2 사용자의 시점을 향하도록, 제1 사용자의 시점과 제2 사용자의 시점 사이에 있다.
개개의 표현이 단일 방향으로부터 볼 수 있는지 또는 다수의 방향들로부터 볼 수 있는지에 따라, 개개의 표현에 대해 상이한 위치를 선택하는 전술된 방식은 제1 사용자 및 제2 사용자 둘 모두에게 가시적인 위치에 개개의 표현을 배치하는 효율적인 방식을 제공하고, 이는 추가적으로 전력 사용량을 감소시키고, 사용 시에 에러들을 감소시키면서, 사용자가 전자 디바이스를 더 빠르고 효율적으로 사용할 수 있게 함으로써, 전자 디바이스의 배터리 수명을 개선한다.
도 9b에서와 같은 일부 실시예들에서, 3차원 환경(예를 들어, 904)에서 제1 사용자(예를 들어, 914A)의 시점으로부터 제1 거리에 그리고 제2 사용자(예를 들어, 914B)의 시점으로부터 제2 거리에 개개의 애플리케이션의 개개의 표현(예를 들어, 906)을 디스플레이하는 동안 - 개개의 애플리케이션의 개개의 표현(예를 들어, 906)은 제1 사용자(예를 들어, 914A)의 시점으로부터 제1 크기로 그리고 제2 사용자(예를 들어, 914B)의 시점으로부터 제2 크기로 디스플레이됨 -, 전자 디바이스(예를 들어, 101)는 개개의 애플리케이션의 개개의 표현(예를 들어, 906)을 제1 사용자(예를 들어, 914A)의 시점 및 제2 사용자(예를 들어, 914B)의 시점으로부터 제3 거리 및 제4 거리로 각각 이동시키기 위한 개개의 입력을 검출하고(1084), 제3 거리는 제1 거리와 상이하고, 제4 거리는 제2 거리와 상이하다. 일부 실시예들에서, 개개의 표현은 제1 사용자 및 제2 사용자의 시점들 둘 모두로부터 더 먼 위치로 이동한다. 일부 실시예들에서, 표현은 제1 사용자 및 제2 사용자의 시점들 둘 모두에 더 가까운 위치로 이동한다. 일부 실시예들에서, 개개의 표현은 제1 사용자의 시점으로부터 더 멀고 제2 사용자의 시점에 더 가까운 위치로 이동한다. 일부 실시예들에서, 개개의 표현은 제1 사용자의 시점에 더 가깝고 제2 사용자의 시점으로부터 더 먼 위치로 이동한다. 일부 실시예들에서, 제1 및 제2 크기들은 동일하다. 일부 실시예들에서, 제1 및 제2 크기들은 상이하다. 일부 실시예들에서, 개개의 표현의 크기는 3차원 환경에서의 표현의 가상 크기이고, 표현을 디스플레이하는 데 사용되는 디스플레이 영역의 양은 표현의 크기 및 사용자의 시점으로부터 표현의 거리에 의존한다. 일부 실시예들에서, 개개의 입력을 검출하는 것에 응답하여(1086), 전자 디바이스는 제1 사용자의 시점으로부터의 제3 거리(그리고 예를 들어, 제2 사용자의 시점으로부터의 제4 거리)로 개개의 애플리케이션의 개개의 표현을 이동시킨다(1088). 도 9c에서와 같은 일부 실시예들에서, 개개의 입력을 검출하는 것에 응답하여(1086), 전자 디바이스는 제3 거리 및 제4 거리에 기초하여, 제1 사용자의 시점으로부터 제1 크기와 상이한 제3 크기로 그리고 제2 사용자의 시점으로부터 제2 크기와 상이한 제4 크기로 개개의 애플리케이션의 개개의 표현을 디스플레이한다(1090). 일부 실시예들에서, 제3 및 제4 크기들은 동일하다. 일부 실시예들에서, 제3 및 제4 크기들은 상이하다. 일부 실시예들에서, 개개의 표현의 크기는 3차원 환경에서의 표현의 가상 크기이고, 표현을 디스플레이하는 데 사용되는 디스플레이 영역의 양은 표현의 크기 및 사용자의 시점으로부터 표현의 거리에 의존한다. 일부 실시예들에서, 제1 사용자의 시점으로부터 멀리 개개의 표현을 이동시키는 것에 응답하여, 전자 디바이스는 개개의 표현의 크기를 증가시킨다. 일부 실시예들에서, 제1 사용자의 시점을 향해 개개의 표현을 이동시키는 것에 응답하여, 전자 디바이스는 개개의 표현의 크기를 감소시킨다. 일부 실시예들에서, 개개의 표현의 크기는, 어느 사용자가 애플리케이션의 표현을 이동시키기 위한 입력을 제공했는지와 무관하게, 제1 사용자의 시점 및 제2 사용자의 시점까지의 거리의 평균 또는 다른 조합에 따라 업데이트된다.
개개의 표현으로부터 제1 및 제2 사용자들의 시점들까지의 제3 및 제4 거리들에 따라 표현의 크기를 각각 업데이트하는 전술된 방식은 개개의 표현이 하나 이상의 시점들로부터 멀리 이동될 때 개개의 표현의 가독성을 유지하고 개개의 표현이 하나 이상의 시점들을 향해 이동될 때 다른 객체들에 대한 디스플레이 영역을 보존하는 효율적인 방식을 제공하고, 이는 추가적으로 전력 사용량을 감소시키고, 사용 시에 에러들을 감소시키면서, 사용자가 전자 디바이스를 더 빠르고 효율적으로 사용할 수 있게 함으로써, 전자 디바이스의 배터리 수명을 개선한다.
도 9b와 같은 일부 실시예들에서, 제3 크기로 개개의 애플리케이션의 개개의 표현(예를 들어, 906)을 디스플레이하는 것(1092)은, 제3 거리가 제4 거리보다 크다는 결정에 따라, 제3 크기가 제3 거리와 연관된 최소 크기보다 크도록 제3 크기 및 제4 크기를 선택하는 것을 포함한다(1094). 도 9b와 같은 일부 실시예들에서, 제3 크기로 개개의 애플리케이션의 개개의 표현(예를 들어, 906)을 디스플레이하는 것(1092)은, 제4 거리가 제3 거리보다 크다는 결정에 따라, 제4 크기가 제4 거리와 연관된 최소 크기보다 크도록 제3 크기 및 제4 크기를 선택하는 것을 포함한다(1096). 일부 실시예들에서, 개개의 표현의 업데이트된 크기는 적어도 개개의 표현으로부터 가장 먼 시점에 기초한 최소 크기이다. 일부 실시예들에서, 제3 및 제4 크기는 동일하다. 일부 실시예들에서, 제3 및 제4 크기는 상이하다. 일부 실시예들에서, 더 큰 거리가 이동 입력으로 인해 변하지 않는다는 결정에 따라, 전자 디바이스는, 이동 입력에 응답하여 사용자들 사이의 하나 이상의 다른 거리들 및 표현이 변하는 경우에도 개개의 표현의 크기를 유지한다.
개개의 표현으로부터 더 먼 시점까지의 거리와 연관된 최소 크기에 기초하여 제3 및 제4 크기를 선택하는 전술된 방식은 사용자들 둘 모두에게 판독가능한 크기로 개개의 표현을 제시하는 효율적인 방식을 제공하고, 이는 추가적으로 전력 사용량을 감소시키고, 사용 시에 에러들을 감소시키면서, (예를 들어, 판독가능한 크기로 표현을 제시하는 데 필요한 입력들의 수를 감소시킴으로써) 사용자가 전자 디바이스를 더 빠르고 효율적으로 사용할 수 있게 함으로써, 전자 디바이스의 배터리 수명을 개선한다.
도 9b에서와 같은 일부 실시예들에서, 개개의 애플리케이션의 개개의 표현(예를 들어, 906)을 3차원 환경(예를 들어, 904) 내의 제1 위치에 디스플레이하는 동안, 전자 디바이스(예를 들어, 101)는 하나 이상의 입력 디바이스들을 통해, 개개의 애플리케이션의 개개의 표현(예를 들어, 906)을 3차원 환경(예를 들어, 904)에서 제2 사용자(예를 들어, 914A)의 시점과 일치하는 제3 위치로 이동시키라는 요청에 대응하는 개개의 입력을 수신한다(1098). 일부 실시예들에서, 전자 디바이스는 3차원 환경 내의 제2 사용자의 위치로 개개의 표현을 이동시키기 위한 요청에 대응하는 제1 사용자와 연관된 입력을 검출한다. 일부 실시예들에서, 표현의 임의의 부분이 제2 사용자의 시점의 위치의 임계 거리에 있거나 그 내에 있는 경우, 제3 위치는 제2 사용자의 시점과 일치한다. 일부 실시예들에서, 제3 위치는, 임계 거리 내에 있을 때 개개의 표현에 의해 제2 사용자의 시점의 적어도 임계 양이 차단될 경우, 제2 사용자의 시점과 일치한다. 도 9c에서와 같은 일부 실시예들에서, 개개의 입력을 수신하는 것에 응답하여, 전자 디바이스(예를 들어, 101)는 개개의 애플리케이션의 개개의 표현(예를 들어, 906)을 3차원 환경(예를 들어, 904)에서 제3 위치와 상이한 제4 위치로 이동시키고(1099), 제4 위치는 제2 사용자의 시점과 일치하지 않는다(예를 들어, 914A). 일부 실시예들에서, 제4 위치는 제2 사용자의 시점의 미리 결정된 임계치 내에 있다. 일부 실시예들에서, 입력에 응답하여, 전자 디바이스는 제2 사용자의 시점의 임계 거리 내에 있지만 일치하지는 않는 위치에 개개의 표현을 디스플레이한다.
제2 사용자의 시점과 일치하지 않는 제3 위치로 개개의 표현을 이동시키라는 요청에 응답하여 제2 사용자의 시점과 일치하지 않는 제4 위치로 개개의 애플리케이션의 개개의 표현을 이동시키는 전술된 방식은 제1 및 제2 사용자들에 대해 가시적인 대안적인 위치로 개개의 표현을 이동시키는 효율적인 방식을 제공하고, 이는 추가적으로 전력 사용량을 감소시키고, 사용 시에 에러들을 감소시키면서, 사용자가 전자 디바이스를 더 빠르고 효율적으로 사용할 수 있게 함으로써, 전자 디바이스의 배터리 수명을 개선한다.
도 9b에서와 같은 일부 실시예들에서, 3차원 환경(예를 들어, 904) 내의 제1 위치에서 개개의 애플리케이션의 개개의 표현(예를 들어, 906)을 디스플레이하는 동안, 전자 디바이스(예를 들어, 101)는 하나 이상의 입력 디바이스들을 통해, 개개의 애플리케이션의 개개의 표현(예를 들어, 906)을 3차원 환경(예를 들어, 904) 내의 제3 위치로 이동시키기 위한 개개의 입력을 수신한다(1097). 일부 실시예들에서, 개개의 입력을 수신하는 것에 응답하여(1095), 전자 디바이스(예를 들어, 101)는 3차원 환경(예를 들어, 904) 내의 제3 위치에 개개의 애플리케이션의 개개의 표현(예를 들어, 906)을 디스플레이한다(1093). 도 9c에서와 같은 일부 실시예들에서, 개개의 입력을 수신하는 것에 응답하여(1095), 제3 위치가 제1 사용자(예를 들어, 914A)의 시점으로부터 제1 거리에 있다는 결정에 따라, 전자 디바이스(예를 들어, 101)는 개개의 애플리케이션의 개개의 표현(예를 들어, 906)을 제1 사용자(예를 들어, 914A)의 시점에 대한 제1 배향으로 디스플레이하고(1091), 제1 배향은 제1 사용자(예를 들어, 914A)의 시점을 향해 제1 각도로 지향된다. 일부 실시예들에서, 전자 디바이스는 3차원 환경에서 모든 사용자들의 시점들의 위치들에 따라 개개의 표현을 배향시킨다. 일부 실시예들에서, 전자 디바이스는 개개의 표현의 제3 위치에 가장 가깝게 있는 시점(들)을 향해 표현을 배향시키는 것을 우선순위화한다. 예를 들어, 제1 사용자의 시점이 제2 사용자의 시점과 개개의 표현 사이의 거리보다 개개의 표현까지의 거리가 더 작은 경우, 전자 디바이스는, 전자 디바이스가 제2 사용자의 시점을 향해 개개의 표현을 배향시키는 것보다 제1 사용자의 시점을 향해 개개의 시점을 더 많이 배향시킨다. 도 9c에서와 같은 일부 실시예들에서, 개개의 입력을 수신하는 것에 응답하여(1095), 제3 위치가 제1 사용자(예를 들어, 914B)의 시점으로부터 제1 거리보다 큰 제2 거리에 있다는 결정에 따라, 전자 디바이스(예를 들어, 101)는 개개의 애플리케이션의 개개의 표현(예를 들어, 906)을 제1 사용자(예를 들어, 914B)의 시점에 대한 제2 배향으로 디스플레이하고(1089), 제2 배향은 제1 사용자(예를 들어, 914B)의 시점을 향해 제1 각도 미만의 제2 각도로 지향된다. 예를 들어, 제1 사용자의 시점이 제2 사용자의 시점과 개개의 표현 사이의 거리보다 개개의 표현까지의 거리가 더 큰 경우, 전자 디바이스는, 전자 디바이스가 제2 사용자의 시점을 향해 개개의 표현을 배향시키는 것보다 제1 사용자의 시점을 향해 개개의 시점을 덜 배향시킨다. 일부 실시예들에서, 제1 사용자의 시점이 개개의 표현에 더 근접할수록, 전자 디바이스는 개개의 표현을 제1 사용자의 시점을 향해 더 많이 배향시킨다. 일부 실시예들에서, 전자 디바이스는 제1 사용자의 시점으로부터 적어도 최소 거리에 개개의 표현을 배치한다. 일부 실시예들에서, 개개의 표현이 3차원 환경 내의 하나 이상의 사용자들이 표현을 볼 수 있게 하지 않는 위치로 이동되면, 표현을 볼 수 없는 사용자들의 시점들은 개개의 표현의 배향을 결정하는 인자가 아니다. 예를 들어, 일 측면에서만 가시적인 표현이 2명의 사용자들 사이에 배치되면, 표현은 표현에 더 가까운 사용자의 시점을 향해 가시적인 측면으로 배향될 것이다. 일부 실시예들에서, 사용자가 표현을 볼 수 없지만 3차원 환경 내의 하나 이상의 다른 사용자들이 표현을 볼 수 있는 위치 및 배향에 사용자가 애플리케이션의 표현을 배치하는 것이 가능하다. 일부 실시예들에서, 사용자의 머리의 임계 볼륨 내에 개개의 표현을 배치하는 것은 가능하지 않다.
제1 사용자의 시점과 개개의 표현 사이의 거리에 기초하여 개개의 표현이 제1 사용자의 시점을 향해 배향되는 각도를 조정하는 전술된 방식은 표현으로부터의 거리에 따라 애플리케이션들의 표현들의 가시성을 우선순위화하는 효율적인 방식을 제공하고, 이는 추가적으로 전력 사용량을 감소시키고, 사용 시에 에러들을 감소시키면서, (예를 들어, 표현의 배향을 조정하는 데 필요한 입력들을 감소시킴으로써) 사용자가 전자 디바이스를 더 빠르고 효율적으로 사용할 수 있게 함으로써, 전자 디바이스의 배터리 수명을 개선한다.
도 9b에서와 같은 일부 실시예들에서, 3차원 환경(예를 들어, 904) 내의 제1 위치에서 개개의 애플리케이션의 개개의 표현(예를 들어, 906)을 디스플레이하는 동안, 전자 디바이스(예를 들어, 101)는 하나 이상의 입력 디바이스들을 통해, 개개의 애플리케이션의 개개의 표현(예를 들어, 906)을 3차원 환경(예를 들어, 904) 내의 제3 위치로 이동시키기 위한 개개의 입력을 수신한다(1087). 개개의 입력을 수신하는 것에 응답하여(1085), 전자 디바이스(예를 들어, 101)는 3차원 환경 내의 제3 위치에 개개의 애플리케이션의 개개의 표현(예를 들어, 906)을 디스플레이한다(1083). 개개의 입력을 수신하는 것에 응답하여(1085), 전자 디바이스(예를 들어, 101)는 도 9c에서와 같이 제1 사용자(예를 들어, 914A)의 시점 및 제2 사용자(예를 들어, 914B)의 시점의 제1 배열에 대한 3차원에서의 제3 위치의 상대적 위치에 기초하여 3차원 환경(예를 들어, 904)에 대한 개개의 배향으로 개개의 애플리케이션의 개개의 표현(예를 들어, 906)을 디스플레이한다(1081). 일부 실시예들에서, 전자 디바이스는 개개의 표현을 3차원에서 제1 및 제2 사용자들의 시점들을 향해 배향시킨다. 예를 들어, 개개의 표현이 제1 사용자의 시점의 전방, 위에, 그리고 좌측에 있는 경우, 개개의 표현의 배향은 제1 사용자의 시점에 대해 하향, 후방 및 우측이다. 다른 예로서, 표현이 3차원 환경의 바닥을 향해 또는 이를 통해 이동되면, 전자 디바이스는 표현을 위로 기울인다. 이 예에서, 표현이 더 아래로 더 이동될수록, 표현은 위로 더 기울어진다. 일부 실시예들에서, 전자 디바이스는 (예를 들어, 3차원 환경에서의 사용자들의 높이 및/또는 개개의 표현에 관계없이) 2차원에서 제1 및 제2 사용자들의 시점들을 향해 개개의 표현을 배향시킨다.
3차원에 대해 제1 및 제2 사용자들의 시점들을 향하는 개개의 배향으로 개개의 표현을 디스플레이하는 전술된 방식은 3차원 환경에서 제1 및 제2 사용자의 시점들로부터 가시적인 배향으로 개개의 표현을 제시하는 효율적인 방식을 제공하고, 이는 추가적으로 전력 사용량을 감소시키고, 사용 시에 에러들을 감소시키면서, 사용자가 전자 디바이스를 더 빠르고 효율적으로 사용할 수 있게 함으로써, 전자 디바이스의 배터리 수명을 개선한다.
도 9b에서와 같은 일부 실시예들에서, 3차원 환경(예를 들어, 904) 내의 제1 위치에서 개개의 애플리케이션의 개개의 표현(예를 들어, 906)을 디스플레이하는 동안, 전자 디바이스(예를 들어, 101)는 하나 이상의 입력 디바이스들을 통해, 개개의 애플리케이션의 개개의 표현(예를 들어, 906)을 3차원 환경 내의 제3 위치로 이동시키기 위한 개개의 입력을 수신한다(1079). 일부 실시예들에서, 개개의 입력을 수신하는 것에 응답하여(1077), 전자 디바이스(예를 들어, 101)는 3차원 환경(예를 들어, 904) 내의 제3 위치에 개개의 애플리케이션의 개개의 표현(예를 들어, 906)을 디스플레이한다(1075). 일부 실시예들에서, 개개의 입력을 수신하는 것에 응답하여(1077), 제3 위치가 3차원 환경(예를 들어, 904)의 제1 영역 내에 있다는 결정에 따라, 전자 디바이스(예를 들어, 101)는 제1 사용자(예를 들어, 914A)의 시점 및 제2 사용자(예를 들어, 914B)의 시점의 제1 배열 및 제3 위치에 기초하여 3차원 환경에 대한 제1 배향으로 개개의 애플리케이션의 개개의 표현(예를 들어, 906)을 디스플레이한다(1073). 일부 실시예들에서, 3차원 환경의 제1 영역은 제1 사용자 및 제2 사용자의 시점들의 미리 결정된 경계 내에 있다. 일부 실시예들에서, 3차원 환경의 제1 영역은 3차원 환경에서 사용자들의 시점들 전부 또는 대부분을 둘러싸는 임계 영역이다. 일부 실시예들에서, 개개의 입력(1077)을 수신하는 것에 응답하여, 제3 위치가 3차원 환경(예를 들어, 904)의 제1 영역과 상이한 제2 영역 내에 있다는 결정에 따라, 전자 디바이스(예를 들어, 101)는 제1 영역의 경계에 대한 제3 위치의 상대적(예를 들어, 측방향, 수직이 아닌) 위치에 기초하여, 3차원 환경(예를 들어, 904)에 대한 제1 배향과 상이한 제2 배향으로 개개의 애플리케이션의 개개의 표현(예를 들어, 906)을 디스플레이한다(1071). 일부 실시예들에서, 제2 영역은 제1 및 제2 사용자들의 시점들로부터 미리 결정된 경계 외부에 있다. 일부 실시예들에서, 제3 위치가 제2 영역 내에 있다는 결정에 따라, 제3 위치가 제3 위치와 제1 영역의 경계 사이의 거리와 무관하게(예를 들어, 수직임) 제1 영역의 경계에 대해 개개의 측방향 위치에 있는 한, 개개의 표현의 개개의 배향은 동일하다. 일부 실시예들에서, 제3 위치가 제1 영역에 있다는 결정에 따라, 제1 영역의 경계에 대한 표현의 측방향 위치가 동일하게 유지되는 경우에도 표현과 제1 영역의 경계 사이의 거리가 변함에 따라 개개의 표현의 배향은 선택적으로 변한다. 예를 들어, 개개의 표현이 제1 영역의 경계에 수직인 라인을 따라 이동하는 동안, 제1 및 제2 사용자들의 시점들의 배열에 대한 개개의 표현의 위치에 따라 개개의 표현이 제2 영역에 있는 동안 개개의 표현의 배향을 변하지 않고 개개의 표현이 제1 영역에 있는 동안 개개의 표현의 배향은 (예를 들어, 제1 및 제2 사용자들의 시점들의 배열에 기초하여) 적절하게 변할 수 있다.
표현의 위치가 제2 영역에 있다는 결정에 따라 표현의 상대적 위치 및 제1 영역의 경계에 기초한 배향으로 개개의 표현을 디스플레이하는 전술한 방식은 표현이 제2 영역에 있을 때 개개의 표현의 배향을 컴퓨팅하는 효율적인 방식을 제공하고, 이는 추가적으로 전력 사용량을 감소시키고, 전자 디바이스에 의해 수행되는 계산의 복잡도를 감소시킴으로써 전자 디바이스의 배터리 수명을 개선한다.
일부 실시예들에서, 도 9b에서와 같이 개개의 입력을 수신하는 것에 응답하여(1069), 제3 위치가 3차원 환경(예를 들어, 904)에서 제1 영역과 제2 영역 사이에 있는 제3 영역 내에 있다는 결정에 따라, 전자 디바이스(예를 들어, 101)는 제3 위치, 제1 사용자(예를 들어, 914A)의 시점 및 제2 사용자(예를 들어, 914B)의 시점의 제1 배열, 및 제1 영역의 경계에 대한 제3 위치의 상대적(예를 들어, 측방향, 수직이 아닌) 위치에 기초하여 3차원 환경(예를 들어, 904)에 대한 제1 및 제2 배향들과 상이한 제3 배향으로 개개의 애플리케이션의 개개의 표현(예를 들어, 906)을 디스플레이한다(1067). 일부 실시예들에서, 배향이 제1 사용자의 시점 및 제2 사용자의 시점의 제1 배열에 기초하는 것 대 제1 영역의 경계에 대한 표현의 위치에 기초하는 것의 정도는 제3 위치가 제1 영역에 더 가까운지 또는 제2 영역에 더 가까운지에 의존한다. 일부 실시예들에서, 제3 위치가 제1 영역에 더 가까울수록, 개개의 표현의 배향은 제1 및 제2 사용자들의 시점들의 배열에 더 기초하고, 제3 위치가 제2 영역에 더 가까울수록, 개개의 표현의 배향은 제1 영역의 경계에 대한 제3 위치의 (예를 들어, 측방향) 위치에 더 기초한다.
개개의 표현의 위치를, 제1 및 제2 사용자들의 시점들의 제1 배열, 및 표현의 위치가 제3 영역에 있는 동안 제1 영역의 경계에 대한 표현의 위치에 기초로 하는 전술된 방식은 표현이 제1 영역으로부터 제2 영역으로 이동할 때 표현의 배향의 변화의 점진적인 전환을 제공하고, 이는 추가적으로 전력 사용량을 감소시키고, 사용 시에 에러들을 감소시키면서, (예를 들어, 표현의 배향을 사용자가 제어하기 더 쉽게 함으로써) 사용자가 전자 디바이스를 더 빠르고 효율적으로 사용할 수 있게 함으로써, 전자 디바이스의 배터리 수명을 개선한다.
일부 실시예들에서, 개개의 애플리케이션의 개개의 표현(예를 들어, 906)을 3차원 환경(예를 들어, 904) 내의 제1 위치에 디스플레이하는 동안, 전자 디바이스(예를 들어, 101)는 하나 이상의 입력 디바이스들을 통해, 3차원 환경에서 제1 사용자(예를 들어, 914A)의 시점과 제2 사용자(예를 들어, 914B)의 시점 사이의 제3 위치로 개개의 애플리케이션의 개개의 표현(예를 들어, 906)을 이동시키기 위한 요청에 대응하는 개개의 입력을 수신한다(1065). 일부 실시예들에서, 개개의 입력을 수신하는 것에 응답하여(1063), 개개의 애플리케이션의 개개의 표현(예를 들어, 906)이 단일 방향으로부터 볼 수 있다는 결정에 따라, 전자 디바이스(예를 들어, 101)는 개개의 애플리케이션의 개개의 표현(예를 들어, 906)을 3차원 환경(예를 들어, 904)에서 제3 위치와 상이한 제4 위치로 이동시키고(1061), 제4 위치는 제1 사용자(예를 들어, 914A)의 시점과 제2 사용자(예를 들어, 914B)의 시점 사이에 있지 않다. 일부 실시예들에서, 개개의 표현이 복수의 방향들로부터 볼 수 있다는 결정에 따라, 제1 및 제2 사용자들의 시점들 사이의 제3 위치로 표현을 이동시키라는 입력에 응답하여, 전자 디바이스는 제3 위치에 개개의 표현을 디스플레이한다. 일부 실시예들에서, 제4 위치는 제3 위치로부터 멀리 떨어진 미리 결정된 임계치이다. 일부 실시예들에서, 개개의 표현을 제3 위치로 이동시키라는 요청에 대응하는 입력에 응답하여, 전자 디바이스는 대신에 제4 위치에 표현을 디스플레이한다. 일부 실시예들에서, 이동 입력이 제공되는 동안, 전자 디바이스는 제3 위치에 표현을 디스플레이하고 이동 입력의 종료를 검출하는 것에 응답하여, 표현을 제4 위치로 이동시킨다. 일부 실시예들에서, 전자 디바이스는 입력이 제공되는 동안 제3 위치에 표현을 디스플레이하지 않고, 입력이 제3 위치에 대응하는 동안 제4 위치에 표현을 디스플레이한다.
개개의 표현이 단일 방향으로부터 가시적이라는 결정에 따라 제1 및 제2 사용자들의 시점들 사이에 있지 않은 제4 위치에서 개개의 표현을 디스플레이하는 전술된 방식은 제1 및 제2 사용자들 둘 모두에 대해 동시에 가시적인 위치 및 배향으로 개개의 표현을 디스플레이하는 효율적인 방식을 제공하고, 이는 추가적으로 전력 사용량을 감소시키고, 사용 시에 에러들을 감소시키면서, 사용자가 전자 디바이스를 더 빠르고 효율적으로 사용할 수 있게 함으로써, 전자 디바이스의 배터리 수명을 개선한다.
일부 실시예들에서, 제4 위치는 3차원 환경(예를 들어, 904)에서 제1 사용자(예를 들어, 914A)의 시점과 제2 사용자(예를 들어, 914B)의 시점 사이의 개개의 영역의 제1 측면 상에 있다(1059). 일부 실시예들에서, 개개의 애플리케이션의 개개의 표현(예를 들어, 906)을 3차원 환경(예를 들어, 904) 내의 제4 위치에 디스플레이하는 동안, 전자 디바이스(예를 들어, 101)는 하나 이상의 입력 디바이스들을 통해, 개개의 표현(예를 들어, 906)을 개개의 영역을 향해 이동시키라는 요청에 대응하는 추가적인 이동 입력을 수신하고(1057), 추가적인 이동 입력은 제1 이동 양과 연관된다. 일부 실시예들에서, 요청은 개개의 표현을 개개의 영역을 향하는 방향에서 (예를 들어, 제1 측면에 대향하는 개개의 영역의 제2 측면 상에서) 개개의 영역을 지나는 위치로 이동시키라는 요청이다. 일부 실시예들에서, 추가적인 이동 입력을 수신하는 것에 응답하여(1055), 제1 이동 양이 임계 이동 양 미만이라는 결정에 따라, 전자 디바이스(예를 들어, 101)는 제1 사용자(예를 들어, 914A)의 시점과 제2 사용자(예를 들어, 914B)의 시점 사이에서 개개의 영역의 제1 측면 상에 개개의 애플리케이션의 개개의 표현(예를 들어, 906)을 디스플레이하는 것을 계속한다(1053). 일부 실시예들에서, 임계 이동 양은, 개개의 영역의 제1 측면으로부터 대향하는 개개의 영역의 제2 측면 상에서 제4 위치와 개개의 영역의 경계 사이의 거리와 동일한 거리만큼 개개의 표현을 이동시키는 것에 대응하는 제1 양이다. 일부 실시예들에서, 임계 이동 양은 제1 양보다 크다. 일부 실시예들에서, 추가적인 이동 입력을 수신하는 것에 응답하여(1055), 제1 이동 양이 임계 이동 양보다 크다는 결정에 따라, 전자 디바이스(예를 들어, 101)는 제1 사용자(예를 들어, 914A)의 시점과 제2 사용자(예를 들어, 914B)의 시점 사이에서 개개의 영역의 제1 측면과 상이한 제2 측면 상에 개개의 애플리케이션의 개개의 표현(예를 들어, 906)을 디스플레이한다(1051). 일부 실시예들에서, 전자 디바이스는 개개의 영역을 통해 개개의 영역의 제2 측면으로 개개의 표현을 이동시킨다. 일부 실시예들에서, 전자 디바이스는 개개의 영역의 제4 위치로부터 제2 측면까지의 거리에 대응하는 이동 양을 검출하는 것에 응답하여 개개의 영역의 제2 측면으로 개개의 표현을 이동시킨다. 일부 실시예들에서, 이동 양이 개개의 영역을 통해 개개의 영역의 제2 측면으로 표현을 이동시키는 것에 대응하는 양보다 작으면, 전자 디바이스는 개개의 영역의 제1 측면에 표현을 계속 디스플레이한다.
이동 입력의 이동 양에 따라 개개의 영역의 제1 측면 상에 또는 개개의 영역의 제2 측면 상에 개개의 표현을 디스플레이하는 전술된 방식은 제1 사용자 및 제2 사용자 둘 모두에게 가시적이 아닌 위치에 개개의 표현을 배치하는 것을 회피하는 효율적인 방식을 제공하고, 이는 추가적으로 전력 사용량을 감소시키고, 사용 시에 에러들을 감소시키면서, 사용자가 전자 디바이스를 더 빠르고 효율적으로 사용할 수 있게 함으로써, 전자 디바이스의 배터리 수명을 개선한다.
일부 실시예들에서, 개개의 애플리케이션의 개개의 표현을 디스플레이하라는 입력을 수신하는 것에 응답하여 3차원 환경(예를 들어, 904) 내의 제1 위치에 개개의 애플리케이션의 개개의 표현(예를 들어, 906)을 디스플레이하는 것은, 제1 사용자(예를 들어, 914A)의 시점과 제2 사용자(예를 들어, 914B)의 시점의 제1 배열에 기초하고, 3차원 환경(예를 들어, 904)에 대한 제1 사용자(예를 들어, 914A)의 시점의 배향(예를 들어, 3차원 환경에서 제1 사용자가 향하는 방향) 또는 3차원 환경(예를 들어, 904)에 대한 제2 사용자(예를 들어, 914B)의 시점의 배향(예를 들어, 3차원 환경에서 제2 사용자가 향하는 방향)에 기초하지 않는다(1049). 일부 실시예들에서, 제1 사용자의 시점의 배향이 제1 배향이고 제2 사용자의 시점의 배향이 제2 배향이라는 결정에 따라, 제1 위치는 3차원에서의 개개의 위치이다. 일부 실시예들에서, 제1 사용자의 시점의 배향이 제1 배향과 상이한 제3 배향이고/이거나 제2 사용자의 시점의 배향이 제2 배향과 상이한 제4 배향이라는 결정에 따라, 제1 위치는 3차원에서의 개개의 위치이다.
제1 및 제2 사용자들의 시점들의 배향들에 관계없이 제1 위치에 개개의 표현을 디스플레이하는 전술된 방식은 제1 위치를 선택하는 효율적인 방식을 제공하고, 이는 추가적으로 전력 사용량을 감소시키고, 제1 위치의 계산의 복잡도를 감소시킴으로써 전자 디바이스의 배터리 수명을 개선한다.
일부 실시예들에서, 전자 디바이스(예를 들어, 101)는 하나 이상의 입력 디바이스들을 통해, 제2 개개의 애플리케이션의 개개의 표현(예를 들어, 908)을 3차원 환경(예를 들어, 904)에 디스플레이하라는 요청에 대응하는 개개의 입력을 수신한다(1047). 일부 실시예들에서, 개개의 입력을 수신하는 것에 응답하여(1045), 전자 디바이스(예를 들어, 101)는 3차원 환경(예를 들어, 904)에 제2 개개의 애플리케이션의 개개의 표현(예를 들어, 908)을 디스플레이한다(1043). 일부 실시예들에서, 개개의 입력이 제1 사용자(예를 들어, 914A)와 연관된다는 결정에 따라, 제2 개개의 애플리케이션의 개개의 표현(예를 들어, 908)은 도 9b에서와 같이 제1 사용자(예를 들어, 914A)가 볼 수 있지만, 제2 사용자(예를 들어, 914B)는 볼 수 없다(1041). 일부 실시예들에서, 전자 디바이스는 초기에, 제2 개개의 애플리케이션이 3차원 환경 내의 (예를 들어, 임의의) 다른 사용자들에게 액세스가능하지 않으면서 제1 사용자에게 액세스가능한 개인 모드에서 제2 개개의 애플리케이션을 제시한다. 일부 실시예들에서, 개개의 입력이 제2 사용자(예를 들어, 914B)와 연관된다는 결정에 따라, 제2 개개의 애플리케이션의 개개의 표현(예를 들어, 908)은 제2 사용자(예를 들어, 914B)가 볼 수 있지만, 제1 사용자(예를 들어, 914A)는 볼 수 없다(1039). 일부 실시예들에서, 전자 디바이스는 초기에, 제2 개개의 애플리케이션이 3차원 환경 내의 (예를 들어, 임의의) 다른 사용자들에게 액세스가능하지 않으면서 제1 사용자에게 액세스가능한 개인 모드에서 제2 개개의 애플리케이션을 제시한다. 일부 실시예들에서, 개개의 입력에 응답하여, 전자 디바이스는, 3차원 환경 내의 다른(예를 들어, 모든) 사용자들이 제2 개개의 애플리케이션에 액세스하는 공유 모드에서 제2 개개의 애플리케이션을 제시한다. 일부 실시예들에서, 개개의 애플리케이션으로부터의 아이템(예를 들어, 첨부 파일, 파일, 가상 객체)은 개개의 애플리케이션의 공유 상태를 승계한다. 예를 들어, 전자 디바이스는 첨부 파일을 갖는 메시지를 포함하는 이메일 애플리케이션의 사용자 인터페이스를 디스플레이하고, 이메일 애플리케이션과 별개로 첨부 파일을 디스플레이하라는 요청을 수신한다. 이 예에서, 첨부 파일을 별개로 디스플레이하라는 요청에 응답하여, 전자 디바이스는 이메일 애플리케이션의 프라이버시 모드와 동일한 프라이버시 모드(예를 들어, 개인 또는 공유)로 첨부 파일을 디스플레이한다. 일부 실시예들에서, 전자 디바이스는 초기에 공유 모드에서 제2 개개의 애플리케이션을 제시하며, 여기서 제2 개개의 애플리케이션을 공유 모드에서 열기 위한 디바이스-제공 제안의 결과로서 제2 개개의 애플리케이션이 열리는 경우 3차원 환경 내의 다른(예를 들어, 모든) 사용자들이 제2 개개의 애플리케이션에 대한 액세스를 갖는다. 일부 실시예들에서, 제2 개개의 애플리케이션의 표현이 3차원 환경에서 하나의 제1 사용자에게 가시적인 동안, 전자 디바이스는 제2 개개의 애플리케이션을 3차원 환경의 다른(예를 들어, 모든) 사용자들에게 액세스가능하게 하기 위한 선택가능한 옵션의 선택을 검출한다. 일부 실시예들에서, 선택가능한 옵션은 제2 개개의 애플리케이션의 표현과 연관하여 디스플레이된다. 일부 실시예들에서, 제2 개개의 애플리케이션의 표현이 하나의 제1 사용자에게만 가시적인 동안 표현은 제1 시각적 특성(예를 들어, 표현 주위의 경계의 컬러 또는 스타일)으로 디스플레이되고, 제2 개개의 애플리케이션의 표현이 3차원 환경 내의 다수의(예를 들어, 모든) 사용자들에게 가시적인 동안, 표현은 제1 시각적 특성과 상이한 제2 시각적 특성으로 디스플레이된다. 일부 실시예들에서, 공유 애플리케이션들과 연관된 3차원 환경의 개개의 영역에서 제2 개개의 애플리케이션의 개개의 표현의 디스플레이를 개시하라는 요청에 응답하여, 전자 디바이스는 초기에, 제2 개개의 애플리케이션의 표현이 3차원 환경 내의 다수의(예를 들어, 모든) 사용자들에게 액세스가능하도록 제2 개개의 애플리케이션의 표현을 디스플레이한다.
제2 개개의 애플리케이션의 표현이 개개의 표현의 디스플레이를 요청한 사용자에게만 액세스가능하도록 제2 개개의 애플리케이션을 제시하는 전술된 방식은 개개의 제2 애플리케이션의 디스플레이를 요청하는 사용자의 프라이버시를 보존하는 효율적인 방식을 제공하고, 이는 추가적으로 전력 사용량을 감소시키고, 사용 시에 에러들을 감소시키면서, (예를 들어, 애플리케이션이 개인 모드에서 디스플레이되어야 함을 특정하는 추가적인 입력을 요구하지 않으면서 제2 개개의 애플리케이션의 표현을 개인 모드에서 디스플레이함으로써) 사용자가 전자 디바이스를 더 빠르고 효율적으로 사용할 수 있게 함으로써, 전자 디바이스의 배터리 수명을 개선한다.
일부 실시예들에서, 도 9b에서와 같이 제1 사용자(예를 들어, 914A)가 볼 수 있지만 제2 사용자(예를 들어, 914B)가 볼 수 없는 제2 개개의 애플리케이션의 개개의 표현(예를 들어, 908)을 디스플레이하는 동안 - 제2 개개의 애플리케이션의 개개의 표현(예를 들어, 908)은 제1 사용자(예를 들어, 914A)의 시점에 대한 제1 외관(예를 들어, 위치, 크기, 배향)으로 디스플레이됨 -, 전자 디바이스(예를 들어, 101)는, 도 9b에서와 같이, 하나 이상의 입력 디바이스들을 통해, 제2 개개의 애플리케이션의 개개의 표현(예를 들어, 908)을 제1 사용자(예를 들어, 914A) 및 제2 사용자(예를 들어, 914B)가 볼 수 있게 하라는 요청(예를 들어, 3차원 환경 내의 다른(예를 들어, 모든) 사용자들 및/또는 제2 사용자와 제2 개개의 애플리케이션을 공유하라는 요청)에 대응하는 입력을 수신한다(1037). 일부 실시예들에서, 제2 개개의 애플리케이션의 개개의 표현이 제1 외관으로 디스플레이되는 동안, 제2 개개의 애플리케이션의 개개의 표현은 제2 사용자의 시점과 무관하게 제1 사용자의 시점을 향해 배향되는 배향 및 위치로 디스플레이된다. 도 9b에서와 같이 제2 개개의 애플리케이션의 개개의 표현(예를 들어, 908)을 제1 사용자(예를 들어, 914A) 및 제2 사용자(예를 들어, 914B)가 볼 수 있게 하라는 요청에 대응하는 입력을 수신하는 것에 응답하여(1035), 전자 디바이스(예를 들어, 101)는 제2 개개의 애플리케이션의 개개의 표현(예를 들어, 908)을 제1 사용자(예를 들어, 914B)의 시점에 대한 제1 외관과 상이한 제2 외관(예를 들어, 크기, 위치, 배향)으로 디스플레이하는 것을 포함하여, 제1 사용자(예를 들어, 914A) 및 제2 사용자(예를 들어, 914B)가 볼 수 있도록 제2 개개의 애플리케이션의 개개의 표현(예를 들어, 908)을 업데이트한다(1033). 일부 실시예들에서, 제2 개개의 애플리케이션의 개개의 표현이 제2 외관으로 디스플레이되는 동안, 제2 애플리케이션의 개개의 표현은 제1 및 제2 사용자들의 시점들 둘 모두를 향해 배향되는 위치 및 배향으로 디스플레이된다. 일부 실시예들에서, 표현은 제1 및 제2 사용자들 둘 모두의 시점으로부터 이동한다. 일부 실시예들에서, 표현은 임계 양 이하만큼 이동한다.
제2 개개의 애플리케이션의 개개의 표현을 제1 및 제2 사용자들이 볼 수 있게 하라는 요청에 응답하여 제2 개개의 애플리케이션의 개개의 표현의 외관을 업데이트하는 전술된 방식은
제1 사용자 및 제2 사용자에게 쉽게 가시적이 아닌 외관으로 개개의 표현을 제시하는 효율적인 방식을 제공하고, 이는 추가적으로 전력 사용량을 감소시키고, 사용 시에 에러들을 감소시키면서, (예를 들어, 공유된 후 개개의 표현의 배향을 조정하는 데 필요한 입력들을 감소시킴으로써) 사용자가 전자 디바이스를 더 빠르고 효율적으로 사용할 수 있게 함으로써, 전자 디바이스의 배터리 수명을 개선한다.
도 9b에서와 같은 일부 실시예들에서, 제1 사용자(예를 들어, 914A)가 볼 수 있지만 제2 사용자(예를 들어, 914B)가 볼 수 없는 제2 개개의 애플리케이션의 개개의 표현(예를 들어, 908)을 디스플레이하는 동안 - 제2 개개의 애플리케이션의 개개의 표현은 제1 사용자(예를 들어, 914A)의 시점에 대한 제1 외관(예를 들어, 크기, 위치, 배향)으로 디스플레이됨 -, 전자 디바이스(예를 들어, 101)는, 도 9b에서와 같이, 하나 이상의 입력 디바이스들을 통해, 제2 개개의 애플리케이션의 개개의 표현(예를 들어, 908)을 제1 사용자(예를 들어, 914A) 및 제2 사용자(예를 들어, 914B)가 볼 수 있게 하라는 요청(예를 들어, 3차원 환경 내의 다른(예를 들어, 모든) 사용자들 및/또는 제2 사용자와 제2 개개의 애플리케이션을 공유하라는 요청)에 대응하는 입력을 수신한다(1031). 일부 실시예들에서, 제2 개개의 애플리케이션의 개개의 표현이 제1 외관으로 디스플레이되는 동안, 제2 개개의 애플리케이션의 개개의 표현은 제2 사용자의 시점과 무관하게 제1 사용자의 시점을 향해 배향되는 배향 및 위치로 디스플레이된다. 도 9c에서와 같은 일부 실시예들에서, 제2 개개의 애플리케이션의 개개의 표현(예를 들어, 9008)을 제1 사용자(예를 들어, 914A) 및 제2 사용자(예를 들어, 914B)가 볼 수 있게 하라는 요청에 대응하는 입력을 수신하는 것에 응답하여(1029), 전자 디바이스(예를 들어, 101)는 도 9c에서와 같이 제1 사용자(예를 들어, 914A)의 시점에 대해 제1 외관(예를 들어, 크기, 위치, 배향)을 갖는 제2 개개의 애플리케이션(예를 들어, 908)의 개개의 표현의 디스플레이를 유지하면서 제1 사용자(예를 들어, 914A) 및 제2 사용자(예를 들어, 914B)가 볼 수 있도록 제2 개개의 애플리케이션의 개개의 표현(예를 들어, 908)을 업데이트한다(1027). 일부 실시예들에서, 전자 디바이스는 제2 개개의 애플리케이션의 개개의 표현이 3차원 환경에서 제1 사용자 또는 제2 사용자에 의해 이동될 때까지 제2 개개의 애플리케이션의 개개의 표현의 외관을 업데이트하지 않는다. 일부 실시예들에서, 제2 개개의 애플리케이션의 개개의 표현을 이동시키기 위한 입력에 응답하여, 전자 디바이스는 입력에 따라 개개의 표현의 위치를 업데이트하고, 제1 사용자의 시점 및 제2 사용자의 시점을 향해 배향되도록 표현의 배향을 업데이트한다.
개개의 표현을 제1 사용자 및 제2 사용자에게 가시적이 되게 하라는 요청에 응답하여 제2 개개의 애플리케이션의 개개의 표현의 외관을 유지하는 전술된 방식은 표현의 외관을 변경하기 위해 추가적인 계산들을 수행하지 않으면서 제2 사용자와 제2 개개의 애플리케이션의 개개의 표현을 공유하는 효율적인 방식을 제공하고, 이는 추가적으로 전력 사용량을 감소시키고, 제2 개개의 애플리케이션의 개개의 표현을 공유하기 위한 동작의 복잡도를 감소시킴으로써 전자 디바이스의 배터리 수명을 개선한다.
도 11a 내지 도 11c는 일부 실시예들에 따른, 전자 디바이스가 3차원 환경에서 사용자의 시점과 가상 객체 사이에 있는 실제 객체의 외관을 수정하는 방법의 예들을 예시한다.
도 11a는 디스플레이 생성 컴포넌트(120)를 통해 사용자 인터페이스 상에 3차원 환경(1104)을 디스플레이하는 전자 디바이스(101)를 예시한다. 도 1 내지 도 6을 참조하여 위에서 설명된 바와 같이, 전자 디바이스(101)는, 선택적으로, 디스플레이 생성 컴포넌트(120)(예컨대, 터치 스크린) 및 복수의 이미지 센서들(314)을 포함한다. 이미지 센서들(314)은, 선택적으로, 가시광 카메라, 적외선 카메라, 깊이 센서, 또는 사용자가 전자 디바이스(101)와 상호작용하는 동안 전자 디바이스(101)가 사용자 또는 사용자의 일부의 하나 이상의 이미지들을 캡처하는 데 사용할 수 있을 임의의 다른 센서 중 하나 이상을 포함한다. 일부 실시예들에서, 디스플레이 생성 컴포넌트(120)는 사용자의 손의 제스처들 및 이동들을 검출할 수 있는 터치 스크린이다. 일부 실시예들에서, 아래에 도시된 사용자 인터페이스들은 또한, 사용자에게 사용자 인터페이스를 디스플레이하는 디스플레이 생성 컴포넌트, 및 물리적 환경 및/또는 사용자의 손들의 이동들(예를 들어, 사용자로부터 외향으로 향하는 외부 센서들) 및/또는 사용자의 시선(예를 들어, 사용자의 얼굴을 향해 내향으로 향하는 내부 센서들)을 검출하기 위한 센서들을 포함하는 머리 장착형 디스플레이 상에 구현될 수 있다.
일부 실시예들에서, 전자 디바이스(101)의 물리적 환경은 하나 이상의 물리적 객체들을 포함한다. 도 11a에서, 전자 디바이스(101)는 소파(1124) 및 벽(1126)을 포함하는 물리적 환경에서 사용되고 있다. 전자 디바이스(101)는 3차원 환경(1104)에서 소파(1124)의 표현(1128) 및 벽(1126)의 표현(1130)을 디스플레이한다. 일부 실시예들에서, 표현들(1128 및 1130)은 실제 객체들(1124 및 1126)의 포토리얼리스틱 표현들(예를 들어, "패스-스루" 비디오)이다. 일부 실시예들에서, 표현(1128 및 1130)은 전자 디바이스(101)의 디스플레이 생성 컴포넌트(120)의 투명 부분을 통해 가시적인 물리적 객체들(1124 및 1126)의 부분들이다.
3차원 환경(1104)은 전자 디바이스(101)의 사용자, 사용자 A(1114A); 3차원 환경(1104)에서 다른 사용자인 사용자 B(1114B)의 표현; 및 앱 A의 표현(1106)을 더 포함한다. 범례(1112)는 3차원 환경(1104)의 조감도를 예시한다. 전자 디바이스(101)는 3차원 환경(1104)에서 사용자 A(1114A)의 시점으로부터의 3차원 환경(1104)을 디스플레이한다. 도 11a에 도시된 바와 같이, 소파(1124)의 표현(1128)은 3차원 환경(1104)에서 사용자 A(1114A)와 사용자 B(1114B) 사이에 위치된다. 일부 실시예들에서, 3차원 환경(1104) 내의 사용자(예를 들어, 사용자 B(1114B))의 적어도 일부가 실세계 객체의 표현(예를 들어, 소파(1124)의 표현(1128))에 의해 가려질 때, 전자 디바이스(101)은 실세계 객체의 표현을 통해 사용자의 가려진 부분이 가시적이도록 하는 방식으로 사용자의 가려진 부분을 디스플레이한다(따라서, 예를 들어, 전자 디바이스의 사용자는 사용자의 가려진 부분을 볼 수 있다). 예를 들어, 도 11a에서, 전자 디바이스(101)는 소파(1124)의 표현(1128)에 의해 가려지지 않는 부분(1132a) 및 소파(1124)의 표현(1128)에 의해 가려지는 부분(1132b)을 포함하는 사용자 B(1114B)의 표현을 디스플레이한다. 도 11a에 도시된 바와 같이, 소파(1124)의 표현(1128)에 의해 가려지는 사용자 B(1114B)의 표현의 부분(1132b)은 소파(1124)의 표현(1128)에 의해 가려지지 않는 사용자 B(1114B)의 표현의 부분(1132a)과 상이하다(예를 들어, 실선들 대신 파선들로 형성됨). 일부 실시예들에서, 파선들을 사용하는 대신에, 전자 디바이스(101)는 예를 들어, 소파(1124)의 표현(1128)에 의해 가려진 사용자 B(1114B)의 표현의 일부(1132b)의 투명도를 증가시키거나, 컬러들을 변경하거나, 블러링함으로써 사용자 B(1114B)의 표현의 부분(1132b)을 상이한 방식으로 수정할 수 있다. 이러한 방식으로, 전자 디바이스(101)는 소파(1124)의 표현(1128)이 3차원 환경(1104)에서 사용자 B(1114B)와 사용자 A(1114A) 사이에 있다는 것을 사용자 A(1114A)에게 나타내면서 사용자 B(1114B)의 전체 표현을 디스플레이할 수 있다. 일부 실시예들에서, 사용자 B(1114B)의 전체 표현이 소파(1124)의 표현(1128)에 의해 가려졌다면, 전자 디바이스(101)는 부분(1132b)의 외관을 갖는 사용자 B(1114B)의 전체 표현을 디스플레이할 것이다. 일부 실시예들에서, 사용자 B(1114B)의 전체 표현이 소파(1124)의 표현(1128)에 의해 가려지지 않았다면, 전자 디바이스(101)는 부분(1132a)의 외관을 갖는 사용자 B(1114B)의 전체 표현을 디스플레이할 것이다.
일부 실시예들에서, 전자 디바이스(101)는, 이제 설명될 바와 같이, 실제 객체의 표현이 3차원 환경(1104)에서 가상 객체와 사용자 사이에 있는 전자 디바이스(101)의 물리적 환경의 실제 객체의 표현의 디스플레이를 수정한다. 도 11a에 도시된 바와 같이, 3차원 환경(1104)은 앱 A의 표현(1106)을 포함한다. 앱 A의 표현(1106)은 선택적으로, 표현(1105)의 일 측면(예를 들어, 3차원 환경(1104)에서 사용자 A(1114A)를 향하는 측면) 상에 콘텐츠를 포함하는 애플리케이션의 사용자 인터페이스이다. 전자 디바이스(101)는 앱 A의 표현(1106) 상에서 사용자 A(1114A)의 시선(1116)을 검출한다. 일부 실시예들에서, 앱 A의 표현(1106) 상에서 사용자 A(1114A)의 시선(1116)을 검출하는 것에 응답하여, 전자 디바이스(101)는 표현(1106) 주위에 표시(1118)를 디스플레이한다. 도 11a가 표현(1106)을 둘러싸는 파선인 것으로 표시(1118)를 예시하지만, 일부 실시예들에서, 표시는 표현(1106)의 하나의 에지를 따라 디스플레이되는 실선 바이다. 표현(1106) 상에서(또는 표시(1118) 상에서) 사용자의 시선(1116)을 검출하는 동안, 전자 디바이스(101)는 사용자 A(1114A)가 자신의 손(1120)으로 제스처를 수행하는 것(예를 들어, 엄지손가락을 엄지손가락과 동일한 손의 다른 손가락(예를 들어, 검지, 중지, 약지, 새끼 손가락)에 터치하는 것)을 검출하고, 응답으로 3차원 환경(1104)에서 표현(1106)을 이동시키기 위한 프로세스를 개시한다. 일부 실시예들에서, 전자 디바이스(101)는 사용자가 제스처를 유지하는 동안 사용자 A(1114A)의 손(1120)의 이동에 따라 앱 A의 표현(1106)을 이동시킨다. 일부 실시예들에서, 사용자 A(1114A)가 자신의 손(1120)으로 제스처를 수행하는 것을 중단하는 것에 응답하여, 전자 디바이스(101)는 앱 A의 표현(1106)의 이동을 중단한다.
도 11a에서 검출된 입력에 응답하여, 전자 디바이스(101)는 도 11b에 도시된 바와 같이 3차원 환경(1104)을 업데이트한다. 도 11b에 도시된 바와 같이, 앱 A의 표현(1106)은 벽(1126)의 표현(1130)이 디스플레이되는 3차원 환경(1104) 내의 위치로 이동되었다. 벽(1126)의 표현(1130)의 적어도 일부가 사용자 A(1114A)와 앱 A의 표현(1106) 사이에 있기 때문에(또는 앱 A의 표현(1106)이 벽(1126)의 표현(1130)을 터치하는 또는 그 내부에 있는 3, 6, 12 인치와 같은 임계 거리 내에 있기 때문에), 전자 디바이스(101)는 벽(1126)의 표현(1130)의 일부를 블러링한다. 표현(1106)의 경계의 임계치(예를 들어, 5, 10, 15, 20, 30 센티미터 등) 내에 있는 표현(1106)을 둘러싸는 표현(1130)의 부분(1134b)은 비교적 높은 양의 블러로 디스플레이되고, 표현(1130)의 다른 부분(1134b)의 임계치(예를 들어, 5, 10, 15, 20, 30 센티미터 등) 내에 있는 표현(1106)을 둘러싸는 표현(1130)의 부분(1134a)은 비교적 낮은 양의 블러로 디스플레이된다. 일부 실시예들에서, 벽(1126)의 표현(1130)의 부분(1134a)은 앱 A의 표현(1106)의 경계의 제1 임계치(예를 들어, 5, 10, 15, 20, 30 센티미터 등)와 제2 임계치(예를 들어, 10, 15, 20, 30, 40, 60, 80 센티미터 등) 사이에 있다. 일부 실시예들에서, 벽(1126)의 표현(1130)은 블러링되지 않는 추가적인 부분들(예를 들어, 부분(1134a)을 부분적으로 둘러싸는 부분들)을 포함하는데, 이는 이들이 앱 A(1106)의 표현(1106)의 제2 임계치 내에 있지 않기 때문이다. 일부 실시예들에서, 전자 디바이스(101)는 표현(1106)의 경계에 더 가깝게 더 블러링되는 구배 블러를 갖는 표현(1130)의 부분들(1134a 및 1134b)을 디스플레이한다. 일부 실시예들에서, 앱 A의 표현(1106) 주위의 블러 효과의 반경은 미리 결정되고, 미리 결정된 반경보다 앱 A의 표현(1106)으로부터 더 멀리 있는, 벽(1126)의 표현(1130)의 부분들은 블러링되지 않는다.
도 11a 및 도 11b에 도시된 바와 같이, 전자 디바이스(101)는 3차원 환경(1104)에서 사용자(1114A)로부터 멀리 표현(1106)을 이동시킨다. 일부 실시예들에서, 표현(1106)을 사용자로부터 멀리 이동시키는 것에 응답하여, 전자 디바이스(101)는 (예를 들어, 디스플레이 생성 컴포넌트(120)에 의해 디스플레이되는 표현(1106)의 가독성을 유지하기 위해) 3차원 환경(1104)에서 표현(1106)의 크기를 증가시킨다. 일부 실시예들에서, 앱 A의 표현(1106)은 사용자 A(1114A) 및 사용자 B(1114B) 둘 모두에게 액세스가능하고(예를 들어, 사용자 A(1114A) 및 사용자 B(1114B) 둘 모두는 앱 A의 표현(1106)을 보고, 듣고, 그와 상호작용할 수 있음), 앱 A의 표현(1106)의 크기는 도 9a 내지 도 10t를 참조하여 전술된 바와 같이, 사용자 A(1114a) 및 사용자 B(1114b) 각각과 표현(1106) 사이의 거리에 기초한다. 일부 실시예들에서, 앱 A의 표현(1106)은 사용자 B(1114B)에게 액세스가능하지 않으면서 사용자 A(1114A)에게 액세스가능하고(예를 들어, 사용자 A(1114A)는 앱 A의 표현(1106)을 보고, 듣고, 그와 상호작용할 수 있지만, 사용자 B(1114A)는 그렇지 않음), 앱 A의 표현(1106)의 크기는, 도 7a 내지 도 10t를 참조하여 전술된 바와 같이 3차원 환경(1104)에서 표현(1106)과 사용자 B(1114b) 사이의 거리에 기초하지 않고 3차원 환경(1104)에서 표현(1106)과 사용자 A(1114a) 사이의 거리에 기초한다. 일부 실시예들에서, 표현(1106)의 크기는 도 7a 내지 도 10t를 참조하여 전술된 바와 같이, 사용자(1114A)로부터 표현(1106)의 거리에 관계없이 3차원 환경(1104)에서 고정된다.
도 11b에 도시된 바와 같이, 사용자는 앱 A의 표현(1106)을 벽(1126)의 표현(1130)으로 더 이동시키기 위한 입력을 제공한다. 도 11b에서, 전자 디바이스(101)는 사용자가 자신의 손(1120)으로 제스처를 수행하는 것(예를 들어, 엄지손가락을 엄지손가락과 동일한 손의 다른 손가락(예를 들어, 검지, 중지, 약지, 새끼 손가락)에 터치하는 것)을 검출하면서 표현(1106) 상에서(또는 표현(1106) 주위의 표시(1118) 상에서) 사용자의 시선(1116)을 검출한다. 응답으로, 전자 디바이스(101)는 사용자의 손(1120)의 이동에 따라 앱 A의 표현(1106)을 이동시키기 위한 프로세스를 개시한다.
도 11b에 예시된 입력에 응답하여, 전자 디바이스(101)는 도 11c에 도시된 바와 같이 사용자의 손(1120)의 이동에 따라 3차원 환경(1104)에서 앱 A의 표현(1106)의 위치를 업데이트한다. 도 11c에서, 벽(1126)의 표현(1130)은 앱 A의 표현(1106)의 업데이트된 위치와 3차원 환경(1104) 내의 사용자 A(1114A)의 위치 사이에 있다. 이전에 설명된 바와 같이, 전자 디바이스(101)는 자신의 업데이트된 위치에 앱 A의 표현(1106)을 디스플레이하고, 앱 A의 표현(1106) 주위의 벽(1126)의 표현(1130)의 부분들(1134a 및 1134b)을 블러링한다. 앱 A의 표현(1106)의 위치가 도 11b에서보다 도 11c에서 상이하기 때문에, 전자 디바이스(101)는 도 11b에서보다 도 11c에서 벽의 표현(1130)의 상이한 부분들을 블러링한다(예를 들어, 도 11b에서보다 도 11c에서 벽(116)의 표현(1130)의 더 많은 부분이 블러링되는데, 이는 표현(1106)의 더 많은 부분이 도 11b에서보다 도 11c에서 표현(1130)과 중첩하기 때문이다).
따라서, 일부 실시예들에서, 전자 디바이스(101)는, 물리적 객체들의 표현들이 전자 디바이스(101)의 사용자와 3차원 환경(1104) 내의 다른 사용자들 및/또는 가상 객체들 사이에 있을 때에도, 3차원 환경(1104)에서 다른 사용자들 및 가상 객체들의 표현들을 디스플레이한다. 일부 실시예들에서, 전자 디바이스(101)는 3차원 환경(1104)에서 하나 이상의 객체들의 외관을 다른 방식들로 수정한다. 일부 실시예들에서, 전자 디바이스(101)는 몰입형 가상 환경을 디스플레이할 때 전자 디바이스(101)의 물리적 환경에서 하나 이상의 실제 객체들의 하나 이상의 표현들의 디스플레이를 보류한다. 예를 들어, 전자 디바이스(101)는 디스플레이 생성 컴포넌트(120)로 가상 객체들 및 가상 환경의 표현들을 디스플레이하면서 도 11a 내지 도 11c에서 소파(1124)의 표현(1128)의 디스플레이를 보류하고/하거나 벽(1126)의 표현(1130)의 디스플레이를 보류하는 것과 같이 몰입형 가상 환경을 디스플레이하기 위해 하나 이상의 물리적 객체들의 표현들의 디스플레이를 보류한다. 일부 실시예들에서, 전자 디바이스(101)가 물리적 객체를 향해 이동하고 있고/있거나 물리적 객체의 임계 거리 내에 있다는 결정에 따라, 전자 디바이스(101)는 객체의 적어도 일부의 표현의 디스플레이를 개시한다. 예를 들어, 전자 디바이스(101)가 소파(1124)의 표현(1128)을 디스플레이하고 있지 않은 동안, 전자 디바이스(101)는 전자 디바이스(101)가 전자 디바이스(101)의 물리적 환경에서 소파(1124)를 향해 이동하는 것을 검출한다. 이 예에서, 전자 디바이스(101)가 소파(1124)를 향해 이동하는 것을 검출하는 것에 응답하여, 전자 디바이스(101)는 (예를 들어, 도 11a에 도시된 소파(1124)의 표현(1128)의 디스플레이와 같이) 3차원 환경(1104)에서 소파(1124)의 표현(1128)의 디스플레이를 개시한다.
일부 실시예들에서, 전자 디바이스(101)는 3차원 환경(1104)에서 가상 객체들과 실제 객체들의 표현들 사이의 추가적인 상호작용들을 용이하게 한다. 예를 들어, 전자 디바이스(101)는, 표현(1106)이 벽(1126)의 표현(1130)의 임계 거리(예를 들어, 10, 20, 30, 40 센티미터 등) 내에서 이동하는 경우, 벽(1126)의 표현(1130)으로 스냅되는 표현(1106)과 같이, 3차원 환경(1104)에서 디스플레이되는 전자 디바이스(101)의 물리적 환경에서 가상 객체들(예를 들어, 표현(1106))을 실제 객체들(예를 들어, 테이블들, 소파들(1124), 의자들, 이젤들, 선반들 등과 같은 가구) 및/또는 실제 표면들(예를 들어, 벽들(1126), 바닥들, 조리대들 등)의 표현들로 "스냅"한다. 예를 들어, 일부 실시예들에서, 가상 객체를 실제 객체 또는 표면의 임계 거리(예를 들어, 10, 20, 30, 40 센티미터 등) 내의 위치로 이동시키기 위한 입력에 응답하여, 전자 디바이스(101)는 가상 객체가 실제 객체 또는 표면 상에 놓이거나(예를 들어, 수평 객체 또는 표면의 경우) 또는 매달린(예를 들어, 수직 객체 또는 표면의 경우) 것처럼 가상 객체를 디스플레이한다. 예를 들어, 도 11b에서 앱 A의 표현(1106)을 이동시키는 동안, 앱 A의 표현(1106)이 벽(1126)의 표현(1130)의 임계 거리 내에 있음을 검출하는 것에 응답하여, 전자 디바이스(101)는 앱 A의 표현(1106)이 벽(1126)의 표현(1130)에 매달려 있는 것처럼 앱 A의 표현(1106)을 디스플레이한다.
일부 실시예들에서, 가상 객체를 이동시키기 위한 입력이 제공되는 동안, 이동 입력이 실제 객체 또는 표면의 임계 거리(예를 들어, 10, 20, 30, 40 센티미터 등) 내에서 가상 객체를 이동시키는 것에 대응한다는 결정에 따라, 전자 디바이스(101)는 이동 입력의 종료에 응답하여 가상 객체가 실제 객체 또는 표면에 스냅할 실제 객체 또는 표면의 표현 상에 표시를 디스플레이한다. 예를 들어, 도 11b에서 앱 A의 표현(1106)을 이동시키는 동안, 전자 디바이스(101)는, 앱 A의 표현(1106)이 벽(1126)의 표현(1130)에 "스냅"할 때 이동 입력의 종료에 응답하여 벽(1126)의 표현(1130)과 접촉할 앱 A의 표현(1106)의 윤곽을 디스플레이한다. 일부 실시예들에서, 가상 객체가 실제 객체의 표현에 "스냅"되면, 전자 디바이스(101)는 3차원 환경(1104)에서의 사용자(들)의 위치(들)에 따라 가상 객체의 배향을 업데이트하는 것을 보류하는데, 이는 가상 객체가 "스냅"되는 실제 객체 또는 표면의 배향에 기초하여 가상 객체의 배향이 결정되기 때문이다. 예를 들어, 앱 A의 표현(1106)이 벽(1126)의 표현(1130)에 스냅되면, 전자 디바이스(101)는 3차원 환경(1104)에서 사용자 A(1114A) 및/또는 사용자 B(1114B)의 위치(들)에 관계없이 벽(1126)의 표현(1130)과 평행하게 앱 A의 표현(1106)을 디스플레이한다. 일부 실시예들에서, 실제 객체들의 표현들에 "스냅"되지 않은 가상 객체들은 도 7a 내지 도 10t를 참조하여 전술된 바와 같이, 3차원 환경(1104)에서 사용자(들)의 위치(들)에 기초한 배향들로 디스플레이된다.
일부 실시예들에서, 전자 디바이스(101)는 3차원 환경(1104)에서 가상 객체들과 사용자들의 표현들 사이의 상호작용들을 용이하게 한다. 예를 들어, 도 9a 내지 도 10t를 참조하여 전술된 바와 같이, 전자 디바이스(101)는 3차원 환경(1104)에서 사용자들의 표현들의 임계 거리(예를 들어, 5, 10, 15, 30, 45 센티미터 등) 내에 가상 객체들을 배치하는 것을 저지한다. 예를 들어, 전자 디바이스(101)가 도 9b 및 도 9c에서 3차원 환경(904)의 사용자 A(914A)의 임계 거리 내에 앱 A의 표현(906)의 배치를 저지하는 방식과 유사하게, 전자 디바이스(101)는 도 11a 내지 도 11c에서 3차원 환경(1104)의 사용자 B(1114B)의 표현의 임계 거리 내에 앱의 표현(1106)의 배치를 저지할 것이다. 따라서, 일부 실시예들에서, 사용자 B(1114)의 표현의 임계 거리 내에 앱 A의 표현(1106)을 디스플레이하라는 요청에 대응하는 입력에 응답하여, 전자 디바이스(101)는 3차원 환경(1104)에서 사용자 B(1114B)의 표현으로부터 멀리 임계 거리에 있는 위치에 앱 A의 표현(1106)을 디스플레이할 것이다. 일부 실시예들에서, 이동 입력이 제공되고 있는 동안, 전자 디바이스(101)는 사용자 B(1114B)의 표현으로부터 임계 거리 내의 위치로 앱 A의 표현(1106)을 이동시키는 것에 대응하는 이동 입력에 응답하여 사용자 B(1114B)의 표현으로부터 멀리 임계 거리에 있는 위치에 앱 A의 표현(1106)을 디스플레이한다. 일부 실시예들에서, 이동 입력이 제공되고 있는 동안, 전자 디바이스(101)는 사용자 B(1114B)의 표현의 임계 거리 내에 앱 A의 표현(1106)을 디스플레이하는 것을 포함하여, 표현(1106)을 이동시키라는 요청에 대응하는 위치에 앱 A의 표현(1106)을 디스플레이할 것이고, 이동 입력의 종료에 응답하여, 전자 디바이스(101)는 사용자 B(1114B)의 표현의 임계 거리 내의 위치로부터 사용자 B(1114B)의 표현으로부터 멀리 임계 거리에 있는 위치로 이동하는 앱 A의 표현(1106)의 애니메이션을 디스플레이할 것이다.
도 12a 내지 도 12h는 일부 실시예들에 따른 3차원 환경에서 사용자의 시점과 가상 객체 사이에 있는 실제 객체의 외관을 수정하는 방법을 예시하는 흐름도이다. 일부 실시예들에서, 본 방법(1200)은, 디스플레이 생성 컴포넌트(예컨대, 도 1, 도 3 및 도 4의 디스플레이 생성 컴포넌트(120))(예컨대, 헤드업 디스플레이, 디스플레이, 터치스크린, 프로젝터 등) 및 하나 이상의 카메라들(예컨대, 사용자의 손에서 하향으로 향하는 카메라(예컨대, 컬러 센서들, 적외선 센서들, 및 다른 심도 감지 카메라들) 또는 사용자의 머리로부터 전방으로 향하는 카메라)을 포함하는 컴퓨터 시스템(예컨대, 태블릿, 스마트폰, 웨어러블 컴퓨터 또는 머리 장착형 디바이스와 같은 도 1의 컴퓨터 시스템(101))에서 수행된다. 일부 실시예들에서, 방법(1200)은, 비일시적 컴퓨터 판독가능 저장 매체에 저장되며 컴퓨터 시스템의 하나 이상의 프로세서들, 예를 들어, 컴퓨터 시스템(101)의 하나 이상의 프로세서들(202)(예를 들어, 도 1a의 제어 유닛(110))에 의해 실행되는 명령어들에 의해 통제된다. 방법(1200)에서의 일부 동작들이 선택적으로 조합되거나, 및/또는 일부 동작들의 순서가 선택적으로 변경된다.
도 11a에서와 같은 일부 실시예들에서, 방법(1200)은 디스플레이 생성 컴포넌트(120) 및 하나 이상의 입력 디바이스들(예컨대, 모바일 디바이스(예컨대, 태블릿, 스마트폰, 미디어 플레이어 또는 웨어러블 디바이스), 또는 컴퓨터)과 통신하는 전자 디바이스(예를 들어, 101)에서 수행된다. 일부 실시예들에서, 디스플레이 생성 컴포넌트는 전자 디바이스(선택적으로, 터치 스크린 디스플레이), 모니터, 프로젝터, 텔레비전, 또는 하드웨어 컴포넌트(선택적으로, 통합형 또는 외장형)와 같은, 사용자 인터페이스를 투영하기 위한 또는 사용자 인터페이스가 하나 이상의 사용자들에게 가시적이 되게 하기 위한 외장형 디스플레이 등과 통합된 디스플레이이다. 일부 실시예들에서, 하나 이상의 입력 디바이스들은 사용자 입력을 수신하고(예를 들어, 사용자 입력을 캡처하는 것, 사용자 입력을 검출하는 것 등) 사용자 입력과 연관된 정보를 전자 디바이스에 송신할 수 있는 전자 디바이스 또는 컴포넌트를 포함한다. 입력 디바이스들의 예들은, 터치 스크린, (예를 들어, 외부의) 마우스, (선택적으로 통합된 또는 외부의) 트랙패드, (선택적으로 통합된 또는 외부의) 터치패드, (예를 들어, 외부의) 원격 제어 디바이스, (예를 들어, 전자 디바이스와 별개인) 다른 모바일 디바이스, (예를 들어, 외부의) 핸드헬드 디바이스, (예를 들어, 외부의) 제어기, 카메라, 깊이 센서, 눈 추적 디바이스 및/또는 모션 센서(예를 들어, 손 추적 디바이스, 손 모션 센서) 등을 포함한다.
도 11a에서와 같은 일부 실시예들에서, 전자 디바이스(예를 들어, 101)는 디스플레이 생성 컴포넌트(120)를 통해, 개개의 실제 객체(예를 들어, 1124)(예를 들어, 디스플레이 생성 컴포넌트를 통해 사용자 인터페이스에 디스플레이되는 패스-스루 객체 또는 적어도 부분적으로 투명한 디스플레이 생성 컴포넌트의 일부를 통해 가시적인 실세계 객체) 및 개개의 가상 객체(예를 들어, 1106)의 표현(예를 들어, 1128)을 포함하는 3차원 환경(예를 들어, 1104)을 디스플레이한다(1202). 일부 실시예들에서, 3차원 환경은 디바이스에 의해 생성, 디스플레이, 또는 다른 방식으로 볼 수 있게 된다(예를 들어, 3차원 환경은 가상 현실(VR) 환경, 혼합 현실(MR) 환경 또는 증강 현실(AR) 환경 등과 같은 컴퓨터 생성 현실(CGR) 환경임). 일부 실시예들에서, 3차원 환경은 전자 디바이스의 물리적 환경의 특징들에 대응하는, 개개의 실제 객체를 포함하는 경계들 및 객체들과 같은 특징부들을 포함한다. 예를 들어, 개개의 실제 객체는 물리적 환경 내의 물리적 객체의 물리적 위치에 대응하는 3차원 환경 내의 가상 위치에 디스플레이된 전자 디바이스의 물리적 환경 내의 물리적 객체의 표현이다. 일부 실시예들에서, 실제 객체는 패스 스루 객체이다. 일부 실시예들에서, 물리적 객체는 적어도 부분적으로 투명한 디스플레이 생성 컴포넌트의 부분을 통해 가시적이다(예를 들어, 디스플레이 생성 컴포넌트는 물리적 객체의 표현을 디스플레이하지 않는다). 일부 실시예들에서, 가상 객체는 전자 디바이스의 물리적 환경 내의 물리적 객체에 대응하지 않는다. 일부 실시예들에서, 가상 객체는 전자 디바이스에 액세스가능한 애플리케이션의 표현, 파일, 사용자의 아바타 또는 다른 사용자 인터페이스 요소이다.
도 11a에서와 같은 일부 실시예들에서, 3차원 환경(예를 들어, 1104)을 디스플레이하는 동안, 전자 디바이스(예를 들어, 101)는 하나 이상의 입력 디바이스들을 통해, 3차원 환경(예를 들어, 1104)에서 개개의 가상 객체(예를 들어, 1106)를 이동시키라는 요청에 대응하는 입력을 수신한다(1204). 일부 실시예들에서, 입력을 수신하는 것은, 가상 객체의 선택, 객체의 이동에 대응하는 입력, 및/또는 가상 객체의 선택을 중단하는 입력을 검출하는 것을 포함한다. 일부 실시예들에서, 가상 객체의 선택을 검출하는 것은, 눈 추적 디바이스로, 사용자가 임계 시간 기간(예를 들어, 0.1, 0.2, 0.3, 0.4, 0.5, 0.75, 1 초 등)보다 오래 가상 객체를 보고 있음을 검출하는 것을 포함한다. 일부 실시예들에서, 가상 객체의 선택을 검출하는 것은 손 추적 디바이스로, 사용자가 미리 결정된 제스처(예를 들어, 가상 객체를 가상으로 탭핑하는 것, 자신의 엄지손가락을 개개의 손가락(예를 들어, 검지 손가락, 중지 손가락, 약지 손가락, 새끼 손가락)에 터치하는 것)를 수행하는 것을 검출하는 것을 포함한다. 일부 실시예들에서, 가상 객체의 선택을 검출하는 것은 전자 디바이스와 통신하는 입력 디바이스를 통해, 마우스, 트랙패드, 터치 스크린, 키보드 또는 다른 입력 디바이스를 이용한 선택과 같은 가상 객체의 선택을 검출하는 것을 포함한다. 일부 실시예들에서, 가상 객체의 이동에 대응하는 입력을 검출하는 것은, 선택적으로, 손이 미리 결정된 포즈(예를 들어, 엄지손가락 및 각각의 손가락(예를 들어, 검지 손가락, 중지 손가락, 약지 손가락, 새끼 손가락)을 함께 탭핑하는 것, 손가락들 중 하나 이상을 연장시키는 것 등)에 있는 동안, 손 추적 디바이스를 통해 사용자의 손의 이동을 검출하는 것을 포함한다. 일부 실시예들에서, 가상 객체의 이동에 대응하는 입력을 검출하는 것은, 전자 디바이스와 통신하는 입력 디바이스를 통해, 마우스의 이동, 트랙패드 또는 터치 스크린 상의 접촉의 이동 및/또는 방향성 입력에 대응하는 키보드의 키의 선택과 같은 이동 입력을 검출하는 것을 포함한다. 일부 실시예들에서, 가상 객체의 선택을 중단하는 입력을 검출하는 것은, 손 추적 디바이스를 통해, 하나 이상의 기준들을 충족시키는 손 제스처(예를 들어, 엄지손가락을 손가락(예를 들어, 검지 손가락, 중지 손가락, 중지 손가락, 새끼 손가락)에 터치하는 것을 중단하는 것, 하나 이상의 손가락들을 연장시키는 것을 중단하는 것)를 검출하는 것, 및/또는 하나 이상의 기준들을 충족시킨 미리 결정된 위치의 손(예를 들어, 사용자의 전방의 위치로부터 사용자의 측면의 위치로 손을 낮추는 것)을 검출하는 것을 포함한다. 일부 실시예들에서, 가상 객체의 선택을 중단하는 입력을 수신하는 것은, 전자 디바이스와 통신하는 입력 디바이스를 통해, 터치 감응형 표면 상의 접촉의 리프트오프(liftoff) 및/또는 마우스 클릭 또는 키 누름의 해제와 같은 선택 입력의 해제를 검출하는 것을 포함한다.
도 11b에서와 같은 일부 실시예들에서, 3차원 환경(예를 들어, 1104)에서 개개의 가상 객체(예를 들어, 1106)를 이동시키기 위한 요청에 대응하는 입력을 수신하는 것에 응답하여(1206), 전자 디바이스(1208)는 입력에 따라 3차원 환경(예를 들어, 1104)에서 개개의 가상 객체(예를 들어, 1106)를 이동시킨다. 일부 실시예들에서, 개개의 가상 객체를 이동시키기 위한 요청은 방향 성분 및 크기 성분을 포함한다. 예를 들어, 손 이동은 손이 이동하는 방향에 대응하는 방향 성분 및 손이 이동하는 속도 및/또는 거리에 대응하는 크기 성분을 포함한다. 다른 예로서, 키보드 입력은, 눌려진 키에 대응하는 방향 성분 및 키 누름들의 지속기간 및/또는 수에 대응하는 크기 성분을 포함한다. 일부 실시예들에서, 가상 객체를 이동시키기 위한 요청에 응답하여, 전자 디바이스는 입력의 방향에 대응하는 방향으로 그리고/또는 입력의 이동 성분의 크기에 대응하는 양만큼 가상 객체를 이동시킨다.
도 11b에서와 같은 일부 실시예들에서, 3차원 환경에서 개개의 가상 객체를 이동시키라는 요청에 대응하는 입력을 수신하는 것에 응답하여(1206), 개개의 가상 객체의 이동이, 개개의 가상 객체(예를 들어, 1106)의 적어도 일부로 하여금 3차원 환경에서의 개개의 실제 객체(예를 들어, 1126)의 표현(예를 들어, 1130)의 제1 부분에 대응하는 3차원 환경(예를 들어, 1104)의 일부를 점유하게 한다는 결정에 따라, 전자 디바이스(예를 들어, 101)는 개개의 실제 객체의 표현(예를 들어, 1106)의 제1 부분(예를 들어, 1134b)을 둘러싸는(또는 예를 들어, 부분적으로 둘러싸는) 개개의 실제 객체(예를 들어, 1126)의 표현(예를 들어, 1130)의 제2 부분(예를 들어, 1134a)의 디스플레이를 수정한다(1210). 일부 실시예들에서, 실제 객체의 제1 부분의 위치가 가상 객체의 적어도 일부의 위치와 동일한 것 또는 실제 객체가 가상 객체와 전자 디바이스의 사용자에 대응하는 위치(예를 들어, 전자 디바이스가 3차원 환경을 디스플레이하는 밴티지 포인트의 위치) 사이에 있도록 가상 객체가 배치되는 것과 같이 3차원 환경에서 실제 객체와 가상 객체의 위치들이 적어도 부분적으로 중첩할 때 실제 객체의 제2 부분의 디스플레이는 수정된다. 일부 실시예들에서, 개개의 실제 객체의 제2 부분의 디스플레이를 수정하는 것은, 가상 객체의 위치가 개개의 실제 객체의 개개의 부분에 대응하는 3차원 환경의 부분을 점유하지 않는 동안 개개의 실제 객체의 제2 부분의 디스플레이와 비교된 감소된 반투명도, 증가된 블러, 상이한 컬러들 또는 다른 차이로 개개의 실제 객체의 제2 부분을 디스플레이하는 것을 포함한다. 일부 실시예들에서, 실제 객체가 디스플레이 생성 컴포넌트의 투명 부분을 통해 가시적이면(예를 들어, 디스플레이 생성 컴포넌트가 실제 객체의 표현을 디스플레이하지 않음), 전자 디바이스는 실제 객체가 가시적이게 하는 디스플레이 생성 컴포넌트의 위치 상에 오버레이된 실제 객체의 부분을 디스플레이함으로써 실제 객체의 표현의 부분을 수정한다. 일부 실시예들에서, 실제 객체는 전자 디바이스가 개개의 가상 객체를 이동시키라는 한 요청에 대응하는 입력을 수신하기 전에 디스플레이되었던 것과 동일한 방식으로 디스플레이되는 부분을 포함한다. 일부 실시예들에서, (예를 들어, 사용자의 시점으로부터) 가상 객체의 가상 위치가 실제 객체 뒤에 있더라도, 가상 객체와 중첩하는 실제 객체의 부분은 디스플레이되지 않는다. 일부 실시예들에서, (예를 들어, 사용자의 시점으로부터) 실제 객체와 중첩하는 위치로 가상 객체를 이동시키기 위한 입력에 응답하여, 전자 디바이스는 반투명하거나, 블러링되거나, 또는 다른 방식으로 수정된 외관과 같이 수정된 외관으로 디스플레이된 가상 객체를 둘러싼(또는 부분적으로 둘러싼) 실제 객체의 부분을 디스플레이한다.
개개의 가상 객체의 적어도 일부가 개개의 실제 객체의 제1 부분에 대응하는 3차원 환경의 부분을 점유한다는 결정에 따라 개개의 실제 객체의 제2 부분의 디스플레이를 수정하는 전술된 방식은 개개의 가상 객체가 개개의 실제 객체에 의해 다른 방식으로 가려졌을 때에 개개의 가상 객체의 위치를 나타내는 효율적인 방식을 제공하고, 이는 추가적으로 전력 사용량을 감소시키고, 사용 시에 에러들을 감소시키면서, 사용자가 전자 디바이스를 더 빠르고 효율적으로 사용할 수 있게 함으로써, 전자 디바이스의 배터리 수명을 개선한다.
일부 실시예들에서, 3차원 환경(예를 들어, 1104)에서 개개의 가상 객체(예를 들어, 1106)를 개개의 위치로 이동시키라는 요청에 대응하는 입력을 수신하는 것에 응답하여(1212), 개개의 가상 객체(예를 들어, 1106)의 이동이, 개개의 가상 객체(예를 들어, 1106)의 임의의 일부로 하여금 개개의 실제 객체(예를 들어, 1126)의 표현(예를 들어, 1130)에 대응하는 3차원 환경(예를 들어, 1104)의 일부를 점유하게 하지 않는다는 결정에 따라, 전자 디바이스(예를 들어, 101)는 도 11a에서와 같이 개개의 실제 객체(예를 들어, 1126)의 표현(예를 들어, 1130)의 일부의 디스플레이를 수정하지 않으면서 실제 객체(예를 들어, 1126)의 표현(예를 들어, 1130)의 디스플레이를 유지한다(1214). 일부 실시예들에서, 개개의 실제 객체가 이동되는 동안 개개의 실제 객체의 표현에 대응하는 3차원 환경의 일부를 개개의 가상 객체가 순간적으로 점유하면, 전자 디바이스는 개개의 가상 객체가 실제 객체의 표현과 중첩하는 동안 개개의 가상 객체의 표현의 부분을 둘러싸는 수정된 부분으로 개개의 실제 객체의 표현을 디스플레이한다. 일부 실시예들에서, 개개의 가상 객체의 위치가 실제 객체의 표현의 일부를 포함하지 않고 실제 객체가 사용자의 시점과 개개의 가상 객체 사이에 있지 않으면, 전자 디바이스는 실제 객체의 표현의 부분을 수정하는 것을 중단한다.
가상 객체가 3차원 환경에서 실제 객체의 표현의 일부를 점유하지 않는다는 결정에 따라 실제 객체의 표현의 일부의 디스플레이를 수정하지 않으면서 실제 객체의 표현의 디스플레이를 유지하는 전술된 방식은 실제 객체의 표현의 디스플레이를 수정하는 추가적인 동작을 수행하지 않고 개개의 가상 객체의 이동을 디스플레이하는 효율적인 방식을 제공하고, 이는 추가적으로 전력 사용량을 감소시키고, 디바이스 동작들의 복잡도를 감소시킴으로써 전자 디바이스의 배터리 수명을 개선한다.
일부 실시예들에서, 도 11b에서와 같이, 개개의 가상 객체(예를 들어, 1106)의 이동이 개개의 실제 객체(예를 들어, 1126)의 표현(예를 들어, 1130)의 제1 부분에 대응하는 위치로 하여금 3차원 환경(예를 들어, 1104)에서 개개의 가상 객체와 사용자(예를 들어, 1114A)의 위치(예를 들어, 전자 디바이스가 3차원 환경을 디스플레이하는 시점에 대응하는 위치) 사이에 위치되게 한다는 결정에 따라, 전자 디바이스(예를 들어, 101)는 개개의 실제 객체(예를 들어, 1126)의 제1 부분(예를 들어, 1134b)을 둘러싸는(또는 예를 들어, 부분적으로 둘러싸는) 개개의 실제 객체(예를 들어, 1126)의 표현(예를 들어, 1130)의 제2 부분(예를 들어, 1134a)의 디스플레이를 수정한다(1216). 일부 실시예들에서, 가상 객체가 사용자의 시점으로부터 실제 객체 뒤에 완전히 또는 부분적으로 있지만, 전자 디바이스는 가상 객체의 전체 표현을 디스플레이하고, 가상 객체의 표현에 인접한 실제 객체의 부분들의 디스플레이를 수정한다.
개개의 실제 객체의 이동이, 개개의 실제 객체의 표현의 제1 위치에 대응하는 위치로 하여금 3차원 환경에서 개개의 가상 객체와 사용자의 위치 사이에 위치되게 한다는 결정에 따라, 개개의 실제 객체의 표현의 제2 부분의 디스플레이를 수정하는 전술된 방식은 3차원 환경에서 가상 객체의 가독성을 유지하는 효율적인 방식을 제공하고, 이는 추가적으로 전력 사용량을 감소시키고, 사용 시에 에러들을 감소시키면서, (예를 들어, 개개의 가상 객체를 보는 데 필요한 시간 및 입력들을 감소시킴으로써) 사용자가 전자 디바이스를 더 빠르고 효율적으로 사용할 수 있게 함으로써, 전자 디바이스의 배터리 수명을 개선한다.
도 11a에서와 같은 일부 실시예들에서, 개개의 가상 객체(예를 들어, 1106)를 이동시키라는 요청에 대응하는 입력은 사용자(예를 들어, 1114A)의 손(예를 들어, 1120)에 의해 수행된 제1 제스처에 이어서 손(예를 들어, 1120)에 의해 수행되는 제1 제스처를 유지하면서 손(예를 들어, 1120)(예를 들어, 팔)의 움직임을 포함한다(1218). 일부 실시예들에서, 전자 디바이스는 손 추적 디바이스(예를 들어, 하나 이상의 카메라들, 하나 이상의 깊이 센서들, 하나 이상의 근접도 또는 터치 센서들, 터치 스크린 등)를 통해 손의 제스처를 검출한다. 일부 실시예들에서, 제스처는 사용자가 자신의 엄지손가락을 엄지손가락과 동일한 손의 손가락(예를 들어, 검지 손가락, 중지 손가락, 약지 손가락, 새끼 손가락)에 터치하는 것이다. 일부 실시예들에서, 전자 디바이스는 사용자가 손 또는 팔을 이동시키는 동안 엄지손가락 및 손가락을 연속적으로 터치하는 것을 검출한다. 일부 실시예들에서, 개개의 가상 객체를 이동시키라는 요청에 대응하는 입력은, 제1 제스처가 검출되는 동안 눈 추적 디바이스를 통해, 사용자의 시선이 개개의 가상 객체 상에 있다는 것을 검출하는 것을 포함한다. 일부 실시예들에서, 전자 디바이스는 개개의 가상 객체를 이동시키기 위한 입력에 응답하여 방법(800 및/또는 1000)의 하나 이상의 단계들에 따라 개개의 가상 객체를 업데이트한다.
개개의 가상 객체를 이동시키라는 요청에 대응하는 입력으로서 사용자의 손에 의해 수행되는 제스처를 검출하는 전술된 방식은 가상 객체를 이동시키기 위한 입력을 수락하는 효율적인 방식을 제공하고, 이는 추가적으로 전력 사용량을 감소시키고, 사용 시에 에러들을 감소시키면서, 사용자가 전자 디바이스를 더 빠르고 효율적으로 사용할 수 있게 함으로써, 전자 디바이스의 배터리 수명을 개선한다.
도 11b에서와 같은 일부 실시예들에서, 전자 디바이스(예를 들어, 101)의 물리적 환경은 3차원 환경(예를 들어, 1104)의 개개의 부분에 대응하는 위치에서 제1 실제 객체(예를 들어, 1124)를 포함한다(1220). 일부 실시예들에서, 디스플레이 생성 컴포넌트(120)를 통해 3차원 환경(예를 들어, 1104)의 개개의 부분을 디스플레이하는 동안 - 제1 실제 객체(예를 들어, 1124)의 표현(예를 들어, 1128)은 디스플레이 생성 컴포넌트(120)를 통해 가시적이지 않음 -, 전자 디바이스(예를 들어, 101)는 전자 디바이스(예를 들어, 101)가 물리적 환경 내의 제1 실제 객체(예를 들어, 1124)의 위치를 향해 이동하고 있음을 검출한다(1222). 일부 실시예들에서, 전자 디바이스는 실제 객체의 표현을 디스플레이하지 않으면서 전자 디바이스의 물리적 환경에서 제1 실제 객체의 위치에 대응하는 3차원 환경의 일부를 디스플레이한다. 예를 들어, 전자 디바이스는 제1 실제 객체의 위치를 가리는 가상 객체 또는 사용자 인터페이스를 디스플레이한다. 다른 예로서, 전자 디바이스는 제1 물리적 객체의 표현을 디스플레이하지 않으면서 또는 디스플레이 생성 컴포넌트의 투명 부분을 통해 제1 물리적 객체의 뷰를 가리는 방식으로 제1 물리적 객체의 위치에 3차원 환경의 환경을 디스플레이한다. 일부 실시예들에서, 전자 디바이스(예를 들어, 101)가 제1 실제 객체(예를 들어, 1124)의 위치를 향해 이동하고 있음을 검출하는 것에 응답하여, 하나 이상의 기준들(예를 들어, 전자 디바이스와 제1 실제 객체 사이의 거리(예를 들어, 전자 디바이스가 제1 실제 객체로부터 임계 거리보다 가까이 있음), 전자 디바이스의 이동 속도(예를 들어, 전자 디바이스가 제1 실제 객체를 향해 임계 속도보다 빠르게 이동함)와 관련된 기준들)이 충족된다는 결정에 따라, 전자 디바이스(예를 들어, 101)는 도 11b에서와 같이, 3차원 환경(예를 들어, 1104)에서, 제1 실제 객체(예를 들어, 1124)의 표현(예를 들어, 1128)을 디스플레이한다(1224). 일부 실시예들에서, 제1 실제 객체의 표현은 전자 디바이스의 물리적 환경 내의 제1 실제 객체의 위치에 대응하는 3차원 환경에서의 위치에서 하나 이상의 가상 객체들 또는 가상 환경의 디스플레이를 "관통"한다. 일부 실시예들에서, 전자 디바이스는 (예를 들어, 디스플레이 생성 컴포넌트의 투명 부분을 통해) 실제 객체가 가시적인 디스플레이 생성 컴포넌트의 위치에 디스플레이된 가상 환경의 부분들 및/또는 하나 이상의 가상 객체들의 디스플레이를 중단한다. 일부 실시예들에서, 제1 실제 객체는 제1 실제 객체의 위치에 대응하는 3차원 환경의 일부만을 "관통"한다. 일부 실시예들에서, 제1 실제 객체는 실제 객체의 위치에 대응하는 3차원 환경의 부분을 "관통"하고, 추가적인 부분(예를 들어, 제1 실제 객체의 임계 거리 내의 3차원 환경의 일부, 전체 3차원 환경)을 수정한다. 일부 실시예들에서, 제1 실제 객체는, 제1 실제 객체가 "관통"하는 3차원 환경의 영역들에서 하나 이상의 또는 모든 가상 요소들의 디스플레이를 전자 디바이스가 중단할 때 3차원 환경을 "관통"한다. 전자 디바이스가 제1 실제 객체의 위치를 향해 이동하고 있고 하나 이상의 기준들이 충족되는 것을 검출하는 것에 응답하여 제1 실제 객체의 표현을 디스플레이하는 전술된 방식은 사용자가 제1 실제 객체와 충돌하는 것이 가능할 때에만 제1 실제 객체를 제시하고 그렇지 않으면 가상 콘텐츠에 대한 디스플레이 영역을 보존하는 효율적인 방식을 제공하고, 이는 추가적으로 전력 사용량을 감소시키고, 사용 시에 에러들을 감소시키면서, 사용자가 전자 디바이스를 더 빠르고 효율적으로 사용할 수 있게 함으로써, 전자 디바이스의 배터리 수명을 개선한다.
일부 실시예들에서, 도 11a에서와 같이, 3차원 환경(예를 들어, 1104)에서 개개의 가상 객체(예를 들어, 1106)를 개개의 위치로 이동시키라는 요청에 대응하는 입력을 수신하는 것에 응답하여(1226), 개개의 가상 객체(예를 들어, 1106)의 현재 위치가 (예를 들어, 3차원 환경에서) 개개의 실제 객체(예를 들어, 1126)의 표현(예를 들어, 1130)의 임계 거리(예를 들어, 3, 6, 12 인치) 내에 있을 때 충족되는 개개의 기준을 포함하여, 하나 이상의 기준들이 충족된다는 결정에 따라(예를 들어, 물리적 객체에 가깝고 선택/이동 입력이 종료된 것, 예를 들어, 손에 의해 수행된 이동 제스처의 해제, 개개의 가상 객체가 미리 결정된 유형의 가상 객체인 것(예를 들어, 콘텐츠, 애플리케이션 표현, 가상 객체(예를 들어, 가상 텔레비전, 보드 게임, 사진 앨범)인 것, 실제 객체가 미리 결정된 유형의 실제 객체(예를 들어, 평평한 또는 수직 표면, 바닥, 벽)인 것), 전자 디바이스(예를 들어, 101)는 3차원 환경(예를 들어, 1104)에서 개개의 실제 객체(예를 들어, 1126)의 표현(예를 들어, 1130)에 대응하는 위치에 개개의 가상 객체(예를 들어, 1106)를 이동시킨다(1228). 일부 실시예들에서, 전자 디바이스는 개개의 가상 객체가 개개의 실제 객체 상에 놓이는 것처럼 보이도록 개개의 가상 객체를 디스플레이한다. 예를 들어, 전자 디바이스는 개개의 가상 객체가 바닥, 테이블 또는 다른 수평 표면과 같은 표면 상에 배치된 것처럼 보이도록 또는 객체가 벽 또는 다른 수직 표면에 매달려 있는 것처럼 보이도록 디스플레이한다. 예를 들어, 전자 디바이스의 물리적 환경에서 바닥 위의 임계 거리 내에 있는 위치로 개개의 가상 객체를 이동시키라는 요청에 대응하는 입력에 응답하여, 전자 디바이스는 개개의 가상 객체가 바닥 상에 배치된 것처럼 보이게 하는 위치에 개개의 가상 객체를 디스플레이한다. 도 11b에서와 같은 일부 실시예들에서, 하나 이상의 기준들이 충족되지 않는다는 결정에 따라, 전자 디바이스(예를 들어, 101)는 3차원 환경(예를 들어, 1104)에서 개개의 실제 객체(예를 들어, 1126)의 표현(예를 들어, 1130)에 대응하는 위치에 개개의 가상 객체(예를 들어, 1106)를 이동시키는 것을 보류한다(1230). 일부 실시예들에서, 전자 디바이스는 가상 객체를 이동시키기 위한 입력의 종료까지 가상 객체를 실제 객체의 표현에 대응하는 위치로 이동시키지 않는다. 예를 들어, 사용자가 가상 객체를 이동시키는 동안, 전자 디바이스는 실제 객체에 대응하도록 위치들을 조정하지 않으면서 이동에 대응하는 위치들에 가상 객체를 디스플레이한다. 일부 실시예들에서, 이동 입력이 실제 객체의 임계 거리 내의 위치로 가상 객체를 이동시키라는 요청에 대응하는 경우에만, 전자 디바이스는 실제 객체에 대응하는 위치에 가상 객체를 디스플레이한다. 예를 들어, 가상 객체를 실제 객체로부터 멀리 임계 거리보다 큰 개개의 위치로 이동시키기 위한 입력에 응답하여, 전자 디바이스는 실제 객체에 스냅되기보다는 개개의 위치에 가상 객체를 디스플레이한다.
하나 이상의 기준들이 충족된다는 결정에 따라 3차원 환경에서 개개의 실제 객체의 표현에 대응하는 위치로 개개의 가상 객체를 이동시키는 전술된 방식은 실제 객체들에 대응하는 위치들로 객체를 이동시키는 효율적인 방식을 제공하고, 이는 추가적으로 전력 사용량을 감소시키고, 사용 시에 에러들을 감소시키면서, (예를 들어, 실제 객체에 대응하는 위치에 가상 객체를 배치하는 데 필요한 입력들의 시간 및/또는 수를 감소시킴으로써) 사용자가 전자 디바이스를 더 빠르고 효율적으로 사용할 수 있게 함으로써, 전자 디바이스의 배터리 수명을 개선한다.
일부 실시예들에서, 도 11a에서와 같이, 3차원 환경(예를 들어, 1104)에서 개개의 가상 객체(예를 들어, 1106)를 개개의 위치로 이동시키라는 요청에 대응하는 입력을 수신하는 것에 응답하여(1232), 개개의 기준이 충족된다는 결정에 따라(예를 들어, 가상 객체가 3차원 환경 내의 실제 객체의 임계 거리 내에 있음), 전자 디바이스(예를 들어, 101)는 디스플레이 생성 컴포넌트를 통해, 하나 이상의 기준들이 충족될 때 개개의 가상 객체(예를 들어, 1106)가 3차원 환경(예를 들어, 1104) 내의 개개의 실제 객체(예를 들어, 1130)의 표현(예를 들어, 1126)에 대응하는 위치로 이동할 것임을 나타내는 시각적 표시를 디스플레이한다(1234). 일부 실시예들에서, 시각적 표시는, 가상 객체가 3차원 환경에서 자신의 현재 위치에 있는 동안 이동 입력이 종료되는 경우, 실제 객체와 접촉할 가상 객체의 표면의 윤곽이다. 예를 들어, 원뿔형 가상 객체의 이동을 검출하는 동안, 가상 객체가 물리적 환경 내의 실제 테이블의 임계 거리 내에 있다는 결정에 따라, 전자 디바이스는 이동 입력이 종료된 경우 원뿔이 배치될 실제 테이블의 위치에 원뿔(예를 들어, 점선 또는 파선 원 윤곽)의 베이스의 윤곽을 디스플레이한다.
개개의 가상 객체를 3차원 환경 내의 개개의 위치로 이동시키라는 요청에 대응하는 입력을 수신하는 것 및 개개의 기준이 충족되는 것에 응답하여 시각적 표시를 디스플레이하는 전술된 방식은 가상 객체가 물리적 객체에 대응하는 위치로 이동될 것임을 사용자에게 통지하는 효율적인 방식을 제공하고, 이는 추가적으로 전력 사용량을 감소시키고, 사용 시에 에러들을 감소시키면서, (예를 들어, 실제 객체에 대응하는 위치에 가상 객체를 배치하는 데 소요될 시간을 감소시킴으로써) 사용자가 전자 디바이스를 더 빠르고 효율적으로 사용할 수 있게 함으로써, 전자 디바이스의 배터리 수명을 개선한다.
일부 실시예들에서, 도 11a에서와 같이, 3차원 환경(예를 들어, 1104)에서 개개의 가상 객체(예를 들어, 1106)를 개개의 위치로 이동시키라는 요청에 대응하는 입력을 수신하는 것에 응답하여(1236), 하나 이상의 기준들이 충족된다는 결정에 따라, 전자 디바이스(예를 들어, 101)는 개개의 실제 객체(예를 들어, 1126)에 기초하여 3차원 환경(예를 들어, 1104)에 대해 제1 배향으로 개개의 가상 객체(예를 들어, 1106)를 디스플레이한다(1238). 일부 실시예들에서, 전자 디바이스는, 실제 객체에 대응하는 3차원 환경 내의 위치에 있는 가상 객체의 표면이 가상 객체와 가장 가깝거나 그와 접촉하는 실제 객체의 표면에 평행하거나 실질적으로 평행하도록 하는 배향으로 가상 객체를 디스플레이한다. 따라서, 일부 실시예들에서, 제1 배향은 3차원 환경에서 사용자의 위치에 기초하는 것이 아니라, 오히려 개개의 실제 객체의 특성들에 기초한다. 일부 실시예들에서, 3차원 환경(예를 들어, 1104)에서 개개의 가상 객체(예를 들어, 1106)를 개개의 위치로 이동시키라는 요청에 대응하는 입력을 수신하는 것에 응답하여(1236), 하나 이상의 기준들이 충족되지 않는다는 결정에 따라, 전자 디바이스(예를 들어, 101)는 도 11b에서와 같이 3차원 환경(예를 들어, 1104)에서 사용자(예를 들어, 1114A)의 위치에 기초하여(그리고 예를 들어, 개개의 실제 객체의 특성들에 기초하지 않음) 3차원 환경(예를 들어, 1104)에 대해 제1 배향과 상이한 제2 배향으로 개개의 가상 객체(예를 들어, 1106)를 디스플레이한다(1240). 일부 실시예들에서, 제2 배향은 사용자의 시점을 향해 지향된다. 일부 실시예들에서, 제2 배향은 방법들(800 또는 1000)의 하나 이상의 단계들에 따라 선택된다.
하나 이상의 기준들이 충족되는지 여부에 따라 상이한 배향으로 가상 객체를 디스플레이하는 전술된 방식은 물리적 객체와 연관된 위치에 가상 객체를 배치하거나 또는 사용자에게 쉽게 가시적인 배향으로 가상 객체를 배치하는 효율적인 방식을 제공하고, 이는 추가적으로 전력 사용량을 감소시키고, 사용 시에 에러들을 감소시키면서, (예를 들어, 원하는 배향으로 가상 객체를 디스플레이하는 데 필요한 시간 및 입력들을 감소시킴으로써) 사용자가 전자 디바이스를 더 빠르고 효율적으로 사용할 수 있게 함으로써, 전자 디바이스의 배터리 수명을 개선한다.
일부 실시예들에서, 3차원 환경(예를 들어, 1104)에서 개개의 가상 객체(예를 들어, 1106)를 이동시키라는 요청에 대응하는 입력을 수신하기 전에, 도 11a에서와 같이 개개의 가상 객체(예를 들어, 1106)는 3차원 환경(예를 들어, 1104)에서 사용자(예를 들어, 1114A)로부터 제1 거리에 있고, 개개의 가상 객체(예를 들어, 1106)는 제1 크기로 디스플레이된다(1242). 일부 실시예들에서, 도 11b에서와 같이 3차원 환경(예를 들어, 1104)에서 개개의 가상 객체(예를 들어, 1106)를 이동시키라는 요청에 대응하는 입력을 수신한 후에, 개개의 가상 객체(예를 들어, 1106)는 3차원 환경(예를 들어, 1104)에서 사용자(예를 들어, 1114A)로부터 제1 거리와 상이한 제2 거리에 있고, 개개의 가상 객체(예를 들어, 1106)는 제1 크기와 상이한 제2 크기로 디스플레이된다(1244). 일부 실시예들에서, 개개의 가상 객체의 크기는 3차원 환경 내의 객체의 가상 크기이다. 일부 실시예들에서, 개개의 가상 객체를 3차원 환경에서 사용자의 시점으로부터 더 멀리 이동시키기 위한 입력에 응답하여, 전자 디바이스는 가상 객체의 크기를 증가시킨다. 일부 실시예들에서, 객체를 더 멀리 이동시키고 가상 객체의 크기를 증가시키는 것은, 가상 객체가 사용자로부터 더 멀리 있더라도 디스플레이 생성 컴포넌트로 하여금 동일한 디스플레이 영역을 사용하여 가상 객체를 디스플레이하게 한다. 일부 실시예들에서, 가상 객체를 디스플레이하는 데 사용되는 디스플레이 영역은 객체가 더 멀리 이동되고 객체의 크기가 변함에 따라 변한다. 일부 실시예들에서, 가상 객체를 3차원 환경에서 사용자의 시점에 더 가깝게 이동시키기 위한 입력에 응답하여, 전자 디바이스는 가상 객체의 크기를 감소시킨다. 일부 실시예들에서, 가상 객체를 더 가깝게 이동시키고 가상 객체의 크기를 감소시키는 것은, 가상 객체가 사용자에게 더 근접하더라도, 전자 디바이스로 하여금 동일한 디스플레이 영역을 사용하여 가상 객체를 디스플레이하게 한다. 일부 실시예들에서, 가상 객체를 디스플레이하는 데 사용되는 디스플레이 영역은 객체가 더 가깝게 이동되고 객체의 크기가 변함에 따라 변한다. 일부 실시예들에서, 가상 객체를 이동시키라는 요청에 응답하여, 전자 디바이스는 방법들(800 및/또는 1000)의 하나 이상의 단계들에 따라 가상 객체의 위치를 업데이트하고 가상 객체의 배향을 업데이트한다.
3차원 환경에서 사용자와 가상 객체 사이의 거리가 변할 때 가상 객체의 크기를 변경하는 전술된 방식은 판독가능하고 객체가 이동될 때 자동으로 다른 객체들에 대한 공간을 허용하는 크기로 가상 객체를 디스플레이하는 효율적인 방식을 제공하고, 이는 추가적으로 전력 사용량을 감소시키고, 사용 시에 에러들을 감소시키면서, (예를 들어, 가상 객체를 이동시키고 리사이징하는 데 필요한 입력들을 감소시킴으로써) 사용자가 전자 디바이스를 더 빠르고 효율적으로 사용할 수 있게 함으로써, 전자 디바이스의 배터리 수명을 개선한다.
일부 실시예들에서, 3차원 환경(예를 들어, 1104)에서 개개의 가상 객체(예를 들어, 1106)를 이동시키라는 요청에 대응하는 입력을 수신하는 것에 응답하여(1246), 개개의 가상 객체(예를 들어, 1106)를 3차원 환경(예를 들어, 1104) 내의 사용자(예를 들어, 1114B)(예를 들어, 전자 디바이스의 사용자 또는 3차원 환경의 다른 사용자)와 연관된 위치와 일치하는(또는 예를 들어, 그 위치의 임계 거리(예를 들어, 0.1, 0.2, 0.3, 0.4, 0.5, 1, 2 미터 등)의 또는 그 내의) 3차원 환경 내의 개개의 위치에 대한 것이고, 3차원 환경(예를 들어, 1104)에서 개개의 가상 객체(예를 들어, 1106)를 이동시키라는 요청에 대응하는 입력이 종료되었다는 결정에 따라, 전자 디바이스(예를 들어, 101)는 3차원 환경(예를 들어, 1104)에서 개개의 위치와 상이한 제2 개개의 위치에 개개의 가상 객체(예를 들어,1106)를 디스플레이한다(1248). 일부 실시예들에서, 전자 디바이스는 사용자에 대응하는 3차원 환경 내의 위치에서 제1 사용자에 대응하는 아바타를 디스플레이한다. 일부 실시예들에서, 제2 개개의 위치는 사용자와 연관된 위치로부터 미리 결정된 임계 거리(예를 들어, 0.1, 0.2, 0.3, 0.4, 0.5, 1, 2 미터 등)에 있다. 일부 실시예들에서, 이동 입력의 종료를 검출하기 전에, 전자 디바이스는 개개의 위치에 개개의 가상 객체를 디스플레이한다. 일부 실시예들에서, 이동 입력의 종료를 검출하기 전에, 전자 디바이스는 제2 개개의 위치에 가상 객체를 디스플레이하고, 이동 입력이 수신되는 동안 임의의 시간에 개개의 위치에 가상 객체를 디스플레이하지 않는다. 예를 들어, 사용자가 개개의 가상 객체를 이동시키기 위한 입력을 제공하고 있는 동안, 전자 디바이스는 입력에 따라 개개의 가상 객체를 이동시키고, 이동 입력이 개개의 위치로 개개의 가상 객체를 이동시키는 것에 대응할 때 개개의 위치 대신에 제2 개개의 위치에 개개의 가상 객체를 디스플레이한다. 3차원 환경에서 사용자와 일치하는 개개의 위치로 가상 객체를 이동시키라는 요청에 대응하는 이동 입력에 응답하여 제2 개개의 위치에 가상 객체를 디스플레이하는 전술된 방식은 사용자에게 가시적인 위치에 가상 객체를 디스플레이하는 효율적인 방식을 제공하고, 이는 추가적으로 전력 사용량을 감소시키고, 사용 시에 에러들을 감소시키면서, 사용자가 전자 디바이스를 더 빠르고 효율적으로 사용할 수 있게 함으로써, 전자 디바이스의 배터리 수명을 개선한다.
일부 실시예들에서, 3차원 환경(예를 들어, 1104)에서 개개의 가상 객체(예를 들어, 1106)를 이동시키라는 요청에 대응하는 입력을 수신하는 것에 응답하여(1250), 개개의 가상 객체(예를 들어, 1106)를 이동시키라는 요청에 대응하는 입력이 3차원 환경(예를 들어, 1104) 내의 사용자(예를 들어, 1114B)(예를 들어, 전자 디바이스의 사용자 또는 3차원 환경의 다른 사용자)와 연관된 위치와 일치하는 3차원 환경(예를 들어, 1104) 내의 개개의 위치로 가상 객체를 이동시키라는 요청이라는 결정에 따라, 전자 디바이스(예를 들어, 101)는 3차원 환경(예를 들어, 1104)에서 개개의 위치에 개개의 가상 객체(예를 들어,1106)를 디스플레이한다(1252). 일부 실시예들에서, 3차원 환경 내의 개개의 위치에 가상 객체를 디스플레이하는 동안, 전자 디바이스는 사용자의 표현을 디스플레이하는 것을 중단한다. 일부 실시예들에서, 3차원 환경 내의 개개의 위치에 가상 객체를 디스플레이하는 동안, 전자 디바이스는 가상 객체 및 사용자의 표현 둘 모두가 3차원 환경에서 가시적이도록 가상 객체 및 사용자의 표현 중 하나 이상의 투명도를 수정한다. 일부 실시예들에서, 3차원 환경(예를 들어, 1104)의 개개의 위치에 개개의 가상 객체(예를 들어, 1106)를 디스플레이하면서 3차원 환경에서 개개의 가상 객체(예를 들어, 1106)를 이동시키기 위한 요청에 대응하는 입력을 수신하는 것에 응답하여(1250), 전자 디바이스(예를 들어, 101)는 3차원 환경(예를 들어, 1104)에서 개개의 가상 객체(예를 들어, 1106)를 이동시키라는 요청에 대응하는 입력의 종료를 검출한다(1254). 일부 실시예들에서, 3차원 환경(예를 들어, 1104)에서 개개의 가상 객체(예를 들어, 1106)를 이동시키라는 요청에 대응하는 입력을 수신하는 것에 응답하여(1250), 3차원 환경(예를 들어, 1104)에서 개개의 가상 객체(예를 들어, 1106)를 이동시키라는 요청에 대응하는 입력의 종료를 검출하는 것에 응답하여, 전자 디바이스(예를 들어, 101)는 3차원 환경(예를 들어, 1104)에서 제2 개개의 위치로 개개의 가상 객체(예를 들어,1106)를 이동시킨다(1256). 일부 실시예들에서, 이동 입력을 검출하는 동안, 전자 디바이스는 개개의 위치에 가상 객체를 디스플레이하고, 이동 입력의 종료를 검출하는 것에 응답하여, 전자 디바이스는 개개의 위치로부터 제2 개개의 위치로 가상 객체를 이동시키는 애니메이션을 디스플레이한다.
가상 객체의 표현을 3차원 환경에서 개개의 위치로부터 제2 개개의 위치로 이동시키는 전술된 방식은 가상 객체를 사용자에게 가시적이게 하는 위치에 가상 객체를 디스플레이하는 효율적인 방식을 제공하고, 이는 추가적으로 전력 사용량을 감소시키고, 사용 시에 에러들을 감소시키면서, 사용자가 전자 디바이스를 더 빠르고 효율적으로 사용할 수 있게 함으로써, 전자 디바이스의 배터리 수명을 개선한다.
일부 실시예들에서, 3차원 환경(예를 들어, 1104)에서 개개의 가상 객체(예를 들어, 1106)를 이동시키라는 요청에 대응하는 입력을 수신하는 것에 응답하여(1258), 개개의 가상 객체(예를 들어, 1106)를 이동시키라는 요청에 대응하는 입력이 3차원 환경(예를 들어, 1104) 내의 사용자(예를 들어, 1114B)(예를 들어, 전자 디바이스의 사용자 또는 3차원 환경의 다른 사용자)와 연관된 위치의 임계 거리(예를 들어, 0, 1, 5, 10, 30, 100 센티미터 등) 내에 있는 3차원 환경(예를 들어, 1104) 내의 개개의 위치로 가상 객체(예를 들어, 1106)를 이동시키라는 요청이라는 결정에 따라, 전자 디바이스(예를 들어, 101)는 3차원 환경(예를 들어, 1104)에서 개개의 위치와 상이한 3차원 환경(예를 들어, 1104) 내의 제2 개개의 위치에 개개의 가상 객체(예를 들어,1106)를 디스플레이한다(1260). 일부 실시예들에서, 전자 디바이스는 이동 입력이 전자 디바이스에 의해 검출되고 있는 동안 개개의 위치 대신에 제2 개개의 위치에 가상 객체를 디스플레이한다. 일부 실시예들에서, 전자 디바이스는 3차원 환경 내의 개개의 위치에 사용자에 대응하는 아바타를 디스플레이한다. 일부 실시예들에서, 제2 개개의 위치는 사용자와 연관된 위치로부터 떨어진 임계 거리에 있다. 일부 실시예들에서, 사용자가 개개의 가상 객체를 이동시키기 위한 입력을 제공하고 있는 동안, 전자 디바이스는 (예를 들어, 사용자와 연관된 위치를 향하는) 입력에 따라 개개의 가상 객체를 이동시키고, 이동 입력이 개개의 위치로 개개의 가상 객체를 이동시키는 것에 대응할 때 개개의 위치 대신에 제2 개개의 위치에 개개의 가상 객체를 디스플레이한다. 일부 실시예들에서, 이동 입력이 제공되는 동안, 전자 디바이스는 개개의 위치에 가상 객체를 디스플레이하고, 가상 객체가 개개의 위치에 있는 동안 이동 입력의 종료를 검출하는 것에 응답하여, 전자 디바이스는 3차원 환경의 개개의 위치로부터 제2 개개의 위치로 가상 객체를 이동시키는 애니메이션을 제시한다.
이동 입력이 검출되고 있는 동안 개개의 위치 대신에 제2 개개의 위치에 가상 객체를 디스플레이하는 전술된 방식은 이동 입력에 응답하여 가상 객체가 디스플레이될 위치를 사용자에게 통지하는 효율적인 방식을 제공하고, 이는 추가적으로 전력 사용량을 감소시키고, 사용 시에 에러들을 감소시키면서, 사용자가 전자 디바이스를 더 빠르고 효율적으로 사용할 수 있게 함으로써, 전자 디바이스의 배터리 수명을 개선한다.
도 11a에서와 같은 일부 실시예들에서, 3차원 환경(예를 들어, 1104)을 디스플레이하는 동안(1262), 개개의 실제 객체(예를 들어, 1124)의 표현(예를 들어, 1128)이 3차원 환경(예를 들어, 1104)에서 전자 디바이스의 제1 사용자(예를 들어, 1114A)의 위치와 제2 사용자(예를 들어, 1114B)의 표현 사이에 있다는 결정에 따라, 전자 디바이스(예를 들어, 101)는 디스플레이 생성 컴포넌트를 통해, 개개의 실제 객체(예를 들어, 1124)의 표현(예를 들어, 1128) 상에 제2 사용자(예를 들어, 제2 사용자의 아바타)의 표현의 시각적 표시(예를 들어, 1132b)를 디스플레이한다(1264). 일부 실시예들에서, 제2 사용자의 시각적 표시(예를 들어, 제2 사용자의 아바타)는 3차원 환경에서 제1 및 제2 사용자들 사이에 어떠한 객체들도 없을 때 제2 사용자의 표현이 디스플레이되는 시각적 특성보다 3차원 환경에서 제1 및 제2 사용자들 사이에 실제 객체가 있는 동안 상이한 시각적 특성으로 디스플레이된다. 예를 들어, 실제 객체가 제1 사용자와 제2 사용자 사이에 있는 동안, 전자 디바이스는 실제 객체의 표현 상에 또는 실제 객체의 표현을 통해 제2 사용자의 표현의 투명, 반투명, 윤곽 또는 다른 버전을 디스플레이한다. 일부 실시예들에서, 전자 디바이스는 3차원 환경에서의 제1 사용자와 제2 사용자 사이의 거리가 미리 결정된 임계치를 초과한다는 결정에 따라 제2 사용자의 표현의 디스플레이를 중단한다. 일부 실시예들에서, 제2 사용자의 아바타의 일부가 실제 객체에 의해 차단된다는 결정에 따라(예를 들어, 아바타는 아바타보다 짧은 객체 뒤에 있고, 아바타는 사용자의 시점으로부터 실제 객체 뒤에 있는 제1 수평 부분 및 사용자의 시점으로부터 실제 객체 뒤에 있지 않은 제2 수평 부분을 가짐), 실제 객체에 의해 차단되는 제2 사용자의 아바타의 부분은 수정된 시각적 특성으로 디스플레이되고 실제 객체에 의해 차단되지 않은 아바타의 부분은 수정되지 않은 시각적 특성으로 디스플레이된다.
실제 객체의 표현 상에 제2 사용자의 표현의 시각적 표시를 디스플레이하는 전술된 방식은 제2 사용자의 표현의 시각적 표시 및 실제 객체의 표현 둘 모두를 디스플레이하는 효율적인 방식을 제공하고, 이는 추가적으로 전력 사용량을 감소시키고, 사용 시에 에러들을 감소시키면서, 사용자가 전자 디바이스를 더 빠르고 효율적으로 사용할 수 있게 함으로써, 전자 디바이스의 배터리 수명을 개선한다.
도 11b에서와 같은 일부 실시예들에서, 개개의 가상 객체(예를 들어, 1106)의 적어도 일부가 3차원 환경(예를 들어, 1104)에서 개개의 실제 객체(예를 들어, 1126)의 표현(예를 들어, 1130)의 제1 부분(예를 들어, 1134b)에 대응하는 3차원 환경(예를 들어, 1104)의 부분을 점유하는 동안, 그리고 개개의 실제 객체(예를 들어, 1126)의 표현(예를 들어, 1130)의 제2 부분(예를 들어, 1134b)의 디스플레이가 수정되는 동안, 전자 디바이스(예를 들어, 101)는 하나 이상의 입력 디바이스들을 통해, 3차원 환경(예를 들어, 1104)에서 개개의 가상 객체(예를 들어, 1106)를 추가로 이동시키라는 요청에 대응하는 추가적인 입력(예를 들어, 제2 이동 입력을 검출하는 것 또는 이동 입력의 계속을 검출하는 것)을 수신한다(1266). 도 11c에서와 같은 일부 실시예들에서, 추가적인 입력(1268)을 수신하는 것에 응답하여, 전자 디바이스(예를 들어, 101)는 추가적인 입력(1270)에 따라 3차원 환경(예를 들어, 1104)에서 개개의 가상 객체(예를 들어, 1106)를 추가로 이동시킨다. 도 11c에서와 같은 일부 실시예들에서, 추가적인 입력을 수신한 것에 응답하여(1268), 개개의 가상 객체(예를 들어, 1106)의 이동이, 개개의 가상 객체(예를 들어, 1106)의 적어도 제2 부분으로 하여금 3차원 환경(예를 들어, 1104)에서의 개개의 실제 객체(예를 들어, 1126)의 표현(예를 들어, 1130)의 제1 부분과 상이한 제3 부분에 대응하는 3차원 환경(예를 들어, 1104)의 제2 부분을 점유하게 한다는 결정에 따라, 전자 디바이스(예를 들어, 101)는 개개의 실제 객체(예를 들어, 1126)의 표현(예를 들어, 1130)의 제3 부분을 둘러싸는 개개의 실제 객체(예를 들어, 1126)의 표현(예를 들어, 1130)의 제2 부분과 상이한 제4 부분(예를 들어, 1134b)의 디스플레이를 수정한다(1272). 일부 실시예들에서, 실제 객체의 표현의 제4 부분의 디스플레이를 수정하는 것은 그 부분을 블러링 및/또는 어둡게 하는 것을 포함한다. 일부 실시예들에서, 수정된 외관으로 디스플레이되는 실제 객체의 부분은 가상 객체와 일치하거나 중첩하는 실제 객체의 부분에 의존한다. 예를 들어, 전자 디바이스는 가상 객체와 일치하거나 중첩하는 실제 객체의 부분에 인접한 실제 객체의 부분의 외관을 수정한다. 다른 예로서, 가상 객체의 제1 부분이 실제 객체의 제1 부분과 일치하거나 중첩되는 동안, 전자 디바이스는 수정된 외관으로 실제 객체의 제1 부분에 근접한 가상 객체의 제2 부분을 디스플레이하고 전체 가상 객체를 디스플레이한다. 이 예에서, 가상 객체의 제2의 더 큰 부분이 실제 객체의 제3 부분과 일치하거나 중첩되도록 가상 객체를 이동시키기 위한 입력에 응답하여, 전자 디바이스는 수정된 외관으로 실제 객체의 제4 부분을 디스플레이하고 전체 가상 객체를 디스플레이한다. 일부 실시예들에서, 전자 디바이스가 가상 객체와 일치하거나 중첩하는 실제 객체의 부분을 변경하는 방식으로 가상 객체를 이동시키기 위한 입력을 검출할 때, 전자 디바이스는 실제 객체와 현재 일치하거나 중첩하는 실제 객체의 부분에 근접한 실제 객체의 부분의 디스플레이를 수정하기 위해 실제 객체의 디스플레이를 업데이트한다.
가상 객체의 위치에 의존하여 수정된 외관으로 디스플레이되는 실제 객체의 부분을 수정하는 전술된 방식은 감소된 시각적 클러터 및 인지 부조화로 가상 객체를 디스플레이하는 효율적인 방식을 제공하고, 이는 추가적으로 전력 사용량을 감소시키고, 사용 시에 에러들을 감소시키면서, (예를 들어, 사용자의 불편함 및/또는 산만함을 감소시킴으로써) 사용자가 전자 디바이스를 더 빠르고 효율적으로 사용할 수 있게 함으로써, 전자 디바이스의 배터리 수명을 개선한다.
도 11c에서와 같은 일부 실시예들에서, 개개의 실제 객체(예를 들어, 1126)의 표현(예를 들어, 1130)의 제2 부분(예를 들어, 1134a)은 개개의 가상 객체(예를 들어, 1106)의 경계의 임계 거리 내에 있는 개개의 실제 객체(예를 들어, 1126)의 표현(예를 들어, 1130)의 하나 이상의 부분들을 포함하고, 개개의 가상 객체(예를 들어, 1106)의 경계의 임계 거리보다 멀리 있는 개개의 실제 객체(예를 들어, 1126)의 표현(예를 들어, 1130)의 하나 이상의 부분들을 포함하지 않는다(1274). 일부 실시예들에서, 실제 객체의 부분들이 수정되는(예를 들어, 블러링 및/또는 어두워지는) 정도는 실제 객체와 가상 객체의 개개의 부분들 사이의 거리에 의존한다. 예를 들어, 가상 객체에 바로 인접한 실제 객체의 부분은 가상 객체로부터 더 멀리 떨어진 실제 객체의 부분보다 더 많이 수정된다. 일부 실시예들에서, 실제 객체로부터 멀리 임계 거리(예를 들어, 0.1, 0.2, 0.3, 0.4, 0.5 미터 등)에 있는 실제 객체의 하나 이상의 부분들은 수정되지 않은 외관으로 디스플레이된다.
가상 객체의 임계 거리 내에 있는 실제 객체의 부분들을 수정하는 전술된 방식은 실제 객체의 다른 부분들의 수정되지 않은 디스플레이를 유지하는 효율적인 방식을 제공하고, 이는 추가적으로 전력 사용량을 감소시키고, 사용 시에 에러들을 감소시키면서, (예를 들어, 사용자가 실제 객체의 수정되지 않은 부분들을 볼 수 있게 함으로써) 사용자가 전자 디바이스를 더 빠르고 효율적으로 사용할 수 있게 함으로써, 전자 디바이스의 배터리 수명을 개선한다.
도 13a 내지 도 13c는 일부 실시예들에 따른, 전자 디바이스가 하나 이상의 가상 객체들 및/또는 다른 사용자들을 포함하는 3차원 환경에서 사용자(예를 들어, 추가적인 사용자)에 대한 위치를 자동으로 선택하는 방법의 예들을 예시한다.
도 13a는 디스플레이 생성 컴포넌트들(120a 및 120b)을 통해 사용자 인터페이스들 상에 3차원 환경(1304)을 디스플레이하는 전자 디바이스들(101a 및 101b)을 예시한다. 도 1 내지 도 6을 참조하여 앞서 설명된 바와 같이, 전자 디바이스들(101a 및 101b)은 선택적으로 디스플레이 생성 컴포넌트(120a 및 120b)(예를 들어, 터치 스크린) 및 복수의 이미지 센서들(314a 및 314b)을 포함한다. 이미지 센서들(314)은, 선택적으로, 가시광 카메라, 적외선 카메라, 깊이 센서, 또는 사용자가 전자 디바이스들(101a 및 101b)과 상호작용하는 동안 전자 디바이스들(101a 및 101b)이 사용자 또는 사용자의 일부의 하나 이상의 이미지들을 캡처하는 데 사용할 수 있을 임의의 다른 센서 중 하나 이상을 포함한다. 일부 실시예들에서, 디스플레이 생성 컴포넌트(120a 및/또는 120b)는 사용자의 손의 제스처들 및 이동들을 검출할 수 있는 터치 스크린이다. 일부 실시예들에서, 아래에 도시된 사용자 인터페이스들은 또한, 사용자들에게 사용자 인터페이스들을 디스플레이하는 디스플레이 생성 컴포넌트들, 및 물리적 환경들 및/또는 사용자들의 손들의 이동들(예를 들어, 사용자들로부터 외향으로 향하는 외부 센서들) 및/또는 사용자들의 시선들(예를 들어, 사용자들의 얼굴을 향해 내향으로 향하는 내부 센서들)을 검출하기 위한 센서들을 포함하는 머리 장착형 디스플레이들 상에 구현될 수 있다.
도 13a에 도시된 바와 같이, 3차원 환경(1304)은 사용자 A(1314A), 사용자 B(1314B), 앱 A의 표현(1306), 앱 B의 표현(1308) 및 앱 C의 표현(1322)을 포함한다. 사용자 A(1314A)는 3차원 환경(1304)의 호스트이다. 일부 실시예들에서, 3차원 환경(1304)의 호스트는 3차원 환경(1304)에 참여할 수 있는 사용자들을 승인 또는 거부하는 능력, 하나 이상의 가상 객체들의 디스플레이를 승인 또는 거부하는 능력, 3차원 환경(1304)을 닫기 위한 전력, 및/또는 프라이버시 설정들, 디스플레이 설정들 등과 같은 3차원 환경(1304)의 하나 이상의 다른 설정들에 대한 제어와 같은 3차원 환경(1304)의 태양들에 대한 제어를 갖는다. 일부 실시예들에서, 앱 A 및 앱 B의 표현들(1306 및 1308)은 각각, 표현들의 일면 측 상에 콘텐츠를 포함하는 단방향 표현들이다. 일부 실시예들에서, 앱 C의 표현(1322)은 다수의 측면들로부터 가시적인 다방향성 표현이다. 일부 실시예들에서, 각각, 앱들 A, B 및 C의 표현들(1306, 1308, 1322)의 배치 및 배향은 도 9a 내지 도 10t를 참조하여 전술된 바와 같이 3차원 환경(1304)에서 사용자 A(1314A) 및 사용자 B(1314B)의 위치들에 기초하여 자동으로 선택될 수 있다.
일부 실시예들에서, 사용자 A(1314A)는 3차원 환경(1304)을 보고 상호작용하기 위해 전자 디바이스 A(101a)를 사용한다. 전자 디바이스 A(101a)는 사용자 A(1314A)의 시야(1328a) 내의 3차원 환경(1304)의 부분들의 디스플레이를 포함하여, 사용자 A(1314A)의 시점으로부터의 3차원 환경(1304)을 디스플레이한다. 따라서, 도 13a에 도시된 바와 같이, 전자 디바이스(101a)는 앱 A의 표현(1306), 앱 C의 표현(1322) 및 사용자 B(1314B)의 표현을 디스플레이한다.
마찬가지로, 일부 실시예들에서, 사용자 B(1314B)는 3차원 환경(1304)을 보고 상호작용하기 위해 전자 디바이스 B(101b)를 사용한다. 전자 디바이스 B(101b)는 사용자 B(1314B)의 시야(1328b) 내의 3차원 환경(1304)의 부분들의 디스플레이를 포함하여, 사용자 B(1314B)의 시점으로부터의 3차원 환경(1304)을 디스플레이한다. 따라서, 도 13a에 도시된 바와 같이, 전자 디바이스(101b)는 앱 B의 표현(1308), 앱 C의 표현(1322) 및 사용자 A(1314A)의 표현을 디스플레이한다.
일부 실시예들에서, 추가적인 사용자들이 3차원 환경(1304)에 참여할 수 있다. 예를 들어, 사용자 A(1314A) 및/또는 사용자 B(1314B)는 사용자 C(1314C)를 3차원 환경(1304)으로 초대할 수 있다. 다른 예로서, 사용자 C(1314C)는 사용자 A(1314A) 및/또는 사용자 B(1314B)로부터 3차원 환경(1304)에 대한 액세스를 요청한다. 일부 실시예들에서, 사용자 A(1314A)가 3차원 환경(1304)의 호스트이기 때문에, 사용자 A(1314A)는 3차원 환경(1304)에 사용자들을 추가하라는 요청들을 승인 또는 거부하는 능력을 갖는다(예를 들어, 사용자 C(1314C)를 3차원 환경(1304)에 추가하라는 요청을 승인 또는 거부함). 도 13a에 도시된 바와 같이, 전자 디바이스 A(101a)는 제3 사용자가 3차원 환경(1304)에 참여하는 표시(1330a)를 검출하고, 전자 디바이스 B(101b)는 제3 사용자가 3차원 환경(1304)에 참여하는 표시(1330b)를 검출한다.
도 13b는 사용자 C(1314C)가 3차원 환경(1304)에 참여한 후의 3차원 환경(1304)을 예시한다. 전자 디바이스들(101a 및 101b)은, 사용자 C(1314C)가 사용자 A(1314A)의 시야(1328a) 및 사용자 B(1314B)의 시야(1328b)에 있기 때문에 사용자 C(1314C)의 표현을 포함하도록 3차원 환경(1304)의 디스플레이를 업데이트한다. 도 13b에 도시된 바와 같이, 사용자 A(1314A) 및 사용자 B(1314B)의 위치들 및 배향들 및 앱들 A, B 및 C의 표현들(1306, 1308 및 1322)은 각각, 사용자 C(1314C)가 3차원 환경(1304)에 참여하는 것에 응답하여 동일하게 유지된다. 도 9a 내지 도 10t를 참조하여 전술된 바와 같이, 애플리케이션들의 표현들의 배향들은 선택적으로, 애플리케이션의 표현의 디스플레이를 이동시키거나 개시하라는 요청을 검출하는 것에 응답하여 3차원 환경(1304)에서 사용자 A(1314A), 사용자 B(1314B) 및 사용자 C(1314C)의 위치들에 기초하여 자동으로 선택될 것이다.
일부 실시예들에서, 전자 디바이스들(101a 및/또는 101b) 및/또는 사용자 C(1314C)의 전자 디바이스는 하나 이상의 기준들에 기초하여 3차원 환경(1304)에서 사용자 C(1314C)의 초기 위치를 자동으로 결정할 수 있다. 일부 실시예들에서, 사용자 C(1314C)의 배치는 3차원 환경(1304)에서 사용자 A(1314A) 및 사용자 B(1314B)의 위치들 및 앱들 A, B 및 C의 표현들(1306, 1308 및 1322)에 각각 기초한다.
일부 실시예들에서, 사용자 C(1314C)의 초기 배치는, 사용자 C(1314C)가 3차원 환경(1304) 내의 다른 사용자들을 볼 수 있게 하도록 선택된다(예를 들어, 사용자 A(1314A) 및 사용자 B(1314B)는 사용자 C(1314C)의 시야 내에 있다). 일부 실시예들에서, 사용자 C(1314C)의 초기 배치는 3차원 환경(1304)에서 사용자 A(1314A) 및 사용자 B(1314B)의 제1 임계 거리(예를 들어, 0.5, 1, 2, 3 미터 등) 내에 있다. 예를 들어, 도 13b에 도시된 바와 같이, 사용자 C(1314C)는 사용자 A(1314A) 및 사용자 B(1314B)에게 가시적인 위치에 배치된다(예를 들어, 사용자 C(1314C)의 표현은 전자 디바이스 A(101A) 및 전자 디바이스(101A)에 의해 디스플레이된다). 따라서, 이 예에서, 사용자 C(1314C)는 사용자 C(1314C)(도시되지 않음)의 전자 디바이스가 유사한 방식으로 사용자 A(1314A) 및 사용자 B(1314B)의 표현들을 디스플레이할 수 있을 정도로 사용자 A(1314A) 및 사용자 B(1314B)와 충분히 가깝다. 일부 실시예들에서, 사용자 C(1314C)의 초기 배치는 사용자 C(1314C)를 사용자 A(1314A) 또는 사용자 B(1314B)에 너무 가깝게(예를 들어, 0.2, 0.5, 1 미터 등과 같은 임계 거리 내에) 배치하는 것을 회피하도록 선택된다. 일부 실시예들에서, 새로운 사용자가 3차원 환경에 추가될 때, 새로운 사용자는 다른 사용자들로부터 적어도 제2 임계 거리(예를 들어, 0.2, 0.5, 1 미터 등)에 있다. 예를 들어, 3차원 환경(1304)에서의 사용자 C(1314C)의 초기 배치는 사용자 A(1314A) 및 사용자 B(1314B)로부터 제1 임계치와 제2 임계치 사이에 있다. 일부 실시예들에서, 제1 임계치는 제2 임계치보다 크다.
일부 실시예들에서, 3차원 환경(1304)에서의 사용자 C(1314C)의 초기 배치는 사용자 C(1314C)가 앱들 A, B 및 C의 표현들(1306, 1308 및 1322)을 각각 보고 상호작용할 수 있게 하도록 선택된다. 예를 들어, 도 13b에 도시된 바와 같이, 사용자 C(1314C)는 초기에 앱 C(1322)의 표현에 인접하게 배치된다. 또한, 사용자 C(1314C)는 선택적으로, 3차원 환경(1304)에서 사용자 C(1314C)의 초기 위치로부터 앱 A 및 앱 B의 표현들(1306 및 1308)을 보고 상호작용할 수 있다(예를 들어, 앱 C의 표현(1322)은 표현들(1306 및 1308)에 대한 사용자 C의 액세스 및/또는 뷰를 방해하지 않는다). 예를 들어, 도 13b에서 사용자 C(1314C)의 위치는 사용자 A(1314A) 및 사용자 B(1314B)의 표현들(1306 및 1308)의 동일한 측면(예를 들어, 표현들(1306 및 1308)의 콘텐츠를 포함하는 표현들(1306 및 1308)의 측면) 상에 있다.
일부 실시예들에서, 사용자 C(1314C)의 초기 배치는 3차원 환경(1304)의 호스트인 사용자(예를 들어, 사용자 A(1314A))의 임계 거리(예를 들어, 0.5, 1, 2, 3 미터 등) 내에 있도록 선택된다. 예를 들어, 3차원 환경(1304)에서의 사용자 C(1314C)의 배치는 3차원 환경(1304)의 호스트인 사용자 A(1314A)의 임계 거리 내에 있다.
일부 실시예들에서, 사용자 C(1314C)의 초기 배치는 3차원 환경(1304) 내의 사용자들 및/또는 가상 객체들의 다른 사용자들의 뷰들을 방해하는 것을 회피하도록 선택된다. 예를 들어, 3차원 환경(1304)에서의 사용자 C(1314C)의 배치는 사용자 A(1314A)와 사용자 B(1314B) 사이에 있지 않고, 다른 사용자와 각각 앱들 A, B 및 C의 표현들(1306, 1308 및 1322) 중 임의의 표현 사이에 있지 않다.
일부 실시예들에서, 3차원 환경(1304)에서의 새로운 사용자의 초기 배치는, 수평선들이 3차원 환경(1304)의 사용자들 모두에 대해 정렬되도록 선택된다. 예를 들어, 3차원 환경(1304)의 바닥, 벽들, 천장 등과 같은 표면들은 모든 사용자들에 대해 동일한 정렬로 디스플레이된다. 다른 예로서, 전자 디바이스들(101a 및 101b)이 3차원 환경(1304)에서 이러한 표면들을 디스플레이했다면, 이러한 표면들의 정렬은 전자 디바이스들(101a 및 101b) 둘 모두에 대해 동일할 것이다.
일부 실시예들에서, 전자 디바이스들(101a 및/또는 101b)은 전술된 사용자 배치 규칙들에 따라 3차원 환경(1304)에서 새로운 사용자들에 대한 초기 위치들을 선택한다. 일부 실시예들에서, 전자 디바이스들(101a 및/또는 101b)은 사용자 배치 규칙들 모두를 따르는 새로운 사용자에 대한 위치를 선택할 수 있다. 일부 실시예들에서, 사용자 배치 규칙들 모두를 따를 어떤 위치들도 3차원 환경(1304)에 존재하지 않으면, 전자 디바이스들(101a 및/또는 101b)은 대부분의 규칙들 및/또는 가장 우선순위화된 규칙들을 충족하는 위치를 선택한다(예를 들어, 규칙들은 3차원 환경(1304)에서 각각의 개방 위치를 채점하도록 가중되고/되거나 랭크되고, 최고 점수를 갖는 위치에서 새로운 용도가 3차원 환경(1304)에 추가된다).
추가적인 사용자들의 배치는 선택적으로 유사한 기준들에 의해 유사하게 제어된다. 도 13b에 도시된 바와 같이, 전자 디바이스 A(101a)는 제4 사용자가 3차원 환경(1304)에 참여하는 표시(1332a)를 검출하고, 전자 디바이스 B(101b)는 제4 사용자가 3차원 환경(1304)에 참여하는 표시(1332b)를 검출한다. 일부 실시예들에서, 도 13a를 참조하여 전술된 바와 같이, 표시들(1332a 및 1332b)은 표시들(1330a 및 1330b)이 검출된 방식과 유사한 방식들로 검출된다.
도 13c는 사용자 D(1314D)가 3차원 환경(1304)에 참여한 후의 3차원 환경(1304)을 예시한다. 사용자 D(1314D)가 사용자 B(1314B)의 시야(1328b) 내에 있기 때문에, 전자 디바이스(101b)는 사용자 D(1314D)의 표현을 디스플레이하기 위해 3차원 환경(1304)의 디스플레이를 업데이트한다. 사용자 D(1314D)가 사용자 A(1314A)의 시야(1328a) 내에 있지 않기 때문에, 전자 디바이스 A(101a)는 사용자 D(1314D)의 표현을 디스플레이하지 않는다. 일부 실시예들에서, 사용자 A(1314A)가 사용자 D(1314D)를 포함하도록 3차원 환경(1304)에서 자신들의 시야(1328a)를 (예를 들어, 전자 디바이스 A(101a)를 회전시킴으로써) 변경했다면, 전자 디바이스 A(101a)는 사용자 D(1314D)의 표현을 디스플레이할 것이다.
일부 실시예들에서, 사용자 D(1314D)의 초기 배치는 사용자 C(1314C)의 초기 배치와 동일한 규칙들을 따른다. 그러나, 일부 상황들에서, 도 13b를 참조하여 전술된 배치 규칙들 모두를 따르는 사용자 D(1314D)의 어떠한 가능한 배치도 존재하지 않는다. 예를 들어, 다른 사용자들(1314A-C) 중 하나에 너무 가깝거나 앱 A의 표현(1306) 또는 앱 B의 표현(1308)에 대한 다른 사용자의 뷰를 방해하지 않으면서 둘 모두 앱 C의 표현(1322)의 임계 거리 내에 있는 3차원 환경(1304) 내의 사용자 D(1314D)에 대한 어떠한 이용가능한 위치도 없다. 도 13c에 도시된 바와 같이, 사용자 D(1314D)의 초기 배치는 사용자 D가 앱들 A 및 B의 표현들(1306 및 1308)을 볼 수 있게 하고 선택적으로 다른 사용자들(1314A-C)로부터 제1 및 제2 임계 거리들 사이에 있지만, 사용자 D(1314D)는 사용자 A(1314A)가 사용자 D(1314D)와 앱 C의 표현(1322) 사이에 있도록 배치된다. 따라서, 예를 들어, 배치 규칙들 중 일부는 준수되었고 다른 것들은 위반되었다. 일부 실시예들에서, 전자 디바이스들(101a 및/또는 101b)은 전술된 사용자 배치 규칙들에 기초하여 사용자 D(1314D)에 대한 가능한 초기 위치들의 열 맵을 생성한다. 일부 실시예들에서, 배치 규칙들은, 배치 규칙들 전부를 따르는 임의의 이용가능한 위치들이 존재하지 않을 수 있더라도, 전자 디바이스들(101a 및/또는 101b)이 사용자 D(1314D)에 대한 초기 배치를 선택할 수 있게 하도록 중요도에 의해 랭킹 및/또는 가중된다. 일부 실시예들에서, 모든(또는 적어도 1, 2, 3 등과 같은 임계 수의) 배치 규칙들을 따르는 어떠한 위치들도 존재하지 않을 때, 전자 디바이스(들)는 사용자(1314D)를 미리 결정된 위치에 (예를 들어, 3차원 환경(1304)에 대해 또는 3차원 환경(1304)의 호스트인 사용자 A(1314A)의 좌측 또는 뒤에 사용자 D(1314D)를 배치하는 것과 같이 사용자들 중 하나 이상에 대해) 배치한다.
일부 실시예들에서, 하나 이상의 전자 디바이스들(101a 및 101b)의 물리적 환경은 가구 또는 다른 객체들의 표현들을 포함하는 3차원 환경(1304)에서 상호작용하는 사용자들을 시뮬레이션하기 위해 새로운 사용자들이 그 위에 또는 주위에 배치되는 가구 또는 다른 객체들을 포함한다. 예를 들어, 전자 디바이스(101a 및/또는 101b)는 도 11a 내지 도 11c에 예시된 방식으로 실세계 소파(1124)의 표현(1128) 또는 실세계 벽(1126)의 표현(1130)을 디스플레이한다. 일부 실시예들에서, 전자 디바이스는 3차원 환경에서 가구 또는 다른 실제 객체들(예를 들어, 패스-스루 비디오)의 포토리얼리스틱 표현들을 디스플레이하거나, 또는 가구 또는 다른 실제 객체들은 디스플레이 생성 컴포넌트의 투명 부분을 통해 가시적이다. 일부 실시예들에서, 새로운 사용자들은 객체들 상에 또는 주위에 의미론적으로 배치된다. 예를 들어, 물리적 환경이 의자들이 있는 테이블을 포함하면, 전자 디바이스는 새로운 사용자들이 테이블에 앉아 있는 것처럼 보이도록 새로운 사용자들을 배치하여, 새로운 사용자들이 추가됨에 따라 순차적으로 테이블 주위의 좌석들을 채운다. 다른 예로서, 물리적 환경이 소파(1124)를 포함하면, 전자 디바이스는 새로운 사용자들이 소파(1124)의 표현(1128) 상에 앉아 있는 것처럼 보이도록 새로운 사용자들을 배치하여, 새로운 사용자들이 추가됨에 따라 소파 상의 이용가능한 착석 공간들을 순차적으로 채운다. 더욱이, 일부 실시예들에서, 전자 디바이스는, 예를 들어, 실제 객체들과 일치하는 위치들에 또는 의미론적으로 비논리적인 위치들에 사용자들을 배치하는 것을 회피함으로써 3차원 환경에서 실제 객체들의 표현들과 충돌하는 위치들에 새로운 사용자들을 배치하는 것을 회피한다.
따라서, 도 13a 내지 도 13c를 참조하여 전술된 바와 같은 일부 실시예들에서, 사용자들이 초기에 3차원 환경(1304)에 참여할 때, 사용자들은 사용자 배치 규칙들에 따라 자동으로 배치된다. 일부 실시예들에서, 초기 배치 규칙들은 또한 사용자의 시점으로부터 3차원 환경(1304)을 재설정하라는 요청에 응답하여 사용자의 위치를 업데이트하는 데 사용된다. 일부 실시예들에서, 사용자가 3차원 환경(1304) 내의 다른 사용자들 및/또는 가상 객체들(예를 들어, 각각 앱들 A, B, 및 C의 표현(1306, 1308 및 1322))로부터 멀리 적어도 임계 거리(예를 들어, 3, 4, 5, 10 미터 등) 이동했다는 결정에 따라, 그 사용자에 대한 전자 디바이스는 3차원 환경(1304)을 재설정하기 위한 옵션을 디스플레이한다. 일부 실시예들에서, 3차원 환경(1304)을 재설정하기 위한 옵션의 선택을 검출하는 것에 응답하여, 전자 디바이스는 전술된 사용자 배치 규칙들을 사용하여 선택된 위치로 사용자의 위치를 업데이트한다. 이러한 방식으로, 사용자는, 예를 들어, 3차원 환경(1304) 내의 다른 사용자들 및/또는 가상 객체들과 상호작용하는 다른 사용자들의 능력들을 방해하지 않으면서, 그들이 3차원 환경(1304)에서 사용자들 및/또는 가상 객체들과 상호작용할 수 있는 위치에 배치된다. 일부 실시예들에서, 사용자의 시점으로부터의 3차원 환경(1304)은 재설정되지만, 다른 사용자들 및 가상 객체들의 위치들은 변경되지 않는다. 일부 실시예들에서, 다른 사용자들은 사용자가 업데이트된 위치로 점프하거나 순간이동하는 것을 보지만, 그렇지 않으면, 3차원 환경(1304)과 상호작용하는 동안 방해받지 않는다.
도 14a 내지 도 14l은 일부 실시예들에 따른 하나 이상의 가상 객체들 및/또는 다른 사용자들을 포함하는 3차원 환경에서 사용자에 대한 위치를 자동으로 선택하는 방법을 예시하는 흐름도이다. 일부 실시예들에서, 본 방법(1400)은, 디스플레이 생성 컴포넌트(예컨대, 도 1, 도 3 및 도 4의 디스플레이 생성 컴포넌트(120))(예컨대, 헤드업 디스플레이, 디스플레이, 터치스크린, 프로젝터 등) 및 하나 이상의 카메라들(예컨대, 사용자의 손에서 하향으로 향하는 카메라(예컨대, 컬러 센서들, 적외선 센서들, 및 다른 심도 감지 카메라들) 또는 사용자의 머리로부터 전방으로 향하는 카메라)을 포함하는 컴퓨터 시스템(예컨대, 태블릿, 스마트폰, 웨어러블 컴퓨터 또는 머리 장착형 디바이스와 같은 도 1의 컴퓨터 시스템(101))에서 수행된다. 일부 실시예들에서, 방법(800)은, 비일시적 컴퓨터 판독가능 저장 매체에 저장되며 컴퓨터 시스템의 하나 이상의 프로세서들, 예를 들어, 컴퓨터 시스템(101)의 하나 이상의 프로세서들(202)(예를 들어, 도 1a의 제어 유닛(110))에 의해 실행되는 명령어들에 의해 통제된다. 방법(1400)에서의 일부 동작들이 선택적으로 조합되거나, 및/또는 일부 동작들의 순서가 선택적으로 변경된다.
일부 실시예들에서, 방법(1400)은 디스플레이 생성 컴포넌트 및 하나 이상의 입력 디바이스들(예컨대, 모바일 디바이스(예컨대, 태블릿, 스마트폰, 미디어 플레이어 또는 웨어러블 디바이스), 또는 컴퓨터)과 통신하는 전자 디바이스에서 수행된다. 일부 실시예들에서, 디스플레이 생성 컴포넌트는 전자 디바이스(선택적으로, 터치 스크린 디스플레이), 모니터, 프로젝터, 텔레비전, 또는 하드웨어 컴포넌트(선택적으로, 통합형 또는 외장형)와 같은, 사용자 인터페이스를 투영하기 위한 또는 사용자 인터페이스가 하나 이상의 사용자들에게 가시적이 되게 하기 위한 외장형 디스플레이 등과 통합된 디스플레이이다. 일부 실시예들에서, 하나 이상의 입력 디바이스들은 사용자 입력을 수신하고(예를 들어, 사용자 입력을 캡처하는 것, 사용자 입력을 검출하는 것 등) 사용자 입력과 연관된 정보를 전자 디바이스에 송신할 수 있는 전자 디바이스 또는 컴포넌트를 포함한다. 입력 디바이스들의 예들은, 터치 스크린, (예를 들어, 외부의) 마우스, (선택적으로 통합된 또는 외부의) 트랙패드, (선택적으로 통합된 또는 외부의) 터치패드, (예를 들어, 외부의) 원격 제어 디바이스, (예를 들어, 전자 디바이스와 별개인) 다른 모바일 디바이스, (예를 들어, 외부의) 핸드헬드 디바이스, (예를 들어, 외부의) 제어기, 카메라, 깊이 센서, 눈 추적 디바이스 및/또는 모션 센서(예를 들어, 손 추적 디바이스, 손 모션 센서) 등을 포함한다.
도 13a에서와 같은 일부 실시예들에서, 전자 디바이스(예를 들어, 101)는 디스플레이 생성 컴포넌트(120)를 통해, 하나 이상의 제2 위치들에 하나 이상의 사용자들(예를 들어, 1314A) 및 (예를 들어, 1314B) 및 하나 이상의 객체들(예를 들어, 1306), (예를 들어, 1308) 및 (예를 들어, 1322)와 연관된 하나 이상의 제1 위치들을 포함하는 3차원 환경(예를 들어, 1304)을 디스플레이한다(1402). 일부 실시예들에서, 3차원 환경은 디바이스에 의해 생성, 디스플레이, 또는 다른 방식으로 볼 수 있게 된다(예를 들어, 3차원 환경은 가상 현실(VR) 환경, 혼합 현실(MR) 환경 또는 증강 현실(AR) 환경 등과 같은 컴퓨터 생성 현실(CGR) 환경임). 일부 실시예들에서, 제1 사용자와 연관된 각각의 개개의 제1 위치는 제1 사용자와 연관된 전자 디바이스가 3차원 환경을 디스플레이하는 시점에 대응한다. 일부 실시예들에서, 제1 위치들과 제2 위치들의 상대적 위치들은 모든 사용자들에 대해 동일하다. 일부 실시예들에서, 하나 이상의 객체들은 애플리케이션들의 표현들 및/또는 사용자 인터페이스들, 파일들의 표현들, 또는 다른 가상 객체들 중 하나 이상이다. 일부 실시예들에서, 하나 이상의 객체들은 하나 이상의 사용자들에게 가시적이다.
도 13a에서와 같은 일부 실시예들에서, 3차원 환경(예를 들어, 1104)을 디스플레이하는 동안, 전자 디바이스(예를 들어, 101)는 3차원 환경(예를 들어, 1304)에 추가적인 사용자를 추가하라는 요청에 대응하는 입력(예를 들어, 1330)을 검출한다(1404). 일부 실시예들에서, 요청은 3차원 환경에 포함된 객체들(및 사용자들의 표현들)을 보기 위한 추가적인 사용자에 대한 초대이다. 일부 실시예들에서, 요청은 3차원 환경에 포함된 객체들(및 사용자들의 표현들)을 보기 위한 추가적인 사용자로부터의 요청의 수락이다.
일부 실시예들에서, 도 13a에서와 같이, 추가적인 사용자(예를 들어, 1314C)를 3차원 환경(예를 들어, 1304)에 추가하라는 요청에 대응하는 입력(예를 들어, 1330)을 검출하는 것에 응답하여, 전자 디바이스(예를 들어, 101)는 3차원 환경(예를 들어, 1304) 내의 개개의 위치에서 추가적인 사용자(예를 들어, 1314C)의 표현을 포함하도록 3차원 환경(예를 들어, 1304)을 업데이트하고(1406), 개개의 위치는 하나 이상의 사용자들(예를 들어, 1314A) 및 (예를 들어, 1314B)와 연관된 하나 이상의 제1 위치들 및 하나 이상의 제2 위치들에서의 하나 이상의 객체들(예를 들어, 1306) (예를 들어, 1308) 및 (예를 들어, 1322)에 기초한다. 일부 실시예들에서, 개개의 위치는 사용자들의 제1 위치들에 대한 개개의 위치에 기초하여 충족되는 하나 이상의 기준들 및 객체들의 제2 위치들에 대한 개개의 위치에 기초하여 충족되는 하나 이상의 기준들을 충족한다. 일부 실시예들에서, 사용자들 이외의 객체들(예를 들어, 애플리케이션들의 표현들, 파일들의 표현들, 다른 가상 객체들)이 초기에 디스플레이되는 위치는 사용자의 재배향들이 초기에 디스플레이되는 위치를 평가하는 데 사용된 기준들과 상이한 기준들을 사용하여 평가된다. 일부 실시예들에서, 객체들의 초기 위치는 전술된 방법들(800 및 1000)에 따라 결정될 수 있다. 일부 실시예들에서, 추가적인 사용자를 3차원 환경에 추가하라는 요청에 대응하는 입력을 검출하는 것에 응답하여, 전자 디바이스는 다른 사용자들과 연관된 위치들 및 3차원 환경 내의 객체들의 위치들에 기초하는 위치에 추가적인 사용자의 표현을 포함하도록 3차원 환경을 업데이트한다. 일부 실시예들에서, 하나 이상의 객체들은 추가적인 사용자에게 가시적이다.
사용자들의 하나 이상의 제1 위치들 및 객체들의 하나 이상의 제2 위치들에 기초하여 추가적인 사용자의 표현을 디스플레이할 개개의 위치를 선택하는 전술된 방식은 추가적인 사용자에게 3차원 환경을 제시하는 효율적인 방식을 제공하고, 이는 추가적으로 전력 사용량을 감소시키고, 사용 시에 에러들을 감소시키면서, 사용자가 전자 디바이스를 더 빠르고 효율적으로 사용할 수 있게 함으로써, 전자 디바이스의 배터리 수명을 개선한다.
도 13b에서와 같은 일부 실시예들에서, 3차원 환경(예를 들어, 1304) 내의 개개의 위치에서 추가적인 사용자(예를 들어, 1314C)의 표현을 포함하도록 3차원 환경(예를 들어, 1304)을 업데이트하는 것은 하나 이상의 사용자들(예를 들어, 1314A 및 1314B)과 연관된 하나 이상의 제1 위치들을 변경하지 않으면서 수행된다(1408). 일부 실시예들에서, 전자 디바이스는 3차원 환경에서 하나 이상의 제1 위치들에 사용자들의 표현들의 디스플레이를 유지하고, 사용자들의 전자 디바이스(들)는 3차원 환경에 제1 사용자가 추가되기 전에 3차원 환경이 디스플레이된 동일한 시점을 갖는 3차원 환경을 계속 디스플레이한다.
3차원 환경 내의 제1 위치들에서의 사용자들의 위치들을 업데이트하지 않으면서 제1 사용자를 포함하도록 3차원 환경을 업데이트하는 전술된 방식은 3차원 환경의 제1 위치들과 연관된 사용자들의 관점들로부터 3차원 환경의 디스플레이를 유지하는 효율적인 방식을 제공하고, 이는 추가적으로 전력 사용량을 감소시키고, 사용 시에 에러들을 감소시키면서, (예를 들어, 3차원 환경에 제1 사용자를 추가하기 전에 객체들 및 사용자들의 표현들이 디스플레이되는 위치들에 이들을 디스플레이하는 데 필요한 입력들을 감소시킴으로써) 사용자가 전자 디바이스를 더 빠르고 효율적으로 사용할 수 있게 함으로써, 전자 디바이스의 배터리 수명을 개선한다.
일부 실시예들에서, 하나 이상의 객체들(예를 들어, 1306, 1308 및 1322)은 3차원 환경(예를 들어, 1304) 내의 제1 위치에 있는 제1 객체를 포함하고, 제1 객체는 하나 이상의 사용자들 중 제1 사용자와 연관되고(예를 들어, 객체들(예를 들어, 1306, 1308 및 1322) 중 하나가 사용자 A(예를 들어, 1314A) 또는 사용자 B(예를 들어, 1314B) 하나에게만 액세스가능한 경우), 3차원 환경(예를 들어, 1304) 내의 개개의 위치에서 추가적인 사용자(예를 들어, 1314C)의 표현을 포함하도록 3차원 환경(예를 들어, 1304)을 업데이트하는 것은 3차원 환경(예를 들어, 1304) 내의 제1 객체의 제1 위치를 변경하지 않으면서 수행된다(1410). 일부 실시예들에서, 전자 디바이스는 제1 사용자와 연관된 입력에 응답하여 제1 객체의 디스플레이를 초기화하였다. 일부 실시예들에서, 제1 객체는 3차원 환경에서 다른 사용자들에게 액세스가능하지 않으면서 제1 사용자에게 액세스가능하다(예를 들어, 가시적임). 일부 실시예들에서, 제1 객체는 3차원 환경 상의 사용자들 중 하나 초과 또는 전부에게 액세스가능하다(예를 들어, 가시적임).
추가적인 사용자를 3차원 환경에 추가하면서 3차원 환경의 제1 위치에서 제1 객체의 디스플레이를 유지하는 전술된 방식은 3차원 환경에 추가적인 사용자가 추가될 때 제1 객체를 보기 위해 제1 사용자에게 필요한 입력들을 감소시키는 효율적인 방식을 제공하고, 이는 추가적으로 전력 사용량을 감소시키고, 사용 시에 에러들을 감소시키면서, 사용자가 전자 디바이스를 더 빠르고 효율적으로 사용할 수 있게 함으로써, 전자 디바이스의 배터리 수명을 개선한다.
도 13b에서와 같은 일부 실시예들에서, 하나 이상의 사용자들(예를 들어, 1314A 및 1314B)의 표현들은 3차원 환경(예를 들어, 1304) 내의 개개의 위치에서 추가적인 사용자(예를 들어, 1314C)의 시점으로부터 가시적이다(1412). 일부 실시예들에서, 개개의 위치는 3차원 환경 내의 하나 이상의 사용자들과 연관된 위치들의 미리 결정된 임계 거리(예를 들어, 0.5, 1, 2 미터 등) 내에 있다. 일부 실시예들에서, 전자 디바이스는, 다른 사용자들의 뷰 및 추가적인 사용자들의 뷰가 객체들에 의해 차단되지 않도록 추가적인 사용자와 다른 사용자들의 시점 사이에 가상 또는 실제 객체들이 존재하지 않도록 추가적인 사용자의 위치를 선택한다. 일부 실시예들에서, 추가적인 사용자의 위치는, 모든(또는 적어도 미리 결정된 수 또는 비율의) 사용자들이 추가적인 사용자의 시야 내에 있도록 다른 사용자들로부터 충분히 멀리 있다.
3차원 환경에서 하나 이상의 사용자들이 개개의 위치에서 추가적인 사용자에게 가시적이도록 개개의 위치를 선택하는 전술된 방식은 추가적인 사용자가 하나 이상의 사용자들과 상호작용할 수 있게 하는 효율적인 방식을 제공하고, 이는 추가적으로 전력 사용량을 감소시키고, 사용 시에 에러들을 감소시키면서, (예를 들어, 하나 이상의 사용자들을 보기 위해 추가적인 사용자에 의해 필요한 입력들을 감소시킴으로써) 사용자가 전자 디바이스를 더 빠르고 효율적으로 사용할 수 있게 함으로써, 전자 디바이스의 배터리 수명을 개선한다.
일부 실시예들에서, 3차원 환경(예를 들어, 1304)은 제1 영역 및 제1 영역과 상이한 제2 영역을 포함한다(1414). 일부 실시예들에서, 하나 이상의 사용자들(예를 들어, 1314A 및 1314B)과 연관된 하나 이상의 제1 위치들이 제2 영역이 아니라 제1 영역 내에 있다는 결정에 따라, 추가적인 사용자(예를 들어, 1314C)와 연관된 개개의 위치는 제1 영역 내에 있도록 (예를 들어, 자동으로, 디바이스에 의해) 선택된다(1416). 일부 실시예들에서, 하나 이상의 사용자들은 서로의 미리 결정된 임계 거리(예를 들어, 0.5, 1, 2, 3 미터 등) 내에 있고, 개개의 위치는 하나 이상의 사용자들의 임계 거리 내에 있다. 일부 실시예들에서, 하나 이상의 사용자들 및 추가적인 사용자들은 제1 영역에 있고 하나 이상의 객체들은 3차원 환경의 제2 영역에 있다. 일부 실시예들에서, 하나 이상의 객체들이 제1 영역 내에 있다. 일부 실시예들에서, 하나 이상의 사용자들(예를 들어, 1314A 및 1314B)과 연관된 하나 이상의 제1 위치들이 제1 영역이 아니라 제2 영역 내에 있다는 결정에 따라, 추가적인 사용자(예를 들어, 1314C)와 연관된 개개의 위치는 제2 영역 내에 있도록 (예를 들어, 자동으로, 디바이스에 의해) 선택된다(1418). 일부 실시예들에서, 하나 이상의 사용자들은 서로의 미리 결정된 임계 거리(예를 들어, 0.5, 1, 2, 3 미터 등) 내에 있고, 개개의 위치는 하나 이상의 사용자들의 임계 거리 내에 있다. 일부 실시예들에서, 하나 이상의 사용자들 및 추가적인 사용자들은 제2 영역에 있고 하나 이상의 객체들은 3차원 환경의 제1 영역에 있다. 일부 실시예들에서, 하나 이상의 객체들이 제2 영역 내에 있다. 일부 실시예들에서, 하나 이상의 사용자들은 하나 이상의 사용자들이 서로 근처에 (예를 들어, 임계 거리 내에) 있도록 3차원 환경의 제1 개개의 영역 내에 있고, 하나 이상의 객체들은 사용자들이 다른 사용자들을 보는 것을 하나 이상의 객체들이 차단하지 않도록 3차원 환경의 제2 개개의 영역에 있다. 일부 실시예들에서, 하나 이상의 객체들은 3차원 환경의 제1 개개의 영역 내에 있다(예를 들어, 이들이 사용자에 의해 거기에 배치되었기 때문에 또는 객체가 제2 개개의 영역보다는 제1 개개의 영역에서 보기에 더 쉽다고 전자 디바이스가 결정하기 때문에). 하나 이상의 사용자들과 연관된 위치들을 포함하는 3차원 환경의 개개의 영역에 있도록 개개의 위치를 선택하는 전술된 방식은 추가적인 사용자가 하나 이상의 사용자들과 상호작용할 수 있게 하는 효율적인 방식을 제공하고, 이는 추가적으로 전력 사용량을 감소시키고, 사용 시에 에러들을 감소시키면서, 사용자가 전자 디바이스를 더 빠르고 효율적으로 사용할 수 있게 함으로써, 전자 디바이스의 배터리 수명을 개선한다.
일부 실시예들에서, 하나 이상의 객체들은 제1 객체(예를 들어, 1322)(예를 들어, 애플리케이션, 파일, 가상 객체, 콘텐츠 등의 표현)를 포함한다(1420). 일부 실시예들에서, 제1 객체(예를 들어, 1322)가 3차원 환경(예를 들어, 1304)에서 제1 위치에 있다는 결정에 따라, 개개의 위치는 제1 위치의 임계 거리(예를 들어, 0.1, 0.2, 0.3, 0.4, 0.5, 1 미터 등) 내에 있도록 (예를 들어, 자동으로, 디바이스에 의해) 선택된다(1422). 일부 실시예들에서, 제1 객체(예를 들어, 1322)가 3차원 환경(예를 들어, 1304) 내의 제2 위치에 있다는 결정에 따라, 개개의 위치는 제2 위치의 임계 거리 내에 있도록 (예를 들어, 자동으로, 디바이스에 의해) 선택된다(1424). 일부 실시예들에서, 개개의 위치는 추가적인 사용자가 제1 객체의 임계 거리 내에 있도록 선택된다. 일부 실시예들에서, 제1 객체는 제1 객체의 개개의 측면으로부터 가시적인 콘텐츠를 포함하고, 추가적인 사용자와 연관된 개개의 위치는 제1 객체의 개개의 측면에 대응하는 제1 객체로부터 멀어지는 방향으로 위치된다.
제1 객체의 임계 거리 내에 있도록 개개의 위치를 선택하는 전술된 방식은 제1 사용자가 제1 객체와 상호작용할 수 있게 하는 효율적인 방식을 제공하고, 이는 추가적으로 전력 사용량을 감소시키고, 사용 시에 에러들을 감소시키면서, 사용자가 전자 디바이스를 더 빠르고 효율적으로 사용할 수 있게 함으로써, 전자 디바이스의 배터리 수명을 개선한다.
도 13a에서와 같은 일부 실시예들에서, 하나 이상의 사용자들은 3차원 환경(예를 들어, 1304)의 호스트인 제1 사용자(예를 들어, 1314A)를 포함한다(1426). 일부 실시예들에서, 제1 사용자는 3차원 환경으로부터 사용자들을 추가 및 제거하고, 3차원 환경의 하나 이상의 설정들을 제어하고, 다른 사용자들에 의해 3차원 환경에 추가된 객체들(예를 들어, 애플리케이션들, 파일들, 콘텐츠)을 승인 또는 거부하는 능력들을 갖는다. 일부 실시예들에서, 제1 사용자는 3차원 환경의 디스플레이를 개시하였다. 도 13c에서와 같은 일부 실시예들에서, 제1 사용자(예를 들어, 1314A)가 3차원 환경(예를 들어, 1304)에서 제1 위치와 연관된다는 결정에 따라, 개개의 위치는 제1 위치의 임계 거리(예를 들어, 0.5, 1, 2 미터 등) 내에 있도록 (예를 들어, 자동으로, 디바이스에 의해) 선택된다(1428). 일부 실시예들에서, 제1 사용자(예를 들어, 1314A)가 3차원 환경(예를 들어, 1304) 내의 제2 위치와 연관된다는 결정에 따라, 개개의 위치는 제2 위치의 임계 거리 내에 있도록 (예를 들어, 자동으로, 디바이스에 의해) 선택된다(1430). 일부 실시예들에서, 개개의 위치는 추가적인 사용자가 3차원 환경의 호스트의 임계 거리 내에 있도록 선택된다. 일부 실시예들에서, 개개의 위치는, 추가적인 사용자가 3차원 환경에서 (예를 들어, 임의의) 다른 사용자들보다 호스트에 더 가깝도록 선택된다.
3차원 환경의 호스트의 임계 거리 내에 있도록 개개의 위치를 선택하는 전술된 방식은 추가적인 사용자와 3차원 환경의 호스트 사이의 상호작용들을 가능하게 하는 효율적인 방식을 제공하고, 이는 추가적으로 전력 사용량을 감소시키고, 사용 시에 에러들을 감소시키면서, 사용자가 전자 디바이스를 더 빠르고 효율적으로 사용할 수 있게 함으로써, 전자 디바이스의 배터리 수명을 개선한다.
도 13a에서와 같은 일부 실시예들에서, 추가적인 사용자(예를 들어, 1314C)의 표현을 3차원 환경(예를 들어, 1304)에 추가하기 전에, 하나 이상의 객체들(예를 들어, 1306, 1308, 및 1322)은 하나 이상의 제1 위치들에서 하나 이상의 사용자들(예를 들어, 1314A 및 1314B)의 시점들로부터 가시적이다(1432). 도 13b에서와 같은 일부 실시예들에서, 추가적인 사용자(예를 들어, 1314C)의 표현을 3차원 환경(예를 들어, 1304)에 추가한 후에, 하나 이상의 객체들(예를 들어, 1306, 1308, 및 1322)은 하나 이상의 제1 위치들에서 하나 이상의 사용자들(예를 들어, 1314A 및 1314B)의 시점들로부터 가시적이다(1434). 일부 실시예들에서, 추가적인 사용자의 개개의 위치는, 추가적인 사용자가 3차원 환경에 이미 있던 (예를 들어, 임의의) 사용자들과 3차원 환경에 이미 있던 (예를 들어, 임의의) 가상 객체들 사이에 있지 않도록 선택된다. 일부 실시예들에서, 추가적인 사용자의 개개의 위치는 추가적인 사용자가 3차원 환경에서 (예를 들어, 임의의) 사용자들과 임의의 콘텐츠 아이템들 사이에 있지 않도록 선택되지만, 개개의 위치는 선택적으로, 3차원 환경에서 하나 이상의 사용자들과 콘텐츠 아이템들(예를 들어, 애플리케이션들의 표현들, 실제 객체들의 표현들(예를 들어, 디스플레이 생성 컴포넌트의 투명 부분을 통해 가시적인 전자 디바이스의 환경 내의 패스 스루 비디오 또는 실제 객체들)) 이외의 하나 이상의 객체들 사이에 있다.
3차원 환경 내의 개개의 위치에서 추가적인 사용자의 표현을 추가한 후에 하나 이상의 객체들이 하나 이상의 사용자들의 시점들로부터 가시적이도록 개개의 위치를 선택하는 전술된 방식은 하나 이상의 사용자들이 하나 이상의 객체들과 계속 상호작용할 수 있게 하는 효율적인 방식을 제공하고, 이는 추가적으로 전력 사용량을 감소시키고, 사용 시에 에러들을 감소시키면서, 사용자가 전자 디바이스를 더 빠르고 효율적으로 사용할 수 있게 함으로써, 전자 디바이스의 배터리 수명을 개선한다.
도 13a에서와 같은 일부 실시예들에서, 하나 이상의 사용자들은 3차원 환경 내의 제1 개개의 위치와 연관된 제1 사용자(예를 들어, 1314A), 및 3차원 환경(예를 들어, 1304)에서 제2 개개의 위치와 연관된 제2 사용자(예를 들어, 1314B)를 포함한다(1436). 일부 실시예들에서, 전자 디바이스는 3차원 환경에서 제1 개개의 위치에서 제1 사용자의 표현을 디스플레이하고, 3차원 환경에서 제2 개개의 위치에서 제2 사용자의 표현을 디스플레이한다. 일부 실시예들에서, 제1 사용자의 전자 디바이스는 3차원 환경 내의 제1 위치에서의 시점으로부터의 3차원 환경을 디스플레이한다. 일부 실시예들에서, 제2 사용자의 전자 디바이스는 3차원 환경 내의 제2 개개의 위치에서의 시점으로부터의 3차원 환경을 디스플레이한다. 도 13a에서와 같은 일부 실시예들에서, 전자 디바이스(예를 들어, 101)가 추가적인 사용자(예를 들어, 1314C)의 표현을 3차원 환경(예를 들어, 1304)에 추가하기(1438) 전에, 제1 사용자(예를 들어, 1314A)의 표현은 3차원 환경(예를 들어, 1304)에서 제2 개개의 위치에서의 제2 사용자(예를 들어, 1314B)의 시점으로부터 가시적이다(1440). 일부 실시예들에서, 제2 사용자의 전자 디바이스는 3차원 환경의 제1 개개의 위치에 제1 사용자의 표현을 디스플레이한다. 일부 실시예들에서, 제1 사용자의 표현은 제2 사용자의 시점으로부터의 객체들 및/또는 (예를 들어, 임의의) 다른 사용자들에 의해 차단되지 않는다. 도 13a에서와 같은 일부 실시예들에서, 제2 사용자(예를 들어, 1314B)의 표현은 3차원 환경(예를 들어, 1304)에서 제1 개개의 위치에서 제1 사용자(예를 들어, 1314A)의 시점으로부터 가시적이다(1442). 일부 실시예들에서, 제1 사용자의 전자 디바이스는 3차원 환경의 제2 개개의 위치에 제2 사용자의 표현을 디스플레이한다. 일부 실시예들에서, 제2 사용자의 표현은 제1 사용자의 시점으로부터의 객체들 및/또는 (예를 들어, 임의의) 다른 사용자들에 의해 차단되지 않는다. 도 13b에서와 같은 일부 실시예들에서, 추가적인 사용자(예를 들어, 1314C)의 표현은, 도 13b에서와 같이 추가적인 사용자(예를 들어, 1314C)의 표현을 3차원 환경(예를 들어, 1304)에 추가한(1444) 후에, 제1 사용자(예를 들어, 1314A)의 표현이 3차원 환경의 제2 개개의 위치에서 제2 사용자(예를 들어, 1314B)의 시점으로부터 가시적이도록 (예를 들어, 자동으로, 디바이스에 의해) 선택된 위치에서 3차원 환경(예를 들어, 1304)에 추가된다(1446). 도 13b에서와 같은 일부 실시예들에서, 제2 사용자(예를 들어, 1314B)의 표현은 3차원 환경(예를 들어, 1304)에서 제1 개개의 위치에서 제1 사용자(예를 들어, 1314A)의 시점으로부터 가시적이다(1448). 일부 실시예들에서, 추가적인 사용자와 연관된 개개의 위치는, 3차원 환경에서의 추가적인 사용자의 표현이 제1 및 제2 사용자들의 서로에 대한 가시성을 차단하지 않도록 제1 사용자와 연관된 제1 개개의 위치와 제2 사용자와 연관된 제2 개개의 위치 사이에 있지 않다.
추가적인 사용자가 3차원 환경에 추가된 후 제1 사용자 및 제2 사용자의 디스플레이를 유지하는 전술된 방식은 제1 및 제2 사용자들 사이의 계속된 상호작용을 가능하게 하는 효율적인 방식을 제공하고, 이는 추가적으로 전력 사용량을 감소시키고, 사용 시에 에러들을 감소시키면서, 사용자가 전자 디바이스를 더 빠르고 효율적으로 사용할 수 있게 함으로써, 전자 디바이스의 배터리 수명을 개선한다.
도 13a에서와 같은 일부 실시예들에서, 하나 이상의 객체들은 제1 객체(예를 들어, 1306)(예를 들어, 애플리케이션, 파일, 콘텐츠, 또는 다른 가상 객체의 표현)를 포함한다(1450). 도 13a에서와 같은 일부 실시예들에서, 하나 이상의 사용자들(예를 들어, 1314A 및 1314B)과 연관된 하나 이상의 제1 위치들은 3차원 환경(예를 들어, 1304)에서 제1 객체(예를 들어, 1306)의 제1 측면 상에 있다(1452). 일부 실시예들에서, 제1 객체는 제1 객체의 제1 측면에서만 가시적인 수 있는 콘텐츠를 포함한다. 일부 실시예들에서, 제1 객체는 제1 객체의 하나 초과의 측면으로부터 가시적인 콘텐츠를 포함한다. 도 13b에서와 같은 일부 실시예들에서, 추가적인 사용자(예를 들어, 1314C)와 연관된 위치는 3차원 환경(예를 들어, 1304)에서 제1 객체(예를 들어, 1306)의 제1 측면 상에 있다(1454). 일부 실시예들에서, 개개의 위치는, 하나 이상의 사용자들이 위치된 하나 이상의 가상 객체들의 측면과 동일한, 3차원 환경의 하나 이상의 가상 객체들의 측면 상에 있도록 선택된다. 일부 실시예들에서, 하나 이상의 제1 위치들이 제1 측면과 상이한 제1 객체의 제2 측면 상에 있다는 결정에 따라, 전자 디바이스는 제1 객체의 제2 측면 상에 있도록 개개의 위치를 선택한다.
하나 이상의 사용자들이 제1 객체의 제1 측면 상의 위치들과 연관된다는 결정에 따라 제1 객체의 제1 측면 상에 있도록 개개의 위치를 선택하는 전술된 방식은 추가적인 사용자가 제1 객체와 상호작용할 수 있게 하는 효율적인 방식을 제공하고, 이는 추가적으로 전력 사용량을 감소시키고, 사용 시에 에러들을 감소시키면서, 사용자가 전자 디바이스를 더 빠르고 효율적으로 사용할 수 있게 함으로써, 전자 디바이스의 배터리 수명을 개선한다.
도 13c에서와 같은 일부 실시예들에서, 3차원 환경(예를 들어, 1304) 내의 개개의 위치는 복수의 사용자 배치 기준들의 제1 서브세트(그리고 예를 들어, 전부가 아님)를 충족시킨다(1456). 일부 실시예들에서, 복수의 사용자 배치 기준들은 하나 이상의 사용자들과 연관된 위치들과 관련된 하나 이상의 사용자 배치 기준들(예를 들어, 다른 사용자들의 제1 임계 거리와 제2 임계 거리 사이에 있는 것, 다른 사용자들의 시점으로부터 객체들/사용자들을 차단하지 않는 것, 호스트 사용자에 근접한 것 등), 및 3차원 환경에서 하나 이상의 객체들과 연관된 위치들에 관련된 하나 이상의 사용자 배치 기준들(예를 들어, 객체들이 가시적인 위치에 있는 것, 다른 사용자들의 시점들로부터 객체들을 차단하지 않는 것, 전자 디바이스의 환경에서 하나 이상의 객체들에 따른 의미론적 배치 등)을 포함한다. 일부 실시예들에서, 개개의 위치는 복수의 사용자 배치 기준들의 제1 서브세트를 충족시키고, 사용자 배치 기준들의 제1 서브세트에 포함되지 않은 사용자 배치 기준들 중 하나 이상을 충족시키지 않는다. 일부 실시예들에서, 사용자 배치 기준들은 방법(1400)을 참조하여 본 명세서에서 설명된 인자들 중 하나 이상 또는 전부를 포함한다. 도 13c에서와 같은 일부 실시예들에서, 3차원 환경(예를 들어, 1304) 내의 제2 개개의 위치는 복수의 사용자 배치 기준들의 제2 서브세트(그리고 예를 들어, 전부가 아님)를 충족시킨다(1458). 일부 실시예들에서, 복수의 사용자 배치 기준들은 하나 이상의 사용자들과 연관된 위치들과 관련된 하나 이상의 사용자 배치 기준들(예를 들어, 다른 사용자들의 제1 임계 거리와 제2 임계 거리 사이에 있는 것, 다른 사용자들의 시점으로부터 객체들/사용자들을 차단하지 않는 것, 호스트 사용자에 근접한 것 등), 및 3차원 환경에서 하나 이상의 객체들과 연관된 위치들에 관련된 하나 이상의 사용자 배치 기준들(예를 들어, 객체들이 가시적인 위치에 있는 것, 다른 사용자들의 시점들로부터 객체들을 차단하지 않는 것, 전자 디바이스의 환경에서 하나 이상의 객체들에 따른 의미론적 배치 등)을 포함한다. 일부 실시예들에서, 제2 개개의 위치는 복수의 사용자 배치 기준들의 제2 서브세트를 충족시키고, 사용자 배치 기준들의 제2 서브세트에 포함되지 않은 사용자 배치 기준들 중 하나 이상을 충족시키지 않는다. 도 13c에서와 같은 일부 실시예들에서, 복수의 사용자 배치 기준들의 제1 서브세트가 복수의 사용자 배치 기준들의 제2 서브세트에 비해 우선순위화된다는(예를 들어, 전자 디바이스의 사용자 배치 알고리즘에 의해 선호됨) 결정에 따라, 추가적인 사용자(예를 들어, 1314C)의 표현은 제2 개개의 위치가 아니라 개개의 위치에 배치된다(1460). 일부 실시예들에서, 복수의 사용자 배치 기준들의 제1 서브세트는 복수의 사용자 배치 기준들의 제2 서브세트에 비해 우선순위화되는데, 이는, 사용자 배치 기준들의 제1 서브세트가 사용자 배치 기준들의 제2 서브세트보다 더 많은 기준들을 포함하기 때문이고; 사용자 배치 기준들의 제1 서브세트가 사용자 배치 기준들의 제2 서브세트 내의 모든 기준들보다 더 중요한 기준을 포함하기 때문이고/이거나(예를 들어, 기준들은 중요도에 의해 랭크됨); 사용자 배치 기준들의 제1 서브세트가 전체적으로 (예를 들어, 평균적으로, 가중된 평균에 의해, 충족된 기준들의 수 및 충족된 기준들의 중요도를 가중하는 메트릭에 의해), 사용자 배치 기준들의 제2 서브세트보다 중요하기 때문이다(예를 들어, 기준들은 중요도에 의해 랭크됨). 일부 실시예들에서, 전자 디바이스는 추가적인 사용자를 사용자 배치 기준들 모두를 충족시키지는 않는 위치에 배치하는데, 이는 그 위치가 사용자 배치 기준들에 기초하여(예를 들어, 하나 이상의 기준들의 중요도 랭킹, 충족되는 기준들의 수 등에 기초하여) 최상의 이용가능한 위치이기 때문이다. 일부 실시예들에서, 복수의 사용자 배치 기준들의 제2 서브세트가 복수의 사용자 배치 기준들의 제1 서브세트보다 선호된다는 결정에 따라, 전자 디바이스는 3차원 환경의 개개의 위치가 아닌 제2 개개의 위치에 추가적인 사용자의 표현을 배치한다.
복수의 사용자 배치 기준들의 제1 서브세트가 복수의 사용자 배치 기준들의 제2 서브세트보다 선호된다는 결정에 따라 추가적인 사용자의 표현을 개개의 위치에 배치하는 전술된 방식은 사용자 배치 기준들 모두를 충족시키는 이용가능한 위치들이 없는 경우에도 추가적인 사용자가 3차원 환경에 참여할 수 있게 하는 효율적인 방식을 제공하고, 이는 추가적으로 전력 사용량을 감소시키고, 사용 시에 에러들을 감소시키면서, 사용자가 전자 디바이스를 더 빠르고 효율적으로 사용할 수 있게 함으로써, 전자 디바이스의 배터리 수명을 개선한다.
도 13b에서와 같은 일부 실시예들에서, 3차원 환경(예를 들어, 1304)을 디스플레이하는 동안, 전자 디바이스(예를 들어, 101)는 3차원 환경(예를 들어, 1304)에 제2 추가적인 사용자(예를 들어, 1314D)를 추가하라는 요청에 대응하는 입력을 검출한다(1462). 일부 실시예들에서, 입력은 제2 추가적인 사용자가 3차원 환경에 액세스할 수 있게 하기 위해 전자 디바이스로부터 제2 추가적인 사용자의 전자 디바이스로 표시를 송신하라는 요청에 대응하는 입력이다. 일부 실시예들에서, 입력은 제2 추가적인 사용자로부터 3차원 환경으로의 액세스에 대한 요청을 수락하는 입력이다. 도 13c에서와 같은 일부 실시예들에서, 3차원 환경(예를 들어, 1304)에 제2 추가적인 사용자(예를 들어, 1314D)를 추가하라는 요청에 대응하는 입력을 검출하는 것에 응답하여(1464), 하나 이상의 기준들이 충족된다는 결정에 따라, 전자 디바이스(예를 들어, 101)는 3차원 환경(예를 들어, 1304) 내의 제2 개개의 위치에서 제2 추가적인 사용자(예를 들어, 1314D)의 표현을 포함하도록 3차원 환경(예를 들어, 1304)을 업데이트하고(1466), 제2 개개의 위치는 하나 이상의 사용자들(예를 들어, 1314A 및 1314B)과 연관된 하나 이상의 제1 위치들(그리고 예를 들어, 추가적인 사용자와 연관된 개개의 위치) 및 하나 이상의 제2 위치들에서의 하나 이상의 객체들(예를 들어, 1306, 1308 및 1322)에 기초한다. 일부 실시예들에서, 제2 개개의 위치는 하나 이상의 사용자들(추가적인 사용자를 포함함)과 연관된 위치들 및 하나 이상의 객체들과 연관된 위치들과 관련된 하나 이상의 배치 기준들에 따라 선택된다. 일부 실시예들에서, 하나 이상의 기준들은, 하나 이상의 사용자들과 연관된 위치들(예를 들어, 다른 사용자들의 제1 임계 거리와 제2 임계 거리 사이에 있는 것, 다른 사용자들의 시점으로부터 객체들/사용자들을 차단하지 않는 것, 호스트 사용자에 근접한 것 등), 및 하나 이상의 객체들과 연관된 위치들(예를 들어, 객체들이 가시적인 위치에 있는 것, 다른 사용자들의 시점들로부터 객체들을 차단하지 않는 것, 전자 디바이스의 환경에서 하나 이상의 객체들에 따른 의미론적 배치 등)과 관련된 하나 이상의 배치 기준들을 충족시키는 하나 이상의 위치들이 3차원 환경에 있을 때 충족된다. 일부 실시예들에서, 3차원 환경(예를 들어, 1304)에 제2 추가적인 사용자(예를 들어, 1314D)를 추가하라는 요청에 대응하는 입력을 검출하는 것에 응답하여(1464), 하나 이상의 기준들이 충족되지 않는다는 결정에 따라, 전자 디바이스(예를 들어, 101)는 3차원 환경(예를 들어, 1304) 내의 미리 결정된 위치에서 제2 추가적인 사용자(예를 들어, 1314D)의 표현을 포함하도록 3차원 환경(예를 들어, 1304)을 업데이트한다(1468). 일부 실시예들에서, 하나 이상의 배치 기준들을 충족시키는 위치들이 3차원 환경에 존재하지 않으면, 전자 디바이스는 제2 추가적인 사용자의 표현을 디스플레이할 제2 개개의 위치로서 3차원 환경 내의 미리 결정된 위치를 선택한다. 일부 실시예들에서, 미리 결정된 위치는 배치 기준들 중 하나 이상을 충족시키지 않는다. 일부 실시예들에서, 미리 결정된 위치는 고정된 위치(예를 들어, 3차원 환경에서의 좌표들의 개개의 세트)이다. 일부 실시예들에서, 미리 결정된 위치는 3차원 환경에서 개개의 위치에 대해 고정된 배향을 갖는다. 예를 들어, 미리 결정된 위치는 선택적으로, 가장 최근에 3차원 환경에 참여한 사용자 및/또는 3차원 환경의 호스트의 좌측 또는 우측의 위치이다.
하나 이상의 기준들이 충족된다는 결정에 따라 3차원 환경에서 미리 결정된 위치에서 제2 추가적인 사용자의 표현을 포함하도록 3차원 환경을 업데이트하는 전술된 방식은 하나 이상의 기준들이 충족되지 않는 경우에도 제2 추가적인 사용자가 3차원 환경에 참여할 수 있게 하는 효율적인 방식을 제공하고, 이는 추가적으로 전력 사용량을 감소시키고, 사용 시에 에러들을 감소시키면서, (예를 들어, 사용자가 참여할 수 있게 하는 모든 기준들을 충족시키는 데 필요한 입력들을 감소시킴으로써) 사용자가 전자 디바이스를 더 빠르고 효율적으로 사용할 수 있게 함으로써, 전자 디바이스의 배터리 수명을 개선한다.
도 13b에서와 같은 일부 실시예들에서, 하나 이상의 객체들은 제1 객체(예를 들어, 1306)를 포함한다(1470). 일부 실시예들에서, 애플리케이션의 표현, 파일, 콘텐츠의 아이템과 같은 가상 객체, 또는 전자 디바이스의 물리적 환경의 객체의 포토리얼리스틱 표현과 같은 다른 가상 객체 또는 실제 객체(예를 들어, "패스 스루" 객체) 또는 디스플레이 생성 컴포넌트의 투명 부분을 통해 가시적인 전자 디바이스의 물리적 환경의 실제 객체. 도 13b에서와 같은 일부 실시예들에서, 하나 이상의 사용자들은 제1 사용자(예를 들어, 1314A)를 포함한다(1472). 도 13b에서와 같은 일부 실시예들에서, 추가적인 사용자(예를 들어, 1314D)의 표현을 3차원 환경(예를 들어, 1304)에 추가하기 전에, 제1 객체(예를 들어, 1306)의 제1 부분은 3차원 환경(예를 들어, 1304)에서 제1 사용자(예를 들어, 1314A)의 시점에 대한 제1 배향을 갖는다(1474). 일부 실시예들에서, 제1 객체의 바닥 표면은 3차원 환경의 바닥 또는 최하부와 정렬되고, 제1 사용자의 전자 디바이스에 의해 제1 객체의 나머지 아래에 디스플레이된다. 일부 실시예들에서, 도 13c에서와 같이 추가적인 사용자(예를 들어, 1314D)의 표현을 3차원 환경(예를 들어, 1304)에 추가한 후에, 제1 객체(예를 들어, 1306)의 제1 부분은 3차원 환경(예를 들어, 1304)에서 제1 사용자(예를 들어, 1314A)의 시점에 대해 그리고 추가적인 사용자(예를 들어, 1314D)의 시점에 대해 제1 배향을 갖는다(1476). 일부 실시예들에서, 추가적인 사용자의 위치 및/또는 배향은 추가적인 사용자의 시점으로부터의 수평선이 하나 이상의 다른 사용자들의 수평선과 정렬되도록 선택된다. 일부 실시예들에서, 3차원 환경의 수평선들은 3차원 환경에서 다수의(예를 들어, 모든) 사용자들에 대해 동일하다. 일부 실시예들에서, 다수의(예를 들어, 모든) 사용자들은 평평한 표면들을 자신들의 시야에 대해 동일한 배향을 갖는 것으로 본다. 예를 들어, 3차원 환경의 바닥은 평평한 것으로 보이고, 3차원 환경의 벽들은 다수의(예를 들어, 모든) 사용자들에 대해 바닥에 수직인 것처럼 보인다. 일부 실시예들에서, 제1 객체의 바닥 표면은 3차원 환경의 바닥 또는 최하부와 정렬되고, 추가적인 사용자의 전자 디바이스에 의해 제1 객체의 나머지 아래에 디스플레이된다.
제1 사용자 및 추가적인 사용자 둘 모두의 시점들로부터 제1 배향을 갖는 제1 객체의 제1 부분을 디스플레이하는 전술된 방식은 3차원 환경의 모든 사용자들에 대한 공유 좌표들에 따라 3차원 환경을 정렬하는 효율적인 방식을 제공하고, 이는 추가적으로 전력 사용량을 감소시키고, 사용 시에 에러들을 감소시키면서, 사용자가 전자 디바이스를 더 빠르고 효율적으로 사용할 수 있게 함으로써, 전자 디바이스의 배터리 수명을 개선한다.
도 13b에서와 같은 일부 실시예들에서, 추가적인 사용자와 연관된 개개의 위치(예를 들어, 1314C)는 하나 이상의 사용자들(예를 들어, 1314A 및 1314B)과 연관된 하나 이상의 제1 위치들로부터 임계 거리(예를 들어, 0.1, 0.2, 0.3, 0.4, 0.5, 1 미터 등)보다 더 멀리 있도록 (예를 들어, 자동으로, 디바이스에 의해) 선택된다(1478). 일부 실시예들에서, 3차원 환경은, 전자 디바이스가 새롭게 추가된 사용자들의 표현들을 디스플레이하지 않는 하나 이상의 제1 위치들과 연관된 하나 이상의 영역들을 포함한다. 일부 실시예들에서, 하나 이상의 제1 영역들의 경계들은 하나 이상의 제1 위치들로부터의 임계 거리이다. 일부 실시예들에서, 하나 이상의 제1 영역들의 경계들은, 추가적인 사용자가 하나 이상의 (예를 들어, 임의의) 다른 사용자들의 시선에 배치되지 않도록 3차원 환경의 하나 이상의(예를 들어, 모든) 다른 사용자들의 배향들에 의존한다. 일부 실시예들에서, 하나 이상의 제1 영역들은 다른 사용자들의 시점들의 배향들과 독립적으로 선택된다. 예를 들어, 전자 디바이스는 새로운 사용자들이 3차원 환경에서 다른 사용자들과 대면하거나 매우 가깝게 있도록 이들을 배치하지 않는다. 다른 예로서, 각각의 사용자는 전자 디바이스에 의해 새로운 사용자들이 배치되지 않는 "개인 공간" 반경(예를 들어, 0.1, 0.2, 0.3, 0.4, 0.5, 1 미터 등)을 갖는다.
하나 이상의 사용자들과 연관된 하나 이상의 제1 위치들로부터 적어도 임계 거리만큼 떨어져 있도록 개개의 위치를 선택하는 전술된 방식은 추가적인 사용자가 3차원 환경에 추가될 때 추가적인 사용자에 의해 방해되지 않으면서 하나 이상의 사용자들이 3차원 환경과 계속 상호작용할 수 있는 효율적인 방식을 제공하고, 이는 추가적으로 전력 사용량을 감소시키고, 사용 시에 에러들을 감소시키면서, (예를 들어, 추가적인 사용자가 제1 사용자의 임계 거리 내에 배치되는 경우 추가적인 사용자로부터 멀리 이동하는 데 필요한 시간 및 입력들을 감소시킴으로써) 사용자가 전자 디바이스를 더 빠르고 효율적으로 사용할 수 있게 함으로써, 전자 디바이스의 배터리 수명을 개선한다.
도 13a에서와 같은 일부 실시예들에서, 전자 디바이스(예를 들어, 101a)는 하나 이상의 사용자들 중 제1 사용자(예를 들어, 1314A)와 연관된다(1480). 일부 실시예들에서, 전자 디바이스는 제1 사용자의 전자 디바이스이고, 3차원 환경에서 제1 사용자의 시점으로부터의 3차원 환경을 제시한다. 일부 실시예들에서, 전자 디바이스(예를 들어, 101a)는 하나 이상의 입력 디바이스들을 통해, 3차원 환경(예를 들어, 1304)에서 제1 사용자(예를 들어, 1314A)를 이동시키라는 요청에 대응하는 개개의 입력을 수신한다(1482). 일부 실시예들에서, 전자 디바이스는 하나 이상의 자이로스코프들, 가속도계들, 거리 센서들, 카메라들 등을 통해, 전자 디바이스의 물리적 환경 내의 하나의 위치로부터 전자 디바이스의 물리적 환경 내의 다른 위치로의 전자 디바이스의 모션을 검출한다. 일부 실시예들에서, 3차원 환경(예를 들어, 1304)에서 제1 사용자(예를 들어, 1314A)를 이동시키라는 요청에 대응하는 개개의 입력을 수신하는 것에 응답하여(1484), 전자 디바이스(예를 들어, 101)는 개개의 입력에 따라 3차원 환경(예를 들어, 1304)의 제1 사용자(예를 들어, 1314A)를 이동시킨다(1486). 일부 실시예들에서, 전자 디바이스는 3차원 환경에서 제1 사용자의 표현을 입력과 연관된 방향에 대응하는 방향 및 입력과 연관된 거리에 대응하는 거리로 이동시킨다. 일부 실시예들에서, 3차원 환경(예를 들어, 1304)에서 제1 사용자(예를 들어, 1314A)를 이동시키라는 요청에 대응하는 개개의 입력을 수신하는 것에 응답하여(1484), 제1 사용자(예를 들어, 1314A)가, 3차원 환경(예를 들어, 1304)에서 하나 이상의 사용자들 중 다른 사용자들(예를 들어, 1314B)로부터 임계(예를 들어, 5, 10, 15, 20 미터 등) 거리보다 멀고 그리고 3차원 환경(예를 들어, 1304)에서 하나 이상의 객체들(예를 들어, 1306, 1308 및 1322)로부터 임계 거리보다 먼 위치로 이동했다는 결정에 따라, 전자 디바이스(예를 들어, 101)는 디스플레이 생성 컴포넌트(120)를 통해, 하나 이상의 사용자들 중 다른 사용자들(예를 들어, 1314B)과 연관된 하나 이상의 위치들 및 하나 이상의 제2 위치들에 있는 하나 이상의 객체들(예를 들어, 1306, 1308 및 1322)에 기초하여 3차원 환경(예를 들어, 1304) 내의 위치로 제1 사용자(예를 들어, 1314A)를 이동시키기 위한 프로세스를 개시하도록 선택가능한 개개의 선택가능한 옵션을 디스플레이한다(1488). 일부 실시예들에서, 선택가능한 옵션의 선택을 검출하는 것에 응답하여, 전자 디바이스는 하나 이상의 사용자들의 다른 사용자들과 연관된 하나 이상의 위치들(예를 들어, 다른 사용자들의 제1 임계 거리와 제2 임계 거리 사이에 있는 것, 다른 사용자들의 시점으로부터 객체들/사용자들을 차단하지 않는 것, 호스트 사용자에 근접한 것 등), 및 하나 이상의 제2 위치들에 있는 하나 이상의 객체들(예를 들어, 객체들이 가시적인 위치에 있는 것, 다른 사용자들의 시점들로부터 객체들을 차단하지 않는 것, 전자 디바이스의 환경에서 하나 이상의 객체들에 따른 의미론적 배치 등)에 기초하여 3차원 환경의 위치에서의 시점으로부터 3차원 환경을 디스플레이한다. 일부 실시예들에서, 전자 디바이스는, 전자 디바이스가 추가적인 사용자의 표현을 디스플레이할 개개의 위치를 선택하는 동일한 기준들에 기초하여 위치를 선택한다. 일부 실시예들에서, 3차원 환경 내의 다른 사용자(들)의 전자 디바이스(들)는, 개개의 입력에 응답하여 하나 이상의 사용자들의 다른 사용자들과 연관된 하나 이상의 위치들 및 제2 위치에서의 하나 이상의 객체들에 기초하여 3차원 환경 내의 위치에서 제1 사용자의 표현을 디스플레이한다. 일부 실시예들에서, 제1 사용자가 다른 사용자들로부터 임계(예를 들어, 5, 10, 15, 20 미터 등) 거리보다 더 멀지만 객체들로부터 임계 거리보다 더 멀지 않는 위치로 이동했다는 결정에 따라, 전자 디바이스는 개개의 선택가능한 옵션을 디스플레이한다. 일부 실시예들에서, 제1 사용자가 객체들로부터 임계(예를 들어, 5, 10, 15, 20 미터 등) 거리보다 더 멀지만 다른 사용자들로부터 임계 거리보다 더 멀지 않는 위치로 이동했다는 결정에 따라, 전자 디바이스는 개개의 선택가능한 옵션을 디스플레이한다. 일부 실시예들에서, 전자 디바이스는 사용자가 3차원 환경에서 객체들 및/또는 사용자들로부터 멀리 임계(예를 들어, 5, 10, 15, 20 미터 등) 거리를 이동했다는 결정에 따라 3차원 환경에서 사용자의 위치를 재설정하기 위한 개개의 선택가능한 옵션을 디스플레이한다.
제1 사용자가 다른 사용자들 및 하나 이상의 객체로부터 임계 거리보다 먼 위치로 이동했다는 결정에 따라 제1 사용자를 이동시키기 위한 프로세스를 개시하도록 선택가능한 개개의 선택가능한 옵션을 디스플레이하는 전술된 방식은 3차원 환경에서 다른 사용자들 및/또는 객체들에 대해 사용자를 자동으로 재배치 및/또는 배향하는 효율적인 방식을 제공하고, 이는 추가적으로 전력 사용량을 감소시키고, 사용 시에 에러들을 감소시키면서, 사용자가 전자 디바이스를 더 빠르고 효율적으로 사용할 수 있게 함으로써, 전자 디바이스의 배터리 수명을 개선한다.
도 11a에서와 같은 일부 실시예들에서, 3차원 환경(예를 들어, 1104)이 사용자들의 표현들을 포함할 수 있는 개개의 객체(예를 들어, 1128)를 따라 복수의 위치들을 갖는 개개의 객체(예를 들어, 1128)(예를 들어, 전자 디바이스의 물리적 환경 내의 객체)를 포함한다는 결정에 따라(1490), 하나 이상의 제1 기준들이 충족된다는 결정에 따라, 추가적인 사용자와 연관된 개개의 위치는 개개의 객체(예를 들어, 1128)를 따른 복수의 위치들 중 제1 위치에 있다(1492). 일부 실시예들에서, 예를 들어, 전자 디바이스가 소파에 앉아 있는 사용자들의 아바타들을 디스플레이할 수 있기 때문에, 소파는 사용자들의 표현들을 포함할 수 있다. 일부 실시예들에서, 전자 디바이스는 전자 디바이스의 환경 내의 물리적 객체의 포토리얼리스틱 표현을 디스플레이한다. 일부 실시예들에서, 전자 디바이스의 환경 내의 물리적 객체는 디스플레이 생성 컴포넌트의 투명 부분을 통해 가시적이다. 일부 실시예들에서, 개개의 객체는 가구 아이템이다. 일부 실시예들에서, 개개의 객체는 가구 아이템 이외의 전자 디바이스의 물리적 환경 내의 물리적 객체이다. 일부 실시예들에서, 예를 들어, 전자 디바이스의 사용자가 그들 옆에 개방 공간을 갖는 소파에 앉아 있다면, 전자 디바이스는 추가적인 사용자가 3차원 환경 내의 전자 디바이스의 사용자와 함께 소파에 앉아 있는 것처럼 보이도록 개개의 위치로서 사용자 옆의 공간을 선택한다. 일부 실시예들에서, 하나 이상의 제2 기준들이 충족된다는 결정에 따라, 도 11a에서와 같이 추가적인 사용자와 연관된 개개의 위치는 개개의 객체(예를 들어, 1128)를 따른 복수의 위치들 중 제1 위치와 상이한 제2 위치이다(1494). 일부 예들에서, 전자 디바이스는 전자 디바이스의 물리적 환경 내의 물리적 객체들(예를 들어, 가구의 아이템들, 다른 아이템들)에 대응하는 위치들에 추가적인 사용자들을 배치한다. 예를 들어, 전자 디바이스는 전자 디바이스의 사용자 옆의 테이블에 다른 추가적인 사용자를 배치하기 전에 전자 디바이스의 사용자로부터 테이블에 걸쳐 추가 사용자를 배치한다. 이 예에서, 다른 추가적인 사용자가 3차원 환경에 참여할 때, 전자 디바이스는 전자 디바이스의 사용자 옆의 테이블에 다른 추가적인 사용자의 표현을 디스플레이하고, 교번하는 측면들에서 테이블에 추가적인 사용자들을 추가로 디스플레이한다(예를 들어, 전자 디바이스의 사용자로부터 다음 사용자를 디스플레이하고, 이어서 전자 디바이스의 사용자와 동일한 테이블 측면에 다른 사용자를 디스플레이하는 식이다). 다른 예로서, 제1 다른 사용자의 아바타가 소파 상의 사용자 옆의 좌석에 디스플레이되면, 전자 디바이스는 소파 상의 다음으로 이용가능한 좌석에 제2 다른 사용자의 아바타를 배치한다. 다른 예로서, 전자 디바이스의 환경에 테이블이 있고 사용자들 중 어느 누구도 테이블 주위에 앉아 있는 것으로 디스플레이되지 않으면, 전자 디바이스는 테이블 주위에 앉아 있는 추가적인 사용자에 대응하는 위치 이외의 위치에 추가적인 사용자를 배치한다. 일부 실시예들에서, 전자 디바이스의 물리적 환경이, 사람들이 일반적으로 그 위에 또는 주위에 앉고/않거나 서 있는 객체들(예를 들어, 가구 또는 비-가구)을 포함한다는 결정에 따라, 전자 디바이스는 객체들 상에 또는 주위에 사용자들의 표현들을 디스플레이한다. 개개의 객체를 따라 복수의 위치들로부터 개개의 위치를 선택하는 전술된 방식은 추가적인 사용자들이 3차원 환경에서 다른 사용자들과 쉽게 상호작용할 수 있는 위치들에 추가적인 사용자들을 배치하는 효율적인 방식을 제공하고, 이는 추가적으로 전력 사용량을 감소시키고, 사용 시에 에러들을 감소시키면서, 사용자가 전자 디바이스를 더 빠르고 효율적으로 사용할 수 있게 함으로써, 전자 디바이스의 배터리 수명을 개선한다.
일부 실시예들에서, 방법들(800, 1000, 1200, 1400)의 태양들/동작들은 이들 방법들 사이에서 상호교환, 대체, 및/또는 추가될 수 있다. 간결함을 위해, 이러한 상세사항들은 여기서 반복되지 않는다.
전술한 설명은, 설명의 목적을 위해, 특정 실시예들을 참조하여 기술되었다. 그러나, 상기의 예시적인 논의들은 본 발명을 개시된 정확한 형태들로 규명하거나 제한하려는 의도는 아니다. 많은 수정들 및 변형들이 상기 교시 내용들의 관점에서 가능하다. 본 발명의 원리들 및 그의 실제적인 응용들을 가장 잘 설명하여, 그에 의해 당업자들이 본 발명 및 다양한 설명된 실시예들을 고려되는 특정 용도에 적합한 바와 같은 다양한 변형들을 갖고서 가장 잘 사용하는 것을 가능하게 하도록, 실시예들이 선택 및 설명되었다.

Claims (112)

  1. 방법으로서,
    디스플레이 생성 컴포넌트 및 하나 이상의 입력 디바이스들과 통신하는 전자 디바이스에서:
    상기 디스플레이 생성 컴포넌트를 통해, 개개의 실제 객체 및 개개의 가상 객체의 표현을 포함하는 3차원 환경을 디스플레이하는 단계;
    상기 3차원 환경을 디스플레이하는 동안, 상기 하나 이상의 입력 디바이스들을 통해, 상기 3차원 환경에서 상기 개개의 가상 객체를 이동시키라는 요청에 대응하는 입력을 수신하는 단계; 및
    상기 3차원 환경에서 상기 개개의 가상 객체를 이동시키라는 상기 요청에 대응하는 상기 입력을 수신하는 것에 응답하여:
    상기 입력에 따라 상기 3차원 환경에서 상기 개개의 가상 객체를 이동시키는 단계; 및
    상기 개개의 가상 객체의 이동이, 상기 개개의 가상 객체의 적어도 일부로 하여금 상기 3차원 환경에서의 상기 개개의 실제 객체의 표현의 제1 부분에 대응하는 상기 3차원 환경의 일부를 점유하게 한다는 결정에 따라, 상기 개개의 실제 객체의 표현의 상기 제1 부분을 둘러싸는 상기 개개의 실제 객체의 표현의 제2 부분의 디스플레이를 수정하는 단계를 포함하는, 방법.
  2. 제1항에 있어서,
    상기 3차원 환경에서 상기 객체를 이동시키라는 상기 요청에 대응하는 상기 입력을 수신하는 것에 응답하여:
    상기 개개의 가상 객체의 이동이, 상기 개개의 가상 객체의 임의의 일부로 하여금 상기 개개의 실제 객체의 표현에 대응하는 상기 3차원 환경의 일부를 점유하게 하지 않는다는 결정에 따라, 상기 개개의 실제 객체의 표현의 일부의 디스플레이를 수정하지 않으면서 상기 실제 객체의 표현의 디스플레이를 유지하는 단계를 더 포함하는, 방법.
  3. 제1항에 있어서,
    상기 개개의 가상 객체의 이동이, 상기 개개의 실제 객체의 표현의 제1 부분에 대응하는 위치가 상기 3차원 환경에서 상기 개개의 가상 객체와 사용자의 위치 사이에 위치되게 한다는 결정에 따라, 상기 개개의 실제 객체의 상기 제1 부분을 둘러싸는 상기 개개의 실제 객체의 표현의 제2 부분의 디스플레이를 수정하는 단계를 더 포함하는, 방법.
  4. 제1항에 있어서, 상기 개개의 가상 객체를 이동시키라는 상기 요청에 대응하는 상기 입력은 사용자의 손에 의해 수행된 제1 제스처에 이은 상기 손에 의해 수행된 상기 제1 제스처를 유지하면서 상기 손의 이동을 포함하는, 방법.
  5. 제1항에 있어서, 상기 전자 디바이스의 물리적 환경은 상기 3차원 환경의 개개의 부분에 대응하는 위치의 제1 실제 객체를 포함하고, 상기 방법은,
    상기 디스플레이 생성 컴포넌트를 통해 상기 3차원 환경의 개개의 부분을 디스플레이하는 동안 - 상기 제1 실제 객체의 표현은 상기 디스플레이 생성 컴포넌트를 통해 가시적이지 않음 -, 상기 전자 디바이스가 상기 물리적 환경 내의 상기 제1 실제 객체의 위치를 향해 이동하고 있음을 검출하는 단계; 및
    상기 전자 디바이스가 상기 제1 실제 객체의 위치를 향해 이동하고 있음을 검출하는 것에 응답하여, 하나 이상의 기준들이 충족된다는 결정에 따라, 상기 3차원 환경에서, 상기 제1 실제 객체의 표현을 디스플레이하는 단계를 더 포함하는, 방법.
  6. 제1항에 있어서,
    상기 3차원 환경에서 상기 개개의 가상 객체를 이동시키라는 상기 요청에 대응하는 상기 입력을 수신하는 것에 응답하여:
    상기 개개의 가상 객체의 현재 위치가 상기 개개의 실제 객체의 표현의 임계 거리 내에 있을 때 충족되는 개개의 기준을 포함하여, 하나 이상의 기준들이 충족된다는 결정에 따라, 상기 3차원 환경에서 상기 개개의 실제 객체의 표현에 대응하는 위치에 상기 개개의 가상 객체를 이동시키는 단계; 및
    상기 하나 이상의 기준들이 충족되지 않는다는 결정에 따라, 상기 개개의 가상 객체를 상기 3차원 환경 내의 상기 개개의 실제 객체의 표현에 대응하는 위치로 이동시키는 것을 보류하는 단계를 더 포함하는, 방법.
  7. 제6항에 있어서,
    상기 3차원 환경에서 상기 개개의 가상 객체를 상기 개개의 위치로 이동시키라는 상기 요청에 대응하는 상기 입력을 수신하는 것에 응답하여:
    상기 개개의 기준이 충족된다는 결정에 따라, 상기 디스플레이 생성 컴포넌트를 통해, 상기 하나 이상의 기준들이 충족될 때 상기 개개의 가상 객체가 상기 3차원 환경 내의 상기 개개의 실제 객체의 표현에 대응하는 위치로 이동할 것임을 나타내는 시각적 표시를 디스플레이하는 단계를 더 포함하는, 방법.
  8. 제6항에 있어서,
    상기 3차원 환경에서 상기 개개의 가상 객체를 상기 개개의 위치로 이동시키라는 상기 요청에 대응하는 상기 입력을 수신하는 것에 응답하여:
    상기 하나 이상의 기준들이 충족된다는 결정에 따라, 상기 개개의 실제 객체에 기초하여 상기 3차원 환경에 대한 제1 배향으로 상기 개개의 가상 객체를 디스플레이하는 단계; 및
    상기 하나 이상의 기준들이 충족되지 않는다는 결정에 따라, 상기 3차원 환경에서 사용자의 위치에 기초하여 상기 3차원 환경에 대한 상기 제1 배향과 상이한 제2 배향으로 상기 개개의 가상 객체를 디스플레이하는 단계를 더 포함하는, 방법.
  9. 제1항에 있어서,
    상기 3차원 환경에서 상기 개개의 가상 객체를 이동시키라는 상기 요청에 대응하는 상기 입력을 수신하기 전에, 상기 개개의 가상 객체는 상기 3차원 환경에서 사용자로부터 제1 거리에 있고, 상기 개개의 가상 객체는 제1 크기로 디스플레이되고,
    상기 3차원 환경에서 상기 개개의 가상 객체를 이동시키라는 상기 요청에 대응하는 상기 입력을 수신한 후에, 상기 개개의 가상 객체는 상기 3차원 환경에서 상기 사용자로부터 상기 제1 거리와 상이한 제2 거리에 있고, 상기 개개의 가상 객체는 상기 제1 크기와 상이한 제2 크기로 디스플레이되는, 방법.
  10. 제1항에 있어서,
    상기 3차원 환경에서 상기 개개의 가상 객체를 이동시키라는 상기 요청에 대응하는 상기 입력을 수신하는 것에 응답하여:
    상기 개개의 가상 객체를 이동시키라는 상기 요청에 대응하는 상기 입력이 상기 3차원 환경 내의 사용자와 연관된 위치와 일치하는 상기 3차원 환경 내의 개개의 위치에 대한 것이고, 상기 3차원 환경에서 상기 개개의 가상 객체를 이동시키라는 상기 요청에 대응하는 상기 입력이 종료되었다는 결정에 따라, 상기 3차원 환경에서 상기 개개의 위치와 상이한 제2 개개의 위치에 상기 개개의 가상 객체를 디스플레이하는 단계를 더 포함하는, 방법.
  11. 제10항에 있어서,
    상기 3차원 환경에서 상기 개개의 가상 객체를 이동시키라는 상기 요청에 대응하는 상기 입력을 수신하는 것에 응답하여:
    상기 개개의 가상 객체를 이동시키라는 상기 요청에 대응하는 상기 입력이 상기 3차원 환경 내의 상기 사용자와 연관된 위치와 일치하는 상기 3차원 환경 내의 상기 개개의 위치로 상기 가상 객체를 이동시키라는 요청이라는 결정에 따라, 상기 3차원 환경 내의 상기 개개의 위치에 상기 개개의 가상 객체를 디스플레이하는 단계;
    상기 3차원 환경 내의 상기 개개의 위치에 상기 개개의 가상 객체를 디스플레이하는 동안, 3차원에서 상기 개개의 가상 객체를 이동시키라는 상기 요청에 대응하는 상기 입력의 종료를 검출하는 단계; 및
    상기 3차원에서 상기 개개의 가상 객체를 이동시키라는 상기 요청에 대응하는 상기 입력의 종료를 검출하는 것에 응답하여, 상기 3차원 환경 내의 상기 제2 개개의 위치로 상기 개개의 가상 객체를 이동시키는 단계를 더 포함하는, 방법.
  12. 제11항에 있어서,
    상기 3차원 환경에서 상기 개개의 가상 객체를 이동시키라는 상기 요청에 대응하는 상기 입력을 수신하는 것에 응답하여:
    상기 개개의 가상 객체를 이동시키라는 상기 요청에 대응하는 상기 입력이 상기 3차원 환경 내의 상기 사용자와 연관된 위치의 임계 거리 내에 있는 상기 3차원 환경 내의 상기 개개의 위치로 상기 가상 객체를 이동시키라는 요청이라는 결정에 따라, 상기 3차원 환경에서 상기 개개의 위치와 상이한 상기 3차원 환경 내의 상기 제2 개개의 위치에 상기 개개의 가상 객체를 디스플레이하는 단계를 더 포함하는, 방법.
  13. 제1항에 있어서,
    상기 3차원 환경을 디스플레이하는 동안:
    상기 개개의 실제 객체의 표현이 상기 3차원 환경에서 상기 전자 디바이스의 제1 사용자의 위치와 제2 사용자의 표현 사이에 있다는 결정에 따라, 상기 디스플레이 생성 컴포넌트를 통해, 상기 개개의 실제 객체의 표현 상에 상기 제2 사용자의 표현의 시각적 표시를 디스플레이하는 단계를 더 포함하는, 방법.
  14. 제1항에 있어서,
    상기 개개의 가상 객체의 적어도 일부가 상기 3차원 환경에서의 상기 개개의 실제 객체의 표현의 상기 제1 부분에 대응하는 상기 3차원 환경의 일부를 점유하는 동안, 그리고 상기 개개의 실제 객체의 표현의 상기 제2 부분의 디스플레이가 수정되는 동안, 상기 하나 이상의 입력 디바이스들을 통해, 상기 3차원 환경에서 상기 개개의 가상 객체를 추가로 이동시키라는 요청에 대응하는 추가적인 입력을 수신하는 단계; 및
    상기 추가적인 입력을 수신한 것에 응답하여:
    상기 추가적인 입력에 따라 상기 3차원 환경에서 상기 개개의 가상 객체를 추가로 이동시키는 단계; 및
    상기 개개의 가상 객체의 추가적 이동이, 상기 개개의 가상 객체의 적어도 제2 부분으로 하여금 상기 3차원 환경에서의 상기 개개의 실제 객체의 표현의 상기 제1 부분과 상이한 제3 부분에 대응하는 상기 3차원 환경의 제2 부분을 점유하게 한다는 결정에 따라, 상기 개개의 실제 객체의 표현의 상기 제3 부분을 둘러싸는 상기 개개의 실제 객체의 표현의 상기 제2 부분과 상이한 제4 부분의 디스플레이를 수정하는 단계를 더 포함하는, 방법.
  15. 제1항에 있어서,
    개개의 실제 객체의 표현의 상기 제2 부분은 상기 개개의 가상 객체의 경계의 임계 거리 내에 있는 상기 개개의 실제 객체의 표현의 하나 이상의 부분들을 포함하고, 상기 개개의 가상 객체의 경계의 상기 임계 거리보다 멀리 있는 상기 개개의 실제 객체의 표현의 하나 이상의 부분들을 포함하지 않는, 방법.
  16. 전자 디바이스로서,
    하나 이상의 프로세서들;
    메모리; 및
    하나 이상의 프로그램들을 포함하고, 상기 하나 이상의 프로그램들은, 상기 메모리에 저장되고, 상기 하나 이상의 프로세서들에 의해 실행되도록 구성되고, 상기 하나 이상의 프로그램들은 제1항 내지 제15항의 방법들 중 어느 한 항의 방법을 수행하기 위한 명령어들을 포함하는, 전자 디바이스.
  17. 하나 이상의 프로그램들을 저장하는 비일시적 컴퓨터 판독가능 저장 매체로서, 상기 하나 이상의 프로그램들은, 전자 디바이스의 하나 이상의 프로세서들에 의해 실행될 때, 상기 전자 디바이스로 하여금, 제1항 내지 제15항의 방법들 중 어느 한 항의 방법을 수행하게 하는 명령어들을 포함하는, 비일시적 컴퓨터 판독가능 저장 매체.
  18. 삭제
  19. 삭제
  20. 삭제
  21. 삭제
  22. 삭제
  23. 삭제
  24. 삭제
  25. 삭제
  26. 삭제
  27. 삭제
  28. 삭제
  29. 삭제
  30. 삭제
  31. 삭제
  32. 삭제
  33. 삭제
  34. 삭제
  35. 삭제
  36. 삭제
  37. 삭제
  38. 삭제
  39. 삭제
  40. 삭제
  41. 삭제
  42. 삭제
  43. 삭제
  44. 삭제
  45. 삭제
  46. 삭제
  47. 삭제
  48. 삭제
  49. 삭제
  50. 삭제
  51. 삭제
  52. 삭제
  53. 삭제
  54. 삭제
  55. 삭제
  56. 삭제
  57. 삭제
  58. 삭제
  59. 삭제
  60. 삭제
  61. 삭제
  62. 삭제
  63. 삭제
  64. 삭제
  65. 삭제
  66. 삭제
  67. 삭제
  68. 삭제
  69. 삭제
  70. 삭제
  71. 삭제
  72. 삭제
  73. 삭제
  74. 삭제
  75. 삭제
  76. 삭제
  77. 삭제
  78. 삭제
  79. 삭제
  80. 삭제
  81. 삭제
  82. 삭제
  83. 삭제
  84. 삭제
  85. 삭제
  86. 삭제
  87. 삭제
  88. 삭제
  89. 삭제
  90. 삭제
  91. 삭제
  92. 삭제
  93. 삭제
  94. 삭제
  95. 삭제
  96. 삭제
  97. 삭제
  98. 삭제
  99. 삭제
  100. 삭제
  101. 삭제
  102. 삭제
  103. 삭제
  104. 삭제
  105. 삭제
  106. 삭제
  107. 삭제
  108. 삭제
  109. 삭제
  110. 삭제
  111. 삭제
  112. 삭제
KR1020237010010A 2020-09-25 2021-09-17 환경에서 객체들을 조작하기 위한 방법들 KR102596341B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020237036954A KR20230152826A (ko) 2020-09-25 2021-09-17 환경에서 객체들을 조작하기 위한 방법들

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US202063083720P 2020-09-25 2020-09-25
US63/083,720 2020-09-25
PCT/US2021/050948 WO2022066535A2 (en) 2020-09-25 2021-09-17 Methods for manipulating objects in an environment

Related Child Applications (1)

Application Number Title Priority Date Filing Date
KR1020237036954A Division KR20230152826A (ko) 2020-09-25 2021-09-17 환경에서 객체들을 조작하기 위한 방법들

Publications (2)

Publication Number Publication Date
KR20230048152A KR20230048152A (ko) 2023-04-10
KR102596341B1 true KR102596341B1 (ko) 2023-11-01

Family

ID=78135173

Family Applications (2)

Application Number Title Priority Date Filing Date
KR1020237010010A KR102596341B1 (ko) 2020-09-25 2021-09-17 환경에서 객체들을 조작하기 위한 방법들
KR1020237036954A KR20230152826A (ko) 2020-09-25 2021-09-17 환경에서 객체들을 조작하기 위한 방법들

Family Applications After (1)

Application Number Title Priority Date Filing Date
KR1020237036954A KR20230152826A (ko) 2020-09-25 2021-09-17 환경에서 객체들을 조작하기 위한 방법들

Country Status (7)

Country Link
US (2) US11557102B2 (ko)
EP (1) EP4200690A2 (ko)
JP (1) JP2023543746A (ko)
KR (2) KR102596341B1 (ko)
CN (2) CN117032450A (ko)
AU (2) AU2021347112B2 (ko)
WO (1) WO2022066535A2 (ko)

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11227445B1 (en) 2020-08-31 2022-01-18 Facebook Technologies, Llc Artificial reality augments and surfaces
US11176755B1 (en) 2020-08-31 2021-11-16 Facebook Technologies, Llc Artificial reality augments and surfaces
EP3985486B1 (en) * 2020-10-13 2024-04-17 Hiroyuki Ikeda Glasses-type terminal
US11113893B1 (en) * 2020-11-17 2021-09-07 Facebook Technologies, Llc Artificial reality environment with glints displayed by an extra reality device
US11409405B1 (en) 2020-12-22 2022-08-09 Facebook Technologies, Llc Augment orchestration in an artificial reality environment
EP4295314A1 (en) 2021-02-08 2023-12-27 Sightful Computers Ltd Content sharing in extended reality
US11762952B2 (en) 2021-06-28 2023-09-19 Meta Platforms Technologies, Llc Artificial reality application lifecycle
WO2023009580A2 (en) 2021-07-28 2023-02-02 Multinarity Ltd Using an extended reality appliance for productivity
US20230092103A1 (en) * 2021-09-21 2023-03-23 Meta Platforms Technologies, Llc Content linking for artificial reality environments
US11798247B2 (en) 2021-10-27 2023-10-24 Meta Platforms Technologies, Llc Virtual object structures and interrelationships
US11748944B2 (en) 2021-10-27 2023-09-05 Meta Platforms Technologies, Llc Virtual object structures and interrelationships
US11948263B1 (en) 2023-03-14 2024-04-02 Sightful Computers Ltd Recording the complete physical and extended reality environments of a user
US20230384907A1 (en) * 2022-04-11 2023-11-30 Apple Inc. Methods for relative manipulation of a three-dimensional environment
US20230350539A1 (en) * 2022-04-21 2023-11-02 Apple Inc. Representations of messages in a three-dimensional environment
US20240087256A1 (en) * 2022-09-14 2024-03-14 Apple Inc. Methods for depth conflict mitigation in a three-dimensional environment
US20240095984A1 (en) * 2022-09-16 2024-03-21 Apple Inc. System and method of spatial groups in multi-user communication sessions
US20240094863A1 (en) * 2022-09-16 2024-03-21 Apple Inc. System and method of application-based three-dimensional refinement in multi-user communication sessions
US11947862B1 (en) 2022-12-30 2024-04-02 Meta Platforms Technologies, Llc Streaming native application content to artificial reality devices

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016194744A (ja) 2015-03-31 2016-11-17 ソニー株式会社 情報処理装置及び情報処理方法、並びにコンピューター・プログラム
US20180158222A1 (en) 2016-12-01 2018-06-07 Canon Kabushiki Kaisha Image processing apparatus displaying image of virtual object and method of displaying the same

Family Cites Families (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7614008B2 (en) 2004-07-30 2009-11-03 Apple Inc. Operation of a computer with touch screen interface
US20060033724A1 (en) 2004-07-30 2006-02-16 Apple Computer, Inc. Virtual input device placement on a touch screen user interface
EP2256605B1 (en) 1998-01-26 2017-12-06 Apple Inc. Method and apparatus for integrating manual input
US7844914B2 (en) 2004-07-30 2010-11-30 Apple Inc. Activating virtual keys of a touch-screen virtual keyboard
US7663607B2 (en) 2004-05-06 2010-02-16 Apple Inc. Multipoint touchscreen
US8479122B2 (en) 2004-07-30 2013-07-02 Apple Inc. Gestures for touch sensitive input devices
US7688306B2 (en) 2000-10-02 2010-03-30 Apple Inc. Methods and apparatuses for operating a portable device based on an accelerometer
US7218226B2 (en) 2004-03-01 2007-05-15 Apple Inc. Acceleration-based theft detection system for portable electronic devices
US6677932B1 (en) 2001-01-28 2004-01-13 Finger Works, Inc. System and method for recognizing touch typing under limited tactile feedback conditions
US6570557B1 (en) * 2001-02-10 2003-05-27 Finger Works, Inc. Multi-touch system and method for emulating modifier keys via fingertip chords
US11275405B2 (en) 2005-03-04 2022-03-15 Apple Inc. Multi-functional hand-held device
US7653883B2 (en) 2004-07-30 2010-01-26 Apple Inc. Proximity detector in handheld device
US8381135B2 (en) 2004-07-30 2013-02-19 Apple Inc. Proximity detector in handheld device
US7633076B2 (en) 2005-09-30 2009-12-15 Apple Inc. Automated response to and sensing of user activity in portable devices
US7657849B2 (en) 2005-12-23 2010-02-02 Apple Inc. Unlocking a device by performing gestures on an unlock image
US8279180B2 (en) 2006-05-02 2012-10-02 Apple Inc. Multipoint touch surface controller
US8006002B2 (en) 2006-12-12 2011-08-23 Apple Inc. Methods and systems for automatic configuration of peripherals
US7957762B2 (en) 2007-01-07 2011-06-07 Apple Inc. Using ambient light sensor to augment proximity sensor output
US9933937B2 (en) 2007-06-20 2018-04-03 Apple Inc. Portable multifunction device, method, and graphical user interface for playing online videos
WO2013169849A2 (en) 2012-05-09 2013-11-14 Industries Llc Yknots Device, method, and graphical user interface for displaying user interface objects corresponding to an application
CN104903834B (zh) 2012-12-29 2019-07-05 苹果公司 用于在触摸输入到显示输出关系之间过渡的设备、方法和图形用户界面
US9245388B2 (en) * 2013-05-13 2016-01-26 Microsoft Technology Licensing, Llc Interactions of virtual objects with surfaces
US9230368B2 (en) * 2013-05-23 2016-01-05 Microsoft Technology Licensing, Llc Hologram anchoring and dynamic positioning
EP3458938A1 (en) * 2016-05-17 2019-03-27 Google LLC Methods and apparatus to project contact with real objects in virtual reality environments
US10290152B2 (en) * 2017-04-03 2019-05-14 Microsoft Technology Licensing, Llc Virtual object user interface display
CN113238651A (zh) * 2018-07-02 2021-08-10 苹果公司 用于显示系统的基于聚焦的调试和检查

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016194744A (ja) 2015-03-31 2016-11-17 ソニー株式会社 情報処理装置及び情報処理方法、並びにコンピューター・プログラム
US20180158222A1 (en) 2016-12-01 2018-06-07 Canon Kabushiki Kaisha Image processing apparatus displaying image of virtual object and method of displaying the same

Also Published As

Publication number Publication date
AU2021347112B2 (en) 2023-11-23
US11557102B2 (en) 2023-01-17
JP2023543746A (ja) 2023-10-18
CN117032450A (zh) 2023-11-10
EP4200690A2 (en) 2023-06-28
KR20230048152A (ko) 2023-04-10
US20220101612A1 (en) 2022-03-31
CN116438505A (zh) 2023-07-14
WO2022066535A3 (en) 2022-05-05
KR20230152826A (ko) 2023-11-03
US20230154122A1 (en) 2023-05-18
AU2024201230A1 (en) 2024-03-14
WO2022066535A2 (en) 2022-03-31
AU2021347112A1 (en) 2023-05-11

Similar Documents

Publication Publication Date Title
KR102596341B1 (ko) 환경에서 객체들을 조작하기 위한 방법들
US11768579B2 (en) Devices, methods, and graphical user interfaces for interacting with three-dimensional environments
US20210191600A1 (en) Devices, Methods, and Graphical User Interfaces for Displaying Applications in Three-Dimensional Environments
US20220121344A1 (en) Methods for interacting with virtual controls and/or an affordance for moving virtual objects in virtual environments
CN114721470A (zh) 用于与三维环境进行交互的设备、方法和图形用户界面
US20220253136A1 (en) Methods for presenting and sharing content in an environment
US11567625B2 (en) Devices, methods, and graphical user interfaces for interacting with three-dimensional environments
US20230092282A1 (en) Methods for moving objects in a three-dimensional environment
US11934569B2 (en) Devices, methods, and graphical user interfaces for interacting with three-dimensional environments
US20230384907A1 (en) Methods for relative manipulation of a three-dimensional environment
US20230316634A1 (en) Methods for displaying and repositioning objects in an environment
US20230343049A1 (en) Obstructed objects in a three-dimensional environment
US20230334808A1 (en) Methods for displaying, selecting and moving objects and containers in an environment
US20230252737A1 (en) Devices, methods, and graphical user interfaces for interacting with virtual objects using hand gestures
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
US20230093979A1 (en) Devices, methods, and graphical user interfaces for content applications
US20230152935A1 (en) Devices, methods, and graphical user interfaces for presenting virtual objects in virtual environments
US20230350539A1 (en) Representations of messages in a three-dimensional environment
US20240103614A1 (en) Devices, methods, for interacting with graphical user interfaces
US20240028177A1 (en) Devices, methods, and graphical user interfaces for interacting with media and three-dimensional environments
US20230092874A1 (en) Devices, Methods, and Graphical User Interfaces for Interacting with Three-Dimensional Environments
KR20240047458A (ko) 미디어 및 3차원 환경들과의 상호작용을 위한 디바이스들, 방법들 및 그래픽 사용자 인터페이스들
WO2024064350A1 (en) User interfaces for capturing stereoscopic media
KR20240048522A (ko) 3차원 환경들과 상호작용하기 위한 디바이스들, 방법들, 및 그래픽 사용자 인터페이스들

Legal Events

Date Code Title Description
A201 Request for examination
A302 Request for accelerated examination
E701 Decision to grant or registration of patent right