KR102233807B1 - 가상 현실 시스템을 위한 입력 제어기 안정화 기법 - Google Patents

가상 현실 시스템을 위한 입력 제어기 안정화 기법 Download PDF

Info

Publication number
KR102233807B1
KR102233807B1 KR1020197013995A KR20197013995A KR102233807B1 KR 102233807 B1 KR102233807 B1 KR 102233807B1 KR 1020197013995 A KR1020197013995 A KR 1020197013995A KR 20197013995 A KR20197013995 A KR 20197013995A KR 102233807 B1 KR102233807 B1 KR 102233807B1
Authority
KR
South Korea
Prior art keywords
input controller
motion
scaling factor
user
6dof
Prior art date
Application number
KR1020197013995A
Other languages
English (en)
Other versions
KR20190067227A (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 KR20190067227A publication Critical patent/KR20190067227A/ko
Application granted granted Critical
Publication of KR102233807B1 publication Critical patent/KR102233807B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/03Arrangements for converting the position or the displacement of a member into a coded form
    • G06F3/033Pointing devices displaced or positioned by the user, e.g. mice, trackballs, pens or joysticks; Accessories therefor
    • G06F3/0346Pointing devices displaced or positioned by the user, e.g. mice, trackballs, pens or joysticks; Accessories therefor with detection of the device orientation or free movement in a 3D space, e.g. 3D mice, 6-DOF [six degrees of freedom] pointers using gyroscopes, accelerometers or tilt-sensors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/011Arrangements for interaction with the human body, e.g. for user immersion in virtual reality
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/03Arrangements for converting the position or the displacement of a member into a coded form
    • G06F3/033Pointing devices displaced or positioned by the user, e.g. mice, trackballs, pens or joysticks; Accessories therefor
    • G06F3/0338Pointing devices displaced or positioned by the user, e.g. mice, trackballs, pens or joysticks; Accessories therefor with detection of limited linear or angular displacement of an operating part of the device from a neutral position, e.g. isotonic or isometric joysticks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/03Arrangements for converting the position or the displacement of a member into a coded form
    • G06F3/033Pointing devices displaced or positioned by the user, e.g. mice, trackballs, pens or joysticks; Accessories therefor
    • G06F3/038Control and interface arrangements therefor, e.g. drivers or device-embedded control circuitry
    • 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

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)
  • Software Systems (AREA)
  • Remote Sensing (AREA)
  • Computer Graphics (AREA)
  • Computer Hardware Design (AREA)
  • Radar, Positioning & Navigation (AREA)
  • User Interface Of Digital Computer (AREA)
  • Position Input By Displaying (AREA)

Abstract

본 기법은 물리적 환경에서 입력 제어기의 누적 움직임을 결정하는 단계, 물리적 환경에서 입력 제어기의 누적 움직임에 기초하여 스케일링 팩터를 결정하는 단계, 시간 기간에 대한 물리적 환경에서 입력 제어기의 현재 움직임을 결정하는 단계, 및 스케일링 팩터에 기초하여 입력 제어기의 현재 움직임의 부분만 가상 환경에 등록하는 단계를 포함할 수 있다.

Description

