KR20200100765A - 가상, 증강 또는 혼합 현실 환경에서 3d 비디오들을 생성 및 디스플레이하기 위한 방법들 및 시스템 - Google Patents

가상, 증강 또는 혼합 현실 환경에서 3d 비디오들을 생성 및 디스플레이하기 위한 방법들 및 시스템 Download PDF

Info

Publication number
KR20200100765A
KR20200100765A KR1020207020912A KR20207020912A KR20200100765A KR 20200100765 A KR20200100765 A KR 20200100765A KR 1020207020912 A KR1020207020912 A KR 1020207020912A KR 20207020912 A KR20207020912 A KR 20207020912A KR 20200100765 A KR20200100765 A KR 20200100765A
Authority
KR
South Korea
Prior art keywords
video
user
virtual
environment
data
Prior art date
Application number
KR1020207020912A
Other languages
English (en)
Other versions
KR102557356B1 (ko
Inventor
프라빈 바부 제이 디
션 크리스토퍼 라일리
Original Assignee
매직 립, 인코포레이티드
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 매직 립, 인코포레이티드 filed Critical 매직 립, 인코포레이티드
Priority to KR1020237023897A priority Critical patent/KR20230110832A/ko
Publication of KR20200100765A publication Critical patent/KR20200100765A/ko
Application granted granted Critical
Publication of KR102557356B1 publication Critical patent/KR102557356B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N13/00Stereoscopic video systems; Multi-view video systems; Details thereof
    • H04N13/10Processing, recording or transmission of stereoscopic or multi-view image signals
    • H04N13/189Recording image signals; Reproducing recorded image signals
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N13/00Stereoscopic video systems; Multi-view video systems; Details thereof
    • H04N13/10Processing, recording or transmission of stereoscopic or multi-view image signals
    • H04N13/106Processing image signals
    • H04N13/122Improving the 3D impression of stereoscopic images by modifying image signal contents, e.g. by filtering or adding monoscopic depth cues
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/011Arrangements for interaction with the human body, e.g. for user immersion in virtual reality
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/011Arrangements for interaction with the human body, e.g. for user immersion in virtual reality
    • G06F3/012Head tracking input arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/017Gesture based interaction, e.g. based on a set of recognized hand gestures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/16Sound input; Sound output
    • G06F3/167Audio in a user interface, e.g. using voice commands for navigating, audio feedback
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T13/00Animation
    • G06T13/203D [Three Dimensional] animation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/08Volume rendering
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T17/00Three dimensional [3D] modelling, e.g. data description of 3D objects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T19/00Manipulating 3D models or images for computer graphics
    • G06T19/006Mixed reality
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N13/00Stereoscopic video systems; Multi-view video systems; Details thereof
    • H04N13/10Processing, recording or transmission of stereoscopic or multi-view image signals
    • H04N13/106Processing image signals
    • H04N13/128Adjusting depth or disparity
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N13/00Stereoscopic video systems; Multi-view video systems; Details thereof
    • H04N13/20Image signal generators
    • H04N13/275Image signal generators from 3D object models, e.g. computer-generated stereoscopic image signals
    • H04N13/279Image signal generators from 3D object models, e.g. computer-generated stereoscopic image signals the virtual viewpoint locations being selected by the viewers or determined by tracking
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/47End-user applications
    • H04N21/472End-user interface for requesting content, additional data or services; End-user interface for interacting with content, e.g. for content reservation or setting reminders, for requesting event notification, for manipulating displayed content
    • H04N21/47202End-user interface for requesting content, additional data or services; End-user interface for interacting with content, e.g. for content reservation or setting reminders, for requesting event notification, for manipulating displayed content for requesting content on demand, e.g. video on demand
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/81Monomedia components thereof
    • H04N21/816Monomedia components thereof involving special video data, e.g 3D video

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Human Computer Interaction (AREA)
  • Computer Graphics (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Geometry (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Databases & Information Systems (AREA)
  • Processing Or Creating Images (AREA)
  • User Interface Of Digital Computer (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
  • Testing, Inspecting, Measuring Of Stereoscopic Televisions And Televisions (AREA)

Abstract

VR 및/또는 AR 시스템에서 3D 비디오들을 디스플레이하기 위한 접근법이 개시된다. 3D 비디오들은 디스플레이 스크린으로부터 벗어나는 3D 애니메이팅된 오브젝트들을 포함할 수 있다. 3D 비디오들은 VR 및/또는 AR 환경 내에서 오브젝트들과 상호작용할 수 있다. 3D 비디오는, 3D 비디오에 대해 상이한 스토리라인 및 가능하게는 상이한 결론이 도출될 수 있도록 3D 비디오의 특정 부분들에서 사용자에 의해 선택된 결정들에 대응하는 사용자 입력에 기초하여 사용자와 상호작용적일 수 있다. 3D 비디오는 최종 3D 렌더링 세계의 포털 내에 디스플레이되는 3D 아이콘일 수 있다.

Description

가상, 증강 또는 혼합 현실 환경에서 3D 비디오들을 생성 및 디스플레이하기 위한 방법들 및 시스템
[0001] 본 개시는 일반적으로 하나 이상의 사용자들에 대한 상호작용식 가상, 증강 또는 혼합 현실 환경들을 용이하게 하도록 구성된 시스템들 및 방법들에 관한 것이다.
[0002] 현대의 컴퓨팅 및 디스플레이 기술들은 소위 "VR(virtual reality)", "AR(augmented reality)" 또는 "MR(mixed reality)" 경험들을 위한 시스템들의 개발을 용이하게 하였으며, 여기서 디지털로 재생된 이미지들 또는 그 일부들은 그들이 보이는 방식으로 사용자에게 제시되거나 실제인 것처럼 인지될 수 있다. VR 시나리오는 통상적으로 다른 실제 실세계의 시각적 입력에 대한 투명성 없이 디지털 또는 가상 이미지 정보의 제시를 수반하는 반면, AR/MR 시나리오는 통상적으로 사용자 주위의 실세계의 시각화에 대한 증강으로서 디지털 또는 가상 이미지 정보의 제시를 수반하여, 디지털 또는 가상 이미지(예를 들어, 가상 콘텐츠)가 실세계의 일부로 나타날 수 있다. 혼합 현실은, 혼합 현실 시나리오가 실세계와 디지털 세계의 혼합을 갖기 때문에 증강 현실 시나리오와 유사할 수 있다. 이하, AR은 AR 및 MR 둘 모두로 지칭될 수 있다.
[0003] VR/AR 환경에서, 디스플레이될 필요가 있는 모든 종류의 가상 콘텐츠가 있다. 가상 콘텐츠, 예를 들어, 3D 비디오들은 VR/AR 환경에서 디스플레이될 필요가 있을 수 있다. VR/AR 환경에서, 사용자는 디스플레이되고 있는 3D 비디오들을 뷰잉하기 위해 VR/AR 환경 주위를 자유롭게 이동할 수 있다. 디스플레이 스크린에 3D 비디오들을 렌더링하는 현재 기술들은 VR/AR 환경에서 디스플레이될 때 현실적으로 나타나지 않을 수 있다. 특히 이러한 3D 비디오들이 사용자와 상호작용가능할 수 있는 경우.
[0004] 따라서, VR/AR 환경에서 더 현실적인 방식으로 3D 비디오들을 생성 및 디스플레이하기 위한 접근법에 대한 요구가 있다.
[0005] 일부 실시예들에 따르면, 일 실시예는, 가상 및/또는 증강 현실 환경에서 디스플레이 스크린의 표면을 넘어 확장되는 3D 비디오를 디스플레이하기 위한 방법에 관한 것이고, 방법은 3D 비디오를 식별하는 단계를 포함한다. 추가적으로, 3D 비디오에 대응하는 하나 이상의 3D 모델들을 생성하는 단계 및 3D 비디오의 렌더링과 함께 적절한 트리거 시간에 하나 이상의 3D 모델들을 렌더링하는 단계를 포함한다.
[0006] 하나 이상의 실시예들에서, 3D 비디오는 입체 3D 비디오이고, 하나 이상의 3D 모델들은 애니메이션들과 함께 생성된다. 방법은 3D 비디오의 (적어도 일부의) 디스플레이 스크린 외부에 하나 이상의 3D 모델들의 애니메이션들을 디스플레이하는 단계를 더 포함할 수 있고, 하나 이상의 3D 모델들의 애니메이션들은 3D 비디오의 평면 표면을 빠져나가서 사용자의 3D 환경으로 나오는 것으로 나타난다. 하나 이상의 3D 모델들의 애니메이션들은 3D 비디오의 비-평면 표면을 빠져나가서 사용자의 3D 환경으로 나오는 것으로 나타날 수 있다. 방법은 하나 이상의 3D 모델들을 하나 이상의 비디오 팬(video pane)들 상에 렌더링하는 단계, 및 하나 이상의 비디오 팬들을 하나 이상의 뷰잉 배향들에 대해 동시에 디스플레이하는 단계를 또한 더 포함할 수 있다.
[0007] 하나 이상의 실시예들에서, 입체 3D 비디오는 하나 이상의 3D 모델들과 함께 디스플레이되고, 깊이 정보는 가상 및/또는 증강 현실 디바이스의 사용자로부터 가상 및/또는 증강 현실 환경 내에 디스플레이되는 개개의 하나 이상의 3D 모델들 및 3D 비디오까지의 거리를 포함한다. 3D 비디오는 제어 데이터를 포함하는 비디오 파일 포맷을 가질 수 있고, 제어 데이터는 3D 비디오의 렌더링과 함께 적절한 트리거 시간에 하나 이상의 3D 모델들을 렌더링하도록 비디오 플레이어에 명령한다. 하나 이상의 3D 모델들의 렌더링은 복셀 기반 비디오 스트림에 적어도 부분적으로 기초한다.
[0008] 일부 실시예들은 디스플레이 스크린의 표면을 넘어 확장되는 3D 비디오를 디스플레이하기 위한 디스플레이 시스템에 관한 것이고, 시스템은 증강 현실 머리-장착 디스플레이 시스템 및 데이터를 프로세싱하기 위한 하나 이상의 모듈들을 포함하고, 하나 이상의 모듈들은 하나 이상의 메모리에 저장되고, 하나 이상의 모듈들은 3D 비디오를 식별하는 것을 수행하도록 구성될 수 있다. 하나 이상의 모듈들은 또한 3D 비디오에 대응하는 하나 이상의 3D 모델들을 생성하는 것을 수행하도록 구성될 수 있다. 하나 이상의 모듈들은 또한 3D 비디오의 렌더링과 함께 적절한 트리거 시간에 하나 이상의 3D 모델들을 렌더링하는 것을 수행하도록 구성될 수 있다.
[0009] 디스플레이 시스템의 하나 이상의 실시예들에서, 3D 비디오는 입체 3D 비디오이고, 하나 이상의 3D 모델들은 애니메이션들과 함께 생성된다. 방법은 3D 비디오의 (적어도 일부의) 디스플레이 스크린 외부에 하나 이상의 3D 모델들의 애니메이션들을 디스플레이하는 단계를 더 포함할 수 있고, 하나 이상의 3D 모델들의 애니메이션들은 3D 비디오의 평면 표면을 빠져나가서 사용자의 3D 환경으로 나오는 것으로 나타난다. 하나 이상의 3D 모델들의 애니메이션들은 3D 비디오의 비-평면 표면을 빠져나가서 사용자의 3D 환경으로 나오는 것으로 나타날 수 있다. 방법은 하나 이상의 3D 모델들을 하나 이상의 비디오 팬들 상에 렌더링하는 단계, 및 하나 이상의 비디오 팬들을 하나 이상의 뷰잉 배향들에 대해 동시에 디스플레이하는 단계를 또한 더 포함할 수 있다.
[0010] 일부 실시예들은 하나 이상의 애니메이션 스트림들, 데이터 저장부, 및 비디오 스트림 또는 오디오 스트림 중 적어도 하나를 포함할 수 있는 비디오 파일 포맷에 관한 것이다.
[0011] 일 실시예는, 3D 렌더링 세계에서 포털을 식별하는 단계를 포함하는 방법에 관한 것이고, 포털은 3D 렌더링 세계의 평면 표면 내의 개구이다. 또한, 제1 2D 입체 이미지 및 제2 2D 입체 이미지는 3D 렌더링 세계의 포털에 렌더링될 수 있다.
[0012] 하나 이상의 실시예들에서, 렌더링된 3D 렌더링 세계는 증강 현실 디바이스를 통해 사용자에게 렌더링될 수 있다. 제1 2D 입체 이미지는 우측 눈을 위한 것이고, 제2 2D 입체 이미지는 좌측 눈을 위한 것이다. 일 실시예에서, 제1 2D 입체 이미지 및 제2 2D 입체 이미지는 종래의 3D 비디오(예를 들어, 3D 영화)로부터 소싱된다. 상이한 실시예에서, 제1 2D 입체 이미지 및 제2 2D 입체 이미지는 3D 렌더링 세계의 상이한 부분 내에 위치된 2개의 가상 렌더링 카메라들로부터 소싱된다.
[0013] 하나 이상의 실시예들에서, 제1 2D 입체 이미지 및 제2 2D 입체 이미지는 실세계 콘텐츠를 캡처하는 2개의 카메라들로부터 소싱된다. 상이한 실시예에서, 제1 2D 입체 이미지 및 제2 2D 입체 이미지는 상이한 3D 렌더링 세계로부터 소싱된다. 일부 실시예들에서, 포털은 포털 아이콘으로서 또는 가상 텔레비전 스크린으로서 디스플레이될 수 있다.
[0014] 다른 실시예는 가상 및/또는 증강 현실 환경에서 3D 비디오를 디스플레이하기 위한 컴퓨터 구현 방법에 관한 것이고, 방법은 3D 비디오를 식별하는 단계를 포함한다. 방법은 또한 가상 및/또는 증강 현실 환경의 일부에서 3D 비디오를 디스플레이하기 위한 볼륨 공간을 식별하는 단계 및 3D 미디어 플레이어에 의해, 볼륨 공간 내에서 3D 비디오를 렌더링하는 단계를 포함한다.
[0015] 하나 이상의 실시예들에서, 3D 비디오는 입체 3D 비디오이다. 볼륨 공간은 3D 오브젝트의 포털 뷰이고, 3D 오브젝트는 평면 뷰잉 디스플레이를 갖는 가상 텔레비전이다. 3D 비디오는 가상 텔레비전의 평면 뷰잉 디스플레이 내에 렌더링된다. 3D 비디오로부터의 제1 깊이 정보는 가상 및/또는 증강 환경 볼륨 공간의 일부의 제1 위치로부터 3D 비디오를 뷰잉하는 사용자의 제2 위치로의 제2 깊이 정보에 추가된다.
[0016] 다른 실시예는 가상 및/또는 증강 현실 환경 내의 볼륨 공간의 일부에서 디스플레이하도록 렌더링될 수 있는 3D 비디오에 관한 것이다. 3D 비디오는 스크린을 벗어나는 3D 오브젝트들을 포함할 수 있다. 3D 비디오는 가상 및/또는 증강 현실 환경과 상호작용할 수 있다. 3D 비디오는 사용자와 상호작용할 수 있어서, 스토리라인에 영향을 미칠 수 있는 사용자 입력에 기초하여, 3D 비디오에 대해 상이한 스토리라인 결과가 도출될 수 있다.
[0017] 다른 실시예는 3D 환경에 2개의 제1 스테이지 카메라들을 배치하는 단계를 포함하는 방법에 관한 것이다. 추가적으로, 방법은 2개의 제1 스테이지 카메라들로부터 2D 이미지들의 하나 이상의 쌍들을 캡처하는 단계를 포함할 수 있다. 추가로, 방법은 2D 이미지들의 하나 이상의 쌍들을 최종 스테이지 장면(때때로 대안적으로 최종 3D 렌더링 세계로 지칭됨) 내의 위치에 배치하는 단계를 포함할 수 있다. 그리고, 방법은 2개의 최종 스테이지 카메라들로부터 최종 스테이지 장면을 렌더링하는 단계를 포함할 수 있다.
[0018] 하나 이상의 실시예들에서, 방법은 또한 가상 및/또는 증강 현실 디바이스를 통해 최종 스테이지 장면을 디스플레이하는 단계를 포함할 수 있다. 디스플레이 위치는 포털일 수 있다. 2개의 제1 스테이지 카메라들 중 제1 카메라는 좌측 눈 관점에서 2D 이미지를 캡처하고 2개의 제1 스테이지 카메라들 중 제2 카메라는 우측 눈 관점에서 2D 이미지를 캡처한다. 2개의 2D 이미지들의 하나 이상의 다른 쌍들은 사용자의 2개의 눈들에 대응하는 최종 스테이지 카메라들로부터 캡처될 수 있다.
[0019] 하나 이상의 실시예들에서, 2개의 제1 스테이지 카메라들은 최종 스테이지 2 렌더링 카메라들과는 상이한 3D 환경의 위치들에 있다. 2개의 제1 스테이지 카메라들은 가상 카메라들일 수 있고 3D 환경은 3D 가상 세계일 수 있다. 3D 환경은 실세계의 디지털 표현일 수 있다.
[0020] 다른 실시예는 제1 소스로부터의 제1 3D 콘텐츠를 제2 소스로부터의 제2 3D 콘텐츠에 배치하는 단계를 포함하는 방법에 관한 것이다. 하나 이상의 실시예들에서, 방법은 또한 가상 및/또는 증강 현실 디바이스를 통해 제2 3D 콘텐츠를 디스플레이하는 단계를 포함할 수 있다. 제1 3D 콘텐츠는 제2 3D 콘텐츠 내의 포털에 배치될 수 있다. 제1 소스의 제1 카메라는 좌측 눈 관점에서 2D 이미지를 캡처하고 제1 소스의 제2 카메라는 우측 눈 관점에서 2D 이미지를 캡처한다.
[0021] 하나 이상의 실시예들에서, 2개의 2D 이미지들의 다른 쌍은 제2 소스로부터의 2개의 다른 카메라들로부터 캡처되고, 2개의 2D 이미지들의 쌍은 제2 소스로부터의 장면을 뷰잉하는 사용자의 2개의 눈들에 대응한다. 제1 소스로부터의 2개의 카메라들은 제2 소스로부터의 2개의 다른 카메라들과는 상이한 3D 환경 위치들에 있다. 제1 3D 콘텐츠는 2개의 가상 카메라들로부터 캡처될 수 있고, 제1 소스는 3D 가상 세계일 수 있다. 일부 실시예들에서, 제1 소스는 실세계일 수 있다.
[0022] 다른 실시예는, 입체 이미지들의 제1 세트를 입체 이미지들의 제2 세트 내에 배치하는 단계를 포함하는 방법에 관한 것이다. 하나 이상의 실시예들에서, 방법은 또한 가상 및/또는 증강 현실 디바이스를 통해 입체 이미지들의 제2 세트를 디스플레이하는 단계를 포함할 수 있다. 입체 이미지들의 제1 세트는 입체 이미지들의 제2 세트 내의 포털에 배치된다. 입체 이미지들의 제1 세트는, 좌측 눈 관점에서 2D 이미지들을 캡처할 수 있는 제1 카메라 및 우측 눈 관점에서 2D 이미지들을 캡처할 수 있는 제2 카메라에 의해 캡처된다.
[0023] 하나 이상의 실시예들에서, 입체 이미지들의 제2 세트는 2개의 다른 카메라들에 의해 캡처되고, 2개의 다른 카메라들은 입체 이미지들의 제2 세트를 캡처하고, 2개의 다른 카메라들은 포털 내의 입체 이미지들의 제1 세트를 나타내는 장면을 뷰잉하는 사용자의 2개의 눈들에 대응할 수 있다. 입체 이미지들의 제1 세트는 입체 이미지들의 제2 세트를 캡처하는 2개의 다른 카메라들과는 상이한 위치로부터의 2개의 카메라들로부터 캡처될 수 있다. 입체 이미지들의 제1 세트는 3D 가상 세계에서 2개의 가상 카메라들로부터 캡처될 수 있다. 입체 이미지들의 제1 세트는 실세계에서 2개의 카메라들로부터 캡처될 수 있다.
[0024] 일부 실시예들은, 2개의 입력 이미지들을 식별하는 단계를 포함하고, 하나의 입력 이미지는 좌측 눈 관점에 대응할 수 있고 제2 입력 이미지는 우측 눈 관점에 대응할 수 있는 방법에 관한 것이다. 추가적으로, 방법은 또한 2개의 입력 이미지들을 최종 3D 렌더링 세계 내의 특정 위치에 배치하는 단계를 포함할 수 있다. 하나 이상의 실시예들에서, 방법은 또한 가상 및/또는 증강 현실 디바이스를 통해 최종 3D 렌더링 세계를 디스플레이하는 단계를 포함할 수 있다. 특정 위치는 최종 3D 렌더링 세계 내의 포털일 수 있다. 2개의 입력 이미지들은 좌측 눈 관점에서 2D 이미지들을 캡처하는 제1 카메라 및 우측 눈 관점에서 2D 이미지들을 캡처하는 제2 카메라에 의해 캡처될 수 있다.
[0025] 하나 이상의 실시예들에서, 최종 3D 렌더링 세계는 2개의 다른 카메라들에 의해 캡처될 수 있고, 2개의 다른 카메라들은 최종 3D 렌더링 세계를 캡처하고, 2개의 다른 카메라들은 포털 내의 2개의 입력 이미지들을 나타내는 장면을 뷰잉하는 사용자의 2개의 눈들에 대응한다. 2개의 입력 이미지들은 최종 3D 렌더링 세계를 캡처하는 2개의 다른 카메라들과는 상이한 위치로부터의 2개의 카메라들로부터 캡처될 수 있다. 2개의 입력 이미지들은 3D 가상 세계에서 2개의 가상 카메라들로부터 캡처될 수 있다. 2개의 입력 이미지들은 실세계에서 2개의 카메라들로부터 캡처될 수 있다.
[0026] 일부 실시예들은 3D 데이터 입력을 식별하는 단계를 포함하는 방법에 관한 것이다. 추가로, 방법은 또한 3D 데이터 입력을 가상 최종 3D 렌더링 세계 내의 위치에 배치하는 단계를 포함할 수 있다. 하나 이상의 실시예들에서, 방법은 또한 가상 및/또는 증강 현실 디바이스를 통해 가상 최종 3D 렌더링 세계를 디스플레이하는 단계를 포함할 수 있다. 위치는 가상 최종 3D 렌더링 세계 내의 포털일 수 있다. 3D 데이터 입력은 좌측 눈 관점에서 2D 이미지들을 캡처하는 제1 카메라 및 우측 눈 관점에서 2D 이미지들을 캡처할 수 있는 제2 카메라에 의해 캡처될 수 있다.
[0027] 하나 이상의 실시예들에서, 가상 최종 3D 렌더링 세계는 2개의 다른 카메라들에 의해 캡처될 수 있고, 2개의 다른 카메라들은 가상 최종 3D 렌더링 세계를 캡처하고, 2개의 다른 카메라들은 포털 내의 3D 데이터 입력을 나타내는 장면을 뷰잉하는 사용자의 2개의 눈들에 대응한다. 3D 데이터 입력은 가상 최종 3D 렌더링 세계를 캡처하는 2개의 다른 카메라들과는 상이한 위치로부터의 2개의 카메라들로부터 캡처될 수 있다. 3D 데이터 입력은 3D 가상 세계에서 2개의 가상 카메라들로부터 캡처될 수 있다. 3D 데이터 입력은 실세계에서 2개의 카메라들로부터 캡처될 수 있다.
[0028] 일부 실시예들은 비디오 파일 포맷에 관한 것이고, 비디오 파일 포맷은 하나 이상의 애니메이션 스트림들, 데이터 저장부, 및 비디오 스트림 또는 오디오 스트림 중 적어도 하나를 포함할 수 있다. 하나 이상의 실시예들에서, 데이터 저장부는 하나 이상의 제어 데이터, 하나 이상의 3D 모델들, 하나 이상의 텍스처들, 및 하나 이상의 자료들을 포함할 수 있다. 제어 데이터는, 비디오 파일 포맷을 판독하는 애플리케이션이 먼저 액세스될 때 메모리에 완전히 로딩될 수 있다. 제어 스트림은, 제어 데이터가 메모리에 완전히 로딩될 때 데이터 저장부로부터의 하나 이상의 제어 데이터로부터 메모리에 미리 로딩될 수 있다. 제어 스트림은 비디오 스트림들 또는 오디오 스트림들보다 타임라인에 대응하는 시간을 더 미리 보도록 구성될 수 있다.
[0029] 하나 이상의 실시예들에서, 제어 스트림은 비디오의 타임라인 내의 적절한 시간에 재생하기 위한 모델 및 애니메이션의 조합을 결정하기 위해 커맨드들 및/또는 간단한 로직 게이트들을 포함할 수 있다. 비디오의 타임라인 내의 적절한 시간은 비디오 스트림 및 오디오 스트림의 대응하는 시간에 대응한다. 제어 스트림은 키 프레임들을 포함한다. 애니메이션 스트림, 비디오 스트림 및 오디오 스트림은 하나의 키 프레임을 미리 보고 되돌아 보도록 구성될 수 있다. 하나 이상의 애니메이션 스트림들은 하나 이상의 3D 모델들과 연관된 애니메이션 명령들에 대응할 수 있다. 하나 이상의 애니메이션 스트림들의 각각의 애니메이션 스트림은 데이터 저장부의 3D 모델, 텍스처 또는 자료 중 적어도 하나에 대응할 수 있다.
[0030] 일부 실시예들은 비디오의 비디오 파일을 수신하는 단계를 포함하는 방법에 관한 것이고, 비디오 파일은 하나 이상의 애니메이션 스트림들, 제어 데이터를 포함하는 데이터 저장부, 및 비디오 스트림 또는 오디오 스트림 중 적어도 하나를 포함할 수 있다. 방법은 또한 제어 데이터 및 타임라인 제어기로부터 제어 스트림을 동적으로 생성하는 단계를 포함할 수 있다. 추가적으로, 방법은 데이터 저장부로부터 수신된 3D 오브젝트의 모델을 로딩하는 단계를 포함할 수 있다. 방법은 또한 3D 오브젝트를 하나 이상의 애니메이션 스트림들 중 일 애니메이션 스트림에 부착하는 단계를 포함할 수 있다.
[0031] 하나 이상의 실시예들에서, 하나 이상의 애니메이션 스트림들은 데이터 저장부 내에 저장된 개개의 3D 모델들에 대응한다. 하나 이상의 애니메이션 스트림들은 비디오에 대한 3D 오브젝트들의 움직임들, 배향 및/또는 포지션들을 제어할 수 있다. 3D 오브젝트의 모델은, 제어 스트리밍이 비디오 스트림들의 시간에서 미리 보고 3D 오브젝트가 디스플레이될 필요가 있을 때를 예상하는 것에 적어도 부분적으로 기초하여 로딩될 수 있다.
[0032] 하나 이상의 실시예들에서, 방법은 또한 모델의 크기, 네트워크 대역폭, 또는 사용자의 가상 및/또는 증강 현실 시스템의 프로세싱 능력 중 하나에 적어도 기초하여 모델을 로딩하기 위한 리드(lead) 시간을 결정하는 단계를 포함할 수 있다. 추가적으로, 방법은 또한 가상 및/또는 증강 현실 디바이스를 통해 비디오를 디스플레이하는 단계를 포함할 수 있다. 데이터 저장부는 비디오 파일이 수신될 때 메모리에 완전히 로딩될 수 있다. 제어 스트림은 제어 스트림이 생성될 때 메모리에 완전히 로딩될 수 있다. 비디오는 입체 3D 비디오일 수 있다.
[0033] 일부 실시예들은 프로그램 코드 명령들의 세트를 실행하는 컴퓨터 프로세서 및 프로그램 코드 명령들을 홀딩하는 메모리를 포함하는 혼합 현실 비디오 플레이어를 구현하는 컴퓨터 시스템에 관한 것이고, 프로그램 코드 명령들은, 비디오의 비디오 파일을 수신하는 것을 수행하기 위한 프로그램 코드를 포함할 수 있고, 비디오 파일은 하나 이상의 애니메이션 스트림들, 제어 데이터를 포함하는 데이터 저장부, 및 비디오 스트림 또는 오디오 스트림 중 적어도 하나를 포함할 수 있다. 프로그램 코드 명령들은 또한 제어 데이터 및 타임라인 제어기로부터 제어 스트림을 동적으로 생성하는 것을 수행하기 위한 프로그램 코드를 포함할 수 있다. 프로그램 코드 명령들은 데이터 저장부로부터 수신된 3D 오브젝트의 모델을 로딩하는 것을 수행하기 위한 프로그램 코드를 더 포함할 수 있다. 프로그램 코드 명령들은 또한 3D 오브젝트를 하나 이상의 애니메이션 스트림들 중 일 애니메이션 스트림에 부착하는 것을 수행하기 위한 프로그램 코드를 더 포함할 수 있다.
[0034] 다른 실시예는 비디오의 비디오 파일을 수신하는 단계를 포함하는 방법에 관한 것이고, 비디오 파일은 하나 이상의 애니메이션 스트림들, 제어 데이터를 포함하는 데이터 저장부, 및 비디오 스트림 또는 오디오 스트림 중 적어도 하나를 포함할 수 있다. 방법은 또한 제어 데이터 및 타임라인 제어기로부터 제어 스트림을 동적으로 생성하는 단계를 포함할 수 있다. 추가적으로, 방법은 또한 비디오의 일 시점에 사용자에게 디스플레이되는 질문에 대답하는 사용자 상호작용을 요청하는 단계를 포함할 수 있다. 추가로, 방법은 또한 사용자 상호작용을 통해 질문에 대한 대답을 수신하는 단계를 포함할 수 있다. 방법은 또한 대답을 타임라인 제어기에 통지하는 단계를 포함할 수 있다. 또한 추가로, 방법은 또한 대답에 대응하는 비디오의 적절한 부분으로 스킵하는 단계를 포함할 수 있다. 방법은 또한 적절한 부분으로부터 비디오를 디스플레이하는 단계를 포함할 수 있다.
[0035] 하나 이상의 실시예들에서, 방법은 또한 가상 및/또는 증강 현실 디바이스를 통해 비디오를 디스플레이하는 단계를 포함할 수 있다. 데이터 저장부는 비디오 파일이 수신될 때 메모리에 완전히 로딩될 수 있다. 제어 스트림은 제어 스트림이 생성될 때 메모리에 완전히 로딩될 수 있다. 비디오는 입체 3D 비디오일 수 있다. 제어 스트림은, 데이터 저장부로부터의 데이터에 적어도 부분적으로 기초하여, 비디오의 특정 시점에서 언제 사용자에게 질문을 디스플레이할지를 제어할 수 있다.
[0036] 하나 이상의 실시예들에서, 사용자 상호작용은 머리 포즈, 눈 추적, 눈 응시, 사용자의 손 제스처들, 토템 제스처들 또는 오브젝트 인식기 중 적어도 하나를 포함한다. 타임라인 제어기는 비디오 스트림의 포지션을 제어한다. 방법은 또한 수신된 대답에 적어도 부분적으로 기초하여 런타임 상호작용 데이터와 함께 비디오의 상태를 저장하는 단계를 포함할 수 있다. 사용자에게 디스플레이되는 질문은 비디오의 스토리라인이 어떻게 종료될 수 있는지를 변경하는 질문들에 대응한다.
[0037] 일부 실시예들은 프로그램 코드 명령들의 세트를 실행하는 컴퓨터 프로세서 및 프로그램 코드 명령들을 홀딩하는 메모리를 포함하는 혼합 현실 비디오 플레이어를 구현하는 컴퓨터 시스템에 관한 것이고, 프로그램 코드 명령들은, 비디오의 비디오 파일을 수신하는 것을 수행하기 위한 프로그램 코드를 포함하고, 비디오 파일은 하나 이상의 애니메이션 스트림들, 제어 데이터를 포함하는 데이터 저장부, 및 비디오 스트림 또는 오디오 스트림 중 적어도 하나를 포함한다. 프로그램 코드 명령들은 또한 제어 데이터 및 타임라인 제어기로부터 제어 스트림을 동적으로 생성하는 것, 비디오의 일 시점에 사용자에게 디스플레이되는 질문에 대답하는 사용자 상호작용을 요청하는 것, 사용자 상호작용을 통해 질문에 대한 대답을 수신하는 것, 대답을 타임라인 제어기에 통지하는 것, 대답에 대응하는 비디오의 적절한 부분으로 스킵하는 것, 및 적절한 부분으로부터 비디오를 디스플레이하는 것을 수행하기 위한 프로그램 코드를 포함할 수 있다.
[0038] 하나 이상의 실시예들에서, 프로그램 코드 명령들은 또한 가상 및/또는 증강 현실 디바이스를 통해 비디오를 디스플레이하는 것을 수행하기 위한 프로그램 코드를 포함할 수 있다. 데이터 저장부는 비디오 파일이 수신될 때 메모리에 완전히 로딩될 수 있다. 제어 스트림은 제어 스트림이 생성될 때 메모리에 완전히 로딩될 수 있다. 비디오는 입체 3D 비디오일 수 있다. 제어 스트림은, 데이터 저장부로부터의 데이터에 적어도 부분적으로 기초하여, 비디오의 특정 시점에서 언제 사용자에게 질문을 디스플레이할지를 제어할 수 있다.
[0039] 하나 이상의 실시예들에서, 사용자 상호작용은 머리 포즈, 눈 추적, 눈 응시, 사용자의 손 제스처들, 토템 제스처들 또는 오브젝트 인식기 중 적어도 하나를 포함한다. 타임라인 제어기는 비디오 스트림의 포지션을 제어한다. 방법은 또한 수신된 대답에 적어도 부분적으로 기초하여 런타임 상호작용 데이터와 함께 비디오의 상태를 저장하는 단계를 포함할 수 있다. 사용자에게 디스플레이되는 질문은 비디오의 스토리라인이 어떻게 종료될 수 있는지를 변경하는 질문들에 대응한다.
[0040] 다른 실시예는 가상 및/또는 증강 현실 환경에서 환경 인식 3D 비디오를 디스플레이하기 위한 방법에 관한 것이고, 방법은 3D 비디오를 식별하는 단계를 포함한다. 방법은 또한 하나 이상의 센서들로부터, 사용자 환경의 환경 정보를 수신하는 단계를 포함하고, 환경 정보는 환경 내의 오브젝트들을 식별한다. 방법은 3D 비디오의 일부를 환경으로부터 식별된 하나 이상의 오브젝트들 상에 렌더링하는 단계를 더 포함할 수 있다.
[0041] 하나 이상의 실시예들에서, 3D 비디오는 입체 3D 비디오이다. 환경은 사용자의 물리적 환경일 수 있다. 하나 이상의 센서들은 물리적 환경의 장면 정보를 캡처하기 위한 하나 이상의 카메라들을 포함한다. 방법은 하나 이상의 센서들로부터 캡처된 장면 정보를 해석하는 단계 및 환경으로부터 하나 이상의 엘리먼트들을 검출 및 등록함으로써 환경의 하나 이상의 엘리먼트들을 맵핑하는 단계를 더 포함한다. 3D 비디오는 제어 데이터를 포함하는 비디오 파일 포맷을 갖고, 제어 데이터는 환경으로부터 식별된 하나 이상의 오브젝트들 상에 3D 비디오의 일부를 디스플레이하도록 비디오 플레이어에 명령한다.
[0042] 일부 실시예들은, 가상 및/또는 증강 현실 환경을 캡처하기 위한 카메라, 및 데이터를 프로세싱하기 위한 모듈을 포함하고, 모듈은 메모리에 저장되고, 모듈은, 실행될 때, 3D 비디오를 식별하는 프로세스, 하나 이상의 센서들로부터, 사용자 환경의 환경 정보를 수신하는 프로세스 ― 환경 정보는 환경 내의 오브젝트들을 식별함 ―, 및 3D 비디오의 일부를 환경으로부터 식별된 하나 이상의 오브젝트들 상에 렌더링하는 프로세스를 수행하는, 가상 및/또는 증강 현실 디스플레이 시스템에 관한 것이다.
[0043] 하나 이상의 실시예들에서, 3D 비디오는 입체 3D 비디오이다. 환경은 사용자의 물리적 환경일 수 있다. 하나 이상의 센서들은 물리적 환경의 장면 정보를 캡처하기 위한 하나 이상의 카메라들을 포함한다. 방법은 하나 이상의 센서들로부터 캡처된 장면 정보를 해석하는 단계 및 환경으로부터 하나 이상의 엘리먼트들을 검출 및 등록함으로써 환경의 하나 이상의 엘리먼트들을 맵핑하는 단계를 더 포함한다. 3D 비디오는 제어 데이터를 포함하는 비디오 파일 포맷을 갖고, 제어 데이터는 환경으로부터 식별된 하나 이상의 오브젝트들 상에 3D 비디오의 일부를 디스플레이하도록 비디오 플레이어에 명령한다.
[0044] 일부 실시예들은 가상 및/또는 증강 현실 환경에서 상호작용식 3D 비디오를 디스플레이하기 위한 방법에 관한 것이고, 방법은 3D 비디오를 결정 노드들에 의해 주기적으로 인터럽트되는 비-실행가능 데이터의 스트림으로서 식별하는 단계를 포함한다. 추가로, 방법은 사용자에 의해 선택된 결정들에 대응하는 입력으로서 사용자로부터 하나 이상의 상호작용들을 수신하는 단계를 포함한다. 방법은 또한 사용자에 의해 선택된 결정들에 적어도 기초하여 3D 비디오를 렌더링하는 단계를 포함할 수 있다.
[0045] 하나 이상의 실시예들에서, 3D 비디오는 입체 3D 비디오이다. 3D 비디오는 제어 데이터를 포함하는 비디오 파일 포맷을 가질 수 있고, 제어 데이터는 사용자에 의해 선택된 결정들에 적어도 부분적으로 기초하여 3D 비디오의 부분들을 렌더링하도록 비디오 플레이어에 명령한다. 사용자로부터 수신된 하나 이상의 상호작용들은 머리 포즈, 눈 추적 제스처들, 토템 제스처들 또는 오브젝트 인식기 중 적어도 하나를 포함한다. 사용자로부터 수신된 하나 이상의 상호작용들로부터의 상호작용은 3D 비디오를 3D 비디오의 상이한 부분으로 점프시킨다.
[0046] 일부 실시예들은, 가상 및/또는 증강 현실 환경을 캡처하기 위한 카메라, 및 데이터를 프로세싱하기 위한 모듈을 포함하고, 모듈은 메모리에 저장되고, 모듈은, 실행될 때, 3D 비디오를, 결정 노드들에 의해 주기적으로 인터럽트되는 비-실행가능 데이터의 스트림으로서 식별하는 프로세스, 사용자에 의해 선택된 결정들에 대응하는 입력으로서 사용자로부터 하나 이상의 상호작용들을 수신하는 프로세스, 및 사용자에 의해 선택된 결정들에 적어도 기초하여 3D 비디오를 렌더링하는 프로세스를 수행하는, 가상 및/또는 증강 현실 디스플레이 시스템에 관한 것이다.
[0047] 하나 이상의 실시예들에서, 3D 비디오는 입체 3D 비디오이다. 3D 비디오는 제어 데이터를 포함하는 비디오 파일 포맷을 가질 수 있고, 제어 데이터는 사용자에 의해 선택된 결정들에 적어도 부분적으로 기초하여 3D 비디오의 부분들을 렌더링하도록 비디오 플레이어에 명령한다. 사용자로부터 수신된 하나 이상의 상호작용들은 머리 포즈, 눈 추적 제스처들, 토템 제스처들 또는 오브젝트 인식기 중 적어도 하나를 포함한다. 사용자로부터 수신된 하나 이상의 상호작용들로부터의 상호작용은 3D 비디오를 3D 비디오의 상이한 부분으로 점프시킨다.
[0048] 일부 실시예들은 3D 오브젝트들을 디스플레이하기 위한 방법에 관한 것이고, 방법은 3D 오브젝트를 표현하는 그래픽 데이터를 데이터베이스에 저장하는 단계를 포함할 수 있다. 방법은, 2D 불투명 팬 뒤에 위치된 3D 오브젝트를 뷰잉하기 위한 뷰잉 애퍼처를 포함하는 2D 불투명 팬을 디스플레이하는 단계, 뷰잉 애퍼처를 통해 뷰잉가능한 3D 오브젝트의 제1 부분을 제1 관점에서 렌더링하는 단계, 뷰잉 애퍼처를 통해 뷰잉가능한 3D 오브젝트를 제2 뷰잉 관점에서 디스플레이하도록 하는 요청을 수신하는 단계, 뷰잉 애퍼처를 통해 뷰잉가능한 3D 오브젝트의 제2 부분을 제2 관점에서 렌더링하는 단계, 및 3D 오브젝트의 제2 부분을 제2 관점에서 디스플레이하는 단계를 더 포함할 수 있다.
[0049] 하나 이상의 실시예들에서, 3D 오브젝트를 표현하는 그래픽 데이터는 전체 3D 오브젝트의 완전한 표현이다. 3D 오브젝트의 제1 부분의 렌더링은 제1 관점에서 3D 오브젝트의 시야에 대한 뷰잉 각도에 적어도 부분적으로 기초할 수 있다. 3D 오브젝트의 제2 부분의 렌더링은 제2 관점에서 3D 오브젝트의 시야에 대한 뷰잉 각도에 적어도 부분적으로 기초할 수 있다. 불투명 팬은 2D 불투명 팬 뒤에 위치된 복수의 3D 오브젝트들을 뷰잉하기 위한 복수의 뷰잉 애퍼처들을 더 포함할 수 있다.
[0050] 하나 이상의 실시예에서, 복수의 3D 오브젝트들의 각각의 3D 오브젝트는 개개의 뷰잉 애퍼처 뒤에 위치된다. 3D 오브젝트는 3D 아이콘일 수 있다. 뷰잉 애퍼처를 포함하는 2D 불투명 팬은 복수의 3D 아이콘들을 디스플레이하기 위한 아이콘 그리드일 수 있다. 3D 오브젝트는 사용자가 3D 오브젝트를 응시할 때 뷰잉 애퍼처를 통해 이동할 수 있다. 3D 오브젝트는 사용자가 3D 오브젝트 상에 포커싱하고 있지 않을 때 2D 이미지로서 디스플레이될 수 있다.
[0051] 본 개시의 추가적인 및 다른 목적들, 특징들 및 이점들은 상세한 설명, 도면들 및 청구항들에서 설명된다.
[0052] 도면들은 본 개시의 바람직한 실시예들의 설계 및 유용성을 예시하며, 여기서 유사한 엘리먼트들은 공통 참조 부호들로 참조된다. 본 개시의 앞서 인용된 및 다른 이점들 및 목적들이 어떻게 획득되는지를 더 잘 인식하기 위해, 위에서 간략히 설명된 본 개시의 보다 구체적인 설명은 첨부된 도면들에 예시된 그 특정 실시예들을 참조하여 렌더링될 것이다. 이러한 도면들은 본 개시의 오직 통상적인 실시예들만을 도시하고, 따라서 본 개시의 범위를 제한하는 것으로 간주되어서는 안 되고, 본 개시는 첨부된 도면들의 사용을 통해 추가적인 특정성 및 세부사항으로 기술되고 설명될 것이다.
[0053] 도면들은 유사한 엘리먼트들을 식별하기 위해 유사한 참조 부호들을 사용한다. 참조 부호 뒤의 문자, 예를 들어, "120a"는, 그 텍스트가 그 특정 참조 부호를 갖는 엘리먼트를 구체적으로 참조하는 것을 표시한다. 후속하는 문자가 없는 텍스트의 참조 부호, 예를 들어, "120"은 그 참조 부호를 갖는 도면들에서 임의의 또는 모든 엘리먼트들을 참조한다(예를 들어, 텍스트에서 "120"은 도면들에서 참조 부호들 "120a" 및/또는 "120b"를 참조한다).
[0054] 도 1은 일부 실시예들에 따른, 예시적인 사용자 물리적 환경 및 AR 환경에서 3D 비디오들을 디스플레이하기 위한 증강 현실 시스템을 도시한다.
[0055] 도 2는 일부 실시예들에 따른, 증강 현실 시스템에서 3D 비디오들을 디스플레이하기 위한 접근법에 대한 흐름도를 도시한다.
[0056] 도 3a 및 도 3b는 일부 실시예들에 따른, 스크린을 벗어나는 3D 이미지들 및/또는 3D 애니메이션들의 예들을 도시한다.
[0057] 도 4는 일부 실시예들에 따른, 가상 및/또는 증강 현실 환경에서 디스플레이 스크린의 표면을 넘어 확장되는 3D 비디오를 디스플레이하기 위한 접근법에 대한 흐름도를 도시한다.
[0058] 도 5는 일부 실시예들에 따른, 가상 및/또는 증강 현실 환경에서 환경 인식 3D 비디오를 디스플레이하기 위한 접근법에 대한 흐름도를 도시한다.
[0059] 도 6은 일부 실시예들에 따른, 가상 및/또는 증강 현실 환경에서 상호작용식 3D 비디오를 디스플레이하기 흐름도를 도시한다.
[0060] 도 7은 일부 실시예들에 따른, 3D 비디오들을 디스플레이하기 위한 비디오 포맷을 도시한다.
[0061] 도 8은 일부 실시예에 따른, 비디오 플레이어의 컴포넌트 도면을 도시한다.
[0062] 도 9는 일부 실시예에 따른, 비디오 포맷을 프로세싱하는 비디오 플레이어의 흐름을 도시한다.
[0063] 도 10은 본 개시의 실시예들 중 하나 이상을 구현하기에 적합한 예시적인 컴퓨팅 시스템의 블록도이다.
[0064] 본 개시는 VR, MR 및/또는 AR 시스템에서 3D 비디오들을 생성 및 디스플레이하는 것에 관한 것이다. 3D 비디오들은 스크린으로부터 벗어나는 것으로 나타나는 3D 오브젝트들을 포함할 수 있다. 3D 비디오는 VR(virtual reality), MR(mixed reality), AR(augmented reality), 및/또는 실제 환경 내의 오브젝트들과 상호작용할 수 있다. 3D 비디오는, 3D 비디오의 특정 부분들에서 사용자에 의해 선택된 결정들에 대응하는 사용자 입력에 기초하여 사용자와 상호작용적일 수 있어서, 3D 비디오에 대해 상이한 스토리라인 및 가능하게는 상이한 결론이 도출될 수 있다. 3D 비디오는 최종 3D 렌더링 세계의 포털 내에 디스플레이되는 3D 아이콘일 수 있다.
[0065] 본 개시는 본 개시의 일부 실시예들이 실시될 수 있는 예시적인 AR(augmented reality) 시스템에 대한 설명을 제공하고, 예시적인 AR 시스템에서 3D 비디오들을 생성 및 디스플레이하기 위한 프로세스들 및 메커니즘들의 하나 이상의 실시예들에 대한 설명이 후속된다.
예시적인 증강 현실 시스템 및 환경
[0066] 후속되는 설명은 본 개시가 실시될 수 있는 예시적인 AR 시스템과 관련된다. 그러나, 본 개시는 또한 다른 타입들의 AR, MR 및 VR(virtual reality) 시스템들의 애플리케이션들에 적합하고, 따라서 본 개시는 본원에 개시된 예시적인 시스템으로만 제한되지 않아야 함을 이해해야 한다.
[0067] 도면(도) 1을 참조하면, 본 개시에 따라 구성되는 AR 시스템(100)의 일 실시예가 설명된다. AR 시스템(100)은 AR 투사 서브시스템(110)과 관련하여 동작될 수 있고, 이는 최종 사용자(50)(이하 "사용자(50)"로 지칭됨)의 시야에서 3D 비디오들을 제공할 수 있다. 이러한 접근법은 적어도 부분적으로 투명한 표면을 포함할 수 있는 하나 이상의 접안 렌즈들을 이용하고, 이를 통해 사용자의 물리적 환경/경관(105)과 같은 주변 환경이 가상 콘텐츠(예를 들어, 3D 비디오, 가상 오브젝트들 등)의 이미지들과 함께 보여지거나 증강될 수 있다.
[0068] AR 시스템(100)은 사용자(50)에 의해 착용되는 프레임 구조(102), 프레임 구조(102)에 의해 운반되는 디스플레이 시스템(104)을 포함하여, 디스플레이 시스템(104)은 사용자(50)의 눈들 앞에 포지셔닝된다.
[0069] 디스플레이 시스템(104)은 2차원 및 3차원 콘텐츠 둘 모두를 갖는 물리적 현실에 대한 증강들로서 편안하게 인지될 수 있는 포토-기반 방사 패턴들을 사용자(50)의 눈들에 제시하도록 구성된다. 디스플레이 시스템(104)은 실제 및 가상 콘텐츠를 혼합한 단일 코히어런트 장면의 인지를 제공하는 프레임들의 시퀀스를 고주파수로 제시한다. 이를 위해, 디스플레이 시스템(104)은 투사 서브시스템(110) 및 접안 렌즈. 예를 들어, 그 위에 또는 이를 통해 투사 서브시스템(110)이 이미지들을 투사하는 부분적으로 투명한 표면일 수 있는 한 쌍의 유리들을 포함한다. 접안 렌즈는 사용자(50)의 눈들과 주변 환경 사이에서 사용자(50)의 시야에 포지셔닝된다. 일부 실시예들에서, 접안 렌즈는 완전히 투명한 표면, 부분적으로 투명한 표면 또는 반투명한 표면일 수 있어서, 사용자(50)는 디스플레이 시스템(104)을 착용한 동안 사용자의 실세계/주변 환경의 적어도 일부를 볼 수 있다.
[0070] 일부 실시예들에서, 투사 서브시스템(110)은 스캔-기반 투사 디바이스의 형태를 취할 수 있고, 접안 렌즈는, 예를 들어, 무한대보다 가까운 단일 광학 뷰잉 거리(예를 들어, 팔 길이)에서의 이미지들, 다수의 광학 뷰잉 거리들 또는 초점 평면들에서의 이미지들 및/또는 볼륨있는 3D 오브젝트들을 표현하는 다수의 뷰잉 거리들 또는 초점 평면들에 적층된 이미지 층들을 생성하도록 투사 서브시스템(110)으로부터의 광이 주입되는 도파관-기반 디스플레이의 형태를 취할 수 있다. 광 필드 내의 층들은 인간 시각 시스템에 연속적으로 나타나도록 서로 충분히 가깝게 적층될 수 있다(예를 들어, 하나의 층은 인접 층의 혼동 원추 내에 있다). 광 필드 내의 층들은 깊이 평면들을 이산적 뷰잉 거리들에 생성하기 위해 미리 결정된 깊이 인터벌들에 적층되고 한번에 하나씩 또는 조합하여 활용될 수 있다. 추가적으로 또는 대안적으로, 픽처 엘리먼트들은 둘 이상의 층들에 걸쳐 혼합되어, 광 필드 내의 층들이 더 드물게 적층되는 경우에도(예를 들어, 하나의 층은 인접 층의 혼동 원추 밖에 있음) 그러한 층들 사이에서 인지되는 전환의 연속성을 증가시킬 수 있다. 디스플레이 시스템(104)은 단안 또는 쌍안일 수 있다. 스캐닝 조립체는 하나 이상의 광 빔들을 생성하는 하나 이상의 광원들을 포함한다(예를 들어, 정의된 패턴들에서 복수의 컬러들로 광을 방출한다). 광원들은 다양한 형태들 중 임의의 형태, 예를 들어, 픽셀 정보 또는 데이터의 개개의 프레임들에서 특정되는 정의된 픽셀 패턴들에 따라 적색, 녹색 및 청색 코히어런트 시준된 광을 각각 생성하도록 동작가능한 RGB 소스들의 세트(예를 들어, 적색, 녹색 및 청색 광을 출력할 수 있는 레이저 다이오드들)의 형태를 취할 수 있다. 레이저 광은 높은 컬러 채도를 제공하며 에너지 효율이 높다. 일부 실시예들에서, LED(light emitting diode)들이 사용될 수 있고, 광은 시준되지 않을 수 있다. 광학 커플링 서브 시스템은 광을 접안 렌즈의 단부 또는 에지 또는 측면에 광학적으로 커플링하기 위해 예를 들어, 하나 이상의 반사 표면들, 회절 격자들, 미러들, 이색성 미러들 또는 프리즘들과 같은 광학 도파관 입력 장치를 포함한다. 광학 커플링 서브시스템은 광섬유로부터의 광을 시준하는 시준 엘리먼트를 더 포함할 수 있다.
[0071] 선택적으로, 광학 커플링 서브시스템은, 시준 엘리먼트로부터의 광을 광학 도파관 입력 장치의 중심에서 초점을 향해 수렴하도록 구성되어 광학 도파관 입력 장치의 크기가 최소화되도록 허용하는 광학 변조 장치를 포함한다. 따라서, 디스플레이 시스템(104)은 하나 이상의 가상 오브젝트들의 왜곡되지 않은 이미지를 사용자에게 제시하는 픽셀 정보의 일련의 합성 이미지 프레임들을 생성한다. 디스플레이 서브시스템들을 설명하는 추가적 세부사항들은, 발명의 명칭이 "Display System and Method"인 미국 정식 특허 출원 일련번호 제14/212,961호, 및 발명의 명칭이 "Planar Waveguide Apparatus With Diffraction Element(s) and Subsystem Employing Same"인 미국 특허 제9,671,566호에서 제공되며, 이들은 인용에 의해 본원에 명시적으로 통합된다.
[0072] 일부 실시예들에서, 투사 서브시스템(110)은 LCoS 또는 LCOS(liquid crystal on silicon)의 형태를 취할 수 있다. LCOS는 실리콘 백플레인의 최상부 상에서 액정 층을 사용하는 "마이크로 디스플레이" 또는 소형 반사형 액티브 매트릭스 액정 디스플레이일 수 있다. LCOS는 또한 공간 광 변조기로 지칭될 수 있다. LCOS는 파장 선택적 스위칭, 구조화된 조명, 근거리 디스플레이들 및/또는 광학 펄스 성형에 사용될 수 있다. LCOS에 관한 더 많은 정보는, 발명의 명칭이 "Augmented and virtual reality eyewear, systems, and methods for delivering polarized light and determining glucose levels"인 미국 특허 출원 제15/807,486호에 개시되며, 이는 인용에 의해 이전에 통합되었다.
[0073] AR 시스템(100)은 사용자(50)의 머리의 포지션 및 움직임 및/또는 사용자(50)의 눈 포지션 및/또는 안구간 거리를 검출하기 위해 프레임 구조(102)에 장착된 하나 이상의 센서들을 더 포함한다. 이러한 센서(들)는 이미지 캡처 디바이스들, 마이크로폰들, IMU(inertial measurement unit)들, 가속도계들, 나침반들, GPS 유닛들, 라디오 디바이스들 및/또는 자이로들을 포함할 수 있다. 예를 들어, 일 실시예에서, AR 시스템(100)은 사용자(50)의 머리의 움직임을 나타내는 관성 측정들을 캡처하기 위해 하나 이상의 관성 트랜스듀서들을 포함하는 머리 착용 트랜스듀서 서브시스템을 포함한다. 이러한 디바이스들은 사용자(50)의 머리 움직임들에 대한 정보를 감지, 측정 또는 수집하기 위해 사용될 수 있다. 예를 들어, 이들 디바이스들은 사용자(50)의 머리의 측정 움직임들, 속도들, 가속도 및/또는 포지션들을 검출하기 위해 사용될 수 있다. 일단 사용자의 머리의 위치 및/또는 포지션이 알려지면, 혼합 현실 엔진(166)은 사용자와 사용자의 환경 내의 실제 및/또는 가상 오브젝트들 사이의 거리를 결정할 수 있다. 거리는 다양한 상이한 방법들을 사용하여 결정될 수 있다. 일부 실시예들에서, 하나 이상의 깊이 센서들, 또는 다른 환경 감지 센서들(예를 들어, 외향 카메라)은, 일부 실시예들에서, 월드 메시(world mesh)로 지칭될 수 있는 실세계의 디지털 복제를 생성하기 위해 사용될 수 있다. 다양한 데이터가 월드 메시와 연관될 수 있고, 따라서, 사실상 통과가능한 세계로 지칭될 수 있는 환경 인식 시스템을 생성한다. 예를 들어, 월드 메시와 연관된 데이터는 오브젝트 또는 표면 이름들 또는 타입들(예를 들어, 수평 표면, 테이블, 의자, tv 스크린 등)일 수 있다. 사용자의 포지션은 통과가능한 세계와 비교될 수 있어서 실제 오브젝트와 가상 오브젝트 사이의 거리들이 계산될 수 있다. 일부 실시예들에서, 통과가능한 세계는 3D 렌더링 세계의 전부 또는 일부에 대응할 수 있다. 실세계 환경의 3D 메시(예를 들어, 월드 메시)를 생성하기 위한 방법들 및 시스템들을 설명하는 추가적 세부사항들은, 발명의 명칭이 "Methods and Systems for Detecting and Combining Structural Features in 3D Reconstruction"인 미국 정식 특허 출원 일련번호 제15/274,823호에 제공되며, 이는 인용에 의해 그 전체가 본원에 명시적으로 통합된다. 일부 실시예들에서, 사용자는 단순히 실세계의 디지털 모델, 또는 사용자의 환경을 포함하는 실세계의 적어도 서브세트를 필요로 한다. 실세계의 디지털 모델은 깊이 센서, 통과가능한 세계 시스템(예를 들어, 전술한 바와 같음) 및/또는 저장된 지도를 사용하여 생성될 수 있다.
[0074] AR 시스템(100)은 사용자 배향 검출 모듈을 더 포함할 수 있다. 사용자 배향 검출 모듈은 사용자(50)의 머리의 순간적 포지션을 검출하고 센서(들)로부터 수신된 포지션 데이터에 기초하여 사용자(50)의 머리의 포지션을 예측할 수 있다. 사용자 배향 검출 모듈은 또한 사용자(50)의 눈들, 특히 센서(들)로부터 수신된 추적 데이터에 기초하여 사용자(50)가 포커싱되는 방향 및/또는 거리를 추적한다.
[0075] AR 시스템(100)은 또한 혼합 현실 미디어 플레이어(164)를 포함한다. 혼합 현실 미디어 플레이어(164)는 3D 비디오 데이터베이스(160)로부터 혼합 현실 비디오 포맷(162)을 갖는 데이터를 선택하고 리트리브할 수 있다. 혼합 현실 미디어 플레이어(164)는 혼합 현실 비디오 포맷(162)을 해석하고, 해석을 혼합 현실 엔진(166)에 제공하여, 사용자(50)에게 디스플레이될 사용자의 머리 포즈에 적어도 부분적으로 기초한 비디오의 최종 구성을 제공할 수 있다. 혼합 현실 엔진(166)은 사용자의 머리 포즈에 기초한 장면의 최종 구성에 사용될 수 있는 모델들 및 비디오를 렌더링할 수 있다. 혼합 현실 비디오 포맷(162) 및 혼합 현실 미디어 플레이어(164)의 더 상세한 개시는 후술될 것이다.
[0076] AR 시스템(100)은 매우 다양한 형태들 중 임의의 형태를 취할 수 있는 제어 서브시스템을 더 포함한다. 제어 서브시스템은 다수의 제어기들, 예를 들어, 하나 이상의 마이크로제어기들, 마이크로프로세서들 또는 CPU(central processing unit)들, 디지털 신호 프로세서들, GPU(graphics processing unit)들, 다른 집적 회로 제어기들, 예를 들어, ASIC(application specific integrated circuit)들, PGA(programmable gate array)들, 예를 들어, FPGA(field PGA)들 및/또는 PLU(programmable logic controller)들을 포함한다. 제어 서브시스템은 DSP(digital signal processor), CPU(central processing unit), GPU(graphics processing unit)(152) 및 하나 이상의 프레임 버퍼들(154)을 포함할 수 있다. CPU는 시스템의 전반적 동작을 제어하는 한편, GPU(152)는 프레임들을 렌더링하고(즉, 3차원 장면을 2차원 이미지로 변환함) 이러한 프레임들을 프레임 버퍼(들)(154)에 저장한다. 예시되지는 않지만, 하나 이상의 추가적인 집적 회로들은 프레임 버퍼(들)(154)로의 판독 및/또는 그로부터의 판독 및 디스플레이 시스템(104)의 스캐닝 디바이스의 동작을 제어할 수 있다. 프레임 버퍼(들)(154)로의 판독 및/또는 그로부터의 판독은 동적 어드레싱을 이용할 수 있고, 예를 들어, 프레임들은 오버-렌더링된다. AR 시스템(100)은 ROM(read only memory) 및 RAM(random-access memory)을 더 포함한다. AR 시스템(100)은, GPU(152)가 3D 장면들 내에 포함된 가상 사운드 소스들과 연관된 합성 사운드 데이터뿐만 아니라 프레임들을 렌더링하기 위한 하나 이상의 장면들의 이미지 데이터에 액세스할 수 있는 3D 데이터베이스(160)를 더 포함한다.
[0077] AR 시스템(100)의 다양한 프로세싱 컴포넌트들은 분산형 서브시스템에 물리적으로 포함될 수 있다. 예를 들어, AR 시스템(100)은 예를 들어, 유선 리드 또는 무선 접속에 의해 디스플레이 시스템(104)의 일부에 동작가능하게 커플링된 로컬 프로세싱 및 데이터 모듈을 포함할 수 있다. 로컬 프로세싱 및 데이터 모듈은, 프레임 구조(102)에 고정식으로 부착되거나, 헬멧 또는 모자에 고정식으로 부착되거나, 헤드폰들에 내장되거나, 사용자(50)의 몸에 착탈식으로 부착되거나, 또는 벨트-커플링 스타일 구성으로 사용자(50)의 엉덩이에 착탈식으로 부착되는 것과 같이 다양한 구성들로 장착될 수 있다.
[0078] AR 시스템(100)은 예를 들어, 로컬 프로세싱 및 데이터 모듈에 대한 유선 리드 또는 무선 접속에 의해 동작가능하게 커플링되는 원격 프로세싱 모듈 및 원격 데이터 저장소를 더 포함하여, 이러한 원격 모듈들은 서로 동작가능하게 커플링되고 로컬 프로세싱 및 데이터 모듈에 대한 자원들로서 이용가능할 수 있다. 로컬 프로세싱 및 데이터 모듈은 전력-효율적 프로세서 또는 제어기 뿐만 아니라 디지털 메모리, 이를테면 플래시 메모리를 포함할 수 있고, 둘 모두는 가능하게는 프로세싱 또는 리트리벌 이후 디스플레이 시스템(104)으로의 통과를 위해 센서들로부터 캡처된 및/또는 원격 프로세싱 모듈 및/또는 원격 데이터 저장소를 사용하여 포착 또는 프로세싱된 데이터의 프로세싱, 캐싱 및 저장을 보조하기 위해 활용될 수 있다.
[0079] 원격 프로세싱 모듈은 데이터 및/또는 이미지 정보를 분석 및 프로세싱하도록 구성된 하나 이상의 비교적 강력한 프로세서들 또는 제어기들을 포함할 수 있다. 원격 데이터 저장소는 "클라우드" 자원 구성에서 인터넷 또는 다른 네트워킹 구성을 통해 이용가능할 수 있는 비교적 대규모 디지털 데이터 저장 설비를 포함할 수 있다.
[0080] 일 실시예에서, 모든 데이터가 저장되고 모든 계산들이 로컬 프로세싱 및 데이터 모듈에서 수행되어 임의의 원격 모듈들로부터 완전히 자율적인 사용을 허용한다. 전술된 다양한 컴포넌트들 사이의 커플링들은 유선 또는 광 통신들을 제공하기 위한 하나 이상의 유선 인터페이스들 또는 포트들, 또는 무선 통신들을 제공하기 위해 RF(radio frequency), 마이크로파 및 IR(infrared)을 통한 것과 같은 하나 이상의 무선 인터페이스들 또는 포트들을 포함할 수 있다. 일부 구현들에서, 모든 통신들은 유선일 수 있는 반면, 다른 구현들에서 모든 통신들은 광섬유(들)를 제외하고는 무선일 수 있다.
[0081] 예를 들어, AR 시스템(100)의 디스플레이 시스템(104)을 사용하는 사용자(50)는 사용자의 물리적 환경/경관(105)을 바라보고 있을 수 있다. 사용자의 물리적 환경/경관(105)은 수직 벽(125) 상에 디스플레이되는 가상 텔레비전(120)을 포함할 수 있다. 수직 벽(125)은 사용자(50)가 위치될 수 있는 방의 임의의 수직 벽일 수 있다. 수직 벽은 또한 건물의 측면(내부 또는 외부) 상의 벽 또는 임의의 위치에서 보이는 임의의 자연 수직 벽일 수 있다. 일부 실시예들에서, 가상 텔레비전(120)은 블랭크 수직 벽(125)에 앵커링 및/또는 고정되거나 사용자의 물리적 환경/경관에서 수직 벽에 매달려 있는 픽처 프레임(미도시) 위에 디스플레이될 수 있다. 가상 텔레비전(120)은 수직 벽(125) 상에 앵커링되거나 고정된 AR 시스템(100)에 의해 생성된 또는 일부 실시예에서는 공간에서 떠 다니는 가상 오브젝트일 수 있다. 가상 텔레비전(120)은 AR 시스템(100)이 3D 비디오(115)를 위에 또는 안에 디스플레이할 수 있는 가상 오브젝트일 수 있다. 가상 텔레비전(120)은 사용자의 물리적 환경/경관(105) 내의 포털일 수 있다. 포털은 아래에서 논의된다.
[0082] 3D 비디오(115)는 디스플레이 시스템(104)을 사용하여 사용자(50)에게 3D 효과의 현실적인 뷰를 제공하기 위해, 3D 비디오와 함께 렌더링 및 디스플레이될 수 있는 3D 애니메이션 오브젝트를 포함할 수 있다. 3D 애니메이션 오브젝트는 실제로 가상 텔레비전 스크린으로부터 나오는/쏟아져 나오는 것처럼 보일 수 있다. 사용자가 측면도의 뷰잉 관점으로 이동하면, 사용자는 실제로 3D 오브젝트 및/또는 3D 애니메이팅된 오브젝트가 가상 텔레비전 디스플레이 스크린으로부터 사용자의 물리적 환경/경관(105)으로 나오는 것을 볼 수 있다.
[0083] 추가적으로, 다른 실시예에서, 3D 비디오는 AR 시스템(100) 상에 구성된 환경 감지 센서들에 기초하여 사용자의 물리적 환경/경관(105)을 인식할 수 있다. 3D 비디오는 사용자의 물리적 환경을 인식할 수 있기 때문에, 3D 비디오는 3D 비디오의 부분들을 사용자의 물리적 환경 내에서 실제 오브젝트들로 렌더링함으로써 그 3D 비디오를 제시하면서 환경 인식 정보를 이용할 수 있다. 예를 들어, AR 시스템(100) 내의 센서들은 사용자의 물리적 환경/경관 내에 위치된 2개의 의자들(135a 및 135b)을 검출할 수 있다. 뉴스 방송에 대한 3D 비디오는 사용자의 물리적 환경/경관에서 의자들(135a 및 135b)에 앉아 있는 리포터들(130)을 배치할 수 있고, 리포터들(130)은 리포터들(130)이 사용자의 물리적 환경에 있는 것처럼 뉴스를 보고한다. 본 개시의 환경 인식 특징들에 대한 보다 상세한 논의는 아래에 있다.
[0084] 다른 실시예에서, 3D 비디오는 VR 및/또는 AR 시스템의 사용자와 상호작용적일 수 있다. 예로서, 3D 비디오의 특정 부분들 또는 시점들에서, 사용자는 비디오의 스토리라인에 영향을 미칠 수 있는 의사 결정을 제공받을 수 있다. 결정을 선택하기 위한 사용자의 상호작용에 기초하여, 3D 비디오가 변경될 수 있고 3D 비디오의 상이한 결말 또는 결과에 도달될 수 있다. 상호작용식 3D 비디오에 대한 더 상세한 논의는 아래에서 찾을 수 있다.
AR 장면의 포털 내에서 3D 비디오들의 디스플레이
[0085] 포털은 2D 및/또는 3D 볼륨 공간의 평면 표면 내의 개구 및/또는 위치일 수 있으며, 여기서 오브젝트 또는 다른 가상 콘텐츠는 평면 표면의 개구에, 뒤에, 앞에 및/또는 내부에 렌더링 및/또는 디스플레이될 수 있다. 디스플레이 시스템(104)을 사용하여 사용자(50)에 의해 평면 표면의 개구 및/또는 3D 볼륨 공간 내의 위치를 통해 오브젝트를 보거나 뷰잉할 수 있다. 평면 표면은 사용자가 평면 표면을 통해 뷰잉하지 못할 수 있도록 불투명할 수 있다. 그러나, 사용자(50)는 평면 표면(예를 들어, 포털)의 개구를 통해 불투명 평면 표면을 통해 뷰잉할 수 있다. 예를 들어, 사용자가 직접 정면 뷰 포지션을 갖는 제1 관점에서 오브젝트를 뷰잉하려는 경우, 오브젝트는 포털이 오브젝트 주위의 경계를 프레이밍하는 오브젝트의 평평한 2D 정면 뷰인 것처럼 보일 수 있다. 포털은 이러한 첫 번째 관점에서 원, 직사각형, 정사각형, 다각형 등과 같은 임의의 형상으로 보일 수 있다.
[0086] 예를 계속하면, 사용자가 측면 뷰 포지션을 갖는 제2 관점에서 오브젝트를 뷰잉하려는 경우, 제2 관점의 측면 뷰 각도에 따라 그리고 평면 표면의 정면 표면에 대해 렌더링 및/또는 디스플레이되고 있는 오브젝트의 포지션에 기초하여, 오브젝트의 부분들은 사용자에게 가시적일 수 있고 오브젝트의 다른 부분들은 차단되거나 가시적이 아닐 수 있어서, 오브젝트가 평면 표면의 후방 또는 뒤를 향해 포지셔닝되면 오브젝트의 더 작은 부분이 뷰잉될 수 있는 것과 반대로, 오브젝트가 평면 표면의 전방을 향해 포지셔닝되면 오브젝트의 더 큰 부분이 뷰잉될 수 있다. 오브젝트가 평면 표면의 후방 또는 뒤를 향해 포지셔닝되는 경우, 오브젝트의 부분들은 평면 표면에 의해 잘릴 수 있다. 뷰잉되는 오브젝트는 2D 이미지, 2D 비디오, 3D 모델(예를 들어, 컴퓨터 생성 3D 아이콘) 및/또는 3D 비디오일 수 있다. 일부 실시예들에서, 평면 표면은 사용자가 평면 표면의 반대쪽에 위치된 어떤 것도 볼 수 없도록 완전히 불투명할 수 있다. 다른 실시예들에서, 평면 표면은 반투명일 수 있어서, 사용자는 포털을 통해 뷰잉할 때 평면을 통해 일부 오브젝트들 또는 이미지들을 볼 수 있지만, 명확한 뷰는 아닐 수 있다.
[0087] 일부 실시예들에서, 포털 효과는 사용자에게 디스플레이될 임의의 다른 3D 가상 콘텐츠와 유사한 방식으로 3D 가상 콘텐츠를 최종 렌더링 세계에 직접 배치함으로써 생성될 수 있다. 예를 들어, 3D 가상 콘텐츠는 사용자에게 디스플레이되고 있는 최종 렌더링 세계의 임의의 다른 3D 가상 콘텐츠와 좌표계를 공유할 것이다. 좌표계는 실세계 좌표계에 대응하여, 3D 가상 콘텐츠는 실세계에 대해 고정될 수 있다. 포털 개구 효과를 생성하기 위해, 폐색 마스크와 같은 마스크가 사용될 수 있다. 일부 실시예들에서, 폐색 마스크는 실세계 벽에 가상 개구의 외관을 제공하기 위해 실세계 메시에 대해 배치될 수 있다. 이러한 예에서, 사용자가 벽 주위를 걸어 다니는 경우, 사용자는 포털 공간에 진입하여 포털을 통해 이전에 뷰잉된 3D 가상 콘텐츠는 이제 사용자의 즉각적인 환경에 있거나 또는 대안적으로 사용자는 포털 세계 내에 있는 것으로 생각될 수 있다. 일부 실시예들에서, 포털은, 사용자가 특정 영역을 넘어 이동하는 경우 포털이 "폐쇄"되고(예를 들어, 포털과 연관된 3D 콘텐츠가 최종 렌더링 세계로부터 제거됨), 따라서 사용자가 실제로 포털에 진입하거나 포털 3D 가상 콘텐츠와 직접 상호작용하는 것을 방지하도록 하는 대응하는 경계들을 가질 수 있다.
[0088] 도 2는 증강 현실 시스템에서 3D 비디오들을 디스플레이하기 위한 접근법에 대한 흐름도를 도시한다. 210에서, 3D 비디오는 사용자의 물리적 환경/경관 내에 디스플레이되도록 식별될 수 있다. 3D 비디오는 입체 3D 비디오일 수 있다.
[0089] 220에서, 사용자의 물리적 환경/경관에서 3D 비디오를 디스플레이하기 위한 볼륨 공간이 식별될 수 있다. 볼륨 공간은 3D 오브젝트(예를 들어, 3D 비디오)를 디스플레이하기 위한 포털일 수 있다. 포털은 평면 뷰잉 디스플레이(예를 들어, 가상 디스플레이 스크린)를 갖는 가상 텔레비전일 수 있다.
[0090] 230에서, 3D 비디오는 볼륨 공간(예를 들어, 가상 텔레비전(120))으로 렌더링될 수 있다. 가상 텔레비전은 3D 비디오가 렌더링되고 궁극적으로 내부에 디스플레이될 수 있는 포털을 갖는 평면 표면을 포함할 수 있다. 예를 들어, 가상 텔레비전은 포털(예를 들어, 가상 텔레비전 스크린)과 텔레비전 프레임 자체를 분리하는 경계를 포함할 수 있다. 일부 실시예들에서, 경계는 존재하지 않을 수 있으며, 이러한 실시예들에서, 가상 텔레비전의 평면 표면은 전체 가상 텔레비전일 수 있다. 3D 비디오는 볼륨 공간(예를 들어, 가상 텔레비전(120))의 고정된 경계들 내에서만 렌더링 및/또는 디스플레이될 수 있기 때문에, 3D 비디오는 사용자의 물리적 환경/경관의 일부에서만 렌더링되고 디스플레이될 수 있다.
[0091] 3D 비디오는 입체 이미지들을 사용하여 종래의 방식으로 생성된 3D 비디오일 수 있다. 입체는, 약간 상이한 각도들에서 취해진 동일한 오브젝트의 2개의 사진들이 함께 뷰잉되어 깊이 및 견고성(예를 들어, 3D 효과) 인상을 생성하는 프로세스이다. 여기서, 예로서, 3D 비디오는 사용자의 물리적 환경/경관 내의 가상 텔레비전(예를 들어, 포털) 내에서 사용자에게 렌더링 및/또는 디스플레이된다. 3D 비디오의 렌더링은 3D 비디오로부터 획득된 제1 깊이 정보 및 가상 텔레비전 스크린의 위치로부터 사용자의 위치까지의 깊이 정보에 대응하는 제2 깊이 정보를 포함할 수 있어서, 사용자(50)에게 디스플레이되는 최종 렌더링된 3D 비디오는 디스플레이 시스템(104)을 사용하여 3D 비디오를 뷰잉할 때 사용자에 대한 원근조절-이접운동의 문제를 완화시키는 것을 도울 수 있는 깊이 정보를 포함할 수 있다. 입체 이미지들로부터 깊이 정보를 수집하고 이를 스크린의 깊이 버퍼에 추가함으로써, 생성된 깊이 정보의 품질은 런타임에 깊이를 결정할 수 있는 알고리즘들 및 장면에 적어도 부분적으로 기초하여 크게 향상될 것이다.
[0092] 일부 실시예들에서, 3D 오브젝트(예를 들어, 입체 3D 오브젝트 또는 입체 3D 비디오)는 포털을 통해 렌더링 및/또는 디스플레이될 수 있다. 종래에, 2D 이미지들이 포털을 통해 렌더링 및 디스플레이된다. 그러나, 증강 현실 환경에서, 3D 오브젝트들 및 3D 비디오들은 AR 환경 내에서 포털(예를 들어, 가상 텔레비전)을 통해 렌더링 및 디스플레이될 수 있다.
[0093] 일 실시예에서, 포털은 3D 렌더링 세계(또는 대안적으로 3D 렌더링 장면, 렌더링 장면 또는 3D 장면)에서 식별될 수 있다. 3D 렌더링 세계는 실세계의 디지털 표현(예를 들어, 사용자의 물리적 환경/경관(105))에 대해 배치된 2D 및 3D 디지털 콘텐츠의 디지털 표현일 수 있으며, 여기서 2D 및 3D 디지털 콘텐츠는 가상 콘텐츠로서 렌더링되고 사용자에게 디스플레이될 수 있다. 가상 콘텐츠가 사용자 및 실세계에 대한 정확한 관점에서 렌더링되도록 하기 위해, 둘 이상의 가상 렌더링 카메라들이 3D 렌더링 세계에 배치될 수 있다. 하나의 가상 렌더링 카메라는 우측 눈을 위한 것일 수 있고 다른 가상 렌더링 카메라는 좌측 눈을 위한 것일 수 있다. 포털은 3D 렌더링 세계 내에 위치될 수 있으며, 이는 포털 관점에서 사용자가 볼 것을 캡처하기 위해 추가적인 가상 렌더링 카메라가 3D 렌더링 장면의 상이한 위치에 배치될 것을 요구할 수 있다. 포털은 사용자가 평면 표면을 통해 또는 평면 표면을 볼 수 있게 하는 평면 표면 내의 일부일 수 있다. 포털은 가상 텔레비전 스크린일 수 있고, 가상 텔레비전은 3D 렌더링 세계 내에서 평면 표면을 제공할 수 있고, 가상 텔레비전 스크린은 가상 텔레비전의 평면 표면의 개구일 수 있다.
[0094] 추가적으로, 디스플레이 시스템(104)을 사용하는 사용자가 제1 2D 입체 이미지 및 제2 2D 입체 이미지를 함께 3D 이미지 또는 3D 모델로 인지할 수 있도록, 제1 2D 입체 이미지 및 제2 2D 입체 이미지는 포털에 렌더링될 수 있다. 제1 2D 입체 이미지는 우측 눈의 관점으로 캡처된 이미지일 수 있고, 제2 2D 입체 이미지는 좌측 눈의 관점으로 캡처된 이미지일 수 있다. 3D 이미지는 3D 비디오일 수 있고, 제1 2D 입체 이미지는 우측 눈의 관점에서 캡처된 제1 2D 입체 비디오일 수 있고, 제2 2D 입체 이미지는 좌측 눈의 관점에서 캡처된 제2 2D 입체 비디오일 수 있다. 위에서 논의된 바와 같이, 3D 비디오는 입체 이미지들을 사용하여 (예를 들어, 실세계의 실제 스크린에서 사용하기 위해) 종래 방식으로 생성된 3D 비디오일 수 있다. 여기서, 3D 비디오는 3D 렌더링 세계의 포털 내에 렌더링 및 디스플레이될 수 있다.
[0095] 또한, 제1 2D 입체 이미지 및 제2 2D 입체 이미지는 3D 렌더링 세계의 상이한 위치들 내에 위치된 2개의 상이한 가상 카메라들로부터 소싱될 수 있다. 일부 실시예들에서, 제1 2D 입체 이미지 및 제2 2D 입체 이미지는 실세계 콘텐츠를 캡처하는 2개의 상이한 실세계 카메라들로부터 소싱될 수 있다. 예를 들어, 사용자(50)는 사용자의 물리적 환경/경관(105) 내의 디스플레이 시스템(104)을 사용하여 가상 텔레비전 스크린 상에서, 3D 비디오로서 렌더링될 수 있는 실세계 이미지들을 캡처하는 2개의 카메라들(예를 들어, 사용자의 실제 집의 보안 카메라들)로부터의 비디오 데이터를 수신하고 있는 3D 비디오를 시청할 수 있다. 추가적으로, 제1 및 제2 2D 입체 이미지들은 또한 포털 아이콘과 같은 상이한 3D 렌더링 세계로부터 소싱될 수 있다.
[0096] 일 실시예에서, 아이콘은 포털 내에 디스플레이될 수 있다. 아이콘은 컴퓨터 생성되는 3D 오브젝트일 수 있다. 아이콘은 몇몇 부분들로 구성될 수 있다. 일부 실시예들에서, 포털 아이콘은 포털 내에 포함된 배경, 애퍼처, 및 조리개 내부 및 외부로 이동할 수 있고 아이콘 및 애퍼처로부터 전경 엘리먼트의 완전한 제거를 포함하는 전경 엘리먼트를 가질 수 있다. 아이콘은 사용자가 애플리케이션 런처 메뉴로부터 런칭할 수 있는 애플리케이션을 표현할 수 있다. 애플리케이션 런처 메뉴는 개개의 포털들 내에 각각 제시된 하나 이상의 3D 아이콘들을 포함할 수 있다. 이는, 애플리케이션과 연관된 3D 콘텐츠가 아이콘 내에 쉽게 포함되지만 사용자에 의해 여전히 뷰잉되도록 허용할 수 있다. 사용자가 포털 내에 위치된 아이콘을 보고 있을 때, 아이콘은 활성화되고 애니메이팅을 시작할 수 있다. 사용자가 아이콘을 보고 있지 않을 때, 아이콘은 포털 내에 디스플레이되는 평평한 2D 이미지인 것처럼 보일 수 있다. 그러나, 사용자의 눈 응시가 포털 내에서 유휴 상태로 디스플레이되는 아이콘(예를 들어, 평평한 2D 아이콘)에 초점을 맞추기 시작함에 따라, 아이콘은 포털 내에서 (예를 들어, 3D 아이콘으로) 변형하기 시작할 수 있다. (예를 들어, 3D) 아이콘은 심지어 사용자를 향해 이동하기 시작하고 포털을 떠나 포털 외부로 떠 다니는 것처럼 보일 수 있어서 사용자가 아이콘을 3D 아이콘 오브젝트로서 뷰잉할 수 있다. 사용자는 다수의 각도들로부터 3D 아이콘을 뷰잉할 수 있다. 이는, 아이콘들이 비교적 작은 크기이고 통상적으로 이들이 표현하는 애플리케이션을 설명하기 위해 제한된 공간을 갖는 2D 이미지들인 것이 아이콘들의 일반적인 문제이기 때문에 유리할 수 있다. 그러나, 이러한 문제는 3D 아이콘을 디스플레이함으로써 해결될 수 있고, 3D 아이콘은 단지 2D 아이콘에 비해 3D 아이콘에 이용가능한 추가적인 표면 영역으로 인해 더 큰 표면을 가질 수 있다. 일부 실시예들에서, 3D 아이콘은 아이콘으로부터 런칭될 수 있는 더 작은 버전의 실제 애플리케이션을 디스플레이할 수 있어서, 사용자는 아이콘을 보고 인식할 수 있다.
[0097] 다른 실시예에서, 2 개의 제1 스테이지 카메라들이 3D 환경에 배치될 수 있다. 2개의 제1 스테이지 카메라들로부터 2D 이미지들의 하나 이상의 쌍들이 캡처될 수 있다. 2D 이미지들 중 하나 이상의 쌍들은 최종 3D 렌더링 세계 내의 위치로 배치될 수 있다. 최종 3D 렌더링 세계는 가상 및/또는 증강 현실 디바이스(예를 들어, 디스플레이 시스템(104))를 사용하여 사용자에게 디스플레이되도록 렌더링될 수 있으며, 디스플레이 시스템(104)은 세계 장면의 2D 이미지들을 캡처하는 2개의 가상 카메라들을 포함할 수 있으며, 여기서 2개의 카메라들의 각각의 카메라는 사용자의 눈에 대응한다. 즉, 2개의 제1 스테이지 카메라들은 3D 입체 비디오에 대한 콘텐츠를 제공한다. 3D 입체 비디오는 최종 3D 렌더링 장면 내의 위치에 배치된다. 최종 3D 렌더링 세계/장면은, 디스플레이 시스템(104)을 사용하여 2개의 카메라들의 쌍의 각각의 카메라가 사용자의 눈에 대응하도록 디스플레이 시스템(104)을 사용하여 사용자의 관점에서 2개의 가상 카메라들의 별개의 쌍으로부터 캡처되어, 디스플레이 시스템(104)을 통해 사용자에게 디스플레이되는 최종 3D 입체 비디오는 최종 3D 비디오 내의 포털에서 최종 3D 비디오 내에 디스플레이되는 적어도 하나의 다른 3D 비디오를 갖는 최종 3D 비디오이다. 앞서 논의된 바와 같이, 사용자 자신의 비전 시스템(예를 들어, 사용자의 눈들)에 의해 경험되는 이접운동을 원근조절하기 위해 최종 3D 비디오의 렌더링 동안 깊이 정보가 포함될 수 있다.
[0098] 하나 이상의 실시예들에서, 렌더링 위치는 가상 텔레비전과 같은 포털 또는 3D 비디오를 디스플레이하기 위한 사용자의 환경의 평면 표면일 수 있다. 2개의 제1 스테이지 카메라들 중 제1 카메라는 좌측 눈 관점에서 하나 이상의 2D 이미지들을 캡처할 수 있고 2개의 제1 스테이지 카메라 중 제2 카메라는 우측 눈 관점에서 하나 이상의 2D 이미지들을 캡처할 수 있다. 2개의 제1 스테이지 카메라들은 가상 카메라들(예를 들어, 디지털/가상 세계 장면의 이미지들을 캡처함) 및/또는 실제 카메라들(예를 들어, 실세계 장면의 이미지들을 캡처함)일 수 있다.
[0099] 일부 실시예들에서, 2개의 제2 스테이지 카메라들은 2D 이미지들을 캡처하여 제2 3D 입체 비디오를 생성할 수 있다. 제2 3D 입체 비디오는 렌더링될 최종 3D 렌더링 세계 내의 다른 위치/포털에 배치될 수 있어서, 최종 3D 렌더링 장면이 사용자에게 디스플레이될 때, 사용자는 사용자의 가상 및/또는 증강 현실 환경 내에서 2개의 3D 입체 비디오들을 볼 수 있고, 2개의 3D 입체 비디오들 각각은 2개의 상이한 포털들에서 디스플레이될 수 있다. 최종 3D 렌더링 세계에 3D 입체 비디오 소스들을 제공하는 다수의 스테이지들의 카메라들이 있을 수 있으며, 여기서 3D 입체 비디오 소스들 각각은 추가적인 스테이지들에 대응할 수 있지만, 디스플레이 시스템(104)을 사용하여 사용자에게 디스플레이되도록 렌더링되는 오직 하나의 최종 3D 렌더링 세계만이 있을 수 있다. 스테이지들의 수는 최종 3D 렌더링 세계에서 렌더링될 3D 비디오들의 입력 소스(들)의 수에 대응할 수 있고 스테이지들의 수는 사용자의 3D 환경 내에서 다수의 위치들(예를 들어, 포털들)로부터 사용자에게 디스플레이될 3D 비디오들의 수를 결정할 수 있다. 대안적으로, 임의의 수의 입력들이 입력들의 2개 초과의 세트들을 갖는 2개 스테이지 렌더링을 위해 최종 3D 렌더링 세계에 입력될 수 있다. 일부 실시예들에서, 3D 비디오들은 네스팅될 수 있어서, 예를 들어, 하나의 3D 비디오는 상이한 3D 비디오 내에서 재생되고, 그런 다음, 이는 사용자에게의 디스플레이를 위해 최종 렌더링 장면에 포함될 수 있다.
[00100] 하나 이상의 실시예들에서, 카메라들(최종 스테이지 카메라들에 포함되지 않음)의 하나 이상의 스테이지들로부터 캡처된 2D 이미지들은 가상 세계, 실세계 또는 가상 세계와 실세계 둘 모두의 조합으로부터의 것일 수 있다. 카메라들의 하나 이상의 스테이지들의 위치들은 최종 스테이지 카메라들의 위치와 상이할 수 있다.
[00101] 다른 실시예에서, 제1 소스로부터의 제1 3D 콘텐츠는 제2 소스로부터의 제2 3D 콘텐츠에 배치될 수 있다. 제1 3D 콘텐츠는 3D 입체 비디오일 수 있고, 3D 입체 비디오는 제1 3D 입체 비디오를 포함하는 제2 3D 비디오에 대한 입력 데이터 소스일 수 있다. 제2 3D 콘텐츠는 3D 입체 비디오일 수 있고, 제2 3D 콘텐츠를 렌더링 및 디스플레이하기 위한 비디오 입력의 소스는 제1 3D 콘텐츠를 포함할 수 있다.
[00102] 다른 실시예에서, 입체 이미지들의 제1 세트는 입체 이미지들의 제1 세트를 3D 비디오로서 나타내는 최종 3D 비디오를 제공하기 위해 입체 이미지들의 제2 세트 내부에 배치될 수 있다.
[00103] 다른 실시예에서, 좌측 눈에 대해 캡처된 이미지들 및 우측 눈에 대해 캡처된 이미지들에 대응하는 입력 이미지들의 쌍이 식별된다. 입력 이미지들의 쌍은 렌더링될 장면 내의 특정 위치로 렌더링되도록 특정될 수 있고, 장면이 렌더링되면, 입력 이미지들의 쌍은 장면 내의 3D 비디오로서 디스플레이될 수 있다.
[00104] 다른 실시예에서, 3D 데이터 입력은, 3D 데이터 입력이 가상 및/또는 증강 현실 최종 3D 렌더링 세계 내의 위치에 배치될 수 있도록 식별될 수 있다. 최종 3D 렌더링 세계는 가상 및/또는 증강 현실 디바이스를 사용하여 사용자에 의해 뷰잉되는 것으로 장면에 대응할 수 있다.
[00105] 대안적인 실시예에서, 하나 이상의 스텐실(stencil) 렌더링 스테이지들의 사용을 통해 포털-형 효과가 생성될 수 있다. 일부 실시예들에서, 각각의 눈에 대해 하나씩 2개의 입력 스트림들을 갖는 대신에, 그리고 전술된 바와 같이 2개의 제1 스테이지 카메라들 대신에, 데이터 입력은 3D 그래픽 데이터 파일일 수 있다. 데이터 파일은 단일 애플리케이션 또는 단일 콘텐츠와 연관된 하나 이상의 데이터 파일들을 포함할 수 있고, 스텐실 플래그와 같은 다양한 플래그들을 포함할 수 있다. 최종 3D 렌더링 세계가 렌더링하고 있을 때, 최종 3D 렌더링 세계의 포털에 대한 콘텐츠는 4개의 단계들에서 렌더링할 수 있다: 1) 스텐실 드로잉, 2) 스텐실에 대한 스카이박스 드로잉, 3) 포털 콘텐츠 드로잉 및 4) 스텐실 클리어. 이러한 4개의 단계들은 최종 3D 렌더링 세계의 포털들 각각에 대해 반복될 수 있다.
3D 비디오는 자신의 디스플레이 표면을 넘어 확장된다.
[00106] 도 1을 참조하면, 디스플레이 시스템(104)을 사용하여 3D 비디오(115)를 뷰잉하는 사용자(50)는, 3D 비디오(115) 내의 오브젝트들(예를 들어, 비디오(115)에 도시된 바와 같은 블록)이 사용자의 물리적 환경/경관(105) 내의 디스플레이 스크린의 표면 위에 쏟아지거나 표면을 넘어 확장되는 것으로 보일 수 있는 것을 인식할 수 있다. 예를 들어, 종래의 3D 비디오들은 3D 효과의 환상 또는 외관을 제공할 수 있고, 일부 경우들에서, 3D 비디오 내로부터의 오브젝트가 실제로 사용자를 향해 이동하고 있고 실제로 스크린으로부터 나온다고 사용자가 믿도록 영향을 미치고/속일 수 있다. 그러나, 종래의 3D 비디오들은 앞서 논의된 바와 같이, 입체 프로세스를 사용하여 3D 효과들을 달성한다.
[00107] VR/AR 환경에 배치된 종래의 3D 비디오는 하나의 관점에서만 뷰잉될 수 있다. 종래의 3D 비디오는 카메라의 원래 포지션으로부터 뷰어가 떠나자마자 명백하게 평평하게 보인다. 이러한 문제에 대한 하나의 솔루션은, 메시(예를 들어, 3D 모델들 및/또는 3D 애니메이션들), 리그(rig) 제어들(예를 들어, 애니메이션 스트림) 및 그의 대응하는 제어 데이터(예를 들어, 종래의 3D 비디오의 비디오 및 오디오에 대응하기 위해 비디오 파일 포맷 내의 애니메이션 스트림의 어떤 부분들을 언제 재생할지)를 포함하는 비디오 파일 포맷 및 플레이어를 포함할 수 있다.
[00108] 도 3a 및 도 3b는 일부 실시예들에 따른, 스크린을 벗어나는 3D 이미지들 및/또는 3D 애니메이션의 예들을 도시한다. 도 3a는 종래의 입체 3D 비디오의 의도된 3D 효과(305) 및 실제 3D 효과(310)를 도시한다. 디스플레이 스크린/평면 표면(320)은 텔레비전의 디스플레이 스크린, 컴퓨터 모니터링, 영화관, 또는 3D 비디오를 디스플레이하기 위한 임의의 평면 또는 비-평면 표면 또는 이들의 임의의 조합 중 하나 이상일 수 있다. 예를 들어, 비-평면 표면은 일부 실시예들에서, 적어도 부분적으로 뷰어를 둘러싸는 것으로 보일 수 있는 곡선 디스플레이 스크린일 수 있다. 3D 오브젝트들(330)은 의도된 3D 효과 및 실제 3D 효과에 기초하여 도시된다. 예를 들어, 입체 이미지들을 이용하는 현재 3D 기술들은 오브젝트(330a)의 의도된 3D 효과들을 생성하기를 원할 수 있다. 그러나, 레거시 입체 3D 프로세스들의 제한이 주어지면, 현재 레거시 시스템들이 생성하는 실제 3D 효과는 3D 오브젝트(330b)로서 나타난다. 오브젝트(330a)의 의도된 효과들은 평면 표면(320)의 외부에 디스플레이되는 3D 애니메이팅된 오브젝트를 나타낼 수 있고, 이는, 사용자가 평면 표면(320)의 상이한 뷰잉 각도를 갖는 제2 포지션으로 이동했다면, 사용자가 평면 표면(320)의 외부에 디스플레이 및 위치된 오브젝트(330a)의 완전한(또는 관련 부분의) 3D 표현을 볼 수 있도록 사용자의 환경을 애니메이팅/주위를 이동할 수 있다.
[00109] 도 3b는 사용자가 의도된 3D 효과를 인지할 수 있는 방법의 예를 도시한다. 오브젝트들(330a 및 330b)은 도 3a에서 뷰잉되는 것과 같은 오브젝트들이고, 오브젝트(330a)는 평면 표면(320)(예를 들어, 텔레비전 스크린 디스플레이)에 쏟아져 나오는/그로부터 오는 것으로 보일 수 있다. 오브젝트들(340)은 평면 표면(320)으로부터 완전히 이탈된 오브젝트들로서 뷰잉되어, 오브젝트들(340)은 도 3a로부터의 의도된 3D 효과들(305) 중 하나를 달성할 수 있다.
[00110] 예를 들어, 3D 비디오는 사람 주위에 복수의 물고기가 헤엄치는 열대 수역에서 스쿠버 다이빙하는 사람의 3D 비디오를 포함할 수 있다. 종래의 3D 비디오 관점에서, 사용자는 3D 비디오를 시청하고 입체 프로세스에 적어도 부분적으로 기초하여 3D 효과를 느낄 수 있다. 그러나, 본 개시의 일부 실시예들에 따르면, 3D 비디오의 특정 부분들에서, 3D 비디오에 대한 디스플레이를 위해 물고기 중 하나의 3D 모델이 생성될 수 있다. 3D 비디오 내의 특정한 적절한 트리거 시간(들)에서, 물고기의 3D 모델은 3D 비디오 내부에서 헤엄치는 것으로 디스플레이될 수 있으며, 그 다음, 물고기의 3D 모델은 디스플레이 스크린의 표면을 떠나 사용자의 물리적 환경/경관으로 헤엄치기 시작할 수 있다. 예로서, 물고기의 3D 애니메이션은 3D 비디오를 디스플레이하고 있는 실제 가상 텔레비전 주위에서 헤엄칠 수 있다. 이러한 예에서, 사용자가 디스플레이 스크린의 표면에 평행한 90도 각도와 같은 상이한 포지션으로 이동하더라도, 사용자는 여전히 가상 텔레비전 주위에서 헤엄치는 3D 애니메이팅된 물고기를 볼 수 있다. 사용자가 가상 텔레비전의 디스플레이 스크린 외부에서 헤엄치는 3D 애니메이팅된 물고기 및 디스플레이 스크린 둘 모두를 볼 수 있는 뷰잉 각도로 사용자가 되돌아 가면, 사용자는 디스플레이 스크린 외부로 이동하는 3D 모델과 함께 재생되는 3D 비디오를 뷰잉할 수 있다. 일부 실시예들에서, 사용자는 하나 초과의 디스플레이로부터 3D 비디오를 뷰잉할 수 있다. 예를 들어, 물고기는 디스플레이(1) 밖에서 헤엄치고, 사용자 주위에서 헤엄치고, 디스플레이(2)로 헤엄칠 수 있다. 일부 실시예들에서, 사용자는 사용자를 둘러싸는 하나의 대형 스크린(예를 들어, 돔 형상, 부분적 돔 형상, 링 형상 등)을 가질 수 있고, 3D 콘텐츠는 제1 위치에서 스크린을 빠져 나가고 제2 위치에서 스크린에 재진입할 수 있다. 3D 콘텐츠의 이탈 또는 진입 위치에 관계없이, 사용자는 현실적인 방식으로(실제 3D 오브젝트와 유사함) 정확한 관점에서 3D 오브젝트를 뷰잉할 수 있다.
[0111] 도 1을 참조하면, 3D 비디오(115)는 가상 텔레비전(120)의 디스플레이 스크린에 쏟아져 나오고/그로부터 나오는 것으로 보이는 사람 또는 오브젝트의 3D 애니메이션을 포함할 수 있다. 가상 텔레비전(120) 및 3D 비디오(115)는 사용자의 물리적 환경/경관(105) 내의 제2 각도로부터 뷰잉될 때 가상 텔레비전의 디스플레이 스크린에 쏟아져 나오고/그로부터 나오는 것으로 보이는 오브젝트(예를 들어, 몬스터)를 나타낼 수 있다.
[0112] 도 4는 일부 실시예들에 따른, 가상 및/또는 증강 현실 환경에서 디스플레이 스크린의 표면을 넘어 확장되는 3D 비디오를 디스플레이하기 위한 접근법에 대한 흐름도를 도시한다. 410에서, 3D 비디오가 식별될 수 있다. 3D 비디오는 종래의 입체 3D 비디오일 수 있다. 3D 비디오들의 레거시 구현들은 본 개시의 실시예들을 구현하기 위해 사용될 3D 비디오 입력 데이터 소스들로서 소싱될 대량의 3D 비디오 콘텐츠를 제공할 수 있다.
[0113] 420에서, 3D 오브젝트들의 3D 모델들은 3D 비디오들에 대응하도록 생성될 수 있다. 3D 오브젝트들은 고정된 위치로부터의 3D 오브젝트의 움직임들 또는 3D 환경 내의 전체 3D 오브젝트의 움직임들을 포함하는 정지된 3D 오브젝트들 또는 애니메이팅된 3D 오브젝트들일 수 있다. 3D 모델들은 3D 비디오에 대응할 수 있어서, 3D 비디오 장면이 특정된 청색이고 3D 오브젝트의 3D 모델이 동일하거나 실질적으로 유사한 청색인 경우, 3D 모델은 사용자에게 가시적이 아닐 수 있다. 따라서, 3D 모델이 3D 비디오와 함께 디스플레이되고 있을 때 사용자가 3D 모델을 검출하기 위해, 3D 모델은 컬러, 텍스처, 콘트라스트 또는 다른 특성에서 약간 조정될 수 있다. 3D 오브젝트들의 3D 모델들이 생성되어 데이터 저장부 내에 저장될 수 있다. 애니메이션 데이터는 3D 모델과 연관되어 3D 비디오에 대한 3D 모델의 움직임, 배향 및/또는 포지션을 제어하고 지시할 수 있다. 애니메이션 데이터는 미디어 파일 내에서 종래의 3D 비디오 스트림 및 오디오 스트림과는 별개이고 상이한 스트림으로서 스트리밍될 수 있다. 애니메이션 데이터는 아래에서 보다 상세하게 개시될 것이다.
[0114] 430에서, 3D 모델들은 3D 비디오의 렌더링과 함께 적절한 트리거 시간에 렌더링될 수 있다. 3D 애니메이션 데이터는 3D 비디오 및 3D 비디오의 오디오 부분들과 함께 3D 애니메이션 데이터를 렌더링하는 엔진에 의해 수신 및 렌더링될 수 있다. 3D 애니메이션 및 3D 비디오는 단일 3D 비디오로서 사용자에게 보일 수 있으며, 여기서 3D 애니메이팅된 오브젝트들은 3D 비디오의 평면 표면을 빠져 나와 사용자의 3D 환경으로 쏟아져 나오고/나오는 것으로 보일 수 있다.
[0115] 하나 이상의 실시예들에서, 하나 이상의 3D 모델들은 하나 이상의 비디오 팬들 상에 렌더링될 수 있고, 하나 이상의 비디오 팬들은 하나 이상의 뷰잉 배향들에 대해 동시에 렌더링될 수 있다. 하나 이상의 3D 모델들은 물리적으로 가상 텔레비전의 디스플레이 스크린에 쏟아져 나오고/그로부터 나오는 것으로 보일 수 있다. 일부 실시예들에서, 비디오 팬들은 디스플레이 시스템(104)을 사용하여 사용자(50)로부터의 뷰잉 각도에 대응하는 3D 모델들을 디스플레이하기 위한 배경 및/또는 백드롭(backdrop)으로서 기능할 수 있다.
[0116] 깊이 정보는 3D 비디오 및 하나 이상의 3D 모델들의 렌더링으로 팩터화되어 일반적으로 레거시 VR 시스템들과 연관될 수 있는 원근조절-이접운동 불일치 문제를 해결할 수 있다. 디스플레이 시스템(104) 및 3D 모델을 사용하는 사용자로부터의 거리는 3D 비디오 및 3D 모델의 이미지 또는 비디오가 사용자에게 어떻게 디스플레이될 수 있는지로 팩터화될 수 있다. 예를 들어, 사용자에게 디스플레이되고 있는 3D 비디오에 대해 다수의 깊이 정보가 결정될 수 있다. 제1 깊이 정보는 3D 비디오들을 캡처하는 카메라들의 3D 비디오들 내의 오브젝트들까지의 결정된 거리와 같은 원본 3D 비디오의 깊이 정보를 포함할 수 있다. 제2 깊이 정보는 3D 비디오를 시청하는 사용자로부터 사용자의 3D 환경 내에 배치된 3D 비디오의 포털/위치까지의 거리를 포함할 수 있다. 제3 깊이 정보는 3D 모델들/3D 애니메이팅된 오브젝트들로부터 3D 비디오를 시청하는 사용자까지의 거리를 포함할 수 있으며, 여기서 3D 애니메이팅된 오브젝트들은 비디오로 쏟아져 나오고/그로부터 나온다(예를 들어, 비디오 디스플레이 스크린의 평면 표면을 빠져 나감). 일부 실시예들에서, 3D 애니메이팅된 오브젝트들은 사용자를 향해 이동하여, 사용자와 3D 애니메이팅된 오브젝트들 사이의 거리를 감소시킬 수 있다. 깊이 정보가 계산에 포함되지 않아서 3D 비디오 및 3D 애니메이팅된 오브젝트를 포함하는 최종 장면의 디스플레이가 사용자에게 디스플레이되는 경우, 사용자의 뇌는 대부분의 3D 비디오 시스템에서 통상적인 원근조절-이접운동 문제를 처리하기 위해 사용자의 눈들을 어떻게 배향할지에 대해 혼동될 수 있다. 일부 실시예들에서, 가상 및/또는 증강 현실 디바이스의 사용자로부터 가상 및/또는 증강 현실 환경 내에 디스플레이되는 개개의 하나 이상의 3D 모델들 및 3D 비디오까지의 거리는 임의의 적절한 방식으로 계산될 수 있다. 하나 초과의 3D 모델이 디스플레이되는 일부 실시예들에서, 거리 계산에 사용되는 3D 모델들의 위치는 디스플레이되고 있는 3D 모델들 중 임의의 것의 사용자에 대한 가장 가까운 포인트일 수 있다. 일부 실시예들에서, 거리 계산에 사용된 3D 모델들의 위치는 사용자에게 디스플레이되는 3D 모델들의 원점의 평균일 수 있다.
[0117] 하나 이상의 실시예들에서, 3D 비디오는 제어 데이터를 포함할 수 있는 비디오 포맷을 포함할 수 있다. 제어 데이터는, 3D 모델들이 디스플레이 스크린 밖으로 쏟아져 나오는 것처럼 사용자에게 보이도록 3D 모델들을 디스플레이 스크린 외부에 디스플레이하도록 비디오 플레이어에 명령할 수 있다. 제어 데이터는, 3D 모델들 및 3D 비디오가 단일 3D 비디오로 통합된 것처럼 사용자에게 보이도록 3D 모델들 및 3D 비디오를 조정하고 통합하는 것을 도울 수 있다.
[0118] 일부 실시예들에서, 하나 이상의 3D 모델들은 복셀 기반 비디오 스트림에 적어도 부분적으로 기초하여 렌더링될 수 있다. 복셀은 3차원 공간에서 정규 그리드 상의 값을 표현한다. 비트맵에서의 픽셀들과 마찬가지로, 복셀들 자체는 통상적으로 이들의 값들과 함께 명시적으로 인코딩된 자신들의 포지션(그들의 좌표)을 갖지 않는다. 그 대신, 렌더링 시스템들은 다른 복셀들에 대한 자신의 포지션(예를 들어, 단일 볼륨있는 이미지를 구성하는 데이터 구조에서 자신의 포지션)에 기초하여 복셀의 포지션을 추론한다. 픽셀들 및 복셀들과 반대로, 포인트들 및 다각형들은 종종 이들의 정점들의 좌표들로 명시적으로 표현된다. 이러한 차이의 직접적인 결과는, 다각형들이 비어 있거나 균질하게 채워진 공간이 많은 간단한 3D 구조들을 효율적으로 표현할 수 있는 반면, 복셀들은 비-균질하게 채워진 정기적으로 샘플링된 공간들을 표현하는 데 탁월하다는 것이다. 복셀 기반 비디오들은 매우 높은 대역폭/성능을 요구할 수 있으며, 이는 볼륨있는 비디오를 구현하기 위해 더 높은 생산 컴퓨팅 비용과 가능하게는 더 많은 양의 데이터 저장부로 이해될 수 있다.
[0119] 다른 실시예에서, 하나 이상의 3D 모델들 및/또는 3D 비디오는 볼륨있는 비디오에 적어도 부분적으로 기초할 수 있다. 볼륨있는 비디오는, 홀로그램들과 같이 진정으로 3D로 존재하여, 이들이 임의의 순간에 임의의 각도로부터 뷰잉되도록 하는, 실제 사람들의 움직이는 이미지들을 특성화하는 비디오의 포맷이다. 트릭은 이러한 미디어가 빠른 프레임 레이트들로 액터들의 3D 이미지들을 캡처할 수 있는 근본적으로 상이한 비디오 기술을 요구한다는 점이다. 볼륨있는 비디오들은 매우 높은 대역폭/성능을 요구할 수 있으며, 이는 볼륨있는 비디오를 구현하기 위해 더 큰 컴퓨팅 프로세싱 능력 및 가능하게는 더 많은 양의 데이터 저장부를 요구함으로써, 금전적인 관점이 아니라 컴퓨터 프로세싱 프로세스 자체의 관점에서 더 높은 생산 비용으로 이해될 수 있다.
환경 인식 비디오들
[0120] 종래의 비디오들은 항상, 시청자의 환경을 인식하지 않고 자신의 콘텐츠를 제시하였다. 비디오 콘텐츠가 사용자의 환경에 맞춤화될 수 있으면, 몰입형 경험들이 크게 향상될 수 있다. 가상 및/또는 증강 현실 시스템에서, 가상 및/또는 증강 현실 시스템 디바이스(예를 들어, 도 1로부터의 디스플레이 시스템(104))를 사용하는 사용자는 추가적인 사용자 환경 정보를 비디오에 제공할 수 있어서, 비디오는 비디오의 콘텐츠를 디스플레이할 때 추가적인 사용자 환경 정보를 이용할 수 있다.
[0121] 예를 들어, 오브젝트 인식기들(예를 들어, 센서들)은 사용자의 물리적 환경/경관의 룸 내에서 아이템들, 예를 들어, 의자(1), 테이블(2) 등을 인식하고 카테고리화할 수 있다. 사용자가 보고 있는 혼합 현실 비디오 플레이어에 대한 힌트들을 제공하기 위해 머리 포즈 및 눈 추적이 사용될 수 있다. 추가적인 사용자 환경 정보를 갖는 것은 3D 비디오들이 제한된 2D 디스플레이 공간을 벗어나도록 허용할 수 있다.
[0122] 도 1을 참조하면, 뉴스 방송에 대한 3D 비디오는 사용자의 물리적 환경/경관(예를 들어, 사용자의 거실, 식당, 자동차 등)에서 의자들(135a 및 135b)에 앉아있는 리포터들(130)을 배치할 수 있다. 3D 비디오를 종래의 비디오 스크린에 디스플레이하는 대신에, 환경 인식 3D 비디오는 그 대신 리포터들(130)이 사용자의 물리적 환경 내에서 검출될 수 있는 오브젝트 상에 또는 그에 대해 디스플레이되도록 렌더링할 수 있다. 오브젝트는 사용자의 물리적 환경 내에서 물리적 오브젝트의 렌더링된 버전일 수 있다. 오브젝트는 가상 세계 내에서 오브젝트의 렌더링된 버전일 수 있다. 오브젝트는 종래의 비디오 스크린 외부에 오브젝트를 디스플레이하기 위해 사용자의 물리적 환경 내에 배치된 렌더링된 가상 오브젝트일 수 있다. 3D 비디오는 3D 입체 비디오, 복셀 기반 비디오 및/또는 볼륨있는 비디오일 수 있다.
[0123] 도 5는 일부 실시예들에 따른, 가상 및/또는 증강 현실 환경에서 환경 인식 3D 비디오를 디스플레이하기 위한 접근법에 대한 흐름도를 도시한다. 510에서, 3D 비디오가 식별될 수 있다. 3D 비디오는 종래의 입체 3D 비디오, 복셀 비디오 또는 볼륨있는 비디오 중 적어도 하나일 수 있다.
[0124] 520에서, 사용자의 환경 내에서 검출/식별된 오브젝트들에 관한 환경 정보가 수신될 수 있다. 사용자의 환경은 물리적 및/또는 가상 환경일 수 있다. 사용자의 물리적 환경은 VR 및/또는 AR 디바이스(예를 들어, AR 시스템(100))를 통해 사용자의 관점에서 뷰잉될 때 사용자의 현재 물리적 환경을 포함할 수 있다. 사용자의 가상 환경은 VR 및/또는 AR 디스플레이 디바이스(예를 들어, 디스플레이 시스템(104))를 통해 사용자의 관점에서 뷰잉할 때 사용자에게 디스플레이되는 가상 콘텐츠를 포함할 수 있다. 환경 정보는 VR 및/또는 AR 시스템(예를 들어, 카메라들)의 센서들에 의해 캡처되고 센서들에 의해 캡처된 오브젝트들을 식별하기 위해 VR 및/또는 AR 시스템에 의해 해석되는 오브젝트들에 관한 정보를 포함할 수 있다. 일부 실시예들에서, 환경 정보는 통과가능한 세계로부터 소싱 및/또는 저장될 수 있다.
[0125] 센서들에 의해 캡처된 환경 정보(예를 들어, 장면 내의 오브젝트들의 정보)는 외부 시스템(예를 들어, 클라우드 시스템)에 저장된 이전에 식별된 오브젝트들에 맵핑될 수 있고, 식별된 오브젝트들(예를 들어, 포인트 클라우드들)의 상세한 정보는 오브젝트들을 추가로 정의하기 위해 이용가능할 수 있다. 사용자 환경(예를 들어, 물리적 환경 및/또는 가상 환경)의 엘리먼트들은 환경 정보에 보다 상세한 정보를 제공하기 위해 이전에 식별된 오브젝트들에 맵핑될 수 있다.
[0126] 530에서, 3D 비디오 콘텐츠의 일부들 및/또는 전부가 사용자의 환경으로부터 식별된 오브젝트들 상에 렌더링될 수 있다. 렌더링된 비디오는 VR 및/또는 AR 디스플레이 디바이스(예를 들어, 디스플레이 시스템(104))를 사용하여 사용자에게 디스플레이될 수 있으며, 여기서 사용자는 사용자의 환경의 제1 위치(예를 들어, 포털 위치)에서 3D 비디오의 부분들을 뷰잉할 수 있고 사용자는 사용자의 환경의 제2 위치에서 3D 비디오의 부분들을 뷰잉할 수 있다. 예를 들어, 종래의 비디오들 내의 뉴스 룸에서 의자들에 앉아있는 리포터들은 사용자의 거실 내 의자들에 앉아있는 것으로 디스플레이될 수 있으며, 리포터들은 예를 들어 사용자의 물리적 환경/경관 내에서 저녁 뉴스를 사용자에게 제공한다. 연관된 2D 가상 텔레비전 스크린/포털 상에 보충 정보가 디스플레이될 수 있다. 3D 비디오 콘텐츠는 제어 데이터를 포함하는 비디오 파일 포맷을 포함할 수 있다. 제어 데이터는 3D 비디오의 일부(예를 들어, 리포터들)를 사용자의 환경으로부터 식별된 오브젝트들 상에 디스플레이하도록 비디오 플레이어에 명령할 수 있다.
사용자 상호작용식 영화
[0127] 종래의 영화들(예를 들어, 영화는 비디오의 일 타입임)의 문제는 종래의 영화들이 영화 감독/프로듀서에 의해 이미 편집되었다는 것이다. 영화들의 사용자들 또는 뷰어들은 일반적으로 디스플레이되고 있는 것 또는 영화들 내의 캐릭터가 어떤 결정을 내릴지를 제어할 수 없다. 이는, 영화의 스토리가 영화들의 작가/감독/프로듀서에 의해 이미 설정되었기 때문이다. 그러나, VR 및/또는 AR 환경에서 비디오들은 상호작용식일 수 있다. 사용자들은, 비디오가 예를 들어 디스플레이 시스템(104)을 통해 사용자에게 디스플레이되고 있는 동안 VR 및/또는 AR 시스템을 통해 제공된 사용자 결정들에 적어도 부분적으로 기초하여 비디오의 스토리 라인 및/또는 결과에 영향을 미칠 수 있다.
[0128] VR 및/또는 AR 시스템을 통해 제공되는 사용자 결정들은, 예를 들어, 사용자가 비디오 동안 특정 옵션들을 어떻게 결정할지 묻는 VR 및/또는 AR 시스템에 의해 제공된 질문에 대한 대답을 사용자가 선택하거나 제공하는 형태일 수 있다. 액션들은 배우 또는 여배우가 수행한 것일 수 있거나, 날씨 이벤트, 자연 재해, 타이밍 등과 같은 배우들의 제어를 벗어난 것일 수 있다. 사용자가 내린 결정들에 기초하여, 비디오의 스토리라인은, 비디오의 추가적 이벤트들이 영향을 받을 수 있고 비디오에 대한 다양한 결론들에 도달할 수 있도록 변경될 수 있다.
[0129] 도 6은 일부 실시예들에 따른, 가상 및/또는 증강 현실 환경에서 상호작용식 3D 비디오를 디스플레이하기 흐름도를 도시한다. 610에서, 3D 비디오가 식별될 수 있다. 3D 비디오는 결정 노드들에 의해 주기적으로 인터럽트되는 비-실행가능 데이터의 스트림일 수 있다. 통상적으로, 비디오들은 비디오 플레이어에 의해 재생될 수 있는 실행가능 파일들로서 포맷된다. 비-실행가능 데이터는 비디오 데이터, 오디오 데이터 및/또는 애니메이션 데이터를 포함할 수 있다. 비-실행가능 데이터는, 예를 들어, 각각의 결정들에 대응하는 입력을 제공하는 사용자로부터의 상호작용에 의해 결정 노드들에서 이루어진 결정들에 기초하여, 다양한 버전들의 스토리라인에 대응할 수 있는 결정 노드들에 의해 인터럽트될 수 있다.
[0130] 620에서, 사용자로부터의 상호작용들은 사용자에 의해 선택된 결정들에 대응하는 입력으로서 수신될 수 있다. 현재 DVD 및 블루레이 비디오들은 원격 제어기를 통한 간단한 내비게이션 시스템들을 갖는다. VR 및/또는 AR 시스템에서, 원격 제어기는 예를 들어, 머리 포즈, 눈 추적, 제스처들, 토템 제스처들 및/또는 오브젝트 인식기들과 같은 다양한 다른 사용자 입력 소스들을 통합하기 위해 이러한 거동을 확장할 수 있다. 사용자로부터 수신된 간단한 상호작용들(예를 들어, 특정 결정 노드에서 이루어지는 결정)은 비디오를 비디오의 상이한 부분들로 "점프"시킬 수 있다. 이루어진 옵션들 및 결정들은 비디오의 상태를 유지하기 위해 비디오의 지속기간 동안 저장될 수 있다. 상호작용들은 예를 들어, 옵션들에 대한 사용자 클릭, 손 제스처들, 사용자 입력 디바이스로부터의 선택과 조합된 눈 응시 등에 의해 트리거링될 수 있다.
[0131] 예를 들어, 토론 방송 동안, 사용자가 보고 있는 발표자에 따라, 그 발표자의 3D 애니메이션은 비디오에서 또는 사용자의 환경 내의 의자에서 재생될 수 있다. 다른 예로서, 뷰어(예를 들어, 도 1의 사용자(50))의 승인 및/또는 참여에 기초하여 상이한 비디오 결말들에 도달될 수 있다. 또 다른 예로서, 군대 장군들이 수평 테이블에서 사용자 앞에 디스플레이되는 지도로 전쟁 전략들을 논의할 수 있다. 사용자는 장군들이 어떤 전략들을 구현해야 하는지에 대한 입력을 제공함으로써 전쟁 전략들의 논의에 참여할 수 있다. 구현할 전략의 결정을 제공하면, 비디오는 그 결정에 기초하여 데이터의 적절한 스트림으로 점프/내비게이팅하여 비디오를 디스플레이할 수 있다.
[0132] 630에서, 3D 비디오는 결정에 기초하여 렌더링되고 사용자에게 디스플레이될 데이터의 적절한 스트림(예를 들어, 비디오, 오디오 및/또는 애니메이션 스트림)에 대응하는 비디오의 부분에서 렌더링될 수 있다.
[0133] 하나 이상의 실시예들에서, 3D 비디오는 입체 3D 비디오일 수 있다. 3D 비디오는 제어 데이터를 포함하는 비디오 포맷을 가질 수 있다. 제어 데이터는 사용자에 의해 선택된 결정들에 적어도 부분적으로 기초하여 3D 비디오의 부분들을 렌더링하도록 비디오 플레이어에 명령할 수 있다. 3D 비디오의 부분들은 사용자에 의해 선택된 하나 이상의 결정들에 기초한 특정 스토리라인과 연관될 수 있다. 사용자로부터 수신된 상호작용들은 머리 포즈, 눈 추적, 눈 응시, 사용자의 손 제스처들, 토템 제스처들 또는 오브젝트 인식기 중 적어도 하나를 포함할 수 있다. 사용자로부터 수신된 상호작용들 중 하나로부터의 상호작용은 3D 비디오를 3D 비디오의 상이한 부분으로 점프시킬 수 있다.
혼합 현실 비디오 포맷
[0134] 종래의 비디오 포맷들은 스트리밍에 의도된 일반적 고레벨 포맷을 갖는다. 일부 비디오 포맷들은 오직 독립적 프레임-기반 프레임을 포함할 수 있고, 모든 프레임 데이터가 이전 프레임과 관련되는 것은 아니고 본질적으로 서로 독립적이다. 다른 형태의 비디오 포맷은 키-델타 프레임 베이스일 수 있다. 통상적인 스트리밍 압축 기술들은, 다른 키 프레임에 직면할 때까지, 모든 프레임들과 독립적인 키 프레임 및 그 키 프레임과의 차이들만을 포함하는 후속 델타 프레임들에서 전송하는 것을 수반한다. 이론적으로 모든 후속 델타 프레임들과 함께 단지 단일 키 프레임을 갖는 것이 가능하다. 그러나, 프레임을 찾는 것(예를 들어, 빨리감기/되감기)은 가장 가까운 키 프레임으로부터의 재구축을 요구하기 때문에, 단지 단일 키 프레임 및 오직 후속 델타 프레임들을 갖는 것과 반대로, 그 사이에 델타 프레임들을 갖는 비디오 전반에 걸쳐 특정 인터벌들로 키 프레임을 갖는 것이 유리할 수 있다.
[0135] 종래의 비디오들은 챕터 나누기, 다수의 언어들에 대한 폐쇄 자막, 재생 중 음질 등과 같은 비디오의 일반적인 제어들과 함께 비디오 및 오디오 클립들로 미리 렌더링된다. 본 개시의 실시예들은 미리 렌더링된 및 런타임 생성된 3D 프레임들 둘 모두를 포함할 수 있고, 미리 렌더링된 및 런타임 생성된 3D 프레임들은 비디오의 몇몇 부분들에서 재사용될 수 있다. 런타임 생성된 3D 프레임들은 비디오 포맷 내에서 몇몇 자산들을 통합할 수 있다. 예를 들어, 일부 자산들은 3D 모델들, 메시, 애니메이션들, 텍스처들, 셰이더(shader) 및 광들을 포함할 수 있다. 또한, 더 정교하고 복잡한 제어 메커니즘이 비디오의 미리 렌더링된 프레임들과 런타임 생성된 3D 프레임들의 통합을 제어할 수 있다. 또한 스트리밍 친화적일 수 있는 이러한 자산들을 캡슐화하기 위한 더 가능하고 유연한 포맷이 이제 개시될 것이다.
[0136] 도 7은 일부 실시예들에 따른, 3D 비디오들을 디스플레이하기 위한 비디오 포맷을 도시한다. 비디오 포맷(700)은 가상 및/또는 증강 및/또는 혼합 현실 비디오 포맷일 수 있다. 비디오 포맷(700)은 데이터 저장부(710) 및 데이터 스트림(750)을 포함할 수 있다. 데이터 저장부(710)는 재생되는 비디오의 섹션에 따라 로딩 및 언로딩될 수 있는 데이터의 집합일 수 있다. 스트리밍 데이터와 달리, 데이터 저장부(710)로부터의 데이터는 메모리에 로딩될 수 있다. 일부 실시예들에서, 예를 들어, 모든 모델들(718) 및 그들 각각의 텍스처들(724)은 비디오의 섹션이 더 이상 그들을 필요로 하지 않을 때까지 메모리에 로딩되고 메모리에 남아있을 수 있다. 일부 실시예들에서, 데이터 저장부(710)로부터의 모든 데이터는 메모리에 로딩될 수 있다. 비디오의 특정 섹션으로부터의 데이터는 비디오의 몇몇 섹션들에서 재사용될 수 있다. 데이터 저장부(710)는 비디오(예를 들어, 메뉴)에 대한 정보(712), 자막(714), 로케일(locale)(716), 모델들(718)(예를 들어, 3D 모델들의 메시들), 자료(720), 텍스처(724)(예를 들어, 자료들에 의해 사용된 이미지들), 및 제어 데이터(726)를 포함할 수 있다.
[0137] 제어 데이터(726)는 제어 스트림(아래에 개시됨)을 통해 비디오/오디오/애니메이션 스트림들의 흐름 및 렌더링을 제어할 수 있다. 제어 데이터는 비디오/오디오/애니메이션 스트림을 위해 무엇이 올 것인지를 결정하기 위해 비디오를 미리 볼 수 있어서, 데이터 집약적인 오브젝트(예를 들어, 3D 모델들)가 미리 로딩될 수 있고, 따라서 시간이 다가올 때 및 애니메이션 3D 모델을 제어할 필요가 있을 때, 3D 모델은 사용을 위해 준비될 수 있다. 제어 데이터는 예를 들어 애니메이션 스트림에 의해 3D 모델이 필요하기 전에 제어 데이터가, 예를 들어, 3D 모델을 로딩하는데 얼마나 많은 리드 타임을 필요로 할 수 있는지를 결정하기 위해 사용자의 대역폭 및 사용자의 프로세싱 능력을 고려할 수 있다. 종래에, 비디오 및 오디오 스트림들은 이들의 데이터가 단지 비디오 플레이어에 의해 연속적으로 스트리밍되고 재생되기 때문에 매우 많이 앞을 또는 미리 볼 필요가 없다. 여기서, 비디오, 오디오 및 애니메이션 스트림은 각각 다음 또는 이전 키 프레임까지 멀리 앞을 또는 뒤를 볼 수 있다. 그러나, 제어 데이터가 비디오 콘텐츠의 렌더링 및 디스플레이에서 다음에 발생하는 것을 제어하는 것을 담당할 수 있기 때문에, 제어 데이터는 훨씬 더 앞을 볼 필요가 있을 수 있다. 일부 실시예들에서, 비디오에 대한 제어 데이터의 전체 콘텐츠는 비디오의 시작 시에 로딩될 수 있다.
[0138] 제어 데이터(726)는 모델(718)(예를 들어, 3D 모델)이 이동할 수 있도록 어떤 모델(718)이 사용될 수 있고 어떤 애니메이션이 모델(718)에 링크/연관될지를 결정할 수 있다. 예를 들어, 제어 데이터(726)는 데이터 저장부로부터 모델들(718)로부터 물고기의 3D 모델을 선택하고, 물고기의 3D 모델이 디스플레이 스크린으로부터 3D 환경으로 헤엄치고, 미리 렌더링된 3D 비디오를 디스플레이하고 있는 디스플레이 스크린 주위에서 원형으로 헤엄치고, 3D 환경 내의 디스플레이 스크린 상에 디스플레이되는 미리 렌더링된 3D 비디오 내에서 헤엄치는 유사한 물고기와 통합되도록 디스플레이 스크린으로 다시 헤엄치도록 물고기에 애니메이션을 연관시킬 수 있다.
[0139] 자막(714)은 비디오 내의 오디오 스트림에 대응하는 자막일 수 있다. 자막(714)은 자막을 몇몇 언어들로 포함할 수 있다. 로케일(716)은 비디오 내 오디오를 위한 몇몇 언어들의 로컬화된 버전일 수 있다. 로케일(716)은 비디오가 몇몇 언어들에 대해 제작될 수 있도록 Locale_tag를 통해 참조될 수 있다. 모델들(718)은 디스플레이 스크린의 외부에서 적어도 부분적으로 렌더링되고 디스플레이될 수 있는 비디오 내의 오브젝트들의 3D 모델들일 수 있다. 3D 모델들은 3D 오브젝트의 메시들일 수 있다. 3D 오브젝트의 메시들은 3D 오브젝트의 3D 모델을 형성하기 위해 정점들의 세트를 연결하는 라인들의 네트워크로 표현될 수 있다. 재료(720)는 3D 모델/메시를 커버하기 위해 사용될 수 있는 다양한 재료들일 수 있다. 텍스처(724)는 모델들(718)을 렌더링하기 위해 사용될 수 있는 다양한 텍스처들일 수 있다. 일부 실시예들에서, 데이터가 렌더링가능한 3D 모델을 표현하는 한, 추가적인 또는 상이한 3D 모델 데이터가 포함될 수 있다.
[0140] 혼합 현실 비디오 포맷의 데이터 스트림(750) 섹션은 비디오, 오디오 및 애니메이션 스트림들의 키 프레임들 및 델타 프레임들을 포함하는 데이터의 슬라이딩 윈도우일 수 있다. 데이터 스트림(750)은 비디오 스트림들(760), 오디오 스트림들(770) 및 애니메이션 스트림들(780)을 포함할 수 있다. 비디오 스트림들(760)은 비디오의 비디오 데이터를 포함할 수 있다. 오디오 스트림들(770)은 비디오 스트림(760)에 대응하는 오디오 데이터를 포함할 수 있다.
[0141] 애니메이션 스트림들(780)은 호환가능한 모델(718)에 적용될 수 있는 모델 애니메이션들을 포함할 수 있다. 애니메이션 스트림들(780)은 3D 모델들/메시들이 비디오 및 오디오 스트림들에 비해 어떻게 이동하고 거동하는지를 제어할 수 있다. 예를 들어, 3D 모델/메시는 물고기의 3D 모델일 수 있다. 애니메이션 스트림은 물고기가 어떻게 이동하는지 및 물고기가 디스플레이 스크린에 대해 어디에 디스플레이되는지에 대한 명령들을 포함할 수 있다. 예를 들어, 비디오 동안의 특정 시점에서, 애니메이션 스트림은 물고기의 3D 모델이 비디오 스크린 밖으로 그리고 사용자의 환경으로 헤엄치는 것으로 디스플레이되도록 명령할 수 있다. 물고기는 비디오 스크린 주위에서 헤엄칠 수 있고 물고기는 비디오 스크린으로 다시 헤엄칠 수 있으며, 이때 물고기에 대한 애니메이션 스트림이 종료될 수 있다. 각각의 3D 모델은 자기 자신의 애니메이션 스트림을 가질 수 있다. 일부 3D 모델들은 하나 초과의 애니메이션 스트림들에 연관/링크될 수 있다. 도 7에 도시된 다수의 애니메이션 스트림들은 이러한 실시예에서 하나 초과의 애니메이션 스트림이 존재하고 따라서 하나 이상의 모델들이 복수의 애니메이션 스트림들과 연관될 수 있음을 보여준다. 다른 실시예들에서, 비디오 내에서 하나 이상의 3D 모델들의 디스플레이를 관리하기 위해 단일 애니메이션 스트림이 사용될 수 있다.
[0142] 제어 스트림(도 7에 도시되지 않음)은 모델/메시/텍스처 등을 표시하여 데이터 저장부로부터 로딩하고 비디오의 타임라인 내의 적절한 시간에 모델을 연관된 애니메이션 스트림에 링크시키는 것을 담당할 수 있다. 일부 실시예들에서, 제어 스트림은 비디오 플레이어가 비디오 포맷으로부터 데이터를 판독/수신할 때 제어 데이터 및 시간 제어기 모듈(아래에 개시됨)로부터 동적으로 생성될 수 있다. 제어 스트림은 오직 키 프레임들만을 포함할 수 있다. 제어 스트림은 비디오의 타임라인 내의 적절한 시간에 재생할 하나 이상의 모델들 및/또는 애니메이션들의 조합을 결정하기 위한 커맨드들(제어 커맨드들로 지칭될 수 있음) 및/또는 간단한 논리 게이트들을 포함할 수 있다.
[0143] 일부 실시예들에서, 제어 스트림은 비디오 파일로부터 스트리밍되지 않지만 데이터 저장부(710) 내의 제어 데이터(726)로부터 메모리로 미리 로딩되는 데이터이다. 자막과 유사하게, 제어 스트림 데이터는 파일로부터 스트리밍될 필요가 없는데, 그 이유는, 자막 및 제어 데이터 파일 크기들 둘 모두는 일반적으로 매우 크지 않고 따라서 둘 모두는 사용되는 메모리 양에 많은 비용을 들이지 않고 메모리에 로딩될 수 있기 때문이다. 제어 스트림을 메모리에 미리 로딩하는 것은 데이터 저장부(710)로부터 다른 데이터를 로딩하기 위해 요구되는 버퍼링에 대한 상당한 제어를 제공한다. 예를 들어, 메모리에 미리 로딩되는 제어 스트림은, 디스플레이될 다가올 모델들 및 애니메이션들을 결정하기 위해 비디오를 시간상 미리(예를 들어, 비디오 또는 오디오 스트림들보다 시간상 더 미리) 보도록 구성될 수 있다. (예를 들어, 현재 사용자에게 디스플레이되는 비디오의 시간 제어기에 따른 현재 시간에 비해) 다가올 모델이 필요하다고 제어 스트림이 결정하면, 적절한 모델 및 그와 연관된 애니메이션(존재하는 경우)이 버퍼링된 메모리에 미리 로딩될 수 있어서, 제어 스트림에 의해 모델(들)이 실행될 때, 3D 모델은 비디오, 오디오 및 비디오의 애니메이션 스트림들과 동기화하여 디스플레이될 수 있다. 일부 실시예들에서, 제어 스트림은 메모리에 미리 로딩되는 대신에 스트리밍된다.
[0144] 일부 실시예들에서, 3D 모델은 임의의 애니메이션없이 단지 디스플레이될 수 있다. 제어 스트림은 모델의 크기, 사용자의 네트워크 대역폭 및 사용자의 VR 및/또는 AR 시스템의 프로세싱 능력에 적어도 부분적으로 기초하여, 모델이 메모리에 시간상 얼마나 미리 로딩될 필요가 있을 수 있는지를 결정할 수 있어서, 모델 및 그 연관된 애니메이션(존재하는 경우)을 디스플레이할 시간이 될 때, 모델이 준비되지 않은 것으로 인해 비디오 재생이 지연되지 않거나 제시간에 디스플레이될 것이다. 일부 실시예들에서, 제어 스트림은 메모리에 로딩된 모델이 얼마 동안 필요하지 않을 수 있다고 결정하고, 따라서 모델이 나중에 다시 필요할 때까지 메모리로부터 모델을 언로딩할 수 있다.
[0145] 일 실시예에서, 비디오 포맷은 애니메이션 스트림들, 데이터 저장부, 및 비디오 스트림 또는 오디오 스트림 중 적어도 하나를 포함할 수 있다. 하나 이상의 애니메이션 스트림들은 개개의 호환가능한 모델들에 적용될 수 있다. 일부 실시예들에서, 데이터 저장부는 재생되는 비디오의 섹션에 따라 로딩 및 언로딩된 데이터의 집합일 수 있다.
[0146] 하나 이상의 실시예들에서, 데이터 저장부는, 비디오 파일 포맷을 판독하는 애플리케이션이 먼저 액세스될 때 메모리에 완전히 로딩될 수 있다. 제어 스트림은, 제어 데이터가 메모리에 완전히 로딩될 때 데이터 저장부(710)로부터의 하나 이상의 제어 데이터(726)로부터 메모리에 미리 로딩될 수 있다. 제어 스트림은 비디오 파일 내의 대응하는 비디오 및/또는 오디오 데이터에 앞서 제어 데이터를 판독하도록 구성될 수 있다. 일부 실시예들에서, 제어 스트림은 MR 시스템의 하나 이상의 프로세서들에 의해 비디오 및/또는 오디오 스트림들에 비동기식으로 판독될 수 있지만 동기식으로 실행될 수 있다. 제어 스트림은 비디오의 타임라인 내의 적절한 시간에 재생하기 위한 모델 및 애니메이션의 조합을 결정하기 위해 커맨드들(예를 들어, 제어 커맨드들) 및/또는 간단한 로직 게이트들을 포함할 수 있다. 비디오의 타임라인 내의 적절한 시간은 비디오 스트림 및 오디오 스트림의 대응하는 시간에 대응한다.
[0147] 하나 이상의 실시예들에서, 제어 스트림은 단지 키 프레임들만을 포함한다. 애니메이션 스트림, 비디오 스트림 및 오디오 스트림은 하나의 키 프레임을 미리 보고 되돌아 보도록 구성될 수 있다. 하나 이상의 애니메이션 스트림들은 하나 이상의 3D 모델들과 연관된 애니메이션 명령들에 대응할 수 있다. 하나 이상의 애니메이션 스트림들의 각각의 애니메이션 스트림은 데이터 저장부의 3D 모델, 텍스처 또는 자료 중 적어도 하나에 대응한다.
[0148] 혼합 현실 비디오 포맷의 풍부한 특징은 혼합 현실 비디오 플레이어에 의해 지원되는 다수의 상이한 제어 커맨드들에 의해 프로세싱될 수 있다. 일부 실시예들에서, 제어 데이터는 사용자가 비디오 내부의 및 비디오 외부의 오브젝트들 및 기능들을 제어할 수 있게 하는 제어 커맨드들의 세트를 포함할 수 있다. 일부 실시예들에서, 제어 커맨드들은 확장가능할 수 있다. 일부 실시예들에서, 제어 커맨드들은 업데이트될 수 있다. 일부 실시예들에서, 제어 커맨드들은 동적일 수 있다. 제어 커맨드들의 타입들의 예들은, 1) 영화의 속도를 변경하는 것(이는, 예를 들어, 빨리감기 또는 영화의 특정 부분을 스킵하기, 예를 들어, 크레딧 후의 장면들을 얻기 위해 크레딧을 통과하는 빨리 감기의 사용자 이력에 기초할 수 있음), 2) 사용자 프롬프트를 제공하거나 영화의 시작시 조명을 자동으로 어둡게 하고 영화 종료시 원래 조명으로 되돌아 가기, 3) 영화의 시작시 피자 식당에 자동으로 전화 걸기, 또는 4) 사용자의 눈 응시에 따라 영화를 상이하게 재생하기일 수 있다. 일부 실시예들에서, 제어 스트림은 풀 스크립팅 언어일 수 있다. 일부 실시예들에서, 본 개시의 혼합 현실 영화는 프로그래밍 언어를 포함하는 영화 또는 비디오이다. 일부 실시예들에서, 제어 데이터 및 제어 스트림이라는 용어들은 상호교환적으로 사용된다.
혼합 현실 비디오 플레이어
[0149] 비디오 플레이어는 3D 비디오 포맷(예를 들어, 비디오 포맷(700))을 해석할 수 있다. 비디오 플레이어는 가상 및/또는 증강 및/또는 혼합 현실 비디오 플레이어일 수 있다. 비디오 플레이어는 비디오 포맷(700)의 데이터 저장부(710) 내의 애니메이션 스트림들 및 데이터에 대한 액세스를 가질 수 있어서, 비디오 플레이어는 비디오 포맷을 판독 및/또는 실행할 수 있다. 통상적인 비디오 플레이어는 데이터를 판독하고, 오디오 데이터 및/또는 스트림들을 비디오 데이터 및/또는 스트림들로부터 분리하고, 데이터를 디코딩하고 비디오를 디스플레이할 수 있다. 그러나, 혼합 현실 비디오 플레이어는 3D 모델을 메모리에 로딩하고, 애니메이션 스트림을 3D 모델에 첨부하고, 더 이상 필요하지 않거나 임계 시간 기간 동안 필요하지 않을 때 모델들 및 대응하는 애니메이션들을 메모리에서 제거하는 것과 같은 몇몇 추가 액션들을 수행할 수 있다. 또한, 추가적인 상호작용식 제어들은 사용자들이 비디오를 변경하거나 비디오의 부분들이 환경과 상호작용하도록 결정하게 할 수 있다.
[0150] 예를 들어, 비디오는, 예를 들어, 혼합 현실 비디오 플레이어에 의해 제공되는 추가적인 상호작용식 제어들을 사용하여 비디오 콘텐츠의 특정 부분들을 세계 내의 특정 오브젝트들 상에 디스플레이되도록 배치함(예를 들어, 사용자의 환경 내에서 사용자의 물리적 의자들 상에 리포터들(130)을 배치함)으로써 환경에 적응할 수 있다. 다른 예로서, 사용자는 사용자에게 디스플레이될 수 있는 비디오 콘텐츠를 변경 및 조정할 수 있는 비디오 내의 특정 포인트들에서 이루어진 결정들 및 가능하게는 디스플레이가 어떻게 종료될 수 있는지에 관한 입력을 제공할 수 있다.
[0151] 비디오 감독들은 통상적으로 종래의 비디오들을 제작한다. 혼합 현실 비디오 플레이어에 있어서, 사용자가 비디오들을 제작할 수 있다. 예를 들어, 비디오를 재생하는 동안, 비디오는 사용자가 상대방을 공격하기를 원할지 여부를 사용자에게 물어볼 수 있다. 사용자가 공격을 선택하면, 사용자는 패배할 수 있고 비디오는 특정 결말에 도달할 수 있다. 그러나, 사용자가 공격하지 않는 것으로 선택하면, 비디오의 다른 부분이 재생될 수 있고 비디오에 대한 상이한 결말에 도달될 수 있다.
[0152] 도 8은 일부 실시예에 따른, 비디오 플레이어의 컴포넌트 도면을 도시한다. 비디오 플레이어(805)는 가상 및/또는 증강 및/또는 혼합 현실 플레이어일 수 있다. 비디오 플레이어(805)는 시간 제어기(810), 데이터 스트림 버퍼 및 스플리터(815), 데이터 저장 버퍼 및 제어기(820), 비디오/오디오 디코더(825), 애니메이션 디코더(830), 제어 스트림(835) 및 장면 셋업 모듈(840)을 포함할 수 있다.
[0153] 시간 제어기(810)는 비디오(예를 들어, 영화) 스트림의 포지션을 제어할 수 있다. 정규 비디오에서, 시간 제어기는 단지 타임라인에 대하여 비디오 슬라이더의 포지션을 증분시킬 수 있다. 커맨드 실행기(850)(아래에 개시됨)로부터 수신된 커맨드들에 따라, 비디오의 타임 레이(time lay)는 비디오의 다양한 섹션들로 점프할 수 있다.
[0154] 데이터 스트림 버퍼 및 스플리터(815)는 데이터에서의 버퍼링 및 착신 파일 데이터 스트림들(750)을 개별적인 스트림들, 예를 들어, 비디오 스트림들, 오디오 스트림들 및 애니메이션 스트림들로 분리하는 것을 담당할 수 있다. 데이터 저장부 버퍼 및 제어기(825)는 데이터 저장부(710)로부터의 데이터를 버퍼링하고 어느 데이터를 미리 로딩할지를 결정하는 것을 담당할 수 있다. 데이터 스트림 버퍼 및 스플리터(815)와 달리, 데이터 저장부 버퍼 및 제어기(825)는 제어 스트림(835) 및 시간 제어기(810)에 기초하여 어느 데이터를 스트리밍하기 시작할지를 확립할 필요가 있다.
[0155] 착신 데이터는 비디오/오디오 디코더(825)로 스트리밍될 수 있고 비디오/오디오 디코더(825)로부터의 출력은 하나 이상의 버퍼 프레임들에 기록될 수 있다. 오디오는 엔진의 오디오 핸들링 부분으로 라우팅될 수 있다. 애니메이션 디코더(830)는 애니메이션 스트림을, 모델에 직접 적용될 수 있는 포맷으로 디코딩할 수 있다.
[0156] 앞서 개시된 바와 같은 제어 스트림(835)은, 시간 제어기(810) 및 도 7로부터의 제어 데이터(726)로부터 동적으로 생성될 수 있다. 제어 스트림(835)은 현재 프레임(예를 들어, MR 시스템을 통해 사용자에게 디스플레이되고 있는 프레임)에서 실행할 커맨드들을 표시할 수 있다.
[0157] 장면 셋업(840)은 비디오가 환경과 상호작용하고 그리고/또는 사용자가 비디오와 상호작용할 수 있도록 추가적인 상호작용식 제어들을 사용자에게 제공할 수 있는 모듈들의 집합일 수 있다. 장면 셋업(840)은 입력 제어기(845), 커맨드 실행기(850), 런타임 상호작용 진행/저장 데이터(860) 및 환경 인식 포지셔닝 시스템(865)을 포함할 수 있다.
[0158] 입력 제어기(845)는 사용자 액션들, 예를 들어 제스처들, 제어기 입력, 대화 상자들, 환경(세계 오브젝트 인식기들, 예를 들어, 의자들) 등으로부터의 입력을 전달하는 것을 담당할 수 있다.
[0159] 런타임 상호작용 진행/저장 데이터(860)는 비디오의 현재 속성들/상태들을 저장할 수 있다. 비디오 게임과 유사하게, 런타임 상호작용 진행/저장 데이터(860)는 사용자가 비디오 게임을 통해 진행함에 따라 비디오 게임에 대한 저장 파일에 기록될 데이터일 수 있다. 여기서, 사용자가 비디오를 통해 진행함에 따라, 런타임 상호작용 진행/저장 데이터(860)는 지금까지 렌더링되고 디스플레이된 비디오 흐름을 저장할 수 있다. 특히, 사용자가 비디오의 흐름을 비디오 파일의 특정 섹션으로 전송하는 특정 결정을 하면, 런타임 상호작용 진행/저장 데이터(860)는 비디오 이력을 캡처함으로써 사용자에 대한 비디오의 상태를 유지하기 위해 특정 순서로 디스플레이되는 이전 키 프레임들을 포함할 수 있다.
[0160] 환경 인식 포지셔닝 시스템(865)은 비디오를 시청하는 사용자에 기초하여 비디오, 모델들 등을 동적으로 포지셔닝하는 것을 담당할 수 있다. 예를 들어, 사용자의 홈 셋업에 따라 3D 모델 및 비디오 프레임이 적절하게 포지셔닝될 수 있다. 적합한 포지션은 다양한 방식들로 결정될 수 있다. 일부 실시예들에서, 3D 모델은 대응하는 배치 데이터를 가질 수 있다. 이러한 배치 데이터는 오브젝트를 위 또는 근처에 배치하기 위한 오브젝트의 타입(예를 들어, 의자, 바닥 등)을 특정할 수 있거나, 또는 콘텐츠를 디스플레이하기 위해 필요한 특성들의 세트를 특정할 수 있다(예를 들어, 의자를 특정하는 대신에, 바닥 위 1 내지 3 피트의 수평 표면이 대신 특정될 수 있다). 환경 인식 포지셔닝 시스템(865 )은 3D 모델을 적절하게 포지셔닝하기 위해(예를 들어, 통과가능한 세계에 액세스하기 위해) 혼합 현실 엔진과 통신할 수 있다.
[0161] 제어 스트림(835)으로부터의 커맨드들이 수신되고, 커맨드 실행기(850)에 의해 해석될 수 있고, 적절한 논리적 액션들이 실행될 수 있다. 이것은 모델들 및 애니메이션 스트림들의 초기 통합이 발행하는 위치일 수 있다. 논리적 액션들은 또한 사용자 입력으로부터 적어도 부분적으로 기초하여 결정될 수 있고, 결과는 런타임 상호작용 데이터(860)에 저장될 수 있다. 비디오 플레이어의 능력을 확장 및 강화할 수 있는 하나 이상의 커맨드들의 예들이 커맨드 실행기(850)에 추가될 수 있다. 일부 예들은 다음을 포함한다: (1) 스크린 상에 모델을 제시하고 애니메이션 스트림에 연관시키는 것; (2) 모델을 사용자 환경의 위치로 재배치하는 것(의자가 없는 경우 디폴트 위치가 사용될 수 있음); 및 (3) 사용자가 결정을 선택할 수 있는 상호작용 대화 상자를 제시하는 것.
[0162] 혼합 현실 비디오 플레이어(805)의 출력들은 혼합 현실 엔진(890)에 전송될 수 있다. 혼합 현실 엔진(890)은 게임 엔진과 유사할 수 있다. 혼합 현실 엔진(890)은 비디오들 및 모델들을 렌더링할 수 있는 엔진일 수 있고, 사용자의 머리 포즈에 기초하여 장면의 최종 구성에 사용될 수 있다. 다른 VR 및/또는 AR 기술 및/또는 능력들에 대한 상호작용들 및 액세스는 이러한 혼합 현실 엔진(890)을 통해 인터페이싱될 수 있다.
[0163] 도 9는 일부 실시예에 따른, 비디오 포맷을 프로세싱하는 비디오 플레이어의 흐름을 도시한다. 비디오 플레이어(900)는 가상 및/또는 증강 및/또는 혼합 현실 비디오 플레이어일 수 있다. 비디오 플레이어(900)의 흐름이 타임라인에 대해 도시되고, 여기서 시간은 도 9의 최상부로부터 시작하여 도 9의 바닥으로 아래로 흐르고 비디오 종료(970)에서 종료된다. 타임라인 제어기(810)는 도 8로부터의 시간 제어기(810)일 수 있다. 타임라인 제어기(810)는 비디오 스트림의 포지션을 제어할 수 있으며, 이는 현재 프레임이 사용자에게 디스플레이되고 있음을 표시할 수 있다. 비디오 플레이어(900)는 혼합 현실 비디오 파일 포맷으로 혼합 현실 비디오 파일로부터 데이터를 판독/수신할 수 있다. 혼합 현실 비디오 포맷의 비디오 특징들은 입체 3D 비디오일 수 있다. 혼합 현실 비디오 파일 포맷은 애니메이션 스트림들(915), 제어 데이터를 포함하는 데이터 저장부, 비디오 스트림들(905) 및 오디오 스트림들(910)을 포함할 수 있다. 애니메이션 스트림들(915), 비디오 스트림들(905) 및 오디오 스트림들(910)은 도 7로부터의 애니메이션 스트림들(780), 비디오 스트림들(760) 및 오디오 스트림들(770)에 각각 대응할 수 있다.
[0164] 비디오 스트림들(905)은 비디오의 비디오 데이터의 하나 이상의 스트림들을 포함할 수 있다. 오디오 스트림들(910)은 비디오의 오디오 데이터의 하나 이상의 스트림들을 포함할 수 있다. 하나 이상의 오디오 스트림들은 사용자 선택 옵션에 따라 비디오가 사용할 수 있는 다양한 언어들에 대응할 수 있다. 하나 이상의 비디오 스트림들은 예를 들어, 캡처된 다수의 뷰들에 대응할 수 있다. 현재 비디오 압축 접근법들에서, 비디오 및 오디오 데이터는 비디오 및 오디오 데이터가 비디오 플레이어에 스트리밍될 수 있도록 데이터 집약적일 수 있다. 앞서 논의된 바와 같이, 통상적인 스트리밍 압축 기술은, 다른 키 프레임(933)에 직면할 때까지, 모든 프레임들과 독립적일 수 있는 키 프레임(925), 및 키 프레임(925)과의 차이들만을 반송할 수 있는 후속 델타 프레임들(930)에서 전송하는 것을 수반한다.
[0165] 앞서 개시된 바와 같이, 애니메이션 스트림들(915)은 호환가능한 3D 모델에 적용될 수 있는 모델 애니메이션들을 포함할 수 있다. 애니메이션 스트림들(915)은 3D 모델들/메시들이 비디오 및 오디오 스트림들(예를 들어, 비디오)에 비해 어떻게 이동하고 거동하는지(예를 들어, 움직임들, 배향, 포지션들 등)를 제어할 수 있다. 애니메이션 데이터는 하나 이상의 애니메이션 스트림들에서 비디오 플레이어(900)로 스트리밍될 수 있다. 하나 이상의 애니메이션 스트림들은 비디오 동안 특정 시간에 디스플레이될 수 있는 하나 이상의 모델들/메시/텍스처에 대응할 수 있고, 하나 이상의 모델들은 3D 비디오의 디스플레이 스크린의 외부에서 디스플레이될 수 있다.
[0166] 제어 스트림(920)은 데이터 저장부로부터 수신되고 시간 제어기(810)에 의해 해석되는 제어 데이터로부터 동적으로 생성될 수 있다. 앞서 개시된 바와 같이, 제어 스트림(920)은 데이터 저장부(945)로부터 로딩할 모델/메시/텍스처 등을 표시하고 비디오 스트림들(905) 및 오디오 스트림들(910)로부터의 프레임들과 대응하도록 비디오의 타임라인 내의 적절한 시간에 (예를 들어, 940에서) 모델/메시/텍스처를 연관된 애니메이션 스트림에 링크시키는 것을 담당할 수 있다. 제어 스트림(920)은 키 프레임들(예를 들어, 키 프레임(935a) 및 키 프레임(935b))을 포함할 수 있다. 제어 스트림(920)은 비디오의 타임라인 내의 적절한 시간에 재생하기 위한 모델 및 애니메이션의 조합을 결정하기 위해 커맨드들 및 간단한 로직 게이트들을 포함할 수 있다.
[0167] 일부 실시예들에서, 제어 스트림(920)은 비디오 파일로부터 스트리밍되지 않고 대신 메모리로 미리 로딩되는 데이터이다. 제어 스트림(920)이 메모리에 미리 로딩되기 때문에, 비디오 플레이어(900)는 애니메이션과 함께 또는 애니메이션 없이 3D 모델이 디스플레이된다는 예측으로 데이터 저장부로부터의 3D 모델이 언제 메모리에 미리 로딩될 필요가 있을 수 있는지를 결정하기 위해 비디오의 타임라인 및/또는 비디오 스트림들의 시간을 시간상 미리 볼 수 있다. 일부 실시예들에서, 모델을 로딩하기 위한 리드 시간은 3D 모델의 데이터 크기, 네트워크 대역폭, 및/또는 사용자의 가상 및/또는 증강 현실 시스템(예를 들어, 디스플레이 시스템(104))의 프로세싱 능력에 기초하여 결정될 수 있다. 일부 실시예들에서, 제어 스트림은 메모리에 미리 로딩되는 대신에 스트리밍된다. 일부 실시예들에서, 제어 스트림 및 제어 데이터는 상호교환가능하게 사용될 수 있다. 일부 실시예들에서, 이는 제어 스트림이 실행되고 있는 제어 데이터이기 때문일 수 있다. 일부 실시예들에서, 이는 이들이 동일한 것이기 때문일 수 있다. 일부 실시예들에서, 이는 제어 데이터가 스트리밍되고 있기 때문일 수 있다.
[0168] 일부 실시예들에서, 비디오 플레이어(900)는 비디오 스트림들, 오디오 스트림들, 애니메이션 스트림들 및/또는 제어 데이터를 포함하는 비디오 파일을 수신할 수 있다. 제어 스트림은 제어 데이터 및 비디오 플레이어의 시간 제어기로부터 생성될 수 있다. 940에서, 3D 모델은 3D 모델이 비디오에서 디스플레이될 필요가 있을 수 있을 때에 대한 제어 스트림 예측에 적어도 부분적으로 기초하여 메모리(미도시)에 로딩될 수 있다. 비디오 플레이어는 애니메이션과 함께 또는 애니메이션 없이 3D 모델이 사용자에게 디스플레이될 준비가 된 것을 보장하기 위해 3D 모델을 로딩할 리드 시간을 결정(예를 들어, 계산)할 수 있다. 애니메이션이 3D 모델에 포함되는 경우, 제어 스트림은 로딩된 3D 모델과 애니메이션 스트림들(915)으로부터의 애니메이션 스트림 사이의 링크를 연관시킴으로써 3D 오브젝트를 애니메이션 스트림에 부착할 수 있다. 비디오는 VR 및/또는 AR 디바이스(예를 들어, 디스플레이 시스템(104))를 사용하여 사용자에게 디스플레이될 수 있다. 사용자는, 비디오의 특정 부분들에서 3D 오브젝트가 가상 텔레비전의 정면을 빠져 나와 사용자의 환경 주위를 이동하고, 선택적으로 가상 텔레비전에 다시 진입하는 것으로 보일 수 있도록 가상 텔레비전 상에 디스플레이되는 3D 비디오를 볼 수 있다.
[0169] 다른 실시예에서, 제어 스트림(920)은, 950에서, 사용자에게 질문, 예를 들어, 새벽에 공격할지 여부?를 디스플레이하도록 비디오 플레이어(900)에 명령할 수 있다. 사용자가 새벽에 공격하는 "예"를 선택하면, 965에서, 제어 스트림은 "성공"을 타임라인에 태그하고 미션 "성공" 태그를 타임라인 제어기(810)에 통신할 수 있다. 대안적으로 사용자가 새벽에 공격하지 않는 "아니오"를 선택하면, 960에서, 제어 스트림은 "실패"를 타임라인에 태그하고 미션 "실패" 태그를 타임라인 제어기(810)에 통신할 수 있다.
[0170] 타임라인 제어기(810)는 미션에 대한 타임라인 태그들을 수신한 후, 성공적인 미션에 기초하여 계속되는 비디오의 부분인지 또는 실패한 미션에 기초하여 계속되는 비디오의 부분인지 무관하게, 비디오를 계속하기 위해 타임라인을 비디오의 적절한 분으로 스킵/점프시킬 수 있다. 사용자로부터 수신된 상호작용들은 머리 포즈, 눈 추적, 눈 응시, 사용자의 손 제스처들, 토템 제스처들 또는 입력들, 또는 오브젝트 인식기 중 적어도 하나를 포함할 수 있다. 955에서, 비디오의 상태는 사용자에 의해 제공되는 대답을 캡처하기 위해 런타임 상호작용 데이터와 함께 저장될 수 있다. 이러한 실시예는, 비디오 파일(예를 들어, 혼합 현실 비디오 포맷 파일)을 수신하는 비디오 플레이어(900)가 제어 스트림(920)을 사용하여 사용자 상호작용식 3D 비디오를 디스플레이하여, 비디오의 어느 부분들이 다음에 디스플레이되어야 하는지를 지시하는 사용자 상호작용들을 캡처하고, 따라서 사용자가 비디오의 스토리라인이 어떻게 종료될 수 있는지를 지시 및 제어하도록 허용하는 방법을 개시한다. 일부 실시예들에서, 런타임 상호작용 데이터(955)는 적어도 부분적으로, 제어 커맨드들을 해석할 수 있다. 예를 들어, 955는 제어 커맨드가 사용자 선택을 포함할 때 사용자 선택을 해석할 수 있다. 런타임 상호작용 데이터는, 일부 실시예들에서, 사용자 선택이 비디오의 상태에 영향을 미칠 수 있는 커맨드 실행기(850)에 전달될 수 있다. 일부 실시예들에서, 955는 사용자 선택을 포함하지 않는 제어 커맨드를 해석할 수 있다. 예를 들어, 제어 커맨드는 사용자의 나이(혼합 현실 시스템 상의 사용자 프로파일에 저장될 수 있음)에 기초하여 비디오 콘텐츠를 자동으로 검열하도록 기능할 수 있다.
[0171] 혼합 현실 비디오 파일 포맷을 생성 및 편집하기 위한 혼합 현실 비디오 편집기(미도시)는 비디오 스트림들, 오디오 스트림들, 애니메이션 스트림들 및 혼합 현실 비디오 포맷의 데이터 저장부를 편집하기 위한 도구들을 포함할 수 있다. 도구들은, 예를 들어, 사용자가, (1) 모델들을 생성하거나 데이터 저장부로 임포트하는 것, (2) 저장된 애니메이션 스트림들로부터 애니메이션 스트림을 정의하고 그리고/또는 모델들을 제어하기 위한 새로운 애니메이션 스트림들을 생성하는 것, (3) 애니메이션 스트림들을 호환가능한 모델들에 연관시키는 것, (4) 예를 들어, 사용자의 VR 및/또는 AR 시스템의 프로세싱 능력들 및 구성된 사용자 대역폭에 기초하여 모델들이 미리 로딩될 수 있는 때를 정의하는 것, (5) 사용자의 환경에서 오브젝트들 상에 디스플레이될 수 있는 비디오 및 오디오 스트림들의 부분들을 정의하는 것 및/또는 (6) 비디오를 뷰잉하는 사용자들에게 어떻게 및/또는 어떤 질문들을 물어볼 수 있는지 및 사용자들로부터의 각각의 응답이 어떻게 비디오의 어느 부분들로 스킵할 수 있는지를 정의하는 것 등을 허용할 수 있다.
[0172] 혼합 현실 비디오 파일 포맷은 본 개시의 하나 이상의 실시예들을 구현하기 위해 종래의 비디오 파일 포맷에 추가적인 자산들을 추가하기 위한 데이터 저장부 및 적어도 하나의 애니메이션 스트림을 포함할 수 있다. 혼합 현실 비디오 플레이어는 혼합 현실 비디오 파일 포맷 내에서 혼합 현실 비디오를 해석 및 프로세싱하기 위해 사용될 수 있다.
[0173] 제어 스트림을 해석하고 실행하는 비디오 플레이어는 VR 및/또는 AR 시스템이 3D 비디오들을 새롭고 신규한 방식으로 디스플레이하도록 허용할 수 있다. 예를 들어, 3D 오브젝트들이 디스플레이 스크린에서 나오는 것처럼 보이도록 디스플레이하는 것은, 3D 모델이 언제 디스플레이될 필요가 있는지에 대한 예상 예측에 기초하여 3D 모델을 메모리에 미리 로딩하고 3D 모델의 움직임들을 제어하기 위해 3D 모델을 애니메이션 스트림에 부착함으로써 달성될 수 있다. 이는, 종래의 3D 비디오들을 디스플레이하는 종래의 디스플레이 스크린에서 3D 비디오 내의 3D 오브젝트들이 실제로 쏟아져 나오거나 나오는 것처럼 보일 수 있는 3D 비디오의 더 현실적인 뷰를 제공하기 위해 3D 모델들을 3D 비디오들과 조합하여 디스플레이하기 위한 가상 및/또는 증강 현실 시스템의 능력을 개선할 수 있다. 일부 실시예들에서, 애니메이션 스트림들(915), 제어 데이터 및 제어 스트림(920)의 추가는, 비디오 플레이어(900)에 의해 해석될 때, VR 및/또는 AR 시스템이 디스플레이 스크린에서 실제로 쏟아져 나오거나 나올 수 있는 3D 오브젝트들과 함께 3D 비디오들을 효율적인 방식으로 디스플레이하도록 허용하며, 이는 복셀 및/또는 볼륨 기반 비디오 스트림들과 같은 다른 기술들에 비해 컴퓨터의 프로세싱 능력을 감소시키고 3D 비디오를 생성할 필요가 있을 수 있는 메모리의 양을 감소시킨다.
추가적인 실시예들
[0174] 본 개시의 추가적인 실시예들이 아래에 설명된다. 이러한 추가적인 실시예들은 앞서 개시된 실시예들로부터의 엘리먼트들을 통합할 수 있다.
1. 일 실시예로서,
최종 3D 렌더링 세계에서 포털을 식별하는 단계 ― 포털은 최종 3D 렌더링 세계의 표면의 개구임 ―; 및
제1 2D 입체 이미지 및 제2 2D 입체 이미지를 최종 3D 렌더링 세계의 포털에 렌더링하는 단계를 포함하는, 실시예.
2. 실시예 1에 있어서, 렌더링된 최종 3D 렌더링 세계를 증강 현실 디바이스를 통해 사용자에게 디스플레이하는 단계를 포함하는, 방법.
3. 실시예 1에 있어서, 제1 2D 입체 이미지는 우측 눈을 위한 것이고, 제2 2D 입체 이미지는 좌측 눈을 위한 것인, 방법.
4. 실시예 3에 있어서, 제1 2D 입체 이미지 및 제2 2D 입체 이미지는 종래의 3D 비디오로부터 소싱되는, 방법.
5. 실시예 3에 있어서, 제1 2D 입체 이미지 및 제2 2D 입체 이미지는 3D 렌더링 세계의 상이한 부분 내에 위치된 2개의 가상 렌더링 카메라들로부터 소싱되는, 방법.
6. 실시예 3에 있어서, 제1 2D 입체 이미지 및 제2 2D 입체 이미지는 실세계 콘텐츠를 캡처하는 2개의 카메라들로부터 소싱되는, 방법.
7. 실시예 3에 있어서, 제1 2D 입체 이미지 및 제2 2D 입체 이미지는 상이한 3D 렌더링 세계로부터 소싱되는, 방법.
8. 실시예 7에 있어서, 상이한 3D 렌더링 세계는 포털 아이콘인, 방법.
9. 실시예 1에 있어서, 포털은 가상 텔레비전 스크린인, 방법.
10. 가상 및/또는 증강 현실 디스플레이 시스템으로서,
최종 3D 렌더링 공간; 및
데이터를 프로세싱하기 위한 모듈을 포함하고, 모듈은 메모리에 저장되고, 모듈은,
최종 3D 렌더링 세계에서 포털을 식별하는 것 ― 포털은 최종 3D 렌더링 세계의 표면의 개구임 ―; 및
제1 2D 입체 이미지 및 제2 2D 입체 이미지를 최종 3D 렌더링 세계의 포털에 렌더링하는 것을 수행하도록 구성되는, 가상 및/또는 증강 현실 디스플레이 시스템.
11. 실시예 10에 있어서, 렌더링된 최종 3D 렌더링 세계를 사용자에게 디스플레이하는 것을 더 포함하는, 가상 및/또는 증강 현실 디스플레이 시스템.
12. 실시예 10에 있어서, 제1 2D 입체 이미지는 우측 눈을 위한 것이고, 제2 2D 입체 이미지는 좌측 눈을 위한 것인, 가상 및/또는 증강 현실 디스플레이 시스템.
13. 실시예 12에 있어서, 제1 2D 입체 이미지 및 제2 2D 입체 이미지는 종래의 3D 비디오로부터 소싱되는, 가상 및/또는 증강 현실 디스플레이 시스템.
14. 실시예 12에 있어서, 제1 2D 입체 이미지 및 제2 2D 입체 이미지는 3D 렌더링 세계의 상이한 부분 내에 위치된 2개의 가상 렌더링 카메라들로부터 소싱되는, 가상 및/또는 증강 현실 디스플레이 시스템.
15. 실시예 12에 있어서, 제1 2D 입체 이미지 및 제2 2D 입체 이미지는 실세계 콘텐츠를 캡처하는 2개의 카메라들로부터 소싱되는, 가상 및/또는 증강 현실 디스플레이 시스템.
16. 실시예 12에 있어서, 제1 2D 입체 이미지 및 제2 2D 입체 이미지는 제2 3D 렌더링 세계로부터 소싱되는, 가상 및/또는 증강 현실 디스플레이 시스템.
17. 실시예 16에 있어서, 제2 3D 렌더링 세계는 포털 아이콘인, 가상 및/또는 증강 현실 디스플레이 시스템.
18. 실시예 10에 있어서, 포털은 가상 텔레비전 스크린인, 가상 및/또는 증강 현실 디스플레이 시스템.
19. 가상 및/또는 증강 현실 환경에서 3D 비디오를 디스플레이하는 방법으로서,
3D 비디오를 식별하는 단계;
가상 및/또는 증강 현실 환경의 일부에서 3D 비디오를 디스플레이하기 위한 볼륨 공간을 식별하는 단계; 및
볼륨 공간 내에서 3D 비디오를 렌더링하는 단계를 포함하는, 방법.
20. 실시예 19에 있어서, 3D 비디오는 입체 3D 비디오인, 방법.
21. 실시예 19에 있어서, 볼륨 공간은 3D 오브젝트의 포털 뷰인, 방법.
22. 실시예 21에 있어서, 3D 오브젝트는 평면 뷰잉 디스플레이를 갖는 가상 텔레비전인, 방법.
23. 실시예 22에 있어서, 3D 비디오는 가상 텔레비전의 평면 뷰잉 디스플레이 내에 렌더링되는, 방법.
24. 실시예 19에 있어서, 3D 비디오로부터의 제1 깊이 정보는 가상 및/또는 증강 환경 볼륨 공간의 일부의 제1 위치로부터 3D 비디오를 뷰잉하는 사용자의 제2 위치로의 제2 깊이 정보에 추가되는, 방법.
25. 가상 및/또는 증강 현실 디스플레이 시스템으로서,
가상 및/또는 증강 현실 환경을 캡처하기 위한 카메라; 및
데이터를 프로세싱하기 위한 모듈을 포함하고, 모듈은 메모리 저장되고, 모듈은,
3D 비디오를 식별하고,
가상 및/또는 증강 현실 환경의 일부에서 3D 비디오를 디스플레이하기 위한 볼륨 공간을 식별하고,
볼륨 공간 내에서 3D 비디오를 렌더링하는, 가상 및/또는 증강 현실 디스플레이 시스템.
26. 실시예 25에 있어서, 3D 비디오는 입체 3D 비디오인, 가상 및/또는 증강 현실 디스플레이 시스템.
27. 실시예 25에 있어서, 볼륨 공간은 3D 오브젝트의 포털 뷰인, 가상 및/또는 증강 현실 디스플레이 시스템.
28. 실시예 27에 있어서, 3D 오브젝트는 평면 뷰잉 디스플레이를 갖는 가상 텔레비전인, 가상 및/또는 증강 현실 디스플레이 시스템.
29. 실시예 28에 있어서, 3D 비디오는 가상 텔레비전의 평면 뷰잉 디스플레이 내에 렌더링되는, 가상 및/또는 증강 현실 디스플레이 시스템.
30. 실시예 25에 있어서, 3D 비디오로부터의 제1 깊이 정보는 가상 및/또는 증강 환경 볼륨 공간의 일부의 제1 위치로부터 3D 비디오를 뷰잉하는 사용자의 제2 위치로의 제2 깊이 정보에 추가되는, 가상 및/또는 증강 현실 디스플레이 시스템.
31. 디스플레이 스크린의 표면을 넘어 확장되는 3D 비디오를 디스플레이하는 방법으로서,
3D 비디오를 식별하는 단계;
3D 비디오에 대응하는 하나 이상의 3D 모델들을 생성하는 단계; 및
3D 비디오의 렌더링과 함께 적절한 트리거 시간에 하나 이상의 3D 모델들을 렌더링하는 단계를 포함하는, 방법.
32. 실시예 31에 있어서, 3D 비디오는 입체 3D 비디오인, 방법.
33. 실시예 32에 있어서, 하나 이상의 3D 모델들은 애니메이션들로 생성되는, 방법.
34. 실시예 33에 있어서, 3D 비디오의 디스플레이 스크린 외부에 하나 이상의 3D 모델들의 애니메이션들을 디스플레이하는 단계를 더 포함하는, 방법.
35. 실시예 34에 있어서, 하나 이상의 3D 모델들의 애니메이션들은 3D 비디오의 평면 표면을 빠져나가서 사용자의 3D 환경으로 나오는 것으로 나타나는, 방법.
35a. 실시예 34에 있어서, 하나 이상의 3D 모델들의 애니메이션들은 3D 비디오의 비-평면 표면을 빠져나가서 사용자의 3D 환경으로 나오는 것으로 나타나는, 방법.
36. 실시예 31에 있어서,
하나 이상의 3D 모델들을 하나 이상의 비디오 팬들 상에 렌더링하는 단계, 및
하나 이상의 비디오 팬들을 하나 이상의 뷰잉 배향들에 대해 동시에 디스플레이하는 단계를 더 포함하는, 방법.
37. 실시예 32에 있어서, 입체 3D 비디오는 하나 이상의 3D 모델들과 함께 디스플레이되는, 방법.
38. 실시예 31에 있어서, 3D 비디오 및 하나 이상의 3D 모델들의 렌더링에 깊이 정보가 팩터화되고, 깊이 정보는 가상 및/또는 증강 현실 디바이스의 사용자로부터 가상 및/또는 증강 현실 환경 내에 디스플레이되는 개개의 하나 이상의 3D 모델들 및 3D 비디오까지의 거리를 포함하는, 방법.
39. 실시예 31에 있어서, 3D 비디오는 제어 데이터를 포함하고, 제어 데이터는 3D 비디오의 렌더링과 함께 적절한 트리거 시간에 하나 이상의 3D 모델들을 렌더링하도록 비디오 플레이어에 명령하는, 방법.
39a. 실시예 39에 있어서, 제어 데이터는 3D 비디오 내의 그리고 3D 비디오 외부의 오브젝트들 및 기능들을 제어하기 위한 제어 커맨드들의 세트를 포함하는, 방법.
39b. 실시예 39a에 있어서, 제어 커맨드들(예를 들어, 제어 커맨드들의 세트)은 확장가능, 업데이트가능 또는 동적 중 적어도 하나인, 방법.
39c. 실시예 39b에 있어서, 제어 커맨드는, 3D 비디오의 속도를 변경하는 것, 3D 비디오의 시작 시에 사용자 환경의 희미한 조명에 대한 사용자 프롬프트를 제공하는 것, 3D 비디오의 시작 시에 피자 식당에 전화거는 것, 또는 사용자의 눈 응시에 적어도 부분적으로 기초하여 3D 비디오를 상이하게 재생하는 것 중 적어도 하나를 포함하는, 방법.
39d. 실시예 31에 있어서, 3D 비디오는 3D 영화이고, 3D 영화는 프로그래밍 언어를 포함하는, 방법.
40. 실시예 31에 있어서, 하나 이상의 3D 모델들의 렌더링은 복셀 기반 비디오 스트림에 적어도 부분적으로 기초하는, 방법.
41. 디스플레이 스크린의 표면을 넘어 확장되는 3D 비디오를 디스플레이하기 위한 디스플레이 시스템으로서,
증강 현실 머리-장착 디스플레이 시스템;
3D 최종 렌더링 세계;
둘 이상의 가상 카메라들; 및
데이터를 프로세싱하기 위한 하나 이상의 모듈들을 포함하고, 하나 이상의 모듈들은 하나 이상의 메모리에 저장되고, 하나 이상의 모듈들은,
3D 비디오를 식별하는 것,
3D 비디오에 대응하는 하나 이상의 3D 모델들을 생성하는 것, 및
3D 비디오의 렌더링과 함께 적절한 트리거 시간에 하나 이상의 3D 모델들을 렌더링하는 것을 수행하도록 구성되는, 디스플레이 시스템.
42. 실시예 41에 있어서, 3D 비디오는 입체 3D 비디오인, 가상 및/또는 증강 현실 디스플레이 시스템.
43. 실시예 42에 있어서, 하나 이상의 3D 모델들은 애니메이션들로 생성되는, 가상 및/또는 증강 현실 디스플레이 시스템.
44. 실시예 43에 있어서, 모듈은 3D 비디오의 디스플레이 스크린 외부에 하나 이상의 3D 모델들의 애니메이션들을 디스플레이하는 것을 더 포함하는, 가상 및/또는 증강 현실 디스플레이 시스템.
45. 실시예 44에 있어서, 하나 이상의 3D 모델들의 애니메이션들은 3D 비디오의 평면 표면을 빠져나가서 사용자의 3D 환경으로 나오는 것으로 나타나는, 가상 및/또는 증강 현실 디스플레이 시스템.
45a. 실시예 44에 있어서, 하나 이상의 3D 모델들의 애니메이션들은 3D 비디오의 비-평면 표면을 빠져나가서 사용자의 3D 환경으로 나오는 것으로 나타나는, 가상 및/또는 증강 현실 디스플레이 시스템.
46. 실시예 41에 있어서, 하나 이상의 모듈들은,
하나 이상의 3D 모델들을 하나 이상의 비디오 팬들 상에 렌더링하는 것, 및
하나 이상의 비디오 팬들을 하나 이상의 뷰잉 배향들에 대해 동시에 디스플레이하는 것을 수행하도록 추가로 구성되는, 가상 및/또는 증강 현실 디스플레이 시스템.
47. 실시예 42에 있어서, 입체 3D 비디오는 하나 이상의 3D 모델들과 함께 디스플레이되는, 가상 및/또는 증강 현실 디스플레이 시스템.
48. 실시예 41에 있어서, 3D 비디오 및 하나 이상의 3D 모델들의 렌더링에 깊이 정보가 팩터화되고, 깊이 정보는 가상 및/또는 증강 현실 디바이스의 사용자로부터 가상 및/또는 증강 현실 환경 내에 디스플레이되는 개개의 하나 이상의 3D 모델들 및 3D 비디오까지의 거리를 포함하는, 가상 및/또는 증강 현실 디스플레이 시스템.
49. 실시예 41에 있어서, 3D 비디오는 제어 데이터를 포함하는 비디오 파일 포맷을 갖고, 제어 데이터는 3D 비디오의 렌더링과 함께 적절한 트리거 시간에 하나 이상의 3D 모델들을 렌더링하도록 비디오 플레이어에 명령하는, 가상 및/또는 증강 현실 디스플레이 시스템.
49a. 실시예 49에 있어서, 제어 데이터는 3D 비디오 내의 그리고 3D 비디오 외부의 오브젝트들 및 기능들을 제어하기 위한 제어 커맨드들의 세트를 포함하는, 가상 및/또는 증강 현실 디스플레이 시스템.
49b. 실시예 49a에 있어서, 제어 커맨드들(예를 들어, 제어 커맨드들의 세트)은 확장가능, 업데이트가능 또는 동적 중 적어도 하나인, 가상 및/또는 증강 현실 디스플레이 시스템.
49c. 실시예 49b에 있어서, 제어 커맨드는, 3D 비디오의 속도를 변경하는 것, 3D 비디오의 시작 시에 사용자 환경의 희미한 조명에 대한 사용자 프롬프트를 제공하는 것, 3D 비디오의 시작 시에 피자 식당에 전화거는 것, 또는 사용자의 눈 응시에 적어도 부분적으로 기초하여 3D 비디오를 상이하게 재생하는 것 중 적어도 하나를 포함하는, 가상 및/또는 증강 현실 디스플레이 시스템.
49d. 실시예 31에 있어서, 3D 비디오는 3D 영화이고, 3D 영화는 프로그래밍 언어를 포함하는, 가상 및/또는 증강 현실 디스플레이 시스템.
50. 실시예 41에 있어서, 하나 이상의 3D 모델들의 렌더링은 복셀 기반 비디오 스트림에 적어도 부분적으로 기초하는, 가상 및/또는 증강 현실 디스플레이 시스템.
51. 방법으로서,
3D 환경에 2개의 제1 스테이지 카메라들을 배치하는 단계;
2개의 제1 스테이지 카메라들로부터 2D 이미지들의 하나 이상의 쌍들을 캡처하는 단계;
2D 이미지들 중 하나 이상의 쌍들을 최종 스테이지 장면 내의 위치에 배치하는 단계; 및
2개의 최종 스테이지 카메라들로부터 최종 스테이지 장면을 렌더링하는 단계를 포함하는, 방법.
52. 실시예 51에 있어서, 가상 및/또는 증강 현실 디바이스를 통해 최종 스테이지 장면을 디스플레이하는 단계를 더 포함하는, 방법.
53. 실시예 51에 있어서, 위치는 포털인, 방법.
54. 실시예 51에 있어서, 2개의 제1 스테이지 카메라들 중 제1 카메라는 좌측 눈 관점에서 2D 이미지들을 캡처하고 2개의 제1 스테이지 카메라 중 제2 카메라는 우측 눈 관점에서 2D 이미지들을 캡처하는, 방법.
55. 실시예 51에 있어서, 2개의 2D 이미지들의 하나 이상의 다른 쌍들은 사용자의 2개의 눈들에 대응하는 최종 스테이지 카메라들로부터 캡처되는, 방법.
56. 실시예 55에 있어서, 2개의 제1 스테이지 카메라들은 최종 스테이지 2 렌더링 카메라들과는 상이한 3D 환경의 위치들에 있는, 방법.
57. 실시예 51에 있어서, 2개의 제1 스테이지 카메라들은 가상 카메라들이고 3D 환경은 3D 가상 세계인, 방법.
58. 실시예 51에 있어서, 3D 환경은 실세계인, 방법.
59. 가상 및/또는 증강 현실 디스플레이 시스템으로서,
3D 환경에 배치된 2개의 제1 스테이지 카메라들 ― 2개의 제1 스테이지 카메라들은 2D 이미지들의 하나 이상의 쌍들을 캡처함 ―;
2개의 최종 스테이지 카메라들 ― 2개의 최종 스테이지 카메라들은 최종 스테이지 장면을 캡처함 ―; 및
데이터를 프로세싱하기 위한 모듈을 포함하고, 모듈은 메모리에 저장되고, 모듈은,
2D 이미지들 중 하나 이상의 쌍들을 최종 스테이지 장면 내의 위치에 배치하는 것; 및
2개의 최종 스테이지 카메라들로부터 캡처된 2D 이미지들의 하나 이상의 다른 쌍들로부터 최종 스테이지 장면을 렌더링하는 것을 수행하도록 구성되는, 가상 및/또는 증강 현실 디스플레이 시스템.
60. 실시예 59에 있어서, 최종 스테이지 장면을 디스플레이하는 것을 더 포함하는, 가상 및/또는 증강 현실 디스플레이 시스템.
61. 실시예 59에 있어서, 위치는 포털인, 가상 및/또는 증강 현실 디스플레이 시스템.
62. 실시예 59에 있어서, 2개의 제1 스테이지 카메라들 중 제1 카메라는 좌측 눈 관점에서 2D 이미지들을 캡처하고 2개의 제1 스테이지 카메라 중 제2 카메라는 우측 눈 관점에서 2D 이미지들을 캡처하는, 가상 및/또는 증강 현실 디스플레이 시스템.
63. 실시예 59에 있어서, 2개의 2D 이미지들의 하나 이상의 다른 쌍들은 사용자의 2개의 눈들에 대응하는 최종 스테이지 카메라들로부터 캡처되는, 가상 및/또는 증강 현실 디스플레이 시스템.
64. 실시예 63에 있어서, 2개의 제1 스테이지 카메라들은 최종 스테이지 2 렌더링 카메라들과는 상이한 3D 환경의 위치들에 있는, 가상 및/또는 증강 현실 디스플레이 시스템.
65. 실시예 59에 있어서, 2개의 제1 스테이지 카메라들은 가상 카메라들이고 3D 환경은 3D 렌더링 세계인, 가상 및/또는 증강 현실 디스플레이 시스템.
66. 실시예 59에 있어서, 3D 환경은 실세계인, 가상 및/또는 증강 현실 디스플레이 시스템.
67. 제1 소스로부터의 제1 3D 콘텐츠를 제2 소스로부터의 제2 3D 콘텐츠에 배치하는 단계를 포함하는 방법.
68. 실시예 67에 있어서, 가상 및/또는 증강 현실 디바이스를 통해 제2 3D 콘텐츠를 디스플레이하는 단계를 더 포함하는, 방법.
69. 실시예 67에 있어서, 제1 3D 콘텐츠는 제2 3D 콘텐츠 내의 포털에 배치되는, 방법.
70. 실시예 67에 있어서, 제1 소스로부터의 제1 카메라는 좌측 눈 관점에서 2D 이미지들을 캡처하고 제1 소스의 제2 카메라는 우측 눈 관점에서 2D 이미지들을 캡처하는, 방법.
71. 실시예 67에 있어서, 2개의 2D 이미지들의 다른 쌍은 제2 소스로부터의 2개의 다른 카메라들로부터 캡처되고, 2개의 2D 이미지들의 쌍은 제2 소스로부터의 장면을 뷰잉하는 사용자의 2개의 눈들에 대응하는, 방법.
72. 실시예 67에 있어서, 제1 소스로부터의 2개의 카메라들은 제2 소스로부터의 2개의 다른 카메라들과는 상이한 3D 환경 위치들에 있는, 방법.
73. 실시예 67에 있어서, 제1 3D 콘텐츠는 2개의 가상 카메라들로부터 캡처되고 제1 소스는 3D 가상 세계인, 방법.
74. 실시예 67에 있어서, 제1 소스는 실세계인, 방법.
75. 가상 및/또는 증강 현실 디스플레이 시스템으로서,
가상 및/또는 증강 현실 환경을 캡처하기 위한 카메라; 및
데이터를 프로세싱하기 위한 모듈을 포함하고, 모듈은 메모리에 저장되고, 모듈은 실행될 때, 제1 소스로부터의 제1 3D 콘텐츠를 제2 소스로부터의 제2 3D 콘텐츠에 배치하는 프로세스를 수행하는, 가상 및/또는 증강 현실 디스플레이 시스템.
76. 실시예 75에 있어서, 모듈은 실행될 때, 가상 및/또는 증강 현실 디바이스를 통해 제2 3D 콘텐츠를 디스플레이하는 것을 더 포함하는 프로세스를 수행하는, 가상 및/또는 증강 현실 디스플레이 시스템.
77. 실시예 75에 있어서, 제1 3D 콘텐츠는 제2 3D 콘텐츠 내의 포털에 배치되는, 가상 및/또는 증강 현실 디스플레이 시스템.
78. 실시예 75에 있어서, 제1 소스로부터의 제1 카메라는 좌측 눈 관점에서 2D 이미지들을 캡처하고 제1 소스의 제2 카메라는 우측 눈 관점에서 2D 이미지들을 캡처하는, 가상 및/또는 증강 현실 디스플레이 시스템.
79. 실시예 75에 있어서, 2개의 2D 이미지들의 다른 쌍은 제2 소스로부터의 2개의 다른 카메라들로부터 캡처되고, 2개의 2D 이미지들의 쌍은 제2 소스로부터의 장면을 뷰잉하는 사용자의 2개의 눈들에 대응하는, 가상 및/또는 증강 현실 디스플레이 시스템.
80. 실시예 75에 있어서, 제1 소스로부터의 2개의 카메라들은 제2 소스로부터의 2개의 다른 카메라들과는 상이한 3D 환경 위치들에 있는, 가상 및/또는 증강 현실 디스플레이 시스템.
81. 실시예 75에 있어서, 제1 3D 콘텐츠는 2개의 가상 카메라들로부터 캡처되고 제1 소스는 3D 가상 세계인, 가상 및/또는 증강 현실 디스플레이 시스템.
82. 실시예 75에 있어서, 제1 소스는 실세계인, 가상 및/또는 증강 현실 디스플레이 시스템.
83. 입체 이미지들의 제1 세트를 입체 이미지들의 제2 세트 내에 배치하는 단계를 포함하는 방법.
84. 실시예 83에 있어서, 가상 및/또는 증강 현실 디바이스를 통해 입체 이미지들의 제2 세트를 디스플레이하는 단계를 더 포함하는, 방법.
85. 실시예 83에 있어서, 입체 이미지들의 제1 세트는 입체 이미지들의 제2 세트 내의 포털에 배치되는, 방법.
86. 실시예 83에 있어서, 입체 이미지들의 제1 세트는, 좌측 눈 관점에서 2D 이미지들을 캡처하는 제1 카메라 및 우측 눈 관점에서 2D 이미지들을 캡처하는 제2 카메라에 의해 캡처되는, 방법.
87. 실시예 83에 있어서, 입체 이미지들의 제2 세트는 2개의 다른 카메라들에 의해 캡처되고, 2개의 다른 카메라들은 입체 이미지들의 제2 세트를 캡처하고, 2개의 다른 카메라들은 포털 내의 입체 이미지들의 제1 세트를 나타내는 장면을 뷰잉하는 사용자의 2개의 눈들에 대응하는, 방법.
88. 실시예 87에 있어서, 입체 이미지들의 제1 세트는 입체 이미지들의 제2 세트를 캡처하는 2개의 다른 카메라들과는 상이한 위치로부터의 2개의 카메라들로부터 캡처되는, 방법.
89. 실시예 83에 있어서, 입체 이미지들의 제1 세트는 3D 가상 세계에서 2개의 가상 카메라들로부터 캡처되는, 방법.
90. 실시예 83에 있어서, 입체 이미지들의 제1 세트는 실세계에서 2개의 카메라들로부터 캡처되는, 방법.
91. 가상 및/또는 증강 현실 디스플레이 시스템으로서,
가상 및/또는 증강 현실 환경을 캡처하기 위한 카메라; 및
데이터를 프로세싱하기 위한 모듈을 포함하고, 모듈은 메모리에 저장되고, 모듈은 실행될 때, 입체 이미지들의 제1 세트를 입체 이미지들의 제2 세트에 배치하는 프로세스를 수행하는, 가상 및/또는 증강 현실 디스플레이 시스템.
92. 실시예 91에 있어서, 모듈은 실행될 때, 가상 및/또는 증강 현실 디바이스를 통해 입체 이미지들의 제2 세트를 디스플레이하는 것을 더 포함하는 프로세스를 수행하는, 가상 및/또는 증강 현실 디스플레이 시스템.
93. 실시예 91에 있어서, 입체 이미지들의 제1 세트는 입체 이미지들의 제2 세트 내의 포털에 배치되는, 가상 및/또는 증강 현실 디스플레이 시스템.
94. 실시예 91에 있어서, 입체 이미지들의 제1 세트는, 좌측 눈 관점에서 2D 이미지들을 캡처하는 제1 카메라 및 우측 눈 관점에서 2D 이미지들을 캡처하는 제2 카메라에 의해 캡처되는, 가상 및/또는 증강 현실 디스플레이 시스템.
95. 실시예 91에 있어서, 입체 이미지들의 제2 세트는 2개의 다른 카메라들에 의해 캡처되고, 2개의 다른 카메라들은 입체 이미지들의 제2 세트를 캡처하고, 2개의 다른 카메라들은 포털 내의 입체 이미지들의 제1 세트를 나타내는 장면을 뷰잉하는 사용자의 2개의 눈들에 대응하는, 가상 및/또는 증강 현실 디스플레이 시스템.
96. 실시예 95에 있어서, 입체 이미지들의 제1 세트는 입체 이미지들의 제2 세트를 캡처하는 2개의 다른 카메라들과는 상이한 위치로부터의 2개의 카메라들로부터 캡처되는, 가상 및/또는 증강 현실 디스플레이 시스템.
97. 실시예 91에 있어서, 입체 이미지들의 제1 세트는 3D 가상 세계에서 2개의 가상 카메라들로부터 캡처되는, 가상 및/또는 증강 현실 디스플레이 시스템.
98. 실시예 91에 있어서, 입체 이미지들의 제1 세트는 실세계에서 2개의 카메라들로부터 캡처되는, 가상 및/또는 증강 현실 디스플레이 시스템.
99. 방법으로서,
2개의 입력 이미지들을 식별하는 단계 ― 하나의 입력 이미지는 좌측 눈 관점에 대응하고 제2 입력 이미지는 우측 눈에 대응함 ―; 및
2개의 입력 이미지들을 최종 3D 렌더링 세계 내의 특정 위치에 배치하는 단계를 포함하는, 방법.
100. 실시예 99에 있어서, 가상 및/또는 증강 현실 디바이스를 통해 최종 3D 렌더링 세계를 디스플레이하는 단계를 더 포함하는, 방법.
101. 실시예 99에 있어서, 특정 위치는 최종 3D 렌더링 세계 내의 포털인, 방법.
102. 실시예 99에 있어서, 2개의 입력 이미지들은, 좌측 눈 관점에서 2D 이미지들을 캡처하는 제1 카메라 및 우측 눈 관점에서 2D 이미지들을 캡처하는 제2 카메라에 의해 캡처되는, 방법.
103. 실시예 99에 있어서, 최종 3D 렌더링 세계는 2개의 다른 카메라들에 의해 캡처되고, 2개의 다른 카메라들은 최종 3D 렌더링 세계를 캡처하고, 2개의 다른 카메라들은 포털 내의 2개의 입력 이미지들을 나타내는 장면을 뷰잉하는 사용자의 2개의 눈들에 대응하는, 방법.
104. 실시예 103에 있어서, 2개의 입력 이미지들은 최종 3D 렌더링 세계를 캡처하는 2개의 다른 카메라들과는 상이한 위치로부터의 2개의 카메라들로부터 캡처되는, 방법.
105. 실시예 99에 있어서, 2개의 입력 이미지들은 3D 가상 세계에서 2개의 가상 카메라들로부터 캡처되는, 방법.
106. 실시예 99에 있어서, 2개의 입력 이미지들은 실세계에서 2개의 카메라들로부터 캡처되는, 방법.
107. 가상 및/또는 증강 현실 디스플레이 시스템으로서,
가상 및/또는 증강 현실 환경을 캡처하기 위한 카메라; 및
데이터를 프로세싱하기 위한 모듈을 포함하고, 모듈은 메모리에 저장되고, 모듈은, 실행될 때,
2개의 입력 이미지들을 식별하는 프로세스 ― 하나의 입력 이미지는 좌측 눈 관점에 대응하고 제2 입력 이미지는 우측 눈에 대응함 ―, 및
2개의 입력 이미지들을 최종 3D 렌더링 세계 내의 특정 위치에 배치하는 프로세스를 수행하는, 가상 및/또는 증강 현실 디스플레이 시스템.
108. 실시예 107에 있어서, 모듈은 실행될 때, 가상 및/또는 증강 현실 디바이스를 통해 최종 3D 렌더링 세계를 디스플레이하는 것을 더 포함하는 프로세스를 수행하는, 가상 및/또는 증강 현실 디스플레이 시스템.
109. 실시예 107에 있어서, 특정 위치는 최종 3D 렌더링 세계 내의 포털인, 가상 및/또는 증강 현실 디스플레이 시스템.
110. 실시예 107에 있어서, 2개의 입력 이미지들은, 좌측 눈 관점에서 2D 이미지들을 캡처하는 제1 카메라 및 우측 눈 관점에서 2D 이미지들을 캡처하는 제2 카메라에 의해 캡처되는, 가상 및/또는 증강 현실 디스플레이 시스템.
111. 실시예 107에 있어서, 최종 3D 렌더링 세계는 2개의 다른 카메라들에 의해 캡처되고, 2개의 다른 카메라들은 최종 3D 렌더링 세계를 캡처하고, 2개의 다른 카메라들은 포털 내의 2개의 입력 이미지들을 나타내는 장면을 뷰잉하는 사용자의 2개의 눈들에 대응하는, 가상 및/또는 증강 현실 디스플레이 시스템.
112. 실시예 111에 있어서, 2개의 입력 이미지들은 최종 3D 렌더링 세계를 캡처하는 2개의 다른 카메라들과는 상이한 위치로부터의 2개의 카메라들로부터 캡처되는, 가상 및/또는 증강 현실 디스플레이 시스템.
113. 실시예 107에 있어서, 2개의 입력 이미지들은 3D 가상 세계에서 2개의 가상 카메라들로부터 캡처되는, 가상 및/또는 증강 현실 디스플레이 시스템.
114. 실시예 107에 있어서, 2개의 입력 이미지들은 실세계에서 2개의 카메라들로부터 캡처되는, 가상 및/또는 증강 현실 디스플레이 시스템.
115. 방법으로서,
3D 데이터 입력을 식별하는 단계; 및
3D 데이터 입력을 가상 최종 3D 렌더링 세계 내의 위치에 배치하는 단계를 포함하는, 방법.
116. 실시예 115에 있어서, 가상 및/또는 증강 현실 디바이스를 통해 가상 최종 3D 렌더링 세계를 디스플레이하는 단계를 더 포함하는, 방법.
117. 실시예 115에 있어서, 위치는 가상 최종 3D 렌더링 세계 내의 포털인, 방법.
118. 실시예 115에 있어서, 3D 데이터 입력은, 좌측 눈 관점에서 2D 이미지들을 캡처하는 제1 카메라 및 우측 눈 관점에서 2D 이미지들을 캡처하는 제2 카메라에 의해 캡처되는, 방법.
119. 실시예 115에 있어서, 가상 최종 3D 렌더링 세계는 2개의 다른 카메라들에 의해 캡처되고, 2개의 다른 카메라들은 가상 최종 3D 렌더링 세계를 캡처하고, 2개의 다른 카메라들은 포털 내의 3D 데이터 입력을 나타내는 장면을 뷰잉하는 사용자의 2개의 눈들에 대응하는, 방법.
120. 실시예 119에 있어서, 3D 데이터 입력은 가상 최종 3D 렌더링 세계를 캡처하는 2개의 다른 카메라들과는 상이한 위치로부터의 2개의 카메라들로부터 캡처되는, 방법.
121. 실시예 115에 있어서, 3D 데이터 입력은 3D 가상 세계에서 2개의 가상 카메라들로부터 캡처되는, 방법.
122. 실시예 115에 있어서, 3D 데이터 입력은 실세계에서 2개의 카메라들로부터 캡처되는, 방법.
123. 가상 및/또는 증강 현실 디스플레이 시스템으로서,
가상 및/또는 증강 현실 환경을 캡처하기 위한 카메라; 및
데이터를 프로세싱하기 위한 모듈을 포함하고, 모듈은 메모리에 저장되고, 모듈은, 실행될 때,
3D 데이터 입력을 식별하는 프로세스, 및
3D 데이터 입력을 가상 최종 3D 렌더링 세계 내의 위치에 배치하는 프로세스를 수행하는, 가상 및/또는 증강 현실 디스플레이 시스템.
124. 실시예 123에 있어서, 모듈은 실행될 때, 가상 및/또는 증강 현실 디바이스를 통해 가상 최종 3D 렌더링 세계를 디스플레이하는 것을 더 포함하는 프로세스를 수행하는, 가상 및/또는 증강 현실 디스플레이 시스템.
125. 실시예 123에 있어서, 위치는 가상 최종 3D 렌더링 세계 내의 포털인, 가상 및/또는 증강 현실 디스플레이 시스템.
126. 실시예 123에 있어서, 3D 데이터 입력은, 좌측 눈 관점에서 2D 이미지들을 캡처하는 제1 카메라 및 우측 눈 관점에서 2D 이미지들을 캡처하는 제2 카메라에 의해 캡처되는, 가상 및/또는 증강 현실 디스플레이 시스템.
127. 실시예 123에 있어서, 가상 최종 3D 렌더링 세계는 2개의 다른 카메라들에 의해 캡처되고, 2개의 다른 카메라들은 가상 최종 3D 렌더링 세계를 캡처하고, 2개의 다른 카메라들은 포털 내의 3D 데이터 입력을 나타내는 장면을 뷰잉하는 사용자의 2개의 눈들에 대응하는, 가상 및/또는 증강 현실 디스플레이 시스템.
128. 실시예 127에 있어서, 2개의 입력 이미지들은 최종 3D 렌더링 세계를 캡처하는 2개의 다른 카메라들과는 상이한 위치로부터의 2개의 카메라들로부터 캡처되는, 가상 및/또는 증강 현실 디스플레이 시스템.
129. 실시예 123에 있어서, 3D 데이터 입력은 3D 가상 세계에서 2개의 가상 카메라들로부터 캡처되는, 가상 및/또는 증강 현실 디스플레이 시스템.
130. 실시예 123에 있어서, 3D 데이터 입력은 실세계에서 2개의 카메라들로부터 캡처되는, 가상 및/또는 증강 현실 디스플레이 시스템.
131. 비디오 파일 포맷으로서,
하나 이상의 애니메이션 스트림들;
데이터 저장부; 및
비디오 스트림 또는 오디오 스트림 중 적어도 하나를 포함하는, 비디오 파일 포맷.
132. 실시예 131에 있어서, 데이터 저장부는,
하나 이상의 제어 데이터; 및
하나 이상의 3D 모델들을 포함하는, 비디오 파일 포맷.
132a. 실시예 131에 있어서, 데이터 저장부는,
하나 이상의 텍스처들; 및
하나 이상의 자료들을 포함하는, 비디오 파일 포맷.
133. 실시예 132에 있어서, 제어 데이터는 비디오 파일 포맷을 판독하는 애플리케이션이 먼저 액세스될 때 메모리에 완전히 로딩되는, 비디오 파일 포맷.
134. 실시예 133에 있어서, 제어 스트림은, 제어 데이터가 메모리에 완전히 로딩될 때 데이터 저장부로부터의 하나 이상의 제어 데이터로부터 메모리에 미리 로딩되는, 비디오 파일 포맷.
134a. 실시예 134에 있어서, 제어 스트림은 완전한 스크립팅 언어인, 비디오 파일 포맷.
135. 실시예 134에 있어서, 제어 스트림은 비디오 스트림들 또는 오디오 스트림들보다 타임라인에 대응하는 시간을 더 미리 보도록 구성되는, 비디오 파일 포맷.
136. 실시예 134에 있어서, 제어 스트림은 비디오의 타임라인 내의 적절한 시간에 재생하기 위한 모델 및 애니메이션의 조합을 결정하기 위해 커맨드들 및 간단한 로직 게이트들을 포함하는, 비디오 파일.
137. 실시예 136에 있어서, 비디오의 타임라인 내의 적절한 시간은 비디오 스트림 및 오디오 스트림의 대응하는 시간에 대응하는, 비디오 파일 포맷.
138. 실시예 133에 있어서, 제어 스트림은 키 프레임들을 포함하는, 비디오 파일 포맷.
139. 실시예 131에 있어서, 애니메이션 스트림, 비디오 스트림 및 오디오 스트림은 하나의 키 프레임을 미리 보고 되돌아 보도록 구성되는, 비디오 파일 포맷.
140. 실시예 131에 있어서, 하나 이상의 애니메이션 스트림들은 하나 이상의 3D 모델들과 연관된 애니메이션 명령들에 대응하는, 비디오 파일 포맷.
141. 실시예 131에 있어서, 하나 이상의 애니메이션 스트림들의 각각의 애니메이션 스트림은 데이터 저장부의 3D 모델, 텍스처 또는 자료 중 적어도 하나에 대응하는, 비디오 파일 포맷.
142. 방법으로서,
비디오의 비디오 파일을 수신하는 단계 ― 비디오 파일은, 하나 이상의 애니메이션 스트림들; 제어 데이터를 포함하는 데이터 저장부; 및 비디오 스트림 또는 오디오 스트림 중 적어도 하나를 포함함 ―;
제어 데이터 및 타임라인 제어기로부터 제어 스트림을 동적으로 생성하는 단계;
데이터 저장부로부터 수신된 3D 오브젝트의 모델을 로딩하는 단계; 및
3D 오브젝트를 하나 이상의 애니메이션 스트림들 중 일 애니메이션 스트림에 부착하는 단계를 포함하는, 방법.
143. 실시예 142에 있어서, 하나 이상의 애니메이션 스트림들은 데이터 저장부 내에 저장된 개개의 3D 모델들에 대응하는, 방법.
144. 실시예 142에 있어서, 하나 이상의 애니메이션 스트림들은 비디오에 대한 3D 오브젝트들의 움직임들, 배향 및 포지션들을 제어하는, 방법.
145. 실시예 142에 있어서, 3D 오브젝트의 모델은, 제어 스트리밍이 비디오 스트림들의 시간에서 미리 보고 3D 오브젝트가 디스플레이될 필요가 있을 때를 예상하는 것에 적어도 부분적으로 기초하여 로딩되는, 방법.
146. 실시예 145에 있어서, 모델을 로딩하기 위한 리드 시간이 모델의 크기, 네트워크 대역폭, 또는 사용자의 가상 및/또는 증강 현실 시스템의 프로세싱 능력 중 하나에 적어도 기초한다고 결정하는 단계를 더 포함하는, 방법.
147. 실시예 142에 있어서, 가상 및/또는 증강 현실 디바이스를 통해 비디오를 디스플레이하는 단계를 더 포함하는, 방법.
148. 실시예 142에 있어서, 데이터 저장부는 비디오 파일이 수신될 때 메모리에 완전히 로딩되는, 방법.
149. 실시예 142에 있어서, 제어 스트림은 제어 스트림이 생성될 때 메모리에 완전히 로딩되는, 방법.
150. 실시예 142에 있어서, 비디오는 입체 3D 비디오인, 방법.
151. 혼합 현실 비디오 플레이어를 구현하는 컴퓨터 시스템으로서,
프로그램 코드 명령들의 세트를 실행하기 위한 컴퓨터 프로세서; 및
프로그램 코드 명령들을 홀딩하는 메모리를 포함하고, 프로그램 코드 명령들은,
비디오의 비디오 파일을 수신하는 것 ― 비디오 파일은, 하나 이상의 애니메이션 스트림들, 제어 데이터를 포함하는 데이터 저장부, 및 비디오 스트림 또는 오디오 스트림 중 적어도 하나를 포함함 ―,
제어 데이터 및 타임라인 제어기로부터 제어 스트림을 동적으로 생성하는 것,
데이터 저장부로부터 수신된 3D 오브젝트의 모델을 로딩하는 것, 및
3D 오브젝트를 하나 이상의 애니메이션 스트림들 중 일 애니메이션 스트림에 부착하는 것을 수행하기 위한 프로그램 코드를 포함하는, 컴퓨터 시스템.
152. 실시예 151에 있어서, 하나 이상의 애니메이션 스트림들은 데이터 저장부 내에 저장된 개개의 3D 모델들에 대응하는, 컴퓨터 시스템.
153. 실시예 151에 있어서, 하나 이상의 애니메이션 스트림들은 비디오에 대한 3D 오브젝트들의 움직임들, 배향 및 포지션들을 제어하는, 컴퓨터 시스템.
154. 실시예 151에 있어서, 3D 오브젝트의 모델은, 제어 스트리밍이 비디오 스트림들의 시간에서 미리 보고 3D 오브젝트가 디스플레이될 필요가 있을 때를 예상하는 것에 적어도 부분적으로 기초하여 로딩되는, 컴퓨터 시스템.
155. 실시예 154에 있어서, 프로그램 코드 명령들은, 모델을 로딩하기 위한 리드 시간이 모델의 크기, 네트워크 대역폭, 또는 사용자의 가상 및/또는 증강 현실 시스템의 프로세싱 능력 중 하나에 적어도 기초한다고 결정하는 것을 추가로 수행하기 위한 프로그램 코드를 포함하는, 컴퓨터 시스템.
156. 실시예 151에 있어서, 프로그램 코드 명령들은 가상 및/또는 증강 현실 디바이스를 통해 비디오를 디스플레이하는 것을 추가로 수행하기 위한 프로그램 코드를 포함하는, 컴퓨터 시스템.
157. 실시예 151에 있어서, 데이터 저장부는 비디오 파일이 수신될 때 메모리에 완전히 로딩되는, 컴퓨터 시스템.
158. 실시예 151에 있어서, 제어 스트림은 제어 스트림이 생성될 때 메모리에 완전히 로딩되는, 컴퓨터 시스템.
159. 실시예 151에 있어서, 비디오는 입체 3D 비디오인, 컴퓨터 시스템.
160. 방법으로서,
비디오의 비디오 파일을 수신하는 단계 ― 비디오 파일은, 하나 이상의 애니메이션 스트림들; 제어 데이터를 포함하는 데이터 저장부; 및 비디오 스트림 또는 오디오 스트림 중 적어도 하나를 포함함 ―;
제어 데이터 및 타임라인 제어기로부터 제어 스트림을 동적으로 생성하는 단계;
비디오의 일 시점에 사용자에게 디스플레이되는 질문에 대답하는 사용자 상호작용을 요청하는 단계;
사용자 상호작용을 통해 질문에 대한 대답을 수신하는 단계;
대답을 타임라인 제어기에 통지하는 단계;
대답에 대응하는 비디오의 적절한 부분으로 스킵하는 단계; 및
적절한 부분으로부터 비디오를 디스플레이하는 단계를 포함하는, 방법.
161. 실시예 160에 있어서, 가상 및/또는 증강 현실 디바이스를 통해 비디오를 디스플레이하는 단계를 더 포함하는, 방법.
162. 실시예 160에 있어서, 데이터 저장부는 비디오 파일이 수신될 때 메모리에 완전히 로딩되는, 방법.
163. 실시예 160에 있어서, 제어 스트림은 제어 스트림이 생성될 때 메모리에 완전히 로딩되는, 방법.
164. 실시예 160에 있어서, 비디오는 입체 3D 비디오인, 방법.
165. 실시예 160에 있어서, 제어 스트림이 비디오의 시점에서 언제 사용자에게 질문을 디스플레이할지를 제어하는 것은 데이터 저장부로부터의 데이터에 적어도 부분적으로 기초하는, 방법.
166. 실시예 160에 있어서, 사용자 상호작용은 머리 포즈, 눈 추적, 눈 응시, 사용자의 손 제스처들, 토템 제스처들 또는 오브젝트 인식기 중 적어도 하나를 포함하는, 방법.
167. 실시예 160에 있어서, 타임라인 제어기는 비디오 스트림의 포지션을 제어하는, 방법.
168. 실시예 160에 있어서, 수신된 대답에 적어도 부분적으로 기초하여 런타임 상호작용 데이터와 함께 비디오의 상태를 저장하는 단계를 더 포함하는, 방법.
169. 실시예 160에 있어서, 사용자에게 디스플레이되는 질문은 비디오의 스토리라인이 어떻게 종료될 수 있는지를 변경하는 질문들에 대응하는, 방법.
170. 혼합 현실 비디오 플레이어를 구현하는 컴퓨터 시스템으로서,
프로그램 코드 명령들의 세트를 실행하기 위한 컴퓨터 프로세서; 및
프로그램 코드 명령들을 홀딩하는 메모리를 포함하고, 프로그램 코드 명령들은,
비디오의 비디오 파일을 수신하는 것 ― 비디오 파일은, 하나 이상의 애니메이션 스트림들; 제어 데이터를 포함하는 데이터 저장부; 및 비디오 스트림 또는 오디오 스트림 중 적어도 하나를 포함함 ―;
제어 데이터 및 타임라인 제어기로부터 제어 스트림을 동적으로 생성하는 것;
비디오의 일 시점에 사용자에게 디스플레이되는 질문에 대답하는 사용자 상호작용을 요청하는 것;
사용자 상호작용을 통해 질문에 대한 대답을 수신하는 것;
대답을 타임라인 제어기에 통지하는 것;
대답에 대응하는 비디오의 적절한 부분으로 스킵하는 것; 및
적절한 부분으로부터 비디오를 디스플레이하는 것을 수행하기 위한 프로그램 코드를 포함하는, 컴퓨터 시스템.
171. 실시예 170에 있어서, 프로그램 코드 명령들은 가상 및/또는 증강 현실 디바이스를 통해 비디오를 디스플레이하는 것을 추가로 수행하기 위한 프로그램 코드를 포함하는, 컴퓨터 시스템.
172. 실시예 170에 있어서, 데이터 저장부는 비디오 파일이 수신될 때 메모리에 완전히 로딩되는, 컴퓨터 시스템.
173. 실시예 170에 있어서, 제어 스트림은 제어 스트림이 생성될 때 메모리에 완전히 로딩되는, 컴퓨터 시스템.
174. 실시예 170에 있어서, 비디오는 입체 3D 비디오인, 컴퓨터 시스템.
175. 실시예 170에 있어서, 제어 스트림이 비디오의 시점에서 언제 사용자에게 질문을 디스플레이할지를 제어하는 것은 데이터 저장부로부터의 데이터에 적어도 부분적으로 기초하는, 컴퓨터 시스템.
176. 실시예 170에 있어서, 사용자 상호작용은 머리 포즈, 눈 추적, 눈 응시, 사용자의 손 제스처들, 토템 제스처들 또는 오브젝트 인식기 중 적어도 하나를 포함하는, 컴퓨터 시스템.
177. 실시예 170에 있어서, 타임라인 제어기는 비디오 스트림의 포지션을 제어하는, 컴퓨터 시스템.
178. 실시예 170에 있어서, 프로그램 코드 명령들은 수신된 대답에 적어도 부분적으로 기초하여 런타임 상호작용 데이터와 함께 비디오의 상태를 저장하는 것을 추가로 수행하기 위한 프로그램 코드를 포함하는, 컴퓨터 시스템.
179. 실시예 170에 있어서, 사용자에게 디스플레이되는 질문은 비디오의 스토리라인이 어떻게 종료될 수 있는지를 변경하는 질문들에 대응하는, 컴퓨터 시스템.
180. 가상 및/또는 증강 현실 환경에서 환경 인식 3D 비디오를 디스플레이하는 컴퓨터 구현 방법으로서,
3D 비디오를 식별하는 단계;
하나 이상의 센서들로부터, 사용자 환경의 환경 정보를 수신하는 단계 ― 환경 정보는 환경 내의 오브젝트들을 식별함 ―; 및
3D 비디오의 일부를 환경으로부터 식별된 하나 이상의 오브젝트들 상에 렌더링하는 단계를 포함하는, 방법.
181. 실시예 180에 있어서, 3D 비디오는 입체 3D 비디오인, 방법.
182. 실시예 180에 있어서, 환경은 사용자의 물리적 환경인, 방법.
183. 실시예 180에 있어서, 하나 이상의 센서들은 물리적 환경의 장면 정보를 캡처하기 위한 하나 이상의 카메라들을 포함하는, 방법.
184. 실시예 180에 있어서,
하나 이상의 센서들로부터 캡처된 장면 정보를 해석하는 단계; 및
환경으로부터 하나 이상의 엘리먼트들을 검출 및 등록함으로써 환경의 하나 이상의 엘리먼트들을 맵핑하는 단계를 더 포함하는, 방법.
185. 실시예 180에 있어서, 3D 비디오는 제어 데이터를 포함하는 비디오 파일 포맷을 갖고, 제어 데이터는 환경으로부터 식별된 하나 이상의 오브젝트들 상에 3D 비디오의 일부를 디스플레이하도록 비디오 플레이어에 명령하는, 방법.
185a. 실시예 185에 있어서, 제어 데이터는 3D 비디오 내의 그리고 3D 비디오 외부의 오브젝트들 및 기능들을 제어하기 위한 제어 커맨드들의 세트를 포함하는, 방법.
185b. 실시예 185a에 있어서, 제어 커맨드들(예를 들어, 제어 커맨드들의 세트)은 확장가능, 업데이트가능 또는 동적 중 적어도 하나인, 방법.
185c. 실시예 185b에 있어서, 제어 커맨드는, 3D 비디오의 속도를 변경하는 것, 3D 비디오의 시작 시에 사용자 환경의 희미한 조명에 대한 사용자 프롬프트를 제공하는 것, 3D 비디오의 시작 시에 피자 식당에 전화거는 것, 또는 사용자의 눈 응시에 적어도 부분적으로 기초하여 3D 비디오를 상이하게 재생하는 것 중 적어도 하나를 포함하는, 방법.
185d. 실시예 180에 있어서, 3D 비디오는 3D 영화이고, 3D 영화는 프로그래밍 언어를 포함하는, 방법.
186. 가상 및/또는 증강 현실 디스플레이 시스템으로서,
가상 및/또는 증강 현실 환경을 캡처하기 위한 카메라; 및
데이터를 프로세싱하기 위한 모듈을 포함하고, 모듈은 메모리에 저장되고, 모듈은, 실행될 때,
3D 비디오를 식별하는 프로세스,
하나 이상의 센서들로부터, 사용자 환경의 환경 정보를 수신하는 프로세스 ― 환경 정보는 환경 내의 오브젝트들을 식별함 ―, 및
3D 비디오의 일부를 환경으로부터 식별된 하나 이상의 오브젝트들 상에 렌더링하는 프로세스를 수행하는, 가상 및/또는 증강 현실 디스플레이 시스템.
187. 실시예 186에 있어서, 3D 비디오는 입체 3D 비디오인, 가상 및/또는 증강 현실 디스플레이 시스템.
188. 실시예 186에 있어서, 3D 비디오는 제어 데이터를 포함하는 비디오 파일 포맷을 갖고, 제어 데이터는 사용자에 의해 선택된 결정들에 적어도 부분적으로 기초하여 3D 비디오의 부분들을 렌더링하도록 비디오 플레이어에 명령하는, 가상 및/또는 증강 현실 디스플레이 시스템.
189. 실시예 186에 있어서, 사용자로부터 수신된 하나 이상의 상호작용들은 머리 포즈, 눈 추적 제스처들, 토템 제스처들 또는 오브젝트 인식기 중 적어도 하나를 포함하는, 가상 및/또는 증강 현실 디스플레이 시스템.
190. 실시예 186에 있어서, 사용자로부터 수신된 하나 이상의 상호작용들로부터의 상호작용은 3D 비디오를 3D 비디오의 상이한 부분으로 점프시키는, 가상 및/또는 증강 현실 디스플레이 시스템.
191. 가상 및/또는 증강 현실 환경에서 상호작용적 3D 비디오를 디스플레이하는 컴퓨터 구현 방법으로서,
3D 비디오를, 결정 노드들에 의해 주기적으로 인터럽트되는 비-실행가능 데이터의 스트림으로서 식별하는 단계;
사용자에 의해 선택된 결정들에 대응하는 입력으로서 사용자로부터 하나 이상의 상호작용들을 수신하는 단계; 및
사용자에 의해 선택된 결정들에 적어도 기초하여 3D 비디오를 렌더링하는 단계를 포함하는, 방법.
192. 실시예 191에 있어서, 3D 비디오는 입체 3D 비디오인, 방법.
193. 실시예 191에 있어서, 3D 비디오는 제어 데이터를 포함하는 비디오 파일 포맷을 갖고, 제어 데이터는 사용자에 의해 선택된 결정들에 적어도 부분적으로 기초하여 3D 비디오의 부분들을 렌더링하도록 비디오 플레이어에 명령하는, 방법.
194. 실시예 191에 있어서, 사용자로부터 수신된 하나 이상의 상호작용들은 머리 포즈, 눈 추적 제스처들, 토템 제스처들 또는 오브젝트 인식기 중 적어도 하나를 포함하는, 방법.
195. 실시예 191에 있어서, 사용자로부터 수신된 하나 이상의 상호작용들로부터의 상호작용은 3D 비디오를 3D 비디오의 상이한 부분으로 점프시키는, 방법.
196. 가상 및/또는 증강 현실 디스플레이 시스템으로서,
가상 및/또는 증강 현실 환경을 캡처하기 위한 카메라; 및
데이터를 프로세싱하기 위한 모듈을 포함하고, 모듈은 메모리에 저장되고, 모듈은, 실행될 때,
3D 비디오를, 결정 노드들에 의해 주기적으로 인터럽트되는 비-실행가능 데이터의 스트림으로서 식별하는 프로세스,
사용자에 의해 선택된 결정들에 대응하는 입력으로서 사용자로부터 하나 이상의 상호작용들을 수신하는 프로세스, 및
사용자에 의해 선택된 결정들에 적어도 기초하여 3D 비디오를 렌더링하는 프로세스를 수행하는, 가상 및/또는 증강 현실 디스플레이 시스템.
197. 실시예 196에 있어서, 3D 비디오는 입체 3D 비디오인, 가상 및/또는 증강 현실 디스플레이 시스템.
198. 실시예 196에 있어서, 3D 비디오는 제어 데이터를 포함하는 비디오 파일 포맷을 갖고, 제어 데이터는 사용자에 의해 선택된 결정들에 적어도 부분적으로 기초하여 3D 비디오의 부분들을 렌더링하도록 비디오 플레이어에 명령하는, 가상 및/또는 증강 현실 디스플레이 시스템.
199. 실시예 196에 있어서, 사용자로부터 수신된 하나 이상의 상호작용들은 머리 포즈, 눈 추적 제스처들, 토템 제스처들 또는 오브젝트 인식기 중 적어도 하나를 포함하는, 가상 및/또는 증강 현실 디스플레이 시스템.
200. 제196항에 있어서, 사용자로부터 수신된 하나 이상의 상호작용들로부터의 상호작용은 3D 비디오를 3D 비디오의 상이한 부분으로 점프시키는, 가상 및/또는 증강 현실 디스플레이 시스템.
201. 3D 오브젝트들을 디스플레이하기 위한 컴퓨터 구현 방법으로서,
3D 오브젝트를 표현하는 그래픽 데이터를 데이터베이스에 저장하는 단계;
2D 불투명 팬 뒤에 위치된 3D 오브젝트를 뷰잉하기 위한 뷰잉 애퍼처를 포함하는 2D 불투명 팬을 디스플레이하는 단계;
뷰잉 애퍼처를 통해 뷰잉가능한 3D 오브젝트의 제1 부분을 제1 관점에서 렌더링하는 단계;
뷰잉 애퍼처를 통해 뷰잉가능한 3D 오브젝트를 제2 뷰잉 관점에서 디스플레이하도록 하는 요청을 수신하는 단계;
뷰잉 애퍼처를 통해 뷰잉가능한 3D 오브젝트의 제2 부분을 제2 관점에서 렌더링하는 단계; 및
3D 오브젝트의 제2 부분을 제2 관점에서 디스플레이하는 단계를 포함하는, 방법.
202. 실시예 201에 있어서, 3D 오브젝트를 표현하는 그래픽 데이터는 전체 3D 오브젝트의 완전한 표현인, 방법.
203. 실시예 201에 있어서, 3D 오브젝트의 제1 부분의 렌더링은 제1 관점에서 3D 오브젝트의 시야에 대한 뷰잉 각도에 적어도 부분적으로 기초하는, 방법.
204. 실시예 201에 있어서, 3D 오브젝트의 제2 부분의 렌더링은 제2 관점에서 3D 오브젝트의 시야에 대한 뷰잉 각도에 적어도 부분적으로 기초하는, 방법.
205. 실시예 201에 있어서, 불투명 팬은 2D 불투명 팬 뒤에 위치된 복수의 3D 오브젝트들을 뷰잉하기 위한 복수의 뷰잉 애퍼처를 더 포함하는, 방법.
206. 실시예 205에 있어서, 복수의 3D 오브젝트들의 각각의 3D 오브젝트는 개개의 뷰잉 애퍼처 뒤에 위치되는, 방법.
207. 실시예 201에 있어서, 3D 오브젝트는 3D 아이콘인, 방법.
208. 실시예 207에 있어서, 뷰잉 애퍼처를 포함하는 2D 불투명 팬은 복수의 3D 아이콘들을 디스플레이하기 위한 아이콘 그리드인, 방법.
209. 실시예 201에 있어서, 3D 오브젝트는 사용자가 3D 오브젝트를 응시할 때 뷰잉 애퍼처를 통해 이동하는, 방법.
210. 실시예 201에 있어서, 3D 오브젝트는 사용자가 3D 오브젝트 상에 포커싱하고 있지 않을 때 2D 이미지로서 디스플레이되는, 방법.
211. 3D 오브젝트들을 디스플레이하기 위한 컴퓨터 시스템으로서,
프로그램 코드 명령들의 세트를 실행하기 위한 컴퓨터 프로세서; 및
프로그램 코드 명령들을 홀딩하는 메모리를 포함하고, 프로그램 코드 명령들은,
3D 오브젝트를 표현하는 그래픽 데이터를 데이터베이스에 저장하는 것;
2D 불투명 팬 뒤에 위치된 3D 오브젝트를 뷰잉하기 위한 뷰잉 애퍼처를 포함하는 2D 불투명 팬을 디스플레이하는 것;
뷰잉 애퍼처를 통해 뷰잉가능한 3D 오브젝트의 제1 부분을 제1 관점에서 렌더링하는 것;
뷰잉 애퍼처를 통해 뷰잉가능한 3D 오브젝트를 제2 뷰잉 관점에서 디스플레이하도록 하는 요청을 수신하는 것;
뷰잉 애퍼처를 통해 뷰잉가능한 3D 오브젝트의 제2 부분을 제2 관점에서 렌더링하는 것; 및
3D 오브젝트의 제2 부분을 제2 관점에서 디스플레이하는 것을 수행하기 위한 프로그램 코드를 포함하는, 컴퓨터 시스템.
212. 실시예 211에 있어서, 3D 오브젝트를 표현하는 그래픽 데이터는 전체 3D 오브젝트의 완전한 표현인, 컴퓨터 시스템.
213. 실시예 211에 있어서, 3D 오브젝트의 제1 부분의 렌더링은 제1 관점에서 3D 오브젝트의 시야에 대한 뷰잉 각도에 적어도 부분적으로 기초하는, 컴퓨터 시스템.
214. 실시예 211에 있어서, 3D 오브젝트의 제2 부분의 렌더링은 제2 관점에서 3D 오브젝트의 시야에 대한 뷰잉 각도에 적어도 부분적으로 기초하는, 컴퓨터 시스템.
215. 실시예 211에 있어서, 불투명 팬은 2D 불투명 팬 뒤에 위치된 복수의 3D 오브젝트들을 뷰잉하기 위한 복수의 뷰잉 애퍼처를 더 포함하는, 컴퓨터 시스템.
216. 실시예 215에 있어서, 복수의 3D 오브젝트들의 각각의 3D 오브젝트는 개개의 뷰잉 애퍼처 뒤에 위치되는, 컴퓨터 시스템.
217. 실시예 211에 있어서, 3D 오브젝트는 3D 아이콘인, 컴퓨터 시스템.
218. 실시예 217에 있어서, 뷰잉 애퍼처를 포함하는 2D 불투명 팬은 복수의 3D 아이콘들을 디스플레이하기 위한 아이콘 그리드인, 컴퓨터 시스템.
219. 실시예 211에 있어서, 3D 오브젝트는 사용자가 3D 오브젝트를 응시할 때 뷰잉 애퍼처를 통해 이동하는, 컴퓨터 시스템.
220. 실시예 211에 있어서, 3D 오브젝트는 사용자가 3D 오브젝트 상에 포커싱하고 있지 않을 때 2D 이미지로서 디스플레이되는, 컴퓨터 시스템.
221. 본원에 개시된 본 발명의 개념들 중 임의의 것에 따른 혼합 현실 시스템에서 가상 콘텐츠를 생성 및 디스플레이하기 위한 시스템, 방법, 및 컴퓨터 프로그램 제품.
시스템 아키텍처 개관
[0175] 도 10은 본 개시의 실시예들 중 하나 이상을 구현하기에 적합한 예시적인 컴퓨팅 시스템(1400)의 블록도이다. 컴퓨팅 시스템(1400)은, 서브시스템들 및 디바이스들, 예를 들어, 프로세서(1407), 메인 메모리(1408)(예를 들어, RAM), 정적 저장 디바이스(1409)(예를 들어, ROM), 디스크 드라이브(1410)(예를 들어, 자기 또는 광학), 통신 인터페이스(1414)(예를 들어, 모뎀 또는 이더넷 카드), 디스플레이(1411)(예를 들어, CRT 또는 LCD), 입력 디바이스(1412)(예를 들어, 키보드) 및 커서 제어부를 상호연결시키는, 정보를 통신하기 위한 버스(1406) 또는 다른 통신 메커니즘을 포함한다.
[0176] 일부 실시예들에 따르면, 컴퓨팅 시스템(1400)은 메인 메모리(1408)에 포함된 하나 이상의 명령들의 하나 이상의 시퀀스들을 실행하는 프로세서(1407)에 의한 특정 동작들을 수행한다. 이러한 명령들은 다른 컴퓨터 판독가능/사용가능 매체, 예를 들어, 정적 저장 디바이스(1409) 또는 디스크 드라이브(1410)로부터 메인 메모리(1408)로 판독될 수 있다. 대안적인 실시예들에서, 하드 와이어된 회로는 본 개시를 구현하기 위한 소프트웨어 명령들 대신에 또는 그와 결합하여 사용될 수 있다. 따라서, 실시예들은 하드웨어 회로 및/또는 소프트웨어의 임의의 특정 조합에 한정되지 않는다. 일 실시예에서, "로직"이라는 용어는 본 개시의 전부 또는 일부를 구현하기 위해 사용되는 소프트웨어 또는 하드웨어의 임의의 조합을 의미할 것이다.
[0177] 본 명세서에서 사용되는 바와 같은 "컴퓨터 판독가능 매체" 또는 "컴퓨터 사용가능 매체"라는 용어는 실행을 위해 프로세서(1407)에 명령들을 제공하는데 참여하는 임의의 매체를 지칭한다. 이러한 매체는, 비휘발성 매체들 및 휘발성 매체들을 포함하지만 이에 제한되는 것은 아닌 많은 형태들을 취할 수 있다. 비휘발성 매체들은 예를 들어 디스크 드라이브(1410)와 같은 광학 또는 자기 디스크들을 포함한다. 휘발성 매체는 메인 메모리(1408)와 같은 동적 메모리를 포함한다.
[0178] 컴퓨터 판독가능 매체들의 일반적인 형태들은 예를 들어 플로피 디스크, 플렉서블 디스크, 하드 디스크, 자기 테이프, 임의의 다른 자기 매체, CD-ROM, 임의의 다른 광학 매체, 펀치 카드들, 종이 테이프, 구멍들의 패턴들을 갖는 임의의 다른 물리적 매체, RAM, PROM, EPROM, FLASH-EPROM, 임의의 다른 메모리 칩 또는 카트리지, 또는 컴퓨터가 판독할 수 있는 임의의 다른 매체를 포함한다.
[0179] 일 실시예에서, 본 개시를 실시하기 위한 명령들의 시퀀스들의 실행은 단일 컴퓨팅 시스템(1400)에 의해 수행된다. 다른 실시예들에 따르면, 통신 링크(1415)(예를 들어, LAN, PTSN 또는 무선 네트워크)에 의해 커플링된 둘 이상의 컴퓨팅 시스템들(1400)은 서로 협력하여 본 개시를 실시하기 위해 요구되는 명령들의 시퀀스를 수행할 수 있다.
[0180] 컴퓨팅 시스템(1400)은 통신 인터페이스(1414)를 통한 통신 링크(1415)를 통해, 프로그램, 예를 들어, 애플리케이션 코드를 포함하는 메시지들, 데이터 및 명령들을 송신 및 수신할 수 있다. 수신된 프로그램 코드는 수신된 대로 프로세서(1407)에 의해 실행될 수 있고 그리고/또는 추후의 실행을 위해 디스크 드라이브(1410) 또는 다른 비휘발성 저장소에 저장될 수 있다. 컴퓨팅 시스템(1400)은 데이터 인터페이스(1433)를 통해 외부 저장 디바이스(1431) 상의 데이터베이스(1432)에 통신할 수 있다.
[0181] 상기 명세서에서, 본 개시는 그 특정 실시예들을 참조하여 설명되었다. 그러나, 본 개시의 더 넓은 사상 및 범위로부터 벗어남이 없이 본 발명에 대한 다양한 수정들 및 변화들이 행해질 수 있음은 자명할 것이다. 예를 들어, 전술된 프로세스 흐름들은 프로세스 액션들의 특정 순서화를 참조하여 설명된다. 그러나, 설명된 프로세스 액션들 중 많은 것의 순서화는 본 개시의 범위 또는 동작에 영향을 미치지 않고 변경될 수 있다. 따라서, 본 명세서 및 도면들은 제한적이기 보다는 예시적인 관점에서 간주되어야 한다.

