KR102450659B1 - 3차원 시각화 시스템의 오브젝트 배치 보조 - Google Patents

3차원 시각화 시스템의 오브젝트 배치 보조 Download PDF

Info

Publication number
KR102450659B1
KR102450659B1 KR1020177018146A KR20177018146A KR102450659B1 KR 102450659 B1 KR102450659 B1 KR 102450659B1 KR 1020177018146 A KR1020177018146 A KR 1020177018146A KR 20177018146 A KR20177018146 A KR 20177018146A KR 102450659 B1 KR102450659 B1 KR 102450659B1
Authority
KR
South Korea
Prior art keywords
user
target object
objects
candidate
gaze
Prior art date
Application number
KR1020177018146A
Other languages
English (en)
Other versions
KR20170096129A (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 KR20170096129A publication Critical patent/KR20170096129A/ko
Application granted granted Critical
Publication of KR102450659B1 publication Critical patent/KR102450659B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0481Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
    • G06F3/04815Interaction with a metaphor-based environment or interaction object displayed as three-dimensional, e.g. changing the user viewpoint with respect to the environment or object
    • GPHYSICS
    • G02OPTICS
    • G02BOPTICAL ELEMENTS, SYSTEMS OR APPARATUS
    • G02B27/00Optical systems or apparatus not provided for by any of the groups G02B1/00 - G02B26/00, G02B30/00
    • G02B27/01Head-up displays
    • G02B27/017Head mounted
    • 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/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
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G3/00Control arrangements or circuits, of interest only in connection with visual indicators other than cathode-ray tubes
    • G09G3/001Control arrangements or circuits, of interest only in connection with visual indicators other than cathode-ray tubes using specific devices not provided for in groups G09G3/02 - G09G3/36, e.g. using an intermediate record carrier such as a film slide; Projection systems; Display of non-alphanumerical information, solely or in combination with alphanumerical information, e.g. digital display on projected diapositive as background
    • GPHYSICS
    • G02OPTICS
    • G02BOPTICAL ELEMENTS, SYSTEMS OR APPARATUS
    • G02B27/00Optical systems or apparatus not provided for by any of the groups G02B1/00 - G02B26/00, G02B30/00
    • G02B27/01Head-up displays
    • G02B27/017Head mounted
    • G02B2027/0178Eyeglass type
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2340/00Aspects of display data processing
    • G09G2340/04Changes in size, position or resolution of an image
    • G09G2340/0464Positioning
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2354/00Aspects of interface with display user

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Computer Hardware Design (AREA)
  • Optics & Photonics (AREA)
  • User Interface Of Digital Computer (AREA)
  • Processing Or Creating Images (AREA)

Abstract

시각화 디바이스에 구현되어, 3D 오브젝트를 배치할 때 사용자를 보조하는 방법이 개시된다. 특정 실시예에서, 상기 방법은 시각화 디바이스의 디스플레이 영역 상에서, 3D 물리적 공간의 실세계 뷰 상에 오버레이된 다양한 가상 3D 오브젝트들을 사용자에게 디스플레이하는 단계를 포함한다. 상기 방법은 상기 다양한 가상 3D 오브젝트들 중 제1 오브젝트가 상기 디스플레이 영역 상에 디스플레이되어, 단순히 사용자의 시선 방향의 변화일 수 있는 상기 사용자로부터의 입력에 응답하여 상기 3D 물리적 공간을 통해 이동하는 것처럼 보여지는 홀딩 기능을 더 포함할 수 있다. 이 후, 검출된 사용자의 시선에 기초하여, 제2 오브젝트가 스냅 기능을 위한 타깃 오브젝트로서 식별되고, 여기서 상기 스냅 기능은 제1 오브젝트가 타깃 오브젝트의 표면 상의 위치로 이동하게 유도하는 동작이다.

Description

3차원 시각화 시스템의 오브젝트 배치 보조{ASSISTED OBJECT PLACEMENT IN A THREE-DIMENSIONAL VISUALIZATION SYSTEM}
본원 발명의 적어도 일 실시예는 3차원(3D) 시각화 시스템에 관한 것으로서, 보다 상세하게는 3D 시각화 시스템에 오브젝트를 배치할 때에 사용자를 보조(assist)하는 기술에 관한 것이다.
오늘날, 스마트 폰, 태블릿 등과 같은 개인용 컴퓨터 및 다른 프로세싱 디바이스에 대해서, 다수의 드로잉 소프트웨어 애플리케이션이 이용 가능하다. 이러한 애플리케이션 중 일부는, 소위 "스냅(snap)" 및 "접착(glue)" 기능 등, 오브젝트를 배치할 때 사용자를 보조하기 위한 툴 또는 기능을 포함한다. 스냅 기능에 의해, 사용자가 제1 디스플레이된 오브젝트를 제2 디스플레이된 오브젝트에 매우 근접한 위치로 이동시킬 때, 소프트웨어는 제1 오브젝트를, 제2 오브젝트와 접촉하도록 자동으로 더 이동시킨다. 이 기능은 사용자가 두 오브젝트를 정확하게 배치해야 하는 번거로움을 덜어 준다. 접착 기능은 두 오브젝트가 함께 부착되게 유도하여 서로 접촉한 후에 함께 이동할 수 있게 한다. 이러한 기능은 일반적으로 사용자 선호(user preference)를 설정함으로써 활성화 또는 비활성화할 수 있다.
본원에 소개된 기술은 3D 시각화 환경에서, 특히 필수적이지는 않지만 실감형(immersive) AR/VR 환경에서, 디스플레이된 홀로그램 오브젝트를 이동 및 배치할 때, 사용자를 보조하기 위한 오브젝트 배치 툴을 제공한다. 이 툴은 "가상 마그넷"으로 구현될 수 있으며, 본원에서 때때로 "마그넷 툴" 또는 단순히 "마그넷"이라고도 언급된 다. 이 툴은 사용자가 소스 오브젝트(예를 들어, 가상 마그넷을 구비)를 픽업하고, 소스 오브젝트를 정확하게 타깃 오브젝트 상에 배치하는 것을 보조한다. 이 툴은, 소스 오브젝트가 픽업되면 어떻게 소스 오브젝트가 지향될 것인지를 사용자가 미리 정확히 이해하도록 돕고, 사용자가 그 동작을 실행(commit)하기 전에 어디에 소스 오브젝트가 배치될 것인지, 그리고 타깃 오브젝트 상에 어떻게 그것이 지향될 것인지를 사용자가 미리 정확히 이해하도록 돕는다.
특정 실시예에서, 본원에 도입된 기술은 착용식 (예를 들어, 헤드 장착) 시각화 디바이스와 같은 AR/VR 시각화 디바이스일 수 있는 시각화 디바이스에서 구현되는 방법을 포함한다. 상기 디바이스는 사용자의 시선 방향을 추적하도록 갖춰질 수 있어서, 사용자의 손 제스처를 인식할 수 있고 및/또는 사용자의 음성을 인식할 수 있으며, 툴의 동작 시 이러한 임의의 유형의 입력을 사용할 수 있다.
특정 실시예에서, 상기 방법은, 시각화 디바이스의 디스플레이 영역 상에서, 시각화 디바이스의 사용자에게 3D 물리적 공간의 실세계 뷰(view)에 오버레이된 다양한 가상 3D 오브젝트를 디스플레이하는 단계를 포함한다. 상기 방법은 사용자로부터의 입력에 응답하여, 상기 다양한 가상 3D 오브젝트들 중 제1 오브젝트(소스 오브젝트)를, 상기 제1 오브젝트가 상기 3D 물리적 공간을 통과해 이동하는 것처럼 보이게 상기 디스플레이 영역 상에 디스플레이하는 홀딩 기능을 더 포함할 수 있다. 특정 실시예 또는 예시에서의 입력은 단지 사용자의 시선 방향의 변화에 불과하다. 상기 방법은 검출된 사용자의 시선에 기초하여 다양한 가상 3D 오브젝트들 중 제2 오브젝트를 스냅 기능을 위한 타깃 오브젝트로서 식별하는 단계를 더 포함할 수 있다. 스냅 기능은 제1 오브젝트를 타깃 오브젝트의 표면 상의 위치로 이동하게 유도하는 동작이다.
일부 실시예에서, 스냅 기능의 타깃 오브젝트는 또한 제1 오브젝트와 후보 타깃 오브젝트 사이의 크기의 유사성; 제1 오브젝트와 후보 타깃 오브젝트 사이의 전체 형상의 유사성; 또는 제1 오브젝트의 표면과 후보 타깃 오브젝트의 표면 사이의 형상의 유사성; 또는 이러한 입력들의 임의의 조합에 기초하여 식별된다. 상기 방법은 예를 들어 사용자의 손 제스처, 음성 명령(spoken command), 사용자의 시선 또는 사용자의 발화, 또는 이러한 입력들의 임의의 조합에 기초하여 사용자가 스냅 동작을 트리거하기를 원한다는 것을 검출할 수 있다.
사용자가 툴로 제1 오브젝트를 그래빙(grab)하기 전에, 상기 방법은 검출된 사용자의 시선에 기초하여, 그리고 일부 실시예 또는 예시에서는 검출된 사용자의 시선에만 기초하여, 제1 오브젝트를 홀딩 기능을 위한 후보 오브젝트(즉, 그래빙될 수 있는 오브젝트)로서 식별할 수 있다. 상기 방법은 제1 오브젝트 주위에 투명 또는 반투명 와이어 프레임 바운딩 박스(wireframe bounding box)를 디스플레이하는 것과 같이, 제1 오브젝트가 홀딩 동작을 위한 후보로서 식별되었다는 표시를 디스플레이할 수 있다. 오브젝트가 픽업되면/픽업될 때에 그 오브젝트가 어떻게 지향될지를 사용자가 시각화하는 것을 돕기 위해, 상기 방법은 또한, 검출된 사용자의 시선 벡터에 기초한 위치에서 바운딩 박스의 표면 상에 커서를 디스플레이할 수 있다. 커서의 위치는 홀딩 기능을 위한 잠재적인 픽업 (그래빙) 포인트가 될 수 있다. 커서는 사용자의 시선 벡터의 변화에 응답하여 바운딩 박스의 모든 표면을 가로질러 이동할 수 있다. 사용자가 (예를 들어, 음성 명령 또는 손 제스처에 의해) 제1 오브젝트를 그래빙하도록 홀딩 기능을 트리거하면, 사용자가 홀딩 기능을 트리거한 순간의 바운딩 체적 상의 커서의 위치에 따라 제1 오브젝트가 재지향된다.
상기 방법은, 상기 타깃 오브젝트를 식별하는 단계에 대응하여, 상기 제1 오브젝트가 상기 타깃 오브젝트의 표면을 따라 또는 상기 타깃 오브젝트의 두 개 이상의 인접한 (비평행(non-parallel)) 표면을 가로질러, 사용자의 시선 방향의 변화에 응답하여, 슬라이딩하는 것처럼 보이게 유도하는 단계를 더 포함할 수 있다.
본 기술의 다른 양태는 첨부된 도면들 및 상세한 설명으로부터 명백해질 것이다.
이 요약은 이하의 상세한 설명에서 더 설명되는 단순화된 형태의 개념의 선택을 소개하기 위해 제공된다. 이 요약은 청구된 주제의 주요 특징 또는 필수적인 특징을 식별하기 위한 것이 아니며, 청구된 주제의 범위를 제한하는데 사용되지도 않는다.
본원 발명의 하나 이상의 실시예가 첨부된 도면을 참조하여 제한되지 않게 예시적으로 도시되었으며, 여기서 동일한 도면 부호는 유사한 요소를 나타낸다.
도 1은 AR/VR 헤드셋의 예시를 도시한다.
도 2는 AR/VR 헤드셋의 특정 컴포넌트의 상위 레벨 블록도이다.
도 3a 내지 도 3k는 AR/VR 헤드셋을 통한 사용자의 뷰의 다양한 예시를 도시한다.
도 4는 오브젝트 배치 툴을 제공하기 위해 시각화 디바이스에 의해 수행될 수 있는 전체 프로세스의 예시를 도시한다.
도 5는 소스 오브젝트 후보 식별 및 선택 프로세스의 예시를 도시한다.
도 6은 타깃 오브젝트 식별 및 스냅 포인트 선택 프로세스의 예시를 도시한다.
본 명세서에서, "실시예", "일 실시예" 등은 기술된 특정 특징, 기능, 구조 또는 특성이 본 명세서에서 도입된 기술의 적어도 일 실시예에 포함된다는 것을 의미한다. 본 명세서에서의 그러한 어구들의 개시는 반드시 모든 동일한 실시예를 지칭하는 것은 아니다. 한편, 개시된 실시예들은 반드시 상호 배타적인 것은 아니다.
I. 개요
3D 시각화 환경에서 디스플레이된 오브젝트의 자유로운 배치는 3D 오브젝트를 대략적으로 함께 배치하는데 매우 유용할 수 있지만, 배치 정확성과 속도 간에는 트레이드오프(tradeoff)가 있다. 3D 시각화 환경에서의 소프트웨어에 의해 지원되는 오브젝트 배치는 2D 환경보다 훨씬 더 복잡하다. 무엇보다도 오브젝트의 위치를 심도 있게 시각화하는 것이 어렵다. 일 예시로서, 가까이에 있는 작은 오브젝트가 멀리 있는 큰 오브젝트처럼 보이게 되는 곳에 서 있을 때 잘 알려진 착시 효과가 발생한다. 그러므로, 사용자가 3D로 오브젝트를 배치하는 것을 돕는 툴을 갖는 것이 바람직하지만, 장면(scene)의 복잡성이 증가함에 따라 사용자의 의도를 결정하는 것이 점점 어려워진다. 따라서 본원에서는, 정확하고 빠른 배치를 제공하면서 안정적이고 예측 가능한 오브젝트 배치 툴을 소개한다.
특정 실시예에서, 툴은 가상/홀로그램 마그넷과 같이 기능하고, 따라서, 본 명세서 내의 다양한 곳에서 "마그넷 툴", "마그넷", "오브젝트 배치 툴", "배치 툴" 또는 "툴"로 상호 교환적으로 언급된다. 이 툴은 예를 들어 착용형 AR/VR 헤드셋으로 구현될 수 있는데, 이것은 설명을 용이하게 하기 위해 본원에서 이후로 채택하는 것일 뿐이다. 그러나, 본원에 소개된 기술은, 종래의 개인용 컴퓨터, 태블릿, 스마트 폰 등의 표준 LCD 디스플레이 또는 사용자가 디스플레이 상의 3D 오브젝트를 이동 및 위치시키는 임의의 다른 디바이스를 포함하는 다른 유형의 시각화 디바이스 및 콘텍스트에도 적용될 수 있음을 유의해야 한다.
특정 실시예에서, 툴의 동작은 하기 4 단계를 갖는다: 1) 소스 오브젝트를 선택하고 픽업하는 단계; 2) 타깃 오브젝트를 위치시키고 선택하면서 공간을 통과해 소스 오브젝트("홀딩된 오브젝트"라고도 함)를 이동시키는 단계; 3) 타깃 오브젝트 상에 소스 오브젝트를 배치 및 지향시키는 단계(타깃 오브젝트로의 "스냅핑"이라고 함); 및 4) 상기 소스 오브젝트를 상기 타깃 오브젝트 상의 원하는 위치에 접착되게 하기 위해 상기 소스 오브젝트를 상기 타깃 오브젝트 상의 상기 원하는 위치에서 해제시키는 단계.
II. 툴 동작의 상세
A. 소스 오브젝트의 선택
일부 실시예에서, 사용자는 "마그넷(magnet)"과 같은 음성 명령에 의해 또는 디스플레이된 아이콘 세트(예를 들어, 가상 툴 박스 내의 마그넷 아이콘)로부터 특정 아이콘을 선택하기 위해 손 제스처를 사용하여 툴을 활성화할 수 있다. 일단 활성화되면, 커서는 마그넷 이미지(예를 들어, 마그넷 형상의 표면 메쉬)로 대체되거나 보충될 수 있다. 사용자가 툴이 활성화되었을 때 홀로그램 오브젝트를 이미 (가상으로) "홀딩"하였다면, "마그넷"이라고 말하거나 손 제스처를 만들어 이미 홀딩된 오브젝트가 소스 오브젝트로 선택되게 유도할 수 있고, 이후, 사용자는 하기에 논의될 타깃 오브젝트의 선택을 계속 진행할 수 있다.
어떤 오브젝트가 픽업되어야 하는지를 결정하기 위해(소스 오브젝트), 특정 실시예에서, 툴을 구현하는 프로세스는 2단계 광선캐스트(raycast)를 수행한다. 각 광선캐스트는 사용자의 시선 벡터(시각화 시스템의 눈 추적 장비에 의해 감지됨)를 따라 사용자로부터 외향으로 (가상) 광선을 연속적으로 캐스트하는 것을 포함한다. 사용자의 시선 벡터는 사용자의 현재 뷰 방향으로 정의될 수 있다. 제1 광선 캐스트는 어떤 오브젝트를 최상의 후보 소스 오브젝트로 식별할지 결정하는데 사용된다. 그 결정에 기초하여, 프로세스는 바운딩 박스와 같이 오브젝트를 완전히 포함하는 바운딩 체적(bounding volume)에 대해 제2 광선캐스트를 수행한다. 이 제2 광선캐스트는 후보 오브젝트의 바운딩 체적의 면 상에 커서가 위치하도록 커서를 위치시키고 재지향시키는데 사용되어, 오브젝트가 픽업되면(소스 오브젝트로서 선택되면) 어떻게 오브젝트가 지향될 것인지의 프리뷰 표시를 사용자에게 보여준다. 이러한 광선 캐스트는 사용자가 오브젝트를 픽업하여 소스 오브젝트(홀딩된 오브젝트)가 될 때까지 사용자의 시선 벡터의 변화를 반영하도록 지속적으로 업데이트된다. 사용자는 예를 들어 손가락으로 탭 제스처를 수행하거나 또는 "픽업"과 같은 미리 결정된 명령을 말함으로써 오브젝트를 픽업할 수 있다.
B. 타깃 오브젝트 선택
일단 사용자가 툴로 오브젝트를 픽업하면, 오브젝트는 (필수적인 경우는 아니지만 마그넷 이미지가 디스플레이된 경우) 마그넷 이미지에 부착되는 것처럼 보이고, 소스 오브젝트(홀딩된 오브젝트)와 마그넷 이미지 둘 모두는, 사용자로부터 멀리 떨어진(사용자가 그것을 보기 위해 자신의 눈을 수렴하게 하지 않는 것이 바람직하다), 그러나 소스 오브젝트가 그 세계의 다른 오브젝트들과 부딪칠 정도로 멀리는 떨어지지 않는, 편안한 뷰잉 거리에서 장면을 향하는 사용자의 시선 벡터와 대략 일치하도록 이동하여 지향된다. 예를 들어, 사용자 전방의 약 1m의 외견상 거리가 적합할 수 있다. 소스 오브젝트, 커서 및 (디스플레이된 경우) 마그넷 이미지는 사용자의 시선 벡터보다 약간 아래에 위치할 수 있지만, 잠재적인 타깃 오브젝트를 포함하여 장면의 나머지 부분이 흐려지지 않도록 한다. 소스 오브젝트와 마그넷 이미지는 사용자의 시선이 변함에 따라 사용자의 시선 벡터와 (적어도 수평으로) 정렬된다.
특정 실시예에서, 광선은 커서로부터 장면으로 연속적으로 캐스트되어, 사용자의 현재 시선 벡터에 기초하여 예를 들어, 광선이 닿는(hit) 오브젝트를 하이라이트함으로써(후술하는 바와 같이, 아마도 특정 선택 기준이 적용됨) 어떤 오브젝트가 현재 타깃 오브젝트로 선택되는지를 사용자에게 보여준다. 이 광선캐스트는, 보다 단순한 바운딩 박스 윤곽 형상이 사용된 경우보다 더 정확하게 용이한 선택을 하기 위해, 보이는 타깃 오브젝트의 정확한 형상을 목표로 할 수 있다. 예를 들어, 일부 실시예에서, 광선 캐스트는 광선이 실제로 닿는 오브젝트만이 하이라이트되도록 유도함으로써, 어떤 접착 동작(glued behavior)(두 개 이상의 오브젝트가 함께 접착되는 경우)도 무시한다.
일부 실시예에서, 사용자의 뷰에 대해 특정의 외견상 크기보다 작은 AR 오브젝트(예를 들어, 사용자로부터의 1m의 외견상 거리에서 2cm의 최대 치수)는 툴에 대한 타깃 오브젝트가 될 수 없지만, 소스 오브젝트로 픽업될 수 있다. 예를 들어, 홀로그램 리벳은 픽업되어 홀로그램 로켓에 위치할 수는 있지만, 이 툴은 로켓 상의 다른 리벳을 타깃으로 하지 않는다. 타깃이 되지 않는 장면 내의 오브젝트는 적어도 부분적으로 투명하게(예를 들어, 와이어 프레임 형식으로 도시됨) 만들어져서, 주변 오브젝트의 콘텍스트를 유지하면서 타깃 오브젝트는 보다 선명해질 수 있다. 투명 또는 부분적으로 투명한 오브젝트의 전방 표면만을 디스플레이하기 위해, 렌더링 프로세스에서 깊이 "사전 패스(pre-pass)"가 적용될 수 있다.
특정 실시예에서, 일단 타깃 오브젝트가 선택되면, 상기 소스 오브젝트는 상기 타깃 오브젝트에 "부착"되지만 타깃 오브젝트의 표면 상에서 이동할 수 있다. 이는, 타깃 오브젝트를 별도의 물리적 "레이어"로 이동시키고 해당 레이어에 대해서만 광선캐스트를 수행함으로써 실행될 수 있다. 여기서의 계획은, 소스 및 타깃 오브젝트의 상대적인 방향이 수정될 때, 이러한 상황의 모든 물리적 계산(예를 들어, 광선캐스트)이 다른 오브젝트를 무시한다는 것이다.
C. 타깃 오브젝트에 대한 스냅핑
타깃 오브젝트 상의 소스 오브젝트에 대한 바람직한 배치 포인트(즉, "스냅 위치")는 스피어 캐스트 동작(sphere casting operation)에 의해 결정될 수 있다. 예를 들어, 배치 포인트는 타깃 오브젝트를 계속 스쳐 지나가는 커서로부터, 광선캐스트를 따라 캐스트된 가장 작은 스피어로부터의 접촉 포인트로서 결정될 수 있다. 이를 달성하기 위해, 툴 프로세스는 타깃 오브젝트에 닿는 것이 보장된 최소 반경의 스피어 및 광선캐스트(반경이 0인 스피어)로 시작하여 스피어 반경의 2진 검색을 수행할 수 있다. 초기 광선캐스트가 타깃 오브젝트에 닿으면, 배치 프로세스가 종료될 수 있고, 그렇지 않으면, 프로세스는 타깃 오브젝트에 계속해서 닿는 가장 작은 스피어를 찾기 위해 2진 검색을 설정된 깊이까지 진행한다. 이 스피어 캐스트 접근법은 표면 재건(SR; surface reconstruction) 메쉬 및 복잡한 구조와 토폴로지(topology)를 갖는 오브젝트와 상호 작용할 때 특히 유용할 수 있다. SR 메쉬는 실세계 에지와 표면의 윤곽을 나타내는 공간 상의 3D 포인트의 집합(collection)이다. 이 검색의 효과는, 사용자의 뷰가 타깃 메쉬와 직접 교차하지 않는 경우에도 사용자가 타깃에 대해 홀딩된 부분을 계속 슬라이딩할 수 있게 허용하는 것이다.
일단 소스 오브젝트가 타깃 오브젝트 상에 적절히 배치되면, 사용자는 탭 제스처를 다시 수행하거나 명령(예를 들어, "해제(Release)")을 말함으로써 미리 결정된 입력을 입력하여 소스 오브젝트를 해제할 수 있다. 이러한 동작은, 소스 오브젝트가 선택한 배치 위치 및 방향으로 타깃 오브젝트에 접착되게 유도한다. 또한, 이는, (타깃 오브젝트의 선택 및 배치 동안 적어도 부분적으로 투명하게 만들 수 있는) 장면의 다른 오브젝트가 정상 수준의 불투명도(일반적으로 완전히 불투명)로 복귀하게 하여, 타깃 오브젝트를 표준 물리적 레이어로 다시 이동시키고, 툴 상태를 재설정한다.
III. 시각화 시스템의 예시
본원에 소개된 기술은 적어도 일 실시예에서, AR/VR 시각화 시스템에 가상 (예를 들어, 홀로그램) 오브젝트를 배치하기 위해 사용자를 보조하는 배치 툴을 제공하는 착용식 시각화 디바이스를 포함한다. 시각화 디바이스는 예를 들어 AR/VR 경험을 사용자에게 제공하기 위해 장착된 헤드셋, 안경 또는 고글일 수 있다. 도 1은 이 툴을 제공할 수 있는 AR/VR 헤드셋의 예시를 도시한다. 그러나 본원에 소개된 기술은 기본적으로 사용자가 3D 디스플레이 상에 3D 오브젝트를 배치할 수 있게 하는 모든 유형의 시각화 디바이스로 구현될 수 있다. 예시된 헤드셋(1)은 헤드셋(1)이 사용자의 헤드에 착탈 가능하게 장착될 수 있는 헤드 밴드(2)를 포함한다. 헤드셋(1)은 단순히 헤드 밴드(2)의 강성 및/또는 도 1에 도시되지 않은 고정 메커니즘에 의해 제자리에 유지될 수 있다. 헤드 밴드(2)에는 하나 이상의 투명 또는 반투명 AR/VR 디스플레이 디바이스(4)를 포함할 수 있는 하나 이상의 투명 또는 반투명 렌즈(3)가 부착되며, 각각은 한쪽 또는 양쪽 눈을 위해 사용자의 환경의 뷰에 이미지를 오버레이할 수 있다. AR/VR 디스플레이 디바이스(4)의 상세는 본원에 소개된 기술과 밀접한 관계가 있지 않고, 사용자의 환경의 실시간의 실세계 뷰에서 머신 생성 이미지를 오버레이할 수 있는 디스플레이 디바이스가 당업계에 공지되어 있으며, 그러한 성능을 가진 임의의 공지된 또는 편리한 메커니즘이 사용될 수 있다.
헤드셋(1)은 (예를 들어, 음성 명령을 인식하는데 사용하기 위해) 사용자로부터의 음성을 입력하기 위한 마이크(5), 사용자에게 사운드를 출력하는 하나 이상의 오디오 스피커(6), 실세계 공간에서 사용자의 헤드 위치 및 방향을 추적하는데 사용하기 위한 하나 이상의 눈 추적 카메라(7), 눈 추적 카메라(들)(7)에 필요한 하나 이상의 조명 소스(8), 근접한 표면까지의 거리를 검출하고 측정하는데 사용하기 위한 하나 이상의 깊이 카메라(9), 사용자의 환경의 표준 비디오를 캡처하고 및/또는 그 환경에서 사용자의 위치를 결정하는데 사용하기 위한 하나 이상의 외향 조준(outward-aimed) 가시 스펙트럼 카메라(10), 및 전술한 요소들 중 적어도 일부를 제어하고 관련 데이터 프로세싱 기능을 수행하는 회로(11)를 더 포함한다. 회로(11)는 예를 들어, 하나 이상의 프로세서 및 하나 이상의 메모리를 포함할 수 있다. 또한, 다른 실시예에서 전술된 컴포넌트는 헤드셋(1) 상의 다른 위치에 위치할 수 있음을 알아야 한다. 또한, 일부 실시예는 전술한 컴포넌트 중 일부를 생략할 수 있고 및/또는 전술하지 않은 부가 컴포넌트를 포함할 수 있다.
도 2는 본원에 소개된 기술의 일부 실시예에 따른 AR/VR 헤드셋(20)의 특정 컴포넌트의 상위 레벨 블록도이다. 도 2의 헤드셋(20) 및 컴포넌트는 도 2의 헤드셋(1)을 대표할 수 있다. 도 2에서, 헤드셋(20)의 기능적 컴포넌트는 각각 인터커넥트(29)에 의해 (직접적으로 또는 간접적으로) 모두 함께 결합되는, 프로세서(21), 메모리(22), 투명 또는 반투명 AR/VR 디스플레이 디바이스(23), 오디오 스피커(24), 깊이 카메라(25), 눈 추적 카메라(26), 마이크(27) 및 통신 디바이스(28) 중 하나 이상의 예시를 포함한다. 인터커넥트(29)는 하나 이상의 도전성 트레이스, 버스, 포인트-투-포인트 접속부, 제어기, 어댑터, 무선 링크 및/또는 다른 종래의 접속 디바이스 및/또는 매체일 수 있거나 이들을 포함할 수 있으며, 이들 중 적어도 일부는 서로 독립적으로 동작할 수 있다.
프로세서(들)(21)는 개별적으로 및/또는 집합적으로 헤드셋(20)의 전체 동작을 제어하고 다양한 데이터 프로세싱 기능을 수행한다. 또한, 프로세서(들)(21)는 전술한 오브젝트 배치 툴을 생성 및 디스플레이하기 위한 연산 및 데이터 프로세싱 기능 중 적어도 일부를 제공할 수 있다. 각각의 프로세서(21)는 예를 들어, 하나 이상의 범용 프로그래머블 마이크로프로세서, 디지털 신호 프로세서(DSP), 모바일 애플리케이션 프로세서, 마이크로컨트롤러, 주문형 집적 회로(ASIC), 프로그래머블 게이트 어레이(PGA) 등, 또는 이러한 디바이스들의 조합일 수 있거나 또는 이들을 포함할 수 있다.
본원에 소개된 기술의 양태들을 실행하도록 프로세서(들)(31)를 구성하는 데이터 및 명령어(코드)(30)가 하나 이상의 메모리들(22)에 저장될 수 있다. 각각의 메모리(22)는 랜덤 액세스 메모리(RAM)의 형태일 수 있는 하나 이상의 물리적 저장 디바이스, (소거 가능하고 및 프로그램 가능할 수 있는) 판독 전용 메모리(ROM), 플래시 메모리, 소형 하드 디스크 드라이브, 또는 다른 적절한 유형의 저장 디바이스 또는 이러한 디바이스의 조합일 수 있거나 이들을 포함할 수 있다.
하나 이상의 통신 디바이스(28)는 헤드셋(20)이 개인용 컴퓨터 또는 게임 콘솔과 같은 별도의 외부 프로세싱 시스템으로부터 데이터 및/또는 명령을 수신하게 하고 이들로 데이터 및/또는 명령을 송신할 수 있게 한다. 각각의 통신 디바이스(28)는 예컨대 범용 직렬 버스(USB) 어댑터, Wi-Fi 송수신기, 블루투스 또는 블루투스 로우 에너지(BLE) 송수신기, 이더넷 어댑터, 케이블 모뎀, DSL 모뎀, 셀룰러 송수신기(예를 들어, 3G, LTE/4G 또는 5G), 기저 대역 프로세서 등, 또는 이들의 조합일 수 있거나 이들을 포함할 수 있다.
각각의 깊이 카메라(25)는 예를 들어 근처의 오브젝트까지의 거리를 결정하기 위해 TOF(time-of-flight) 원리를 적용할 수 있다. 깊이 카메라(25)에 의해 획득된 거리 정보는 사용자의 환경에서 표면의 3D 메쉬 모델을 구성하기 위해 (예를 들어, 프로세서(들)(21)에 의해) 사용된다. 각각의 눈 추적 카메라(26)는 예를 들어, 도 1의 조명 소스(7) 등의, 헤드셋 상의 하나 이상의 근적외선 소스(near-IR source)들에 의해 방출된 근적외선 광의 정반사에 기초하여 동공 및/또는 각막으로부터의 시선 방향을 검출하는 근적외선 카메라일 수 있다. 이러한 반사의 검출을 가능하게 하기 위해, 헤드셋의 렌즈의 내부 표면(예를 들어, 도 1의 렌즈(3))은, IR 광을 반사하지만 가시 광선을 투과하는 물질로 코팅될 수 있으며, 이러한 물질은 당업계에 공지되어 있다. 이러한 접근법은, IR 소스로부터의 조명이 렌즈의 내부 표면에서 사용자의 눈으로 반사되어 (아마도 렌즈의 내부 표면을 다시 경유하여) 눈 추적 카메라로 다시 반사되는 것을 허용한다.
전술된 컴포넌트들 중 임의의 것 또는 모두는 전술된 기능적 관점에서 완전하게 자체 포함될 수 있음을 알아야 하며, 그러나, 일부 실시예에서, 하나 이상의 프로세서(21)는 다른 컴포넌트와 관련된 프로세싱 기능 중 적어도 일부를 제공한다. 예를 들어, 깊이 카메라(25)와 관련된 깊이 검출을 위한 데이터 프로세싱 중 적어도 일부는 프로세서(들)(21)에 의해 수행될 수 있다. 유사하게, 시선 추적 카메라(26)와 관련된 시선 추적을 위한 데이터 프로세싱 중 적어도 일부는 프로세서(들)(21)에 의해 수행될 수 있다. 마찬가지로, AR/VR 디스플레이(23)를 지원하는 이미지 프로세싱 중 적어도 일부는 프로세서(들)(21) 등에 의해 수행될 수 있다.
IV. 툴 동작의 예시
이제 AR/VR 헤드셋이 어떻게 오브젝트 배치 툴을 제공할 수 있는지의 예시가 도 3a 내지 도 3k를 참조하여 설명될 것이다. 도 3a 내지 도 3k는 AR/VR 헤드셋을 통한 (예를 들어, 도 1의 렌즈(3) 및 디스플레이 디바이스(4)를 통한) 사용자의 뷰의 다양한 예시를 도시한다. 특히, 도 3a는 헤드셋을 착용하면서 가정의 방에 서 있는 동안 헤드셋의 사용자가 가질 수 있는 뷰의 중심부를 도시한다(주변부 시야가 페이지 크기 제한 때문에 도면에서 잘림). 헤드셋의 디스플레이 영역을 통해, 사용자는 커피 테이블(33) 주위에 배치된 소파(31) 및 의자(32)와 같은 다양한 실세계 오브젝트를 볼 수 있다. 헤드셋은 또한 실세계 뷰 상에 오버레이된 오브젝트(36A, 36B, 36C, 36D, 및 36E)와 같은 다양한 홀로그램 오브젝트를 디스플레이할 수 있다. 헤드셋은 또한 사용자가 헤드셋의 다양한 기능을 사용할 수 있도록 하기 위해, 사용자의 시야에 하나 이상의 홀로그램 아이콘(35) 또는 다른 사용자 인터페이스 요소를 디스플레이할 수 있다. 예를 들어, 사용자 인터페이스 요소 중 하나는 마그넷 툴의 동작을 선택/개시하기 위한 아이콘(34)(또는 다른 등가 요소)일 수 있다.
헤드셋은 동작 동안에, 사용자의 부근(예를 들어, 수 미터 이내)에 있는 모든 표면의 3D 메쉬 모델을 구성하도록 또는 사용자로부터(즉, 헤드셋으로부터)의 거리를 포함하여 사용자의 시야 내의 적어도 모든 가까운 표면의 3D 메쉬 모델을 구성하도록 깊이 카메라(들)를 사용한다. 깊이 검출(예를 들어, TOF(time-of-flight))을 사용함으로써 가까운 표면의 3D 메쉬 모델을 생성하는 기술은 당업계에 공지되어 있어 본원에서 설명될 필요는 없다. 따라서, 도 3a의 예시에서 3D 메쉬 모델은 소파(31), 의자(32) 및 커피 테이블(33)의 적어도 모든 가시 표면뿐만 아니라 방의 벽, 바닥 및 천장, 창 및 잠재적으로 더 작은 특징부로서의 커튼, 벽에 부착된 아트 워크(미도시) 등을 포함할 수 있다. 3D 메쉬 모델은 헤드셋 상의 메모리에 저장될 수 있다. 시각적 추적 시스템(예를 들어, 카메라(10))으로부터의 3D 메쉬 모델 및 이미지 데이터의 사용에 의해, 헤드셋 내의 회로(예를 들어, 프로세서(들)(21))는 언제든지 방 내의 사용자의 정확한 위치를 결정할 수 있다. 3D 메쉬 모델은 예컨대 초당 수회로 빈번하게 자동 업데이트될 수 있다.
헤드셋을 사용하고, 손 제스처, 음성 명령 및/또는 제어된 시선의 사용을 통해, 사용자는 오브젝트(36A, 36B, 36C, 36D 및 36E)와 같은 다양한 3D 홀로그램(AR) 오브젝트를 생성하고 조작할 수 있다. 도시된 바와 같이, 이들 오브젝트는 실세계의 사용자 뷰에 오버레이된다. 실제 구현예에서, 사용자는 도시된 것보다 상당히 더 복잡한 홀로그램 오브젝트를 생성하고 조작할 수 있다.
이제 헤드셋의 사용자가 오브젝트(36A)를 이동시켜 오브젝트(36B)의 표면에 부착하길 원한다고 가정한다. 따라서, 사용자는 마그넷 툴을 그렇게 하도록 활성화할 수 있다. 예를 들어, 사용자는 마그넷 아이콘(35)을 포인팅하고 탭하기 위해 손 제스처를 사용할 수 있거나 단순히 "마그넷"과 같은 명령을 말할 수 있다. 이 후, 도 3b에 도시된 바와 같이, 일부 실시예에서, 헤드셋(1)은 사용자의 시야의 하부의 중심으로, 사용자의 시야에서 플로팅(float)하는 것처럼 보여져 사용자의 시선의 방향으로 포인팅되는 홀로그램 마그넷 이미지(41)를 디스플레이할 수 있다.
다음으로, 사용자는 마그넷으로 픽업할 오브젝트(이 예시에서는 오브젝트(36A))를 선택한다. 전술한 바와 같이, 일부 실시예에서, 헤드셋은 사용자의 시선 벡터를 연속적으로 결정하기 위한 눈 추적 센서 및 회로를 포함한다(다른 실시예에서, 헤드셋은 사용자가 세계에서 향하고 있는 현재 "전방" 방향과 사용자의 두 눈 사이의 3D 공간에서 포인트를 결정하는 헤드 추적 기술과 같은 사용자의 시선 벡터를 결정하기 위한 다른 기술을 사용할 수 있다). (예를 들어, 사용자의 시점으로부터 캐스트된 광선에 의해 결정된 바와 같이) 사용자의 시선이 오브젝트(36A)와 같은 홀로그램 오브젝트를 향하게 되면, 그 오브젝트는 도 3b에 도시된 바운딩 박스(42)와 같은 투명한 바운딩 체적으로 하이라이트된다. (도시의 단순화를 위해, 오브젝트(36A) 및 오브젝트(36B) 외의 다른 오브젝트는 도 3b 내지 도 3j에 도시되지 않았음을 알아야 한다.) 또한, 사용자의 시점으로부터 캐스트된 광선이 현재 닿는 바운딩 박스(42)의 어느 표면 상에든 커서(이 예시에서는 원)(43)가 나타난다. 바운딩 박스(42) 및 커서(43)는 오브젝트(36A)가 마그넷 툴로 픽업되는 경우 그것이 어떻게 지향되는지에 대한 사용자의 시각화를 함께 돕는다. 도 3c에 도시된 바와 같이, 광선캐스트가 바운딩 박스(42)의 다른 표면에 닿도록 사용자의 시선 벡터가 변경되면, 커서(43)의 위치 및 외형은 그에 따라 그 표면 상에 나타나도록 변경될 것이다. 도 3c는 예를 들어, 사용자의 시선 벡터가 바운딩 박스(42)의 상부 표면에 닿을 때의 커서(43)의 외형을 도시한다. 마그넷 이미지(41)는 이 포인트 및 마그넷 툴을 사용하는 프로세스의 나머지 부분에 걸쳐 계속 디스플레이될 수 있지만 도시의 단순화를 위해 도 3c 내지 도 3k에는 도시하지 않았다.
도 3c에 도시된 바와 같이, 이제 사용자가 바운딩 박스(42)의 상부 표면을 타깃으로 하면서 오브젝트(36A)를 픽업하라는 명령을 입력한다고 가정한다. 사용자는 예를 들어, 미리 결정된 손 제스처를 만들거나 또는 "픽업"과 같은 미리 결정된 명령을 말함으로써 이를 수행할 수 있다. 그 입력이 헤드셋에 의해 검출될 때, ("소스 오브젝트" 또는 "홀딩된 오브젝트"가 되는) 오브젝트는 즉시 재지향되어 도 3d에 도시된 바와 같이, 이제, 바운딩 박스(42) 및 커서(43)의 타깃된 면이 사용자를 향하게 한다. 홀로그램 마그넷 이미지(41)(도 3b 참조)가 디스플레이되는 실시예에서, 바운딩 박스(42)의 타깃된 면은 프로세스의 이 포인트에서 마그넷 이미지에 부착되게 도시될 수 있다. 소스 오브젝트(36A), 커서(43) 및 (디스플레이된 경우) 마그넷 이미지(41)는 사용자의 시점 약간 아래에 위치하여 잠재적인 타깃 오브젝트를 불명료하게 하는 것을 방지할 수 있다. 소스 오브젝트(36A) 및 마그넷 이미지(41)는 사용자의 시선이 변함에 따라 (적어도 수평축을 따라) 사용자의 시선 벡터와 정렬되어 유지되고, 그에 따라 사용자에게, 소스 오브젝트가 그 시선을 갖는 사용자에 의해 홀딩되고 이동하고 있다는 인상을 준다.
일단 소스 오브젝트가 픽업되면, 사용자는 타깃 오브젝트의 식별로 진행한다. 타깃 오브젝트는, 예를 들어, 도 3e에 도시된 바와 같이, 광선(45)을 커서(43)의 위치로부터 사용자의 시선의 방향의 외향으로 캐스팅함으로써 결정될 수 있다(단, 광선(45)이 반드시 사용자가 볼 수 있어야 하는 것은 아니다). 일부 실시예에서, 커서(43)로부터 캐스트된 광선이 닿고 특정 기준을 만족하는 임의의 오브젝트가 현재의 타깃 오브젝트로서 선택된다. 현재 타깃화되지 않은 장면의 오브젝트는 적어도 부분적으로 투명하게 만들어질 수 있으므로, 타깃 오브젝트는 주변 오브젝트의 위치의 일부 시각적 표시를 유지하면서 더 명확해진다. 투명 또는 부분적으로 투명한 오브젝트의 전방 표면만 디스플레이하기 위해 렌더링 프로세스에 깊이 "사전 패스"가 포함될 수 있다.
전술한 바와 같이, 본원의 예시는 사용자가 (소스) 오브젝트(36A)를 오브젝트(36B)에 부착하기를 원한다고 가정한다. 따라서, 소스 오브젝트(36A)를 픽업한 후, 사용자는 도 3f에 도시된 바와 같이, 오브젝트(36B)를 타깃으로 하기 위해(즉, 광선캐스트가 오브젝트(36B)와 교차하도록 유도하기 위해) 그것을 응시한다. 커서로부터 캐스트된 광선이, 오브젝트(36B)와 같은, 선택 기준을 만족하는 잠재적인 타깃 오브젝트의 미리 결정된 거리/각도와 교차하거나 또는 그 내에 있는 경우, 도 3g에 도시된 바와 같이, 소스 오브젝트는 그 오브젝트의 가장 가까운 표면에 스냅핑하는 것으로 보여져, 해당 오브젝트가 현재의 타깃 오브젝트가 되게 될 것이다. 일부 실시예에서, 광선이 잠재적인 타깃 오브젝트에 직접 닿지 않더라도, 커서로부터 캐스트된 광선이 잠재적인 타깃 오브젝트의 특정 임계 거리 또는 각도 내에 있는 경우, 이러한 스냅 동작이 발생할 것이다. 이 동작의 목적상, 모든 오브젝트는 광선캐스트에 대해 불투명하게 처리된다, 즉, 캐스트광선은 그것이 닿는 제1 오브젝트에서 멈출 것이다.
타깃 오브젝트 상의 소스 오브젝트에 대한 바람직한 배치 포인트는 전술한 바와 같이 스피어 캐스트 동작에 의해 결정될 수 있다. 사용자는 단순하게 타깃 오브젝트 상의 다른 포인트로 그의 시선을 이동하거나 심지어 타깃 오브젝트에서 약간 떨어져서 현재의 타깃 오브젝트의 표면 (또는 표면들) 상에서 오브젝트를 이동시킬 수 있다. 이는 소스 오브젝트가 타깃 오브젝트의 표면이나 표면들을 가로질러 슬라이딩하는 것처럼 보이게 유도할 것이다. 예를 들어, 도 3h에 도시된 바와 같이, 사용자는 그의 시선을 하향으로 그리고 우측으로 이동시킴으로써 소스 오브젝트(36A)가 타깃 오브젝트(36B)의 표면을 따라 하향으로 그리고 우측으로 이동하게 유도할 수 있다. 유사하게, 도 3i에 도시된 바와 같이, 사용자는 그의 시선을 상향으로 그리고 좌측으로 이동시킴으로써 소스 오브젝트(36A)가 타깃 오브젝트(36B)의 표면을 따라 상향으로 그리고 좌측으로 이동하게 유도할 수 있다. 사용자가 일부 임계 거리(또는 각도)를 초과하여 및/또는 임계 시간을 초과하는 동안 그의 시선을 타깃 오브젝트로부터 멀리 향하게 되면, 타깃 오브젝트는 타깃으로 지정된 것을 중단할 수 있다.
이제 사용자는 도 3i에 도시된 상대 위치에서 오브젝트(36A)를 오브젝트(36B)에 부착하기를 원한다고 가정한다. 따라서, 오브젝트가 도시된 바와 같이 위치될 때, 사용자는 "해제"와 같은 음성 명령에 의해 또는 손을 이용한 다른 탭 제스처를 만드는 것과 같은 적절한 입력을 입력할 수 있다. 그 경우, 도 3j에 도시된 바와 같이, 소스 오브젝트(36A)는 현재 위치 및 방향으로 타깃 오브젝트(36B)에 접착되고, 소스 오브젝트(36A) 주위의 바운딩 박스가 사라진다. 또한, 타깃 오브젝트가 선택 및 배치되는 동안, 적어도 부분적으로 투명하게 될 수 있는 장면 내의 다른 오브젝트는 정상 수준의 불투명도(일반적으로 완전히 불투명)로 복귀하게 되어, 타깃 오브젝트(36B)가 표준 물리적 레이어로 다시 이동하게 되고, 마그넷 툴 상태가 재설정된다(예를 들어, 툴이 활성화 해제된다). 따라서, 본원의 예시에서, 도 3k에 도시된 바와 같이 타깃 오브젝트(36B) 상의 소스 오브젝트(36A)를 해제한 후에, 장면이 사용자에게 나타날 수 있다.
V. 프로세스 흐름의 예시
오브젝트 배치 툴의 동작은 이제 도 4 내지 도 6의 예시적인 프로세스를 참조하여 더 설명된다. 도 4는 오브젝트 배치 툴을 제공하도록, AR/VR 헤드셋(1)과 같은 시각화 디바이스에 의해 수행될 수 있는 전체 프로세스의 예시를 도시한다. 처음에, 단계(401)에서, 프로세스는 배치 툴을 선택하는 사용자 입력을 수신한다. 입력은 예를 들어, 제스처 또는 음성 명령, 또는 이들의 일부 조합일 수 있다. 이에 응답하여, 단계(402)에서, 프로세스는 전술한 바와 같이 마그넷의 이미지와 같은 배치 툴의 이미지를 디스플레이한다. 본원에 설명된 단계(402) 및 특정 다른 단계들은 일부 실시예에서는 생략될 수 있음을 알아야 한다. 그 후, 프로세스는 단계(403)에서 오브젝트가 사용자에 의해 이미 홀딩되고 있는지의 여부를 결정한다. 어떤 오브젝트도 현재 사용자에 의해 홀딩되어 있지 않으면, 프로세스는 소스 오브젝트 후보 식별 및 선택 프로세스(406)로 분기한 후, 프로세스는 타깃 오브젝트 식별 및 스냅 포인트 선택 프로세스(404)로 진행한다. 단계(403)에서 사용자에 의해 이미 홀딩된 오브젝트가 없으면, 프로세스는 단계(403)로부터 타깃 오브젝트 식별 및 스냅 포인트 선택 프로세스(404)로 바로 진행한다. 후술되는 바와 같이, 프로세스(404)에 후속하여, 스냅 프로세스(405)가 수행된다.
도 5는 소스 오브젝트 후보 식별 및 선택 프로세스(406)의 예시를 도시한다. 초기에, 프로세스는 단계(501)에서 사용자의 시선 벡터를 따라 사용자의 시점으로부터 광선을 외향으로 캐스트한다. 다음으로, 단계(502)에서, 프로세스는 광선이 홀로그램 오브젝트와 교차하는지 여부를 결정한다. 광선이 어떠한 홀로그램 오브젝트와도 교차하지 않는 경우, 프로세스는 단계(501)로 되돌아가서 거기에서부터 다시 반복된다.
프로세스는, (픽업될 수 있고 다른 오브젝트에 부착될 수 있는) 소스 오브젝트 후보들이 어떤 유형의 오브젝트인지를 결정하기 위해 임의의 다양한 기준, 예를 들어, 오브젝트의 크기 및/또는 형상(예를 들어, 상대적으로 큰 오브젝트는 제외될 수 있음), 사용자로부터의 오브젝트의 외견상 거리(예를 들어, 어떤 임계 거리보다 먼 오브젝트는 제외될 수 있음) 등, 또는 이들의 일부 조합을 사용할 수 있다. 따라서, 광선이 단계(502)에서 홀로그램 오브젝트와 교차하는 경우, 프로세스는 단계(503)로 진행하며, 단계(503)에서 프로세스는 소스 오브젝트 후보 기준을 만족시키는 광선에 의해 교차된 가장 가까운 홀로그램 오브젝트를 후보 소스 오브젝트로서 지정한다. 그 후, 프로세스는 후보 소스 오브젝트를 하이라이트하고 단계(504)에서 그 주위에 바운딩 박스(또는 다른 유형의 바운딩 체적)를 디스플레이한다. 다음으로, 단계(505)에서 프로세스는 사용자의 시점으로부터 사용자의 시선 벡터를 따라 외향으로 광선을 캐스트한다. 그 후, 프로세스는 단계(506)에서 커서에 의해 교차되는 바운딩 박스의 면 상에 커서를 위치시켜 지향시킨다. 다음으로, 프로세스는 단계(507)에서 사용자로부터 "픽업(pick up)" 명령(또는 그 등가물)이 수신되었는지 여부를 결정하는 체크를 한다. 그러한 명령이 수신되지 않았다면, 프로세스는 단계(501)로 되돌아가서 거기에서부터 다시 반복된다. "픽업" 명령(또는 그 등가물)이 수신되었다면, 프로세스는 단계(508)로 진행하며, 단계(508)에서 프로세스는 명령이 수신된 순간 바운딩 박스 상의 커서의 위치에 기초하여, 후보 소스 오브젝트에 대한 새로운 "그래빙(grabbing)" 위치 및 방향을 계산한다. 그 후, 프로세스는 후보 소스 오브젝트를 소스 오브젝트로 지정하고, (도 3d에 예시로서 도시된 바와 같이) 계산된 그래빙 위치에 따라 이를 재위치 및 재지향시키며, 선택적으로 소스 오브젝트를 툴의 이미지에 부착되게 디스플레이한다.
도 6은 타깃 오브젝트 식별 및 스냅 포인트 선택 프로세스(404)의 예시를 도시한다. 도시된 실시예에서, 본질적으로 동시에 발생하는 (즉, 도면은 정확한 타이밍 관계를 나타내는 것을 의도하지 않는다) 두 개의 서브프로세스가 도시된다. 제1 서브프로세스는 단계(601A) 및 단계(602A)를 포함하고, 제2 서브프로세스는 단계(601B), 단계(602B) 및 단계(603) 내지 단계(605)를 포함한다. 단계(601A)에서, 제1 서브프로세스는 사용자의 바로 전방에 있는 (예를 들어, 사용자 전방에서 약 1m의 외견상 거리에 있는) 커서 위치에서 (약간 하방으로 수직 오프셋한) 사용자의 시선과 정렬되게 지향된 소스 오브젝트 및 툴 이미지(예를 들어, 마그넷 이미지)를 계속해서 디스플레이한다. 다음으로, 단계(602A)에서, 제1 서브프로세스는 수정된 장면의 기하학적 구조(scene geometry) 디스플레이하여, 예를 들어, 소스 오브젝트 및 타깃 오브젝트 이외의 다른 모든 오브젝트를 투명하게 함으로써 시각적인 클러터(clutter)를 감소시킨다.
단계(601B)에서, 제2 서브프로세스는 커서 위치로부터 사용자의 시선 벡터를 따라 외향으로 광선을 캐스트한다. 광선은 적어도 타깃 오브젝트가 선택될 때까지 계속해서 캐스트된다. 그 후, 제2 서브프로세스는 광선이 임의의 홀로그램 오브젝트와 교차하는지 여부를 단계(602B)에서 결정한다. 광선이 임의의 홀로그램 오브젝트와 교차하지 않으면, 제2 서브프로세스는 단계(601B)로 되돌아가서 거기에서부터 다시 반복된다.
프로세스(404)는 어떤 오브젝트가 (즉, 그들에 부착된 다른 오브젝트들을 가질 수 있는) 툴 기능의 타깃 오브젝트일 수 있는지를 결정하기 위해 하기와 같은 임의의 다양한 기준을 사용할 수 있다; 오브젝트와 소스 오브젝트 사이의 크기의 유사성, 오브젝트와 소스 오브젝트 사이의 전체 형상의 유사성, 또는 오브젝트의 특정 표면과 소스 오브젝트의 특정 표면 사이의 형상의 유사성 등, 또는 이러한 기준의 일부 조합. 또한, 이러한 동일한 유형의 기준은 두 개 이상의 후보 타깃 오브젝트 중에서 현재 타깃 오브젝트를 선택하는데 사용될 수 있다.
따라서, 도 6의 예시적인 프로세스에서, 광선이 단계(602B)에서 오브젝트와 교차하는 경우, 제2 서브프로세스는 단계(603)로 진행하며, 단계(603)에서 타깃 오브젝트 후보 기준을 만족시키는 광선에 의해 교차된 가장 가까운 오브젝트를 타깃 오브젝트로서 지정한다. 다음으로, 단계(604)에서, 제2 서브프로세스는 타깃 오브젝트를 하이라이트한다.
표면 재건(SR)은 타깃 오브젝트를 선택하기 위한 특별한 경우로서 취급될 수 있다. SR은 메쉬를 사용하여 AR/VR 디스플레이 환경의 실세계 표면을 나타낸다. 전체 디스플레이 환경의 SR은 여러 메쉬로 구성될 수 있지만, 메쉬가 오버레이되는 부분(유사한 법선/포인트)에서는 메쉬가 연속될 수 있다. 따라서, 오버레이된 메쉬는 단일 메쉬로 처리될 수 있다. SR 메쉬가 배치 툴 동작의 작업에 의해 타깃화되는 경우, 시각적 클러터를 피하기 위해, 사용자에게, 전체 메쉬가 아니라, 커서 주위의 로컬 영역에서 SR 메쉬가 보이게 할 수 있다.
타깃 오브젝트를 하이라이트한 후에, 단계(605)에서 제2 서브프로세스는, 일반적으로 커서로부터 캐스트된 광선이 타깃 오브젝트와 교차하는 위치에서, 타깃 오브젝트의 표면에 슬라이딩 가능하게 부착된 소스 오브젝트를 디스플레이한다. 임의의 주어진 순간(즉, "스냅 포인트")에서 소스 오브젝트가 타깃 오브젝트 상에 위치하는 정확한 위치는 전술한 바와 같이 스피어 캐스트의 사용에 의해 결정될 수 있다.
일반적으로, 타깃 오브젝트에 가장 가까운 소스 오브젝트의 표면(커서가 위치되는 표면은 제외)을 타깃 오브젝트의 표면 상의 스냅 타깃 위치에 부착되게 한다. 이들 두 표면이 모두 평평한 경우, 표면은 단순히 함께 부착되어 동일 평면이 될 수 있다. 그러나, 표면 중 하나 또는 둘 모두가 곡면일 경우, 접촉 포인트(들)에서 그 법선 벡터가 동일 선형이 되도록 이들은 서로 부착될 수 있다.
단계(602A) 및 단계(605)에 이어서, 두 개의 동시적인 서브프로세스가 단계(606)에 병합되어, 프로세스(404)가 사용자로부터 해제 명령이 수신되었는지 여부를 결정한다. 해제 명령은 예를 들어 손을 이용한 탭 제스처 또는 음성 명령의 형태일 수 있다. 그러한 명령이 단계(606)에서 수신되지 않았다면, 프로세스는 단계(605)로 되돌아가서 거기에서부터 다시 반복된다. 해제 명령이 수신되면, 단계(607)에서, 프로세스는 접착 기능(Glue function)을 호출하여, 소스 오브젝트가 타깃 오브젝트에 부착되게 유도하고(사용자가 적절한 입력을 통해 그러한 의도를 표시하면 취소될 수 있음), 툴 이미지의 디스플레이를 종결하고, (예를 들어, 주변 오브젝트를 투명하게 렌더링하는) 시각적 클러터를 감소시키도록 제공될 수 있는 모든 장면의 기하학적 구조 수정을 종결한다.
V. 개선
전술한 기술을 개선하기 위해 다양한 기술이 적용될 수 있다. 이러한 기술 중 일부는 다음과 같다.
오브젝트 중심에서의 스냅핑 - 이 기술은 두 개의 오브젝트 면들이 함께 스냅핑될 때 가능해질 수 있다. 소스 오브젝트의 투영 중심이 잠재적인 타깃 오브젝트의 투영 중심에 가까워지면 소스 오브젝트가 점프하여 매칭한다. 이를 통해 사용자는 정렬된 오브젝트의 클러스터를 빠르게 생성할 수 있다.
커스텀(custom) 피벗/루트(root) 포인트를 이용한 스냅핑 - 오브젝트는 다른 오브젝트와 스냅핑하는 포인트를 제어하는 커스텀 피벗 또는 루트 위치를 지정할 수 있다. 예를 들어 공룡 홀로그램을 항상 똑바로 세워야 한다고 가정해볼 수 있다. 공룡의 발 아래에 커스텀 피벗/루트 포인트를 배치하면, 발 아래쪽이 항상 다른 오브젝트를 스냅하는데 사용되어, 공룡 홀로그램이 항상 똑바로 세워질 수 있다. 커스텀 피벗 포인트의 지정은, 컨텐츠 작성자가 지정할 수도 있고, 예를 들어, 심지어 "피닝(pinning)" 툴을 사용하여 사용자가 지정할 수도 있다.
커스텀 스냅 타깃을 이용한 스냅핑 - 자동으로 스냅핑될 때, 타깃 오브젝트는 하나 이상의 미리 결정된 스냅 타깃을 포함할 수 있다. 예를 들어, 공룡 홀로그램은 사용자가 공룡 입에 먹이 오브젝트를 쉽게 스냅핑하게 하기 위해, 그 입에 미리 결정된 스냅 타깃 위치 및 회전을 저장할 수 있다.
그룹화된 오브젝트의 스냅핑 - 오브젝트가 함께 그룹화("접착")되면, 질량 중심이 변경될 수 있다. 다른 오브젝트에 스냅핑할 때, 오브젝트 중심은 그룹의 질량 중심을 사용하도록 조절될 수 있다. 반대로, 스냅핑될 때, 개별 오브젝트 대 오브젝트 테스트는 그룹의 중심, 그 자체의 중심 또는 바람직하게는 둘 모두를 사용할 수 있다. 둘 모두를 지원함으로써 사용자는 타깃 오브젝트 그룹의 중심 또는 오브젝트 그룹 내의 특정 타깃 오브젝트에 대해 소스 오브젝트를 용이하게 정렬할 수 있다.
세계 그리드(world grid)에 대한 스냅핑 - 오브젝트 위치 또는 에지는 세계의 고정된 크기의 그리드에 스냅핑될 수 있다. 그리드는 (예를 들어, 와이어 프레임에서) 보이거나 보이지 않을 수 있다. 보이지 않는 경우, 그리드의 스냅 포인트들 사이에서 이동한 오브젝트가 점프하기 때문에, 사용자는 그리드를 인식할 수 있다. 고정된 그리드 크기는 배치를 미세 조정할 수 없기 때문에, 사용자에게 제한된다. 따라서 그리드 기술의 일부 확장은, 1) 이동한 오브젝트 크기를 기초로 한 적응형 그리드의 크기, 2) 세계의 가까운 오브젝트를 기초로 한 그리드 크기의 변형, 3) (시각적 클러터를 피하도록) 이동한 오브젝트에 인접한 와이어 프레임만을 나타내는 부분적으로 보이는 그리드, 4) (보다 정확한 오브젝트 대 오브젝트 정렬을 위해) 그리드가 초기 대략적인 배치를 보조하도록 활성화되고, 소스 오브젝트가 다른 오브젝트에 가까워지면 자동으로 비활성화되는 것을 포함한다.
중력 웰(Gravity Well) - 이 기술은 본질적으로 어떤 것에 대한 사용자의 뷰가 무엇인가에서 안정화될 때마다 "세계"에서 포인트를 생성한다. 사용자의 뷰가 안정화되면 사용자가 보고 있는 제1 오브젝트 상의 포인트가 부착되어, 사용자의 뷰 커서가 다시 통과할 때마다 커서가 느려져 오브젝트 배치가 더 쉬워지게 된다.
헤드 안정화 - 이는, (예를 들어, 추적 카메라, 자이로스코프 등에 의해 측정된) 사용자의 헤드 회전에 기초하는 전술한 중력 웰 기술의 변형이다. 이는 사용자의 헤드 회전이 상당히 느려지는 경우, 헤드 방향에 기초한 커서를 안정화하는 것과 유사한 효과를 나타낸다.
동작을 취하기 전에 시간 경과에 따른 안정성을 요구함 - 이 기술은 사용자가 그 결정을 로킹(locking)하기 전에 시간 경과에 따라 특정 결정의 증거를 보여줄 것을 요구한다. 예를 들어, 두 개의 오브젝트의 중심을 응시하는 사용자가 시각적으로 두 개의 오브젝트 사이를 빠르게 전환하는 것을 방지할 수 있다. 이는 사용자에게, 새로운 오브젝트가 하이라이트되거나, 타깃화되거나 또는 다르게 포커스를 수용할 수 있게 되기 전에, 적어도 미리 결정된 시간(예를 들어, 0.5초) 동안 오브젝트에 초점을 유지하도록 요구함으로써 수행될 수 있다.
스냅핑 이후에 사용자가 "중력 이탈"하도록 요구함 - 사용자가 두 개의 오브젝트를 함께 스냅핑하면, 시각화 시스템은 그들이 스냅을 이탈하는 것을 약간 더 어렵게 할 수 있다. 이는, 예를 들어 각도 테스트(예를 들어, 사용자가 자신의 시선 벡터로부터 5도보다 큰 각도로 보았는지 여부) 또는 보이지 않는 링에 대해 오브젝트의 표면으로 투영된 사용자의 뷰를 평가함으로써 수행될 수 있다.
과거의 스냅 동작에 기초하여 사용자의 의도를 예측함 - 예를 들어, 반복적으로 스냅하고 이후 중력 이탈을 즉시 시도하는 사용자는 아마도 스냅핑 동작을 피하려는 시도를 하고 있을 것이다. 시스템에서 이러한 동작이 관찰되면, 시스템이 일시적으로 스냅핑 반경을 줄이거나 또는 메커니즘을 비활성화할 수 있다.
전술한 머신 구현 동작은, 소프트웨어 및/또는 펌웨어에 의해 프로그램되거나/구성된 프로그래머블 회로에 의해, 또는 전체가 특수 목적 회로에 의해 또는 이러한 형태의 조합에 의해 구현될 수 있다. (있는 경우) 이러한 특수 목적 회로는 예를 들어, 하나 이상의 주문형 집적 회로(ASIC), 프로그래머블 로직 디바이스(PLD), 필드 프로그래머블 게이트 어레이(FPGA), 단일 칩 시스템(SOC) 등의 형태일 수 있다.
본원에 소개된 기술을 구현하기 위한 소프트웨어 또는 펌웨어는, 머신 판독 가능한 저장 매체에 저장될 수 있으며, 하나 이상의 범용 또는 특수 목적 프로그래머블 마이크로프로세서에 의해 실행될 수 있다. 본원에 사용되는 용어인 "머신 판독 가능한 매체"는 머신(머신은, 예를 들어 컴퓨터, 네트워크 디바이스, 셀룰러 폰, 개인 휴대 정보 단말기(PDA), 제조 툴, 하나 이상의 프로세서가 갖춰진 임의의 디바이스 등일 수 있다)에 의해 액세스 가능한 형태로 정보를 저장할 수 있는 임의의 메커니즘을 포함한다. 예를 들어, 머신 액세스 가능한 매체는, 기록 가능한/기록 불가능한 매체(예를 들어, 판독 전용 메모리(ROM), 랜덤 액세스 메모리(RAM), 자기 디스크 저장 매체, 광학 저장 매체, 플래시 메모리 디바이스 등) 등을 포함할 수 있다.
본원에 사용된 용어 "로직"은, a) 하나 이상의 주문형 집적 회로(ASIC), 프로그래머블 로직 디바이스(PLD), 필드 프로그래머블 게이트 어레이(FPGA) 등과 같은 특수 목적 하드 와이어드 회로, 또는 다른 유사한 디바이스(들); b) 하나 이상의 프로그램된 범용 마이크로프로세서, 디지털 신호 프로세서(DSP) 및/또는 마이크로컨트롤러, 시스템온칩 시스템(SOC) 등과 같은 소프트웨어 및/또는 펌웨어로 프로그램된 프로그래머블 회로 또는 다른 유사한 디바이스(들); 또는 c) a)와 b)에서 언급된 형태의 조합을 의미한다.
VI. 특정 실시예의 예시
본원에 소개된 기술의 특정 실시예는 다음의 번호가 매겨진 예시들로 요약된다:
1. 시각화 디바이스를 동작시키는 방법으로서, 상기 방법은 시각화 디바이스의 디스플레이 영역 상에서, 3D 물리적 공간의 실세계 뷰 상에 오버레이된 복수의 가상 3차원(3D) 오브젝트들을 시각화 디바이스의 사용자에게 디스플레이하는 단계와, 사용자로부터의 제1 입력에 응답하여 상기 복수의 가상 3D 오브젝트 중 제1 오브젝트를, 상기 3D 물리적 공간을 통해 상기 제1 오브젝트가 이동하는 것처럼 보이도록 상기 디스플레이 영역 상에 디스플레이하는 것을 포함하는 홀딩 기능을 실행하는 단계와, 상기 복수의 가상 3D 오브젝트 중 제2 오브젝트를 검출된 사용자의 시선에 기초하는 스냅 기능을 위한 타깃 오브젝트로서 식별하는 단계 - 상기 스냅 기능은 상기 제1 오브젝트를 상기 타깃 오브젝트의 표면 상의 위치로 이동시키도록 유도하는 동작임 - 를 포함한다.
2. 상기 예시 1에서 언급된 방법에 있어서, 상기 제1 입력은 상기 사용자의 시선 방향의 변화를 포함한다.
3. 상기 예시 1 또는 예시 2에서 언급된 방법에 있어서, 상기 타깃 오브젝트를 식별하는 단계는 또한, 상기 제1 오브젝트와 후보 타깃 오브젝트 사이의 크기의 유사성, 상기 제1 오브젝트와 후보 타깃 오브젝트 사이의 전체 형상의 유사성, 또는 제1 오브젝트의 표면과 후보 타깃 오브젝트의 표면 사이의 형상의 유사성 중 적어도 하나에 기초한다.
4. 상기 예시 1 내지 3 예시 중 어느 하나에서 언급된 방법은, 사용자의 제스처, 사용자의 시선 또는 사용자의 발화 중 적어도 하나에 기초하여, 상기 사용자가 스냅 동작을 트리거하기를 원한다는 것을 검출하는 단계와, 상기 제1 오브젝트가 상기 타깃 오브젝트의 표면 상의 타깃 위치로 이동하는 것처럼 보이도록, 상기 시각화 디바이스의 디스플레이 영역 상에 상기 제1 오브젝트를 디스플레이함으로써 상기 스냅 동작을 실행하는 단계를 더 포함한다.
5. 상기 예시 1 내지 예시 4 중 어느 하나에서 언급된 방법은, 스피어 캐스트 동작을 수행함으로써, 상기 스냅 기능에 대해 상기 타깃 오브젝트 상의 타깃 위치를 결정하는 단계를 더 포함한다.
6. 상기 예시 1 내지 예시 5 중 어느 하나에서 언급된 방법은, 타깃 오브젝트를 식별하는 단계에 대응하여, 상기 사용자의 시선 방향의 변화에 응답해, 상기 제1 오브젝트가 상기 타깃 오브젝트의 표면을 따라 슬라이딩하는 것처럼 보이게 유도하는 단계를 더 포함한다.
7. 상기 예시 1 내지 예시 6 중 어느 하나에서 언급된 방법은, 상기 제1 오브젝트가 상기 사용자의 시선 방향의 변화에 응답하여 상기 타깃 오브젝트의 복수의 인접한 비평행 표면을 가로질러 슬라이딩하는 것처럼 보이게 유도하는 단계를 더 포함한다.
8. 상기 예시 1 내지 예시 7 중 어느 하나에서 언급된 방법은, 상기 홀딩 기능을 실행하는 단계 전에, 상기 사용자의 시선에 기초하여, 상기 제1 오브젝트를 상기 홀딩 기능을 위한 후보 오브젝트로서 식별하는 단계와, 상기 제1 오브젝트가 상기 홀딩 동작을 위한 후보 오브젝트로서 식별되었다는 표시를 상기 사용자에게 디스플레이하는 단계를 더 포함한다.
9. 상기 예시 1 내지 예시 8 중 어느 하나에서 언급된 방법은, 상기 제1 오브젝트를 둘러싸며 복수의 투명 또는 반투명 평면 표면을 갖는, 상기 제1 오브젝트의 바운딩 체적(bounding volume)을 사용자에게 디스플레이하는 단계와, 상기 사용자의 시선 방향에 기초하는 위치에서, 상기 바운딩 체적의 표면 상의 커서를 사용자에게 디스플레이하는 단계 - 상기 커서의 위치는 상기 홀딩 기능을 위한 잠재적인 픽업 포인트를 나타냄 - 와, 상기 사용자의 시선 방향의 변화에 응답하여, 상기 커서가, 바운딩 체적의 두 개 이상의 표면을 가로질러 이동하는 것처럼 사용자에게 보여지도록 유도하는 단계와, 상기 홀딩 기능을 트리거하기 위한 사용자 입력에 응답하여, 상기 홀딩 기능을 개시하고, 상기 바운딩 체적 상의 커서의 현재 위치에 따라 제1 오브젝트를 재지향시키는 단계를 더 포함한다.
10. 시각화 디바이스는, 디스플레이 영역을 갖는 디스플레이 디바이스와, 사용자의 시선 방향을 추적하는 눈 추적 서브시스템과, 상기 디스플레이 디바이스 및 상기 눈 추적 서브시스템에 동작 가능하게 결합되는 프로세서 회로 - 상기 프로세서 회로는, 상기 디바이스에 대한 시각화에 의해, 상기 디스플레이 영역이, 3D 물리적 공간의 실세계 뷰를 갖는 복수의 가상 3차원(3D) 오브젝트를 포함하는 증강 현실 환경을 사용자에게 디스플레이하게 유도하도록, 상기 눈 추적 서브시스템으로부터 상기 사용자의 시선 방향을 나타내는 입력을 수신하도록, 상기 사용자의 시선 방향에 기초하여, 상기 가상 3D 오브젝트들 중 하나를, 스냅 기능을 위한 타깃 오브젝트로서 선택하고자 하는 사용자의 요구(desire)를 결정하도록 구성되고, 여기서 상기 스냅 기능은 홀딩된 오브젝트를 타깃 오브젝트의 표면 상의 위치로 이동시키도록 유도하는 동작임 - 를 포함한다.
11. 상기 예시 10에서 언급된 시각화 디바이스에 있어서, 상기 가상 3D 오브젝트들 중 하나를 스냅 기능을 위해 타깃화하고자 하는 사용자의 요구를 결정하는 것은 또한, 홀딩된 오브젝트와 후보 타깃 오브젝트 사이의 크기의 유사성, 홀딩된 오브젝트와 후보 타깃 오브젝트 사이의 전체 형상의 유사성, 또는 홀딩된 오브젝트의 표면과 후보 타깃 오브젝트의 표면 사이의 형상의 유사성 중 적어도 하나에 기초한다.
12. 상기 예시 10 또는 예시 11에서 언급된 시각화 디바이스에 있어서, 상기 프로세서 회로는 또한, 사용자로부터의 제1 입력에 응답하여, 상기 홀딩된 오브젝트가 상기 3D 물리적 공간을 통과해 이동하는 것처럼 사용자에게 보여지도록 상기 홀딩된 오브젝트를 디스플레이하는 것을 포함하는 홀딩 기능을 실행하도록 구성된다.
13. 상기 예시 10 내지 예시 12 중 어느 하나에서 언급된 시각화 디바이스에 있어서, 상기 제1 입력은 상기 사용자의 시선 방향의 변화를 포함한다.
14. 상기 예시 10 내지 예시 13 중 어느 하나에서 언급된 시각화 디바이스에 있어서, 상기 프로세서 회로는 또한, 사용자의 제스처, 사용자의 시선 또는 사용자의 발화 중 적어도 하나에 기초하여, 상기 사용자가 상기 스냅 동작을 트리거하기를 원한다는 것을 검출하도록 구성된다.
15. 상기 예시 10 내지 예시 14 중 어느 하나에서 언급된 시각화 디바이스에 있어서, 상기 프로세서 회로는 또한, 스피어 캐스트 동작을 수행함으로써, 상기 스냅 기능에 대해 상기 타깃 오브젝트 상의 타깃 위치를 결정하도록 구성된다.
16. 상기 예시 10 내지 예시 15 중 어느 하나에서 언급된 시각화 디바이스에 있어서, 상기 프로세서 회로는 또한, 타깃 오브젝트를 식별하는 것에 대응하여, 사용자의 시선 방향의 변화에 응답해, 상기 홀딩된 오브젝트를 상기 타깃 오브젝트의 표면을 따라 슬라이딩하는 것처럼 보이게 유도하도록 구성된다.
17. 상기 예시 10 내지 예시 16 중 어느 하나에서 언급된 시각화 디바이스에 있어서, 상기 프로세서 회로는 또한, 상기 홀딩 기능을 실행하기 이전에, 상기 사용자의 시선에 기초하여, 상기 복수의 가상 3D 오브젝트 중 제1 오브젝트를 상기 홀딩 기능을 위한 후보 오브젝트로서 식별하고, 상기 디스플레이 디바이스가, 복수의 투명 또는 반투명 표면을 갖는, 상기 후보 오브젝트의 바운딩 체적을 사용자에게 디스플레이하도록 유도하게 하고, 상기 디스플레이 디바이스가, 상기 사용자의 시선 방향에 기초하는 위치에서, 상기 바운딩 체적의 표면 상의 커서를 사용자에게 디스플레이하도록 유도하게 하고 - 상기 커서의 위치는 상기 홀딩 기능을 위한 후보 오브젝트 상의 잠재적인 픽업 포인트를 나타냄 - , 상기 사용자의 시선 방향의 변화에 응답하여, 상기 커서가, 바운딩 체적의 두 개 이상의 표면을 가로질러 이동하는 것처럼 사용자에게 보여지도록 유도하고, 상기 홀딩 기능을 트리거하기 위한 사용자 입력에 응답하여, 상기 홀딩 기능을 개시하고, 후보 오브젝트가 홀딩된 오브젝트가 되도록, 상기 바운딩 체적 상의 커서의 현재 위치에 따라 후보 오브젝트를 재지향시키도록 구성된다.
18. 헤드 장착 가능한 시각화 디바이스는, 사용자의 헤드에 시각화 디바이스를 장착하기 위한 헤드 피팅부와, 헤드 피팅부에 결합되고 디스플레이 영역을 갖는 디스플레이 디바이스와, 사용자의 시선 방향을 추적하는 눈 추적 서브시스템과, 상기 디스플레이 디바이스 및 상기 눈 추적 서브시스템에 동작 가능하게 결합되는 프로세서를 포함하고, 상기 프로세서는 상기 디바이스에 대한 시각화에 의해, 디스플레이 디바이스가, 디스플레이 영역 상에서, 3D 물리적 공간의 실세계 실시간 뷰 상에 복수의 가상 3차원(3D) 오브젝트들을 겹치도록 유도하고, 사용자로부터의 제1 입력에 응답하여 상기 복수의 가상 3D 오브젝트 중 제1 오브젝트를, 상기 제1 오브젝트가 상기 3D 물리적 공간을 통과해 이동하는 것처럼 사용자에게 보여지도록 상기 디스플레이 영역 상에 디스플레이하는 것을 포함하는 홀딩 기능을 실행하고 - 상기 제1 입력은 사용자의 시선 방향의 변화를 포함함 -, 검출된 사용자의 시선에 기초하여, 상기 복수의 가상 3D 오브젝트 중 제2 오브젝트를 스냅 기능을 위한 타깃 오브젝트로서 식별하도록 구성되며, 상기 스냅 기능은 상기 제1 오브젝트가 상기 타깃 오브젝트의 표면 상의 위치로 이동하도록 유도하는 동작이다.
19. 상기 예시 18에서 언급된 헤드 장착 가능한 시각화 디바이스에 있어서서, 상기 타깃 오브젝트를 식별하는 것은 또한, 상기 제1 오브젝트와 후보 타깃 오브젝트 사이의 크기의 유사성, 상기 제1 오브젝트와 후보 타깃 오브젝트 사이의 전체 형상의 유사성, 또는 제1 오브젝트의 표면과 후보 타깃 오브젝트의 표면 사이의 형상의 유사성 중 적어도 하나에 기초한다.
20. 상기 예시 18 또는 예시 19에서 언급된 헤드 장착 가능한 시각화 디바이스에 있어서, 상기 프로세서는 또한, 상기 홀딩 기능을 실행하기 이전에, 상기 사용자의 시선에 기초하여, 상기 복수의 가상 3D 오브젝트 중 제1 오브젝트를 상기 홀딩 기능을 위한 후보 오브젝트로서 식별하고, 상기 디스플레이 디바이스가, 복수의 투명 또는 반투명 표면을 갖는, 상기 제1 오브젝트의 바운딩 체적을 사용자에게 디스플레이하도록 유도하고, 상기 디스플레이 디바이스가, 상기 사용자의 시선 방향에 기초하는 위치에서, 상기 바운딩 체적의 표면 상의 커서를 사용자에게 디스플레이하도록 유도하고 - 상기 커서의 위치는 상기 홀딩 기능을 위한 제1 오브젝트 상의 잠재적인 픽업 포인트를 나타냄 - , 상기 사용자의 시선 방향의 변화에 응답하여, 상기 커서가, 바운딩 체적의 두 개 이상의 표면을 가로질러 이동하는 것처럼 사용자에게 보여지도록 유도하고, 상기 홀딩 기능을 트리거하기 위한 사용자 입력에 응답하여, 상기 홀딩 기능을 개시하고, 상기 바운딩 체적 상의 커서의 현재 위치에 따라 제1 오브젝트를 재지향시키도록 구성된다.
21. 시각화 디바이스는, 시각화 디바이스의 디스플레이 영역 상에서, 3D 물리적 공간의 실세계 뷰 상에 오버레이된 복수의 가상 3차원(3D) 오브젝트들을 시각화 디바이스의 사용자에게 디스플레이하는 수단과, 사용자로부터의 제1 입력에 응답하여 상기 3D 물리적 공간을 통해 상기 제1 오브젝트가 이동하는 것처럼 보이도록 상기 디스플레이 영역 상에 상기 복수의 가상 3D 오브젝트 중 제1 오브젝트를 디스플레이하는 것을 포함하는 홀딩 기능을 실행하는 수단과, 상기 복수의 가상 3D 오브젝트 중 제2 오브젝트를 검출된 사용자의 시선에 기초하는 스냅 기능을 위한 타깃 오브젝트로서 식별하는 수단 - 상기 스냅 기능은 상기 제1 오브젝트를 상기 타깃 오브젝트의 표면 상의 위치로 이동시키는 동작임 - 을 포함한다.
22. 상기 예시 21에서 언급된 시각화 디바이스에 있어서, 상기 제1 입력은 상기 사용자의 시선 방향의 변화를 포함한다.
23. 상기 예시 21 또는 예시 22에서 언급된 시각화 디바이스에 있어서, 상기 타깃 오브젝트를 식별하는 것은 또한, 상기 제1 오브젝트와 후보 타깃 오브젝트 사이의 크기의 유사성, 상기 제1 오브젝트와 후보 타깃 오브젝트 사이의 전체 형상의 유사성, 또는 제1 오브젝트의 표면과 후보 타깃 오브젝트의 표면 사이의 형상의 유사성 중 적어도 하나에 기초한다.
24. 상기 예시 21 내지 예시 23 중 어느 하나에서 언급된 시각화 디바이스는, 사용자의 제스처, 사용자의 시선 또는 사용자의 발화 중 적어도 하나에 기초하여, 상기 사용자가 스냅 동작을 트리거하기를 원한다는 것을 검출하는 수단과, 상기 제1 오브젝트가 상기 타깃 오브젝트의 표면 상의 타깃 위치로 이동하는 것처럼 보이도록, 상기 시각화 디바이스의 디스플레이 영역 상에 상기 제1 오브젝트를 디스플레이함으로써 상기 스냅 동작을 실행하는 수단을 더 포함한다.
25. 상기 예시 21 내지 예시 24 중 어느 하나에서 언급된 시각화 디바이스는, 스피어 캐스트 동작을 수행함으로써, 상기 스냅 기능에 대해 상기 타깃 오브젝트 상의 타깃 위치를 결정하는 수단을 더 포함한다.
26. 상기 예시 21 내지 예시 25 중 어느 하나에서 언급된 시각화 디바이스는, 타깃 오브젝트를 식별하는 것에 대응하여, 상기 사용자의 시선 방향의 변화에 응답해, 상기 제1 오브젝트가 상기 타깃 오브젝트의 표면을 따라 슬라이딩하는 것처럼 보이게 유도하는 수단을 더 포함한다.
27. 상기 예시 21 내지 예시 26 중 어느 하나에서 언급된 시각화 디바이스는, 상기 제1 오브젝트가 상기 사용자의 시선 방향의 변화에 응답하여 상기 타깃 오브젝트의 복수의 인접한 비평행 표면을 가로질러 슬라이딩하는 것처럼 보이게 유도하는 수단을 더 포함한다.
28. 상기 예시 21 내지 예시 27 중 어느 하나에서 언급된 시각화 디바이스는, 상기 홀딩 기능을 실행하는 단계 전에, 상기 사용자의 시선에 기초하여, 상기 제1 오브젝트를 상기 홀딩 기능을 위한 후보 오브젝트로서 식별하는 수단과, 상기 제1 오브젝트가 상기 홀딩 동작을 위한 후보 오브젝트로서 식별되었다는 표시를 상기 사용자에게 디스플레이하는 수단을 더 포함한다.
29. 상기 예시 21 내지 예시 28 중 어느 하나에서 언급된 시각화 디바이스는, 상기 제1 오브젝트를 둘러싸며 복수의 투명 또는 반투명 평면 표면을 갖는, 상기 제1 오브젝트의 바운딩 체적을 사용자에게 디스플레이하는 수단과, 상기 사용자의 시선 방향에 기초하는 위치에서, 상기 홀딩 기능을 위한 잠재적인 픽업 포인트를 나타내는 커서의 위치에서, 상기 바운딩 체적의 표면 상의 커서를 사용자에게 디스플레이하는 수단과, 상기 사용자의 시선 방향의 변화에 응답하여, 상기 커서가, 바운딩 체적의 두 개 이상의 표면을 가로질러 이동하는 것처럼 사용자에게 보여지도록 유도하는 수단과, 상기 홀딩 기능을 트리거하기 위한 사용자 입력에 응답하여, 상기 홀딩 기능을 개시하고, 상기 바운딩 체적 상의 커서의 현재 위치에 따라 제1 오브젝트를 재지향시키는 수단을 더 포함한다.
전술한 특징 및 기능 중 임의의 것 또는 모두는, 달리 전술한 범위 또는 임의의 그러한 실시예가 그 기능 또는 구조에 의해 양립할 수 없는 정도인 것을 제외하면, 서로 결합될 수 있음이 당업자에게 명백할 것이다. 물리적 가능성에 반하지 않는 한, (i) 본원에 기술된 방법/단계는 임의의 순서 및/또는 임의의 조합으로 수행될 수 있으며 (ii) 각 실시예의 컴포넌트들은 임의의 방식으로 조합될 수 있음을 알 수 있다.
비록 본원 발명이 구조적 특징 및/또는 동작에 대해 특정한 언어로 기술되었지만, 첨부된 청구범위에서 정해지는 주제가 반드시 전술한 특정 특징이나 동작으로 반드시 제한되는 것은 아니라는 것을 이해해야 한다. 오히려, 전술한 특정 특징 및 동작은 청구범위를 구현하는 예시로서 개시되고 다른 동등한 특징 및 동작이 청구 범위의 내에 있는 것으로 의도된다.