가상 현실 시스템을 위한 입력 제어기 안정화 기법
관련 출원에 대한 상호 참조
또한 본 출원은 2016년 11월 15일 출원된 미국 가출원 번호 제62/422,464호 “가상 현실 시스템을 위한 입력 제어기 안정화 기법”에 대해 우선권을 주장하며, 그 전체가 참조로서 본 명세서에 통합된다.
기술분야
본 발명은 일반적으로 증강 및/또는 가상 현실 환경에서 입력 제어기 안정화 기법과 관련된다.
증강 현실(AR) 및/또는 가상 현실(VR) 시스템은 3차원(3D) 몰입형 가상 환경을 생성할 수 있다. 사용자는 디스플레이 디바이스를 볼 때 사용자가 센서가 장착된 장갑 센서를 포함하는 외부 핸드헬드 디바이스들 및 다른 그러한 전자 디바이스들을 보는 디스플레이, 안경 또는 고글을 포함하는 헬멧 또는 다른 헤드 마운트 디바이스와 같은 다양한 전자 디바이스들과의 인터렉션을 통해 이러한 3D 몰입형 가상 환경을 경험할 수 있다. 일단 3D 가상 환경에 몰입되면, 사용자는 가상 환경을 통해, 가상 환경과 인터렉션하고 가상 환경과의 인터렉션을 개인화하기 위해 전자 디바이스의 물리적 움직임 및/또는 조작을 통해 움직일 수 있다.
일 양태에서, 방법은 컴퓨팅 시스템의 프로세싱 회로에 의해, 사용자에 의해 점유된 물리적 환경 내에서 사용자가 들고 있는 입력 제어기의 제1 6-자유도(6DOF) 움직임을 표시하는 제1 움직임 데이터를 수신하는 단계를 포함할 수 있다. 방법은 상기 프로세싱 회로에 의해, 상기 물리적 환경 내에서 상기 입력 제어기의 제1 6DOF 움직임에 기초하여 스케일링 팩터를 생성하는 단계를 더 포함할 수 있다. 방법은 상기 프로세싱 회로에 의해, 상기 제1 움직임 데이터를 수신한 후에, 시간 기간에 걸쳐 상기 물리적 환경 내에서 상기 입력 제어기의 제2 6DOF 움직임을 표시하는 제2 움직임 데이터를 수신하는 단계를 더 포함할 수 있다. 방법은 상기 프로세싱 회로에 의해, 상기 제2 움직임 데이터를 수신함에 응답하여, 가상 환경 내에서 오브젝트의 스케일링된 움직임을 생성하기 위해 오브젝트 움직임 동작을 수행하는 단계를 포함할 수 있고, 상기 오브젝트 움직임 동작은 상기 가상 환경 내의 상기 오브젝트의 상기 스케일링된 움직임을 생성하기 위해 상기 제2 6DOF 움직임에 대응하는 상기 가상 환경 내의 상기 오브젝트의 움직임에 상기 스케일링 팩터를 곱하는 것을 포함한다.
하나 이상의 구현예들의 세부 내용들이 첨부 도면과 아래의 설명에서 기술된다. 다른 구성들은 아래의 설명, 도면들 및 청구항들로부터 명백해질 것이다.
도 1a는 예시적 구현예에 따라 입력 제어기의 제1 6DOF 위치를 도시하는 도면이다.
도 1b는 예시적 구현예에 따라 입력 제어기의 제2 6DOF 위치를 도시하는 도면이다.
도 1c는 예시적 구현예에 따라 예시적 6DOF 움직임 및 스케일링 팩터들을 도시하는 도면이다.
도 2는 본 명세서에 기술된 구현예들에 따라, 헤드 마운트 디스플레이 및 핸드 헬드 전자 디바이스를 포함하는 가상 현실 시스템의 예시적 구현예이다.
도 3a 및 도 3b는 본 명세서에 기술된 구현예들에 따른, 예시적 헤드 마운트 디스플레이 디바이스의 사시도이고, 도 3c는 예시적 핸드헬드 전자 디바이스를 도시한다.
도 4a 및 도 4b는 본 명세서에 기술된 실시예들에 따른, 헤드 마운트 전자 디바이스 및 핸드헬드 전자 디바이스의 블록도이다.
도 5는 예시적 구현예에 따라 가상 현실 시스템의 동작을 도시하는 흐름도이다.
도 6a 내지 도 6d는 본 명세서에 기술된 구현예에 따라, 증강 및/또는 가상 현실 환경에서 사용자 및/또는 가상 피처의 움직임 및 스케일링을 나타내는 제3자 뷰이다.
도 7은 본 명세서에 기술된 기법들을 구현하는데 사용될 수 있는 컴퓨터 디바이스와 모바일 컴퓨터 디바이스의 예시를 도시한다.
예를 들어 HMD(Head Mounted Display) 디바이스를 착용한 증강 및/또는 가상 현실 환경에 몰입된 사용자는 가상 환경(예: 3 차원 가상 환경)을 탐색하고 다양한 상이한 유형의 입력들을 통해 가상 환경과 인터렉션할 수 있다. 가상 환경에 대한 참조는 가상 엘리먼트들에 의해 증강된 물리적 환경을 포함할 수 있다. 이들 입력들은 예를 들어, 물리적 인터렉션을 포함할 수 있고, 물리적 인터렉션은 전자 디바이스의 조작, 전자 디바이스의 움직임, 전자 디바이스의 터치 감응형 표현에 인가된 터치 등 및/또는 HMD 그 자체의 조작 및/또는 손/팔 제스처들, 머리 움직임 및/또는 눈의 응시 방향 등에 기초하여, 예를 들어, 전자 디바이스에 의해 방출되는 광선 또는 빔, 또는 가상 환경에서 렌더링된 가상 빔을 통해, 입력 제어기와 같은 HMD와 별개의 전자 디바이스의 조작을 포함한다. 사용자는 하나 이상의 이들 상이한 유형의 인터렉션들을 구현하여 가상 환경에서 특정한 액션을 실행할 수 있고, 상기 특정한 액션은 가상 환경에서 이동하는 것, 가상 환경의 제1 지역에서 가상 환경의 제2 지역으로 또는 제1 가상 환경으로부터 제2 가상 환경으로 이동, 전이 또는 텔레포트하는 것을 포함할 수 있다.
본 명세서에 개시된 가상 환경에서 오브젝트들의 움직임을 제어하는 기법들은 사용자의 의해 보유된 입력 제어기의 이전의 움직임에 기초하여 생성된 스케일링 팩터에 기초하여 가상 환경에서 오브젝트의 움직임을 정의하는 것을 포함한다. 이 선들을 따라, 사용자는 6 자유도(6DOF) 움직임 경로를 따라 입력 제어기를 이동시켜 제1 움직임 데이터를 생성한다. 6DOF 움직임 경로에 기초하여, 컴퓨팅 시스템은 후속 모션에서 사용된 지터 감소량(amount of jitter reduction)을 표시하는 스케일링 팩터를 생성한다. 따라서, 새로운 6DOF 움직임 경로를 표시하는 제2 움직임 데이터를 수신하는 것에 응답하여, 컴퓨팅 시스템은 가상 환경에서 오브젝트의 스케일링된 움직임을 생성하기 위해 오브젝트 움직임 동작을 수행한다.
도 1a 및 도1b는 예시적 구현예에 따라 핸드헬드 입력 제어기의 6DOF 위치를 도시하는 도면이다. 사용자는 예를 들어 HMD를 통해 사용자에게 제시될 수 있는 가상 환경과 인터렉션하기 위해 다양한 제스처 또는 움직임을 수행하기 위해 핸드헬드 입력 제어기(12)를 사용할 수 있다. 입력 제어기(12)를 사용하거나 동작하는 동안, 입력 제어기(12)는 시간의 흐름에 따라 상태를 변경할 수 있고, 입력 제어기(12)의 상태는 입력 제어기(12)의 포지션(또는 위치) 중 적어도 하나(또는 둘 모두)를 포함할 수 있으며, 이는 3 차원적 위치 좌표(x, y 및 z 좌표들) 및 입력 제어기의 각도적 위치(피치, 요잉, 롤링) 또는 방향(어느 방향을 입력 제어기(12)가 포인팅하는지)일 수 있는 입력 제어기(12)의 방향에 의해 식별될 수 있다. 예를 들어, 입력 제어기 (12)의 방향은 입력 제어기(12)가 포인팅되는 단위 구체상의 포인트으로서 식별될 수 있다. 예를 들어, 시간 t1에서, 입력 제어기(12)는 (x1, y1, z1)의 위치 및 방향 1의 방향을 포함할 수 있는 상태 1에 있을 수 있다. 시간 t2에서, 입력 제어기(12)는 이동하여, 이제 (x2, y2, z2)의 위치 2 및 방향 2의 방향을 포함하는 상태 2에 있다.
일부 경우에, 물리적 환경(10)에서 입력 제어기(12)의 비교적 작은 움직임(예를 들어, 상태의 작은 변화)은 가상 환경에서 크고, 어떤 경우에는 의도하지 않은 움직임 또는 변화를 초래할 수 있다. 예를 들어, 사용자는 입력 제어기(12)상의 버튼 또는 트리거를 선택하거나 작동시켜 입력 제어기(12)로부터 광선을 산란하거나 생성할 수 있으며, 광선은 건물 또는 가상 환경에서 이동될 다른 오브젝트를 향하여 포인팅될 수 있다. 그러나 입력 제어기의 작은(예: 의도하지 않은) 움직임(예: 흔들리는 또는 약간 불안정한 손)은 광선의 끝 또는 가상 환경에서 제어기(12)로부터 멀리 떨어져 있는 빌딩 또는 오브젝트의 큰 움직임을 초래할 수 있다. 물리적 환경에서 입력 제어기의 비교적 작은 움직임은 지터와 비슷하거나 의도하지 않은 움직임 또는 흔들림일 수 있다. 가상 환경에 등록될 물리적 환경에서 입력 제어기(12)의 적어도 일부 움직임을 필터링 또는 감쇠(예, 감소)함으로써 입력 제어기를 안정화하는 것이 바람직할 수 있다.
예시적 구현예에 따르면, 스케일링 팩터(또는 가중 팩터)가 결정될 수 있다. 그리고, 예를 들어, 물리적 환경에서의 입력 제어기(12)의 움직임(또는 상태 변화)의 일부만이 스케일링 팩터에 기초하여 가상 환경에 등록될 수 있다. 가상 환경에서 입력 제어기의 움직임을 (예를 들어, 가상 현실 시스템 또는 HMD 내에) 등록하는 것은 예를 들어, 가상 환경에서 입력 제어기(12)의 움직임을 디스플레이하거나, 물리적 환경에서 입력 제어기(12)의 움직임에 기초하여 가상 환경에서 변화를 디스플레이하는 것 또는 물리적 환경에서 입력 제어기912)의 움직임에 기초하여 가상 환경에서 변화를 프로세싱하는 것을 포함할 수 있다. 이러한 방식으로, 물리적 환경에서 입력 제어기(12)의 움직임의 일부분만을 가상 환경에 등록함으로써(예를 들어, 스케일링 팩터에 기초하여), 입력 제어기(12)의 움직임(또는 물리적 환경에서 입력 제어기(12)의 움직임의 결과)이 안정화될 수 있고 및/또는 지터 또는 입력 제어기 불안정성이 예를 들어, 적어도 물리적 환경에서 입력 제어기(12)의 일부 움직임에 대해 감소될 수 있다.
예시적 구현예에 따르면, 가상 환경에 등록된 물리적 환경에서 입력 제어기(12)의 움직임을 감쇠시키거나 감소시키기 위해 사용될 수 있는 적어도 하나의 필터가 제공될 수 있다. 예시적 구현예에 따르면, 필터는 예를 들어, 0과 1 사이의 스케일링 팩터(또한 가중 팩터로도 지칭될 수 있음)를 포함할 수 있다. 예시적 구현예에 따르면, 스케일링 팩터는 입력 제어기의 초기 상태 이후의 물리적 환경에서의 입력 제어기(12)의 누적 움직임의 양(예를 들어, 상태의 누적 변화)에 기초하여 선택되거나 결정될 수 있다. 예를 들어, 입력 제어기(12)를 사용하여 사용자에 의해 제스처가 시작되면, 입력 제어기(12)의 초기 상태(예를 들어, 초기 위치 및/또는 초기 방향 포함)가 결정될 수 있다. 새로운 제스처가 시작되면, 다른 초기 상태가 결정된다. 예를 들어, 입력 제어기(12)상의 입력, 버튼 또는 트리거가 선택되거나 작동될 때, 또는 입력 제어기와의 신속한 또는 특정 움직임이 시작되었을 때, 제스처가 시작될 수 있다.
본 명세서에 기술된 감쇠 또는 안정화 기법(들)은 활성 제스처 동안에 활성화될 수 있으며, 예를 들어 입력 제어기(12)의 초기 상태가 제스처의 시작시 결정된 후에 시작될 수 있다. 따라서, 본 명세서에 기술된 감쇠 또는 안정화 기법(들)은 예를 들어, 사용자가 트리거를 누르거나, 예를 들어 드래그 또는 이동을 위한 오브젝트를 선택하기 위해 버튼을 작동/누른 후에 활성화(또는 작동 중)될 수 있다. 따라서, 본 명세서에 기술된 감쇠 또는 안정화 기법들은 사용자가 입력 제어기를 드래그 모드(예) 또는 가상 환경에서 오브젝트를 조작하거나 제어하기 위한 다른 모드로 놓기 위해 트리거를 누르면 (또는 다른 선택을 하여) 활성화될 수 있다. 입력 제어기(12)를 사용하여 가상 환경에서 오브젝트를 이동시키거나 조작하는 경우, 이는 또한 물리적 환경에서 입력 제어기의 물리적 움직임에 기초하여(예를 들어, 필터 또는 스케일링 팩터의 사용에 기초하여) 가상 환경에서 움직임을 등록하는데 시간상의 지연(또는 래그)에 기초하여, 조작되거나 드래그되는 오브젝트의 가중치를 시뮬레이팅하는 추가적 이점을 제공할 수 있다.
물리적 환경에서 입력 제어기(12)의 누적 움직임(또는 누적 움직임의 양)은 예를 들어, 입력 제어기(12)의 초기 상태 이후 물리적 환경에서 입력 제어기(12)에 의해 발생한 움직임의 양으로서 결정될 수 있다. 따라서, 예를 들어, 누적 움직임은 초기 상태 이후(예를 들어, 제스처가 시작된 이후) 입력 제어기(12)의 상태의 누적 변화를 포함할 수 있다. 누적 움직임(또는 누적 움직임의 양)은, 예를 들어, 물리적 환경에서의 입력 제어기(12)의 초기 상태 및 물리적 환경에서의 입력 제어기(12)의 현재 상태에 기초하여 물리적 환경에서 입력 제어기의 상태의 누적 변화로서 결정될 수 있다. 예를 들어, 간단한 예에서, 상태의 누적 변화는 입력 제어기의 초기 상태로부터 입력 제어기의 현재 상태를 뺌으로써 결정될 수 있다.
또 다른 예시에서, 방향의 변화는 물리적 환경에서 입력 제어기(12)의 2개의 방향(제1 방향 및 제2 방향) 사이의 각도 또는 위상의 선형 변화로서 결정될 수 있다. 유사하게, 물리적 환경에서 입력 제어기(12)의 위치의 변화(제1 위치로부터 제2 위치까지)는 예를 들어, 입력 제어기(12)의 두 위치들(예를 들어, 위치 2, 위치 1) 사이의 선형 거리로서 결정될 수 있다. 따라서, 예를 들어, 제1 위치가 위치 1 (x1, y1, z1)이고, 물리적 환경에서 입력 제어기(12)의 제2 위치가 위치 2(x2, y2, z2)이면, 입력 제어기(12)의 선형 거리(위치의 변화)는 제곱들의 합의 제곱근으로서 결정될 수 있다:
거리 = sqrt ((x2-x1)2 + (y2-y1)2 + (z2-z1)2)
예시적 구현예에 따르면, 지터를 감소시키거나 또는 입력 제어기를 안정화하기 위해, 초기 상태 이후의 물리적 환경에서 입력 제어기(12)의 6DOF 움직임(의 양)에 따라 상이한 스케일링 팩터들이 사용될 수 있다. 예를 들어, 6DOF 움직임이 임계치보다 작거나 적은 경우 낮은(또는 작은) 스케일링 팩터가 사용될 수 있고, 물리적 환경에서 입력 제어기(12)의 6DOF 움직임이 임계치보다 큰 경우 높은 (또는 큰) 스케일링 팩터가 사용될 수 있다. 예를 들어, 6DOF 움직임이 제1 임계치(예를 들어, 3 인치 미만)보다 작으면 스케일링 팩터 0.2가 사용될 수 있고, 6DOF 움직임이 제1 임계치보다 크면 스케일링 팩터 0.6이 사용될 수 있다. 추가 임계치들 및 추가 스케일링 팩터들이 사용될 수 있다. 이들은 단지 예시적인 스케일링 팩터들이며, 다른 것들도 사용될 수 있다. 이것들은 스케일링 팩터가 고정되거나 정적인 정적 필터 또는 정적 스케일링 팩터의 일부 예시들이다. 그러나 6DOF 움직임이 변화함에 따라 스케일링 팩터가 선형적으로 또는 비선형적으로 변화하면 예를 들어, 증가하면 동적 필터 또는 동적 스케일링 팩터도 사용될 수 있다.
도 1c는 예시적 구현예에 따라 예시적 필터들 및 스케일링 팩터들을 도시하는 도면이다. 도 1c에 도시된 예는, 3개의 필터의 사용을 도시하며, 예를 들어, 도 1c의 도시적 예에서 도시된 바와 같이, 고정/정적 스케일링 팩터 N(예를 들어, 0.2)을 갖는 정적 필터(20)는 거리 A(예를 들어, 8cm)보다 작은 물리적 환경에서 입력 제어기(12)의 누적 움직임 또는 누적 상태 변화에 대해 사용된다. 거리 B 및 C(예를 들어, 8cm 및 20cm) 사이에서 입력 제어기의 6DOF 움직임에 대해 N 및 M(예를 들어, 0.2 및 0.6) 사이에서 변화하는 선형 변화 스케일링 팩터를 갖는 동적 필터(22)가 사용된다. 그리고, 정적/고정 스케일링 팩터 F(예, 0.6)를 갖는 정적 필터(24)는 C(예를 들어, 20cm)보다 큰 물리적 환경에서 입력 제어기의 6DOF 움직임에 대해 사용된다.
이러한 방식으로, 작은 움직임(예를 들어, 물리적 환경에서의 입력 제어기(12)의 지터 또는 의도하지 않은 흔들림)에 대해, 입력 제어기(12)의 움직임 또는 상태 변화는 일반적으로 예를 들어 제1 임계치(예를 들어 3인치) 이내로 작을 것이고, 물리적 환경에서 입력 제어기의 제1 6DOF 움직임의 20% (스케일링 팩터 = 0.2에 기초하여)만 가상 환경에 등록될 것이다. 6DOF 움직임(예: 초기 상태 이후 입력 제어기(12)의 위치 또는 방향 변화)이 증가함에 따라(예: 8cm 이상 또는 20cm 이상), 제어기 감쇠에 사용되는 스케일링 팩터도 증가할 것이고(동적 필터(22) 또는 정적 필터(24)를 통해), 입력 제어기(12)의 6DOF 움직임의 더 큰 양이 등록된다. 언급된 바와 같이, 6DOF 움직임은 현재 또는 최근의 시간 기간 동안 물리적 환경에서 입력 제어기(12)의 6DOF 위치 변화일 수 있다(예: 마지막 프레임이 HMD의 디스플레이에 디스플레이된 후 물리적 환경에서 입력 제어기(12)의 위치 변화 또는 방향 변화).
입력 제어기(12)의 6DOF 위치의 현재 변화는 예를 들어, 물리적 환경에서 입력 제어기의 현재 6DOF 위치(예: 현재 위치 또는 현재 방향) 및(또는) 물리적 환경에서 입력 제어기의 이전의 6DOF 위치(이전의 시간 기간, 이전의 샘플링 기간 또는 이전의 프레임 동안)에 기초하여 물리적 환경에서 입력 제어기(12)의 6DOF 위치의 현재 변화(예: 위치 또는 방향의 현재 변화)를 결정함으로써 결정될 수 있다. 예를 들어, 6DOF 위치의 현재 변화는 현재 및 이전의 6DOF 위치의 2개의 대응하는 위치 값들(x, y 또는 z 축에서)을 뺌으로써 결정될 수 있다. 입력 제어기(12)의 6DOF 위치의 변화는 초기 6DOF 위치(예를 들어, 입력 제어기를 사용하는 제스처의 시작일 수 있음) 이후 입력 제어기(12)의 6DOF 위치에서의 변화로서 결정될 수 있으며, 초기 6DOF 위치는 이전의 6DOF 위치 앞일 수 있다. 제스처의 시작 근처에서, 이전의 6DOF 위치 및 초기 6DOF 위치는 동일한 6DOF 위치일 수 있다. 따라서, 6DOF 움직임은, 예를 들어, 입력 제어기의 초기 6DOF 위치 및 입력 제어기의 현재 6DOF 위치에 기초하여 물리적 환경에서 입력 제어기(12)의 6DOF 위치의 변화를 결정함으로써 결정될 수 있고, 현재 움직임 또는 현재 상태 변화는 예를 들어, 입력 제어기의 이전의 6DOF 위치 및 입력 제어기의 현재 6DOF 위치에 기초하여 결정될 수 있다.
예시적 구현예에 따르면, 스케일링 팩터는 현재 움직임(예: 최근 또는 현재 시간 기간 동안의 물리적 환경에서의 입력 제어기(12)의 움직임) 또는 6DOF 위치의 현재 변화(예: HMD상의 마지막 프레임의 디스플레이 이후의 입력 제어기(12)의 상태 변화와 같은 입력 제어기(12)의 위치 변화 또는 방향 변화)가 얼만큼 가상 환경에 등록될 것인지 결정할 수 있다. 일 예시에서, 스케일링 팩터는 가상 환경에 등록될 입력 제어기(12)의 6DOF 위치 변화의 양 또는 움직임의 양을 결정하기 위해 물리적 환경에서 6DOF 위치의 현재 변화 또는 현재 움직임에 곱해질 수 있다. 예를 들어, 입력 제어기(12)가 현재 또는 최근의 시간 기간(예: 마지막 프레임 이후) 동안 x=0에서 x=3cm까지 오른쪽으로 이동하고, 0.2인 스케일링 팩터가 선택되면, 이것은 가상 환경에서 입력 제어기의 움직임=(스케일링 팩터)(현재 위치의 변화)=(0.2)(3 cm)=.6 cm의 움직임을 의미한다. 즉, x축에서 입력 제어기 움직임의 0.6cm가 가상 환경에 등록될 것이다.
예시적 구현예에서, 가상 환경에 등록될 6DOF 위치의 변화의 양(예: 위치의 변화 또는 방향의 변화)은 입력 제어기(12)의 현재 6DOF 위치와 이전 6DOF 위치 사이의 가중된(스케일링 팩터에 기초하여) 선형 보간을 수행함으로써 결정될 수 있고, 여기서 작은 스케일링 팩터는 이전 상태에 유리하게 보간이 더 크게 가중된다는 것을 의미하며(그에 따라 이전 상태 이후 6DOF 위치의 현재 움직임 또는 현재 변화가 가상 환경에 더 적게 등록되며), 여기서 큰 스케일링 팩터는 현재 6DOF 위치에 유리하게 보간이 더 크게 가중된다는 것을 의미한다(그에 따라 현재 움직임 또는 현재 상태 변화가 가상 환경 더 많이 등록된다). 따라서, 예를 들어, 큰 스케일링 팩터가 6DOF 위치의 작은 누적 움직임/변화에 사용되어 가상 환경에 등록된 임의의 현재 움직임을 감쇠 또는 감소시킬 수 있다. 또한, 물리적 환경에서 입력 제어기(12)의 6DOF 위치의 누적 움직임 또는 누적 변화가 증가함에 따라, 큰 스케일링 팩터가 예를 들어 댐핑을 감소시키기 위해 사용되거나 선택될 수 있고, 그에 따라 물리적 환경에서 입력 제어기의 현재 움직임 또는 현재의 상태 변화가 가상 환경에 더 많이 등록되게 한다. 입력 제어기(12)의 6DOF 위치의 누적 변화를 결정하고, 입력 제어기의 6DOF 위치의 현재 변화를 결정하고, 스케일링 팩터를 결정하고, 스케일링 팩터에 기초하여 6DOF의 현재 움직임 또는 현재 변화의 일부를 등록하는 프로세스는 각 프레임에서 반복될 수 있다(또는 HMD를 통해 사용자에게 디스플레이되는 각 프레임에 대해 반복될 수 있다).
도 2에 도시된 예시적 구현예에서, HMD(100)를 착용한 사용자는 휴대용 핸드헬드 전자 디바이스(102)를 들고 있다. 입력 제어기로도 지칭될 수 있는 핸드헬드 전자 디바이스(102)는 예를 들어, HMD(100)에 의해 생성된 몰입형 가상 환경에서 인터렉션을 위해 HMD(100)와 페어링(pairing)되고 통신할 수 있는 스마트폰, 제어기, 자이로마우스, 조이스틱 또는 다른 휴대용 핸드헬드 전자 디바이스일 수 있다. 핸드헬드 전자 디바이스(102)는 예를 들어 유선 연결 또는 예를 들어 WiFi 또는 블루투스 연결과 같은 무선 연결을 통해 HMD(100)와 동작 가능하게 연결되거나 또는 이들과 페어링될 수 있다. 핸드헬드 전자 디바이스(102)와 HMD(100)의 이러한 페어링 또는 동작가능한 연결은 핸드헬드 전자 디바이스(102)와 HMD(100) 사이의 통신 및 데이터 교환을 제공할 수 있고, 핸드헬드 전자 디바이스(102)가 HMD(100)에 의해 생성된 몰입형 가상 환경에서 인터렉션하기 위한 제어기로서 기능하게 한다. 즉, 예를 들어, 선택을 위해 가상 오브젝트 또는 피처에 향하도록 핸드헬드 전자 디바이스(102)에 의해 방출된 가상 빔 또는 광선을 생성하기 위한 핸드헬드 전자 디바이스(102)의 조작, 핸드헬드 전자 디바이스(102)의 터치 표면에서 수신된 입력 및/또는 핸드헬드 전자 디바이스(102)의 움직임은 HMD(100)에 의해 생성된 몰입형 가상 환경에서 대응하는 선택 또는 움직임 또는 기타 유형의 인터렉션으로 변환될 수 있다. 예를 들면, 핸드헬드 전자 디바이스(102)와 함께 HMD(100)는 상기 기술된 바와 같은 가상 환경을 생성할 수 있고, 핸드헬드 전자 디바이스(102)는 상기 기술된 바와 같이 가상 환경에서 가상 피처들과 관련하여 사용자의 관점, 스케일의 변화에 영향을 주도록 조작될 수 있다.
도 3a 및 3b는 예를 들어 도 1의 사용자에 의해 착용된 HMD(100)와 같은 예시적 HMD의 사시도이며, 도 3c는 예를 들어 도 1에 도시된 핸드 헬드 전자 디바이스(102)와 같은 예시적 핸드 헬드 전자 디바이스를 도시한다.
핸드헬드 전자 디바이스(102)는 디바이스(102)의 내부 컴포넌트들이 수용되는 하우징(103) 및 사용자가 액세스 가능한 하우징(103) 외부의 사용자 인터페이스(104)를 포함할 수 있다. 사용자 인터페이스(104)는 사용자 터치 입력을 수신하도록 구성된 터치 감지 표면(106)을 포함할 수 있다. 사용자 인터페이스(104)는 또한 예를 들어 조작 버튼, 노브, 조이스틱 등과 같은 사용자에 의한 조작을 위한 다른 컴포넌트들을 포함할 수 있다. 일부 구현예에서, 사용자 인터페이스(104)의 적어도 일부는 터치 스크린으로서 구성될 수 있으며, 사용자 인터페이스(104)의 해당 부분은 사용자에게 사용자 인터페이스 아이템들을 디스플레이하고 터치 감지 표면(106)에서 사용자로부터 터치 입력들을 수신하도록 구성된다. 또한 핸드헬드 전자 디바이스(102)는 하우징(103) 내의 포트를 통해 빛을 선택적으로 방출하도록 구성된 광원(108) 및 사용자에 의해 조작가능한 다른 조작 디바이스들(105)을 포함할 수 있다.
HMD(100)는 예를 들어 헤드폰에 장착된 또한 프레임(120)에 연결된 스피커를 포함하는 오디오 출력 디바이스(130)를 가지는 프레임(120)에 연결된 하우징(110)을 포함할 수 있다. 도 3b에서, 하우징(110)의 전면부(110a)는 하우징(110)의 베이스부(110b)로부터 떨어져 회전되어, 하우징(110)에 수용된 컴포넌트들 중 일부가 가시적이도록 한다. 디스플레이(140)는 하우징(110)의 전방부(110a)의 내향 측부에 장착될 수 있다. 렌즈들(150)는 전방부(110a)가 하우징(110)의 베이스부(110b)에 대해 폐쇄된 위치에 있을 때, 사용자의 눈과 디스플레이(140) 사이의 하우징(110)에 장착될 수 있다. 일부 구현예에서, HMD(100)는 HMD(100)의 작동을 용이하게 하기 위해 다양한 센서를 포함하는 감지 시스템(160) 및 프로세서(190) 및 다양한 제어 시스템 디바이스들을 포함하는 제어 시스템(170)을 포함할 수 있다.
일부 구현예에서, HMD(100)는 스틸 및 동영상을 캡처하는 카메라(180)를 포함할 수 있다. 카메라(180)에 의해 캡처된 이미지들은 실제 환경에서의 사용자 및/또는 핸드헬드 전자 디바이스(102)의 물리적 위치를 추적하는데 도움이 될 수 있으며, 및/또는 패스 쓰루 모드에서 디스플레이(140)에서 사용자에게 디스플레이될 수 있어, 사용자가 HMD(100)를 제거하거나 HMD(100)의 구성을 변경하지 않고 가상 환경을 일시적으로 떠나 물리적 환경으로 되돌아가도록하여 사용자의 시선를 하우징(110) 밖으로 이동시키게 한다.
일부 구현예에서, HMD(100)는 사용자의 시선을 검출하고 추적하기 위한 시선 추적 디바이스(165)를 포함할 수 있다. 시선 추적 디바이스(165)는 사용자의 시선의 방향 및 움직임을 검출하고 추적하기 위해 예를 들어, 동공과 같은 사용자의 눈의 특정한 부분인 사용자의 눈의 이미지들을 캡처하기 위해 이미지 센서(165A) 또는 다중 이미지 센서(165A)를 포함할 수 있다. 일부 구현예에서, HMD(100)는 검출된 시선이 몰입형 가상 체험에서 대응하는 인터렉션으로 번역될 사용자 입력으로서 프로세싱되도록 구성될 수 있다.
증강 및/또는 가상 현실 환경에서 순간이동 및 스케일링을 제공하는 시스템의 블록도가 도 4a에 도시된다. 상기 시스템은 제2 전자 디바이스(402)와 통신하는 제1 전자 디바이스(400)를 포함할 수 있다. 제1 전자 디바이스(400)는 몰입형 가상 환경을 생성하는 예를 들어, 도 2, 도 3a 및 도 3b과 관련하여 상기 기술된 것과 같은 HMD일 수 있고, 제2 전자 디바이스(402)는 제1 전자 디바이스(400)에 의해 생성된 몰입형 가상 환경과의 사용자 인터렉션을 지원하기 위해 제1 전자 디바이스(400)와 통신하는 예를 들어 도 2 및 도 3c와 관련하여 상기 기술된 바와 같은 핸드헬드 전자 디바이스일 수 있다.
제1 전자 디바이스(400)는 도 3a 및 3b에서 각각 도시된 감지 시스템(160) 및 제어 시스템(170)과 유사한 감지 시스템(460) 및 제어 시스템(470)을 포함할 수 있다. 감지 시스템(460)은 예를 들어 광 센서, 오디오 센서, 이미지 센서, 거리/근접 센서 및/또는 예를 들어, 도 3b에 도시된 시선 추적 장치(165)와 같이, 사용자의 시선을 탐지 및 추적하도록 위치된 이미지 센서를 포함하는 다른 센서 및/또는 센서들의 다른 조합(들)을 포함하는 하나 이상의 상이한 유형의 센서를 포함할 수 있다. 제어 시스템(470)은 예를 들어, 전원/멈춤 제어 디바이스, 오디오 및 비디오 제어 디바이스, 광학 제어 디바이스, 전이 제어 디바이스 및/또는 다른 그러한 디바이스 및/또는 디바이스들의 상이한 조합(들)을 포함할 수 있다. 감지 시스템(460) 및/또는 제어 시스템(470)은 특정한 구현예에 따라 더 많거나 적은 디바이스들을 포함할 수 있다. 감지 시스템(460) 및/또는 제어 시스템(470)에 포함된 엘리먼트들은 예를 들어 도 3a 및 도 3b에 도시된 HMD(100) 이외의 다른 HMD 내에서 상이한 물리적 배치(예: 상이한 물리적 위치)를 가질 수 있다. 제1 전자 디바이스(400)는 또한 감지 시스템(460) 및 제어 시스템(470)과 통신하는 프로세서(490), 메모리(480) 및 제1 전자 디바이스(400)와 다른 다른 외부 디바이스 예를 들어 제2 전자 디바이스(402) 사이의 통신을 제공하는 통신 모듈(450)을 포함할 수 있다.
프로세서(490)는 하나 이상의 프로세싱 칩들 및/또는 어셈블리들을 포함한다. 메모리(480)는 휘발성 메모리(예컨대, RAM) 및 하나 이상의 ROM들, 디스크 드라이브들, 솔리드 스테이트 드라이브들 등과 같은 비휘발성 메모리 모두를 포함한다. 프로세서(490) 및 메모리(480)는 본 명세서에서 기술된 바와 같이 다양한 방법들 및 기능들을 수행하도록 구성되고 배치된 제어 회로를 함께 형성한다. 일부 구현예에서, 제1 전자 디바이스(400)의 하나 이상의 컴포넌트들은 메모리(480)에 저장된 명령어들을 프로세싱하도록 구성된 프로세서들(예를 들어, 프로세서(490)) 일 수 있거나 그것을 포함할 수 있다. 
도 4b는 제1 전자 디바이스(400)의 메모리(480)의 보다 상세한 도면을 도시하는 도면이며, 도 4b는 누적 움직임 데이터 관리자(481), 스케일링 팩터 관리자(483), 현재 움직임 데이터 관리자(485) 및 오브젝트 움직임 관리자(487)를 포함하는 메모리(480)에 저장된 예시적 명령어들을 도시한다. 또한, 도 1에 도시된 바와 같이, 메모리(480)는 이러한 데이터를 사용하는 각각의 관리자에 관하여 설명된 다양한 데이터를 저장하도록 구성된다.
이전 움직임 데이터 관리자(481)는 사용자에 의해 점유된 물리적 환경 내에서 사용자가 들고 있는 입력 제어기의 제1 6DOF 움직임을 표시하는 누적 움직임 데이터(482)를 수신하도록 구성된다. 예를 들어, 이전 움직임 데이터(482)는 주어진 시간 간격 동안 초기 6DOF 위치 및 최종 6DOF 위치를 나타낼 수 있다. 일부 구현예에서, 이전 움직임 데이터(482)는 유클리드 거리를 나타낼 수 있다.
스케일링 팩터 관리자(483)는 이전 움직임 데이터(482)에 기초하여, 스케일링 팩터를 포함하는 스케일링 팩터 데이터(484)를 생성하도록 구성된다. 예를 들어, 일부 구현예에서, 스케일링 팩터 관리자(483)는 도 1b에 도시된 바와 같은 스케일링 팩터를 생성하도록 구성된다. 일부 구현예에서, 스케일링 팩터 관리자(483)는 도 1b에 도시된 바와 같이 2 개의 임계값보다는 단일의 임계값에 기초하여 스케일링 팩터를 생성하도록 구성된다. 일부 구현예에서, 스케일링 팩터 관리자(483)는 공간 변위에 추가적으로 또는 그 대신에 각도 변위에 기초하여 스케일링 팩터를 생성하도록 구성된다.
현재 움직임 데이터 관리자(485)는 사용자에 의해 점유된 물리적 환경 내에서 사용자가 들고 있는 입력 제어기의 제2 6DOF 움직임을 표시하는 현재 움직임 데이터(486)를 수신하도록 구성된다. 예를 들어, 현재 움직임 데이터(486)는 제스처의 시작시 6DOF 위치 및 제스처의 종료시의 최종 6DOF 위치를 나타낼 수 있다. 일부 구현예에서, 현재 움직임 데이터(486)는 유클리드 거리를 나타낼 수 있다.
오브젝트 움직임 관리자(485)는 현재 움직임 데이터(486)의 수신에 응답하여, 오브젝트 움직임 동작을 수행하여 오브젝트 움직임 데이터(488)를 생성할 수 있고, 상기 오브젝트 움직임 데이터는 스케일링 팩터 데이터(484)에 기초하여 현재 움직임 데이터(488)에 의해 표현되는 제2 6DOF 움직임의 일부이다.
도 4a로 돌아가면, 제2 전자 디바이스(402)는 제2 전자 디바이스(402)와 예를 들어 제1 전자 디바이스(400)와 같은 다른 외부 디바이스 사이의 통신을 제공하는 통신 모듈(306)을 포함할 수 있다. 통신 모듈(406)은 제1 전자 디바이스(400)와 제2 전자 디바이스(402) 간의 데이터 교환을 제공하는 것에 더하여, 전자 신호를 통신하기 위해 상기 기술된 바와 같이 광선 또는 빔을 방출하도록 구성될 수 있다. 제2 전자 디바이스(402)는 예를 들어 카메라 및 마이크로폰에 포함되는 것과 같은 이미지 센서 및 오디오 센서를 포함하는 감지 시스템(404)을 포함 할 수 있으며, 가속도계 및/또는 자이로스코프를 포함하는 관성 측정 유닛 및/또는 자력계, 핸드 헬드 전자 디바이스의 터치 감지 표면 또는 스마트폰에 포함된 것과 같은 터치 센서 및 다른 그러한 센서들 및/또는 센서들의 상이한 조합을 포함할 수 있다. 프로세서(409)는 감지 시스템(404) 및 제2 전자 디바이스(402)의 제어기(405)와 통신할 수 있고, 상기 제어기(405)는 메모리(408)에 대한 액세스를 가지며 제2 전자 디바이스(402)의 전체 동작을 제어한다.
전술한 바와 같이, 예를 들어 상술한 핸드 헬드 전자 디바이스(102)와 같은 제어기는 가상 환경에서 인터렉션 및 네비게이션을 위해 사용자에 의해 조작될 수 있다. 가상 환경에서 네비게이팅할 때, 사용자는 선택될 가상 피처에 핸드헬드 전자 디바이스(102)를 향하게 하거나 포인팅할 수 있고, 가상 빔은 예를 들어, 사용자에 의해 선택될 가상 피처 및/또는 위치를 식별하기 위해 핸드헬드 전자 디바이스(102)의 센서들에 의해 생성된 방향 정보에 기초하여 시스템에 의해 생성될 수 있다. 일부 구현예에서, 광원(108)은 선택될 가상 피처 또는 아이템을 향해 광선 또는 빔을 향하게 할 수 있고, 광원(108)에 의해 생성된 광선 또는 빔은 시스템(예를 들어, HMD (100) 상의 카메라)에 의해 및 검출될 수 있고, 검출된 광선 또는 빔의 렌더링이 가상 피처의 선택을 위해 가상 환경에서 사용자에게 디스플레이될 수 있다.
도 5는 예시적 방법(500)을 도시하는 흐름도이다. 방법(500)은 도 4a 및 4b와 관련하여 기술된 소프트웨어 구조들에 의해 수행될 수 있고, 상기 소프트웨어 구조들은 제1 전자 디바이스(400)의 메모리(480)에 상주하며 프로세서(490)에 의해 실행된다.
502에서, 제1 전자 디바이스(400)는 사용자에 의해 점유된 물리적 환경 내에서 사용자가 들고 있는 입력 제어기의 제1 6-자유도(6DOF) 움직임을 표시하는 제1 움직임 데이터를 수신한다.
504에서, 제1 전자 디바이스(400)는 상기 물리적 환경 내에서 상기 입력 제어기의 제1 6DOF 움직임에 기초하여 스케일링 팩터를 생성한다.
506에서, 누적 움직임 데이터를 수신한 후에, 시간 기간에 걸쳐 상기 물리적 환경 내에서 상기 입력 제어기의 제2 6DOF 움직임을 표시하는 현재 움직임 데이터를 수신한다.
508에서, 현재 움직임 데이터를 수신함에 응답하여, 제1 전자 디바이스(400)는 디스플레이 상에서 사용자가 보는 가상 환경 내에 오브젝트의 6DOF 움직임을 생성하기 위해 오브젝트 움직임 동작을 수행한다. 가상 환경 내의 오브젝트의 6DOF 움직임은 스케일링 팩터에 기초하여 입력 제어기의 제2 6DOF 움직임의 일부이다.
도 6a에 도시된 바와 같이, 가상 환경 내의 위치 A(가상 위치로 지칭될 수 있음)에 있는 가상 환경 내의 사용자는 도 6b에 도시된 바와 같이, 상기 기술된 바와 같이, 핸드헬드 전자 디바이스(102)에 의해 생성된 가상 빔을 가상 위치 B의 가상 피처(650)을 향하도록 함으로써 가상 환경에서 위치 B(이 또한 가상 위치로 지칭될 수 있음)로 이동하도록 선택할 수 있다. 핸드헬드 전자 디바이스(102)의 추가 조작 예를 들어, 가상 위치 B에서 가상 피처(650)로 빔을 향하게 하는 버튼의 해제에 따라, 도 6c에 도시된 바와 같이, 사용자는 가상 위치 B로 이동되거나 텔레포트되거나 이송될 수 있다. 도 6a-6c에 도시된 예에서, 사용자는 상기 기술된 바와 같이 가상 환경에서의 가상 피처에 관하여 자신의 스케일 또는 관점을 조절하도록 선택하지 않았다. 따라서, 이 예에서, 사용자는 가상 위치 A에서와 본질적으로 동일한 스케일(가상 환경의 피처에 비례하여)로 가상 위치 B로 이동되거나 텔레포트되거나 이송된다.
일부 구현예에서, 예를 들어, 핸드헬드 전자 디바이스(102)를 통한 사용자에 입력에 응답하여, 가상 위치 A로부터 가상 위치 B로의 사용자의 움직임은 실질적으로 즉각적일 수 있고, 사용자는 한 순간에 가상 위치 A에 있고, 다음에는 가상 위치 B에 있어, 가상 위치 A에서 가상 위치 B로의 움직임이 사용자에게 실질적으로 순간적으로 느껴진다. 일부 구현예에서, 사용자가 가상 위치 A로부터 가상 위치 B로 공기 및/또는 지형을 통해 실제로 이동하는 것처럼, 사용자는 가상 위치 A로부터 가상 위치 B로의 사용자의 움직임의 동적 가상 애니메이션을 경험할 수 있고, 이는 가상 위치 A에서 가상 위치 B로 이동함에 있어서보다 연결된 가상 경험을 사용자에게 제공한다.
일부 구현예에서, 가상 위치 A로부터 가상 위치 B로의 사용자의 움직임이 실질적으로 즉각적인지 또는 사용자가 가상 위치 A로부터 가상 위치 B로 이동하는 동적 가상 애니메이션을 경험하는지에 관계없이, 사용자는 가상 위치 B에 도착하여 갑자기 멈추지 않고 점차적으로 정지한다. 가상 위치 A로부터 가상 위치 B로 이동할 때 사용자의 운동량의 느낌을 유지할 수 있는 이 점진적 정지(갑작스러운 도착 또는 정시 보다는)는 가상 위치 B에서 가상 환경으로의 자연스러운 전환을 사용자에게 제공할 수 있다.
일부 상황에서, 사용자는 가상 환경에서의 가상 피처에 대한 자신의 스케일을 증가 또는 감소시키거나, 사용자에 대한 가상 환경에서 가상 피처의 크기(즉, 증가 또는 감소)를 스케일링하고자 할 수 있다. 가상 환경에 대한 사용자 크기의 가상 스케일링 또는 사용자에 대한 가상 환경에서의 가상 피처의 가상 스케일링은 가상 환경에서 제1 가상 위치 또는 위치로부터 제2 가상 위치 또는 위치로 이동할 때 수행될 수 있고, 사용자의 선택에 따라 사용자의 관점 또는 시야가 스케일링되거나 조절되게 할 수 있다. 사용자가 제1 가상 위치로부터 제2 가상 위치로 이동(예, 텔레포트, 이송)하게 하고 및/또는 가상 환경의 가상 피처에 대해 사용자의 크기를 스케일링(또는 사용자에 대한 가상 환경의 가상 피처들의 크기를 스케일링)하게 하여, 사용자의 관점 또는 시야가 새롭게 선택된 스케일링된 크기로 스케일링되게 하는 가상 현실 시스템의 예시적 구현예가 도 5a에 도시된다.
도 6d에 도시된 바와 같이, 제2 가상 위치 B에서 피처(550)에 대한 제1 가상 위치 A에 위치된 사용자는 예를 들어, 핸드헬드 전자 디바이스(102)를 조작하여 사용자가 피처(650)을 제2 위치 B로 이동시키기 원한다는 것을 표시할 수 있다. 이러한 핸드 헬드 전자 디바이스(102)의 조작은 예를 들어, 디바이스로 하여금 사용자가 선택된 피쳐 (650)에 대응하는 제2 가상 위치 B로 이동(예: 텔레포트, 이송)하기 원한다고 표시하는 제2 가상 위치 B에 피처(650)에 초점을 맞춘 빔(600)을 생성하게 할 수 있다.
도 7는 본 명세서에 기술된 기법들과 사용될 수 있는 일반적 컴퓨터 디바이스(700)와 일반적 모바일 컴퓨터 디바이스(750)의 예시를 도시한다. 컴퓨팅 디바이스(700)는 랩톱, 데스크톱, 태블릿, 워크 스테이션, 개인 휴대 정보 단말기, 텔레비전, 서버, 블레이드 서버, 메인 프레임 및 다른 적절한 컴퓨팅 디바이스와 같은 다양한 형태의 디지털 컴퓨터들을 나타내기 위한 것이다. 컴퓨팅 디바이스(750)는 개인 휴대 정보 단말기, 셀룰러 전화기, 스마트폰 및 다른 유사한 컴퓨팅 디바이스들과 같은 다양한 형태의 모바일 디바이스들을 나타내기 위한 것이다. 여기에 도시된 컴포넌트들, 그들의 연결 및 관계, 및 그들의 기능은 단지 예시적인 것을 의미하며, 본 명세서에 기술된 및/또는 청구된 발명의 구현을 제한하는 것을 의미하지는 않는다.
컴퓨팅 디바이스(700)는 프로세서(702), 메모리(704), 저장 디바이스(706), 메모리(704) 및 고속 확장 포트(710)에 연결되는 고속 인터페이스(708) 및 저속 버스(714) 및 저장 디바이스(706)에 연결되는 저속 인터페이스(712)를 포함한다. 프로세서(702)는 반도체 기반 프로세서일 수 있다. 메모리(704)는 반도체 기반 메모리일 수 있다. 컴포넌트들(702, 704, 706, 708, 710 및 712) 각각은 다양한 버스들을 사용하여 상호 연결되고, 공통 마더 보드 상에 또는 적절한 다른 방식으로 장착될 수 있다. 프로세서(702)는 메모리(704) 또는 저장 디바이스(706)에 저장된 명령어들을 포함하는, 컴퓨팅 디바이스(700) 내에서 실행하기 위한 명령어들을 프로세싱하여, 고속 인터페이스(708)에 연결된 디스플레이(716)와 같은 외부 입/출력 디바이스상에 GUI에 대한 그래픽 정보를 디스플레이 할 수 있다. 다른 구현예에서, 다수의 프로세서들 및/또는 다수의 버스들이 다수의 메모리들 및 다수의 유형의 메모리와 함께, 적절하게 사용될 수 있다. 또한, 다수의 컴퓨팅 디바이스들(700)은 필요한 동작의 부분들을 제공하는 각 디바이스와 연결될 수 있다(예를 들어, 서버 뱅크, 블레이드 서버 그룹 또는 멀티 프로세서 시스템).
메모리(704)는 컴퓨팅 디바이스(700) 내에 정보를 저장한다. 일 구현예에서, 메모리(704)는 휘발성 메모리 유닛 또는 유닛들이다. 다른 구현예에서, 메모리(704)는 비휘발성 메모리 유닛 또는 유닛들이다. 또한, 메모리(704)는 자기 또는 광학 디스크와 같은 컴퓨터 판독가능 매체의 다른 형태 일 수 있다.
저장 디바이스(706)는 컴퓨팅 디바이스(700)에 대한 대형 저장소를 제공할 수 있다. 일 구현예에서, 저장 디바이스(706)는 플로피 디스크 디바이스, 하드 디스크 디바이스, 광 디스크 디바이스 또는 테이프 디바이스, 플래시 메모리 또는 다른 유사한 고체 상태 메모리 디바이스, 또는 저장 영역 네트워크 또는 다른 구성의 디바이스를 포함하는 디바이스의 어레이와 같은 컴퓨터 판독가능 매체이거나 컴퓨터 판독가능 매체를 포함할 수 있다. 컴퓨터 프로그램 제품은 정보 캐리어에 유형적으로 수록될 수 있다. 컴퓨터 프로그램 제품은 또한 실행될 때 상기 기술된 바와 같은 하나 이상의 방법을 수행하는 명령어들을 포함할 수 있다. 정보 캐리어는 메모리(704), 저장 디바이스(706) 또는 프로세서(702)상의 메모리와 같은 컴퓨터 또는 기계 판독가능 매체이다.
고속 제어기(708)는 컴퓨팅 디바이스(700)에 대한 대역폭 집중 동작들을 관리하는 반면, 저속 제어기(712)는 낮은 대역폭 집중 동작들을 관리한다. 이러한 기능들의 할당은 단지 예시적인 것이다. 일 구현예에서, 고속 제어기(708)는 메모리(704), 디스플레이(716)(예를 들어, 그래픽 프로세서 또는 가속기를 통해) 및 다양한 확장 카드(도시되지 않음)를 수용할 수 있는 고속 확장 포트(710)에 연결된다. 구현예에서, 저속 제어기(712)는 저장 디바이스(706) 및 저속 확장 포트(714)에 결합된다. 다양한 통신 포트(예를 들어, USB, 블루투스, 이더넷, 무선 이더넷)를 포함할 수 있는 저속 확장 포트는 키보드, 포인팅 디바이스, 스캐너와 같은 하나 이상의 입력/출력 디바이스 또는 예를 들어 네트워크 어댑터를 통해 스위치 또는 라우터와 같은 네트워킹 디바이스에 결합될 수 있다.
컴퓨팅 디바이스(700)는 도면에 도시된 바와 같이 다수의 상이한 형태로 구현될 수 있다. 예를 들어, 그것은 표준 서버(720)로서 또는 그러한 서버들의 그룹에서 다수로 구현될 수 있다. 또한, 랙 서버 시스템(724)의 일부로서 구현될 수 있다. 또한, 랩톱 컴퓨터(722)와 같은 퍼스널 컴퓨터에서 구현될 수 있다. 대안적으로, 컴퓨팅 디바이스(700)로부터의 컴포넌트들은 디바이스(750)와 같은 모바일 디바이스(도시되지 않음) 내의 다른 컴포넌트들과 결합될 수 있다. 상기 디바이스들 각각은 컴퓨팅 디바이스(700, 750) 중 하나 이상을 포함할 수 있고, 전체 시스템은 서로 통신하는 다수의 컴퓨팅 디바이스들(700, 750)로 구성될 수 있다.
컴퓨팅 디바이스(750)는 다른 여러 컴포넌트들 중에서도 특히, 프로세서(752), 메모리(764), 디스플레이(754)와 같은 입/출력 디바이스, 통신 인터페이스(766) 및 송수신기(768)를 포함한다. 디바이스(750)에는 또한 추가적 저장을 제공하기 위해 마이크로 드라이브 또는 다른 디바이스와 같은 저장 디바이스가 제공될 수 있다. 컴포넌트들(750, 752, 764, 754, 766 및 768) 각각은 다양한 버스들을 사용하여 상호 연결되고, 몇몇 컴포넌트들은 공통 마더 보드 상에 또는 적절한 다른 방식으로 장착될 수 있다.
프로세서(752)는 메모리(764)에 저장된 명령어들을 포함하는 컴퓨팅 디바이스 (750) 내의 명령어들을 실행할 수 있다. 프로세서는 별개의 그리고 다수의 아날로그 및 디지털 프로세서들을 포함하는 칩들의 칩셋으로서 구현될 수 있다. 프로세서는 예를 들어 사용자 인터페이스들, 디바이스(750)에 의해 실행되는 어플리케이션 및 디바이스(750)에 의한 무선 통신과 같은 디바이스(750)의 다른 컴포넌트들의 조정을 제공할 수 있다.
프로세서(752)는 제어 인터페이스(758) 및 디스플레이(754)에 연결된 디스플레이 인터페이스(756)를 통해 사용자와 통신할 수 있다. 디스플레이(754)는 예를 들어, TFT LCD(박막 트랜지스터 액정 디스플레이) 또는 OLED(유기 발광 다이오드) 디스플레이 또는 다른 적절한 디스플레이 기술을 포함할 수 있다. 디스플레이 인터페이스(756)는 사용자에게 그래픽 및 다른 정보를 제공하기 위해 디스플레이(754)를 구동하기 위한 적절한 회로를 포함할 수 있다. 제어 인터페이스(758)는 사용자로부터 명령을 수신하고, 프로세서(752)에 제출하기 위해 그들을 변환할 수 있다. 추가로, 외부 인터페이스(762)는 프로세서(752)와의 통신에 제공되어 다른 디바이스들과 디바이스(750)의 근거리 통신을 가능하게 할 수 있다. 외부 인터페이스(762)는 예를 들면, 일부 구현예들에서는 유선 통신을 위해 또는 다른 구현예들에서는 무선 통신을 위해 제공될 수 있고, 다수의 인터페이스들도 사용될 수 있다.
메모리(764)는 컴퓨팅 디바이스(750) 내에 정보를 저장한다. 메모리(764)는 컴퓨터 판독가능 매체 또는 매체들, 휘발성 메모리 유닛 또는 유닛들, 비휘발성 메모리 유닛 또는 유닛들 중 하나 이상으로 구현될 수 있다. 또한 확장 메모리(774)는 예를 들어 SIMM(Single In Line Memory Module) 카드 인터페이스를 포함할 수 있는 확장 인터페이스(772)를 통해 디바이스(750)에 제공되고 접속될 수 있다. 상기 확장 메모리(774)는 디바이스(750)에 대해 추가 저장 공간을 제공할 수 있거나, 또는 어플리케이션들 또는 디바이스(750)에 대한 다른 정보를 저장할 수 있다. 특히, 확장 메모리(774)는 전술한 프로세스들을 수행하거나 보충하는 명령어들을 포함할 수 있으며, 또한 보안 정보를 포함할 수 있다. 따라서, 예를 들면, 확장 메모리(774)는 디바이스(750)에 대한 보안 모듈로서 제공될 수 있고, 디바이스(750)의 보안 사용을 허용하는 명령어들로 프로그래밍될 수 있다. 또한, 보안 어플리케이션들은 SIMM 카드 상의 식별 정보를 해킹할 수 없는 방식으로 배치하는 것과 같이, SIMM 카드들을 통해 추가 정보와 함께 제공될 수 있다.
메모리는 예를 들어, 후술되는 바와 같이, 플래시 메모리 및/또는 NVRAM 메모리를 포함할 수 있다. 일 구현예에서, 컴퓨터 프로그램 제품은 정보 캐리어에 유형적으로 수록된다. 컴퓨터 프로그램 제품은 또한 실행될 때 상기 기술된 바와 같은 하나 이상의 방법을 수행하는 명령어들을 포함한다. 정보 캐리어는 예를 들어 송수신기(768) 또는 외부 인터페이스(762)를 통해 수신될 수 있는 메모리(764), 확장 메모리(774) 또는 프로세서(752)상의 메모리와 같은 컴퓨터 또는 기계 판독가능 매체이다.
디바이스(750)는 필요에 따라 디지털 신호 처리 회로를 포함할 수 있는 통신 인터페이스(766)를 통해 무선으로 통신할 수 있다. 통신 인터페이스(766)는 다른 것들 중에서도 GSM 보이스 콜들, SMS, EMS 또는 MMS 메시징, CDMA, TDMA, PDC, WCDMA, CDMA2000 또는 GPRS와 같은 다양한 모드들 또는 프로토콜들 하에서의 통신을 위해 제공될 수 있다. 이러한 통신은 예를 들어, 무선 주파수 송수신기(768)를 통해 발생될 수 있다. 추가로, 블루투스, Wi-Fi 또는 다른 트랜시버(도시되지 않음)를 사용하는 것과 같은 단거리 통신이 발생될 수 있다. 추가로, GPS(Global Positioning System) 수신기 모듈(770)은 디바이스(750)상에서 실행되는 어플리케이션들에 의해 적절히 사용될 수 있는 추가적인 네비게이션 및 위치 관련 무선 데이터를 디바이스(750)에 제공할 수 있다.
디바이스(750)는 또한 사용자로부터 발화된 정보를 수신하고 그것을 이용가능한 디지털 정보로 변환할 수 있는 오디오 코덱(760)을 사용하여 청각적으로 통신할 수 있다. 오디오 코덱(760)은 마찬가지로, 예를 들어 디바이스(750)의 핸드셋 내의 스피커를 통하는 것과 같이, 사용자를 위한 가청 사운드를 생성할 수 있다. 이러한 사운드는 보이스 전화 콜들로부터의 사운드 포함할 수 있고, 기록된 사운드(예를 들어, 음성 메시지, 음악 파일 등)를 포함할 수 있고, 또한 디바이스(750)상에서 동작하는 어플리케이션들에 의해 생성된 사운드를 포함할 수 있다.
컴퓨팅 디바이스(750)는 도면에 도시된 바와 같이 다수의 상이한 형태로 구현될 수 있다. 예를 들면, 그것은 셀룰러 전화(780)로서 구현될 수 있다. 또한 스마트폰(782), 개인 휴대 정보 단말기(PDA), 또는 다른 유사한 이동 디바이스의 일부로서 구현될 수 있다.
본 명세서에 기술된 시스템들 및 기법들의 다양한 구현예들은 디지털 전자 회로, 집적 회로, 특수하게 설계된 ASIC들(application specific integrated circuits), 컴퓨터 하드웨어, 펌웨어, 소프트웨어 및/또는 이들의 조합으로 구현될 수 있다. 이들 다양한 구현예들은 적어도 하나의 프로그래머블 프로세서를 포함하는 프로그래머블 시스템 상에서 실행가능하고 및/또는 인터프리트가능한 하나 이상의 컴퓨터 프로그램들에서의 구현예를 포함할 수 있고, 이는 전용 또는 범용일 수 있고, 저장 시스템, 적어도 하나의 입력 디바이스 및 적어도 하나의 출력 디바이스으로부터 데이터 및 명령어들을 수신하고 그에 데이터 및 명령어들을 전송하기 위해 연결될 수 있다.
이들 컴퓨터 프로그램들(프로그램, 소프트웨어, 소프트웨어 어플리케이션 또는 코드로도 알려짐)은 프로그래머블 프로세서에 대한 기계 명령어들을 포함하며, 하이레벨 절차어 및/또는 객체 지향 프로그래밍 언어 및/또는 어셈블리/기계어에서 구현될 수 있다. 본 명세서에서 사용된 바와 같이, 용어 “기계 판독가능 매체”, “컴퓨터 판독가능 매체”는 기계 판독가능 신호로서 기계 명령어들을 수신하는 기계 판독가능 매체를 포함하여, 기계 명령어들 및/또는 데이터를 프로그래머블 프로세서에 제공하는데 사용되는 임의의 컴퓨터 프로그램 물, 장치 및/또는 디바이스 예를 들어, 자기 디스크, 광학 디스크, 메모리, 프로그래머블 로직 디바이스(PLD)를 지칭한다. 용어 “기계 판독가능 신호”는 기계 명령어들 및/또는 데이터를 프로그래머블 프로세서에 제공하는데 사용되는 임의의 신호를 지칭한다.
사용자와의 인터렉션을 제공하기 위해, 본 명세서에서 기술된 시스템들 및 기법들은 사용자에게 정보를 디스플레이하기 위해 예를 들어, CRT(cathode ray tube) 또는 LCD(liquid crystal display) 모니터와 같은 디스플레이 디바이스 및 사용자가 컴퓨터에 입력을 제공할 수 있는 키보드 및 포인팅 디바이스 예를 들어, 마우스 또는 트랙볼을 갖는 컴퓨터에서 구현될 수 있다. 다른 종류의 디바이스들도 사용자와의 인터렉션을 제공하는데 사용될 수 있다. 예를 들어, 사용자에게 제공되는 피드백은 시각 피드백, 청각 피드백 또는 촉각 피드백과 같은 임의의 형태의 감각적 피드백일 수 있고, 사용자로부터의 입력은 음향, 음성 또는 촉각 입력을 포함하는 임의의 형태로 수신될 수 있다.
본 명세서에서 기술된 시스템들 및 기법들은 예를 들어 데이터 서버와 같은 백엔드 컴포넌트, 어플리케이션 서버와 같은 미들웨어 컴포넌트 또는 그래픽 사용자 인터페이스를 가지는 사용자 컴퓨터 또는 사용자가 본 명세서에 기술된 시스템들 및 기법들의 구현예와 인터렉션할 수 있는 웹 브라우저와 같은 프론트엔드 컴포넌트 또는 하나 이상의 상기 백엔드, 미들웨어 또는 프론트엔드 컴포넌트들의 임의의 조합을 포함하는 컴퓨팅 시스템에서 구현될 수 있다. 시스템의 컴포넌트들은 디지털 데이터 통신의 임의의 형태 또는 매체, 예를 들어 통신 네트워크에 의해 상호연결될 수 있다. 통신 네트워크들의 예시들은 LAN(local area network), WAN(wide area network) 및 인터넷을 포함한다.
컴퓨팅 시스템은 사용자들 및 서버들을 포함할 수 있다. 사용자와 서버는 일반적으로 서로 멀리 떨어져 있으며, 일반적으로 통신 네트워크를 통해 인터렉션한다. 사용자와 서버의 관계는 각각의 컴퓨터에서 실행되고 서로 사용자-서버 관계를 갖는 컴퓨터 프로그램에 의해 발생한다.
다수의 실시예들이 기술되었다. 그럼에도 불구하고, 다양한 수정들이 본 발명의 정신과 범위로부터 벗어나지 않고 이루어질 수 있다는 것이 이해될 것이다.
추가로, 도면들에 도시된 논리 흐름들은 원하는 결과들을 달성하기 위해 특정한 도시된 순서, 또는 시계열적 순서를 반드시 필요로 하지 않는다. 추가로, 다른 단계들이 제공될 수 있거나, 단계들이 기술된 흐름으로부터 생략될 수 있고, 다른 컴포넌트들이 기술된 시스템에 추가되거나 그로부터 제거될 수 있다. 따라서, 다른 실시예들도 다음의 청구항들의 범위 내에 있다.
본 명세서에 기술된 다양한 기법들의 구현예들은 디지털 전자 회로에서 또는 컴퓨터 하드웨어, 펌웨어, 소프트웨어 또는 이들의 조합에서 구현될 수 있다.  구현예들은 컴퓨터 프로그램 물로서 즉, 프로그래머블 프로세서, 컴퓨터 또는 다수의 컴퓨터들과 같은 데이터 프로세싱 장치에 의한 프로세싱을 위해 또는 그에 의한 동작의 제어를 위해, 정보 캐리어에 유형적으로 수록된 컴퓨터 프로그램 예를 들어, 기계 판독가능 저장 디바이스(컴퓨터 판독가능 매체)로서 구현될 수 있다.  따라서, 컴퓨터 판독가능 저장 매체는 실행될 때 프로세서(예를 들어, 호스트 디바이스의 프로세서, 클라이언트 디바이스의 프로세서)로 하여금 프로세스를 수행하게 하는 명령어들을 저장하도록 구성될 수 있다. 
상기 기술된 컴퓨터 프로그램(들)과 같은 컴퓨터 프로그램은 컴파일된 또는 인터프리트된 언어들을 포함하는 임의의 형태의 프로그래밍 언어로 작성될 수 있으며, 독립 실행형 프로그램으로서 또는 모듈, 컴포넌트, 서브루틴으로서 또는 컴퓨팅 환경에서 사용하기에 적합한 기타 단위를 포함하는 임의의 형태로 배포될 수 있다. 컴퓨터 프로그램은 하나의 컴퓨터 또는 하나의 사이트에서 또는 다수의 사이트들에 걸쳐서 분산되어 있고 통신 네트워크에 의해 상호연결된 다수의 컴퓨터들에서 프로세싱되도록 배포될 수 있다.
방법 단계들은 입력 데이터를 동작하고 출력을 생성함으로써 기능들을 수행하기 위해 컴퓨터 프로그램을 실행하는 하나 이상의 프로그래머블 프로세서들에 의해 수행될 수 있다.  방법 단계들은 또한 FPGA 또는 ASIC와 같은 특수 목적 논리 회로에 의해 수행될 수 있고, 장치는 또한 특수 목적 논리 회로로서 구현될 수 있다.
컴퓨터 프로그램의 프로세싱에 적절한 프로세서들은, 예시로서, 범용 및 전용 마이크로프로세서들과 임의의 종류의 디지털 컴퓨터의 임의의 하나 이상의 프로세서들을 포함한다.  일반적으로, 프로세서는 읽기-전용 메모리 또는 랜덤 액세스 메모리 또는 둘 모두로부터 명령어들 및 데이터를 수신할 것이다.  컴퓨터의 엘리먼트들은 명령어들을 실행하기 위한 적어도 하나의 프로세서 및 명령어들 및 데이터를 저장하기 위한 하나 이상의 메모리 디바이스들을 포함할 수 있다.  일반적으로, 컴퓨터는 데이터를 저장하기 위한 하나 이상의 대형 저장 디바이스들 예를 들면, 자기적, 자기-광학 디스크들 또는 광학적 디스크들 또한 포함하거나 또는 그로부터 데이터를 수신하거나 그에 데이터를 전송하기 위해 동작적으로 결합될 수 있다. 컴퓨터 프로그램 명령어들 및 데이터를 수록하기에 적합한 정보 캐리어들은 예를 들어, EPROM, EEPROM 및 플래시 메모리 디바이스들과 같은 반도체 메모리 디바이스들; 예를 들어, 내부 하드 디스크들 또는 이동식 디스크들과 같은 자기 디스크들; 및 CD-ROM 및 DVD-ROM 디스크들을 포함하는 모든 형태의 비휘발성 메모리를 포함한다.  프로세서 및 메모리는 특수 목적 논리 회로에 의해 보충되거나 그 안에 통합될 수 있다.
사용자와의 인터렉션을 제공하기 위해, 구현예들은 사용자에게 정보를 디스플레이하기 위해 예를 들어, CRT(cathode ray tube), LED(light emitting diode) 또는 LCD(liquid crystal display) 모니터와 같은 디스플레이 디바이스 및 사용자가 컴퓨터에 입력을 제공할 수 있는 키보드 및 포인팅 디바이스 예를 들어, 마우스 또는 트랙볼을 갖는 컴퓨터에서 구현될 수 있다. 다른 종류의 디바이스들도 사용자와의 인터렉션을 제공하는데 사용될 수 있다. 예를 들어, 사용자에게 제공되는 피드백은 시각 피드백, 청각 피드백 또는 촉각 피드백과 같은 임의의 형태의 감각적 피드백일 수 있고, 사용자로부터의 입력은 음향, 음성 또는 촉각 입력을 포함하는 임의의 형태로 수신될 수 있다.
구현예들은 예를 들어 데이터 서버와 같은 백엔드 컴포넌트, 애플리케이션 서버와 같은 미들웨어 컴포넌트 또는 그래픽 사용자 인터페이스를 가지는 사용자 컴퓨터 또는 사용자가 구현예와 인터렉션할 수 있는 웹 브라우저와 같은 프론트엔드 컴포넌트 또는 백엔드, 미들웨어 또는 프론트엔드 컴포넌트들의 임의의 조합을 포함하는 컴퓨팅 시스템에서 구현될 수 있다.  컴포넌트들은 디지털 데이터 통신의 임의의 형태 또는 매체, 예를 들어 통신 네트워크에 의해 상호연결될 수 있다.  통신 네트워크들의 예시들은 LAN(local area network) 및 WAN(wide area network) 예를 들어, 인터넷을 포함한다.
기술된 구현예의 특정 구성들이 본 명세서에 기술된 바와 같이 설명되었지만, 많은 수정, 대체, 변경 및 균등물이 통상의 기술자로 인해 발생할 것이다. 그러므로, 첨부된 청구범위는 구현의 범위 내에 있는 그러한 모든 수정 및 변경을 포함하도록 의도된 것으로 이해되어야 한다. 이들 실시예는 제한적인 것이 아닌 예시일 뿐이며, 형태 및 세부사항의 다양한 변경이 이루어질 수 있음이 이해되어야 한다. 본 명세서에 기술된 장치 및/또는 방법의 임의의 부분은 상호 배타적인 조합을 제외하고는 임의의 조합으로 결합될 수 있다. 본 명세서에 기술된 구현예들은 기재된 다른 구현예들의 기능, 컴포넌트 및/또는 구성들의 다양한 조합 및/또는 서브 조합을 포함할 수 있다.