Claims (21)

  1. 디스플레이 스크린의 표면을 넘어 확장되는 3D 비디오를 디스플레이하는 방법으로서,
    3D 비디오를 식별하는 단계;
    상기 3D 비디오에 대응하는 하나 이상의 3D 모델들을 생성하는 단계; 및
    상기 3D 비디오의 렌더링과 함께 적절한 트리거 시간에 상기 하나 이상의 3D 모델들을 렌더링하는 단계를 포함하는, 3D 비디오를 디스플레이하는 방법.
  2. 제1 항에 있어서,
    상기 3D 비디오는 입체 3D 비디오인, 3D 비디오를 디스플레이하는 방법.
  3. 제2 항에 있어서,
    상기 하나 이상의 3D 모델들은 애니메이션들로 생성되는, 3D 비디오를 디스플레이하는 방법.
  4. 제3 항에 있어서,
    상기 3D 비디오의 디스플레이 스크린 외부에 상기 하나 이상의 3D 모델들의 상기 애니메이션들을 디스플레이하는 단계를 더 포함하는, 3D 비디오를 디스플레이하는 방법.
  5. 제4 항에 있어서,
    상기 하나 이상의 3D 모델들의 상기 애니메이션들은 상기 3D 비디오의 평면 표면을 빠져나가서 사용자의 3D 환경으로 나오는 것으로 나타나는, 3D 비디오를 디스플레이하는 방법.
  6. 제4 항에 있어서,
    상기 하나 이상의 3D 모델들의 상기 애니메이션들은 상기 3D 비디오의 비-평면 표면을 빠져나가서 사용자의 3D 환경으로 나오는 것으로 나타나는, 3D 비디오를 디스플레이하는 방법.
  7. 제1 항에 있어서,
    상기 하나 이상의 3D 모델들을 하나 이상의 비디오 팬(video pane)들 상에 렌더링하는 단계, 및
    상기 하나 이상의 비디오 팬들을 하나 이상의 뷰잉 배향들에 대해 동시에 디스플레이하는 단계를 더 포함하는, 3D 비디오를 디스플레이하는 방법.
  8. 제2 항에 있어서,
    상기 입체 3D 비디오는 상기 하나 이상의 3D 모델들과 함께 디스플레이되는, 3D 비디오를 디스플레이하는 방법.
  9. 제1 항에 있어서,
    상기 3D 비디오 및 상기 하나 이상의 3D 모델들의 렌더링에 깊이 정보가 팩터화되고, 상기 깊이 정보는 가상 및/또는 증강 현실 디바이스의 사용자로부터 가상 및/또는 증강 현실 환경 내에 디스플레이되는 개개의 하나 이상의 3D 모델들 및 상기 3D 비디오까지의 거리를 포함하는, 3D 비디오를 디스플레이하는 방법.
  10. 제1 항에 있어서,
    상기 3D 비디오는 제어 데이터를 포함하고, 상기 제어 데이터는 상기 3D 비디오의 렌더링과 함께 상기 적절한 트리거 시간에 상기 하나 이상의 3D 모델들을 렌더링하도록 비디오 플레이어에 명령하는, 3D 비디오를 디스플레이하는 방법.
  11. 제1 항에 있어서,
    상기 하나 이상의 3D 모델들의 렌더링은 복셀(Voxel) 기반 비디오 스트림에 적어도 부분적으로 기초하는, 3D 비디오를 디스플레이하는 방법.
  12. 제1 항 내지 제11 항 중 어느 한 항의 방법을 구현하기 위한 수단을 포함하는, 디스플레이 스크린의 표면을 넘어 확장되는 3D 비디오를 디스플레이하기 위한 디스플레이 시스템.
  13. 비디오 파일 포맷으로서,
    하나 이상의 애니메이션 스트림들;
    데이터 저장부; 및
    비디오 스트림 또는 오디오 스트림 중 적어도 하나를 포함하는, 비디오 파일 포맷.
  14. 방법으로서,
    비디오의 비디오 파일을 수신하는 단계 ― 상기 비디오 파일은, 하나 이상의 애니메이션 스트림들; 제어 데이터를 포함하는 데이터 저장부; 및 비디오 스트림 또는 오디오 스트림 중 적어도 하나를 포함함 ―;
    상기 제어 데이터 및 타임라인 제어기로부터 제어 스트림을 동적으로 생성하는 단계;
    상기 데이터 저장부로부터 수신된 3D 오브젝트의 모델을 로딩하는 단계; 및
    상기 3D 오브젝트를 상기 하나 이상의 애니메이션 스트림들 중 일 애니메이션 스트림에 부착하는 단계를 포함하는, 방법.
  15. 혼합 현실 비디오 플레이어를 구현하는 컴퓨터 시스템으로서,
    프로그램 코드 명령들의 세트를 실행하기 위한 컴퓨터 프로세서; 및
    상기 프로그램 코드 명령들을 홀딩하는 메모리를 포함하고, 상기 프로그램 코드 명령들은,
    비디오의 비디오 파일을 수신하는 것 ― 상기 비디오 파일은, 하나 이상의 애니메이션 스트림들, 제어 데이터를 포함하는 데이터 저장부, 및 비디오 스트림 또는 오디오 스트림 중 적어도 하나를 포함함 ―,
    상기 제어 데이터 및 타임라인 제어기로부터 제어 스트림을 동적으로 생성하는 것,
    상기 데이터 저장부로부터 수신된 3D 오브젝트의 모델을 로딩하는 것, 및
    상기 3D 오브젝트를 상기 하나 이상의 애니메이션 스트림들 중 일 애니메이션 스트림에 부착하는 것
    을 수행하기 위한 프로그램 코드를 포함하는, 컴퓨터 시스템.
  16. 방법으로서,
    비디오의 비디오 파일을 수신하는 단계 ― 상기 비디오 파일은, 하나 이상의 애니메이션 스트림들; 제어 데이터를 포함하는 데이터 저장부; 및 비디오 스트림 또는 오디오 스트림 중 적어도 하나를 포함함 ―;
    상기 제어 데이터 및 타임라인 제어기로부터 제어 스트림을 동적으로 생성하는 단계;
    상기 비디오의 일 시점에 사용자에게 디스플레이되는 질문에 대답하는 사용자 상호작용을 요청하는 단계;
    상기 사용자 상호작용을 통해 상기 질문에 대한 대답을 수신하는 단계;
    상기 대답을 타임라인 제어기에 통지하는 단계;
    상기 대답에 대응하는 상기 비디오의 적절한 부분으로 스킵하는 단계; 및
    상기 적절한 부분으로부터 상기 비디오를 디스플레이하는 단계를 포함하는, 방법.
  17. 혼합 현실 비디오 플레이어를 구현하는 컴퓨터 시스템으로서,
    프로그램 코드 명령들의 세트를 실행하기 위한 컴퓨터 프로세서; 및
    상기 프로그램 코드 명령들을 홀딩하는 메모리를 포함하고, 상기 프로그램 코드 명령들은,
    비디오의 비디오 파일을 수신하는 것 ― 상기 비디오 파일은, 하나 이상의 애니메이션 스트림들; 제어 데이터를 포함하는 데이터 저장부; 및 비디오 스트림 또는 오디오 스트림 중 적어도 하나를 포함함 ―;
    상기 제어 데이터 및 타임라인 제어기로부터 제어 스트림을 동적으로 생성하는 것;
    상기 비디오의 일 시점에 사용자에게 디스플레이되는 질문에 대답하는 사용자 상호작용을 요청하는 것;
    상기 사용자 상호작용을 통해 상기 질문에 대한 대답을 수신하는 것;
    상기 대답을 타임라인 제어기에 통지하는 것;
    상기 대답에 대응하는 상기 비디오의 적절한 부분으로 스킵하는 것; 및
    상기 적절한 부분으로부터 상기 비디오를 디스플레이하는 것
    을 수행하기 위한 프로그램 코드를 포함하는, 컴퓨터 시스템.
  18. 가상 및/또는 증강 현실 환경에서 환경 인식 3D 비디오를 디스플레이하는 방법으로서,
    3D 비디오를 식별하는 단계;
    하나 이상의 센서들로부터, 사용자 환경의 환경 정보를 수신하는 단계 ― 상기 환경 정보는 상기 환경 내의 오브젝트들을 식별함 ―; 및
    상기 3D 비디오의 일부를 상기 환경으로부터 식별된 하나 이상의 오브젝트들 상에 렌더링하는 단계를 포함하는, 환경 인식 3D 비디오를 디스플레이하는 방법.
  19. 가상 및/또는 증강 현실 디스플레이 시스템으로서,
    가상 및/또는 증강 현실 환경을 캡처하기 위한 카메라; 및
    데이터를 프로세싱하기 위한 모듈을 포함하고, 상기 모듈은 메모리에 저장되고, 상기 모듈은, 실행될 때,
    3D 비디오를 식별하는 프로세스;
    하나 이상의 센서들로부터, 사용자 환경의 환경 정보를 수신하는 프로세스 ― 상기 환경 정보는 상기 환경 내의 오브젝트들을 식별함 ―, 및
    상기 3D 비디오의 일부를 상기 환경으로부터 식별된 하나 이상의 오브젝트들 상에 렌더링하는 프로세스를 수행하는, 가상 및/또는 증강 현실 디스플레이 시스템.
  20. 가상 및/또는 증강 현실 환경에서 상호작용적 3D 비디오를 디스플레이하는 방법으로서,
    3D 비디오를, 결정 노드들에 의해 주기적으로 인터럽트되는 비-실행가능 데이터의 스트림으로서 식별하는 단계;
    사용자에 의해 선택된 결정들에 대응하는 입력으로서 상기 사용자로부터 하나 이상의 상호작용들을 수신하는 단계; 및
    상기 사용자에 의해 선택된 결정들에 적어도 기초하여 상기 3D 비디오를 렌더링하는 단계를 포함하는, 상호작용적 3D 비디오를 디스플레이하는 방법.
  21. 가상 및/또는 증강 현실 디스플레이 시스템으로서,
    가상 및/또는 증강 현실 환경을 캡처하기 위한 카메라; 및
    데이터를 프로세싱하기 위한 모듈을 포함하고, 상기 모듈은 메모리에 저장되고, 상기 모듈은, 실행될 때,
    3D 비디오를, 결정 노드들에 의해 주기적으로 인터럽트되는 비-실행가능 데이터의 스트림으로서 식별하는 프로세스,
    사용자에 의해 선택된 결정들에 대응하는 입력으로서 상기 사용자로부터 하나 이상의 상호작용들을 수신하는 프로세스, 및
    상기 사용자에 의해 선택된 결정들에 적어도 기초하여 상기 3D 비디오를 렌더링하는 프로세스를 수행하는, 가상 및/또는 증강 현실 디스플레이 시스템.
KR1020207020912A 2017-12-22 2018-12-19 가상, 증강 또는 혼합 현실 환경에서 3d 비디오들을 생성 및 디스플레이하기 위한 방법들 및 시스템 KR102557356B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020237023897A KR20230110832A (ko) 2017-12-22 2018-12-19 가상, 증강 또는 혼합 현실 환경에서 3d 비디오들을생성 및 디스플레이하기 위한 방법들 및 시스템

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201762610112P 2017-12-22 2017-12-22
US62/610,112 2017-12-22
US201862715199P 2018-08-06 2018-08-06
US62/715,199 2018-08-06
PCT/US2018/066442 WO2019126293A1 (en) 2017-12-22 2018-12-19 Methods and system for generating and displaying 3d videos in a virtual, augmented, or mixed reality environment

Related Child Applications (1)

Application Number Title Priority Date Filing Date
KR1020237023897A Division KR20230110832A (ko) 2017-12-22 2018-12-19 가상, 증강 또는 혼합 현실 환경에서 3d 비디오들을생성 및 디스플레이하기 위한 방법들 및 시스템

Publications (2)

Publication Number Publication Date
KR20200100765A true KR20200100765A (ko) 2020-08-26
KR102557356B1 KR102557356B1 (ko) 2023-07-18

Family

