KR102021135B1 - 가상 현실 환경에서의 내비게이션을 위한 제어 시스템 - Google Patents

가상 현실 환경에서의 내비게이션을 위한 제어 시스템 Download PDF

Info

Publication number
KR102021135B1
KR102021135B1 KR1020187013796A KR20187013796A KR102021135B1 KR 102021135 B1 KR102021135 B1 KR 102021135B1 KR 1020187013796 A KR1020187013796 A KR 1020187013796A KR 20187013796 A KR20187013796 A KR 20187013796A KR 102021135 B1 KR102021135 B1 KR 102021135B1
Authority
KR
South Korea
Prior art keywords
virtual
reference point
feature
user
disk
Prior art date
Application number
KR1020187013796A
Other languages
English (en)
Other versions
KR20180069041A (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 구글 엘엘씨
Publication of KR20180069041A publication Critical patent/KR20180069041A/ko
Application granted granted Critical
Publication of KR102021135B1 publication Critical patent/KR102021135B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/10Geometric effects
    • G06T15/20Perspective computation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0481Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
    • G06F3/04815Interaction with a metaphor-based environment or interaction object displayed as three-dimensional, e.g. changing the user viewpoint with respect to the environment or object
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/16Constructional details or arrangements
    • G06F1/1613Constructional details or arrangements for portable computers
    • G06F1/163Wearable computers, e.g. on a belt
    • 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/012Head 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/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/011Arrangements for interaction with the human body, e.g. for user immersion in virtual reality
    • G06F3/014Hand-worn input/output arrangements, e.g. data gloves
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/017Gesture based interaction, e.g. based on a set of recognized hand gestures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/03Arrangements for converting the position or the displacement of a member into a coded form
    • G06F3/0304Detection arrangements using opto-electronic means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/03Arrangements for converting the position or the displacement of a member into a coded form
    • G06F3/033Pointing devices displaced or positioned by the user, e.g. mice, trackballs, pens or joysticks; Accessories therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0484Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
    • G06F3/04842Selection of displayed objects or displayed text elements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0484Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
    • G06F3/04845Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range for image manipulation, e.g. dragging, rotation, expansion or change of colour
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/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/0486Drag-and-drop
    • 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/006Mixed reality
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T3/00Geometric image transformations in the plane of the image
    • G06T3/20Linear translation of whole images or parts thereof, e.g. panning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T3/00Geometric image transformations in the plane of the image
    • G06T3/40Scaling of whole images or parts thereof, e.g. expanding or contracting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2203/00Indexing scheme relating to G06F3/00 - G06F3/048
    • G06F2203/038Indexing scheme relating to G06F3/038
    • G06F2203/0384Wireless input, i.e. hardware and software details of wireless interface arrangements for pointing devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2203/00Indexing scheme relating to G06F3/00 - G06F3/048
    • G06F2203/048Indexing scheme relating to G06F3/048
    • G06F2203/04806Zoom, i.e. interaction techniques or interactors for controlling the zooming operation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2210/00Indexing scheme for image generation or computer graphics
    • G06T2210/21Collision detection, intersection

Landscapes

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

Abstract

가상 현실 환경에서 내비게이팅하기 위한 제어 시스템에서, 사용자는 가상 환경에서 가상 피처를 선택하고, 선택된 피처 상에 앵커 지점을 설정할 수 있다. 이어서, 사용자는, 가상 환경에서 사용자의 시야 내에서 설정된 앵커 지점에서 피처의 부분들을 유지하면서, 피처에 대해 이동하거나 포지션을 조정하고 그리고/또는 가상 환경에서 피처를 이동 및/또는 스케일링할 수 있다.

Description

가상 현실 환경에서의 내비게이션을 위한 제어 시스템
[0001] 본 출원은 2016년 11월 15일자로 출원된 명칭이 "CONTROL SYSTEM FOR NAVIGATION IN VIRTUAL REALITY ENVIRONMENT"인 미국 정식 특허 출원 제15/352,162호의 계속 출원이며, 이를 우선권으로 주장하며, 상기 특허는 2016 년 2월 8일자로 출원된 명칭이 "CONTROL SYSTEM FOR NAVIGATION IN VIRTUAL REALITY ENVIRONMENT"인 미국 가특허 출원 제62/292,602호를 우선권으로 주장하고, 상기 출원들의 전체 개시내용들은 인용에 의해 본원에 통합된다.
[0002] 본 출원은 또한 2016년 2월 8일자로 출원된 미국 가특허 출원 제 62/292,602 호를 우선권으로 주장하며, 상기 출원의 전체 개시내용은 인용에 의해 본원에 통합된다.
[0003] 본 출원은 일반적으로 증강 현실 및/또는 가상 현실 환경에서의 이동 및 스케일링에 관한 것이다.
[0004] 증강 현실(AR) 및/또는 가상 현실(VR) 시스템은 3차원(3D) 몰입형(immersive) 가상 환경을 생성할 수 있다. 사용자는, 예컨대, 사용자가 디스플레이 디바이스를 볼 때 들여다 보는 디스플레이, 안경 또는 고글을 포함하는 헬멧 또는 다른 머리 장착 디바이스, 센서들이 설치된 글러브들, 센서들을 포함하는 외부 핸드헬드 디바이스들 및 다른 그러한 전자 디바이스들과 같은 다양한 전자 디바이스들과의 상호작용을 통해 이러한 3D 몰입형 가상 환경을 경험할 수 있다. 일단 3D 가상 환경에 몰입되면, 사용자는, 가상 환경과 상호작용하고 가상 환경과의 상호작용을 개인화하기 위한, 전자 디바이스의 물리적 이동 및/또는 조작(manipulation)을 통해, 가상 환경을 통해 이동하고 가상 환경의 다른 영역들로 이동할 수 있다.
[0005] 일 양상에서, 방법은 가상 환경을 생성하는 단계, 머리 장착 디스플레이 디바이스와 통신하는 제어기의 사용자 인터페이스에서 제1 입력을 검출하는 단계, 제1 입력에 대한 응답으로 가상 환경에서 선택된 가상 피처(virtual feature) 상에 앵커 지점(anchor point)을 설정하는 단계, 제2 입력을 검출하는 단계, 및 제2 입력에 대한 응답으로, 앵커 지점을 둘러싸는 피처의 영역을 규정하는 단계, 및 가상 환경의 사용자 시야 내의 규정된 영역 내에 가상 피처의 부분을 유지하면서, 가상 환경 내의 가상 피처의 포지션 또는 스케일 중 적어도 하나를 조정하는 단계를 포함할 수 있다.
[0006] 다른 양상에서, 시스템은 몰입형 가상 환경을 생성하도록 구성된 컴퓨팅 디바이스를 포함할 수 있고, 컴퓨팅 디바이스는 실행 가능한 명령들을 저장하는 메모리, 및 명령들을 실행하도록 구성된 프로세서를 포함한다. 프로세서는 컴퓨팅 디바이스로 하여금 가상 환경을 생성하게 하고, 머리 장착 디스플레이 디바이스와 통신하는 제어기의 사용자 인터페이스에서 제1 입력을 검출하게 하고, 제1 입력에 대한 응답으로 가상 환경에서 선택된 가상 피처 상에 앵커 지점을 설정하게 하고, 제2 입력을 검출하게 하고, 그리고 제2 입력에 대한 응답으로, 앵커 지점을 둘러싸는 피처의 영역을 규정하게 하고, 그리고 가상 환경의 사용자 시야 내의 규정된 영역 내에 가상 피처의 부분을 유지하면서, 가상 환경 내의 가상 피처의 포지션 또는 스케일 중 적어도 하나를 조정하게 할 수 있다.
[0007] 하나 이상의 구현들의 세부사항들이 첨부된 도면들 및 아래의 설명에 제시된다. 다른 특징들은 설명 및 도면들, 및 청구항들로부터 명백해질 것이다.
[0008] 도 1은 본원에 설명된 구현들에 따른, 머리 장착 디스플레이 디바이스 및 제어기를 포함하는 가상 현실 시스템의 예시적인 구현이다.
[0009] 도 2a 및 2b는 예시적인 머리 장착 디스플레이의 사시도들이고, 도 2c는 본원에 설명된 구현들에 따른 제어기를 예시한다.
[0010] 도 3은 본원에 설명된 구현들에 따른 머리 장착 전자 디바이스 및 제어기의 블록도이다.
[0011] 도 4a-4f, 5 및 6a-6f는 본원에 설명된 구현들에 따른, 증강 및/또는 가상 현실 환경에서의 내비게이션 및 스케일링을 예시하는 3인칭 뷰들이다.
[0012] 도 7a 및 7b는 본원에 설명된 구현에 따른, 증강 및/또는 가상 현실 환경에서 가상 광구(virtual photo sphere)에서의 이동을 예시한다.
[0013] 도 8은 본원에 설명된 구현들에 따른, 증강 및/또는 가상 현실 환경에서의 내비게이팅 및 스케일링 방법의 흐름도이다.
[0014] 도 9는 본원에 설명된 기술들을 구현하는데 사용될 수 있는 컴퓨터 디바이스 및 모바일 컴퓨터 디바이스의 예를 도시한다.
[0015] 예컨대, HMD(head mounted display) 디바이스를 착용하여 3D 가상 환경에 몰입된 사용자는 3D 가상 환경을 탐색하고, 다양한 상이한 타입들의 입력들을 통해 3D 가상 환경과 상호작용할 수 있다. 예컨대, 이러한 입력들은, 예컨대, HMD로부터 분리된 전자 디바이스의 조작, HMD 자체의 조작을 포함하고 그리고/또는 손/팔 제스처들, 머리 움직임 및/또는 머리 및/또는 눈 방향 시선 등을 통한 물리적 상호작용을 포함할 수 있다. 사용자는, 예컨대, 가상 환경을 통한 이동 또는 사용자 이동에 대해 가상 환경의 이동, 가상 환경의 제1 영역으로부터 가상 환경의 제2 영역으로의 이동, 전환(transitioning) 또는 텔레포팅(teleporting), 가상 환경이 경험되는 관점의 조정 등과 같이, 가상 환경에서의 특정 동작을 실행하기 위한 이러한 상이한 타입들의 상호작용들 중 하나 이상을 구현할 수 있다.
[0016] 본원에 설명된 구현들에 따른 시스템 및 방법은 가상 환경에서 피처들의 조작을 가능하게 할 수 있고, 가상 환경을 통한 이동 또는 내비게이션을 가능하게 할 수 있고, 사용자가 상이한 관점들 및 스케일들로부터 가상 환경을 보고 경험하도록 허용할 수 있다. 본원에 설명된 구현들에 따른 시스템 및 방법은 또한, 가상 현실에서 경험되는 동적 시각적 이동과 동적 시각적 이동에 대응하는 실제, 물리적 모션의 부재(lack) 사이의 분리와 때때로 연관되는 멀미(motion sickness) 및 방향 감각 상실(disorientation)을 회피하면서, 가상 현실에서 실질적으로 무결절(seamless) 가상 이동 경험을 사용자에게 제공할 수 있다.
[0017] 도 1에 도시된 예시적인 구현에서, HMD(100)를 착용한 사용자는 핸드헬드 전자 디바이스(102)를 잡고 있다. 핸드헬드 전자 디바이스(102)는, 예컨대, HMD(100)에 의해 생성된 몰입형 가상 환경에서의 상호작용을 위해 HMD(100)와 페어링되고 이와 통신할 수 있는 제어기, 자이로마우스, 스마트폰, 조이스틱, 또는 다른 휴대용 제어기(들)일 수 있다. 이후에, 논의 및 예시를 간단하고 용이하게 하기 위해, 핸드헬드 전자 디바이스(102)는 제어기(102)로 지칭될 것이다. 제어기(102)는, 예컨대, 유선 연결 또는, 예컨대, WiFi 또는 블루투스 연결과 같은 무선 연결을 통해 HMD(100)와 동작 가능하게 커플링되거나 HMD(100)와 페어링될 수 있다. 제어기(102) 및 HMD(100)의 페어링 또는 동작 가능한 커플링은 제어기(102)와 HMD(100) 사이의 통신 및 제어기(102)와 HMD(100) 사이의 데이터 교환을 제공할 수 있다. 이는 제어기(102)가 HMD(100)에 의해 생성된 몰입형 가상 환경에서 상호작용하기 위해 HMD(100)와 통신하는 제어기로서 기능하도록 허용할 수 있다. 즉, 제어기(102)는 복수의 상이한 방식들로 조작될 수 있다. 제어기(102)의 조작은 HMD(100)에 의해 생성된 몰입형 가상 환경에서 대응하는 선택, 또는 이동 또는 다른 타입의 상호작용으로 변환될 수 있다. 이는, 예컨대, 가상 객체와의 상호작용, 조작 또는 조정, 가상 환경에 대한 스케일 또는 관점의 변화, 가상 환경의 현재 위치로부터 가상 환경 내의 선택된 목적지 또는 피처로의 사용자의 이동(예컨대, 내비게이션, 텔레포테이션(teleportation), 이송) 및 다른 그러한 상호작용들을 포함할 수 있다. 일부 구현들에서, 위에서 논의된 바와 같이, 사용자는, 별개의 제어기의 사용에 의존하지 않고서, 사용자의 손들을 검출 및 추적하도록 설비된 시스템에 의해 검출된 손 제스처들과 같은 물리적 제스처들을 통해 가상 환경에서 가상 피처들과 상호작용할 수 있다.
[0018] 도 2a 및 도 2b는, 예컨대, 도 1의 사용자가 착용한 HMD(100)와 같은 예시적인 HMD의 사시도들이고, 도 2c는, 예컨대, 도 1에 도시된 제어기(102)와 같은 예시적인 제어기를 예시한다.
[0019] 제어기(102)는 디바이스(102)의 내부 컴포넌트들이 수용되는 하우징(103), 및 사용자가 액세스 가능한 하우징(103) 외부의 사용자 인터페이스(104)를 포함할 수 있다. 사용자 인터페이스(104)는, 예컨대, 사용자 터치 입력을 수신하도록 구성된 터치 감지 표면(106), 버튼들, 손잡이들(knobs), 조이스틱들, 토글들, 슬라이드들 및 다른 그러한 조작 디바이스들을 포함하는 조작 디바이스들(105)을 포함하는 복수의 상이한 타입들의 조작 디바이스들을 포함할 수 있다. 일부 구현들에서, 제어기(102)는 또한, 예컨대, 사용자 인터페이스(104)에서 수신된 사용자 입력에 대한 응답으로, 하우징(103) 내의 포트를 통해 광, 예컨대, 빔 또는 광선(ray)을 선택적으로 방출하도록 구성된 광원(108)을 포함할 수 있다.
[0020] HMD(100)는, 예컨대, 헤드폰들에 장착된 스피커들을 포함하고 또한 프레임(120)에 커플링된 오디오 출력 디바이스(130)와 함께, 프레임(120)에 커플링된 하우징(110)을 포함할 수 있다. 도 2b에서, 하우징(110)의 전면부(110a)는, 하우징(110)에 수용된 컴포넌트들 중 일부가 보일 수 있도록, 하우징(110)의 기저부(110b)로부터 멀어지도록 회전된다. 디스플레이(140)는 하우징(110)의 전면부(110a)의 내부 대면 측(interior facing side)에 장착될 수 있다. 전면부(110a)가 하우징(110)의 기저부(110b)에 대해 닫힌 위치에 있을 때, 렌즈(150)는 사용자의 눈들과 디스플레이(140) 사이에서 하우징(110)에 장착될 수 있다. 일부 구현들에서, HMD(100)는 예컨대, 오디오 센서(들), 이미지/광 센서(들), 위치 센서(들)(예컨대, 자이로스코프 및 가속도계를 포함하는 관성 측정 유닛) 등과 같은 다양한 센서들을 포함하는 감지 시스템(160)을 포함할 수 있다. HMD(100)는 또한 HMD(100)의 동작을 가능하게 하는 다양한 제어 시스템 디바이스들 및 프로세서(190)를 포함하는 제어 시스템(170)을 포함할 수 있다.
[0021] 일부 구현들에서, HMD(100)는 정지 영상 및 동영상을 캡처하는 카메라(180)를 포함할 수 있다. 카메라(180)에 의해 캡처된 이미지들은 실세계에서 사용자 및/또는 제어기(102)의 물리적 포지션을 추적하는 것을 돕는데 사용될 수 있고, 그리고/또는 패스 스루 모드(pass through mode)에서 디스플레이(140)를 통해 사용자에게 디스플레이될 수 있어서, 하우징(110)을 사용자의 가시선 밖으로 이동시키기 위해 HMD(100)를 제거하거나 그렇지 않다면 HMD(100)의 구성을 변경하지 않고서, 사용자가 일시적으로 가상 환경을 떠나고 물리적 환경으로 복귀하도록 허용한다.
[0022] 일부 구현들에서, HMD(100)는 사용자의 시선(eye gaze)을 검출 및 추적하기 위한 시선 추적 디바이스(165)를 포함할 수 있다. 시선 추적 디바이스(165)는, 예컨대, 사용자의 시선의 방향 및 이동을 검출하고 추적하기 위해, 예컨대, 동공과 같이 사용자의 눈들의 이미지들, 예컨대, 사용자의 눈들의 특정 부분을 캡처하기 위한 이미지 센서(165A) 또는 다수의 이미지 센서들(165A)을 포함할 수 있다. 일부 구현들에서, HMD(100)는, 검출된 시선이 몰입형 가상 체험에서 대응하는 상호작용으로 변환될 사용자 입력으로서 프로세싱되도록 구성될 수 있다.
[0023] 증강 및/또는 가상 현실 환경에서 내비게이션의 제어 및 조작을 제공하는 시스템의 블록도가 도 3에 도시된다. 시스템은 제2 전자 디바이스(302)와 통신하는 제1 전자 디바이스(300)를 포함할 수 있다. 제1 전자 디바이스(300)는, 예컨대, 도 1, 2a 및 2b와 관련하여 위에 설명된 바와 같이 몰입형 가상 환경을 생성하는 HMD일 수 있고, 제2 전자 디바이스(302)는, 예컨대, 도 1 및 2c와 관련하여 위에 논의된 바와 같은 제1 전자 디바이스(300)에 의해 생성된 몰입형 가상 환경과의 사용자 상호작용을 가능하게 하기 위해 제1 전자 디바이스(300)와 통신하는 제어기일 수 있다.
[0024] 제1 전자 디바이스(300)는, 도 2a 및 2b에 도시된 감지 시스템(160) 및 제어 시스템(170)과 각각 유사할 수 있는 감지 시스템(360) 및 제어 시스템(370)을 포함할 수 있다. 감지 시스템(360)은, 예컨대 광 센서, 오디오 센서, 이미지 센서, 거리/근접 센서, 위치 센서(예컨대, 자이로스코프 및 가속도계를 포함하는 관성 측정 유닛) 및/또는 다른 센서들을 포함하는 하나 이상의 상이한 유형의 센서들 및/또는 예컨대, 도 2b에 도시된 시선 추적 디바이스(gaze tracking device)(165)와 같이, 사용자의 시선(eye gaze)을 검출 및 추적하도록 배치된 이미지 센서를 포함하는 다른 조합(들)의 센서들을 포함할 수 있다. 제어 시스템(370)은 예컨대, 전력/일시정지(pause) 제어 디바이스, 오디오 및 비디오 제어 디바이스들, 광 제어 디바이스, 전환 제어 디바이스(transition control device), 및/또는 다른 그러한 디바이스들 및/또는 디바이스들의 상이한 조합(들)을 포함할 수 있다. 감지 시스템(360) 및/또는 제어 시스템(370)은 특정 구현에 따라 더 많거나 더 적은 디바이스들을 포함할 수 있다. 감지 시스템(360) 및/또는 제어 시스템(370)에 포함된 엘리먼트들은, 예컨대, 도 2a 및 2b에 도시된 HMD(100) 이외의 HMD 내에 상이한 물리적 어레인지먼트(예컨대, 상이한 물리적 위치)를 가질 수 있다. 제1 전자 디바이스(300)는 또한 감지 시스템(360) 및 제어 시스템(370)과 통신하는 프로세서(390), 메모리(380), 및 제1 전자 디바이스(300)와, 예컨대, 제2 전자 디바이스(302)와 같은 다른 외부 디바이스 사이의 통신을 제공하는 통신 모듈(350)을 포함할 수 있다.
[0025] 제2 전자 디바이스(302)는, 예컨대, 제1 전자 디바이스(300)와 같은 다른 외부 디바이스와 제2 전자 디바이스(302) 사이의 통신을 제공하는 통신 모듈(306)을 포함할 수 있다. 제1 전자 디바이스(300)와 제2 전자 디바이스(302) 간의 데이터 교환을 제공하는 것 이외에, 통신 모듈(306)은 또한 위에 설명된 바와 같이 광선 또는 빔을 방출하도록 구성될 수 있다. 예컨대, 제2 전자 디바이스(302)는, 이를테면, 카메라 및 마이크로폰에 포함되는 이미지 센서 및 오디오 센서, 관성 측정 유닛, 이를테면, 제어기 또는 스마트 폰의 터치 감지 표면에 포함되는 터치 센서, 및 다른 그러한 센서들 및/또는 센서들의 상이한 조합(들)을 포함하는 감지 시스템(304)을 포함할 수 있다. 프로세서(309)는 감지 시스템(304) 및 제2 전자 디바이스(302)의 제어 유닛(305)과 통신할 수 있으며, 제어 유닛(305)은 메모리(308)에 액세스하고 제2 전자 디바이스(302)의 전체 동작을 제어한다.
[0026] 위에 언급된 바와 같이, 예컨대, 위에 설명된 제어기(102)와 같은 제어기는 가상 환경에서의 상호작용 및 내비게이션을 위해, 때때로 위에 설명된 HMD(100)의 기능과 조합하여 사용자에 의해 조작될 수 있다. 이것의 예시적인 구현이 도 4a-4e에 도시된다.
[0027] 사용자가 경험할 가상 환경을 생성하는 HMD(100)를 착용한 사용자는 가상 환경(400)에서 가상 객체들 및 가상 피처들을 내비게이팅 및 조작하기 위해 제어기(102)를 동작시킬 수 있다. 도 4a에 도시된 바와 같이, 제어기(102)가 이동함에 따라, 제어기(102)에 대해 고정된 채로 유지될 수 있는 고정된 설정된 제어기 기준점(410)은 제어기(102)와 연관될 수 있다. 이후에, 논의 및 예시를 간단하고 용이하게 하기 위해, 설정된 제어기 기준점(410)은 가상 십자선들의 세트로서 도면들에 예시될 것이고, 설정된 제어기 기준점(410)은 한 쌍의 가상 십자선들의 교차점에 있다. 설정된 제어기 기준점(410)/가상 십자선들(410)은, 사용자가 가상 환경(400) 내의 가상 객체들 및 피처들에 대해 제어기(102)를 이동시킬 때, 제어기(102)와 함께 이동하면서 제어기(102)에 대해 고정된 포지션에 유지될 수 있다. 도 4a에 도시된 예에서, 가상 십자선들(410)은, 제어기(102)에 대해 고정된 포지션에 유지되고 본질적으로 제어기(102)와 함께 이동하는 시각적 표현 또는 아이콘을 포함한다. 가상 십자선들(410)은, 논의 및 예시를 간단하고 용이하게 하기 위해, 이후에 이러한 방식으로 표현될 것이다. 그러나, 일부 구현들에서, 가상 십자선들(410)은 제어기(102)에 대해 공간 상의 알려진 포지션(제어기(102) 및/또는 HMD(100)가 알고 있음)을 나타낼 수 있지만, 시각적 표현 또는 아이콘 형태로 사용자에게 렌더링되지는 않을 수 있어서, 가상 환경(400) 내의 가상 객체들 및 피처들에 대한 사용자의 뷰 및 액세스가 가상 십자선들(410)의 시각적 표현에 의해 가려지지 않는다.
[0028] 도 4a는 가상 피처(450)와의 사용자의 가상 상호작용의 시작을 예시하며, 가상 피처(450)가 가상 상호작용의 시작 시에 사용자에 의해 보여지는 것으로 도시된다. 도 4a에 도시된 바와 같이, 예컨대, 시간(t=0)에서, 가상 환경(400)에서 가상 피처(450)와 사용자의 상호작용의 시작에서, 사용자는 가상 피처(450)와 연관된 앵커 지점(420)을 규정할 수 있다. 도 4a에서, 앵커 지점(420)은, 예컨대, 사용자가 가상 환경(400) 내의 가상 객체들 및 피처들에 대한 포지션 및/또는 관점을 이동 및/또는 변경할 때, 사용자가 자신의 시야 내에 머물기 원하는 가상 피처(450)의 부분을 식별할 수 있다. 가상 피처(450)와 사용자의 상호작용의 시작 또는 시간(t=0)에서, 앵커 지점(420)은, 가상의 십자선들(410)을 통해 설정된 사용자 기준점(100A)으로부터 연장되고, 사용자가 기준점(100A) 및/또는 가상 십자선들(410)을 이동시킴으로써 제어될 수 있는 가상 타겟 광선(415)의 방향에 의해 규정된 가상 피처(450)의 선택된 부분과 상호교차하는 가상 타겟 광선(415)에 의해 규정될 수 있다.
[0029] 사용자 기준점(100A)은 HMD(100) 상의 설정 위치, 예컨대, 사용자의 눈들에 있거나 근처의 포지션, 사용자의 눈들 사이의 위치에 대응하는 포지션 또는 다른 설정 포지션에서 규정될 수 있다. 이러한 설정된 사용자 기준점(100A)은, 사용자, 특히 사용자의 머리가 가상 환경(400)에서 포지션/배향을 이동 및 변경할 때 HMD(100) 상에서 또는 그에 대해 설정된 대로 또는 일정하게 유지될 수 있다. 유사하게, 제어기(102)에 대한 가상 십자선들(410)의 위치/포지션/배향은, 사용자, 특히 디바이스(102)를 잡고 있는 사용자의 팔/손이 가상 환경에서 위치/포지션/배향을 변경할 때, 제어기(102) 상에서 또는 제어기(102)에 대해 설정된 대로 또는 일정한 포지션에서 유지될 수 있다. HMD(100)의 위치 및 포지션/배향 및 HMD(100)에 대한 제어기(102)의 위치 및 포지션/배향은 시스템에 의해 실질적으로 실시간으로 알려지고 추적될 수 있고, 설정된 사용자 기준점(100A)의 일정한 위치 및 제어기(102)에 대한 가상 십자선들(410)의 일정한 위치는 또한 실질적으로 실시간으로 알려지고 추적될 수 있다.
[0030] 도 4a에 도시된 예에서, 설정된 사용자 기준점(100A)으로부터 가상 십자선들(410)을 통해 선택된 앵커 지점(420)으로 연장되는 가상 타겟 광선(415)은 점선으로 표현된다. 그러나, 일부 구현들에서, 가상 타겟 광선(415)은 반드시 사용자에 의해 보여지는 시각적 표현 또는 객체로서 렌더링되지는 않아서, 가상 환경 내의 가상 객체들 및 피처들에 대한 사용자의 뷰 및 액세스가 가상 타겟 광선(420)의 시각적 표현에 의해 가려지지 않는다. 일부 구현들에서, 시각적 표시자, 예컨대, 도트는 앵커 지점(420)인 것으로 가상 타겟 광선(415)에 의해 식별된 가상 피처(450) 상의 지점에서 렌더링될 수 있다. 사용자가 앵커 지점(420)을 설정할 때, 도 4a에 도시된 가상 피처(450)에 대해 사용자의 가상 포지션으로부터의 사용자 뷰 또는 관점의 예가 도 4b에 도시된다. 도 4a에 도시된 어레인지먼트는, 예컨대, 버튼 또는 트리거를 누르는 것과 같이, 예컨대, 제어기(102)의 사용자 인터페이스(104) 상의 디바이스를 조작함으로써, 가상 피처(450)와 사용자의 상호작용의 시작, 또는 시간(t=0)을 나타낼 수 있다.
[0031] 버튼 또는 트리거의 누름(또는 제어기(102)의 사용자 인터페이스(104) 상의 다른 조작 디바이스의 작동)은, 도 4a에 도시된 바와 같이, 앵커 지점(420)을 식별 및 설정하는데 사용될 수 있다. 앵커 지점(420)을 설정한 후에,(사용자의 머리 상의 설정된 사용자 기준점(100A)의 이동 및 사용자가 손으로 잡고 있는 제어기(102)의 이동으로 인한) 사용자 이동, 예컨대, 머리 및 손/팔 이동, 및 가상 십자선들(410)을 통해 앵커 지점(420)으로 연장하는 가상 타겟 광선(415)의 대응하는 이동은 피처들(450)로 하여금 가상 환경(400)에서 변환 및 스케일링되게 할 수 있다. 예컨대, 일단 앵커 지점(420)이 위에 설명된 바와 같이 설정되면, 도 4c에 도시된 바와 같이(버튼 또는 트리거가 눌려진 채로 유지되는 동안에, 도 4a에 도시된 포지션으로부터) 가상 타겟 광선(415)의 하향 이동은 앵커 지점(420)의 하향 변환을 발생시켜, (사용자의 발들이 가상 지면 상에 있고, 가상 피처(450)가 가상 지면 상에 남아 있기 때문에) 가상 환경(400)의 스케일의 변화, 및 특히, 도 4d에 도시된 바와 같이, 앵커 지점(420)에 의해 앵커링된 가상 환경(400) 내의 가상 피처(450)의 스케일 변화, 및 가상 피처(450)에 대한 사용자의 뷰 또는 관점의 변화를 초래할 수 있다.
[0032] 마찬가지로, 일단 앵커 지점(420)이 위에 설명된 바와 같이 설정되면, 도 4e에 도시된 바와 같이(예컨대, 버튼 또는 트리거가 눌려진 채로 유지되는 동안에, 도 4a에 도시된 포지션으로부터) 가상 타겟 광선(415)의 상향 이동은 앵커 지점(420)의 상향 변환을 발생시켜, 가상 환경(400)의 스케일의 변화, 및 특히, 도 4f에 도시된 바와 같이, 앵커 지점(420)에 의해 앵커링된 가상 환경(400) 내의 가상 피처(450)에 대한 사용자의 스케일 또는 관점의 변화, 및 가상 피처(450)에 대한 사용자의 뷰 또는 관점의 변화를 초래할 수 있다.
[0033] 가상 환경에서 스케일의 조정은 가상 환경 내의 가상 피처들에 대해 사용자의 크기의 변화(증가 또는 감소), 또는 가상 환경 내의 가상 피처들에 대해 사용자의 대응하는 관점 변화일 수 있다(또는 사용자에 대해 가상 환경 내의 가상 피처들의 크기의 변화, 즉 증가 또는 감소로 간주될 수 있음). 예컨대, 사용자는, 사용자의 관점으로부터, 자신의 크기가 가상 환경 내의 가상 피처들에 대해 증가한 것처럼, 사용자가 가상 환경을 경험하도록(그리고/또는 가상 피처들이 크기/스케일이 감소된 것처럼 보이도록) 스케일 업되도록 선택할 수 있다. 마찬가지로, 사용자는, 사용자의 관점으로부터, 자신의 크기가 가상 환경 내의 가상 피처들에 대해 감소한 것처럼, 사용자가 가상 환경을 경험하도록(그리고/또는 가상 피처들이 크기/스케일이 증가된 것처럼 보이도록) 스케일 다운되도록 선택할 수 있다. 가상 환경에서 이러한 타입의 스케일링은 사용자의 크기/스케일링, 특히 가상 환경에서 가상 피처들에 대한 사용자의 관점의 가상 조정, 또는 사용자에 대해 가상 환경 내의 가상 피처들의 크기/스케일링에서의 가상 조정으로 간주될 수 있다. 이하에, 논의를 간단하고 용이하게 하기 위해, 스케일링은 가상 피처들에 대한 사용자의 크기/스케일의 가상 조정 및/또는 가상 환경 내의 가상 피처들의 크기/스케일의 가상 조정을 포함하는 것으로 고려될 것이다. 도 4a에 도시된 포지션(도 4c에서 고스트 이미지로서 점선들로 예시됨)으로부터 도 4c에 도시된 포지션으로 그리고/또는 도 4a에 도시된 포지션(도 4e에서 도시된 고스트 이미지로서, 점선들로 도시됨)으로부터 도 4e에 도시된 포지션으로의 이동은 가상 환경(400) 내의 가상 피처(450)의 예시적인 상향 및 하향 이동들, 및 대응하는 변환 및/또는 가상 환경(400)에 대한 사용자의 스케일링(또는 사용자에 대한 가상 환경(400)의 스케일링)을 예시한다. 그러나, (버튼 또는 트리거가 눌려진 채로 유지되는 동안에) 다른 방향들로의 이동은 또한 앵커 지점(420)으로 하여금 대응하는 이동을 통해 선택된 가상 피처(450)의 식별된 부분에 앵커링된 채로 유지되게 할 수 있다. 예컨대, 우측으로의 이동은 가상 피처(450)가 사용자 주위를 돌아 다니거나 주위를 선회하는 효과를 생성할 수 있다. 마찬가지로, 사용자의 팔을 사용자에 더 가깝게 이동시키는 것은 가상 피처(450)에 더 가깝게 줌 인하는 효과를 생성할 수 있다.
[0034] 특정 이동들에 대한 응답으로, 시스템은 설정된 사용자 기준점, 제어기(102)에 대한 가상 십자선들(410)의 포지션 및 설정된 가상 기준점(400A)과 연관된 특정 고정된 파라미터들에 의존할 수 있고, 설정된 가상 기준점(400A)은 위에 설명된 바와 같이 다양한 이동들 및/또는 피처들의 변환 및/또는 스케일링을 통해 실질적으로 고정되고 변하지 않고 유지된다. 이하에, 설정된 가상 기준점(400A)은 가상 환경(400)에서 가상 지면 또는 가상 바닥에 대응하는 기준 평면일 것이다. 즉, 도 5에 도시된 예에서 예시된 바와 같이, (점선들로 도시된 팔/손/제어기 포지션으로부터 실선들로 도시된 팔/손/제어기 포지션으로부터의) 예시적인 하향 이동에 대한 응답으로, 시스템은, 피처(450)를 스케일링된 피처(450A), 또는 스케일링된 피처(450B) 또는 스케일링된 피처(450C) ― 이들 모두는 가상 타겟 광선(415)을 따라 줄어듬 ― 로 스케일링하려는 것이 사용자의 의도인지를 결정하기 위해 특정 고정된 파라미터들에 의존할 수 있다. 이는 도 6a-6f를 참조하여 더 상세히 설명될 것이다.
[0035] 도 6a에서, 가상 환경(400)에서 가상 피처(450)와의 상호작용의 시작에서(예컨대, 시간(t=0)에서), 사용자는, 이후에, 가상 지면(400A)인 것으로 간주되는 가상 기준 평면(400A) 상의 가상 피처(450)를 향해 위치될 수 있다. 도 6a에 도시된 예에서, 시간(t=0)에서, 사용자는 자신의 팔을 연장하여 제어기(102)를 잡아서, 가상 타겟 광선(415)은 앵커 지점(420)을 설정하기 위해 사용자 설정 기준점(100A)으로부터 가상 십자선들(410)을 통해 선택된 피처(450)의 부분으로 연장시킨다. 일부 구현들에서, 가상 십자선들(410)의 크기 또는 치수(들)(즉, 높이 및 폭)는 일정할 수 있고, 예컨대, 특정 애플리케이션에 대해, 또는 사용자에 의해 또는 시스템 등에 의해 설정될 수 있다. 가상 십자선들(410)의 설정된 치수들은 시간(t=0)에서 제1 디스크(d10)를 규정할 수 있고, 제1 디스크(d10)는 가상 십자선들(410)의 설정된 치수들에 의해 규정된 일정한 반경(r1)을 갖는다. 예컨대, 버튼 또는 트리거를 누르는 것과 같이, 예컨대, 제어기(102)의 사용자 인터페이스(104) 상의 디바이스를 조작함으로써, 가상 피처(450)와 사용자의 상호작용의 시작에서, 또는 시간(t=0)에서, 도 4a에 도시된 사용자가 볼 수 있는 것의 예가 도 6b에 도시된다.
[0036] 제1 디스크(d10)는 원뿔(440)을 규정할 수 있고, 원뿔(440)은 설정된 사용자 기준점(100A)에서 원점을 가지며 앵커 지점(420)을 둘러싸는 평면을 향해 제1 디스크(d10)에 접선 방향(tangentially)으로 연장된다. 시간(t=0)에서, 각도(α0)는 제1 디스크(d10) 및 설정된 사용자 기준점(100A)에 의해 규정된 원뿔(440)의 반각(half-angle)으로서 규정될 수 있다. 반경(r2)을 갖는 제2 디스크(d20)는 앵커 지점(420)에 대응하는 거리에서, 즉, 가상 타겟 광선(415)에 실질적으로 수직이고, 앵커 지점(420)에 대응하고/이를 포함하는 가상 평면에서 원뿔(440)을 통과하는 횡단면으로서 규정될 수 있다.
[0037] 일단 도 6a에 도시된 바와 같이 설정되면, 가상 반경(r2)은 가상 환경(400)에 대해 고정되거나, 가상 환경(400)에 대해 일정하게 유지될 수 있다. 즉, 일단 설정되면, 도 6b에 도시된 바와 같이, 가상 환경(400)에 대해 일정한 가상 반경(r2)을 갖는 제2 디스크(d20)의 범위(confines) 내에서 캡처된 가상 피처(450)의 부분은 동일하게 유지될 수 있는 반면에, 제2 디스크(d20) 내에서 캡처된 가상 피처(450)의 부분을 포함하는 가상 피처(450)는 앵커 지점(420)의 사용자 이동에 대한 응답으로 변환 및/또는 스케일링된다. 이는 도 6c-6f에 관련하여 더 상세히 설명될 것이다.
[0038] 도 6c는, 앵커 지점(420)의 하향 이동 및 가상 피처(450)의 스케일링 다운에 대응하는, 가상 타겟 광선(415)의 하향 이동을 예시하는 후속 시점(t>0)을 예시한다. 도 6a에 도시된 포지션으로부터 도 6c에 도시된 포지션으로 이동한 후에, 도 4c에 도시된 사용자가 볼 수 있는 것의 예(아래에 더 상세히 설명됨)가 도 6d에 예시된다. 도 6e는, 앵커 지점(420)의 이동에서의 폐쇄(closing)에 대응하는, 설정된 사용자 기준점(100A)에 더 가까운 제1 디스크(d1t)의 내향 이동, 및 사용자와 가상 피처(450) 간의 지각되는 가상 거리의 감소를 예시하는 후속 시점(t>0)을 예시한다. 도 6a에 도시된 포지션으로부터 도 6e에 도시된 포지션으로의 이동 후에, 도 4e에 도시된 사용자가 볼 수 있는 것의 예(아래에 더 상세히 설명됨)가 도 6f에 예시된다.
[0039] 각각의 후속 시점(t>0)(즉, t1, t2,... tN)에서, 도 6a에 관련하여 위에 설명된 바와 같이 앵커 지점(420)을 설정한 후에, 각도(αt)는, 제1 디스크(d1t) 및 설정된 사용자 기준점(100A)에 의해 규정된 원뿔(440)의 반각으로서 계산될 수 있다. 각각의 후속 시점(t>0)에서, 제1 디스크(d1t)의 반경(r1)은 사용자에 대해(가상 십자선들(410)의 치수들이 일정하게 유지될 때) 일정/고정된 채로 유지된다. 각각의 후속 시점(t>0)에서, 앵커 지점(420)이 이동하여 가상 타겟 광선(415) 상에 있을 때, 제2 디스크(d2t)의 가상 반경(r2)은 가상 환경(400)에 대해 일정/고정된 채로 유지된다. 가상 기준 평면(400A) 또는 가상 지면(400A)은 또한 고정되거나 일정하게 유지되고, 실세계 지면과 정렬된다. 그러나, 설정된 사용자 기준점(100A)과 제1 디스크(d1t) 사이의 거리는, 제어기(102)를 잡고 있는 사용자의 팔/손이 움직일 때, 변할 수 있다. 이는, 반각(αt)이 위에 설명된 바와 같은 앵커 지점(420)의 사용자 이동에 대한 응답으로 후속 시점들(t>0)(즉, t1, t2,... tN)에서 또한 변하게 할 수 있다. 앵커 지점(420)이 이러한 방식으로 이동될 때 반각(αt)의 이러한 재계산은, 제1 디스크(d1t)의 반경(r1)이 사용자에 대해 일정하게 유지되고 제2 디스크(d2t)의 가상 반경(r2)이 가상 환경(400)에 대해 일정하게 유지되고, 앵커 지점(420)이 가상 타겟 광선(415) 상에 있고, 가상 기준 평면(400A)이 실제 지면과 정렬된 채로 유지되는 동안에, 가상 환경이 도시된 바와 같이 변환 및/또는 스케일링되도록 허용한다.
[0040] 도 6a-6e에 도시된 예에서, 설정된 제어기 기준점(410)을 둘러싸는 영역을 나타내는 제1 디스크(d10/dt0)는 설정된 제어기 기준점(410)에서 교차점을 갖는 가상 십자선들에 기반하여 디스크로서 규정된다. 설정된 제어기 기준점(410)을 둘러싸는 영역이 원형 디스크 형상을 갖고, 앵커 지점(420)을 둘러싸는 영역 및 앵커 지점(420)을 둘러싸는 영역이 원뿔에 의해 규정되는 원형 디스크 형상을 갖는 이러한 예시적인 기하학적 구조는, 사용자 및/또는 가상 피처들이 제어기의 이동에 대한 응답으로 스케일링될 때, 반각(α)의 계산 및 추적/조정을 가능하게 할 수 있고, 감소된 프로세싱 작업량을 생성할 수 있다. 그러나, 논의 및 예시를 간단하고 용이하게 하기 위해 원형 형상의 디스크가 도시되고, 설정된 제어기 기준점(410)을 둘러싸는 영역은 다른 폐쇄 곡선 형상들을 가질 수 있다. 마찬가지로, 도 6a-6e에 도시된 예에서, 원뿔(440)은 설정된 사용자 기준점(100A)에서 시작하여 제1 디스크(d10)를 넘어서 접선 방향으로 연장되는 기하학적 구조에 의해 규정된다. 그러나, 이러한 기하학적 구조는 또한 설정된 사용자 기준점(410)을 둘러싸는 정의된 영역의 기하학적 구조에 기반하여 변할 수 있다. 마찬가지로, 도 6a-6e에 도시된 예에서, 앵커 지점(420)을 둘러싸는 영역은 원형 형상의 디스크로 규정된다. 그러나, 앵커 지점(420)을 둘러싸는 이러한 영역의 형상은 또한 설정된 제어기 기준점을 둘러싸는 영역의 폐쇄 곡선 형상 및 가상 피처(450)의 평면과의 교차점으로의 그 기하학적 구조의 연장에 의해 규정될 것이다.
[0041] 도 7a에 도시된 바와 같이, 일부 구현들에서, 하나 이상의 가상 광구들(570)(예컨대, 제1, 제2 및 제3 가상 광구들(570A, 570B, 570C))은 가상 환경에서의 선택을 위해 사용자에게 이용 가능할 수 있다. 각각의 광구는 가상 환경에서 예컨대, 특정 피처, 위치 등의 360도 파노라마 경험(panoramic experience)을 제공할 수 있다. 가상 광구들(570) 중 하나로 이동하기 위해, 사용자는, 예컨대, 도 7a에 도시된 바와 같이, 가상 피처(550)의 내부의 360도 파노라마 경험으로 이동시키기 위해, 위에 설명된 바와 같이 핸드헬드 전자 디바이스(102)에 의해 생성된 가상 빔(500)을, 예컨대, 제3 가상 광구(570C)와 같이, 가상 광구들(570) 중 선택된 하나를 향해 지향시킬 수 있다. 핸드헬드 전자 디바이스(102)의 추가의 조작, 예컨대, 가상 빔(550)을 선택된 가상 광구(570C)로 지향시키는 버튼의 해제 시에, 사용자는, 도 7b에 도시된 바와 같이, 선택된 가상 광구(570C)로 이동 또는 텔레포팅 또는 이송될 수 있다.
[0042] 선택된 가상 광구(570)로 이동, 또는 이송, 또는 텔레포팅할 때, 사용자는 또한 위에 상세히 논의된 바와 같이 가상 환경 내의 피처들에 대해 스케일을 조정하도록 선택할 수 있다. 특히, 선택된 가상 광구(570)로 이동할 때, 사용자는, 위에 상세히 설명된 방식으로, 선택된 가상 광구(570)에 의해 제공되는 360도 파노라마 경험에 포함된 가상 엘리먼트들에 대해 크기/스케일을 증가하거나 크기/스케일을 감소하도록 선택할 수 있다.
[0043] 일단 가상 광구(570) 내에 있다면, 사용자는 가상 광구(570) 내에서 이동할 수 있다. 예컨대, 사용자는 가상 광구(570)에 의해 제공되는 360도 파노라마 경험 중 상이한 부분을 보기 위해 방향을 전환할 수 있고 그리고/또는 사용자는, 가상 광구(570)에 의해 제공되는 360도 파노라마 경험에 포함된 가상 엘리먼트에 접근하거나 더 가깝게 접근하기 위해, 도 8b에 도시된 바와 같이, 가상 광구(570) 내에서 가상 포지션(C)으로부터 가상 포지션(D)으로 걸어갈 수 있다. 일부 구현들에서, 사용자는, 예컨대, 가상 광구(570) 내에서 360-파노라마 가상 디스플레이의 에지로 간주될 수 있는 것으로 가상 광구(570) 내에서 걸을 수 있고, 가상 광구(570)의 360도 파노라마 경험으로 디스플레이되는 가상 엘리먼트들은, 사용자가 가상 엘리먼트들의 방향으로 걸어가거나 접근할 때 사용자의 전방에 더 큰 것처럼 보이게 디스플레이된다. 마찬가지로, 사용자가 가상 포지션(D)에 도달한 후에, 방향을 전환하면, 예컨대, 180도 방향 전환하면, 일단 사용자의 뒤에 있는 가상 엘리먼트들은, 사용자가 가상 광구(570)의 그 부분에 디스플레이되는 가상 엘리먼트들로부터 멀어져 걸어감에 따라, 더 작은 것처럼 보일 수 있다.
[0044] 본원에 설명된 구현들에 따른, 증강 및/또는 가상 현실 환경에서의 내비게이팅 및/또는 스케일링 방법(700)이 도 8에 도시된다. 가상 피처의 선택을 검출할 때(블록(710)), 가상 앵커 지점을 설정하기 위한 요청이 수신되었는지 여부가 결정될 수 있다(블록(720)). 가상 앵커 지점을 설정하기 위한 요청은, 예컨대, 도 4a 및 6a에 대해 위에 상세히 설명된 바와 같이 사용자에 의해 입력될 수 있다. 가상 앵커 지점을 설정하기 위한 요청이 수신되면, 가상 앵커 지점이 설정될 수 있다(블록(730)). 가상 앵커 지점이 설정되고 가상 환경에 대해 사용자의 포지션, 또는 뷰 또는 관점 또는 스케일을 조정하기 위한 요청(또는 사용자에 대해 가상 환경을 스케일링하기 위한 요청)이 수신되면(블록(750)), 시스템은, 도 4b-4f 및 6b-6f에 관련하여 위에 상세히 설명된 바와 같이, 수신된 요청에 따라 포지션 및/또는 뷰 및/또는 관점 및/또는 스케일을 조정할 수 있다(블록(760)). 가상 앵커 지점이 설정되지 않았지만, 이동하거나 그렇지 않다면 선택된 가상 피처에 대해 사용자의 포지션을 조정하기 위한 요청이 수신되면(블록(740)), 시스템은 수신된 요청에 따라 요청된 조정을 수행할 수 있다(블록(760)). 요청된 가상 조정의 완료 시에(블록(770)), 프로세스는, 가상 경험이 종결될 때까지 반복될 수 있다(블록(780)).
[0045] 도 9는, 본원에 설명된 기술들이 사용될 수 있는 일반 컴퓨터 디바이스(800) 및 일반 모바일 컴퓨터 디바이스(850)의 예를 도시한다. 컴퓨팅 디바이스(800)는 랩톱들, 데스크톱들, 태블릿들, 워크스테이션들, 개인 휴대 정보 단말기들(personal digital assistants), 텔레비전들, 서버들, 블레이드 서버들, 메인프레임들 및 다른 적절한 컴퓨팅 디바이스들과 같은 다양한 형태의 디지털 컴퓨터들을 나타내도록 의도된다. 컴퓨팅 디바이스(850)는 다양한 형태들의 모바일 디바이스들, 이를테면 개인 정보 단말들, 셀룰러 텔레폰들, 스마트 폰들, 및 다른 유사한 컴퓨팅 디바이스들을 나타내는 것으로 의도된다. 본원에 도시된 컴포넌트들, 이들의 연결들 및 관계들 및 이들의 기능들은 단지 예시적인 것임을 의미하며, 본 문헌에 설명된 및/또는 청구된 본 발명들의 구현들을 제한하는 것으로 의미하지 않는다.
[0046] 컴퓨팅 디바이스(800)는 프로세서(802), 메모리(804), 저장 디바이스(806), 메모리(804) 및 고속 확장 포트들(810)에 연결되는 고속 인터페이스(808), 및 저속 버스(814) 및 저장 디바이스(806)에 연결되는 저속 인터페이스(812)를 포함한다. 프로세서(802)는 반도체-기반 프로세서일 수 있다. 메모리(804)는 반도체-기반 메모리일 수 있다. 컴포넌트들(802, 804, 806, 808, 810, 및 812) 각각은 다양한 버스들을 사용하여 상호연결되고, 공통 마더보드 상에 장착되거나 또는 적합할 때 다른 방식들로 장착될 수 있다. 프로세서(802)는 고속 인터페이스(808)에 결합된 디스플레이(816)와 같은 외부 입력/출력 디바이스 상에 GUI에 대한 그래픽 정보를 디스플레이하기 위해서 메모리(804) 내에 또는 저장 디바이스(806) 상에 저장되는 명령들을 포함하는, 컴퓨팅 디바이스(800) 내에서의 실행을 위한 명령들을 프로세싱할 수 있다. 다른 구현들에서, 다수의 프로세서들 및/또는 다수의 버스들은 적절하게 다수의 메모리들 및/또는 메모리 타입들과 함께 사용될 수 있다. 또한, 다수의 컴퓨팅 디바이스들(800)이 연결될 수 있는데, 각각의 디바이스는 (예컨대, 서버 뱅크, 블레이드 서버들의 그룹, 또는 다중-프로세서 시스템으로서) 필요한 동작들의 부분들을 제공한다.
[0047] 메모리(804)는 컴퓨팅 디바이스(800) 내에 정보를 저장한다. 일 구현에 있어서, 메모리(804)는 휘발성 메모리 유닛 또는 유닛들이다. 다른 구현에 있어서, 메모리(804)는 비-휘발성 메모리 유닛 또는 유닛들이다. 메모리(804)는 또한 자기 또는 광학 디스크와 같은 다른 형태의 컴퓨터-판독 가능 매체일 수 있다.
[0048] 저장 디바이스(806)는 컴퓨팅 디바이스(800)를 위한 대용량 저장부를 제공할 수 있다. 일 구현에 있어서, 저장 디바이스(806)는 저장 영역 네트워크 또는 다른 구성들의 디바이스들을 포함하는, 컴퓨터-판독가능 매체, 이를테면, 플로피 디스크 디바이스, 하드 디스크 디바이스, 광학 디스크 디바이스, 또는 테이프 디바이스, 플래시 메모리 또는 다른 유사한 고체 상태 메모리 디바이스, 또는 디바이스들의 어레이일 수 있거나 이를 포함할 수 있다. 컴퓨터 프로그램 제품은 정보 캐리어에서 유형적으로(tangibly) 구현될 수 있다. 컴퓨터 프로그램 제품은 또한, 실행될 때, 위에서 설명된 바와 같은 하나 이상의 방법들을 수행하는 명령들을 포함할 수 있다. 정보 캐리어는 컴퓨터- 또는 기계-판독가능 매체, 이를테면 메모리(804), 저장 디바이스(806), 또는 프로세서(802) 상의 메모리이다.
[0049] 고속 제어기(808)는 컴퓨팅 디바이스(800)에 대한 대역폭-집약 동작들을 관리하는 반면에, 저속 제어기(812)는 더 낮은 대역폭-집약 동작들을 관리한다. 이러한 기능들의 할당은 단지 예시적이다. 일 구현에 있어서, 고속 제어기(808)는 메모리(804), 디스플레이(816)(예컨대, 그래픽 프로세서 또는 가속기를 통해), 및 다양한 확장 카드들(미도시)을 수용할 수 있는 고속 확장 포트들(810)에 커플링된다. 구현에 있어서, 저속 제어기(812)는 저장 디바이스(806) 및 저속 확장 포트(814)에 커플링된다. 다양한 통신 포트들(예컨대, USB, 블루투스, 이더넷, 무선 이더넷)를 포함할 수 있는 저속 확장 포트는 예컨대, 네트워크 어댑터를 통해 키보드, 포인팅 디바이스, 스캐너, 또는 스위치나 라우터와 같은 네트워킹 디바이스와 같은 하나 이상의 입력/출력 디바이스들에 커플링될 수 있다.
[0050] 컴퓨팅 디바이스(800)는 도면에 도시된 바와 같이 다수의 상이한 형태들로 구현될 수 있다. 예컨대, 이는 표준 서버(820)로서 구현되거나, 또는 그러한 서버들의 그룹에서 여러 번 구현될 수 있다. 그것은 또한 랙(rack) 서버 시스템(824)의 부분으로서 구현될 수 있다. 또한, 그것은 랩톱 컴퓨터(822)와 같은 개인용 컴퓨터로 구현될 수 있다. 대안적으로, 컴퓨팅 디바이스(800)로부터의 컴포넌트들은 디바이스(850)와 같은 모바일 디바이스의 다른 컴포넌트들(미도시)과 결합될 수 있다. 그러한 디바이스들 각각은 컴퓨팅 디바이스(800, 850) 중 하나 이상을 포함할 수 있고, 전체적인 시스템은 서로 통신하는 다수의 컴퓨팅 디바이스들(800, 850)로 구성될 수 있다.
[0051] 컴퓨팅 디바이스(850)는 다른 컴포넌트들 중에서도, 프로세서(852), 메모리(864), 디스플레이(854)와 같은 입력/출력 디바이스, 통신 인터페이스(866), 및 트랜시버(868)를 포함한다. 추가적인 저장소를 제공하기 위해서 디바이스(850)에는 또한 마이크로드라이브 또는 다른 디바이스와 같은 저장 디바이스가 제공될 수 있다. 컴포넌트들(850, 852, 864, 854, 866, 및 868) 각각은 다양한 버스들을 사용하여 상호연결되고, 컴포넌트들 중 몇몇은 공통 마더보드 상에 장착되거나 또는 적합할 때 다른 방식들로 장착될 수 있다.
[0052] 프로세서(852)는 메모리(864)에 저장된 명령들을 포함하는, 컴퓨팅 디바이스(850) 내의 명령들을 실행할 수 있다. 프로세서는 별개의 그리고 다수의 아날로그 및 디지털 프로세서들을 포함하는 칩들의 칩셋으로서 구현될 수 있다. 프로세서는, 예컨대, 디바이스(850)의 다른 컴포넌트들의 조정, 이를테면 사용자 인터페이스들의 제어, 디바이스(850)에 의한 애플리케이션 실행, 및 디바이스(850)에 의한 무선 통신을 제공할 수 있다.
[0053] 프로세서(852)는 디스플레이(854)에 결합된 디스플레이 인터페이스(856) 및 제어 인터페이스(858)를 통해 사용자와 통신할 수 있다. 디스플레이(854)는, 예컨대, TFT LCD(Thin-Film-Transistor Liquid Crystal Display) 또는 OLED(Organic Light Emitting Diode) 디스플레이, 또는 다른 적합한 디스플레이 기술일 수 있다. 디스플레이 인터페이스(856)는 그래픽 및 다른 정보를 사용자에게 제시하기 위해서 디스플레이(854)를 구동시키기 위한 적절한 회로를 포함할 수 있다. 제어 인터페이스(858)는 사용자로부터 커맨드들을 수신하고, 프로세서(852)에 제출하기 위해 이들을 변환할 수 있다. 또한, 다른 디바이스들과의 디바이스(850)의 근거리 통신을 가능하게 하기 위해서 외부 인터페이스(862)가 프로세서(852)와의 통신에 제공될 수 있다. 외부 인터페이스(862)는, 예컨대, 일부 구현들에 있어서 유선 통신 또는 다른 구현들에 있어서 무선 통신을 제공할 수 있고, 다수의 인터페이스들이 또한 사용될 수 있다.
[0054] 메모리(864)는 컴퓨팅 디바이스(850) 내에 정보를 저장한다. 메모리(864)는 컴퓨터-판독 가능 매체 또는 매체들, 휘발성 메모리 유닛 또는 유닛들, 또는 비휘발성 메모리 유닛 또는 유닛들 중 하나 이상으로서 구현될 수 있다. 확장 메모리(874)가 또한 제공되고 확장 인터페이스(872)를 통해 디바이스(850)에 연결될 수 있는데, 그 확장 인터페이스는 예컨대 SIMM(Single In Line Memory Module) 카드 인터페이스를 포함할 수 있다. 그러한 확장 메모리(874)는 디바이스(850)를 위한 가외 저장 공간을 제공할 수 있거나, 디바이스(850)에 대한 애플리케이션들 또는 다른 정보를 또한 저장할 수 있다. 특히, 확장 메모리(874)는 위에서 설명된 프로세스들을 실행하거나 보충하기 위한 명령들을 포함할 수 있고, 보안 정보 역시 포함할 수 있다. 따라서, 예컨대, 확장 메모리(874)는 디바이스(850)를 위한 보안 모듈로서 제공될 수 있고, 디바이스(850)의 보안 사용을 허용하는 명령들로 프로그래밍될 수 있다. 또한, 보안 애플리케이션들은, 해킹할 수 없는 방식으로 식별 정보를 SIMM 카드 상에 배치하는 것과 같이, 부가적인 정보와 함께, SIMM 카드들을 통해 제공될 수 있다.
[0055] 메모리는 예컨대, 아래에 논의되는 바와 같이, 플래시 메모리 및/또는 NVRAM 메모리를 포함할 수 있다. 일 구현에서, 컴퓨터 프로그램 제품은 정보 캐리어에서 유형적으로 구현된다. 컴퓨터 프로그램 제품은, 실행될 때, 위에서 설명된 바와 같은 하나 이상의 방법들을 수행하는 명령들을 포함한다. 정보 캐리어는 예컨대 트랜시버(868) 또는 외부 인터페이스(862)를 통해 수용될 수 있는 컴퓨터- 또는 기계-판독가능 매체, 이를테면 메모리(864), 확장 메모리(874), 또는 프로세서(852) 상의 메모리이다.
[0056] 디바이스(850)는, 필요한 경우에 디지털 신호 프로세싱 회로를 포함할 수 있는 통신 인터페이스(866)를 통해 무선으로 통신할 수 있다. 통신 인터페이스(866)는 다양한 모드들 또는 프로토콜들, 이를테면 다른 것들 중에서도 GSM 음성 호들, SMS, EMS, 또는 MMS 메시징, CDMA, TDMA, PDC, WCDMA, CDMA2000, 또는 GPRS 하에서의 통신들을 제공할 수 있다. 이러한 통신은, 예컨대, 라디오 주파수 트랜시버(868)를 통해 발생할 수 있다. 또한, 이를테면, 블루투스, WiFi 또는 다른 그러한 트랜시버(미도시)를 사용하는 단거리 통신이 발생할 수 있다. 게다가, GPS(Global Positioning System) 수신기 모듈(870)은, 적합할 때 디바이스(850) 상에서 실행하는 애플리케이션들에 의해 사용될 수 있는 추가적인 내비게이션- 및 위치-관련 무선 데이터를 그 디바이스(850)에 제공할 수 있다.
[0057] 디바이스(850)는 또한 오디오 코덱(860)을 사용하여 청각적으로 통신할 수 있고, 그 오디오 코덱은 사용자로부터 음성 정보를 수신하고 그것을 유용한 디지털 정보로 변환할 수 있다. 오디오 코덱(860)은 마찬가지로 사용자에 대한 청각 사운드를 이를테면 예컨대 디바이스(850)의 핸드셋 내의 스피커를 통해 생성할 수 있다. 그러한 사운드는 음성 텔레폰 호들로부터의 사운드를 포함할 수 있고, 기록된 사운드(예컨대, 음성 메시지들, 음악 파일들 등)를 포함할 수 있으며, 디바이스(850) 상에서 동작하는 애플리케이션들에 의해 생성되는 사운드를 또한 포함할 수 있다.
[0058] 컴퓨팅 디바이스(850)는 도면에 도시된 바와 같이 다수의 상이한 형태들로 구현될 수 있다. 예컨대, 이는 셀룰러 텔레폰(880)으로서 구현될 수 있다. 이는 또한 스마트폰(882), 개인 정보 단말(personal digital assistant), 또는 다른 유사한 모바일 디바이스의 일부로서 구현될 수 있다.
[0059] 본원에 설명된 시스템들 및 기술들의 다양한 구현들은, 디지털 전자 회로, 집적 회로, 특수하게 설계된 ASIC(주문형 집적 회로)들, 컴퓨터 하드웨어, 펌웨어, 소프트웨어, 및/또는 이들의 결합들로 실현될 수 있다. 이러한 다양한 구현들은, 저장 시스템, 적어도 하나의 입력 디바이스 및 적어도 하나의 출력 디바이스로부터 데이터 및 명령들을 수신하고, 데이터 및 명령들을 이들에 송신하도록 커플링된, 특수 목적 또는 범용일 수 있는 적어도 하나의 프로그래머블 프로세서를 포함하는 프로그래머블 시스템 상에서 실행 가능한 및/또는 해석 가능한 하나 이상의 컴퓨터 프로그램들에서의 구현을 포함할 수 있다.
[0060] 이들 컴퓨터 프로그램들(또한 프로그램들, 소프트웨어, 소프트웨어 애플리케이션들 또는 코드로 알려짐)은 프로그래밍 가능 프로세서를 위한 기계 명령들을 포함하며, 하이-레벨의 절차적 및/또는 객체 지향적 프로그래밍 언어 및/또는 어셈블리/기계 언어로 구현될 수 있다. 본원에서 사용되는 바와 같이, "기계-판독 가능 매체", "컴퓨터-판독 가능 매체"라는 용어들은, 기계-판독 가능 신호로서 기계 명령들을 수신하는 기계-판독 가능 매체를 비롯한, 기계 명령들 및/또는 데이터를 프로그래머블 프로세서에 제공하는데 사용되는 임의의 컴퓨터 프로그램 제품, 장치 및/또는 디바이스(예컨대, 자기 디스크들, 광 디스크들, 메모리, 프로그래머블 로직 디바이스들(PLD들)을 지칭한다. "기계-판독 가능 신호"라는 용어는 기계 명령들 및/또는 데이터를 프로그래밍 가능 프로세서에 제공하는데 사용되는 임의의 신호를 지칭한다.
[0061] 사용자와의 상호작용을 제공하기 위해, 본원에 설명된 시스템들 및 기술들은 정보를 사용자에게 디스플레이하기 위한 디스플레이 디바이스(예컨대, CRT(cathode ray tube) 또는 LCD(liquid crystal display) 모니터) 및 사용자가 컴퓨터에 입력을 제공할 수 있게 하는 키보드 및 포인팅 디바이스(예컨대, 마우스 또는 트랙볼)를 갖는 컴퓨터 상에서 구현될 수 있다. 다른 종류의 디바이스들은 물론 사용자와의 상호작용을 제공하는데 사용될 수 있는데, 예컨대, 사용자에게 제공된 피드백은 임의의 형태의 감각 피드백(예컨대, 시각 피드백, 청각 피드백 또는 촉각 피드백)일 수 있으며; 사용자로부터의 입력은 음향, 스피치 또는 촉각 입력을 비롯한 임의의 형태로 수신될 수 있다.
[0062] 본원에 설명된 시스템들 및 기술들은, (예컨대, 데이터 서버로서) 백 엔드 컴포넌트를 포함하거나, 미들웨어 컴포넌트(예컨대, 애플리케이션 서버)를 포함하거나, 프론트 엔드 컴포넌트(예컨대, 사용자가 본원에 설명된 시스템들 및 기술들의 구현과 상호작용할 수 있게 하는 그래픽 사용자 인터페이스 또는 웹 브라우저를 갖는 클라이언트 컴퓨터)를 포함하거나 또는 그러한 백 엔드, 미들웨어 또는 프런트 엔드 컴포넌트들의 임의의 조합을 포함하는 컴퓨팅 시스템으로 구현될 수 있다. 시스템의 컴포넌트들은 디지털 데이터 통신의 임의의 형태 또는 매체(예컨대, 통신 네트워크)에 의해 상호 연결될 수 있다. 통신 네트워크들의 예들은 로컬 영역 네트워크("LAN"), 광역 네트워크("WAN") 및 인터넷을 포함한다.
[0063] 컴퓨팅 시스템은 클라이언트들 및 서버들을 포함할 수 있다. 클라이언트 및 서버는 일반적으로 서로 떨어져 있으며, 통상적으로 통신 네트워크를 통해 상호작용한다. 클라이언트와 서버의 관계는, 각각의 컴퓨터들 상에서 실행되고 서로에 대해 클라이언트-서버 관계를 갖는 컴퓨터 프로그램들에 의해 발생한다.
[0064] 다수의 실시예들이 설명되었다. 그럼에도 불구하고, 본 발명의 사상 및 범위에서 벗어나지 않고서 다양한 수정들이 이루어질 수 있다는 것이 이해될 것이다.
[0065] 또한, 도면들에 도시된 논리 흐름들은 바람직한 결과들을 달성하기 위해, 도시된 특정 순서 또는 순차적인 순서를 요구하지 않는다. 또한, 다른 단계들이 제공되거나, 단계들이 설명된 흐름들로부터 제거될 수 있으며, 다른 컴포넌트들이 설명된 시스템들에 추가되거나, 설명된 시스템들로부터 제거될 수 있다. 따라서, 다른 실시예들은 다음의 청구항들의 범위 내에 있다.
[0066] 본원에서 설명된 다양한 기법들의 구현들은 디지털 전자 회로, 또는 컴퓨터 하드웨어, 펌웨어, 소프트웨어 또는 이들의 조합으로 구현될 수 있다. 구현들은 컴퓨터 프로그램 제품, 즉, 데이터 프로세싱 장치, 예컨대, 프로그래밍 가능 프로세서, 컴퓨터, 또는 다수의 컴퓨터들에 의한 프로세싱을 위해 또는 이들의 동작들을 제어하기 위해, 정보 캐리어, 예컨대, 기계-판독 가능 저장 디바이스(컴퓨터-판독 가능 매체)에 유형으로(tangibly) 포함되는 컴퓨터 프로그램으로서 구현될 수 있다. 따라서, 컴퓨터-판독 가능 저장 매체는, 실행될 때, 프로세서(예컨대, 호스트 디바이스에서의 프로세서, 클라이언트 디바이스에서의 프로세서)로 하여금 프로세스를 수행하게 하는 명령들을 저장하도록 구성될 수 있다.
[0067] 컴퓨터 프로그램, 이를테면, 위에 설명된 컴퓨터 프로그램(들)은 컴파일링되거나 해석된 언어들을 포함하는 임의의 형태의 프로그래밍 언어로 기록될 수 있고, 독립형 프로그램으로서 또는 컴퓨팅 환경에서 사용하기에 적합한 모듈, 컴포넌트, 서브루틴 또는 다른 유닛을 포함하는 임의의 형태로 전개될 수 있다. 컴퓨터 프로그램은 하나의 사이트에 있는 하나의 컴퓨터 또는 다수의 컴퓨터들 상에서 프로세싱되도록 전개되거나, 다수의 사이트들에 걸쳐 분산되고 통신 네트워크에 의해 상호연결될 수 있다.
[0068] 방법 단계들은 입력 데이터에 대해 동작하여 출력을 생성함으로써 기능들을 수행하기 위해 컴퓨터 프로그램을 실행하는 하나 이상의 프로그래밍 가능 프로세서들에 의해 수행될 수 있다. 방법 단계들은 또한 특수 목적 로직 회로, 예컨대 FPGA(field programmable gate array) 또는 ASIC(application-specific integrated circuit)에 의해 수행될 수 있고, 그리고 장치가 또한 이들로서 구현될 수 있다.
[0069] 컴퓨터 프로그램의 프로세싱에 적합한 프로세서들은, 예로서, 범용 및 특수 목적 마이크로프로세서들 둘 모두, 및 임의의 종류의 디지털 컴퓨터의 임의의 하나 이상의 프로세서들을 포함한다. 일반적으로, 프로세서는 판독-전용 메모리 또는 랜덤 액세스 메모리 또는 둘 모두로부터 명령들 및 데이터를 수신할 것이다. 컴퓨터의 엘리먼트들은 명령들을 실행하기 위한 적어도 하나의 프로세서 및 명령들 및 데이터를 저장하기 위한 하나 이상의 메모리 디바이스들을 포함할 수 있다. 일반적으로, 컴퓨터는 또한 데이터를 저장하기 위한 하나 이상의 대용량 저장 디바이스들, 예컨대 자기, 광자기 디스크들, 또는 광학 디스크들을 포함하거나, 또는 이들로부터 데이터를 수신하기 위하여 또는 이들에 데이터를 송신하기 위하여, 또는 이 둘 모두를 수행하기 위하여 동작 가능하게 커플링 수 있다. 컴퓨터 프로그램 명령들 및 데이터를 구현하기에 적절한 정보 캐리어들은 예로서 반도체 메모리 디바이스들, 예컨대 EPROM, EEPROM, 및 플래시 메모리 디바이스들; 자기 디스크들, 예컨대 내부 하드 디스크들 또는 제거가능 디스크들; 자기-광학 디스크들; 및 CD-ROM 및 DVD-ROM 디스크들을 비롯하여, 모든 형태들의 비휘발성 메모리를 포함한다. 프로세서 및 메모리는 특수 목적 로직 회로에 의해 보충되거나, 특수 목적 로직 회로에 통합될 수 있다.
[0070] 사용자와의 상호작용을 제공하기 위해, 구현들은, 사용자에게 정보를 디스플레이하기 위한 디스플레이 디바이스(예컨대, CRT(음극선관), LED(발광 다이오드) 또는 LCD(액정 디스플레이) 모니터), 및 사용자가 입력을 컴퓨터에 제공할 수 있게 하는 키보드 및 포인팅 디바이스(예컨대, 마우스 또는 트랙볼)를 갖는 컴퓨터 상에서 구현될 수 있다. 사용자와의 상호작용을 제공하기 위해 다른 종류들의 디바이스들이 또한 이용될 수 있으며; 예컨대, 사용자에게 제공되는 피드백은 예컨대 시각적 피드백, 청각적 피드백, 또는 촉각적 피드백과 같은 임의의 형태의 감각적 피드백일 수 있고; 사용자로부터의 입력은 음향, 스피치(speech), 또는 촉각 입력을 포함한 임의의 형태로 수신될 수 있다.
[0071] 구현들은, 백-엔드(back-end) 컴포넌트를(예컨대, 데이터 서버로서) 포함하거나, 미들웨어 컴포넌트(예컨대, 애플리케이션 서버)를 포함하거나, 프론트 엔드 컴포넌트(예컨대, 사용자가 구현과 상호작용할 수 있게 하는 그래픽 사용자 인터페이스 또는 웹 브라우저를 갖는 클라이언트 컴퓨터)를 포함하거나, 또는 그러한 백 엔드, 미들웨어, 또는 프론트 엔드 컴포넌트들의 임의의 결합을 포함하는 컴퓨팅 시스템에서 구현될 수 있다. 컴포넌트들은, 임의의 형태 또는 매체의 디지털 데이터 통신(예컨대, 통신 네트워크)에 의해 상호접속될 수 있다. 통신 네트워크들의 예들은 로컬 영역 네트워크(LAN) 및 광역 네트워크(WAN), 예컨대, 인터넷을 포함한다.
[0072] 추가의 구현들이 다음의 예들에 요약된다.
[0073] 예 1: 방법으로서, 머리 장착 디스플레이 디바이스의 디스플레이 내에 가상 환경을 생성하는 단계; 머리 장착 디스플레이 디바이스와 통신하는 제어기의 사용자 인터페이스에서 제1 입력을 검출하는 단계; 제1 입력에 대한 응답으로, 가상 환경에서 선택된 가상 피처 상에 앵커 지점을 설정하는 단계; 제2 입력을 검출하는 단계; 및 제2 입력에 대한 응답으로, 앵커 지점과 연관된 가상 피처를 포함하는, 가상 환경 내의 영역을 규정하는 단계, 및 가상 환경의 사용자 시야 내의 규정된 영역 내에 가상 피처의 부분을 유지하면서, 가상 환경 내의 가상 피처의 포지션 또는 스케일 중 적어도 하나를 조정하는 단계를 포함하는, 방법.
[0074] 예 2: 제1 예에 있어서, 제1 입력에 대한 응답으로, 가상 환경에서 선택된 가상 피처 상에 앵커 지점을 설정하는 단계는: 가상 타겟 광선과 가상 피처의 교차점을 검출하는 단계; 가상 타겟 광선과 가상 피처의 검출된 교차점에서 앵커 지점을 설정하는 단계; 및 설정된 사용자 기준점에 대한 설정된 제어기 기준점의 포지션에 기반하여, 앵커 지점과 연관된 가상 피처를 포함하는, 가상 환경 내의 영역을 규정하는 단계를 포함하는, 방법.
[0075] 예 3: 제2 예에 있어서, 설정된 사용자 기준점은 사용자 머리 장착 디스플레이 디바이스 상의 고정된 지점에 대응하고, 설정된 제어기 기준점은 제어기에 대한 고정된 지점에 대응하는, 방법.
[0076] 예 4: 제2 예 또는 제3 예에 있어서, 가상 타겟 광선과 가상 피쳐의 교차점을 검출하는 단계는 가상 타겟 광선을 규정하는 단계를 포함하고, 가상 타겟 광선은 설정된 사용자 기준점에서 원점을 갖고, 가상 타겟 광선은 설정된 사용자 기준점에서의 원점으로부터 설정된 제어기 기준점을 통해 연장되는, 방법.
[0077] 예 5: 제1 예 내지 제4 예 중 어느 한 예에 있어서, 설정된 제어기 기준점은 가상 폐쇄 곡선의 중심을 규정하는, 방법.
[0078] 예 6: 제2 예 내지 제5 예 중 어느 한 예에 있어서, 설정된 사용자 기준점에 대한 설정된 제어기 기준점의 포지션에 기반하여 앵커 지점과 연관된 가상 피처를 포함하는, 가상 환경 내의 영역을 규정하는 단계는: 설정된 제어기 기준점에 의해 규정된 중심을 갖는 제1 가상 디스크를 규정하는 단계; 설정된 사용자 기준점 및 제1 가상 디스크에 기반하여 가상 원뿔을 규정하는 단계 ― 가상 원뿔은 설정된 사용자 기준점에서 원점을 갖고, 가상 피처를 향해 연장되고 제1 가상 디스크에 접함 ― ; 및 가상 원뿔과 가상 피처의 교차점에서 제2 가상 디스크를 규정하는 단계를 포함하는, 방법.
[0079] 예 7: 제6 예에 있어서, 설정된 제어기 기준점에 의해 규정된 중심을 갖는 제1 가상 디스크를 규정하는 단계는 제1 가상 디스크의 제1 반경을 규정하는 단계를 포함하고, 제1 반경은 설정된 제어기 기준점으로부터 제1 가상 디스크의 둘레로 연장되고, 원뿔과 가상 피처의 교차점에서 제2 가상 디스크를 규정하는 단계는: 제2 가상 디스크의 중심을 규정하는 단계 ― 제2 가상 디스크의 중심은 앵커 지점에 대응함 ― ; 제2 가상 디스크의 둘레를 규정하는 단계 ― 둘레는 원뿔과 가상 피처의 평면과의 교차점에 대응함 ― ; 및 제2 가상 디스크의 제2 반경을 규정하는 단계 ― 제2 반경은 제2 가상 디스크의 중심으로부터 제2 가상 디스크의 둘레로 연장됨 ― 를 포함하는, 방법.
[0080] 예 8: 제6 예 또는 제7 예에 있어서, 설정된 사용자 기준점 및 제1 가상 디스크에 기반하여 가상 원뿔을 규정하는 단계는 또한 가상 타겟 광선과 가상 원뿔의 원주 사이의 반각을 규정하는 단계를 포함하는, 방법.
[0081] 예 9: 제7 예 또는 제8 예에 있어서, 제1 가상 디스크의 제1 반경 및 제2 가상 디스크의 제2 가상 반경 각각은, 설정된 제어기 기준점이 설정된 사용자 기준점에 대해 이동함에 따라 일정하게 유지되고, 반각은 설정된 제어기 기준점이 설정된 사용자 기준점에 대해 이동함에 따라 변하는, 방법.
[0082] 예 10: 제1 예 내지 제9 예 중 어느 한 예에 있어서, 제2 입력을 수신하는 단계는 설정된 사용자 기준점에 대해 설정된 제어기 기준점의 이동을 검출하는 단계를 포함하고, 제2 입력에 대한 응답으로 가상 환경 내의 가상 피처의 포지션 또는 스케일 중 적어도 하나를 조정하는 단계는: 설정된 제어기 기준점이 설정된 사용자 기준점에 대해 이동함에 따라, 가상 타겟 광선 상에 앵커 지점을 유지하는 단계; 설정된 제어기 기준점이 설정된 사용자 기준점에 대해 이동함에 따라, 제1 가상 디스크의 제1 반경을 일정하게 유지하는 단계; 설정된 제어기 기준점이 설정된 사용자 기준점에 대해 이동하고 가상 피처의 포지션 또는 스케일 중 적어도 하나가 조정됨에 따라, 제2 가상 디스크의 제2 반경을 가상 환경에 대해 일정하게 유지하는 단계; 및 설정된 제어기 기준점이 설정된 사용자 기준점에 대해 이동하고 가상 피처의 포지션 또는 스케일 중 적어도 하나가 조정됨에 따라, 반각을 조정하는 단계를 포함하는, 방법.
[0083] 예 11: 제1 예 내지 제10 예 중 어느 한 예에 있어서, 제2 입력을 수신하는 단계는 설정된 사용자 기준점에 대해 설정된 제어기 기준점의 이동을 검출하는 단계를 포함하고, 제2 입력에 대한 응답으로 가상 환경 내의 가상 피처의 포지션 또는 스케일 중 적어도 하나를 조정하는 단계는: 설정된 제어기 기준점이 설정된 사용자 기준점에 대해 이동하여 앵커 지점이 이동될 때, 가상 타겟 광선 상에 앵커 지점을 유지하는 단계; 앵커 지점이 이동함에 따라, 규정된 영역 내의 앵커 지점을 둘러싸는, 규정된 영역 내의 가상 피처의 부분을 유지하는 단계; 및 앵커 지점이 이동함에 따라, 앵커 지점을 둘러싸는, 규정된 영역 내의 가상 피처의 부분의 포지션 또는 스케일 중 적어도 하나를 조정하는 단계를 포함하는, 방법.
[0084] 예 12: 제6 예 내지 제11 예 중 어느 한 예에 있어서, 앵커 지점을 둘러싸는 가상 피처의 규정된 영역은 제2 가상 디스크에 대응하고, 제2 가상 디스크의 가상 반경은, 가상 피처의 포지션 또는 스케일 중 적어도 하나가 앵커 지점의 이동에 대한 응답으로 조정됨에 따라, 가상 환경에 대해 일정하게 유지되는, 방법.
[0085] 예 13: 시스템으로서, 몰입형 가상 환경을 생성하도록 구성된 컴퓨팅 디바이스를 포함하고, 컴퓨팅 디바이스는: 실행 가능한 명령들을 저장하는 메모리; 및 명령들을 실행하도록 구성된 프로세서를 포함하고, 명령들은 컴퓨팅 디바이스로 하여금: 가상 환경을 생성하게 하고; 머리 장착 디스플레이 디바이스와 통신하는 제어기의 사용자 인터페이스에서 제1 입력을 검출하게 하고; 제1 입력에 대한 응답으로 가상 환경에서 선택된 가상 피처 상에 앵커 지점을 설정하게 하고; 제2 입력을 검출하게 하고; 그리고 제2 입력에 대한 응답으로, 앵커 지점이 피처의 영역 내에 배치되도록 영역을 규정하게 하고, 그리고 가상 환경의 사용자 시야 내의 규정된 영역 내에 가상 피처의 부분을 유지하면서, 가상 환경 내의 가상 피처의 포지션 또는 스케일 중 적어도 하나를 조정하게 하는, 시스템.
[0086] 예 14: 제13 예에 있어서, 제1 입력에 대한 응답으로 가상 환경에서 선택된 가상 피처 상에 앵커 지점을 설정하는데 있어서, 프로세서는: 가상 타겟 광선과 가상 피처의 교차점을 검출하고 ― 가상 타겟 광선은 사용자 머리 장착 디스플레이 상의 고정된 지점에 대응하는 설정된 사용자 기준점에서의 원점에 기반하여 규정되고, 제어기에 대해 고정된 지점에 대응하는 설정된 제어기 기준점을 통해 연장됨 ― ; 가상 타겟 광선과 가상 피처의 검출된 교차점에서 앵커 지점을 설정하고; 그리고 설정된 사용자 기준점에 대해 설정된 제어기 기준점의 포지션에 기반하여 앵커 지점을 둘러싸는 피처의 영역을 규정하도록 구성되는, 시스템.
[0087] 예 15: 제13 예 또는 제14 예에 있어서, 설정된 사용자 기준점에 대해 설정된 제어기 기준점의 포지션에 기반하여 앵커 지점을 둘러싸는 피처의 영역을 규정하는데 있어서, 프로세서는: 설정된 제어기 기준점에서 제1 가상 디스크를 규정하고; 설정된 사용자 기준점 및 제1 가상 디스크에 기반하여 가상 원뿔을 규정하고 ― 가상 원뿔은 설정된 사용자 기준점에서 원점을 갖고, 가상 피처를 향해 연장되고, 제1 가상 디스크에 접함 ― ; 그리고 가상 원뿔과 가상 피처의 교차점에서 제2 가상 디스크를 규정하도록 구성되는, 시스템.
[0088] 예 16: 제15 예에 있어서, 한 쌍의 가상 십자선들에서 제1 가상 디스크를 규정하는데 있어서, 프로세서는: 제1 가상 디스크의 중심을 규정하고 ― 제1 가상 디스크의 중심은 설정된 제어기 기준점에 대응함 ― ; 그리고 제1 가상 디스크의 제1 반경을 규정하도록 구성되고, 제1 반경은 설정된 제어기 기준점에서 제1 가상 디스크의 중심으로부터 제1 가상 디스크의 둘레로 연장되는, 시스템.
[0089] 예 17: 제15 예 또는 제16 예에 있어서, 원뿔과 가상 피처의 교차점에서 제2 가상 디스크를 규정하는데 있어서, 프로세서는: 제2 가상 디스크의 중심을 규정하고 ― 제2 가상 디스크의 중심은 앵커 지점에 대응함 ― ; 제2 가상 디스크의 둘레를 규정하고 ― 둘레는 원뿔과 가상 피처의 교차점에 대응함 ― ; 제2 가상 디스크의 제2 반경을 규정하고 ― 제2 반경은 제2 가상 디스크의 중심으로부터 제2 가상 디스크의 둘레로 연장됨 ― ; 그리고 가상 타겟 광선과 가상 원뿔의 둘레 사이의 반각을 규정하도록 구성되는, 시스템.
[0090] 예 18: 제13 예 내지 제17 예 중 어느 한 예에 있어서, 제2 입력에 대한 응답으로 가상 환경 내의 가상 피처의 포지션 또는 스케일 중 적어도 하나를 조정하는데 있어서, 프로세서는: 설정된 사용자 기준점에 대한 설정된 제어기 기준점의 이동을 제2 입력으로서 검출하고; 설정된 제어기 기준점이 설정된 사용자 기준점에 대해 이동함에 따라, 가상 타겟 광선 상에 앵커 지점을 유지하고; 설정된 제어기 기준점이 설정된 사용자 기준점에 대해 이동함에 따라, 제1 가상 디스크의 제1 반경을 일정하게 유지하고; 설정된 제어기 기준점이 설정된 사용자 기준점에 대해 이동하고 가상 피처의 포지션 또는 스케일 중 적어도 하나가 조정됨에 따라, 제2 가상 디스크의 제2 반경을 가상 환경에 대해 일정하게 유지하고; 그리고 설정된 제어기 기준점이 설정된 사용자 기준점에 대해 이동하고 가상 피처의 포지션 또는 스케일 중 적어도 하나가 조정됨에 따라, 반각을 조정하도록 구성되는, 시스템.
[0091] 예 19: 제18 예에 있어서, 설정된 제어기 기준점이 설정된 사용자 기준점에 대해 이동함에 따라, 제2 가상 디스크의 제2 반경을 가상 환경에 대해 일정하게 유지하는데 있어서, 프로세서는: 앵커 지점이 이동함에 따라, 규정된 영역 내의 앵커 지점을 둘러싸는, 규정된 영역 내의 가상 피처의 부분을 유지하고; 그리고 가상 피처의 포지션 또는 스케일 중 적어도 하나의 조정과 함께 앵커 지점이 이동함에 따라, 앵커 지점을 둘러싸는, 규정된 영역 내의 가상 피처의 부분의 포지션 또는 스케일 중 적어도 하나를 조정하도록 구성되는, 시스템.
[0092] 예 20: 제15 예 내지 제19 예 중 어느 한 예에 있어서, 앵커 지점을 둘러싸는 가상 피처의 규정된 영역은 제2 가상 디스크에 대응하고, 제2 가상 디스크의 가상 반경은, 가상 피처의 포지션 또는 스케일 중 적어도 하나가 앵커 지점의 이동에 대한 응답으로 조정됨에 따라, 가상 환경에 대해 일정하게 유지되는, 시스템.
[0093] 설명된 구현들의 특정 특징들이 본원에 설명된 바와 같이 예시되었지만, 이제 당업자들에게는 많은 수정들, 대체들, 변화들 및 등가물들이 떠오를 것이다. 따라서, 첨부된 청구항들은 구현들의 범위 내에서 속하는 모든 그러한 수정들 및 변화들을 커버하도록 의도된다는 것이 이해되어야 한다. 이들이 제한없이 단지 예로서 제시되었고, 형태 및 세부사항들의 다양한 변화들이 이루어질 수 있다는 것이 이해되어야 한다. 상호 배타적인 조합들을 제외하고, 본원에 설명된 장치 및/또는 방법들의 임의의 부분이 임의의 조합으로 조합될 수 있다. 본원에 설명된 구현들은 설명된 상이한 구현들의 기능들, 컴포넌트들 및/또는 특징들의 다양한 조합들 및/또는 서브-조합들을 포함할 수 있다.

Claims (20)

  1. 머리 장착 디스플레이 디바이스의 디스플레이 내에 가상 환경을 생성하는 단계;
    상기 머리 장착 디스플레이 디바이스와 통신하는 핸드헬드 제어기의 사용자 인터페이스에서 수신되는 제1 입력을 검출하는 단계;
    상기 제1 입력에 대한 응답으로 상기 가상 환경에서 선택된 가상 피처(virtual feature) 상에 앵커 지점(anchor point)을 설정하는 단계;
    제2 입력을 검출하는 단계; 및
    상기 제2 입력에 대한 응답으로,
    설정된 사용자 기준점에 대한 설정된 제어기 기준점의 위치에 기초하여, 상기 앵커 지점과 연관된 상기 가상 피처를 포함하는, 상기 가상 환경 내의 영역을 규정하는 단계 ― 상기 설정된 사용자 기준점은 상기 머리 장착 디스플레이 디바이스에 대한 고정된 지점에 대응하고, 상기 설정된 제어기 기준점은 상기 핸드헬드 제어기에 대한 고정된 지점에 대응하고, 상기 설정된 사용자 기준점, 상기 설정된 제어기 기준점 및 상기 앵커 지점은 가상의 선 상에 놓임 ―, 및
    상기 가상 환경의 사용자 시야 내에 상기 규정된 영역을 유지하면서, 상기 가상 환경 내의 상기 가상 피처의 위치 또는 스케일 중 적어도 하나를 조정하는 단계
    를 포함하는,
    방법.
  2. 제1항에 있어서,
    상기 제1 입력에 대한 응답으로 상기 가상 환경에서 선택된 가상 피처 상에 앵커 지점을 설정하는 단계는:
    가상 타겟 광선(virtual target ray)과 상기 가상 피처의 교차점을 검출하는 단계; 및
    상기 가상 타겟 광선과 상기 가상 피처의 검출된 교차점에 상기 앵커 지점을 설정하는 단계
    를 포함하는,
    방법.
  3. 제2항에 있어서,
    상기 설정된 사용자 기준점은 상기 머리 장착 디스플레이 디바이스 상의 고정된 지점에 대응하고, 상기 설정된 제어기 기준점은 상기 핸드헬드 제어기에 대한 고정된 지점에 대응하는,
    방법.
  4. 제3항에 있어서,
    상기 가상 타겟 광선과 상기 가상 피처의 교차점을 검출하는 단계는 상기 가상 타겟 광선을 규정하는 단계를 포함하고, 상기 가상 타겟 광선은 상기 설정된 사용자 기준점에서 원점을 갖고, 상기 가상 타겟 광선은 상기 설정된 사용자 기준점에서의 원점으로부터 상기 설정된 제어기 기준점을 통해 연장되는,
    방법.
  5. 제4항에 있어서,
    상기 설정된 제어기 기준점은 가상 폐쇄 곡선의 중심을 규정하는,
    방법.
  6. 제1항에 있어서,
    상기 설정된 사용자 기준점에 대한 설정된 제어기 기준점의 위치에 기초하여, 상기 앵커 지점과 연관된 상기 가상 피처를 포함하는, 상기 가상 환경 내의 영역을 규정하는 단계는:
    상기 설정된 제어기 기준점에 의해 규정된 중심을 갖는 제1 가상 디스크를 규정하는 단계;
    상기 설정된 사용자 기준점 및 상기 제1 가상 디스크에 기초하여 가상 원뿔을 규정하는 단계 ― 상기 가상 원뿔은 상기 설정된 사용자 기준점에서 원점을 갖고, 상기 가상 피처를 향해 연장되고 상기 제1 가상 디스크에 접선 방향으로(tangentially) 접촉함 ― ; 및
    상기 가상 원뿔과 상기 가상 피처의 교차점에서 제2 가상 디스크를 규정하는 단계
    를 포함하는,
    방법.
  7. 제6항에 있어서,
    상기 설정된 제어기 기준점에 의해 규정된 중심을 갖는 제1 가상 디스크를 규정하는 단계는 상기 제1 가상 디스크의 제1 반경을 규정하는 단계를 포함하고 ― 상기 제1 반경은 상기 설정된 제어기 기준점으로부터 상기 제1 가상 디스크의 둘레로 연장됨 ―,
    상기 가상 원뿔과 상기 가상 피처의 교차점에서 제2 가상 디스크를 규정하는 단계는:
    상기 제2 가상 디스크의 중심을 규정하는 단계 ― 상기 제2 가상 디스크의 중심은 상기 앵커 지점에 대응함 ― ;
    상기 제2 가상 디스크의 둘레를 규정하는 단계 ― 상기 둘레는 상기 앵커 지점에 위치된 가상 평면과 상기 가상 원뿔과의 교차점에 대응하고, 상기 가상 평면은 가상 타겟 광선에 수직임 ― ; 및
    상기 제2 가상 디스크의 제2 반경을 규정하는 단계 ― 상기 제2 반경은 상기 제2 가상 디스크의 중심으로부터 상기 제2 가상 디스크의 둘레로 연장됨 ―
    를 포함하는,
    방법.
  8. 제7항에 있어서,
    상기 설정된 사용자 기준점 및 상기 제1 가상 디스크에 기초하여 가상 원뿔을 규정하는 단계는 또한, 상기 가상 타겟 광선과 상기 가상 원뿔의 둘레 사이의 반각(half angle)을 규정하는 단계를 포함하는,
    방법.
  9. 제8항에 있어서,
    상기 설정된 제어기 기준점이 상기 설정된 사용자 기준점에 대해 이동할 때, 상기 제1 가상 디스크의 제1 반경은 사용자에 대해 일정하게 유지되고, 상기 제2 가상 디스크의 제2 가상 반경은 상기 가상 환경에 대해 일정하게 유지되고,
    상기 반각은 상기 설정된 제어기 기준점이 상기 설정된 사용자 기준점에 대해 이동함에 따라 변하는,
    방법.
  10. 제8항에 있어서,
    상기 제2 입력을 수신하는 단계는 상기 설정된 사용자 기준점에 대한 상기 설정된 제어기 기준점의 이동을 검출하는 단계를 포함하고,
    상기 제2 입력에 대한 응답으로, 상기 가상 환경 내의 상기 가상 피처의 위치 또는 스케일 중 적어도 하나를 조정하는 단계는:
    상기 설정된 제어기 기준점이 상기 설정된 사용자 기준점에 대해 이동할 때, 상기 가상 타겟 광선 상에 상기 앵커 지점을 유지하는 단계;
    상기 설정된 제어기 기준점이 상기 설정된 사용자 기준점에 대해 이동할 때, 상기 제1 가상 디스크의 제1 반경을 사용자에 대해 일정하게 유지하는 단계;
    상기 설정된 제어기 기준점이 상기 설정된 사용자 기준점에 대해 이동하고 상기 가상 피처의 위치 또는 스케일 중 적어도 하나가 조정될 때, 상기 제2 가상 디스크의 제2 반경을 상기 가상 환경에 대해 일정하게 유지하는 단계; 및
    상기 설정된 제어기 기준점이 상기 설정된 사용자 기준점에 대해 이동하고 상기 가상 피처의 위치 또는 스케일 중 적어도 하나가 조정될 때, 상기 반각을 조정하는 단계
    를 포함하는,
    방법.
  11. 제8항에 있어서,
    상기 제2 입력을 수신하는 단계는 상기 설정된 사용자 기준점에 대한 상기 설정된 제어기 기준점의 이동을 검출하는 단계를 포함하고,
    상기 제2 입력에 대한 응답으로, 상기 가상 환경 내의 상기 가상 피처의 위치 또는 스케일 중 적어도 하나를 조정하는 단계는:
    상기 설정된 제어기 기준점이 상기 설정된 사용자 기준점에 대해 이동할 때, 상기 가상 타겟 광선 상에 상기 앵커 지점을 유지하여, 상기 앵커 지점이 이동되도록 하는 단계;
    상기 앵커 지점이 이동할 때, 상기 앵커 지점을 둘러싸는 상기 규정된 영역 내의 상기 가상 피처의 부분을 상기 규정된 영역 내에 유지하는 단계; 및
    상기 앵커 지점이 이동할 때, 상기 앵커 지점을 둘러싸는 상기 규정된 영역 내의 상기 가상 피처의 부분의 위치 또는 스케일 중 적어도 하나를 조정하는 단계
    를 포함하는,
    방법.
  12. 제11항에 있어서,
    상기 앵커 지점을 둘러싸는 상기 가상 피처의 규정된 영역은 상기 제2 가상 디스크에 대응하고, 상기 제2 가상 디스크의 가상 반경은, 상기 가상 피처의 위치 또는 스케일 중 적어도 하나가 상기 앵커 지점의 이동에 대한 응답으로 조정될 때, 상기 가상 환경에 대해 일정하게 유지되는,
    방법.
  13. 몰입형 가상 환경을 생성하도록 구성된 컴퓨팅 디바이스를 포함하는 시스템으로서,
    상기 컴퓨팅 디바이스는:
    실행 가능한 명령들을 저장하는 메모리; 및
    상기 명령들을 실행하도록 구성된 프로세서
    를 포함하고,
    상기 명령들은 상기 컴퓨팅 디바이스로 하여금:
    머리 장착 디스플레이 디바이스의 디스플레이 내에 가상 환경을 생성하고;
    상기 머리 장착 디스플레이 디바이스와 통신하는 핸드헬드 제어기의 사용자 인터페이스에서 수신되는 제1 입력을 검출하고;
    상기 제1 입력에 대한 응답으로, 상기 가상 환경에서 선택된 가상 피처 상에 앵커 지점을 설정하고;
    제2 입력을 검출하고; 그리고
    상기 제2 입력에 대한 응답으로,
    설정된 사용자 기준점에 대한 설정된 제어기 기준점의 위치에 기초하여, 상기 피처의 영역을 규정하여 상기 앵커 지점이 상기 영역 내에 배치되도록 하고 ― 상기 설정된 사용자 기준점은 상기 머리 장착 디스플레이 디바이스에 대한 고정된 지점에 대응하고, 상기 설정된 제어기 기준점은 상기 핸드헬드 제어기에 대한 고정된 지점에 대응하고, 상기 설정된 사용자 기준점, 상기 설정된 제어기 기준점 및 상기 앵커 지점은 가상의 선 상에 놓임 ―, 그리고
    상기 가상 환경의 사용자 시야 내에 상기 규정된 영역을 유지하면서, 상기 가상 환경 내의 상기 가상 피처의 위치 또는 스케일 중 적어도 하나를 조정하게 하는,
    시스템.
  14. 제13항에 있어서,
    상기 제1 입력에 대한 응답으로, 상기 가상 환경에서 선택된 가상 피처 상에 앵커 지점을 설정함에 있어서, 상기 프로세서는:
    가상 타겟 광선과 상기 가상 피처의 교차점을 검출하고 ― 상기 가상 타겟 광선은 사용자 머리 장착 디스플레이 상의 고정된 지점에 대응하는 설정된 사용자 기준점에서의 원점에 기초하여 규정되고, 상기 제어기에 대해 고정된 지점에 대응하는 설정된 제어기 기준점을 통해 연장됨 ―; 그리고
    상기 가상 타겟 광선과 상기 가상 피처의 검출된 교차점에 상기 앵커 지점을 설정하도록 구성되는,
    시스템.
  15. 제14항에 있어서,
    상기 앵커 지점을 둘러싸는 상기 피처의 영역을 규정함에 있어서, 상기 프로세서는:
    상기 설정된 제어기 기준점에서 제1 가상 디스크를 규정하고;
    상기 설정된 사용자 기준점 및 상기 제1 가상 디스크에 기초하여 가상 원뿔을 규정하고 ― 상기 가상 원뿔은 상기 설정된 사용자 기준점에서 원점을 갖고, 상기 가상 피처를 향해 연장되고, 상기 제1 가상 디스크에 접선 방향으로 접함 ―; 그리고
    상기 가상 원뿔과 상기 가상 피처의 교차점에서 제2 가상 디스크를 규정하도록 구성되는,
    시스템.
  16. 제15항에 있어서,
    한 쌍의 가상 십자선들(virtual crosshairs)에 상기 제1 가상 디스크를 규정함에 있어서, 상기 프로세서는:
    상기 제1 가상 디스크의 중심을 규정하고 ― 상기 제1 가상 디스크의 중심은 상기 설정된 제어기 기준점에 대응함 ―; 그리고
    상기 제1 가상 디스크의 제1 반경을 규정하도록 ― 상기 제1 반경은 상기 설정된 제어기 기준점에서 상기 제1 가상 디스크의 중심으로부터 상기 제1 가상 디스크의 둘레로 연장됨 ― 구성되는,
    시스템.
  17. 제16항에 있어서,
    상기 가상 원뿔과 상기 가상 피처의 교차점에서 제2 가상 디스크를 규정함에 있어서, 상기 프로세서는:
    상기 제2 가상 디스크의 중심을 규정하고 ― 상기 제2 가상 디스크의 중심은 상기 앵커 지점에 대응함 ― ;
    상기 제2 가상 디스크의 둘레를 규정하고 ― 상기 둘레는 상기 가상 원뿔과 상기 가상 피처의 교차점에 대응함 ― ;
    상기 제2 가상 디스크의 제2 반경을 규정하고 ― 상기 제2 반경은 상기 제2 가상 디스크의 중심으로부터 상기 제2 가상 디스크의 둘레로 연장됨 ― ; 그리고
    상기 가상 타겟 광선과 상기 가상 원뿔의 둘레 사이의 반각을 규정하도록 구성되는,
    시스템.
  18. 제17항에 있어서,
    상기 제2 입력에 대한 응답으로, 상기 가상 환경 내의 상기 가상 피처의 위치 또는 스케일 중 적어도 하나를 조정함에 있어서, 상기 프로세서는:
    상기 설정된 사용자 기준점에 대한 상기 설정된 제어기 기준점의 이동을 상기 제2 입력으로서 검출하고;
    상기 설정된 제어기 기준점이 상기 설정된 사용자 기준점에 대해 이동할 때, 상기 가상 타겟 광선 상에 상기 앵커 지점을 유지하고;
    상기 설정된 제어기 기준점이 상기 설정된 사용자 기준점에 대해 이동할 때, 상기 제1 가상 디스크의 제1 반경을 사용자에 대해 일정하게 유지하고;
    상기 설정된 제어기 기준점이 상기 설정된 사용자 기준점에 대해 이동하고 상기 가상 피처의 위치 또는 스케일 중 적어도 하나가 조정될 때, 상기 제2 가상 디스크의 제2 반경을 상기 가상 환경에 대해 일정하게 유지하고; 그리고
    상기 설정된 제어기 기준점이 상기 설정된 사용자 기준점에 대해 이동하고 상기 가상 피처의 위치 또는 스케일 중 적어도 하나가 조정됨에 따라, 상기 반각을 조정하도록 구성되는,
    시스템.
  19. 제17항에 있어서,
    상기 설정된 제어기 기준점이 상기 설정된 사용자 기준점에 대해 이동할 때, 상기 제2 가상 디스크의 제2 반경을 상기 가상 환경에 대해 일정하게 유지함에 있어서, 상기 프로세서는:
    상기 앵커 지점이 이동할 때, 상기 앵커 지점을 둘러싸는 상기 규정된 영역 내의 상기 가상 피처의 부분을 상기 규정된 영역 내에 유지하고; 그리고
    상기 가상 피처의 위치 또는 스케일 중 적어도 하나의 조정과 함께 상기 앵커 지점이 이동할 때, 상기 앵커 지점을 둘러싸는 상기 규정된 영역 내의 상기 가상 피처의 부분의 위치 또는 스케일 중 적어도 하나를 조정하도록 구성되는,
    시스템.
  20. 제19항에 있어서,
    상기 앵커 지점을 둘러싸는 상기 가상 피처의 규정된 영역은 상기 제2 가상 디스크에 대응하고, 상기 제2 가상 디스크의 가상 반경은, 상기 가상 피처의 위치 또는 스케일 중 적어도 하나가 상기 앵커 지점의 이동에 대한 응답으로 조정될 때, 상기 가상 환경에 대해 일정하게 유지되는,
    시스템.
KR1020187013796A 2016-02-08 2016-12-06 가상 현실 환경에서의 내비게이션을 위한 제어 시스템 KR102021135B1 (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201662292602P 2016-02-08 2016-02-08
US62/292,602 2016-02-08
US15/352,162 US10083539B2 (en) 2016-02-08 2016-11-15 Control system for navigation in virtual reality environment
US15/352,162 2016-11-15
PCT/US2016/065058 WO2017139009A1 (en) 2016-02-08 2016-12-06 Control system for navigation in virtual reality environment

Publications (2)

Publication Number Publication Date
KR20180069041A KR20180069041A (ko) 2018-06-22
KR102021135B1 true KR102021135B1 (ko) 2019-09-11

Family

ID=59497863

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020187013796A KR102021135B1 (ko) 2016-02-08 2016-12-06 가상 현실 환경에서의 내비게이션을 위한 제어 시스템

Country Status (6)

Country Link
US (1) US10083539B2 (ko)
EP (1) EP3414644B1 (ko)
JP (1) JP6535819B2 (ko)
KR (1) KR102021135B1 (ko)
CN (1) CN108139805B (ko)
WO (1) WO2017139009A1 (ko)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20170061700A1 (en) * 2015-02-13 2017-03-02 Julian Michael Urbach Intercommunication between a head mounted display and a real world object
JP7196834B2 (ja) * 2017-03-22 2022-12-27 ソニーグループ株式会社 画像処理装置および方法、並びにプログラム
US10326933B2 (en) * 2017-06-14 2019-06-18 Google Llc Pose estimation of 360-degree photos using annotations
KR102479052B1 (ko) * 2017-08-29 2022-12-20 삼성전자주식회사 복수의 컨트롤러를 이용한 전자 장치의 디스플레이 제어 방법 및 그 장치
KR102374408B1 (ko) * 2017-09-08 2022-03-15 삼성전자주식회사 가상 현실에서의 포인터 제어 방법 및 전자 장치
US10712899B2 (en) * 2017-10-17 2020-07-14 Microsoft Technology Licensing, Llc Human-machine interface tethered to a user position in a three-dimensional VR or AR environment
KR102572675B1 (ko) * 2017-11-22 2023-08-30 삼성전자주식회사 사용자 인터페이스를 적응적으로 구성하기 위한 장치 및 방법
CN108519676B (zh) * 2018-04-09 2020-04-28 杭州瑞杰珑科技有限公司 一种头戴式助视装置
US11353967B2 (en) * 2018-05-31 2022-06-07 Arkh Litho Holdings, LLC Interacting with a virtual environment using a pointing controller
CN110825279A (zh) * 2018-08-09 2020-02-21 北京微播视界科技有限公司 平面间无缝切换的方法、装置和计算机可读存储介质
US11397463B2 (en) 2019-01-12 2022-07-26 Microsoft Technology Licensing, Llc Discrete and continuous gestures for enabling hand rays
US11386872B2 (en) * 2019-02-15 2022-07-12 Microsoft Technology Licensing, Llc Experiencing a virtual object at a plurality of sizes
CN110456907A (zh) * 2019-07-24 2019-11-15 广东虚拟现实科技有限公司 虚拟画面的控制方法、装置、终端设备及存储介质
US20230297166A1 (en) * 2020-03-10 2023-09-21 Arkh Litho Holdings, LLC Barometric Sensing of Arm Position in a Pointing Controller System
US11120639B1 (en) 2020-04-24 2021-09-14 Microsoft Technology Licensing, Llc Projecting telemetry data to visualization models

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7646394B1 (en) 2004-03-05 2010-01-12 Hrl Laboratories, Llc System and method for operating in a virtual environment
WO2016014878A1 (en) 2014-07-25 2016-01-28 Microsoft Technology Licensing, Llc Gaze-based object placement within a virtual reality environment

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001128134A (ja) * 1999-11-01 2001-05-11 Atr Media Integration & Communications Res Lab プレゼンテーション装置
JP5681850B2 (ja) * 2010-03-09 2015-03-11 レノボ・イノベーションズ・リミテッド(香港) ヘッドマウントディスプレイを外部表示装置として使用する携帯端末
EP2506118A1 (en) * 2011-03-29 2012-10-03 Sony Ericsson Mobile Communications AB Virtual pointer
WO2013085639A1 (en) * 2011-10-28 2013-06-13 Magic Leap, Inc. System and method for augmented and virtual reality
US20140168261A1 (en) * 2012-12-13 2014-06-19 Jeffrey N. Margolis Direct interaction system mixed reality environments
JP5868886B2 (ja) * 2013-03-11 2016-02-24 東芝三菱電機産業システム株式会社 ウェアラブルコンピュータ入力装置
US9041741B2 (en) * 2013-03-14 2015-05-26 Qualcomm Incorporated User interface for a head mounted display
JP6264370B2 (ja) * 2013-04-02 2018-01-24 ソニー株式会社 情報処理装置、情報処理方法、及びプログラム
US9245387B2 (en) * 2013-04-12 2016-01-26 Microsoft Technology Licensing, Llc Holographic snap grid
CN105210144B (zh) * 2013-05-21 2017-12-08 索尼公司 显示控制装置、显示控制方法和记录介质
US20160004300A1 (en) 2014-07-07 2016-01-07 PinchVR Inc. System, Method, Device and Computer Readable Medium for Use with Virtual Environments
CN206650796U (zh) * 2017-08-04 2017-11-17 深圳超多维科技有限公司 虚拟现实装置

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7646394B1 (en) 2004-03-05 2010-01-12 Hrl Laboratories, Llc System and method for operating in a virtual environment
WO2016014878A1 (en) 2014-07-25 2016-01-28 Microsoft Technology Licensing, Llc Gaze-based object placement within a virtual reality environment

Also Published As

Publication number Publication date
JP6535819B2 (ja) 2019-06-26
JP2019502193A (ja) 2019-01-24
EP3414644B1 (en) 2022-05-25
CN108139805B (zh) 2021-05-25
EP3414644A1 (en) 2018-12-19
KR20180069041A (ko) 2018-06-22
US20170228921A1 (en) 2017-08-10
CN108139805A (zh) 2018-06-08
WO2017139009A1 (en) 2017-08-17
US10083539B2 (en) 2018-09-25

Similar Documents

Publication Publication Date Title
KR102021135B1 (ko) 가상 현실 환경에서의 내비게이션을 위한 제어 시스템
US10558274B2 (en) Teleportation in an augmented and/or virtual reality environment
US10559117B2 (en) Interactions and scaling in virtual reality
US10642344B2 (en) Manipulating virtual objects with six degree-of-freedom controllers in an augmented and/or virtual reality environment
US10359863B2 (en) Dragging virtual elements of an augmented and/or virtual reality environment
JP6895390B2 (ja) 仮想現実においてハンドヘルド電子装置を追跡するためのシステム
US10620720B2 (en) Input controller stabilization techniques for virtual reality systems

Legal Events

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