Claims (16)

  1. 시각화 디바이스(visualization device)를 동작시키는 방법에 있어서,
    시각화 디바이스의 디스플레이 영역 상에서, 3차원(3D) 물리적 공간의 실세계 뷰 상에 오버레이된(overlaid) 복수의 가상 3D 오브젝트들을 상기 시각화 디바이스의 사용자에게 디스플레이하는 단계와,
    상기 사용자의 시선에 기초하여, 상기 복수의 가상 3D 오브젝트들 중 제1 오브젝트를 홀딩 기능을 위한 후보 오브젝트로서 식별하는 단계와,
    상기 제1 오브젝트가 홀딩 기능을 위한 후보 오브젝트로서 식별되었다는 표시를 사용자에게 디스플레이하는 단계와,
    상기 제1 오브젝트를 둘러싸며 복수의 투명 또는 반투명 평면 표면을 갖는, 상기 제1 오브젝트의 바운딩 체적(bounding volume)을 사용자에게 디스플레이하는 단계와,
    상기 사용자의 시선 방향에 기초한 위치에서, 상기 바운딩 체적의 표면 상의 커서를 사용자에게 디스플레이하는 단계 - 상기 커서의 위치는 상기 홀딩 기능을 위한 잠재적인 픽업 포인트를 나타냄 - 와,
    상기 사용자의 시선 방향의 변화에 응답하여, 상기 커서가, 상기 바운딩 체적의 두 개 이상의 표면을 가로질러 이동하는 것처럼 사용자에게 보여지도록 유도하는 단계와,
    상기 홀딩 기능을 트리거하기 위한 사용자 입력에 응답하여, 상기 홀딩 기능을 개시하고, 상기 바운딩 체적 상의 커서의 현재 위치에 따라 상기 제1 오브젝트를 재지향(reorienting)시키는 단계 - 상기 홀딩 기능은 사용자로부터의 제1 입력에 응답하여 상기 복수의 가상 3D 오브젝트들 중 제1 오브젝트를, 상기 제1 오브젝트가 상기 3D 물리적 공간을 통과해 이동하는 것처럼 보이도록 상기 디스플레이 영역 상에 디스플레이하는 것을 포함함 - 와,
    검출된 사용자의 시선에 기초하여, 상기 복수의 가상 3D 오브젝트들 중 제2 오브젝트를 스냅 기능을 위한 타깃 오브젝트로서 식별하는 단계
    를 포함하고,
    상기 스냅 기능은 상기 제1 오브젝트를 상기 타깃 오브젝트의 표면 상의 위치로 이동시키도록 유도하는 동작인 것인, 시각화 디바이스를 동작시키는 방법.
  2. 제1항에 있어서, 상기 제1 입력은 상기 사용자의 시선 방향의 변화를 포함하는, 시각화 디바이스를 동작시키는 방법.
  3. 제1항에 있어서, 상기 타깃 오브젝트를 식별하는 단계는 또한,
    상기 제1 오브젝트와 후보 타깃 오브젝트 사이의 크기의 유사성(similarity),
    상기 제1 오브젝트와 후보 타깃 오브젝트 사이의 전체 형상의 유사성, 또는
    상기 제1 오브젝트의 표면과 후보 타깃 오브젝트의 표면 사이의 형상의 유사성 중, 적어도 하나에 기초하는, 시각화 디바이스를 동작시키는 방법.
  4. 제1항에 있어서,
    사용자의 제스처, 사용자의 시선 또는 사용자의 발화(utterance) 중, 적어도 하나에 기초하여, 사용자가 상기 스냅 기능을 트리거하기를 원한다는 것을 검출하는 단계와,
    상기 제1 오브젝트가 상기 타깃 오브젝트의 표면 상의 타깃 위치로 이동하는 것처럼 보이도록, 상기 시각화 디바이스의 디스플레이 영역 상에 상기 제1 오브젝트를 디스플레이함으로써 상기 스냅 기능을 실행하는 단계를 더 포함하는, 시각화 디바이스를 동작시키는 방법.
  5. 제1항에 있어서, 스피어 캐스트 동작(sphere casting operation)을 수행함으로써, 상기 스냅 기능에 대해 상기 타깃 오브젝트 상의 타깃 위치를 결정하는 단계를 더 포함하는, 시각화 디바이스를 동작시키는 방법.
  6. 제1항에 있어서, 상기 타깃 오브젝트를 식별하는 단계에 대응하여, 상기 사용자의 시선 방향의 변화에 응답해, 상기 제1 오브젝트가 상기 타깃 오브젝트의 표면을 따라 슬라이딩하는 것처럼 보이도록 유도하는 단계를 더 포함하는, 시각화 디바이스를 동작시키는 방법.
  7. 제1항에 있어서, 상기 사용자의 시선 방향의 변화에 응답하여 상기 제1 오브젝트가 상기 타깃 오브젝트의 복수의 인접한 비평행한(non-parallel) 표면들을 가로질러 슬라이딩하는 것처럼 보이도록 유도하는 단계를 더 포함하는, 시각화 디바이스를 동작시키는 방법.
  8. 시각화 디바이스에 있어서,
    디스플레이 영역을 갖는 디스플레이 디바이스와,
    사용자의 시선 방향을 추적하기 위한 눈 추적 서브시스템과,
    상기 디스플레이 디바이스 및 상기 눈 추적 서브시스템에 동작 가능하게 결합된 프로세서 회로
    를 포함하고,
    상기 프로세서 회로는, 디바이스에 대한 시각화에 의해,
    상기 디스플레이 영역이, 3차원(3D) 물리적 공간의 실세계 뷰를 갖는 복수의 가상 3D 오브젝트들을 포함하는 증강 현실 환경을 사용자에게 디스플레이하도록 유도하고,
    상기 사용자의 시선에 기초하여, 상기 복수의 가상 3D 오브젝트들 중 제1 오브젝트를 홀딩 기능을 위한 후보 오브젝트로서 식별하고,
    상기 디스플레이 디바이스가, 복수의 투명 또는 반투명 표면을 갖는, 상기 후보 오브젝트의 바운딩 체적을 사용자에게 디스플레이하도록 유도하고,
    상기 사용자의 시선 방향에 기초한 위치에서, 상기 디스플레이 디바이스가, 상기 바운딩 체적의 표면 상의 커서를 사용자에게 디스플레이하도록 유도하고 - 상기 커서의 위치는 상기 홀딩 기능을 위한 후보 오브젝트 상의 잠재적인 픽업 포인트를 나타냄 -,
    상기 사용자의 시선 방향의 변화에 응답하여, 상기 커서가, 상기 바운딩 체적의 두 개 이상의 표면을 가로질러 이동하는 것처럼 사용자에게 보여지도록 유도하고,
    상기 홀딩 기능을 트리거하기 위한 사용자 입력에 응답하여, 상기 홀딩 기능을 개시하고, 상기 후보 오브젝트가 홀딩된 오브젝트가 되도록, 상기 바운딩 체적 상의 커서의 현재 위치에 따라 상기 후보 오브젝트를 재지향시키고,
    상기 눈 추적 서브시스템으로부터 상기 사용자의 시선 방향을 나타내는 입력을 수신하고,
    상기 사용자의 시선 방향에 기초하여, 상기 가상 3D 오브젝트들 중 하나를, 스냅 기능을 위한 타깃 오브젝트로서 선택하고자 하는 사용자의 요구(desire)를 결정하도록
    구성되고, 상기 스냅 기능은 상기 홀딩된 오브젝트를 상기 타깃 오브젝트의 표면 상의 위치로 이동시키도록 유도하는 동작인 것인, 시각화 디바이스.
  9. 제8항에 있어서, 상기 가상 3D 오브젝트들 중 상기 하나를 스냅 기능을 위해 타깃화하고자 하는 사용자의 요구를 결정하는 것은 또한,
    상기 홀딩된 오브젝트와 후보 타깃 오브젝트 사이의 크기의 유사성,
    상기 홀딩된 오브젝트와 후보 타깃 오브젝트 사이의 전체 형상의 유사성, 또는
    상기 홀딩된 오브젝트의 표면과 후보 타깃 오브젝트의 표면 사이의 형상의 유사성 중, 적어도 하나에 기초하는, 시각화 디바이스.
  10. 제8항에 있어서, 상기 홀딩 기능은 사용자로부터의 제1 입력에 응답하여 상기 홀딩된 오브젝트가 상기 3D 물리적 공간을 통과하는 것처럼 사용자에게 보여지도록 상기 홀딩된 오브젝트를 디스플레이하는 것을 포함하는, 시각화 디바이스.
  11. 제10항에 있어서, 상기 제1 입력은 상기 사용자의 시선 방향의 변화를 포함하는, 시각화 디바이스.
  12. 제8항에 있어서, 상기 프로세서 회로는 또한, 사용자의 제스처, 사용자의 시선, 또는 사용자의 발화 중, 적어도 하나에 기초하여, 사용자가 상기 스냅 기능을 트리거하기를 원한다는 것을 검출하도록 구성되는, 시각화 디바이스.
  13. 제8항에 있어서, 상기 프로세서 회로는 또한, 스피어 캐스트 동작을 수행함으로써, 상기 스냅 기능에 대해 상기 타깃 오브젝트 상의 타깃 위치를 결정하도록 구성되는, 시각화 디바이스.
  14. 제8항에 있어서, 상기 프로세서 회로는 또한,
    상기 타깃 오브젝트를 식별하는 것에 대응하여, 상기 사용자의 시선 방향의 변화에 응답해, 상기 홀딩된 오브젝트가 상기 타깃 오브젝트의 표면을 따라 슬라이딩하는 것처럼 보이게 유도하도록 구성되는, 시각화 디바이스.
  15. 헤드 장착 가능한 시각화 디바이스에 있어서,
    사용자의 헤드에 시각화 디바이스를 장착하기 위한 헤드 피팅부와,
    상기 헤드 피팅부에 결합되고 디스플레이 영역을 갖는 디스플레이 디바이스와,
    상기 사용자의 시선 방향을 추적하기 위한 눈 추적 서브시스템과,
    상기 디스플레이 디바이스 및 상기 눈 추적 서브시스템에 동작 가능하게 결합된 프로세서
    를 포함하고, 상기 프로세서는, 디바이스에 대한 시각화에 의해,
    상기 디스플레이 디바이스가, 상기 디스플레이 영역 상에서, 3차원(3D) 물리적 공간의 실세계, 실시간 뷰 상에 복수의 가상 3D 오브젝트들을 중첩시키도록 유도하고,
    상기 사용자의 시선에 기초하여, 상기 복수의 가상 3D 오브젝트들 중 제1 오브젝트를 홀딩 기능을 위한 후보 오브젝트로서 식별하고,
    상기 디스플레이 디바이스가, 복수의 투명 또는 반투명 표면을 갖는, 상기 제1 오브젝트의 바운딩 체적을 사용자에게 디스플레이하도록 유도하고,
    상기 사용자의 시선 방향에 기초한 위치에서, 상기 디스플레이 디바이스가, 상기 바운딩 체적의 표면 상의 커서를 사용자에게 디스플레이하도록 유도하고 - 상기 커서의 위치는 상기 홀딩 기능을 위한 상기 제1 오브젝트 상의 잠재적인 픽업 포인트를 나타냄 - 와,
    상기 사용자의 시선 방향의 변화에 응답하여, 상기 커서가, 상기 바운딩 체적의 두 개 이상의 표면을 가로질러 이동하는 것처럼 사용자에게 보여지도록 유도하고,
    상기 홀딩 기능을 트리거하기 위한 사용자 입력에 응답하여, 상기 홀딩 기능을 개시하고, 상기 바운딩 체적 상의 커서의 현재 위치에 따라 상기 제1 오브젝트를 재지향시키고 - 상기 홀딩 기능은 사용자로부터의 제1 입력에 응답하여 상기 제1 오브젝트를, 상기 제1 오브젝트가 상기 3D 물리적 공간을 통과해 이동하는 것처럼 보이도록 상기 디스플레이 영역 상에 디스플레이하는 것을 포함하고, 상기 제1 입력은 상기 사용자의 시선 방향의 변화를 포함함 -,
    검출된 사용자의 시선에 기초하여, 상기 복수의 가상 3D 오브젝트들 중 제2 오브젝트를 스냅 기능을 위한 타깃 오브젝트로서 식별하도록
    구성되고, 상기 스냅 기능은 상기 제1 오브젝트를 상기 타깃 오브젝트의 표면 상의 위치로 이동시키도록 유도하는 동작인 것인, 헤드 장착 가능한 시각화 디바이스.
  16. 제15항에 있어서, 상기 타깃 오브젝트를 식별하는 것은 또한,
    상기 제1 오브젝트와 후보 타깃 오브젝트 사이의 크기의 유사성,
    상기 제1 오브젝트와 후보 타깃 오브젝트 사이의 전체 형상의 유사성, 또는
    상기 제1 오브젝트의 표면과 후보 타깃 오브젝트의 표면 사이의 형상의 유사성 중, 적어도 하나에 기초하는, 헤드 장착 가능한 시각화 디바이스.