ID=66951617

Family Applications (2)

Application Number Title Priority Date Filing Date
KR1020237023897A KR20230110832A (ko) 2017-12-22 2018-12-19 가상, 증강 또는 혼합 현실 환경에서 3d 비디오들을생성 및 디스플레이하기 위한 방법들 및 시스템
KR1020207020912A KR102557356B1 (ko) 2017-12-22 2018-12-19 가상, 증강 또는 혼합 현실 환경에서 3d 비디오들을 생성 및 디스플레이하기 위한 방법들 및 시스템

Family Applications Before (1)

Application Number Title Priority Date Filing Date
KR1020237023897A KR20230110832A (ko) 2017-12-22 2018-12-19 가상, 증강 또는 혼합 현실 환경에서 3d 비디오들을생성 및 디스플레이하기 위한 방법들 및 시스템

Country Status (9)

Country Link
US (3) US10939084B2 (ko)
EP (1) EP3729242A4 (ko)
JP (3) JP7182632B2 (ko)
KR (2) KR20230110832A (ko)
CN (1) CN111684393A (ko)
AU (1) AU2018393019A1 (ko)
CA (1) CA3084670A1 (ko)
IL (3) IL311407A (ko)
WO (1) WO2019126293A1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102322968B1 (ko) * 2021-04-29 2021-11-09 주식회사 유토비즈 사용자의 손동작에 따른 명령 입력 장치 및 이를 이용한 명령 입력 방법
KR20230001377A (ko) * 2021-06-28 2023-01-04 주식회사 엘지유플러스 복셀(voxel) 타입의 볼류메트릭(volumetric) 컨텐츠를 처리하는 서버 및 멀티미디어 디바이스

Families Citing this family (63)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9332285B1 (en) * 2014-05-28 2016-05-03 Lucasfilm Entertainment Company Ltd. Switching modes of a media content item
US10372298B2 (en) 2017-09-29 2019-08-06 Apple Inc. User interface for multi-user communication session
CA3084670A1 (en) 2017-12-22 2019-06-27 Magic Leap, Inc. Methods and system for generating and displaying 3d videos in a virtual, augmented, or mixed reality environment
US11734477B2 (en) * 2018-03-08 2023-08-22 Concurrent Technologies Corporation Location-based VR topological extrusion apparatus
US10559269B2 (en) * 2018-03-30 2020-02-11 Panasonic Liquid Crystal Display Co., Ltd. Viewing position adapting multi-panel electronic display device
DK201870364A1 (en) 2018-05-07 2019-12-03 Apple Inc. MULTI-PARTICIPANT LIVE COMMUNICATION USER INTERFACE
US10818093B2 (en) * 2018-05-25 2020-10-27 Tiff's Treats Holdings, Inc. Apparatus, method, and system for presentation of multimedia content including augmented reality content
US10909375B2 (en) * 2018-08-08 2021-02-02 Mobilitie, Llc System and method for operation in an augmented reality display device
US11128792B2 (en) 2018-09-28 2021-09-21 Apple Inc. Capturing and displaying images with multiple focal planes
US11257272B2 (en) * 2019-04-25 2022-02-22 Lucid VR, Inc. Generating synthetic image data for machine learning
US11468611B1 (en) * 2019-05-16 2022-10-11 Apple Inc. Method and device for supplementing a virtual environment
US11366319B1 (en) * 2021-02-28 2022-06-21 Douglas Labs, Inc. Immersive viewing experience
CN117319645A (zh) 2019-08-23 2023-12-29 北京字节跳动网络技术有限公司 用于处理视频数据的方法、装置以及计算机可读存储介质
WO2021078177A1 (en) 2019-10-23 2021-04-29 Beijing Bytedance Network Technology Co., Ltd. Signaling for reference picture resampling
CN114600461A (zh) 2019-10-23 2022-06-07 北京字节跳动网络技术有限公司 用于多编解码工具的计算
WO2021096915A1 (en) * 2019-11-11 2021-05-20 Aveva Software, Llc Computerized system and method for an extended reality (xr) progressive visualization interface
US11557096B2 (en) * 2019-12-09 2023-01-17 At&T Intellectual Property I, L.P. Cognitive stimulation in vehicles
US11816757B1 (en) * 2019-12-11 2023-11-14 Meta Platforms Technologies, Llc Device-side capture of data representative of an artificial reality environment
US20230008125A1 (en) * 2019-12-16 2023-01-12 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Augmenting a view of a real-world environment with a view of a volumetric video object
US11510750B2 (en) * 2020-05-08 2022-11-29 Globus Medical, Inc. Leveraging two-dimensional digital imaging and communication in medicine imagery in three-dimensional extended reality applications
US11079913B1 (en) 2020-05-11 2021-08-03 Apple Inc. User interface for status indicators
US11887365B2 (en) * 2020-06-17 2024-01-30 Delta Electronics, Inc. Method for producing and replaying courses based on virtual reality and system thereof
US11373375B2 (en) 2020-08-27 2022-06-28 Micron Technology, Inc. Augmented reality product display
CN112188116B (zh) * 2020-08-29 2021-11-30 上海量明科技发展有限公司 基于对象的视频合成方法、客户端及系统
US11228750B1 (en) 2020-09-08 2022-01-18 Rovi Guides, Inc. Systems and methods for generating virtual reality scenes
US10952006B1 (en) 2020-10-20 2021-03-16 Katmai Tech Holdings LLC Adjusting relative left-right sound to provide sense of an avatar's position in a virtual space, and applications thereof
US11076128B1 (en) 2020-10-20 2021-07-27 Katmai Tech Holdings LLC Determining video stream quality based on relative position in a virtual space, and applications thereof
US11070768B1 (en) 2020-10-20 2021-07-20 Katmai Tech Holdings LLC Volume areas in a three-dimensional virtual conference space, and applications thereof
US10979672B1 (en) 2020-10-20 2021-04-13 Katmai Tech Holdings LLC Web-based videoconference virtual environment with navigable avatars, and applications thereof
US11095857B1 (en) 2020-10-20 2021-08-17 Katmai Tech Holdings LLC Presenter mode in a three-dimensional virtual conference space, and applications thereof
US11457178B2 (en) 2020-10-20 2022-09-27 Katmai Tech Inc. Three-dimensional modeling inside a virtual video conferencing environment with a navigable avatar, and applications thereof
US20220165024A1 (en) * 2020-11-24 2022-05-26 At&T Intellectual Property I, L.P. Transforming static two-dimensional images into immersive computer-generated content
US11431891B2 (en) 2021-01-31 2022-08-30 Apple Inc. User interfaces for wide angle video conference
CN112933606B (zh) * 2021-03-16 2023-05-09 天津亚克互动科技有限公司 游戏场景转换方法及装置、存储介质、计算机设备
US11184362B1 (en) 2021-05-06 2021-11-23 Katmai Tech Holdings LLC Securing private audio in a virtual conference, and applications thereof
US11743430B2 (en) 2021-05-06 2023-08-29 Katmai Tech Inc. Providing awareness of who can hear audio in a virtual conference, and applications thereof
US11893214B2 (en) 2021-05-15 2024-02-06 Apple Inc. Real-time communication user interface
US11907605B2 (en) 2021-05-15 2024-02-20 Apple Inc. Shared-content session user interfaces
US11449188B1 (en) 2021-05-15 2022-09-20 Apple Inc. Shared-content session user interfaces
CN113473180B (zh) * 2021-08-06 2024-01-30 北京博良胜合科技有限公司 一种基于无线的Cloud XR数据传输方法以及装置、存储介质、电子装置
US11812135B2 (en) 2021-09-24 2023-11-07 Apple Inc. Wide angle video conference
US11962867B2 (en) * 2021-11-04 2024-04-16 Tencent America LLC Asset reusability for lightfield/holographic media
CN114095772B (zh) * 2021-12-08 2024-03-12 广州方硅信息技术有限公司 连麦直播下的虚拟对象展示方法、系统及计算机设备
CN114360461A (zh) * 2022-03-14 2022-04-15 南京初芯集成电路有限公司 Tcon芯片及oled面板驱动架构
CN114791964B (zh) * 2022-03-24 2023-05-09 北京城市网邻信息技术有限公司 房屋装修视频的处理方法、装置、电子设备及存储介质
US11849098B2 (en) * 2022-05-16 2023-12-19 Eyegaze Inc. Gaze-operated point designation on a 3D object or scene
US11651108B1 (en) 2022-07-20 2023-05-16 Katmai Tech Inc. Time access control in virtual environment application
US11876630B1 (en) 2022-07-20 2024-01-16 Katmai Tech Inc. Architecture to control zones
US12009938B2 (en) 2022-07-20 2024-06-11 Katmai Tech Inc. Access control in zones
US11928774B2 (en) 2022-07-20 2024-03-12 Katmai Tech Inc. Multi-screen presentation in a virtual videoconferencing environment
US11700354B1 (en) 2022-07-21 2023-07-11 Katmai Tech Inc. Resituating avatars in a virtual environment
US11741664B1 (en) 2022-07-21 2023-08-29 Katmai Tech Inc. Resituating virtual cameras and avatars in a virtual environment
US11593989B1 (en) 2022-07-28 2023-02-28 Katmai Tech Inc. Efficient shadows for alpha-mapped models
US11682164B1 (en) 2022-07-28 2023-06-20 Katmai Tech Inc. Sampling shadow maps at an offset
US11711494B1 (en) * 2022-07-28 2023-07-25 Katmai Tech Inc. Automatic instancing for efficient rendering of three-dimensional virtual environment
US11776203B1 (en) 2022-07-28 2023-10-03 Katmai Tech Inc. Volumetric scattering effect in a three-dimensional virtual environment with navigable video avatars
US11562531B1 (en) 2022-07-28 2023-01-24 Katmai Tech Inc. Cascading shadow maps in areas of a three-dimensional environment
US11704864B1 (en) 2022-07-28 2023-07-18 Katmai Tech Inc. Static rendering for a combination of background and foreground objects
US11956571B2 (en) 2022-07-28 2024-04-09 Katmai Tech Inc. Scene freezing and unfreezing
US20240073404A1 (en) * 2022-08-31 2024-02-29 Snap Inc. Controlling and editing presentation of volumetric content
US11748939B1 (en) 2022-09-13 2023-09-05 Katmai Tech Inc. Selecting a point to navigate video avatars in a three-dimensional environment
WO2024076206A1 (ko) * 2022-10-07 2024-04-11 이철우 조작패턴 기반 반응형 영상 재생 장치 및 방법
US11935195B1 (en) * 2022-12-13 2024-03-19 Astrovirtual, Inc. Web browser derived content including real-time visualizations in a three-dimensional gaming environment

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20130137692A (ko) * 2011-03-29 2013-12-17 퀄컴 인코포레이티드 증강 현실 시스템들에서 실세계 표면들에의 가상 이미지들의 앵커링
KR20170018930A (ko) * 2014-06-14 2017-02-20 매직 립, 인코포레이티드 가상 및 증강 현실을 생성하기 위한 방법들 및 시스템들

