KR102632448B1 - 계산 효율적인 모델 선택 - Google Patents

계산 효율적인 모델 선택 Download PDF

Info

Publication number
KR102632448B1
KR102632448B1 KR1020217009111A KR20217009111A KR102632448B1 KR 102632448 B1 KR102632448 B1 KR 102632448B1 KR 1020217009111 A KR1020217009111 A KR 1020217009111A KR 20217009111 A KR20217009111 A KR 20217009111A KR 102632448 B1 KR102632448 B1 KR 102632448B1
Authority
KR
South Korea
Prior art keywords
state
environment
asset
model
time
Prior art date
Application number
KR1020217009111A
Other languages
English (en)
Other versions
KR20210046781A (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 KR20210046781A publication Critical patent/KR20210046781A/ko
Application granted granted Critical
Publication of KR102632448B1 publication Critical patent/KR102632448B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T19/00Manipulating 3D models or images for computer graphics
    • G06T19/006Mixed reality
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/011Arrangements for interaction with the human body, e.g. for user immersion in virtual reality
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/55Controlling game characters or game objects based on the game progress
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/12Use of codes for handling textual entities
    • G06F40/14Tree-structured documents
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F2300/00Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
    • A63F2300/60Methods for processing data by generating or executing the game program

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)
  • Multimedia (AREA)
  • Artificial Intelligence (AREA)
  • Health & Medical Sciences (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • Computer Graphics (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • User Interface Of Digital Computer (AREA)
  • Debugging And Monitoring (AREA)

Abstract

다양한 구현예들에서, 디바이스는 장면을 조사하고, 시간 경과에 따라 진화하는 (예를 들어, 위치 또는 나이가 변경됨) 하나 이상의 에셋들을 포함하는 합성 현실(SR) 환경을, 장면 내에 제시한다. 다양한 타임스케일들에서의 그러한 SR 환경을 모델링하는 것은 계산 집약적일 수 있는데, 특히 더 긴 타임스케일들에 걸쳐 SR 환경을 모델링할 때 그러할 수 있다. 따라서, 다양한 구현예들에서, 상이한 타임스케일들에서의 SR 환경을 제시할 때 SR 환경의 환경 상태를 결정하는 데 상이한 모델들이 사용된다.

Description

계산 효율적인 모델 선택
본 발명은 대체적으로 합성 현실(synthesized reality, SR) 환경을 생성하는 것에 관한 것이며, 특히 SR 환경에 대한 환경 상태들을 계산 효율적인 방식으로 결정하기 위한 시스템들, 방법들, 및 디바이스들에 관한 것이다.
물리적 설정은 개인들이 감지할 수 있고 그리고/또는 개인들이 전자 시스템들의 보조 없이 상호작용할 수 있는 세계를 지칭한다. 물리적 설정들(예를 들어, 물리적 숲)은 물리적 요소들(예를 들어, 물리적 나무들, 물리적 구조물들, 및 물리적 동물들)을 포함한다. 개인들은, 예를 들어 촉각, 시각, 후각, 청각, 및 미각을 통해, 물리적 설정과 직접 상호작용하고 그리고/또는 이를 감지할 수 있다.
대조적으로, 합성 현실(SR) 설정은 개인들이 감지할 수 있고/있거나 개인들이 전자 시스템을 통해 상호작용할 수 있는, 전체적으로 또는 부분적으로 컴퓨터-생성된 설정을 지칭한다. SR에서, 개인의 움직임들의 서브세트가 모니터링되고, 그것에 응답하여, SR 설정에서의 하나 이상의 가상 객체들의 하나 이상의 속성들이 하나 이상의 물리 법칙을 준수하는 방식으로 변경된다. 예를 들어, SR 시스템은 개인이 몇 걸음 앞으로 걷는 것을 검출하고, 이에 응답하여, 그러한 장면 및 소리가 물리적 설정에서 변경될 방법과 유사한 방식으로 개인에게 제시되는 그래픽 및 오디오를 조정할 수 있다. SR 설정에서의 가상 객체(들)의 속성(들)에 대한 수정은 또한, 움직임의 표현들(예를 들어, 오디오 명령어들)에 응답하여 이루어질 수 있다.
개인은 촉각, 후각, 시각, 미각, 및 청각을 포함하는 자신의 감각들 중 임의의 하나를 이용하여 SR 객체와 상호작용하고 그리고/또는 이를 감지할 수 있다. 예를 들어, 개인은 다차원(예를 들어, 3차원) 또는 공간 청각적 설정을 생성, 및/또는 청각적 투명성을 가능하게 하는 청각 객체들과 상호작용하고 그리고/또는 감지할 수 있다. 다차원 또는 공간 청각적 설정들은 개인에게 다차원 공간에서 개별적인 청각적 소스들에 대한 인식을 제공한다. 청각적 투명성은 물리적 설정으로부터의 소리를, 컴퓨터-생성 오디오와 함께 또는 그것 없이 선택적으로 포함한다. 일부 SR 설정들에서, 개인은 오직 청각적 객체들과 상호작용하고 그리고/또는 감지할 수 있다.
SR의 일 예는 가상 현실(virtual reality, VR)이다. VR 설정은 감각들 중 적어도 하나에 대한 컴퓨터-생성 감각 입력들만을 포함하도록 설계되는 시뮬레이션된 설정을 지칭한다. VR 설정은 개인이 상호작용 및/또는 감지할 수 있는 다수의 가상 객체들을 포함한다. 개인은 컴퓨터-생성 설정 내의 개인의 액션(action)들의 서브세트의 시뮬레이션, 및/또는 컴퓨터-생성 설정 내의 개인 또는 그의 존재의 시뮬레이션을 통해 VR 설정 내의 가상 객체들과 상호작용 및/또는 감지할 수 있다.
SR의 다른 예는 혼합 현실(mixed reality, MR)이다. MR 설정은 컴퓨터-생성 감각 입력들(예를 들어, 가상 객체들)을 물리적 설정, 또는 그것들의 표현으로부터의 감각 입력들과 통합하도록 설계되는 시뮬레이션된 설정을 지칭한다. 현실 스펙트럼 상에서, 혼합 현실 설정은 한편으로의 VR 설정과, 다른 한편으로의 완전히 물리적 설정 사이에 존재하며, 이들을 포함하지는 않는다.
일부 MR 설정들에서, 컴퓨터-생성 감각 입력들은 물리적 설정으로부터의 감각 입력들의 변경들에 적응할 수 있다. 또한, MR 설정들을 제시하기 위한 일부 전자 시스템들은 가상 객체들과 실제 객체들(이들은 물리적 설정 또는 이들의 표현들로부터의 물리적 요소들임) 사이의 상호작용을 가능하게 하기 위하여 물리적 설정에 대한 배향 및/또는 위치를 모니터링할 수 있다. 예를 들어, 시스템은 움직임들을 모니터링하여 가상 식물이 물리적 건물에 대해 고정된 것처럼 보이도록 할 수 있다.
혼합 현실의 일 예는 증강 현실(augmented reality, AR)이다. AR 설정은 적어도 하나의 가상 객체가 물리적 설정, 또는 그의 표현 위에 중첩되는 시뮬레이션된 설정을 지칭한다. 예를 들어, 전자 시스템은 불투명 디스플레이, 및 물리적 설정의 표현들인, 물리적 설정의 이미지들 또는 비디오를 캡처하기 위한 적어도 하나의 이미징 센서를 가질 수 있다. 시스템은 이미지들 또는 비디오를 가상 객체들과 조합하고, 불투명 디스플레이 상에 그 조합을 디스플레이한다. 개인은, 시스템을 사용하여, 물리적 설정의 이미지들 또는 비디오를 통해 간접적으로 물리적 설정을 보고, 물리적 설정 위에 중첩된 가상 객체들을 관찰한다. 시스템이 이미지 센서(들)를 사용하여 물리적 설정의 이미지들을 캡처하고, 이러한 이미지들을 사용하여 불투명 디스플레이 상에 AR 설정을 제시할 때, 디스플레이되는 이미지들은 비디오 패스-스루(pass-through)라고 불린다. 대안적으로, AR 설정을 디스플레이하기 위한 전자 시스템은 개인이 물리적 설정을 직접 볼 수 있는 투명 또는 반투명 디스플레이를 가질 수 있다. 시스템은 가상 객체들을 투명 또는 반투명 디스플레이 상에 디스플레이하여, 개인이 시스템을 사용하여, 물리적 설정 상에 중첩된 가상 객체들을 관찰하게 할 수 있다. 다른 예에서, 시스템은 가상 객체들을 물리적 설정 내로 투영하는 투영 시스템을 포함할 수 있다. 가상 객체들은, 예를 들어, 물리적 표면 상에 또는 홀로그래프로서 투영되어, 개인이 시스템을 사용하여, 물리적 설정 상에 중첩된 가상 객체들을 관찰하게 할 수 있다.
증강 현실 설정은 또한 물리적 설정의 표현이 컴퓨터-생성 감각 정보에 의해 변경되는 시뮬레이션된 설정을 지칭할 수 있다. 예를 들어, 물리적 설정의 표현의 일부가 그래픽적으로 변경되어(예를 들어, 확대됨), 변경된 부분이 여전히 대표성은 있지만 원래 캡처된 이미지(들)의 충실하게 재현된 버전은 아닐 수 있다. 다른 예로서, 비디오 패스-스루를 제공함에 있어서, 시스템은 센서 이미지들 중 적어도 하나를 변경하여 이미지 센서(들)에 의해 캡처된 관점과 상이한 특정 관점을 부과할 수 있다. 부가적인 예로서, 물리적 설정의 표현은 그의 부분들을 그래픽적으로 모호하게 하거나 배제함으로써 변경될 수 있다.
혼합 현실의 다른 예는 증강 가상(augmented virtuality, AV)이다. AV 설정은 컴퓨터-생성 또는 가상 설정이 물리적 설정으로부터의 적어도 하나의 감각 입력을 통합하는 시뮬레이션된 설정을 지칭한다. 물리적 설정으로부터의 감각 입력(들)은 물리적 설정의 적어도 하나의 특성의 표현들일 수 있다. 예를 들어, 가상 객체는 이미지 센서(들)에 의해 캡처된 물리적 요소의 색상을 취할 수 있다. 다른 예에서, 가상 객체는 이미징, 날씨-관련 센서, 및/또는 온라인 날씨 데이터를 통해 식별되는 바와 같이, 물리적 설정의 실제 날씨 조건들에 일치하는 특성들을 나타낼 수 있다. 또 다른 예에서, 증강 현실 숲은 가상 나무들 및 구조물들을 가질 수 있지만, 동물들은 물리적 동물들의 촬영된 이미지들로부터 정확하게 재현되는 특징들을 가질 수 있다.
많은 전자 시스템들은 개인이 다양한 SR 설정들과 상호작용하고 그리고/또는 이들을 감지할 수 있게 한다. 일 예는 머리 장착형 시스템들을 포함한다. 머리 장착형 시스템은 불투명 디스플레이 및 스피커(들)를 가질 수 있다. 대안적으로, 머리 장착형 시스템은 외부 디스플레이(예를 들어, 스마트폰)를 수용하도록 설계될 수 있다. 머리 장착형 시스템은 각각 이미지들/비디오를 촬영하고 그리고/또는 물리적 설정의 오디오를 캡처하기 위한 이미징 센서(들) 및/또는 마이크로폰들을 가질 수 있다. 머리 장착형 시스템은 또한 투명 또는 반투명 디스플레이를 가질 수 있다. 투명 또는 반투명 디스플레이는 이미지들을 표현하는 광이 그를 통해 개인의 눈들로 지향되는 기판을 통합할 수 있다. 디스플레이는 LED들, OLED들, 디지털 광 프로젝터, 레이저 스캐닝 광원, 실리콘 액정표시장치, 또는 이 기술들의 임의의 조합을 통합할 수 있다. 광이 통과해서 투과될 수 있는 기판은 광 도파관, 광학 결합기, 광학 반사기, 홀로그래픽 기판, 또는 이 기판들의 임의의 조합일 수 있다. 일 실시예에서, 투명 또는 반투명 디스플레이는 불투명 상태와 투명 또는 반투명 상태 사이에서 선택적으로 전이할 수 있다. 다른 예에서, 전자 시스템은 투영-기반 시스템일 수 있다. 투영-기반 시스템은 이미지들을 개인의 망막 상으로 투영하기 위해 망막 투영을 사용할 수 있다. 대안적으로, 투영 시스템은 또한 가상 객체들을 물리적 설정 안에(예를 들어, 물리적 표면 상에 또는 홀로그래프로서) 투영할 수 있다. SR 시스템들의 다른 예들은 헤드 업 디스플레이(heads up display)들, 그래픽들을 디스플레이하는 능력을 갖는 자동차 앞유리들, 그래픽들을 디스플레이하는 능력을 갖는 창들, 그래픽들을 디스플레이하는 능력을 갖는 렌즈들, 헤드폰들 또는 이어폰들, 스피커 배열들, 입력 메커니즘들(예를 들어, 햅틱 피드백을 갖거나 갖지 않는 제어기들), 태블릿들, 스마트폰들, 및 데스크톱 또는 랩톱 컴퓨터들을 포함한다.
하나 이상의 모델들에 따라 시간 경과에 따라 진화하는 에셋(asset)들을 포함하는 SR 환경을 제시하기 위해, 아주 많은 계산이 필요할 수 있다. 따라서, 사용자를 위한 SR 경험을 개선하기 위해, 본 명세서에 개시된 다양한 구현예들은 계산 부담을 감소시키기 위한 모델을 복수의 모델들로부터 선택한다.
본 명세서에 개시된 다양한 구현예들은 SR 환경의 환경 상태들을 생성하기 위한 디바이스들, 시스템들, 및 방법들을 포함한다. 다양한 구현예들에서, 방법은 하나 이상의 프로세서들 및 비일시적 메모리를 포함하는 디바이스에서 수행된다. 방법은, 제1 환경 시간과 연관된, SR 환경의 제1 환경 상태를 획득하는 단계 - 제1 환경 상태는 하나 이상의 에셋들의 SR 환경 내의 포함을 나타내고, 하나 이상의 에셋들의 하나 이상의 상태들을 추가로 나타냄 - 를 포함한다. 방법은, 제1 모델에 따라 그리고 제1 환경 상태에 기초하여, 제2 환경 시간과 연관된 제2 환경 상태를 결정하는 단계를 포함한다. 방법은, 제2 환경 시간에서부터 제3 환경 시간까지의 타임스텝(timestep)을 나타내는 입력을 수신하는 단계 - 타임스텝은 제1 환경 시간과 제2 환경 시간 사이의 차이와는 상이함 - 를 포함한다. 방법은, 제1 모델과는 상이한 제2 모델에 따라, 그리고 제2 환경 상태에 기초하여, 제3 환경 시간과 연관된 제3 환경 상태를 결정하는 단계를 포함한다.
본 명세서에 개시된 다양한 구현예들은 선택된 모델에 따라 SR 환경의 환경 상태를 생성하기 위한 디바이스들, 시스템들, 및 방법들을 포함한다. 다양한 구현예들에서, 방법은 하나 이상의 프로세서들 및 비일시적 메모리를 포함하는 디바이스에서 수행된다. 방법은, 제1 환경 시간과 연관된, SR 환경의 제1 환경 상태를 획득하는 단계 - 제1 환경 상태는 하나 이상의 에셋들의 SR 환경 내의 포함을 나타내고, 하나 이상의 에셋들의 하나 이상의 상태들을 추가로 나타냄 - 를 포함한다. 방법은, 제1 환경 시간에서부터 제2 환경 시간까지의 타임스텝을 결정하는 단계를 포함한다. 방법은, 타임스텝에 기초하여, 복수의 상이한 모델들로부터의 모델을 선택하는 단계를 포함한다. 방법은, 선택된 모델에 따라, 제2 환경 시간과 연관된, SR 환경의 제2 환경 상태를 결정하는 단계를 포함한다.
일부 구현예들에 따르면, 디바이스는 하나 이상의 프로세서들, 비일시적 메모리, 및 하나 이상의 프로그램들을 포함하고; 하나 이상의 프로그램들은 비일시적 메모리에 저장되며 하나 이상의 프로세서들에 의해 실행되도록 구성되고, 하나 이상의 프로그램들은 본 명세서에 설명된 방법들 중 임의의 방법을 수행하거나 그의 수행을 야기하기 위한 명령어들을 포함한다. 일부 구현예들에 따르면, 비일시적 컴퓨터 판독가능 저장 매체는, 디바이스의 하나 이상의 프로세서들에 의해 실행될 때, 디바이스로 하여금, 본 명세서에 설명된 방법들 중 임의의 방법을 수행하게 하거나 그의 수행을 야기하는 명령어들을 내부에 저장한다. 일부 구현예들에 따르면, 디바이스는 하나 이상의 프로세서들, 비일시적 메모리, 및 본 명세서에 설명된 방법들 중 임의의 방법을 수행하거나 그의 수행을 야기하기 위한 수단을 포함한다.
본 개시내용이 당업자들에 의해 이해될 수 있도록, 더 상세한 설명이 일부 예시적인 구현예들의 양태들에 대한 참조에 의해 이루어질 수 있으며, 이들 중 일부는 첨부 도면들에 도시된다.
도 1a는 일부 구현예들에 따른 예시적인 동작 아키텍처의 블록도이다.
도 1b는 일부 구현예들에 따른 예시적인 동작 아키텍처의 블록도이다.
도 2는 일부 구현예들에 따른 예시적인 제어기의 블록도이다.
도 3은 일부 구현예들에 따른 예시적인 머리 장착형 디바이스(head mounted device, HMD)의 블록도이다.
도 4는 전자 디바이스가 장면을 조사하는 상태의 장면을 예시한다.
도 5a 내지 도 5h는 SR 환경을 포함하는 장면의 표현의 이미지들을 디스플레이하는 도 4의 전자 디바이스의 디스플레이의 일부를 예시한다.
도 6은 일부 구현예들에 따른 환경 상태를 예시한다.
도 7은 일부 구현예들에 따른 환경 상태 생성기의 블록도를 예시한다.
도 8은 일부 구현예들에 따른, SR 환경의 환경 상태를 생성하는 방법의 흐름도 표현이다.
도 9는 일부 구현예들에 따른, SR 환경의 환경 상태들을 생성하는 방법의 흐름도 표현이다.
일반적인 실시에 따라, 도면에 예시된 다양한 특징부들은 축척대로 그려지지 않을 수 있다. 따라서, 다양한 특징부들의 치수들은 명료함을 위해 임의대로 확대 또는 축소될 수 있다. 부가적으로, 도면들 중 일부는 주어진 시스템, 방법 또는 디바이스의 컴포넌트들 모두를 도시하지는 않을 수 있다. 마지막으로, 동일한 도면 번호들은 명세서 및 도면들 전반에 걸쳐 동일한 특징부들을 나타내기 위해 사용될 수 있다.
도면들에 도시된 예시적인 구현예들의 완전한 이해를 제공하기 위해 다수의 세부사항들이 설명된다. 그러나, 도면들은 단지 본 개시내용의 일부 예시적인 양태들만을 도시할 뿐이며, 따라서 제한적인 것으로 고려되지 않는다. 당업자들은 다른 효과적인 양태들 및/또는 변형들이 본 명세서에 설명되는 특정 세부사항들 모두를 포함하지는 않음을 인식할 것이다. 또한, 잘 알려진 시스템들, 방법들, 컴포넌트들, 디바이스들 및 회로들은 본 명세서에 설명되는 예시적인 구현예들의 더 적절한 양태들을 불명확하게 하지 않기 위해 철저히 상세하게 설명되지 않았다.
다양한 구현예들에서, 디바이스는 장면을 조사하고, 시간 경과에 따라 진화하는 (예를 들어, 위치 또는 나이가 변경됨) 하나 이상의 에셋들을 포함하는 SR 환경을, 장면 내에 제시한다. 다양한 타임스케일(timescale)들에서의 그러한 SR 환경을 모델링하는 것은 계산 집약적일 수 있는데, 특히 더 긴 타임스케일들에 걸쳐 SR 환경을 모델링할 때 그러할 수 있다. 따라서, 다양한 구현예들에서, 상이한 타임스케일들에서의 SR 환경을 제시할 때 SR 환경의 환경 상태를 결정하는 데 상이한 모델들이 사용된다.
도 1a는 일부 구현예들에 따른 예시적인 동작 아키텍처(100A)의 블록도이다. 관련 특징부들이 도시되어 있지만, 당업자는 본 개시내용으로부터, 다양한 다른 특징부들이 간결함을 위해 그리고 본 명세서에 개시되는 예시적인 구현예들의 더 적절한 양태들을 불명료하게 하지 않도록 하기 위해 예시되지 않았음을 인식할 것이다. 이를 위해, 비제한적인 예로서, 동작 아키텍처(100A)는 전자 디바이스(120A)를 포함한다.
일부 구현예들에서, 전자 디바이스(120A)는 SR 콘텐츠를 사용자에게 제시하도록 구성된다. 일부 구현예들에서, 전자 디바이스(120A)는 소프트웨어, 펌웨어, 및/또는 하드웨어의 적합한 조합을 포함한다. 일부 구현예들에 따르면, 전자 디바이스(120A)는, 사용자가 전자 디바이스(120A)의 시야(111) 내의 테이블(107)을 포함하는 물리적 환경(103) 내에서 물리적으로 존재하는 동안, 디스플레이(122)를 통해, SR 콘텐츠를 사용자에게 제시한다. 이와 같이, 일부 구현예들에서, 사용자는 자신의 손(들)에 전자 디바이스(120A)를 들고 있다. 일부 구현예들에서, 증강 현실(AR) 콘텐츠를 제공하는 동안, 전자 디바이스(120A)는 AR 객체(예를 들어, AR 큐브(109))를 디스플레이하도록 그리고 디스플레이(122) 상에서의 (예컨대, 테이블(107)의 표현(117)을 포함하는) 물리적 환경(103)의 비디오 패스-스루를 가능하게 하도록 구성된다.
도 1b는 일부 구현예들에 따른 예시적인 동작 아키텍처(100B)의 블록도이다. 관련 특징부들이 도시되어 있지만, 당업자는 본 개시내용으로부터, 다양한 다른 특징부들이 간결함을 위해 그리고 본 명세서에 개시되는 예시적인 구현예들의 더 적절한 양태들을 불명료하게 하지 않도록 하기 위해 예시되지 않았음을 인식할 것이다. 이를 위해, 비제한적인 예로서, 동작 환경(100B)은 제어기(110) 및 머리 장착형 디바이스(HMD)(120B)를 포함한다.
일부 구현예들에서, 제어기(110)는 사용자에 대한 SR 콘텐츠의 제시를 관리 및 조정하도록 구성된다. 일부 구현예들에서, 제어기(110)는 소프트웨어, 펌웨어, 및/또는 하드웨어의 적합한 조합을 포함한다. 제어기(110)는 도 2와 관련하여 아래에서 더욱 상세히 설명된다. 일부 구현예들에서, 제어기(110)는 장면(105)에 대해 로컬 또는 원격인 컴퓨팅 디바이스이다. 예를 들어, 제어기(110)는 장면(105) 내에 위치된 로컬 서버이다. 다른 예에서, 제어기(110)는 장면(105)의 외부에 위치된 원격 서버(예를 들어, 클라우드 서버, 중앙 서버 등)이다. 일부 구현예들에서, 제어기(110)는 하나 이상의 유선 또는 무선 통신 채널들(144)(예를 들어, 블루투스, IEEE 802.11x, IEEE 802.16x, IEEE 802.3x 등)을 통해 HMD(120B)와 통신가능하게 결합된다. 다른 예에서, 제어기(110)는 HMD(120B)의 인클로저(enclosure) 내에 포함된다.
일부 구현예들에서, HMD(120B)는 SR 콘텐츠를 사용자에게 제시하도록 구성된다. 일부 구현예들에서, HMD(120B)는 소프트웨어, 펌웨어, 및/또는 하드웨어의 적합한 조합을 포함한다. HMD(120B)는 도 3과 관련하여 아래에서 더욱 상세히 기술된다. 일부 구현예들에서, 제어기(110)의 기능들은 HMD(120B)에 의해 제공되고 그리고/또는 이와 조합된다.
일부 구현예들에 따르면, HMD(120B)는 사용자가 장면(105) 내에 가상으로 그리고/또는 물리적으로 존재하는 동안 SR 콘텐츠를 사용자에게 제시한다.
일부 구현예들에서, 사용자는 HMD(120B)를 자신의 머리 상에 착용한다. 이와 같이, HMD(120B)는 SR 콘텐츠를 디스플레이하기 위해 제공되는 하나 이상의 SR 디스플레이들을 포함한다. 예를 들어, 다양한 구현예들에서, HMD(120B)는 사용자의 시야를 둘러싼다. 일부 구현예들에서, 도 1a에서와 같이, HMD(120B)는 SR 콘텐츠를 제시하도록 구성된 핸드헬드 디바이스(예컨대, 스마트폰 또는 태블릿)로 대체되며, 사용자는 HMD(120B)를 착용하기 보다는 사용자의 시야를 향해 지향된 디스플레이 및 장면(105)을 향해 지향된 카메라를 갖는 디바이스를 들고 있다. 일부 구현예들에서, 핸드헬드 디바이스는 사용자의 머리 상에 착용될 수 있는 인클로저 내에 배치될 수 있다. 일부 구현예들에서, HMD(120B)는 SR 콘텐츠를 제시하도록 구성된 SR 챔버(chamber), 인클로저, 또는 방으로 대체되며, 여기서 사용자는 HMD(120B)를 착용하지 않거나 들고 있지 않는다.
도 2는 일부 구현예들에 따른 제어기(110)의 일 예의 블록도이다. 소정의 특정 특징부들이 예시되어 있지만, 당업자들은 본 개시내용으로부터, 다양한 다른 특징부들이 간결함을 위해 그리고 본 명세서에 개시된 구현예들의 더 적절한 양태들을 불명확하게 하지 않도록 하기 위해 예시되지 않았음을 이해할 것이다. 이를 위해, 비제한적인 예로서, 일부 구현예들에서, 제어기(110)는 하나 이상의 프로세싱 유닛들(202)(예를 들어, 마이크로프로세서들, 주문형 집적 회로(ASIC)들, 필드-프로그래밍가능 게이트 어레이(FPGA)들, 그래픽 프로세싱 유닛(GPU)들, 중앙 프로세싱 유닛(CPU)들, 프로세싱 코어들 등), 하나 이상의 입/출력(I/O) 디바이스들(206), 하나 이상의 통신 인터페이스들(208)(예를 들어, 범용 직렬 버스(USB), FIREWIRE, THUNDERBOLT, IEEE 802.3x, IEEE 802.11x, IEEE 802.16x, 모바일 통신들을 위한 글로벌 시스템(GSM), 코드 분할 다중 액세스(CDMA), 시분할 다중 액세스(TDMA), 글로벌 포지셔닝 시스템(GPS), 적외선(IR), 블루투스, 지그비, 및/또는 유사한 유형의 인터페이스), 하나 이상의 프로그래밍(예를 들어, I/O) 인터페이스들(210), 메모리(220), 및 이들 및 다양한 다른 컴포넌트들을 상호연결시키기 위한 하나 이상의 통신 버스들(204)을 포함한다.
일부 구현예들에서, 하나 이상의 통신 버스들(204)은 시스템 컴포넌트들 사이의 통신을 상호연결시키고 제어하는 회로부를 포함한다. 일부 구현예들에서, 하나 이상의 I/O 디바이스들(206)은 키보드, 마우스, 터치패드, 조이스틱, 하나 이상의 마이크로폰들, 하나 이상의 스피커들, 하나 이상의 이미지 센서들, 하나 이상의 디스플레이들 등 중 적어도 하나를 포함한다.
메모리(220)는 동적-랜덤 액세스 메모리(DRAM), 정적 랜덤-액세스 메모리(SRAM), 더블-데이터-레이트 랜덤-액세스 메모리(DDR RAM), 또는 다른 랜덤-액세스 솔리드-스테이트(solid-state) 메모리 디바이스들과 같은 고속 랜덤-액세스 메모리를 포함한다. 일부 구현예들에서, 메모리(220)는 하나 이상의 자기 디스크 저장 디바이스들, 광학 디스크 저장 디바이스들, 플래시 메모리 디바이스들, 또는 다른 비휘발성 솔리드-스테이트 저장 디바이스들과 같은 비휘발성 메모리를 포함한다. 메모리(220)는 선택적으로, 하나 이상의 프로세싱 유닛들(202)로부터 원격으로 위치된 하나 이상의 저장 디바이스들을 포함한다. 메모리(220)는 비일시적 컴퓨터 판독가능 저장 매체를 포함한다. 일부 구현예들에서, 메모리(220) 또는 메모리(220)의 비일시적 컴퓨터 판독가능 저장 매체는 다음의 프로그램들, 모듈들 및 데이터 구조들, 또는 선택적인 운영 체제(230) 및 SR 경험 모듈(240)을 포함하는 그들의 서브세트를 저장한다.
운영 체제(230)는 다양한 기본 시스템 서비스들을 처리하고 하드웨어 의존 태스크(task)들을 수행하기 위한 절차들을 포함한다. 일부 구현예들에서, SR 경험 모듈(240)은 하나 이상의 사용자들에 대한 하나 이상의 SR 경험들(예를 들어, 하나 이상의 사용자들에 대한 단일 SR 경험, 또는 하나 이상의 사용자들의 개개의 그룹들에 대한 다수의 SR 경험들)을 관리하고 조정하도록 구성된다. 이를 위해, 다양한 구현예들에서, SR 경험 모듈(240)은 데이터 획득 유닛(242), 추적 유닛(244), 조정 유닛(246), 및 데이터 송신 유닛(248)을 포함한다.
일부 구현예들에서, 데이터 획득 유닛(242)은 적어도 도 1b의 HMD(120B)로부터 데이터(예를 들어, 제시 데이터, 상호작용 데이터, 센서 데이터, 위치 데이터 등)를 획득하도록 구성된다. 이를 위해, 다양한 구현예들에서, 데이터 획득 유닛(242)은 그에 대한 명령어들 및/또는 로직(logic), 및 그에 대한 휴리스틱(heuristics) 및 메타데이터를 포함한다.
일부 구현예들에서, 추적 유닛(244)은 장면(105)을 맵핑하도록 그리고 도 1b의 장면(105)에 대한 적어도 HMD(120B)의 포지션(position)/위치를 추적하도록 구성된다. 이를 위해, 다양한 구현예들에서, 추적 유닛(244)은 그에 대한 명령어들 및/또는 로직, 및 그에 대한 휴리스틱 및 메타데이터를 포함한다.
일부 구현예들에서, 조정 유닛(246)은 HMD(120B)에 의해 사용자에게 제시되는 SR 경험을 관리 및 조정하도록 구성된다. 이를 위해, 다양한 구현예들에서, 조정 유닛(246)은 그에 대한 명령어들 및/또는 로직, 및 그에 대한 휴리스틱 및 메타데이터를 포함한다.
일부 구현예들에서, 데이터 송신 유닛(248)은 데이터(예를 들어, 제시 데이터, 위치 데이터 등)를 적어도 HMD(120B)로 송신하도록 구성된다. 이를 위해, 다양한 구현예들에서, 데이터 송신 유닛(248)은 그에 대한 명령어들 및/또는 로직, 및 그에 대한 휴리스틱 및 메타데이터를 포함한다.
데이터 획득 유닛(242), 추적 유닛(244), 조정 유닛(246), 및 데이터 송신 유닛(248)이 단일 디바이스(예컨대, 제어기(110)) 상에 존재하는 것으로 도시되어 있지만, 다른 구현예들에서, 데이터 획득 유닛(242), 추적 유닛(244), 조정 유닛(246), 및 데이터 송신 유닛(248)의 임의의 조합이 별개의 컴퓨팅 디바이스들 내에 위치될 수 있다는 것을 이해해야 한다.
게다가, 도 2는 본 명세서에 설명된 구현예들의 구조적 개략도와는 대조적으로 특정 구현예에 존재할 수 있는 다양한 특징부들의 기능 설명으로서 더 의도된다. 당업자들에 의해 인식되는 바와 같이, 별개로 도시된 아이템들은 조합될 수 있고 일부 아이템들은 분리될 수 있다. 예를 들어, 다양한 구현예들에서, 도 2에서 별개로 도시된 일부 기능 모듈들은 단일 모듈로 구현될 수 있고, 단일 기능 블록들의 다양한 기능들은 하나 이상의 기능 블록들에 의해 구현될 수 있다. 모듈들의 실제 수량 및 특정 기능들의 분할 그리고 특징부들이 그들 사이에서 어떻게 할당되는지는 구현예들마다 다를 것이고, 일부 구현예들에서, 특정 구현예에 대해 선택된 하드웨어, 소프트웨어, 및/또는 펌웨어의 특정 조합에 부분적으로 의존한다.
도 3은 일부 구현예들에 따른 HMD(120B)의 예의 블록도이다. 소정의 특정 특징부들이 예시되어 있지만, 당업자들은 본 개시내용으로부터, 다양한 다른 특징부들이 간결함을 위해 그리고 본 명세서에 개시된 구현예들의 더 적절한 양태들을 불명확하게 하지 않도록 하기 위해 예시되지 않았음을 이해할 것이다. 이를 위해, 비제한적인 예로서, 일부 구현예들에서, HMD(120B)는 하나 이상의 프로세싱 유닛들(302)(예를 들어, 마이크로프로세서들, ASIC들, FPGA들, GPU들, CPU들, 프로세싱 코어들 등), 하나 이상의 입/출력(I/O) 디바이스들 및 센서들(306), 하나 이상의 통신 인터페이스들(308)(예를 들어, USB, FIREWIRE, THUNDERBOLT, IEEE 802.3x, IEEE 802.11x, IEEE 802.16x, GSM, CDMA, TDMA, GPS, IR, 블루투스, 지그비, 및/또는 유사한 유형의 인터페이스), 하나 이상의 프로그래밍(예를 들어, I/O) 인터페이스들(310), 하나 이상의 SR 디스플레이들(312), 하나 이상의 선택적인 내부 및/또는 외부 대면 이미지 센서들(314), 메모리(320), 및 이들 및 다양한 다른 컴포넌트들을 상호연결시키기 위한 하나 이상의 통신 버스들(304)을 포함한다.
일부 구현예들에서, 하나 이상의 통신 버스들(304)은 시스템 컴포넌트들 사이의 통신을 상호연결시키고 제어하는 회로부를 포함한다. 일부 구현예들에서, 하나 이상의 I/O 디바이스들 및 센서들(306)은 관성 측정 유닛(inertial measurement unit, IMU), 가속도계, 자이로스코프, 온도계, 하나 이상의 생리학적 센서들(예를 들어, 혈압 모니터, 심박수 모니터, 혈중 산소 센서, 혈당 센서 등), 하나 이상의 마이크로폰들, 하나 이상의 스피커들, 햅틱 엔진, 하나 이상의 심도 센서들(예를 들어, 구조화된 광, 빛의 비행시간 등) 등 중 적어도 하나를 포함한다.
일부 구현예들에서, 하나 이상의 SR 디스플레이들(312)은 SR 경험을 사용자에게 제공하도록 구성된다. 일부 구현예들에서, 하나 이상의 SR 디스플레이들(312)은 홀로그래픽, 디지털 광 프로세싱(DLP), 액정 디스플레이(LCD), 실리콘 액정 표시장치(LCoS), 유기 발광 전계-효과 트랜지터리(OLET), 유기 발광 다이오드(OLED), 표면-전도 전자-방출기 디스플레이(SED), 전계-방출 디스플레이(FED), 양자점 발광 다이오드(QD-LED), 마이크로-전자기계 시스템(MEMS), 및/또는 유사한 디스플레이 유형들에 대응한다. 일부 구현예들에서, 하나 이상의 SR 디스플레이들(312)은 회절, 반사, 편광, 홀로그래픽 등의 도파관 디스플레이들에 대응한다. 예를 들어, HMD(120B)는 단일 SR 디스플레이를 포함한다. 다른 예에서, HMD(120B)는 사용자의 각각의 눈에 대한 SR 디스플레이를 포함한다. 일부 구현예들에서, 하나 이상의 SR 디스플레이들(312)은 MR 및 VR 콘텐츠를 제시할 수 있다.
일부 구현예들에서, 하나 이상의 이미지 센서들(314)은 사용자의 눈들을 포함하는 사용자의 얼굴의 적어도 일부분에 대응하는 이미지 데이터를 획득하도록 구성된다(그리고 눈-추적 카메라로 지칭될 수 있음). 일부 구현예들에서, 하나 이상의 이미지 센서들(314)은 HMD(120B)가 존재하지 않았다면 사용자에 의해 보여질 장면에 대응하는 이미지 데이터를 획득하기 위해 전방-대면하도록 구성된다(그리고 장면 카메라로 지칭될 수 있음). 하나 이상의 선택적인 이미지 센서들(314)은 하나 이상의 RGB 카메라들(예를 들어, 상보성 금속-산화물-반도체(CMOS) 이미지 센서 또는 CCD(charge-coupled device) 이미지 센서를 가짐), 하나 이상의 적외선(IR) 카메라들, 하나 이상의 이벤트-기반 카메라들 등을 포함할 수 있다.
메모리(320)는 DRAM, SRAM, DDR RAM, 또는 다른 랜덤-액세스 솔리드-스테이트 메모리 디바이스들과 같은 고속 랜덤-액세스 메모리를 포함한다. 일부 구현예들에서, 메모리(320)는 하나 이상의 자기 디스크 저장 디바이스들, 광학 디스크 저장 디바이스들, 플래시 메모리 디바이스들, 또는 다른 비휘발성 솔리드-스테이트 저장 디바이스들과 같은 비휘발성 메모리를 포함한다. 메모리(320)는 선택적으로, 하나 이상의 프로세싱 유닛들(302)로부터 원격으로 위치된 하나 이상의 저장 디바이스들을 포함한다. 메모리(320)는 비일시적 컴퓨터 판독가능 저장 매체를 포함한다. 일부 구현예들에서, 메모리(320) 또는 메모리(320)의 비일시적 컴퓨터 판독가능 저장 매체는 다음의 프로그램들, 모듈들 및 데이터 구조들, 또는 선택적인 운영 체제(330) 및 SR 제시 모듈(340)을 포함하는 그들의 서브세트를 저장한다.
운영 체제(330)는 다양한 기본 시스템 서비스들을 처리하고 하드웨어 의존 태스크들을 수행하기 위한 절차들을 포함한다. 일부 구현예들에서, SR 제시 모듈(340)은 하나 이상의 SR 디스플레이들(312)을 통해 SR 콘텐츠를 사용자에게 제시하도록 구성된다. 이를 위해, 다양한 구현예들에서, SR 제시 모듈(340)은 데이터 획득 유닛(342), SR 제시 유닛(344), SR 환경 유닛(346), 및 데이터 송신 유닛(348)을 포함한다.
일부 구현예들에서, 데이터 획득 유닛(342)은 적어도 도 1의 제어기(110)로부터 데이터(예컨대, 제시 데이터, 상호작용 데이터, 센서 데이터, 위치 데이터 등)를 획득하도록 구성된다. 이를 위해, 다양한 구현예들에서, 데이터 획득 유닛(342)은 그에 대한 명령어들 및/또는 로직, 및 그에 대한 휴리스틱 및 메타데이터를 포함한다.
일부 구현예들에서, SR 제시 유닛(344)은 하나 이상의 SR 디스플레이들(312)을 통해 SR 콘텐츠를 제시하도록 구성된다. 이를 위해, 다양한 구현예들에서, SR 제시 유닛(344)은 그에 대한 명령어들 및/또는 로직, 및 그에 대한 휴리스틱 및 메타데이터를 포함한다.
일부 구현예들에서, SR 환경 유닛(346)은 SR 환경의 하나 이상의 환경 상태들을 생성하도록 구성된다. 이를 위해, 다양한 구현예들에서, SR 환경 유닛(346)은 그에 대한 명령어들 및/또는 로직, 및 그에 대한 휴리스틱 및 메타데이터를 포함한다.
일부 구현예들에서, 데이터 송신 유닛(348)은 데이터(예컨대, 제시 데이터, 위치 데이터 등)를 적어도 제어기(110)로 송신하도록 구성된다. 이를 위해, 다양한 구현예들에서, 데이터 송신 유닛(348)은 그에 대한 명령어들 및/또는 로직, 및 그에 대한 휴리스틱 및 메타데이터를 포함한다.
데이터 획득 유닛(342), SR 제시 유닛(344), SR 환경 유닛(346), 및 데이터 송신 유닛(348)이 단일 디바이스(예컨대, 도 1b의 HMD(120B)) 상에 존재하는 것으로 도시되어 있지만, 다른 구현예들에서, 데이터 획득 유닛(342), SR 제시 유닛(344), SR 환경 유닛(346), 및 데이터 송신 유닛(348)의 임의의 조합이 별개의 컴퓨팅 디바이스들 내에 위치될 수 있다는 것을 이해해야 한다.
게다가, 도 3은 본 명세서에 설명된 구현예들의 구조적 개략도와는 대조적으로 특정 구현예에 존재할 수 있는 다양한 특징부들의 기능 설명으로서 더 의도된다. 당업자들에 의해 인식되는 바와 같이, 별개로 도시된 아이템들은 조합될 수 있고 일부 아이템들은 분리될 수 있다. 예를 들어, 다양한 구현예들에서, 도 3에서 별개로 도시된 일부 기능 모듈들은 단일 모듈로 구현될 수 있고, 단일 기능 블록들의 다양한 기능들은 하나 이상의 기능 블록들에 의해 구현될 수 있다. 모듈들의 실제 수량 및 특정 기능들의 분할 그리고 특징부들이 그들 사이에서 어떻게 할당되는지는 구현예들마다 다를 것이고, 일부 구현예들에서, 특정 구현예에 대해 선택된 하드웨어, 소프트웨어, 및/또는 펌웨어의 특정 조합에 부분적으로 의존한다.
도 4는 전자 디바이스(410)가 장면(405)을 조사하는 상태의 장면(405)을 예시한다. 장면(405)은 테이블(408) 및 벽(407)을 포함한다.
전자 디바이스(410)는, 디스플레이 상에, 테이블(418)의 표현 및 벽(417)의 표현을 포함하는 장면(415)의 표현을 디스플레이한다. 다양한 구현예들에서, 장면(415)의 표현은 장면(405)을 향해 지향된 시야를 갖는 전자 디바이스(410)의 장면 카메라로 캡처된 장면의 이미지에 기초하여 생성된다. 장면(415)의 표현은 테이블(418)의 표현 상에 디스플레이된 SR 환경(409)을 추가로 포함한다.
전자 디바이스(410)가 장면(405)을 중심으로 이동함에 따라, 장면(415)의 표현이 전자 디바이스(410)의 관점의 변경에 따라 변한다. 추가로, SR 환경(409)이 전자 디바이스(410)의 관점의 변경에 따라 대응하여 변한다. 따라서, 전자 디바이스(410)가 이동함에 따라, SR 환경(409)은 테이블(418)의 표현에 대해 고정된 관계로 보인다.
도 5a는 SR 환경(409)을 포함하는 장면(415)의 표현의 제1 이미지(500A)를 디스플레이하는 전자 디바이스(410)의 디스플레이의 일부를 예시한다. 도 5a에서, SR 환경(409)은 제1 환경 상태에 의해 정의되고 제1 환경 시간(예컨대, 1)과 연관된다. 제1 환경 상태는 하나 이상의 에셋들의 SR 환경(409) 내의 포함을 나타내고, 하나 이상의 에셋들의 하나 이상의 상태들을 추가로 나타낸다. 다양한 구현예들에서, 환경 상태는 XML 파일과 같은 데이터 객체이다.
따라서, 제1 이미지(500A)에 디스플레이된 SR 환경(409)은 제1 환경 상태에 의해 정의된 바와 같은 복수의 에셋들을 포함한다. 도 5a에서, SR 환경(409)은 제1 높이(591)를 갖는 제1 나무(511) 및 제2 높이(592)를 갖는 제2 나무(512)를 포함한다. SR 환경(409)은 제1 위치(581)에서의 제1 다람쥐(521) 및 제2 위치(582)에서의 제2 다람쥐(522)를 포함한다. SR 환경은 제1 도토리(531)를 포함한다.
제1 환경 상태는 제1 나무(511)의 포함을 나타내고, 제1 나무(511)의 하나 이상의 상태들을 정의한다. 예를 들어, 제1 환경 상태는 제1 나무(511)의 제1 나이 및 제1 나무(511)의 제1 위치를 나타낸다. 제1 환경 상태는 제2 나무(512)의 포함을 나타내고, 제2 나무(512)의 하나 이상의 상태들을 정의한다. 예를 들어, 제1 환경 상태는 제2 나무(512)의 제1 나이 및 제2 나무(512)의 제1 위치를 나타낸다.
제1 환경 상태는 제1 다람쥐(521)의 포함을 나타내고, 제1 다람쥐(521)의 하나 이상의 상태들을 정의한다. 예를 들어, 제1 환경 상태는 제1 다람쥐(521)의 제1 나이, 제1 다람쥐(521)의 제1 위치, 및 제1 다람쥐(521)가 제1 도토리(531)를 향해 이동하는 것을 나타내는 제1 다람쥐(521)의 제1 모션 벡터를 나타낸다. 제1 환경 상태는 제2 다람쥐(522)의 포함을 나타내고, 제2 다람쥐(522)의 하나 이상의 상태들을 정의한다. 예를 들어, 제1 환경 상태는 제2 다람쥐(522)의 제1 나이, 제2 다람쥐(522)의 제1 위치, 및 제2 다람쥐(522)가 제2 나무(512)를 향해 이동하는 것을 나타내는 제2 다람쥐(522)의 제1 모션 벡터를 나타낸다.
제1 환경 상태는 제1 도토리(531)의 포함을 나타내고, 제1 도토리(531)의 하나 이상의 상태들을 정의한다. 예를 들어, 제1 환경 상태는 제1 도토리(531)의 제1 위치 및 제1 도토리(531)가 다람쥐에 의해 들려 있지 않음을 나타내는 제1 도토리(531)의 제1 홀드 상태를 나타낸다.
제1 이미지(500A)는 시간 표시자(540) 및 복수의 타임스케일 어포던스들(551 내지 554)을 추가로 포함한다. 복수의 타임스케일 어포던스들(551 내지 554)은 일시정지 어포던스(551), 재생 어포던스(552), 빠른 재생 어포던스(553), 및 더 빠른 재생 어포던스(554)를 포함한다. 도 5a에서, 시간 표시자(540)는 1의 SR 환경(409)의 현재 시간을 나타낸다. 추가로, 일시정지 어포던스(551)가 현재 선택되어 있다(상이한 방식의 디스플레이로 나타낸 바와 같음).
도 5b는, 재생 어포던스(552)의 사용자 선택에 응답한 그리고 프레임 타임(예컨대, 디스플레이 프레임 레이트의 역) 이후의 SR 환경(409)을 포함하는 장면(415)의 표현의 제2 이미지(500B)를 디스플레이하는 전자 디바이스(410)의 디스플레이의 일부를 예시한다. 도 5b에서, 시간 표시자(540)는 2(예를 들어, 도 5a에 비해 1의 제1 타임스텝)의 SR 환경(409)의 현재 시간을 나타낸다. 도 5b에서, 재생 어포던스(552)가 현재 선택되어 있다(상이한 방식의 디스플레이로 나타낸 바와 같음).
도 5b에서, SR 환경(409)은 제2 환경 상태에 의해 정의되고 제2 환경 시간(예컨대, 2)과 연관된다. 다양한 구현예들에서, 제2 환경 상태는 제1 모델에 따라 그리고 제1 환경 상태에 기초하여 생성된다.
다양한 구현예들에서, 제1 모델에 따라 제2 환경 상태를 결정하는 것은 제1 나무(511)의 제1 나이에 제1 타임스텝(예를 들어, 1)을 추가함으로써 제1 나무(511)의 제2 나이를 결정하는 것, 제2 나무(512)의 제1 나이에 제1 타임스텝을 추가함으로써 제2 나무(512)의 제2 나이를 결정하는 것, 제1 다람쥐(521)의 제1 나이에 제1 타임스텝을 추가함으로써 제1 다람쥐(521)의 제2 나이를 결정하는 것, 및 제2 다람쥐(522)의 제1 나이에 제1 타임스텝을 추가함으로써 제2 다람쥐(522)의 제2 나이를 결정하는 것을 포함한다.
다양한 구현예들에서, 제1 모델에 따라 제2 환경 상태를 결정하는 것은 제1 나무(511)의 제1 위치를 복사함으로써 제1 나무(511)의 제2 위치를 결정하는 것 및 제2 나무(512)의 제1 위치를 복사함으로써 제2 나무(512)의 제2 위치를 결정하는 것을 포함한다. 따라서, 제1 모델은 제1 나무(511) 및 제2 나무(512)(예를 들어, "나무"의 에셋 유형을 갖는 에셋들)가 위치를 변경하지 않음을 나타낸다.
다양한 구현예들에서, 제1 모델에 따라 제2 환경 상태를 결정하는 것은 제1 다람쥐(521)의 제1 모션 벡터에 따라 제1 다람쥐(521)의 제1 위치를 조정함으로써 제1 다람쥐(521)의 제2 위치를 결정하는 것 및 제2 다람쥐(522)의 제1 모션 벡터에 따라 제2 다람쥐(522)의 제1 위치를 조정함으로써 제2 다람쥐(522)의 제2 위치를 결정하는 것을 포함한다. 따라서, 제1 모델은 제1 다람쥐(521) 및 제2 다람쥐(522)(예를 들어, "동물"의 에셋 유형을 갖는 에셋들)가 모션 벡터에 따라 위치를 변경함을 나타낸다.
다양한 구현예들에서, 제1 모델에 따라 제2 환경 상태를 결정하는 것은 제1 다람쥐(521)의 제2 위치에 대한 다른 에셋들의 근접성에 기초하여 제1 다람쥐(521)의 제2 모션 벡터를 결정하는 것 및 제2 다람쥐(522)의 제2 위치에 대한 다른 에셋들의 근접성에 기초하여 제2 다람쥐(522)의 제2 모션 벡터를 결정하는 것을 포함한다. 예를 들어, 제1 모델은 제1 다람쥐(521) 및 제2 다람쥐(522)(예컨대, "동물"의 에셋 유형 및 "다람쥐"의 에셋 서브유형을 갖는 에셋들)가 그들을 근처 에셋들(예를 들어, 나무들, 도토리들, 또는 다른 다람쥐들)로 지향시키는 모션 벡터들을 가짐을 나타낸다.
다양한 구현예들에서, 제2 환경 상태를 결정하는 것은 제1 도토리(531)의 제1 위치 및 제1 도토리(531)의 제1 홀드 상태에 기초하여 제1 도토리(531)의 제2 위치를 결정하는 것을 포함한다. 예를 들어, 제1 모델은, 홀드 상태가 제1 도토리(531)(예컨대, "도토리"의 에셋 유형을 갖는 에셋들)가 들려 있지 않음을 나타낼 때는, 제1 도토리(531)가 위치를 변경하지 않지만, 제1 도토리(531)를 들고 있는 에셋(예를 들어, 다람쥐)의 위치의 변경에 따라서 변경함을 나타낸다.
다양한 구현예들에서, 제2 환경 상태를 결정하는 것은 제1 도토리(531)의 제2 위치 및 제1 다람쥐(521)의 제2 위치 및 제2 다람쥐(522)의 제2 위치에 기초하여 제1 도토리(531)의 제2 홀드 상태를 결정하는 것을 포함한다. 예를 들어, 제1 모델은, "동물"의 에셋 유형 및 "다람쥐"의 에셋 서브유형을 갖는 특정 에셋이 제1 도토리(531)(예를 들어, "도토리"의 에셋 유형을 갖는 에셋들)와 동일한 위치에 있을 때 그 특정 에셋에 의해 제1 도토리(531)가 들려 있음을 나타내도록 제1 도토리(531)가 그들의 홀드 상태를 변경함을 나타낸다.
따라서, 도 5a에 비해, 도 5b에서, 제1 다람쥐(521)는 제1 도토리(531)에 더 가까운 제3 위치(583)로 이동했고, 제2 다람쥐(522)는 제2 나무(512)에 더 가까운 위치로 이동했다.
도 5c는 다른 프레임 타임 이후의 SR 환경(409)을 포함하는 장면(415)의 표현의 제3 이미지(500C)를 디스플레이하는 전자 디바이스(410)의 디스플레이의 일부를 예시한다. 도 5c에서, 시간 표시자(540)는 3(예를 들어, 도 5b에 비해 1의 제1 타임스텝)의 SR 환경(409)의 현재 시간을 나타낸다. 도 5c에서, 재생 어포던스(552)는 선택된 채로 남아있다(상이한 방식의 디스플레이로 나타낸 바와 같음).
도 5c에서, SR 환경(409)은 제3 환경 상태에 의해 정의되고 제3 환경 시간과 연관된다. 다양한 구현예들에서, 제3 환경 상태는 제1 모델에 따라 그리고 제2 환경 상태에 기초하여 생성된다.
다양한 구현예들에서, 제1 모델에 따라 제3 환경 상태를 결정하는 것은 제1 나무(511)의 제2 나이에 제1 타임스텝(예를 들어, 1)을 추가함으로써 제1 나무(511)의 제3 나이를 결정하는 것, 제2 나무(512)의 제2 나이에 제1 타임스텝을 추가함으로써 제2 나무(512)의 제3 나이를 결정하는 것, 제1 다람쥐(521)의 제2 나이에 제1 타임스텝을 추가함으로써 제1 다람쥐(521)의 제3 나이를 결정하는 것, 및 제2 다람쥐(522)의 제2 나이에 제1 타임스텝을 추가함으로써 제2 다람쥐(522)의 제3 나이를 결정하는 것을 포함한다.
다양한 구현예들에서, 제1 모델에 따라 제3 환경 상태를 결정하는 것은 제1 나무(511)의 제2 위치를 복사함으로써 제1 나무(511)의 제2 위치를 결정하는 것 및 제2 나무(512)의 제2 위치를 복사함으로써 제2 나무(512)의 제3 위치를 결정하는 것을 포함한다. 따라서, 제1 모델은 제1 나무(511) 및 제2 나무(512)(예를 들어, "나무"의 에셋 유형을 갖는 에셋들)가 위치를 변경하지 않음을 나타낸다.
다양한 구현예들에서, 제1 모델에 따라 제3 환경 상태를 결정하는 것은 제1 다람쥐(521)의 제2 모션 벡터에 따라 제1 다람쥐(521)의 제2 위치를 조정함으로써 제1 다람쥐(521)의 제3 위치를 결정하는 것 및 제2 다람쥐(522)의 제2 모션 벡터에 따라 제2 다람쥐(522)의 제2 위치를 조정함으로써 제2 다람쥐(522)의 제3 위치를 결정하는 것을 포함한다. 따라서, 제1 모델은 제1 다람쥐(521) 및 제2 다람쥐(522)(예를 들어, "동물"의 에셋 유형을 갖는 에셋들)가 모션 벡터에 따라 위치를 변경함을 나타낸다.
다양한 구현예들에서, 제1 모델에 따라 제3 환경 상태를 결정하는 것은 제1 다람쥐(521)의 제3 위치에 대한 다른 에셋들의 근접성에 기초하여 제1 다람쥐(521)의 제3 모션 벡터를 결정하는 것 및 제2 다람쥐(522)의 제3 위치에 대한 다른 에셋들의 근접성에 기초하여 제2 다람쥐(522)의 제3 모션 벡터를 결정하는 것을 포함한다. 예를 들어, 제1 모델은 제1 다람쥐(521) 및 제2 다람쥐(522)(예컨대, "동물"의 에셋 유형 및 "다람쥐"의 에셋 서브유형을 갖는 에셋들)가 그들을 근처 에셋들(예를 들어, 나무들, 도토리들, 또는 다른 다람쥐들)로 지향시키는 모션 벡터들을 가짐을 나타낸다.
다양한 구현예들에서, 제3 환경 상태를 결정하는 것은 제1 도토리(531)의 제2 위치 및 제1 도토리(531)의 제2 홀드 상태에 기초하여 제1 도토리(531)의 제3 위치를 결정하는 것을 포함한다. 예를 들어, 제1 모델은, 홀드 상태가 제1 도토리(531)(예컨대, "도토리"의 에셋 유형을 갖는 에셋들)가 들려 있지 않음을 나타낼 때는, 제1 도토리(531)가 위치를 변경하지 않지만, 제1 도토리(531)를 들고 있는 에셋(예를 들어, 다람쥐)의 위치의 변경에 따라서 변경함을 나타낸다.
다양한 구현예들에서, 제3 환경 상태를 결정하는 것은 제1 도토리(531)의 제3 위치 및 제1 다람쥐(521)의 제3 위치 및 제2 다람쥐(522)의 제3 위치에 기초하여 제1 도토리(531)의 제3 홀드 상태를 결정하는 것을 포함한다. 따라서, 제1 모델은, "동물"의 에셋 유형 및 "다람쥐"의 에셋 서브유형을 갖는 특정 에셋이 제1 도토리(531)(예를 들어, "도토리"의 에셋 유형을 갖는 에셋들)와 동일한 위치에 있을 때 그 특정 에셋에 의해 제1 도토리(531)가 들려 있음을 나타내도록 제1 도토리(531)가 그들의 홀드 상태를 변경함을 나타낸다.
다양한 구현예들에서, 제3 환경 상태를 결정하는 것은 에셋이 새로운 에셋을 낳음을 결정하는 것을 포함한다. 예를 들어, 다양한 구현예들에서, 제1 모델은 "나무"의 에셋 유형을 갖는 에셋들이 "도토리"의 에셋 유형을 갖는 에셋을 낳을 확률(이는 에셋의 현재 나이에 기초할 수 있음)을 가짐을 나타낸다.
다양한 구현예들에서, 제3 환경 상태를 결정하는 것은 에셋이 만료됨을 결정하는 것을 포함한다. 예를 들어, 다양한 구현예들에서, 제1 모델은 "다람쥐"의 에셋 유형을 갖는 에셋들이, 에셋의 나이가 임계치에 도달할 때 만료됨을 나타낸다. 다른 예로서, 다양한 구현예들에서, 제1 모델은 "나무"의 에셋 유형을 갖는 에셋들이 만료될 확률(이는 에셋의 현재 나이에 기초할 수 있음)을 가짐을 나타낸다.
도 5b에 비해, 도 5c에서, 제1 다람쥐(521)는 제1 도토리(531)의 제5 위치(585)로 위치를 이동했고, 제2 다람쥐(522)는 제2 나무(512)에 보다 더 가까운 제6 위치로 이동했다. 추가로, SR 환경(409)은 제2 나무(512)에 의해 생성된 새로운 에셋인 제2 도토리(532)를 포함한다.
도 5d는 다른 프레임 타임 이후의 SR 환경(409)을 포함하는 장면(415)의 표현의 제4 이미지(500D)를 디스플레이하는 전자 디바이스(410)의 디스플레이의 일부를 예시한다. 도 5d에서, 시간 표시자(540)는 4(예를 들어, 도 5c에 비해 1의 타임스텝)의 SR 환경(409)의 현재 시간을 나타낸다. 도 5d에서, 재생 어포던스(552)는 선택된 채로 남아있다(상이한 방식의 디스플레이로 나타낸 바와 같음).
도 5d에서, SR 환경(409)은 제4 환경 상태에 의해 정의되고 제4 환경 시간과 연관된다. 다양한 구현예들에서, 제4 환경 상태는 제1 모델에 따라 그리고 제3 환경 상태에 기초하여 생성된다. 다양한 구현예들에서, 제1 모델에 따라 그리고 제3 환경 상태에 기초하여 제4 환경 상태를 결정하는 것은, 제1 모델에 따라 그리고 제2 환경 상태에 기초하여 제3 환경 상태를 결정하는 것에 관하여 전술된 바와 같이 수행된다.
도 5c에 비해, 도 5d에서, 제1 다람쥐(521)(제1 도토리(531)를 들고 있음)는 제1 나무(511)로부터 더 멀리 위치를 이동시켰고, 제2 다람쥐(522)는 제2 도토리(532)에 더 가까운 제7 위치(587)로 이동했다.
도 5e는, 빠른 재생 어포던스(553)의 사용자 선택에 응답한 그리고 프레임 타임 이후의 SR 환경(409)을 포함하는 장면(415)의 표현의 제5 이미지(500E)를 디스플레이하는 전자 디바이스(410)의 디스플레이의 일부를 예시한다. 도 5e에서, 시간 표시자(540)는 1,000,004(예를 들어, 도 5d에 비해 1,000,000의 제2 타임스텝)의 SR 환경(409)의 현재 시간을 나타낸다. 도 5e에서, 빠른 재생 어포던스(553)가 현재 선택되어 있다(상이한 방식의 디스플레이로 나타낸 바와 같음).
도 5e에서, SR 환경(409)은 제5 환경 상태에 의해 정의되고 제5 환경 시간과 연관된다. 다양한 구현예들에서, 제4 환경 시간과 제5 환경 시간 사이의 제2 타임스텝이, 예를 들어, 제1 환경 시간과 제2 환경 시간 사이의 제1 타임스텝보다 훨씬 크기 때문에, 제5 환경 상태는 제1 모델과는 상이한 제2 모델에 따라, 그리고 제4 환경 상태에 기초하여 생성된다.
특히, 제1 모델을 1백만 회 적용하여 제5 환경 상태를 결정하기보다는 오히려, 제5 환경 상태는 제2 모델을 한번 적용하여 생성된다.
다양한 구현예들에서, 제2 모델은 제1 모델보다 더 계산 효율적이다. 그러한 장기간 후에는, 제4 환경 상태의 소정의 에셋들의 소정의 상태들이 제5 환경 상태의 대응하는 상태들을 결정하는 데 유용하지 않을 수 있다. 예를 들어, 제1 환경 상태에서의 제1 다람쥐(521)의 위치가 제1 모델에서는 제2 환경 상태에서의 제1 다람쥐(521)의 위치를 결정하는 데 사용되는 반면, 제4 환경 상태에서의 제1 다람쥐(521)의 위치는 제5 환경 상태에서의 제1 다람쥐(521)의 위치를 결정하는 데 사용되지 않는데, 따라서, 제2 모델은 제1 모델보다 더 계산 효율적이다.
다양한 구현예들에서, 제2 모델에 따라 제5 환경 상태를 결정하는 것은 제1 나무(511)의 제4 나이에 제2 타임스텝(예를 들어, 1,000,000)을 추가함으로써 제1 나무(511)의 제5 나이를 결정하는 것, 제2 나무(512)의 제4 나이에 제2 타임스텝을 추가함으로써 제2 나무(512)의 제5 나이를 결정하는 것, 제1 다람쥐(521)의 제4 나이에 제2 타임스텝을 추가함으로써 제1 다람쥐(521)의 제5 나이를 결정하는 것, 및 제2 다람쥐(522)의 제4 나이에 제2 타임스텝을 추가함으로써 제2 다람쥐(522)의 제5 나이를 결정하는 것을 포함한다.
다양한 구현예들에서, 제2 모델에 따라 제5 환경 상태를 결정하는 것은 제1 나무(511)의 제4 위치를 복사함으로써 제1 나무(511)의 제5 위치를 결정하는 것 및 제2 나무(512)의 제4 위치를 복사함으로써 제2 나무(512)의 제5 위치를 결정하는 것을 포함한다. 따라서, 제2 모델은 제1 나무(511) 및 제2 나무(512)(예를 들어, "나무"의 에셋 유형을 갖는 에셋들)가 위치를 변경하지 않음을 나타낸다.
다양한 구현예들에서, 제2 모델에 따라 제5 환경 상태를 결정하는 것은 제1 다람쥐(521)의 제5 위치를 결정하는 것 및 제2 다람쥐(522)의 제5 위치를 결정하는 것을 포함한다. 제1 모델에 따르면, 제1 다람쥐(521)의 제5 위치 및 제2 다람쥐(522)의 제5 위치가 그들 각자의 제4 위치들 및 제4 모션 벡터들에 기초하여 결정되는 반면, 다양한 구현예들에서, 제1 다람쥐(521)의 제5 위치 및 제2 다람쥐(522)의 제5 위치는 그들 각자의 제4 위치들 및 제4 모션 벡터들과는 독립적으로 결정된다. 예를 들어, 다양한 구현들에서, 제1 다람쥐(521)의 제5 위치를 결정하는 것 및 제2 다람쥐(522)의 제5 위치를 결정하는 것은 SR 환경의 위치들을 무작위로 선택하는 것을 포함한다. 일부 실시예들에서, 각자의 제5 위치들은 SR 환경에 걸친 균일한 분포에 기초하여 선택된다. 일부 실시예들에서, 각자의 제5 위치들은 확률 분포에 기초하여 선택된다(이는 다른 에셋들의 존재에 기초할 수 있음). 예를 들어, 일부 실시예들에서, 제1 다람쥐(521) 및 제2 다람쥐(522)는 다른 에셋들에 더 가깝게 위치될 가능성이 더 크다.
전술된 바와 같이, 다양한 구현예들에서, 제1 모델에 따라 환경 상태를 결정하는 것은 제1 다람쥐(521) 및 제2 다람쥐(522)의 모션 벡터들을 결정하는 것을 포함한다. 그러나, 또한 전술된 바와 같이, 다양한 구현예들에서, 제1 다람쥐(521) 및 제2 다람쥐(522)의 위치들은 그들의 각자의 모션 벡터들과는 독립적으로 결정된다. 따라서, 다양한 구현예들에서, 제5 환경 상태를 결정하는 것은 제1 다람쥐(521) 및 제2 다람쥐(522)의 모션 벡터들을 결정하는 것을 포함하지 않는다. 다양한 구현예들에서, 제5 환경 상태를 결정하는 것은 모션 벡터들을 더미(dummy) 또는 디폴트 값들로서 결정하는 것을 포함한다. 따라서, 다양한 구현예들에서, 제5 환경 상태를 결정하는 것은 다람쥐들의 위치에 대한 다른 에셋들의 근접성과는 독립적으로 모션 벡터들을 결정하는 것을 포함한다.
전술한 바와 같이, 다양한 구현예들에서, 제1 모델에 따라 환경 상태를 결정하는 것은 "도토리"의 에셋 유형을 갖는 에셋의 위치 및/또는 홀드 상태를 결정하는 것을 포함한다. 대조적으로, 다양한 구현예들에서, 제2 모델에 따라 제5 환경 상태를 결정하는 것은 에셋 유형 "도토리"의 에셋들을 제거하는 것 및 그들을 "나무"의 에셋 유형을 갖는 에셋들의 수(및 "도토리"의 에셋 유형을 갖는 에셋을 낳을 그들 각자의 확률들)에 기초하여 에셋 유형 "도토리"의 새로운 에셋들로 잠재적으로 대체하는 것을 포함한다.
따라서, 도 5d에 비해, 도 5e에서, 제1 다람쥐(521) 및 제2 다람쥐(522)는 위치를 완전히 변경했고, 제2 나무(512)는 제3 높이(593)로 더 높이 자랐고, 제1 도토리(531) 및 제2 도토리(532)는 사라졌고, 제3 도토리(533)가 보인다.
도 5f는 다른 프레임 타임 이후의 SR 환경(409)을 포함하는 장면(415)의 표현의 제6 이미지(500F)를 디스플레이하는 전자 디바이스(410)의 디스플레이의 일부를 예시한다. 도 5f에서, 시간 표시자(540)는 2,000,004(예를 들어, 도 5e에 비해 1,000,000의 타임스텝)의 SR 환경(409)의 현재 시간을 나타낸다. 도 5f에서, 빠른 재생 어포던스(553)는 선택된 채로 남아있다(상이한 방식의 디스플레이로 나타낸 바와 같음).
도 5f에서, SR 환경(409)은 제6 환경 상태에 의해 정의되고 제6 환경 시간과 연관된다. 다양한 구현예들에서, 제6 환경 상태는 제2 모델에 따라 그리고 제5 환경 상태에 기초하여 생성된다. 다양한 구현예들에서, 제2 모델에 따라 그리고 제5 환경 상태에 기초하여 제6 환경 상태를 결정하는 것은, 제2 모델에 따라 그리고 제4 환경 상태에 기초하여 제5 환경 상태를 결정하는 것에 관하여 전술된 바와 같이 수행된다.
도 5e에 비해, 도 5f에서, 제1 다람쥐(521) 및 제2 다람쥐는 다시 위치를 완전히 변경했고, 제2 나무(512)는 다시 제4 높이(594)로 더 높이 자랐고, 제3 도토리(533)는 사라졌다.
도 5g는, 더 빠른 재생 어포던스(553)의 사용자 선택에 응답한 그리고 프레임 타임 이후의 SR 환경(409)을 포함하는 장면(415)의 표현의 제7 이미지(500G)를 디스플레이하는 전자 디바이스(410)의 디스플레이의 일부를 예시한다. 도 5g에서, 시간 표시자(540)는 10,002,000,004(예를 들어, 도 5f에 비해 10,000,000,000의 제3 타임스텝)의 SR 환경(409)의 현재 시간을 나타낸다. 도 5g에서, 더 빠른 재생 어포던스(554)가 현재 선택되어 있다(상이한 방식의 디스플레이로 나타낸 바와 같음).
도 5g에서, SR 환경(409)은 제7 환경 상태에 의해 정의되고 제7 환경 시간과 연관된다. 다양한 구현예들에서, 제6 환경 시간과 제7 환경 시간 사이의 제3 타임스텝이, 예를 들어, 제4 환경 시간과 제5 환경 시간 사이의 제2 타임스텝보다 훨씬 크기 때문에, 제7 환경 상태는 제2 모델과는 상이한 제3 모델에 따라, 그리고 제6 환경 상태에 기초하여 생성된다.
특히, 제1 모델을 1백억 회 (또는 제2 모델을 1만 회) 적용하여 제7 환경 상태를 결정하기보다는 오히려, 제5 환경 상태는 제3 모델을 한번 적용하여 생성된다.
다양한 구현예들에서, 제3 모델은 제2 모델보다 더 계산 효율적이다. 그러한 장기간 후에는, 제6 환경 상태의 소정의 에셋들의 소정의 상태들이 제5 환경 상태를 결정하는 데 유용하지 않을 수 있다. 예를 들어, 제4 환경 상태에서의 제2 나무(512)의 나이가 제2 모델에서는 제5 환경 상태에서의 제2 나무(512)의 나이를 결정하는 데 사용되는 반면, 제3 모델에 의해서는 모든 에셋들의 나이 및 위치가 사용되지 않는다. 나무들, 도토리들, 및 다람쥐들의 수에 기초하기보다는 오히려, 제3 모델은 제7 환경 시간에 나무들, 도토리들, 및 다람쥐들의 예상되는 수에 기초하여 새로운 에셋들을 생성하고, 그들을 위치 및 나이에 무작위로 분포시킨다.
도 5f에 비해, 도 5g에서, 제1 다람쥐(521) 및 제2 다람쥐(522)는 제3 다람쥐(523) 및 제4 다람쥐(524)로 대체되었고; 제1 나무(511) 및 제2 나무(512)는 제3 나무(513), 제4 나무(514), 및 제5 나무(515)로 대체되었고; 제4 도토리(534)가 보인다.
도 5h는 다른 프레임 타임 이후의 SR 환경(409)을 포함하는 장면(415)의 표현의 제8 이미지(500H)를 디스플레이하는 전자 디바이스(410)의 디스플레이의 일부를 예시한다. 도 5h에서, 시간 표시자(540)는 20,002,000,004(예를 들어, 도 5g에 비해 10,000,000,000의 제3 타임스텝)의 SR 환경(409)의 현재 시간을 나타낸다. 도 5h에서, 더 빠른 재생 어포던스(554)는 선택된 채로 남아있다(상이한 방식의 디스플레이로 나타낸 바와 같음).
도 5h에서, SR 환경(409)은 제8 환경 상태에 의해 정의되고 제8 환경 시간과 연관된다. 다양한 구현예들에서, 제8 환경 상태는 제3 모델에 따라 그리고 제7 환경 상태에 기초하여 생성된다. 다양한 구현예들에서, 제3 모델에 따라 그리고 제7 환경 상태에 기초하여 제8 환경 상태를 결정하는 것은, 제3 모델에 따라 그리고 제6 환경 상태에 기초하여 제7 환경 상태를 결정하는 것에 관하여 전술된 바와 같이 수행된다.
도 5g에 비해, 도 5h에서, 제3 다람쥐(523) 및 제4 다람쥐(524)는 제5 다람쥐(525), 제6 다람쥐(526), 및 제7 다람쥐(527)로 대체되었고; 제3 나무(513), 제4 나무(514), 및 제5 나무(515)는 제6 나무(516), 제7 나무(517), 제8 나무(518), 및 제9 나무(519)로 대체되었고; 제4 도토리(534)는 제5 도토리(535) 및 제6 도토리(536)로 대체되었다.
다양한 구현예들에서, 환경 시간에 나무들, 도토리들, 및 다람쥐들의 예상되는 수에 기초하여 새로운 에셋들을 생성하기보다는 오히려, 나무들, 도토리들, 및 다람쥐들의 수에 기초하여, 제3 모델은 에셋이 그 환경 시간에 각각의 위치에 존재할 가능성을 나타내는 에셋 분포를 생성한다. 예를 들어, 구름으로서, 에셋 분포를 디스플레이하는 것은 그 환경 시간에 에셋 유형의 개체군 밀도를 표현한다.
도 5i는 에셋 분포를 갖는 SR 환경(409)을 포함하는 장면(415)의 표현의 제9 이미지(500I)를 디스플레이하는 전자 디바이스(410)의 디스플레이의 일부를 예시한다. 도 5i에서, 시간 표시자(540)는 20,002,000,004(예를 들어, 도 5g에 비해 10,000,000,000의 제3 타임스텝)의 SR 환경(409)의 현재 시간을 나타낸다. 도 5i에서, 더 빠른 재생 어포던스(554)는 선택된 채로 남아있다(상이한 방식의 디스플레이로 나타낸 바와 같음).
도 5h에 비해, 도 5i에서, 제5 다람쥐(525), 제6 다람쥐(526), 및 제7 다람쥐(527)는 디스플레이되지 않는다. 오히려, 제8 환경 시간에 다람쥐가 각자의 위치들에 존재할 가능성을 나타내는 다람쥐 분포(561)가 디스플레이된다.
도 6은 일부 구현예들에 따른 환경 상태(600)를 예시한다. 다양한 구현예들에서, 환경 상태(600)는 XML 파일과 같은 데이터 객체이다. 환경 상태(600)는 하나 이상의 에셋들의 SR 환경 내의 포함을 나타내고, 하나 이상의 에셋들의 하나 이상의 상태들을 추가로 나타낸다.
환경 상태(600)는 환경 상태와 연관된 환경 시간을 나타내는 시간 필드(610)를 포함한다.
환경 상태(600)는 SR 환경의 각자의 에셋들과 연관된 복수의 개별 에셋 필드들(630, 640)을 포함하는 에셋 필드(620)를 포함한다. 도 6은 단지 2개의 에셋들만을 예시하지만, 에셋 필드(620)는 임의의 수의 에셋 필드들을 포함할 수 있다는 것이 이해될 것이다.
에셋 필드(620)는 제1 에셋 필드(630)를 포함한다. 제1 에셋 필드(630)는 제1 에셋의 에셋 식별자를 포함하는 제1 에셋 식별자 필드(631)를 포함한다. 다양한 구현예들에서, 에셋 식별자는 고유 번호를 포함한다. 다양한 구현예들에서, 에셋 식별자는 에셋의 이름을 포함한다.
제1 에셋 필드(630)는 제1 에셋의 에셋 유형을 나타내는 데이터를 포함하는 제1 에셋 유형 필드(632)를 포함한다. 제1 에셋 필드(630)는 제1 에셋의 에셋 유형의 에셋 서브유형을 나타내는 데이터를 포함하는 선택적인 에셋 서브유형 필드(633)를 포함한다.
제1 에셋 필드(630)는 복수의 제1 에셋 상태 필드들(635A, 635B)을 포함하는 제1 에셋 상태 필드(634)를 포함한다. 다양한 구현예들에서, 에셋 상태 필드(634)는 제1 에셋의 에셋 유형 및/또는 에셋 서브유형에 기초한다. 예를 들어, 에셋 유형이 "나무"일 때, 에셋 상태 필드(634)는 에셋의 SR 환경 내의 위치를 나타내는 데이터를 포함하는 에셋 위치 필드(635A) 및 에셋의 나이를 나타내는 데이터를 포함하는 에셋 나이 필드(635B)를 포함한다. 다른 예로서, 에셋 유형이 "동물"일 때, 에셋 상태 필드(634)는 에셋의 모션 벡터를 나타내는 데이터를 포함하는 에셋 모션 벡터 필드를 포함한다. 다른 예로서, 에셋 유형이 "도토리"일 때, 에셋 상태 필드(634)는, 존재하는 경우, 다른 에셋이 그 에셋을 들고 있는지를 나타내는 데이터를 포함하는 에셋 홀드 상태 필드를 포함한다. 다른 예로서, 에셋 유형이 "날씨"일 때, 에셋 상태 필드(634)는 SR 환경의 온도를 나타내는 데이터를 포함하는 에셋 온도 필드, SR 환경의 습도를 나타내는 데이터를 포함하는 에셋 습도 필드, 및/또는 SR 환경의 강수량 조건을 나타내는 데이터를 포함하는 에셋 강수량 필드를 포함한다.
에셋 필드(620)는 제2 에셋 필드(640)를 포함한다. 제2 에셋 필드(640)는 제2 에셋의 에셋 식별자를 포함하는 제2 에셋 식별자 필드(640)를 포함한다. 제2 에셋 필드(630)는 제2 에셋의 에셋 유형을 나타내는 데이터를 포함하는 제2 에셋 유형 필드(642)를 포함한다. 제2 에셋 필드(642)는 제2 에셋의 에셋 유형의 에셋 서브유형을 나타내는 데이터를 포함하는 선택적인 에셋 서브유형 필드(643)를 포함한다.
제2 에셋 필드(640)는 복수의 제2 에셋 상태 필드들(645A, 645B)을 포함하는 제2 에셋 상태 필드(643)를 포함한다. 다양한 구현예들에서, 에셋 상태 필드(644)는 제2 에셋의 에셋 유형 및/또는 에셋 서브유형에 기초한다.
도 7은 일부 구현예들에 따른 환경 상태 생성기(750)의 블록도를 예시한다. 환경 상태 생성기(750)는, 입력으로서, 제1 환경 시간과 연관된 제1 환경 상태(710) 및 타임스텝(715)을 수신한다. 환경 상태 생성기(750)는, 출력으로서, 제1 환경 시간이 타임스텝(715)만큼 증분된 것과 동일한 제2 환경 시간과 연관된 제2 환경 상태(720)를 생성한다.
환경 상태 생성기(750)는 다중화기(751)와 역다중화기(753) 사이에 병렬로 연결된 제1 모델(752A), 제2 모델(752B), 및 제3 모델(752C)을 포함하는 복수의 모델들(752A 내지 752C)을 포함한다. 환경 상태 생성기(750)는 타임스텝(715)에 기초하여 다중화기(751) 및 역다중화기(753)를 제어하는 모델 선택기(755)를 포함한다.
타임스텝(715)이 제1 값일 때(또는 제1 값 범위 내에 있을 때), 모델 선택기(755)는 제1 환경 상태(710) 및 타임스텝(715)을 제1 모델(752A)에 공급하여 제2 환경 상태(720)를 생성하도록 다중화기(751) 및 역다중화기(753)를 제어한다. 타임스텝(715)이 제2 값일 때(또는 제2 값 범위 내에 있을 때), 모델 선택기(755)는 제1 환경 상태(710) 및 타임스텝(715)을 제2 모델(752B)에 공급하여 제2 환경 상태(720)를 생성하도록 다중화기(751) 및 역다중화기(753)를 제어한다. 타임스텝(715)이 제3 값일 때(또는 제3 값 범위 내에 있을 때), 모델 선택기(755)는 제1 환경 상태(710) 및 타임스텝(715)을 제3 모델(752C)에 공급하여 제2 환경 상태(720)를 생성하도록 다중화기(751) 및 역다중화기(753)를 제어한다.
따라서, 각각의 모델(752A 내지 752C)은, 모델 선택기(755)에 의해 선택될 때, 제1 환경 상태(710) 및 타임스텝(715)을 수신하고, 제2 환경 상태(720)를 생성한다. 다양한 구현예들에서, 각각의 모델(752A 내지 752C)은 제2 환경 상태(720)를 생성하는 데 사용되는 각자의 휴리스틱 및 메타데이터를 포함한다.
도 8은 일부 구현예들에 따른, SR 환경의 환경 상태를 생성하는 방법(800)의 흐름도 표현이다. 다양한 구현예들에서, 방법(800)은 하나 이상의 프로세서들, 비일시적 메모리, 및 카메라를 갖는 디바이스(예를 들어, 도 3의 HMD(120B) 또는 도 4의 전자 디바이스(410))에 의해 수행된다. 일부 구현예들에서, 방법(800)은 하드웨어, 펌웨어, 소프트웨어, 또는 이들의 조합을 포함하는 프로세싱 로직(예를 들어, 도 7의 환경 상태 생성기(750))에 의해 수행된다. 일부 구현예들에서, 방법(800)은 비일시적 컴퓨터 판독가능 매체(예를 들어, 메모리)에 저장된 명령어들(예를 들어, 코드)을 실행하는 프로세서에 의해 수행된다. 간단히 말하면, 일부 상황들에서, 방법(800)은 제1 환경 시간과 연관된, SR 환경의 제1 환경 상태 및 타임스텝을 획득하는 단계, 타임스텝에 기초하여 복수의 모델들로부터 모델을 선택하는 단계, 및 선택된 모델을 제1 환경 상태에 적용하여 제2 환경 시간과 연관된 제2 환경 상태를 생성하는 단계를 포함한다.
방법(800)은, 블록(810)에서, 디바이스가 제1 환경 시간과 연관된, SR 환경의 제1 환경 상태를 획득하는 것으로 시작되는데, 여기서 제1 환경 상태는 하나 이상의 에셋들의 SR 환경 내의 포함을 나타내고, 하나 이상의 에셋들의 하나 이상의 상태들을 추가로 나타낸다. 다양한 구현예들에서, 방법(800)은 제1 시간(예를 들어, 제1 실시간)에 제1 환경 상태를 갖는 SR 환경을 디스플레이하는 단계를 포함한다.
다양한 구현예들에서, 환경 상태는 XML 파일과 같은 데이터 객체이다. 다양한 구현예들에서, 제1 환경 상태는 수동으로 프로그래밍된다. 다양한 구현예들에서, 제1 환경 상태는 이전 환경 상태에 모델을 적용함으로써 생성된다.
방법(800)은, 블록(820)에서, 디바이스가 제1 환경 시간에서부터 제2 환경 시간까지의 타임스텝을 획득하는 것으로 계속된다. 다양한 구현예들에서, 타임스텝은 수동으로 프로그래밍된다. 다양한 구현예들에서, 타임스텝은 하나 이상의 타임스텝들과 각각 연관된 하나 이상의 타임스케일 어포던스들과의 사용자 상호작용에 기초하여 결정된다.
방법(800)은, 블록(830)에서, 디바이스가, 타임스텝에 기초하여, 복수의 상이한 모델들로부터 모델을 선택하는 것으로 계속된다. 다양한 구현예들에서, 제1 값을 갖는(또는 제1 값 범위 내의) 타임스텝을 획득하는 것에 응답하여, 디바이스는 제1 모델을 선택하고, 제2 값을 갖는(또는 제2 값 범위 내의) 타임스텝을 획득하는 것에 응답하여, 디바이스는 제1 모델과는 상이한 제2 모델을 선택한다. 다양한 구현예들에서, 제2 모델은 제1 모델보다 더 계산 효율적이다.
방법(800)은, 블록(840)에서, 디바이스가, 선택된 모델에 따라, 제2 환경 시간과 연관된, SR 환경의 제2 환경 상태를 결정하는 것으로 계속된다. 다양한 구현예들에서, 방법(800)은 제2 시간(예를 들어, 제2 실시간)에 제2 환경 상태를 갖는 SR 환경을 디스플레이하는 단계를 포함한다.
다양한 구현예들에서, (블록(840)에서) 선택된 모델에 따라 제2 환경 상태를 결정하는 것은, (블록(830)에서의) 제1 모델의 선택에 따라, 제1 환경 상태의 에셋 상태의 제1 값에 기초하여 제2 환경 상태의 에셋 상태의 제2 값을 결정하는 것을 포함한다. 예를 들어, 도 5c와 관련하여 전술된 바와 같이, 제3 환경 상태를 결정하는 것은 제1 다람쥐(521)의 제2 위치 및 제1 다람쥐(521)의 제2 모션 벡터에 기초하여 제1 다람쥐(521)의 제3 위치를 결정하는 것을 포함한다. 다양한 구현예들에서, (블록(840)에서) 선택된 모델에 따라 제2 환경 상태를 결정하는 것은, (블록(830)에서의) 제2 모델의 선택에 따라, 제1 환경 상태의 에셋 상태의 제1 값과는 독립적으로 제2 환경 상태의 에셋 상태의 제2 값을 결정하는 것을 포함한다. 예를 들어, 도 5e와 관련하여 전술된 바와 같이, 제5 환경 상태를 결정하는 것은 제1 다람쥐(521)의 제4 위치 및 제1 다람쥐(521)의 제4 모션 벡터와는 독립적으로 제1 다람쥐(521)의 제5 위치를 결정하는 것을 포함한다.
다양한 구현예들에서, (블록(840)에서) 선택된 모델에 따라 제2 환경 상태를 결정하는 것은, (블록(830)에서의) 제1 모델의 선택에 따라, 제1 환경 상태에 기초하여 제2 환경 상태의 에셋 상태의 제2 값을 결정하는 것을 포함한다. 예를 들어, 도 5c에 관하여 전술된 바와 같이, 제3 환경 상태를 결정하는 것은 제1 다람쥐(521)의 제3 위치의, 다른 에셋들의 제3 위치들(이는 제2 환경 상태의 그들의 제2 위치들에 기초함)에 대한 근접성에 기초하여 제1 다람쥐(521)의 제3 모션 벡터를 결정하는 것을 포함한다. 다양한 구현예들에서, (블록(840)에서) 선택된 모델에 따라 제2 환경 상태를 결정하는 것은, (블록(830)에서의) 제2 모델의 선택에 따라, 제1 환경 상태에 기초하여 제2 환경 상태의 에셋 상태의 제2 값을 결정하는 것을 보류하는 것을 포함한다. 예를 들어, 도 5e에 관하여 전술된 바와 같이, 제5 환경 상태를 결정하는 것은 제1 다람쥐(521)의 제5 모션 벡터를 결정하는 것을 포함하지 않는다.
다양한 구현예들에서, (블록(840)에서) 선택된 모델에 따라 제2 환경 상태를 결정하는 것은, (블록(830)에서의) 제1 모델의 선택에 따라, 제1 환경 상태의 에셋 상태의 제1 값에 기초하여 제2 환경 상태의 에셋 상태의 제2 값을 결정하는 것을 포함한다. 예를 들어, 도 5e에 관하여 전술된 바와 같이, 제5 환경 상태를 결정하는 것은 제1 나무(511)의 제4 위치에 기초하여 제1 나무(511)의 제5 위치를 결정하는 것을 포함한다. 다양한 구현예들에서, (블록(840)에서) 선택된 모델에 따라 제2 환경 상태를 결정하는 것은, (블록(830)에서의) 제2 모델의 선택에 따라, 제2 환경 상태로부터 에셋 상태를 갖는 에셋을 배제시키는 것을 포함한다. 예를 들어, 도 5g에 관하여 전술된 바와 같이, 제7 환경 상태를 결정하는 것은 제1 나무(511)를 제거하는 것을 포함한다.
다양한 구현예들에서, (블록(840)에서) 선택된 모델에 따라 제2 환경 상태를 결정하는 것은, (블록(830)에서의) 제2 모델의 선택에 따라, 제1 환경 상태 내의 각자의 에셋 유형을 갖는 에셋들의 수에 기초하여 에셋 상태를 갖는 에셋과 동일한 에셋 유형을 갖는 하나 이상의 새로운 에셋들을 포함시키는 것을 포함한다. 예를 들어, 도 5g에 관하여 전술된 바와 같이, 제7 환경 상태를 결정하는 것은 제6 환경 상태 내의 나무들의 수(및 다람쥐들의 수)에 기초하여 제3 나무(513), 제4 나무(514), 및 제5 나무(515)를 추가하는 것을 포함한다. 다른 예로서, 도 5e와 관련하여 전술된 바와 같이, 제5 환경 상태를 결정하는 것은 제5 환경 상태 내의 나무들의 수에 기초하여 제3 도토리(533)를 추가하는 것을 포함한다.
도 9는 일부 구현예들에 따른, SR 환경의 환경 상태들을 생성하는 방법(900)의 흐름도 표현이다. 다양한 구현예들에서, 방법(900)은 하나 이상의 프로세서들, 비일시적 메모리, 및 카메라를 갖는 디바이스(예를 들어, 도 3의 HMD(120B) 또는 도 4의 전자 디바이스(410))에 의해 수행된다. 일부 구현예들에서, 방법(900)은 하드웨어, 펌웨어, 소프트웨어, 또는 이들의 조합을 포함하는 프로세싱 로직(예를 들어, 도 7의 환경 상태 생성기(750))에 의해 수행된다. 일부 구현예들에서, 방법(900)은 비일시적 컴퓨터 판독가능 매체(예를 들어, 메모리)에 저장된 명령어들(예를 들어, 코드)을 실행하는 프로세서에 의해 수행된다. 간단히 말하면, 일부 상황들에서, 방법(900)은 제1 환경 시간과 연관된, SR 환경의 제1 환경 상태 및 타임스텝을 획득하는 단계, 타임스텝에 기초하여 복수의 모델들로부터 모델을 선택하는 단계, 및 선택된 모델을 제1 환경 상태에 적용하여 제2 환경 시간과 연관된 제2 환경 상태를 생성하는 단계를 포함한다.
방법(900)은, 블록(910)에서, 디바이스가 제1 환경 시간과 연관된, SR 환경의 제1 환경 상태를 획득하는 것으로 시작되는데, 여기서 제1 환경 상태는 하나 이상의 에셋들의 SR 환경 내의 포함을 나타내고, 하나 이상의 에셋들의 하나 이상의 상태들을 추가로 나타낸다. 예를 들어, 다양한 구현예들에서, 제1 환경 상태는 하나 이상의 에셋들 중 제1 에셋의 포함, 제1 에셋의 유형, SR 환경 내의 제1 에셋의 각자의 위치, 및 제1 에셋의 각자의 나이를 나타내는 데이터를 포함한다. 다양한 구현예들에서, 방법(900)은 제1 시간에 제1 환경 상태를 갖는 SR 환경을 디스플레이하는 단계를 포함한다.
다양한 구현예들에서, 환경 상태는 XML 파일과 같은 데이터 객체이다. 다양한 구현예들에서, 제1 환경 상태는 수동으로 프로그래밍된다. 다양한 구현예들에서, 제1 환경 상태는 이전 환경 상태에 모델을 적용함으로써 생성된다.
방법(900)은, 블록(920)에서, 디바이스가, 제1 모델에 따라 그리고 제1 환경 상태에 기초하여, 제2 환경 시간과 연관된 제2 환경 상태를 결정하는 것으로 계속된다. 다양한 구현예들에서, 제2 환경 상태는 하나 이상의 에셋들 중 제1 에셋의 포함, 제1 에셋의 유형, SR 환경 내의 제1 에셋의 각자의 위치, 및 제1 에셋의 각자의 나이를 나타내는 데이터를 포함한다. 다양한 구현예들에서, 방법(900)은 제2 시간(예를 들어, 제1 시간 이후의 프레임 타임)에 제2 환경 상태를 갖는 SR 환경을 디스플레이하는 단계를 포함한다.
방법(900)은, 블록(930)에서, 디바이스가 제2 환경 시간에서부터 제3 환경 시간까지의 타임스텝을 나타내는 입력을 수신하는 것으로 계속되는데, 여기서 타임스텝은 제1 환경 시간과 제2 환경 시간 사이의 차이와는 상이하다. 다양한 구현예들에서, 타임스텝을 나타내는 입력을 수신하는 것은 복수의 타임스텝들과 각각 연관된 복수의 타임스케일 어포던스들 중 하나의 타임스케일 어포던스의 선택을 나타내는 사용자 입력을 수신하는 것을 포함한다. 예를 들어, 도 5e에서, 사용자는 빠른 재생 어포던스(553)를 선택했고, 도 5d와 도 5e 사이의 타임스텝은 도 5c와 도 5d 사이의 타임스텝과는 상이하다.
방법(900)은, 블록(940)에서, 디바이스가, 제1 모델과는 상이한 제2 모델에 따라 그리고 제2 환경 상태에 기초하여, 제3 환경 시간과 연관된 제3 환경 상태를 결정하는 것으로 계속된다. 다양한 구현예들에서, 제2 모델은 제1 모델보다 더 계산 효율적이다. 다양한 구현예들에서, 제3 환경 상태는 하나 이상의 에셋들 중 제1 에셋의 포함, 제1 에셋의 유형, SR 환경 내의 제1 에셋의 각자의 위치, 및 제1 에셋의 각자의 나이를 나타내는 데이터를 포함한다. 다양한 구현예들에서, 방법(900)은 제3 시간(예를 들어, 제3 시간 이후의 프레임 타임)에 제3 환경 상태를 갖는 SR 환경을 디스플레이하는 단계를 포함한다.
다양한 구현예들에서, (블록(920)에서) 제1 모델에 따라 제2 환경 상태를 결정하는 것은, 제1 환경 상태의 에셋 상태의 제1 값에 기초하여 제2 환경 상태의 에셋 상태의 제2 값을 결정하는 것을 포함한다. 예를 들어, 도 5c와 관련하여 전술된 바와 같이, 제3 환경 상태를 결정하는 것은 제1 다람쥐(521)의 제2 위치 및 제1 다람쥐(521)의 제2 모션 벡터에 기초하여 제1 다람쥐(521)의 제3 위치를 결정하는 것을 포함한다. 다양한 구현예들에서, (블록(940)에서) 제2 모델에 따라 제3 환경 상태를 결정하는 것은, 제2 환경 상태의 에셋 상태의 제2 값과는 독립적으로 제3 환경 상태의 에셋 상태의 제3 값을 결정하는 것을 포함한다. 예를 들어, 도 5e와 관련하여 전술된 바와 같이, 제5 환경 상태를 결정하는 것은 제1 다람쥐(521)의 제4 위치 및 제1 다람쥐(521)의 제4 모션 벡터와는 독립적으로 제1 다람쥐(521)의 제5 위치를 결정하는 것을 포함한다.
다양한 구현예들에서, (블록(920)에서) 제1 모델에 따라 제2 환경 상태를 결정하는 것은, 제1 환경 상태에 기초하여 제2 환경 상태의 에셋 상태의 제2 값을 결정하는 것을 포함한다. 예를 들어, 도 5c에 관하여 전술된 바와 같이, 제3 환경 상태를 결정하는 것은 제1 다람쥐(521)의 제3 위치의, 다른 에셋들의 제3 위치들(이는 제2 환경 상태의 그들의 제2 위치들에 기초함)에 대한 근접성에 기초하여 제1 다람쥐(521)의 제3 모션 벡터를 결정하는 것을 포함한다. 다양한 구현예들에서, (블록(940)에서) 제2 모델에 따라 제2 환경 상태를 결정하는 것은, 제2 환경 상태에 기초하여 제3 환경 상태의 에셋 상태의 제3 값을 결정하는 것을 보류하는 것을 포함한다. 예를 들어, 도 5e에 관하여 전술된 바와 같이, 제5 환경 상태를 결정하는 것은 제1 다람쥐(521)의 제5 모션 벡터를 결정하는 것을 포함하지 않는다.
다양한 구현예들에서, (블록(920)에서) 제1 모델에 따라 제2 환경 상태를 결정하는 것은, 제1 환경 상태의 에셋 상태의 제1 값에 기초하여 제2 환경 상태의 에셋 상태의 제2 값을 결정하는 것을 포함한다. 예를 들어, 도 5e에 관하여 전술된 바와 같이, 제5 환경 상태를 결정하는 것은 제1 나무(511)의 제4 위치에 기초하여 제1 나무(511)의 제5 위치를 결정하는 것을 포함한다. 다양한 구현예들에서, (블록(940)에서) 제2 모델에 따라 제3 환경 상태를 결정하는 것은, 제3 환경 상태로부터 에셋 상태를 갖는 에셋을 배제시키는 것을 포함한다. 예를 들어, 도 5g에 관하여 전술된 바와 같이, 제7 환경 상태를 결정하는 것은 제1 나무(511)를 제거하는 것을 포함한다.
다양한 구현예들에서, (블록(940)에서) 제2 모델에 따라 제3 환경 상태를 결정하는 것은, 제2 환경 상태 내의 각자의 에셋 유형을 갖는 에셋들의 수에 기초하여 에셋 상태를 갖는 에셋과 동일한 에셋 유형을 갖는 하나 이상의 새로운 에셋들을 포함시키는 것을 포함한다. 예를 들어, 도 5g에 관하여 전술된 바와 같이, 제7 환경 상태를 결정하는 것은 제6 환경 상태 내의 나무들의 수(및 다람쥐들의 수)에 기초하여 제3 나무(513), 제4 나무(514), 및 제5 나무(515)를 추가하는 것을 포함한다. 다른 예로서, 도 5e와 관련하여 전술된 바와 같이, 제5 환경 상태를 결정하는 것은 제5 환경 상태 내의 나무들의 수에 기초하여 제3 도토리(533)를 추가하는 것을 포함한다.
첨부된 청구범위의 범주 내의 구현예들의 다양한 양태들이 위에서 설명되지만, 위에서 설명된 구현예들의 다양한 특징들이 광범위하게 다양한 형태들로 구현될 수 있고 위에서 설명된 임의의 특정 구조 및/또는 기능이 단지 예시적이라는 것이 명백할 것이다. 본 개시내용에 기초하여, 당업자는 본 명세서에 설명된 양태가 임의의 다른 양태들과 독립적으로 구현될 수 있고 이들 양태들 중 2개 이상이 다양한 방식들로 조합될 수 있음을 이해해야 한다. 예를 들어, 본 명세서에 기재된 임의의 수의 양태들을 사용하여 장치가 구현될 수 있고/있거나 방법이 실시될 수 있다. 부가적으로, 본 명세서에 기재된 양태들 중 하나 이상에 부가하여 또는 그 이외의 다른 구조 및/또는 기능을 사용하여 그러한 장치가 구현될 수 있고/있거나 그러한 방법이 실시될 수 있다.
용어들 "제1", "제2" 등이 다양한 요소들을 설명하기 위해 본 명세서에서 사용될 수 있지만, 이들 요소들은 이들 용어들에 의해 제한되어서는 안 된다는 것이 또한 이해될 것이다. 이러한 용어들은 하나의 요소를 다른 요소와 구별하는 데에만 사용된다. 예를 들어, 모든 "제1 노드"의 발생이 일관되게 재명명되고 모든 "제2 노드"의 발생이 일관되게 재명명되기만 한다면, 제1 노드는 제2 노드로 지칭될 수 있고, 유사하게, 제2 노드는 제1 노드로 지칭될 수 있으며, 이는 설명의 의미를 변경한다. 제1 노드 및 제2 노드는 둘 모두 노드들이지만, 그것들은 동일한 노드가 아니다.
본 명세서에서 사용되는 용어는 단지 특정 구현예들만을 설명하는 목적을 위한 것이고, 청구범위를 제한하도록 의도되지 않는다. 본 구현예들의 설명 및 첨부된 청구범위에 사용되는 바와 같이, 단수형들("a", "an" 및 "the")은 문맥상 명확하게 달리 나타나지 않으면 복수형들도 또한 포함하도록 의도된다. 또한, 본 명세서에서 사용되는 바와 같은 용어 "및/또는"은 열거되는 연관된 항목들 중 하나 이상의 항목들의 임의의 및 모든 가능한 조합들을 나타내고 그들을 포괄하는 것임이 이해될 것이다. 본 명세서에서 사용될 때 "포함한다(comprise)" 및/또는 "포함하는(comprising)"이라는 용어들은 진술되는 특징들, 정수들, 단계들, 동작들, 요소들, 및/또는 컴포넌트들의 존재를 특정하지만, 하나 이상의 다른 특징들, 정수들, 단계들, 동작들, 요소들, 컴포넌트들 및/또는 이들의 그룹들의 존재 또는 부가를 배제하지 않는다는 것이 추가로 이해될 것이다.
본 명세서에서 사용되는 바와 같이, 맥락에 의존하여, 진술된 선행 조건이 사실"인 경우(if)"라는 용어는 그가 사실"일 때(when)", 그가 사실"일 시(upon)" 또는 그가 사실"이라고 결정하는 것에 응답하여(in response to determining)" 또는 그가 사실"이라는 결정에 따라(in accordance with a determination)" 또는 그가 사실"임을 검출하는 것에 응답하여(in response to detecting)"를 의미하는 것으로 해석될 수 있다. 유사하게, 어구 "[진술된 선행 조건이 사실이라고] 결정되는 경우" 또는 "[진술된 선행 조건이 사실]인 경우" 또는 "[진술된 선행 조건이 사실]일 때"는, 맥락에 의존하여, 진술된 선행 조건이 사실"이라고 결정할 시" 또는 그가 사실"이라고 결정하는 것에 응답하여" 또는 그가 사실"이라는 결정에 따라" 또는 그가 사실"임을 검출할 시" 또는 그가 사실"임을 검출하는 것에 응답하여"를 의미하는 것으로 해석될 수 있다.

Claims (30)

  1. 프로세서 및 비일시적 메모리를 포함하는 전자 디바이스에 의해 수행되는 방법으로서,
    제1 환경 시간과 연관된, 환경의 제1 환경 상태를 획득하는 단계 - 상기 제1 환경 상태는 하나 이상의 에셋(asset)들의 상기 환경 내의 포함을 나타내고, 상기 하나 이상의 에셋들의 하나 이상의 상태들을 추가로 나타냄 -;
    제1 모델에 따라 그리고 상기 제1 환경 상태에 기초하여, 제2 환경 시간과 연관된 제2 환경 상태를 결정하는 단계;
    상기 제2 환경 시간에서부터 제3 환경 시간까지의 타임스텝(timestep)을 나타내는 입력을 수신하는 단계 - 상기 타임스텝은 상기 제1 환경 시간과 상기 제2 환경 시간 사이의 차이와는 상이함 -; 및
    상기 제1 모델과는 상이한 제2 모델에 따라 그리고 상기 제2 환경 상태에 기초하여, 상기 제3 환경 시간과 연관된 제3 환경 상태를 결정하는 단계를 포함하는, 방법.
  2. 제1항에 있어서, 상기 제1 환경 상태는 XML 파일을 포함하는, 방법.
  3. 제1항에 있어서, 상기 제1 환경 상태, 제2 환경 상태, 및 제3 환경 상태는,
    상기 하나 이상의 에셋들 중 제1 에셋의 포함;
    상기 제1 에셋의 유형;
    상기 환경 내의 상기 제1 에셋의 각자의 위치; 및
    상기 제1 에셋의 각자의 나이를 나타내는 데이터를 포함하는, 방법.
  4. 제1항에 있어서,
    제1 시간에 상기 제1 환경 상태를 갖는 상기 환경을 디스플레이하는 단계;
    상기 제1 시간 이후의 프레임 타임인 제2 시간에 상기 제2 환경 상태를 갖는 상기 환경을 디스플레이하는 단계; 및
    상기 제2 시간 이후의 상기 프레임 타임인 제3 시간에 상기 제3 환경 상태를 갖는 상기 환경을 디스플레이하는 단계를 추가로 포함하는, 방법.
  5. 제1항에 있어서, 상기 타임스텝을 나타내는 상기 입력을 수신하는 단계는 복수의 타임스텝들과 각각 연관된 복수의 타임스케일 어포던스(timescale affordance)들 중 하나의 타임스케일 어포던스의 선택을 나타내는 사용자 입력을 수신하는 단계를 포함하는, 방법.
  6. 제1항에 있어서, 상기 제2 모델은 상기 제1 모델보다 더 계산 효율적인, 방법.
  7. 제1항에 있어서,
    상기 제1 모델에 따라, 상기 제2 환경 상태를 결정하는 단계는 상기 제1 환경 상태의 에셋 상태의 제1 값에 기초하여 상기 제2 환경 상태의 에셋 상태의 제2 값을 결정하는 단계를 포함하고,
    상기 제2 모델에 따라, 상기 제3 환경 상태를 결정하는 단계는 상기 제2 환경 상태의 에셋 상태의 제2 값과는 독립적으로 상기 제3 환경 상태의 에셋 상태의 제3 값을 결정하는 단계를 포함하는, 방법.
  8. 제1항에 있어서,
    상기 제1 모델에 따라, 상기 제2 환경 상태를 결정하는 단계는 상기 제1 환경 상태에 기초하여 상기 제2 환경 상태의 에셋 상태의 제2 값을 결정하는 단계를 포함하고,
    상기 제2 모델에 따라, 상기 제3 환경 상태를 결정하는 단계는 상기 제2 환경 상태에 기초하여 상기 제3 환경 상태의 에셋 상태의 제3 값을 결정하는 것을 보류하는 단계를 포함하는, 방법.
  9. 제1항에 있어서,
    상기 제1 모델에 따라, 상기 제2 환경 상태를 결정하는 단계는 상기 제1 환경 상태의 에셋 상태의 제1 값에 기초하여 상기 제2 환경 상태의 에셋 상태의 제2 값을 결정하는 단계를 포함하고,
    상기 제2 모델에 따라, 상기 제3 환경 상태를 결정하는 단계는 상기 제3 환경 상태로부터 상기 에셋 상태를 갖는 상기 에셋을 배제시키는 단계를 포함하는, 방법.
  10. 제9항에 있어서, 상기 제2 모델에 따라, 상기 제3 환경 상태를 결정하는 단계는 상기 제2 환경 상태 내의 각자의 에셋 유형을 갖는 에셋들의 수에 기초하여 상기 에셋 상태를 갖는 상기 에셋과 동일한 에셋 유형을 갖는 하나 이상의 새로운 에셋들을 포함시키는 단계를 포함하는, 방법.
  11. 제1항에 있어서, 상기 제2 모델에 따라, 상기 제3 환경 상태를 결정하는 단계는 상기 제2 환경 상태의 에셋 상태의 제2 값에 상기 타임스텝을 추가함으로써 상기 제3 환경 상태의 에셋 상태의 제3 값을 결정하는 단계를 포함하는, 방법.
  12. 디바이스로서,
    비일시적 메모리; 및
    하나 이상의 프로세서들을 포함하며, 상기 하나 이상의 프로세서들은,
    제1 환경 시간과 연관된, 합성 현실(synthesized reality, SR) 환경의 제1 환경 상태를 획득하기 위한 - 상기 제1 환경 상태는 하나 이상의 에셋들의 상기 SR 환경 내의 포함을 나타내고, 상기 하나 이상의 에셋들의 하나 이상의 상태들을 추가로 나타냄 -;
    제1 모델에 따라 그리고 상기 제1 환경 상태에 기초하여, 제2 환경 시간과 연관된 제2 환경 상태를 결정하기 위한;
    상기 제2 환경 시간에서부터 제3 환경 시간까지의 타임스텝을 나타내는 입력을 수신하기 위한 - 상기 타임스텝은 상기 제1 환경 시간과 상기 제2 환경 시간 사이의 차이와는 상이함 -; 그리고
    상기 제1 모델과는 상이한 제2 모델에 따라 그리고 상기 제2 환경 상태에 기초하여, 상기 제3 환경 시간과 연관된 제3 환경 상태를 결정하기 위한 것인, 디바이스.
  13. 제12항에 있어서, 상기 하나 이상의 프로세서들은 복수의 타임스텝들과 각각 연관된 복수의 타임스케일 어포던스들 중 하나의 타임스케일 어포던스의 선택을 나타내는 사용자 입력을 수신함으로써, 상기 타임스텝을 나타내는 상기 입력을 수신하기 위한 것인, 디바이스.
  14. 제12항에 있어서, 상기 제2 모델은 상기 제1 모델보다 더 계산 효율적인, 디바이스.
  15. 제12항에 있어서,
    상기 하나 이상의 프로세서들은 상기 제1 환경 상태의 에셋 상태의 제1 값에 기초하여 상기 제2 환경 상태의 에셋 상태의 제2 값을 결정함으로써, 상기 제1 모델에 따라, 상기 제2 환경 상태를 결정하기 위한 것이고,
    상기 하나 이상의 프로세서들은 상기 제2 환경 상태의 에셋 상태의 제2 값과는 독립적으로 상기 제3 환경 상태의 에셋 상태의 제3 값을 결정함으로써, 상기 제2 모델에 따라, 상기 제3 환경 상태를 결정하기 위한 것인, 디바이스.
  16. 제12항에 있어서,
    상기 하나 이상의 프로세서들은 상기 제1 환경 상태에 기초하여 상기 제2 환경 상태의 에셋 상태의 제2 값을 결정함으로써, 상기 제1 모델에 따라, 상기 제2 환경 상태를 결정하기 위한 것이고,
    상기 하나 이상의 프로세서들은 상기 제2 환경 상태에 기초하여 상기 제3 환경 상태의 에셋 상태의 제3 값을 결정하는 것을 보류함으로써, 상기 제2 모델에 따라, 상기 제3 환경 상태를 결정하기 위한 것인, 디바이스.
  17. 제12항에 있어서,
    상기 하나 이상의 프로세서들은 상기 제1 환경 상태의 에셋 상태의 제1 값에 기초하여 상기 제2 환경 상태의 에셋 상태의 제2 값을 결정함으로써, 상기 제1 모델에 따라, 상기 제2 환경 상태를 결정하기 위한 것이고,
    상기 하나 이상의 프로세서들은 상기 제3 환경 상태로부터 상기 에셋 상태를 갖는 상기 에셋을 배제시킴으로써, 상기 제2 모델에 따라, 상기 제3 환경 상태를 결정하기 위한 것인, 디바이스.
  18. 제17항에 있어서, 상기 하나 이상의 프로세서들은 상기 제2 환경 상태 내의 각자의 에셋 유형을 갖는 에셋들의 수에 기초하여 상기 에셋 상태를 갖는 상기 에셋과 동일한 에셋 유형을 갖는 하나 이상의 새로운 에셋들을 포함시킴으로써, 상기 제2 모델에 따라, 상기 제3 환경 상태를 결정하기 위한 것인, 디바이스.
  19. 제12항에 있어서, 상기 하나 이상의 프로세서들은 상기 제2 환경 상태의 에셋 상태의 제2 값에 상기 타임스텝을 추가하는 것에 의해 상기 제3 환경 상태의 에셋 상태의 제3 값을 결정함으로써, 상기 제2 모델에 따라, 상기 제3 환경 상태를 결정하기 위한 것인, 디바이스.
  20. 하나 이상의 프로그램들을 저장하는 비일시적 메모리로서, 상기 하나 이상의 프로그램들은, 디바이스의 하나 이상의 프로세서들에 의해 실행될 때, 상기 디바이스로 하여금,
    제1 환경 시간과 연관된, 합성 현실(SR) 환경의 제1 환경 상태를 획득하게 하고 - 상기 제1 환경 상태는 하나 이상의 에셋들의 상기 SR 환경 내의 포함을 나타내고, 상기 하나 이상의 에셋들의 하나 이상의 상태들을 추가로 나타냄 -;
    제1 모델에 따라 그리고 상기 제1 환경 상태에 기초하여, 제2 환경 시간과 연관된 제2 환경 상태를 결정하게 하고;
    상기 제2 환경 시간에서부터 제3 환경 시간까지의 타임스텝을 나타내는 입력을 수신하게 하고 - 상기 타임스텝은 상기 제1 환경 시간과 상기 제2 환경 시간 사이의 차이와는 상이함 -;
    상기 제1 모델과는 상이한 제2 모델에 따라 그리고 상기 제2 환경 상태에 기초하여, 상기 제3 환경 시간과 연관된 제3 환경 상태를 결정하게 하는, 비일시적 메모리.
  21. 삭제
  22. 삭제
  23. 삭제
  24. 삭제
  25. 삭제
  26. 삭제
  27. 삭제
  28. 삭제
  29. 삭제
  30. 삭제
KR1020217009111A 2018-09-28 2019-09-24 계산 효율적인 모델 선택 KR102632448B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201862738066P 2018-09-28 2018-09-28
US62/738,066 2018-09-28
PCT/US2019/052587 WO2020068741A1 (en) 2018-09-28 2019-09-24 Computationally efficient model selection

Publications (2)

Publication Number Publication Date
KR20210046781A KR20210046781A (ko) 2021-04-28
KR102632448B1 true KR102632448B1 (ko) 2024-02-02

Family

ID=68172262

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020217009111A KR102632448B1 (ko) 2018-09-28 2019-09-24 계산 효율적인 모델 선택

Country Status (6)

Country Link
US (2) US11373377B2 (ko)
KR (1) KR102632448B1 (ko)
CN (1) CN112740280A (ko)
DE (1) DE112019004889T5 (ko)
GB (1) GB2592136B (ko)
WO (1) WO2020068741A1 (ko)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108874150B (zh) * 2018-07-27 2024-08-20 华南理工大学 一种虚拟现实触觉反馈交互系统
DE112019004889T5 (de) * 2018-09-28 2021-06-24 Apple Inc. Recheneffiziente Modellauswahl

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160267720A1 (en) 2004-01-30 2016-09-15 Electronic Scripting Products, Inc. Pleasant and Realistic Virtual/Augmented/Mixed Reality Experience
US8065022B2 (en) * 2005-09-06 2011-11-22 General Electric Company Methods and systems for neural network modeling of turbine components
WO2010045272A1 (en) * 2008-10-14 2010-04-22 Honda Motor Co., Ltd. Smoothed sarsa: reinforcement learning for robot delivery tasks
US9497771B2 (en) * 2014-04-18 2016-11-15 Apple Inc. Deterministic RRC connections
US9852546B2 (en) * 2015-01-28 2017-12-26 CCP hf. Method and system for receiving gesture input via virtual control objects
AU2015218498A1 (en) * 2015-08-27 2017-03-16 Canon Kabushiki Kaisha Method, apparatus and system for displaying images
WO2018098720A1 (zh) * 2016-11-30 2018-06-07 深圳益强信息科技有限公司 一种基于虚拟现实的数据处理方法及系统
CN107302625B (zh) * 2017-05-18 2020-07-24 华为机器有限公司 管理事件的方法及其终端设备
DE112019004889T5 (de) * 2018-09-28 2021-06-24 Apple Inc. Recheneffiziente Modellauswahl
WO2020068740A1 (en) * 2018-09-28 2020-04-02 Dakiana Research Llc Model with multiple concurrent timescales
WO2020219643A1 (en) * 2019-04-23 2020-10-29 Apple Inc. Training a model with human-intuitive inputs

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
ChemEngTutor, "Simulink Basics Part 7", Youtube, 2016.08.08., [url: https://www.youtube.com/watch?v=k1yOu-64ITw&t=80s], [검색:2023.06.20.]
M.S. et. al., "A Decentralized Parallelization-in-Time Approach with Parareal," Cornell Univ., 2015.06.16., XP080811409.

Also Published As

Publication number Publication date
WO2020068741A1 (en) 2020-04-02
CN112740280A (zh) 2021-04-30
GB2592136A (en) 2021-08-18
DE112019004889T5 (de) 2021-06-24
KR20210046781A (ko) 2021-04-28
US20220270335A1 (en) 2022-08-25
US20210201594A1 (en) 2021-07-01
GB202104028D0 (en) 2021-05-05
GB2592136B (en) 2022-12-14
US11699270B2 (en) 2023-07-11
US11373377B2 (en) 2022-06-28

Similar Documents

Publication Publication Date Title
CN112639685B (zh) 模拟现实(sr)中的显示设备共享和交互
CN112074800B (zh) 用于在沉浸水平之间切换的技术
KR102590957B1 (ko) 컴퓨터 생성 렌더링 환경을 위한 시각적 검색 세분화
CN110633617A (zh) 使用语义分割的平面检测
US11699270B2 (en) Computationally efficient model selection
US20240054734A1 (en) Method and device for presenting an audio and synthesized reality experience
KR20200135496A (ko) 3d 모델들의 다중-디바이스 편집
US11768590B2 (en) Configuring objective-effectuators for synthesized reality settings
WO2020219643A1 (en) Training a model with human-intuitive inputs
US20210027164A1 (en) Objective-effectuators in synthesized reality settings
CN113678173A (zh) 用于虚拟对象的基于图绘的放置的方法和设备
CN112106020B (zh) 用于合成现实布景的声音处理的方法和设备
US11836842B2 (en) Moving an avatar based on real-world data
US20210201108A1 (en) Model with multiple concurrent timescales
KR102484333B1 (ko) 합성된 현실 설정들에서 오브젝티브 실행기들에 대한 오브젝티브들의 생성
CN112639889A (zh) 内容事件映射
US10964056B1 (en) Dense-based object tracking using multiple reference images
WO2020243056A1 (en) Generating content for physical elements

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