Claims (20)

  1. 방법으로서,
    컴퓨팅 시스템의 프로세싱 회로에 의해, 사용자에 의해 점유된 물리적 환경 내에서 사용자가 들고 있는 입력 제어기의 제1 6-자유도(6DOF) 움직임을 표시하는 제1 움직임 데이터를 수신하는 단계;
    상기 프로세싱 회로에 의해, 상기 물리적 환경 내에서 상기 입력 제어기의 제1 6DOF 움직임에 기초하여 스케일링 팩터를 생성하는 단계, 상기 물리적 환경 내에서 상기 입력 제어기의 제1 6DOF 움직임에 기초하여 스케일링 팩터를 생성하는 단계는:
    상기 제1 움직임이 제1 임계치보다 작은 것에 응답하여, 제1 스케일링 팩터를 생성하는 것; 및
    상기 제1 움직임이 상기 제1 임계치보다 큰 것에 응답하여, 제2 스케일링 팩터를 생성하는 것을 포함하며, 상기 제2 스케일링 팩터는 상기 제1 스케일링 팩터보다 크며;
    상기 프로세싱 회로에 의해, 상기 제1 움직임 데이터를 수신한 후에, 시간 기간에 걸쳐 상기 물리적 환경 내에서 상기 입력 제어기의 제2 6DOF 움직임을 표시하는 제2 움직임 데이터를 수신하는 단계;
    상기 프로세싱 회로에 의해, 상기 제2 움직임 데이터를 수신함에 응답하여, 가상 환경 내에서 오브젝트의 스케일링된 움직임을 생성하기 위해 오브젝트 움직임 동작을 수행하는 단계를 포함하며, 상기 오브젝트 움직임 동작은 상기 가상 환경 내의 상기 오브젝트의 상기 스케일링된 움직임을 생성하기 위해 상기 제2 6DOF 움직임에 대응하는 상기 가상 환경 내의 상기 오브젝트의 움직임에 상기 스케일링 팩터를 곱하는 것을 포함하는 것을 특징으로 하는 방법.
  2. 청구항 1에 있어서, 상기 제1 움직임 데이터는 상기 물리적 환경 내에서 상기 입력 제어기의 초기 6DOF 위치를 포함하며; 그리고
    상기 제1 움직임 데이터를 수신하는 단계는 상기 초기 6DOF 위치에 대한 6DOF 위치의 변화를 획득하는 것을 포함하는 것을 특징으로 하는 방법.
  3. 청구항 1에 있어서, 상기 제2 움직임 데이터는 상기 시간 기간의 시작시 상기 물리적 환경 내에서 상기 입력 제어기의 6DOF 위치를 포함하며; 그리고
    상기 제 2 움직임 데이터를 수신하는 단계는 상기 시간 기간의 시작시에 상기 물리적 환경 내에서 상기 입력 제어기의 6DOF 위치에 대한 6DOF 위치의 변화를 획득하는 것을 포함하는 것을 특징으로 하는 방법.
  4. 청구항 3에 있어서, 상기 제2 움직임 데이터를 수신하는 단계는 상기 물리적 환경 내에서 상기 입력 제어기의 현재 3차원적 위치와 상기 시간 기간의 시작시에 상기 물리적 환경 내에서 상기 입력 제어기의 3차원적 위치 사이의 유클리드 거리(Euclidean distance)를 생성하는 것을 더 포함하는 것을 특징으로 하는 방법.
  5. 청구항 3에 있어서, 상기 제2 움직임 데이터를 수신하는 단계는 상기 물리적 환경 내에서 상기 입력 제어기의 현재 3차원적 방향와 상기 시간 기간의 시작시에 상기 물리적 환경 내에서 상기 입력 제어기의 3차원적 방향 사이의 각변위(angular displacement)를 생성하는 것을 더 포함하는 것을 특징으로 하는 방법.
  6. 청구항 1에 있어서, 상기 제1 움직임이 상기 제1 임계치보다 큰 것에 응답하여, 제2 스케일링 팩터를 생성하는 것은:
    상기 제1 움직임이 상기 제1 임계치보다 큰 제2 임계치보다 작은 것에 응답하여, 제3 스케일링 팩터를 생성하는 것을 포함하며, 상기 제3 스케일링 팩터는 상기 제1 스케일링 팩터 및 상기 제2 스케일링 팩터 사이이며, 상기 제3 스케일링 팩터를 생성하는 것은 상기 제3 스케일링 팩터로서 상기 제1 움직임으로 선형적으로 변화하는 수를 생성하는 것을 포함하는 것을 특징으로 하는 방법.
  7. 청구항 1에 있어서, 상기 컴퓨팅 시스템은 가상 현실(VR) 시스템이며, 그리고
    제1 움직임 데이터는 상기 사용자에 의해 수행된 손 제스처의 시작시 상기 프로세싱 회로에 의해 수신되는 것을 특징으로 하는 방법.
  8. 청구항 1에 있어서, 상기 제2 움직임 데이터는 상기 사용자가 상기 입력 제어기의 트리거에 관여했는지 여부를 표시하는 트리거 데이터를 더 포함하며, 그리고
    상기 오브젝트 움직임 동작은 상기 사용자가 상기 트리거에 관여하였다고 표시하는 상기 트리거 데이터에 응답하여 수행되고, 상기 사용자가 상기 트리거에 관여하지 않았음을 표시하는 상기 트리거 데이터에 응답하여 수행되지 않는 것을 특징으로 하는 방법.
  9. 비일시적 컴퓨터 판독가능 저장 매체에 저장된 컴퓨터 프로그램으로서, 상기 컴퓨터 프로그램은 컴퓨팅 시스템의 프로세싱 회로에 의해 실행될 때, 상기 프로세싱 회로로 하여금 청구항 1 내지 8 중 어느 한 항에 기재된 방법을 수행하게 하는 것을 특징으로 하는 컴퓨터 프로그램.
  10. 컴퓨팅 시스템으로서,
    네트워크 인터페이스;
    메모리; 및
    프로세싱 회로를 포함하는 프로세서를 포함하며, 상기 프로세싱 회로는 청구항 1 내지 8 중 어느 한 항에 기재된 방법을 수행하도록 구성되는 것을 특징으로 하는 컴퓨팅 시스템.
  11. 삭제
  12. 삭제
  13. 삭제
  14. 삭제
  15. 삭제
  16. 삭제
  17. 삭제
  18. 삭제
  19. 삭제
  20. 삭제
KR1020197013995A 2016-11-15 2017-11-15 가상 현실 시스템을 위한 입력 제어기 안정화 기법 KR102233807B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201662422464P 2016-11-15 2016-11-15
US62/422,464 2016-11-15
PCT/US2017/061798 WO2018093900A1 (en) 2016-11-15 2017-11-15 Input controller stabilization techniques for virtual reality systems

Publications (2)

Publication Number Publication Date
KR20190067227A KR20190067227A (ko) 2019-06-14
KR102233807B1 true KR102233807B1 (ko) 2021-03-30

Family

ID=60655054

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020197013995A KR102233807B1 (ko) 2016-11-15 2017-11-15 가상 현실 시스템을 위한 입력 제어기 안정화 기법

Country Status (7)

Country Link
US (1) US10620720B2 (ko)
EP (1) EP3542249A1 (ko)
JP (1) JP6929361B2 (ko)
KR (1) KR102233807B1 (ko)
CN (1) CN109906424B (ko)
DE (1) DE202017006742U1 (ko)
WO (1) WO2018093900A1 (ko)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10867445B1 (en) * 2016-11-16 2020-12-15 Amazon Technologies, Inc. Content segmentation and navigation
US11740690B2 (en) * 2017-01-27 2023-08-29 Qualcomm Incorporated Systems and methods for tracking a controller
CN109983424B (zh) * 2017-06-23 2022-06-24 腾讯科技(深圳)有限公司 虚拟现实场景中的对象选中方法和装置以及虚拟现实设备
US10671238B2 (en) * 2017-11-17 2020-06-02 Adobe Inc. Position-dependent modification of descriptive content in a virtual reality environment
US11019389B2 (en) * 2017-12-04 2021-05-25 Comcast Cable Communications, Llc Determination of enhanced viewing experiences based on viewer engagement
WO2019176009A1 (ja) * 2018-03-14 2019-09-19 マクセル株式会社 携帯情報端末
US11320958B2 (en) 2018-05-02 2022-05-03 Apple Inc. Moving about a setting
US10636118B2 (en) 2018-06-25 2020-04-28 Microsoft Technology Licensing, Llc Input scaling to keep controller inside field of view
DE102020104415A1 (de) * 2019-02-22 2020-08-27 Apple Inc. Bewegung in einer umgebung
CN109992111B (zh) * 2019-03-25 2021-02-19 联想(北京)有限公司 增强现实扩展方法和电子设备
EP4002064A1 (en) * 2020-11-18 2022-05-25 XRSpace CO., LTD. Method and system for showing a cursor for user interaction on a display device
WO2023157338A1 (ja) * 2022-02-18 2023-08-24 株式会社ソニー・インタラクティブエンタテインメント 情報処理装置およびデバイス位置推定方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080211771A1 (en) * 2007-03-02 2008-09-04 Naturalpoint, Inc. Approach for Merging Scaled Input of Movable Objects to Control Presentation of Aspects of a Shared Virtual Environment
JP2009294690A (ja) * 2008-06-02 2009-12-17 Sony Corp 入力装置、制御装置、制御システム及び制御方法
US20160098095A1 (en) * 2004-01-30 2016-04-07 Electronic Scripting Products, Inc. Deriving Input from Six Degrees of Freedom Interfaces

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3859459B2 (ja) * 2000-04-26 2006-12-20 松下電器産業株式会社 撮像装置
US7409028B2 (en) * 2000-12-22 2008-08-05 Ericsson Inc. Clock synchronization in a communications environment
US9405372B2 (en) * 2006-07-14 2016-08-02 Ailive, Inc. Self-contained inertial navigation system for interactive control using movable controllers
US20080030429A1 (en) 2006-08-07 2008-02-07 International Business Machines Corporation System and method of enhanced virtual reality
TW200900123A (en) * 2007-06-18 2009-01-01 Ailive Inc Self-contained inertial navigation system for interactive control using movable controllers
JP2009301531A (ja) * 2007-10-22 2009-12-24 Sony Corp 空間操作型入力装置、制御装置、制御システム、制御方法、空間操作型入力装置の製造方法及びハンドヘルド装置
CN101611369B (zh) * 2007-11-26 2012-08-22 索尼株式会社 输入设备、控制设备、控制系统、控制方法及手持设备
KR20100090466A (ko) * 2009-02-06 2010-08-16 홍영표 포인팅장치를 이용한 거리측정 장치 및 방법
US9897805B2 (en) 2013-06-07 2018-02-20 Sony Interactive Entertainment Inc. Image rendering responsive to user actions in head mounted display
US9041622B2 (en) 2012-06-12 2015-05-26 Microsoft Technology Licensing, Llc Controlling a virtual object with a real controller device
US20160004300A1 (en) * 2014-07-07 2016-01-07 PinchVR Inc. System, Method, Device and Computer Readable Medium for Use with Virtual Environments
US10373392B2 (en) * 2015-08-26 2019-08-06 Microsoft Technology Licensing, Llc Transitioning views of a virtual model
US10338687B2 (en) * 2015-12-03 2019-07-02 Google Llc Teleportation in an augmented and/or virtual reality environment
US10559117B2 (en) * 2016-02-08 2020-02-11 Google Llc Interactions and scaling in virtual reality
US9972134B2 (en) * 2016-06-30 2018-05-15 Microsoft Technology Licensing, Llc Adaptive smoothing based on user focus on a target object

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160098095A1 (en) * 2004-01-30 2016-04-07 Electronic Scripting Products, Inc. Deriving Input from Six Degrees of Freedom Interfaces
US20080211771A1 (en) * 2007-03-02 2008-09-04 Naturalpoint, Inc. Approach for Merging Scaled Input of Movable Objects to Control Presentation of Aspects of a Shared Virtual Environment
JP2009294690A (ja) * 2008-06-02 2009-12-17 Sony Corp 入力装置、制御装置、制御システム及び制御方法

Also Published As

Publication number Publication date
KR20190067227A (ko) 2019-06-14
US20180136744A1 (en) 2018-05-17
JP6929361B2 (ja) 2021-09-01
DE202017006742U1 (de) 2019-02-19
CN109906424A (zh) 2019-06-18
JP2020513611A (ja) 2020-05-14
WO2018093900A1 (en) 2018-05-24
EP3542249A1 (en) 2019-09-25
CN109906424B (zh) 2022-07-05
US10620720B2 (en) 2020-04-14

Similar Documents

Publication Publication Date Title
KR102233807B1 (ko) 가상 현실 시스템을 위한 입력 제어기 안정화 기법
US10559117B2 (en) Interactions and scaling in virtual reality
KR102098316B1 (ko) 증강 및/또는 가상 현실 환경에서의 텔레포테이션
JP7008681B2 (ja) 仮想現実における、頭部、ジェスチャ、およびタッチ入力の動的な切り替えならびにマージ
KR102245245B1 (ko) 증강된 그리고/또는 가상의 현실 환경에서 6 자유도 제어기들을 이용한 가상 객체들의 조작
JP6676213B2 (ja) 仮想現実ユーザインターフェイスのためのユーザの動きの範囲の検出
JP6535819B2 (ja) 仮想現実環境におけるナビゲーション用制御システム
KR102251252B1 (ko) 가상 현실에서의 위치 지구본

Legal Events

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