Family Cites Families (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8963926B2 (en) * 2006-07-11 2015-02-24 Pandoodle Corporation User customized animated video and method for making the same
US20100128112A1 (en) 2008-11-26 2010-05-27 Samsung Electronics Co., Ltd Immersive display system for interacting with three-dimensional content
JP5202584B2 (ja) * 2010-06-24 2013-06-05 株式会社ソニー・コンピュータエンタテインメント 画像処理装置、コンテンツ作成支援装置、画像処理方法、コンテンツ作成支援方法、および画像ファイルのデータ構造
KR20120064557A (ko) * 2010-12-09 2012-06-19 한국전자통신연구원 증강형 3차원 입체 영상 제시를 위한 혼합현실 디스플레이 플랫폼 및 운영 방법
US9288476B2 (en) * 2011-02-17 2016-03-15 Legend3D, Inc. System and method for real-time depth modification of stereo images of a virtual reality environment
US9597016B2 (en) * 2012-04-27 2017-03-21 The Curators Of The University Of Missouri Activity analysis, fall detection and risk assessment systems and methods
US9671566B2 (en) 2012-06-11 2017-06-06 Magic Leap, Inc. Planar waveguide apparatus with diffraction element(s) and system employing same
US10139985B2 (en) * 2012-06-22 2018-11-27 Matterport, Inc. Defining, displaying and interacting with tags in a three-dimensional model
US9389682B2 (en) 2012-07-02 2016-07-12 Sony Interactive Entertainment Inc. Methods and systems for interaction with an expanded information space
US9087403B2 (en) 2012-07-26 2015-07-21 Qualcomm Incorporated Maintaining continuity of augmentations
GB2499694B8 (en) * 2012-11-09 2017-06-07 Sony Computer Entertainment Europe Ltd System and method of image reconstruction
KR20230113418A (ko) 2013-03-15 2023-07-28 매직 립, 인코포레이티드 디스플레이 시스템 및 방법
US9438878B2 (en) * 2013-05-01 2016-09-06 Legend3D, Inc. Method of converting 2D video to 3D video using 3D object models
KR101627169B1 (ko) 2013-09-27 2016-06-07 한국과학기술연구원 증강현실 컨텐츠 저작 및 제공 시스템
WO2015167515A1 (en) 2014-04-30 2015-11-05 Longsand Limited Augmented reality without a physical trigger
US9332285B1 (en) * 2014-05-28 2016-05-03 Lucasfilm Entertainment Company Ltd. Switching modes of a media content item
JP6294780B2 (ja) * 2014-07-17 2018-03-14 株式会社ソニー・インタラクティブエンタテインメント 立体画像提示装置、立体画像提示方法、およびヘッドマウントディスプレイ
US10284816B2 (en) * 2015-03-23 2019-05-07 Intel Corporation Facilitating true three-dimensional virtual representation of real objects using dynamic three-dimensional shapes
KR102504246B1 (ko) 2015-09-25 2023-02-24 매직 립, 인코포레이티드 3d 재구성에서 구조 특징들을 검출하고 결합하기 위한 방법들 및 시스템들
KR20170068367A (ko) * 2015-12-09 2017-06-19 영어와 어휘(주) 학습 이해도에 따라 동영상을 재생하는 방법 및 이를 구현한 교육용 단말기
KR102511590B1 (ko) * 2016-05-02 2023-03-20 삼성디스플레이 주식회사 표시 장치
US10551993B1 (en) * 2016-05-15 2020-02-04 Google Llc Virtual reality content development environment
US11024085B2 (en) * 2016-07-09 2021-06-01 Doubleme, Inc. Electronic system and method for three-dimensional mixed-reality space and experience construction and sharing
US10089533B2 (en) * 2016-09-21 2018-10-02 GumGum, Inc. Identifying visual objects depicted in video data using video fingerprinting
JP7071363B2 (ja) 2016-12-13 2022-05-18 マジック リープ, インコーポレイテッド 偏光を送達し、グルコースレベルを決定するための拡張現実および仮想現実アイウェア、システム、および方法
US10474336B2 (en) * 2016-12-20 2019-11-12 Adobe Inc. Providing a user experience with virtual reality content and user-selected, real world objects
DE102017203721A1 (de) * 2017-03-07 2018-09-13 Bitmanagement Software GmbH Vorrichtung und Verfahren zur Darstellung eines Raumbilds von einem Objekt in einer virtuellen Umgebung
JP7029253B2 (ja) * 2017-08-31 2022-03-03 キヤノン株式会社 情報処理装置及びその方法
US10540054B2 (en) * 2017-09-20 2020-01-21 Matterport, Inc. Navigation point selection for navigating through virtual environments
US10334222B2 (en) * 2017-11-20 2019-06-25 Adobe Inc. Focus-based video loop switching
CA3084670A1 (en) 2017-12-22 2019-06-27 Magic Leap, Inc. Methods and system for generating and displaying 3d videos in a virtual, augmented, or mixed reality environment

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20130137692A (ko) * 2011-03-29 2013-12-17 퀄컴 인코포레이티드 증강 현실 시스템들에서 실세계 표면들에의 가상 이미지들의 앵커링
KR20170018930A (ko) * 2014-06-14 2017-02-20 매직 립, 인코포레이티드 가상 및 증강 현실을 생성하기 위한 방법들 및 시스템들

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102322968B1 (ko) * 2021-04-29 2021-11-09 주식회사 유토비즈 사용자의 손동작에 따른 명령 입력 장치 및 이를 이용한 명령 입력 방법
KR20230001377A (ko) * 2021-06-28 2023-01-04 주식회사 엘지유플러스 복셀(voxel) 타입의 볼류메트릭(volumetric) 컨텐츠를 처리하는 서버 및 멀티미디어 디바이스

Also Published As

Publication number Publication date
WO2019126293A1 (en) 2019-06-27
US11303872B2 (en) 2022-04-12
US20220191454A1 (en) 2022-06-16
US10939084B2 (en) 2021-03-02
IL275447B1 (en) 2023-01-01
EP3729242A1 (en) 2020-10-28
EP3729242A4 (en) 2021-01-20
US11962741B2 (en) 2024-04-16
JP7182632B2 (ja) 2022-12-02
US20190199993A1 (en) 2019-06-27
JP2021507408A (ja) 2021-02-22
CA3084670A1 (en) 2019-06-27
IL275447B2 (en) 2023-05-01
AU2018393019A1 (en) 2020-07-23
CN111684393A (zh) 2020-09-18
KR20230110832A (ko) 2023-07-25
IL311407A (en) 2024-05-01
IL299278A (en) 2023-02-01
KR102557356B1 (ko) 2023-07-18
JP7248859B2 (ja) 2023-03-29
US20210227191A1 (en) 2021-07-22
IL275447A (en) 2020-08-31
JP2023024444A (ja) 2023-02-16
JP2023088956A (ja) 2023-06-27

Similar Documents

Publication Publication Date Title
US11962741B2 (en) Methods and system for generating and displaying 3D videos in a virtual, augmented, or mixed reality environment
US11342000B2 (en) Immersive virtual reality production and playback for storytelling content
US20230035084A1 (en) Geometry matching in virtual reality and augmented reality
US11115644B2 (en) Video generation method and apparatus using mesh and texture data
US20200225737A1 (en) Method, apparatus and system providing alternative reality environment
US20130321586A1 (en) Cloud based free viewpoint video streaming
JP6022709B1 (ja) プログラム、記録媒体、コンテンツ提供装置及び制御方法
US20240214538A1 (en) Methods and system for generating and displaying 3d videos in a virtual, augmented, or mixed reality environment
JP7365132B2 (ja) 情報処理装置、表示方法およびコンピュータプログラム
JP2017097854A (ja) プログラム、記録媒体、コンテンツ提供装置及び制御方法
Hamadouche Augmented reality X-ray vision on optical see-through head mounted displays

Legal Events

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