KR1020177018146A 2014-12-19 2015-12-03 3차원 시각화 시스템의 오브젝트 배치 보조 KR102450659B1 (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201414578123A 2014-12-19 2014-12-19
US14/578,123 2014-12-19
US14/611,005 US9778814B2 (en) 2014-12-19 2015-01-30 Assisted object placement in a three-dimensional visualization system
US14/611,005 2015-01-30
PCT/US2015/063569 WO2016099906A2 (en) 2014-12-19 2015-12-03 Assisted object placement in a three-dimensional visualization system

Publications (2)

Publication Number Publication Date
KR20170096129A KR20170096129A (ko) 2017-08-23
KR102450659B1 true KR102450659B1 (ko) 2022-10-04

Family

ID=55024268

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020177018146A KR102450659B1 (ko) 2014-12-19 2015-12-03 3차원 시각화 시스템의 오브젝트 배치 보조

Country Status (5)

Country Link
US (1) US9778814B2 (ko)
EP (2) EP3234941A2 (ko)
KR (1) KR102450659B1 (ko)
CN (1) CN107111979A (ko)
WO (1) WO2016099906A2 (ko)

Families Citing this family (60)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102516124B1 (ko) 2013-03-11 2023-03-29 매직 립, 인코포레이티드 증강 및 가상 현실을 위한 시스템 및 방법
US11747895B2 (en) * 2013-03-15 2023-09-05 Intuitive Surgical Operations, Inc. Robotic system providing user selectable actions associated with gaze tracking
KR102318391B1 (ko) 2013-03-15 2021-10-26 매직 립, 인코포레이티드 디스플레이 시스템 및 방법
US9726885B2 (en) 2015-03-31 2017-08-08 Timothy A. Cummings System for virtual display and method of use
US9690374B2 (en) * 2015-04-27 2017-06-27 Google Inc. Virtual/augmented reality transition system and method
CN107787588B (zh) * 2015-05-05 2019-11-29 雷蛇(亚太)私人有限公司 控制耳机装置的方法、耳机装置、计算机可读介质
WO2016190458A1 (ko) 2015-05-22 2016-12-01 삼성전자 주식회사 Hmd 장치를 통하여 가상 이미지를 디스플레이하는 시스템 및 방법
US9952656B2 (en) * 2015-08-21 2018-04-24 Microsoft Technology Licensing, Llc Portable holographic user interface for an interactive 3D environment
WO2017053966A1 (en) 2015-09-24 2017-03-30 Tobii Ab Eye-tracking enabled wearable devices
US10565446B2 (en) * 2015-09-24 2020-02-18 Tobii Ab Eye-tracking enabled wearable devices
EP3369091A4 (en) 2015-10-26 2019-04-24 Pillantas Inc. SYSTEMS AND METHODS FOR CONTROLLING CONVERGENT OCULAR MOVEMENTS
US10466780B1 (en) 2015-10-26 2019-11-05 Pillantas Systems and methods for eye tracking calibration, eye vergence gestures for interface control, and visual aids therefor
US10962780B2 (en) * 2015-10-26 2021-03-30 Microsoft Technology Licensing, Llc Remote rendering for virtual images
US10248299B2 (en) * 2015-11-10 2019-04-02 Dassault Systemes Canada Inc. Ensuring tunnel designs stay within specified design parameters and tolerances
JP6017664B1 (ja) * 2015-12-28 2016-11-02 株式会社コロプラ 情報処理方法及び情報処理プログラム
US10594974B2 (en) 2016-04-07 2020-03-17 Tobii Ab Image sensor for vision based on human computer interaction
CN108353137A (zh) * 2016-04-07 2018-07-31 托比股份公司 用于基于视觉的人机交互的图像传感器
ES2939165T3 (es) 2016-04-29 2023-04-19 Tobii Ab Dispositivos portátiles con seguimiento ocular
US10228836B2 (en) * 2016-05-23 2019-03-12 Unity IPR ApS System and method for generation of 3D virtual objects
WO2018020661A1 (ja) * 2016-07-29 2018-02-01 三菱電機株式会社 表示装置、表示制御装置および表示制御方法
CA3033344A1 (en) * 2016-08-11 2018-02-15 Magic Leap, Inc. Automatic placement of a virtual object in a three-dimensional space
US10341568B2 (en) * 2016-10-10 2019-07-02 Qualcomm Incorporated User interface to assist three dimensional scanning of objects
US10564800B2 (en) 2017-02-23 2020-02-18 Spatialand Inc. Method and apparatus for tool selection and operation in a computer-generated environment
CN108509824B (zh) * 2017-02-24 2020-08-18 亮风台(上海)信息科技有限公司 基于ar设备的物品特征标识方法以及检查物品的系统
US10692287B2 (en) 2017-04-17 2020-06-23 Microsoft Technology Licensing, Llc Multi-step placement of virtual objects
US10880086B2 (en) 2017-05-02 2020-12-29 PracticalVR Inc. Systems and methods for authenticating a user on an augmented, mixed and/or virtual reality platform to deploy experiences
WO2018226448A1 (en) * 2017-06-08 2018-12-13 Honeywell International Inc. Apparatus and method for recording and replaying interactive content in augmented/virtual reality in industrial automation systems and other systems
US10627985B2 (en) * 2017-06-16 2020-04-21 Lenovo (Singapore) Pte. Ltd. Manipulation of a virtual object during a conversational session
US10782793B2 (en) * 2017-08-10 2020-09-22 Google Llc Context-sensitive hand interaction
KR102374408B1 (ko) * 2017-09-08 2022-03-15 삼성전자주식회사 가상 현실에서의 포인터 제어 방법 및 전자 장치
US10254832B1 (en) * 2017-09-28 2019-04-09 Microsoft Technology Licensing, Llc Multi-item selection using eye gaze
EP4235263A3 (en) * 2017-09-29 2023-11-29 Apple Inc. Gaze-based user interactions
KR101990373B1 (ko) * 2017-09-29 2019-06-20 클릭트 주식회사 가상현실 영상 제공 방법 및 이를 이용한 프로그램
CN109697002B (zh) * 2017-10-23 2021-07-16 腾讯科技(深圳)有限公司 一种在虚拟现实中对象编辑的方法、相关设备及系统
CN107970609A (zh) * 2017-12-20 2018-05-01 苏州蜗牛数字科技股份有限公司 一种游戏物体摆放的方法和装置
US20190289204A1 (en) * 2018-01-03 2019-09-19 Gopro, Inc. Systems and methods for tagging highlights within spherical videos
CN108536295B (zh) * 2018-03-30 2021-08-10 腾讯科技(深圳)有限公司 虚拟场景中的对象控制方法、装置及计算机设备
DE102019110067A1 (de) * 2018-04-16 2019-10-17 Bulthaup Gmbh & Co. Kg Möbelstrukturelement
US10916065B2 (en) * 2018-05-04 2021-02-09 Facebook Technologies, Llc Prevention of user interface occlusion in a virtual reality environment
US20190385372A1 (en) * 2018-06-15 2019-12-19 Microsoft Technology Licensing, Llc Positioning a virtual reality passthrough region at a known distance
US10890967B2 (en) * 2018-07-09 2021-01-12 Microsoft Technology Licensing, Llc Systems and methods for using eye gaze to bend and snap targeting rays for remote interaction
CN112639579B (zh) 2018-08-31 2023-09-15 奇跃公司 用于增强现实装置的空间分辨的动态调暗
US11353952B2 (en) 2018-11-26 2022-06-07 Tobii Ab Controlling illuminators for optimal glints
US11188148B2 (en) * 2018-12-27 2021-11-30 Facebook Technologies, Llc User interaction in head-mounted display with eye tracking
US10852906B2 (en) 2019-02-15 2020-12-01 Microsoft Technology Licensing, Llc System and method for identifying locations for virtual items within a physical environment
US11137874B2 (en) * 2019-02-22 2021-10-05 Microsoft Technology Licensing, Llc Ergonomic mixed reality information delivery system for dynamic workflows
US10964122B2 (en) * 2019-03-06 2021-03-30 Microsofttechnology Licensing, Llc Snapping virtual object to target surface
WO2020226833A1 (en) 2019-05-06 2020-11-12 Apple Inc. Device, method, and graphical user interface for composing cgr files
WO2020226832A1 (en) 2019-05-06 2020-11-12 Apple Inc. Device, method, and computer-readable medium for presenting computer-generated reality files
KR102192153B1 (ko) * 2019-06-10 2020-12-16 클릭트 주식회사 가상현실 영상 제공 방법 및 이를 이용한 프로그램
WO2020259694A1 (zh) * 2019-06-27 2020-12-30 贝壳找房(北京)科技有限公司 当前空间内物品信息的显示方法、装置及介质
US10943388B1 (en) 2019-09-06 2021-03-09 Zspace, Inc. Intelligent stylus beam and assisted probabilistic input to element mapping in 2D and 3D graphical user interfaces
CN112862976B (zh) * 2019-11-12 2023-09-08 北京超图软件股份有限公司 一种数据处理方法、装置及电子设备
KR20210083574A (ko) * 2019-12-27 2021-07-07 (주) 아키드로우 가상 공간 인테리어를 이용한 인터페이스 제공 방법 및 그 장치
US11055925B1 (en) 2020-01-31 2021-07-06 Splunk Inc. Techniques for placement of extended reality objects relative to physical objects in an extended reality environment
US11276236B1 (en) * 2020-01-31 2022-03-15 Splunk Inc. Techniques for placement of extended reality objects relative to other extended reality objects in an extended reality environment
US11325043B2 (en) 2020-05-15 2022-05-10 Microsoft Technology Licensing, Llc Utilizing multiple input sources for generating gameplay locations
CN116917850A (zh) * 2020-09-23 2023-10-20 苹果公司 布置虚拟对象
US20220337709A1 (en) * 2021-04-15 2022-10-20 Canon Kabushiki Kaisha Information processing apparatus, information processing method, and storage medium
US11682180B1 (en) * 2021-12-09 2023-06-20 Qualcomm Incorporated Anchoring virtual content to physical surfaces

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3240156B2 (ja) 1990-08-02 2001-12-17 ゼロックス・コーポレーション 三次元作業域における目標に対する移動ビューポイント
US20110141011A1 (en) 2008-09-03 2011-06-16 Koninklijke Philips Electronics N.V. Method of performing a gaze-based interaction between a user and an interactive display system
US20140333666A1 (en) 2013-05-13 2014-11-13 Adam G. Poulos Interactions of virtual objects with surfaces

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5490241A (en) 1989-10-06 1996-02-06 Xerox Corporation Interactive computer graphics system for making precise drawings
US5583977A (en) 1993-10-21 1996-12-10 Taligent, Inc. Object-oriented curve manipulation system
US6016147A (en) 1995-05-08 2000-01-18 Autodesk, Inc. Method and system for interactively determining and displaying geometric relationships between three dimensional objects based on predetermined geometric constraints and position of an input device
US6426745B1 (en) 1997-04-28 2002-07-30 Computer Associates Think, Inc. Manipulating graphic objects in 3D scenes
US6448964B1 (en) 1999-03-15 2002-09-10 Computer Associates Think, Inc. Graphic object manipulating tool
US7050078B2 (en) * 2002-12-19 2006-05-23 Accenture Global Services Gmbh Arbitrary object tracking augmented reality applications
US7545392B2 (en) 2003-05-30 2009-06-09 Apple Inc. Dynamic guides
US7561143B1 (en) 2004-03-19 2009-07-14 The University of the Arts Using gaze actions to interact with a display
JP4667111B2 (ja) * 2005-04-21 2011-04-06 キヤノン株式会社 画像処理装置、画像処理方法
US8095884B2 (en) 2007-06-01 2012-01-10 Microsoft Corporation Automatic alignment with subcomponents on a visual layout
GB0805924D0 (en) 2008-04-02 2008-05-07 Hibbert Ralph Animation Storyboard creation system
US8826174B2 (en) 2008-06-27 2014-09-02 Microsoft Corporation Using visual landmarks to organize diagrams
US8223145B2 (en) 2009-03-26 2012-07-17 Geometric Ltd. Method and system for 3D object positioning in 3D virtual environments
US8411107B2 (en) 2009-08-18 2013-04-02 Autodesk, Inc. Adaptive snapping
US9329469B2 (en) * 2011-02-17 2016-05-03 Microsoft Technology Licensing, Llc Providing an interactive experience using a 3D depth camera and a 3D projector
US8670957B2 (en) 2011-06-08 2014-03-11 Dassault Systemes Automatic positioning of secondary objects
JP6056178B2 (ja) * 2012-04-11 2017-01-11 ソニー株式会社 情報処理装置、表示制御方法及びプログラム
EP2879097A4 (en) * 2012-07-27 2016-03-16 Nec Solution Innovators Ltd THREE-DIMENSIONAL USER INTERFACE DEVICE AND THREE-DIMENSIONAL OPERATING METHOD
US10133342B2 (en) * 2013-02-14 2018-11-20 Qualcomm Incorporated Human-body-gesture-based region and volume selection for HMD

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3240156B2 (ja) 1990-08-02 2001-12-17 ゼロックス・コーポレーション 三次元作業域における目標に対する移動ビューポイント
US20110141011A1 (en) 2008-09-03 2011-06-16 Koninklijke Philips Electronics N.V. Method of performing a gaze-based interaction between a user and an interactive display system
US20140333666A1 (en) 2013-05-13 2014-11-13 Adam G. Poulos Interactions of virtual objects with surfaces

Also Published As

Publication number Publication date
WO2016099906A3 (en) 2016-08-18
CN107111979A (zh) 2017-08-29
KR20170096129A (ko) 2017-08-23
US9778814B2 (en) 2017-10-03
EP3333836B1 (en) 2020-08-12
US20160179336A1 (en) 2016-06-23
EP3333836A1 (en) 2018-06-13
WO2016099906A2 (en) 2016-06-23
EP3234941A2 (en) 2017-10-25

Similar Documents

Publication Publication Date Title
KR102450659B1 (ko) 3차원 시각화 시스템의 오브젝트 배치 보조
JP7008681B2 (ja) 仮想現実における、頭部、ジェスチャ、およびタッチ入力の動的な切り替えならびにマージ
US9952656B2 (en) Portable holographic user interface for an interactive 3D environment
JP6682623B2 (ja) 拡張および/または仮想現実環境におけるテレポーテーション
EP3414643B1 (en) Laser pointer interactions and scaling in virtual reality
EP3120224B1 (en) Selection using eye gaze evaluation over time
EP3008567B1 (en) User focus controlled graphical user interface using an head mounted device
JP2022547930A (ja) 三次元環境と相互作用するためのデバイス、方法、及びグラフィカルユーザインタフェース
CN116719452A (zh) 用于与用于移动虚拟环境中的虚拟对象的虚拟控件和/或示能表示交互的方法
US20160147408A1 (en) Virtual measurement tool for a wearable visualization device
US20170052595A1 (en) Holographic Display System with Undo Functionality
US20180136744A1 (en) Input controller stabilization techniques for virtual reality systems
CN103347437A (zh) 3d映射环境中的凝视检测
WO2018038136A1 (ja) 画像表示装置、画像表示方法、及び画像表示プログラム
JP2023520765A (ja) 仮想および拡張現実のためのシステムおよび方法
US20220261085A1 (en) Measurement based on point selection

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant