KR20200012879A - 상이한 비디오 데이터 스트림들 내의 상이한 유리한 지점들로부터 표현된 가상 오브젝트 및 실세계 오브젝트에 기초하여 병합된 현실 장면을 생성하기 위한 방법들 및 시스템들 - Google Patents

상이한 비디오 데이터 스트림들 내의 상이한 유리한 지점들로부터 표현된 가상 오브젝트 및 실세계 오브젝트에 기초하여 병합된 현실 장면을 생성하기 위한 방법들 및 시스템들 Download PDF

Info

Publication number
KR20200012879A
KR20200012879A KR1020197035521A KR20197035521A KR20200012879A KR 20200012879 A KR20200012879 A KR 20200012879A KR 1020197035521 A KR1020197035521 A KR 1020197035521A KR 20197035521 A KR20197035521 A KR 20197035521A KR 20200012879 A KR20200012879 A KR 20200012879A
Authority
KR
South Korea
Prior art keywords
data
real
virtual
scene
real world
Prior art date
Application number
KR1020197035521A
Other languages
English (en)
Other versions
KR102494795B1 (ko
Inventor
윌리엄 패트릭 게르바시오
올리버 에스. 카스타네다
데니 브레이텐펠드
Original Assignee
베리존 페이턴트 앤드 라이센싱 인크.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 베리존 페이턴트 앤드 라이센싱 인크. filed Critical 베리존 페이턴트 앤드 라이센싱 인크.
Publication of KR20200012879A publication Critical patent/KR20200012879A/ko
Application granted granted Critical
Publication of KR102494795B1 publication Critical patent/KR102494795B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T19/00Manipulating 3D models or images for computer graphics
    • G06T19/006Mixed reality
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01BMEASURING LENGTH, THICKNESS OR SIMILAR LINEAR DIMENSIONS; MEASURING ANGLES; MEASURING AREAS; MEASURING IRREGULARITIES OF SURFACES OR CONTOURS
    • G01B11/00Measuring arrangements characterised by the use of optical techniques
    • G01B11/24Measuring arrangements characterised by the use of optical techniques for measuring contours or curvatures
    • 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
    • G06T7/00Image analysis
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/21Server components or server architectures
    • H04N21/218Source of audio or video content, e.g. local disk arrays
    • H04N21/21805Source of audio or video content, e.g. local disk arrays enabling multiple viewpoints, e.g. using a plurality of cameras
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client 
    • H04N21/65Transmission of management data between client and server
    • H04N21/658Transmission by the client directed to the server
    • H04N21/6587Control parameters, e.g. trick play commands, viewpoint selection
    • 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/8146Monomedia components thereof involving graphical data, e.g. 3D object, 2D graphics
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N23/00Cameras or camera modules comprising electronic image sensors; Control thereof
    • H04N23/90Arrangement of cameras or camera modules, e.g. multiple cameras in TV studios or sports stadiums
    • H04N5/247

Abstract

예시적인 병합된 현실 장면 캡처 시스템(시스템)은 실세계 장면의 복수의 상이한 유리한 지점들을 갖기 위해 실세계 장면에 관련하여 배치된 복수의 3-차원(3D) 캡처 장치들로부터 표면 데이터 프레임들의 제1 프레임 세트를 수신한다. 제1 프레임 세트에 기초하여, 시스템은 각각의 3D 캡처 장치들에 대한 컬러 및 깊이 비디오 데이터 스트림들을 포함하는 운송 스트림을 생성한다. 운송 스트림에 기초하여, 시스템은 병합된 현실 장면의 3D 공간 내에 포함되는 복수의 엔트리들을 나타내는 엔트리 설명 데이터를 생성한다. 복수의 엔트리들은 가상 오브젝트, 실시간 오브젝트, 및 가상 및 실세계 오브젝트들 모두에 대한 컬러 및 깊이 데이터는 나타내는 표면 데이터 프레임들의 제2 프레임 세트가 렌더링되는 3D 공간 내의 가상 뷰포인트들을 포함한다.

Description

상이한 비디오 데이터 스트림들 내의 상이한 유리한 지점들로부터 표현된 가상 오브젝트 및 실세계 오브젝트에 기초하여 병합된 현실 장면을 생성하기 위한 방법들 및 시스템들
본 출원은 발명의 명칭이 상이한 비디오 데이터 스트림들 내의 상이한 유리한 지점들(vantage points)로부터 표현된 가상 오브젝트(virtual object) 및 실세계 오브젝트에 기초하여 병합된 현실 장면을 생성하기 위한 방법들 및 시스템들인, 2017년 5월 31일자 제출된 미국 특허 출원 제15/610,573호의 우선권을 주장하며, 그 전체가 참조에 의해 여기에 통합된다.
사람들은 (예를 들어, 가상 오브젝트들을 포함하는 가상 장면들, 실세계 오브젝트들을 포함하는 실세계 장면들, 가상 및 실세계 오브젝트들을 포함하는 병합된 현실 장면들 등에 기초한) 가상 3-차원("3D") 공간들을 다양한 이유들로 그리고 다양한 유형들의 애플리케이션들(applications)과 연계하여 경험할 수 있다. 예를 들어, 가상 3D 공간들의 표현들을 표시하도록 구성된 미디어 플레이어 장치들(media player devices)의 사용자들을 오락 목적들, 교육 목적들, 장거리 통신 목적들, 대리 경험/여행 목적들을 위해, 또는 다양한 다른 목적들 및/또는 애플리케이션들과 관련하여 가상 3D 공간들을 경험할 수 있다.
가상 현실은 사용자들이 가상 3D 공간들을 경험하는 애플리케이션의 일례이다. 가상 현실 미디어 콘텐츠는 사용자들(즉, 가상 현실 미디어 콘텐츠의 뷰어(viewer)들)이 동시에 몰입형 가상 현실 세계에 표시된 다양한 것들 중 임의의 것에 그들의 주의를 집중시킴으로써 경험할 수 있는 대화형 가상 현실 세계들에 사용자들을 몰입시키는데 사용될 수 있다. 예를 들어, 가상 현실 미디어 콘텐츠를 표시하는 동안 아무때나, 가상 현실 미디어 콘텐츠를 경험하고 있는 사용자는 어떤 방향으로든 몰입형 가상 현실 세계를 둘러볼 수 있으며, 사용자는 그 또는 그녀가 실제로 존재하고 있다는 느낌을 받게 되고, 몰입형 가상 현실 세계 내의 특정 위치 및 관점(예를 들어, 각도, 뷰포인트(viewpoint), 등)에서 몰입형 가상 현실 세계를 경험하게 된다.
몇몇 예들에서, 몰입형 가상 현실 세계들은 가상 요소들 및 실세계 요소들 모두를 포함할 수 있다. 이러한 가상 3D 공간들은 병합된 현실 장면들로 언급될 수 있으며, 예를 들어, 사용자들이 실제 세계에는 존재하지 않는 가상 요소들에 의해 증강된 실세계 요소들(예를 들어, 라이브 이벤트(live event)와 연관된 요소들)을 경험하도록 허용하는 것과 같은 다양한 이점들을 사용자들에게 제공할 수 있다.
병합된 현실 장면들을 경험하기 위한 최대 유연성을 사용자에게 제공하기 위해, 종래의 미디어 플레이어 장치들은 전형적으로 사용자가 병합된 현실 장면을 경험하기 전에 병합된 현실 장면(예를 들어, 가상 및 실세계 오브젝트들의 3D 모델들)을 나타내는 데이터를 수신했다. 불행히도, 데이터를 스트리밍(streaming)하기 보다 사전 로딩(preloading)해야 한다는 요구사항은 사용자에게 제공될 수 있는 어떤 유형들의 경험들을 하지 못하게 하거나 그것에 큰 제한들을 둘 수 있다. 예를 들어, 사용자가 실시간으로 경험하기를 원할 수 있는 라이브 이벤트들(예를 들어, 라이브 실세계 스포츠 이벤트들, 공유되는 가상 현실 이벤트들, 등)을 나타내는 데이터가 그 이벤트들이 시작되기 전에 수신 및 사전 로딩될 수 없을 것이다.
게다가, 데이터를 스트리밍하는 미디어 플레이어 장치들 및/또는 다른 시스템 구성요소들은 더 크거나 더 상세한 병합된 현실 장면들을 표시하도록 크기조정할 수 없다는 처리 부담들을 가질 수 있다. 예를 들어, 상당한 양의 추가적인 데이터(예를 들어, 대략 2배의 데이터)가, 예를 들어, 5개의 엔트리들(entities)을 갖는 병합된 현실 장면에 비해, 예를 들어, 10개의 엔트리들을 갖는 병합된 현실 장면에 대한 3D 모델들을 표현하기 위해 필요할 수 있다. 따라서, 제공자 시스템이 5개의 엔트리들에 대한 3D 모델들을 실시간으로 미디어 플레이어 장치에 스트리밍할 수 있더라도, 제공자 시스템은 10개의 엔트리들, 100개의 엔트리들, 또는 그 이상에 대한 3D 모델들을 스트리밍하기까지는 크기를 키울 수 없으며, 특히 병합된 현실 장면 내의 실세계 오브젝트들과 가상 오브젝트들이 서로 상호작용할 때 그러하다.
상이한 비디오 데이터 스트림들 내의 상이한 유리한 지점들로부터 표현된 가상 오브젝트 및 실세계 오브젝트에 기초하여 병합된 현실 장면을 생성하기 위한 방법들 및 시스템들이 여기에 설명된다. 예를 들어, 더 상세하게 후술될 바와 같이, 병합된 현실 장면 캡처 시스템은 실세계 장면의 복수의 상이한 유리한 지점들을 갖도록, 실세계 장면에 관련하여 배치된 복수의 3-차원("3D") 캡처 장치들로부터 제1의 복수의 표면 데이터 프레임들을 포함하는 제1 프레임 세트를 수신할 수 있다. 제1의 복수의 표면 데이터 프레임들 내의 각각의 표면 데이터 프레임들은 동일한 특정 시점에 복수의 3D 캡처 장치들 내의 각각의 3D 캡처 장치에 의해 캡처될 수 있다. 게다가, 각각의 표면 데이터 프레임들은 복수의 상이한 유리한 지점들 내의 상이한 각각의 유리한 지점으로부터 캡처될 수 있다. 따라서, 각각의 표면 데이터 프레임들은, 실세계 장면 내에 포함된 하나 이상의 실세계 오브젝트들의 표면들이 특정 시점에 각각의 3D 캡처 장치의 각각의 유리한 지점에서 보이는 것처럼, 그 표면들의 컬러 데이터 및 깊이 데이터를 표현할 수 있다.
복수의 3D 캡처 장치들로부터 수신된 제1 프레임 세트에 기초하고 또한 다른 시점들(예를 들어, 연속적인 시간 시퀀스(sequence) 내의 이전의 및/또는 이후의 시점들)에 캡처된 복수의 다른 프레임 세트들에 기초하여, 병합된 현실 장면 캡처 시스템은 운송 스트림을 생성할 수 있다. 예를 들어,운송 스트림은 복수의 3D 캡처 장치들 내의 각각의 3D 캡처 장치들에 대한 (예를 들어, 연속적인 시간 시퀀스에 걸처 3D 캡처 장치들의 각각의 유리한 지점들에서 각각 가시가능한 컬러 및 깊이 비디오 데이터는 나타내는) 컬러 비디오 데이터 시스템 및 깊이 비디오 데이터 스트림을 포함할 수 있다.
운송 스트림에 기초하여, 병합된 현실 장면 캡처 시스템은 병합된 현실 장면의 3D 공간 내에 포함된 복수의 엔트리들을 나타내는 엔트리 설명 데이터를 생성(예를 들어, 제작(creating), 갱신, 등)할 수 있다. 예를 들어, 복수의 엔트리들은 병합된 현실 장면 캡처 시스템에 통신가능하게 연결된 자산 저장 시스템(asset storage system) 내에 저장된 가상 오브젝트의 표면들의 컬러 데이터 및 깊이 데이터에의 링크들에 의해 엔트리 설명 데이터 내에 적어도 부분적으로 정의된 가상 오브젝트를 포함할 수 있다. 복수의 엔트리들은 결국 컬러 비디오 데이터 스트림 및 깊이 비디오 데이터 스트림(즉, 복수의 3D 캡처 장치들로부터 수신된 제1 프레임 세트에 기초하고 또한 복수의 다른 프레임 세트들에 기초하여 생성된 비디오 데이터 스트림들) 내에 포함된 실세계 오브젝트의 표면들의 컬러 데이터 및 깊이 데이터에의 링크들에 의해 엔트리 설명 데이터 내에 적어도 부분적으로 정의될 수 있는 실세계 오브젝트를 더 포함할 수 있다. 추가적으로, 복수의 엔트리들은 제2의 복수의 표면 데이터 프레임들을 포함하는 제2 프레임 세트가 렌더링되는 3D 공간 내의 복수의 가상 뷰포인트들을 포함할 수 있다. 예를 들어, 제2 프레임 세트 내에 포함된 제2의 복수의 표면 데이터 프레임들은 병합된 현실 장면의 3D 공간 내에 포함된 가상 및 실세계 오브젝트들 모두의 표면들의 컬러 데이터 및 깊이 데이터를 나타내도록, 병합된 현실 장면 캡처 시스템에 통신가능하게 연결된 복수의 서버측 3D 렌더링 엔진들에 의해 렌더링될 수 있다.
여기에 설명된 상이한 비디오 데이터 스트림들 내의 상이한 유리한 지점들로부터 표현된 가상 오브젝트 및 실세계 오브젝트에 기초하여 병합된 현실 장면을 생성하기 위한 방법들 및 시스템들은 다양한 장점들 및 이점들을 제공할 수 있다. 일례로서, 여기에 설명된 시스템들 및 방법들은, 미디어 플레이어 장치들을 사용하여 가상 3D 공간들을 경험할 때, 가상 3D 공간들의 표현들을 표시하도록 구성된 미디어 플레이어 장치들의 사용자들을 용이하게 할 수 있다. 여기에 사용된 바와 같이, "3D 공간"은 사용자가 실세계를 경험하는 것과 유사한 방식으로 사용자에 의해 경험될 수 있는 환경 또는 세계의 3D 표현(예를 들어, 완전히 가상화된 표현 또는 실세계 요소들의 재현에 적어도 부분적으로 기초한 표현)을 의미할 수 있다. 예를 들어, 가상 또는 병합된 현실 장면을 경험하는 사용자는 3D 공간 내에서 돌아다니거나 3D 공간 내에 포함된 오브젝트들을 보거나 및/또는 이와 달리 그들과 상호작용할 수 있다. 몇몇 예들에서, 3D 공간은 완전히 가상화(예를 들어, 컴퓨터 생성됨)되고 실세계 장면이 표현될 수 있는 것과 유사한 방식으로 표현될 수 있다. 다른 예들에서, 3D 공간은 실세계 장면으로부터 캡처된 하나 이상의 실세계 오브젝트들에 적어도 부분적으로 기초할 수 있다.
어느 경우에서든, 미디어 플레이어 장치의 사용자가 3D 공간을 경험하기 전에, 3D 공간들 및 그것에 포함된 가상 및 실세계 오브젝트들을 나타내는 데이터가 미디어 플레이어 장치 상에 사전 로딩되거나 저장될 필요 없도록 하기 위해, 여기에 설명된 시스템들 및 방법들은 제공자 시스템으로부터의 병합된 현실 장면들(즉, 실세계 오브젝트들 및 가상 오브젝트들 모두를 포함하는 장면들의 가상 3D 공간들)의 3D 공간들 전체의 스트리밍을 용이하게 할 수 있다. 사용자에게 병합된 현실 장면을 표시하기 전에, 병합된 현실 장면 콘텐츠를 표현하는 데이터가 (예를 들어, 국부적인 물리적 저장소를 통해) 다운로딩, 저장, 또는 이와달리 액세스될 필요 없게 하기 위해, 미디어 플레이어 장치가 병합된 현실 장면을 표시하는데 필요한 모든 데이터는 미디어 플레이어 장치에 스트리밍될 수 있다. 몇몇 예들에서, 이 스트리밍 능력은 시간에-민감한 콘텐츠(예를 들어, 실시간으로 일어나는 실세계 또는 가상 이벤트들)에 연관된 병합된 현실 장면들이, 병합된 현실 장면들 내에서 이벤트들이 일어날 때, 실시간으로 사용자에 의해 경험되도록 허용할 수 있다.
게다가, 여기에 설명된 상이한 비디오 데이터 스트림들 내의 상이한 유리한 지점들로부터 표현된 가상 오브젝트 및 실세계 오브젝트에 기초하여 병합된 현실 장면을 생성하기 위한 방법들 및 시스템들은, 가상 현실 미디어 콘텐츠가 임의 가상 위치들에서 및 3D 공간 내의 동적으로 선택가능한 가상 뷰포인트들에서 렌더링될 수 있는 방식으로, 병합된 현실 장면을 표현하는 가상 현실 미디어 콘텐츠를 미디어 플레이어 장치들에 제공하는 것을 용이하게 할 수 있다. 특히, 더 상세하게 후술될 바와 같이, 상이한 가상 뷰포인트들에서 병합된 현실 장면의 프레임들을 렌더링함으로써, 병합된 현실 장면 캡처 시스템 및/또는 병합된 현실 장면 캡처 시스템에 연관된 다른 서버측 시스템들은, 미디어 플레이어 디바이스가 복수의 2-차원("2D") 비디오 스트림들에 기초하여 임의 뷰포인트들 및 동적으로 선택가능한 가상 뷰포인트들로부터 병합된 현실 장면들의 3D 공간을, 3차원으로, 렌더링하도록 허용하기 위해 구성된 데이터 파이프라인 내에 프레임들을 포함시킬 수 있다. 예를 들어, 여기에 설명된 컬러 비디오 데이터 스트림들 및 깊이 비디오 데이터 스트림들과 같은 2D 비디오 데이터 스트림들이 데이터 파이프라인에 포함될 수 있다(예를 들어, 하나 이상의 운송 스트림들 내에 패키징(packaging)됨). 그러나, 2D 비디오 데이터 스트림들은 비교적 고정된 뷰포인트들(예를 들어, 병합된 현실 장면 캡처 시스템에 의해 생성 및 유지되는 엔트리 설명 데이터 내에 표현된 복수의 엔트리들에 포함된 복수의 가상 뷰포인트들)에 연관될 수 있지만, 미디어 플레이어 장치는 미디어 플레이어 장치의 사용자가 3차원으로 및 임의 가상 뷰포인트들(예를 들어, 2D 비디오 데이터 스트림들이 연관된 비교적 고정된 뷰포인트들에 맞춰 정렬되지 않거나 그와 달리 관련되지 않은 비-고정된 뷰포인트들)에서 병합된 현실 장면의 3D 공간을 경험하도록 허용할 수 있다.
그 결과, 미디어 플레이어 장치는 3D 공간에 연관된 가변적이고 잠재적으로 무제한의 개수의 3D 모델들을 나타내는 3D 모델 데이터를 스트리밍할 필요 없이 임의 가상 뷰포인트들에서 3D 공간을 렌더링할 수 있다. 예를 들어, 가상 3D 공간 내에 포함된 모든 엔트리의 3D 모델들을 표현하는 데이터를 제공하는 대신, 데이터 파이프라인은 몇개의 가상 뷰포인트들에서 3D 공간 내의 모든 실세계 및 가상 오브젝트들을 나타내는 2D 비디오 데이터(예를 들어, 컬러 비디오 데이터 스트림들 및 깊이 비디오 데이터 스트림들)를 제공할 수 있다. 이와 같이, 미디어 플레이어 장치가, 예를 들어, 단지 1개 또는 2개의 오브젝트들만으로 병합된 현실 장면을 렌더링하기 위해 필요한 것보다 추가적인 데이터 또는 추가적인 양의 데이터를 수신하거나 추가적인 렌더링 작업을 수행하지 않으면서, 병합된 현실 장면을 렌더링할 때 무제한 개수의 오브젝트들이 표현될 수 있다.
추가적으로, 미디어 플레이어 장치들에 이미 저장된 사전 로딩된 콘텐츠에 의존하지 않으면서 미디어 플레이어 장치들에 병합된 현실 장면을 표현하는 모든 데이터를 생성, 유지, 및 제공함으로써, 여기에 설명된 시스템 및 방법들은, 미디어 플레이어 장치 상에 저장되어 있는 사전 로딩된 데이터를 수정하지 않아도 되면서, 3D 공간들이 공급자에 의해 (예를 들어, 이벤트들이 실세계 장면에서 일어나는 실시간으로 또는 거의 실시간으로) 생성 또는 수정되도록 허용할 수 있다. 그 결과, 병합된 현실 장면을 생성할 책임이 있는 콘텐츠 제작자들 또는 병합된 현실 장면을 경험하는 하나 이상의 사용자들은 병합된 현실 장면의 양태들을 수정(예를 들어, 가상 또는 실세계 오브젝트들 등과 같은 엔트리들을 수정, 대체, 또는 제거)하기 위한 명령들을 병합된 현실 장면 캡처 시스템에 제공할 수 있고, 병합된 현실 장면이 실시간 또는 거의 실시간으로 수정되도록 이 수정들은 사용자들에게 스트리밍되고 있는 데이터에 즉각 반영될 수 있다.
마찬가지로, 계산적으로 비쌀 수 있는(예를 들어, 어떤 미디어 플레이어 장치들에 대해 매우 비싼) 다양한 동작들이 병합된 현실 장면 캡처 시스템에 연관된 강력한 컴퓨팅 자원들에 의해 수행될 수 있는데, 이 병합된 현실 장면 캡처 시스템은 가상 현실 미디어 제공자에 의해 동작될 수 있고, 예를 들어, 사용자들에 연관된 미디어 플레이어 장치들보다 훨씬 더 강력한 컴퓨팅 자원들(예를 들어, 대용량 서버들 등)에 연관될 수 있다. 예를 들어, 병합된 현실 장면 캡처 시스템은 병합된 현실 장면 내에서 실세계 오브젝트들과 가상 오브젝트들을 통합시키고, 병합된 현실 장면 내의 오브젝트들에 대하여 물리적 동작들을 수행하고, 오브젝트들에 대하여 인공 지능 동작들을 수행하는 등을 위해, 계산적으로 비싼 동작들을 수행할 수 있다. 이들 동작들이 클라이언트측 보다는 서버측에서 수행되기 때문에, 사용자에 의해 동작되는 미디어 플레이어 장치들은 특별히 강력한 컴퓨팅 자원들에 연관될 필요가 없을 수 있어, 사용자들이 클라이언트측 미디어 플레이어를 갖는 한, 사용자 장치 자원들이 절약되고, 트랜스미션(transmission) 대역폭이 최소화되고, 사용자들에게 (예를 들어, 휴대성, 냉각성 등의 면에서) 편리함이 제공되고, 다양한 유형들의 미디어 플레이어 장치들이 (예를 들어, 다양한 형태 인자들, 다양한 가격 점들 등으로) 사용자들에게 병합된 현실 장면의 경험을 제공할 수 있게 된다.
이제 다양한 실시예들이 도면들을 참조하여 더 상세하게 설명될 것이다. 게시된 방법들 및 시스템들은 전술된 하나 이상의 이점들, 및/또는 여기서 명확해질 다양한 추가적인 및/또는 대안적인 이점들을 제공할 것이다.
첨부된 도면들은 다양한 실시예들을 나타내며, 명세서의 일부이다. 나타낸 실시예들은 단지 예들이며, 게시물의 범위를 제한하지 않는다. 도면들에 걸쳐, 동일하거나 유사한 도면 참조 부호들은 동일하거나 유사한 요소들을 지정한다.
도 1은 여기에 설명된 원리들에 따른, 상이한 비디오 데이터 스트림들 내의 상이한 유리한 지점들로부터 표현된 가상 오브젝트 및 실세계 오브젝트에 기초하여 병합된 현실 장면을 생성하기 위한 예시적인 병합된 현실 장면 캡처 시스템을 나타내는 도면.
도 2는 여기에 설명된 원리들에 따라, 도 1의 병합된 현실 장면 캡처 시스템이 예시적인 실세계 오브젝트를 포함하는 예시적인 실세계 장면을 표현하는 데이터를 캡처하기 위해 복수의 3-차원("3D") 캡처 장치들과 상호동작하는 예시적인 구성을 나타내는 도면.
도 3a는 여기에 설명된 원리들에 따라, 도 2의 실세계 오브젝트를 나타내는 표면 데이터 프레임을 캡처하는 예시적인 3D 캡처 장치를 도시하는 도면.
도 3b는 여기에 설명된 원리들에 따른, 도 3a의 3D 캡처 장치에 의해 캡처된 표면 데이터 프레임 내에 표현된 컬러 데이터(color data)의 예시적인 그래픽 묘사를 나타내는 도면.
도 3c는 여기에 설명된 원리들에 따른, 도 3a의 3D 캡처 장치에 의해 캡처된 표면 데이터 프레임 내에 표현된 깊이 데이터의 예시적인 그래픽 묘사를 나타내는 도면.
도 4는 여기에 설명된 원리들에 따른, 상이한 유리한 지점들로부터 도 2의 실세계 장면을 표현하기 위해 도 2의 3D 캡처 장치들에 의해 캡처된 각각의 복수의 예시적인 표면 데이터 프레임들을 포함하는 예시적인 복수의 프레임 세트들을 나타내는 도면.
도 5는 예시적인 컬러 비디오 데이터 스트림 및 예시적인 깊이 비디오 데이터 스트림을 나타내는 도면으로서, 이 둘 모두는 여기에 설명된 원리들에 따라, 상이한 유리한 지점으로부터 도 2의 실세계 장면을 표현하기 위해 도 2의 특정한 3D 캡처 장치에 의해 캡처된 표면 데이터 프레임들에 기초하는 도면.
도 6은 여기에 설명된 원리들에 따른, 다른 컬러 비디오 데이터 스트림들 및 깊이 비디오 데이터 스트림들과 함께 도 4의 컬러 비디오 데이터 스트림 및 깊이 비디오 데이터 스트림을 포함하는 예시적인 운송 스트림을 나타내는 도면.
도 7은 여기에 설명된 원리들에 따라, 도 1의 병합된 현실 장면 캡처 시스템이 상이한 비디오 데이터 스트림들 내의 상이한 유리한 지점들로부터 표현된 가상 오브젝트 및 실세계 오브젝트에 기초하여 병합된 현실 장면을 생성하는 것을 용이하게 하는 예시적인 구성을 나타내는 도면.
도 8은 여기에 설명된 원리들에 따른, 병합된 현실 장면의 예시적인 3D 공간 내에 가상 오브젝트, 실세계 오브젝트, 및 복수의 가상 뷰포인트들과 같은 예시적인 복수의 엔트리들을 포함하는 예시적인 병합된 현실 장면을 나타내는 도면.
도 9는 여기에 설명된 원리들에 따라, 도 1의 병합된 현실 장면 캡처 시스템에 의해 생성될 수 있는 예시적인 엔트리 설명 프레임들을 나타내는 도면.
도 10은 여기에 설명된 원리들에 따라, 도 8의 병합된 현실 장면의 3D 공간 내에 포함되는 가상 및 실세계 오브젝트들의 표면들의 컬러 데이터 및 깊이 데이터는 나타내는 표면 데이터 프레임들을 렌더링(rendering)하는 복수의 예시적인 3-차원("3D") 렌더링 엔진들을 나타내는 도면.
도 11은 여기에 설명된 원리들에 따른, 도 10의 3D 렌더링 엔진들에 의해 렌더링된 각각의 복수의 예시적인 표면 데이터 프레임들을 각각 포함하는 예시적인 복수의 프레임 세트들을 나타내는 도면.
도 12는 여기에 설명된 원리들에 따라, 예시적인 가상 현실 미디어 콘텐츠 제공자 시스템이 병합된 현실 장면을 경험하기 위해 사용자에 의해 사용되는 예시적인 클라이언트측 미디어 플레이어 장치에 네트워크를 통해 제공되는 가상 현실 미디어 콘텐츠를 생성하는 예시적인 구성을 나타내는 도면.
도 13은 여기에 설명된 원리들에 따른, 가상 현실 미디어 콘텐츠를 경험하기 위해 사용자에 의해 사용될 수 있는 다양한 예시적인 유형들의 미디어 플레이어 장치들을 나타내는 도면.
도 14는 여기에 설명된 원리들에 따라, 병합된 현실 장면에 관련된 예시적인 임의 가상 위치에 대응하는 동적으로 선택가능한 가상 뷰포인트로부터 경험되는 병합된 현실 장면을 표현하는 예시적인 가상 현실 미디어 콘텐츠가 사용자에게 표시되는 예시적인 가상 현실 경험을 나타내는 도면.
도 15는 여기에 설명된 원리들에 따라, 상이한 비디오 데이터 스트림들 내의 상이한 유리한 지점들로부터 표현된 가상 오브젝트 및 실세계 오브젝트에 기초하여 병합된 현실 장면을 생성하기 위한 예시적인 방법을 나타내는 도면.
도 16은 여기에 설명된 원리들에 따른 예시적인 컴퓨팅 장치를 나타내는 도면.
도 1은 상이한 비디오 데이터 스트림들 내의 상이한 유리한 지점들로부터 표현된 가상 오브젝트 및 실세계 오브젝트에 적어도 기초하여 병합된 현실 장면을 생성하기 위한 예시적인 병합된 현실 장면 캡처 시스템(100)("시스템(100)")을 나타낸다. 도시된 바와 같이, 시스템(100)은 서로 선택적으로 및 통신가능하게 연결된 실세계 장면 캡처 기능(102), 병합된 현실 엔트리 상태 추적 기능(104), 및 저장 기능(106)을, 제한 없이 포함할 수 있다. 기능들(102 내지 106)이 도 1에서 개별적인 기능들로 도시되어 있지만, 기능들(102 내지 106)은 단일 기능과 같은 더 적은 기능들로 조합되거나, 더 많은 기능들로 나뉠 수 있다는 것이 인식될 것이며, 이는 특정 구현에 사용될 수 있다. 몇몇 예들에서, 각각의 기능들(102 내지 106)은 다수의 장치들 및/또는 다수의 위치들 간에 분산될 수 있으며, 이는 특정 구현에 사용될 수 있다. 이제 각각의 기능들(102 내지 106)이 여기에 포함된 특정한 다른 도면들을 참조하여 더 상세하게 설명될 것이다.
실세계 장면 캡처 기능(102)은 상이한 비디오 데이터 스트림들 내의 상이한 유리한 지점들로부터 표현된 가상 오브젝트 및 실세계 오브젝트에 기초하여 병합된 현실 장면을 생성하기 위해 사용되는 데이터를 캡처 및 획득하는 것에 연관된 다양한 동작들을 수행하는 하나 이상의 물리적 컴퓨팅 장치들 (예를 들어, 프로세서들, 메모리들, 통신 인터페이스들과 같은 하드웨어 및/또는 소프트웨어 구성요소들, 프로세서들에 의해 실행되기 위해 메모리 내에 저장된 명령어들, 등)을 포함할 수 있다. 구체적으로, 예를 들어, 실세계 장면의 복수의 상이한 유리한 지점들을 갖기 위해, 실세계 장면 캡처 기능(102)은 실세계 장면에 관련하여 배치된 복수의 3-차원(3D) 캡처 장치들로부터 제1의 복수의 표면 데이터 프레임들을 포함하는 제1 프레임 세트를 수신할 수 있다.
제1의 복수의 표면 데이터 프레임들 내의 각각의 표면 데이터 프레임들은 제1의 복수의 표면 데이터 프레임들 내의 다른 표면 데이터 프레임들과 동일한 특정 시점에 캡처될 수 있고, 복수의 상이한 유리한 지점들 내의 각각의 유리한 지점에서 복수의 3D 캡처 장치들 내의 각각의 3D 캡처 장치에 의해 캡처될 수 있다. 여기에 사용된 바와 같이, 표면 데이터 프레임들이 정확히 동일한 순간에 캡처되지 않았더라도, 표면 데이터 프레임들이 (즉, 시간 범위에 걸처 대상을 표현하는 것과 반대로) 한 순간에 대상(예를 들어, 실세계 장면 내의 실세계 오브젝트)을 효과적으로 표현하기에 충분히 인접한 시간에 캡처되면, 표면 데이터 프레임들은 "동일한 특정 시점에" 캡처됐다고 언급될 수 있다. 예시로서, 특정 대상이 얼마나 동적인지(예를 들어, 하나 이상의 실세계 오브젝트들이 실세계 장면을 얼마나 빨리 이동하는지, 등)에 따라, 표면 데이터 프레임들은, 예를 들어, 서로 수 십 또는 수 백 밀리초 내에 캡처될 때 또는 다른 적합한 타임프레임 내에서 (예를 들어, 마이크로초, 밀리초, 초, 등 내에서) 캡처될 때 동일한 특정 시점에 캡처되었다고 고려될 수 있으며, 이는 특정 구현에 사용될 수 있다. 이와 같이, 각각의 표면 데이터 프레임들은, 실세계 장면 내에 포함된 실세계 오브젝트의 표면들이 특정 시점에 각각의 3D 캡처 장치의 각각의 유리한 지점에서 보이는 것처럼, 그 표면들의 컬러 데이터 및 깊이 데이터를 표현할 수 있다.
실례로서, 도 2는 시스템(100)(예를 들어, 실세계 장면 캡처 기능(102))이 예시적인 실세계 오브젝트를 포함하는 예시적인 실세계 장면을 표현하는 데이터를 캡처하기 위해 복수의 3D 캡처 장치들과 상호동작하는 예시적인 구성(200)을 도시한다. 구체적으로, 도 2에 도시된 바와 같이, 구성(200)은, 실세계 오브젝트(204)를 포함하고 각각의 유리한 지점(208)(예를 들어, 3D 캡처 장치(206-1)에 연관된 유리한 지점(208-1) 내지 3D 캡처 장치(206-8)에 연관된 유리한 지점(208-8))에 각각 연관된 복수의 3D 캡처 장치들(206)(예를 들어, 3D 캡처 장치들(206-1 내지 206-8))에 의해 둘러쌓여 있는 실세계 장면(202)을 포함한다. 3D 캡처 장치들(206)은 시스템(100)과 (예를 들어, 전술된 바와 같은 시스템(100) 내의 실세계 장면 캡처 기능(102)과) 통신가능하게 연결될 수 있는데, 이 시스템(100)은 각각의 복수의 표면 데이터 프레임들을 각각 포함하는 각각의 프레임 세트들을 3D 캡처 장치들(206)로부터 수신할 수 있다.
여기에 사용된 바와 같이, "표면 데이터 프레임"은 3D 공간에 연관된 특정 시점 또는 다른 시간적 시퀀스(temporal sequence) 내의 시점에 특정한 유리한 지점 또는 가상 뷰포인트에서 3D 공간 내에서 가시가능한 오브젝트(예를 들어, 실세계 오브젝트들, 가상 오브젝트들, 등)의 표면들에 연관된 다양한 유형들의 데이터는 나타내는 데이터세트를 의미할 수 있다. 예를 들어, 표면 데이터 프레임은 3D 공간에 관련된 특정한 유리한 지점에서 보이는 오브젝트들을 나타내는 컬러 데이터(즉, 이미지 데이터) 및 깊이 데이터를 포함할 수 있다. 이와 같이, 복수의 관련 표면 데이터 프레임들은 장면(예를 들어, 가상 장면, 실세계 장면, 병합된 현실 장면, 등)의 (컬러 뿐만 아니라 깊이 데이터까지 표현하는) 비디오-유사 표현을 제작하기 위해 함께 순서화될 수 있는데, 장면이 특정한 유리한 지점에서 뷰잉되거나 경험되기 때문이다. 어떤 예들에서, 표면 데이터 프레임은 오디오 데이터, 메타데이터(예를 들어, 표면 데이터 프레임 내에 표현된 구체적인 오브젝트들에 대한 정보 및/또는 장면에 연관된 유리한 지점들에 대한 정보를 포함하는 메타데이터)와 같은 다른 유형들의 데이터 및/또는 다른 유형들의 데이터에 더 연관될 수 있으며, 이는 특정 구현에 사용될 수 있다. 상이한 유리한 지점들에 연관된 표면 데이터 프레임들 및 관련된 표면 데이터 프레임들의 시퀀스들의 예들이 아래에 설명되고 나타내질 것이다.
여기에 사용된 바와 같이, "컬러 데이터"는 (컬러로 표현되는지 또는 그레이스케일(grayscale)(즉, "흑백")로 표현되는지) 대상(예를 들어, 가상, 실세계, 또는 병합된 현실 장면의 3D 공간 내에 포함된 실세계 또는 가상 오브젝트)이 특정한 유리한 지점의 관점에서 특정한 시점에 또는 특정한 시간 기간에 걸쳐 어떻게 보이는지를 표현하는 임의의 이미지 데이터, 비디오 데이터, 등을 광범위하게 포함할 수 있다. 컬러 데이터는 본 기술에서 이미지 데이터 및/또는 비디오 데이터를 정의하는 다양한 정의들 및/또는 표준들에 연관될 수 있는 임의의 특정한 포맷, 파일 유형, 프레임 률, 해상도, 품질 수준, 또는 다른 특징에 제한되지 않는다. 마찬가지로, 여기에 사용된 바와 같이, "깊이 데이터"는 공간 내의 대상의 위치를 나타내는 임의의 데이터를 포함할 수 있다. 예를 들어, 실세계 또는 가상 오브젝트를 나타내는 깊이 데이터는 가상 오브젝트의 표면들 상의 상이한 점들에 대한 전체 좌표계(global coordinate system)(예를 들어, 3D 공간에 연관된 실세계, 가상, 또는 혼합된 현실 장면의 3D 공간에 연관된 전체 좌표계)에 관련된 좌표들을 포함할 수 있다.
구성(200)의 각각의 요소들이 이제 상세히 설명될 것이다.
실세계 장면(202)은 임의의 실세계 장면, 실세계 위치, 실세계 이벤트(예를 들어, 라이브 이벤트, 등), 또는 (예를 들어, 가상 세계 또는 공상 세계에서만 존재하는 것과 반대로) 실 세계에 존재하는 다른 대상을 표현할 수 있으며, 이는 특정 구현에 사용될 수 있다. 도 2 내의 실세계 장면(202)을 표현한 원으로 나타낸 바와 같이, 실세계 장면(202)은 무대, 경기장, 등과 같은 구체적으로 묘사된 영역일 수 있다. 반대로, 다른 예들에서, 실세계 장면(202)은 그렇게 잘 정의 또는 묘사되지 않을 수 있다. 예를 들어, 실세계 장면(202)은 도시 거리, 박물관, 경치, 등과 같은 임의의 실내 또는 실외 실세계 위치를 포함할 수 있다. 어떤 예들에서, 실세계 장면(202)은 스포츠 이벤트, 음악 이벤트, 연극 또는 극단 발표, 대규모 축하 행사(예를 들어, 타임 스퀘어의 새해 전야제, 참회 화요일(Mardis Gras), 등), 정치 이벤트, 또는 임의의 다른 실세계 이벤트와 같은 실세계 이벤트에 연관될 수 있다. 동일한 또는 다른 예들에서, 실세계 장면(202)은 소설화된 장면(예를 들어, 실사 가상 현실 텔레비전 쇼 또는 영화의 세트) 및/또는 임의의 다른 실내 또는 실외 실세계 위치에서의 임의의 다른 장면에 대한 세팅(setting)에 연관될 수 있으며, 이는 특정 구현에 사용될 수 있다.
따라서, 실세계 오브젝트(204)는 (예를 들어, 실세계 장면(202) 내에 또는 그 주변에 위치된) 실세계 장면(202)에 연관되고, 적어도 하나의 유리한 지점들(208)에서 탐지가능한(예를 들어, 뷰잉가능한, 등) 임의의 실세계 오브젝트(생물이든 무생물이든)를 표현할 수 있다. 예를 들어, 실세계 오브젝트(204)가 명료성을 위해 비교적 간단한 기하학적 모양으로 그려져있지만, 실세계 오브젝트(204)는 다양한 복잡도 수준들을 갖는 다양한 유형들의 오브젝트들을 표현할 수 있다는 것이 이해될 것이다. 기하학적 모양보다는, 예시로서, 실세계 오브젝트(204)는 사람이나 다른 생물, 불투명한 고체, 액체, 가스, 또는 벽, 천장, 바닥과 같은 거의 끊김이 없는 오브젝트, 또는 여기에 설명된 임의의 다른 유형의 오브젝트와 같은 임의의 생물 또는 무생물 오브젝트 또는 표면을 표현할 수 있으며, 또는 이는 특정 구현에 사용될 수 있다.
도시된 바와 같이, 실세계 오브젝트(204)는 3D 캡처 장치들(206)에 의해 탐지되는 광(예를 들어, 실세계 장면(202) 내의 환경 광, 깊이 캡처 장치에 의해 방출되는 구조화된 광 패턴의 적외선, 등)을 각각 반사할 수 있는 다양한 표면들을 포함할 수 있다. 실세계 오브젝트(204)가 비교적 간단하게 묘사되어 있지만, 실세계 오브젝트(204)의 표면들은 어느 위치(206) 및 유리한 지점(208)에서 표면들이 탐지되는지에 기초하여 상이하게 보일 수 있는데, 이는 후술될 것이다. 즉, 실세계 오브젝트(204)는 실세계 오브젝트(204)가 뷰잉되는 관점(예를 들어, 위치, 유리한 지점, 등)에 기초하여 상이하게 보일 수 있다.
3D 캡처 장치들(206)은 각각 실세계 장면(202)에 관련하여 고정될 수 있다. 예를 들어, 실세계 장면(202) 및 3D 캡처 장치들(206) 모두는 정지되어 있을 수 있고, 또는 실세계 장면(202) 및 3D 캡처 장치들(206)은 함께 움직일 수 있다. 몇몇 예들에서, 구성(200)에 도시된 바와 같이, 3D 캡처 장치들(206)은 실세계 장면(202)에 연관된 적어도 2 차원을 따라(예를 들어, 땅과 같은 평면을 따라) 실세계 장면(202)을 둘러쌀 수 있다. 어떤 예들에서, 3D 캡처 장치들(206)은 (예를 들어, 실세계 장면(202) 위 및 아래에 3D 캡처 장치들(206)을 포함시킴으로써) 3 차원을 따라 실세계 장면(202)을 둘러쌀 수 있다. 3D 캡처 장치들의 예들이 더 상세히 후술될 것이다.
유리한 지점들(208)은 3D 캡처 장치(206)에서 나오는 점선들에 의해 각각의 3D 캡처 장치(206)에 관련하여 나타내질 수 있다. 몇몇 예들에서, 구성(200)에 도시된 바와 같이, 유리한 지점들(208)은 각각 나중에 임의 가상 뷰포인트에서 실세계 장면(202)을 렌더링할 수 있기에 충분한 관점들에서 실세계 장면(202)을 캡처하도록 실세계 장면(202)을 향해 안쪽으로 기울어질 수 있다. 추가적으로, 동일한 또는 다른 예들에서, 하나 이상의 유리한 지점들(208)은 실세계 장면(202) 등을 둘러싸는 오브젝트들을 캡처하기 위해 바깥쪽으로 (예를 들어, 실세계 장면(202)에서 멀어져) 기울어질 수 있다. 예시로서, 추가적인 관점들에서 실세계 장면(202) 내에 포함된 오브젝트들을 캡처하고 및/또는 실세계 장면(202) 외부의 장치들을 캡처하기 위해, 구 모양의, 바깥쪽을 향하고 있는 유리한 지점을 갖는 360-도 캡처 장치가 실세계 장면(202)의 중앙 위치에 위치될 수 있다(명시적으로 도시되지 않음). 추가적으로 또는 대안적으로, 어떤 예들에서, 바깥쪽을 향하고 있는 복수의 유리한 지점들은 실세계 장면의 파노라마, 광각, 또는 360-도 뷰의 캡처를 허용할 수 있다.
어떤 예들에서, 시스템(100)(예를 들어, 실세계 장면 캡처 기능(102))은 하나 이상의 네트워크들 및/또는 임의의 다른 적합한 통신 인터페이스들, 프로토콜들, 및 기술들에 의해 3D 캡처 장치들(206)에 통신가능하게 연결될 수 있다. 따라서, 이 예들에서, 실세계 장면 캡처 기능(102)은 하나 이상의 네트워크들 및/또는 다른 통신 인터페이스들, 프로토콜들, 및 기술들을 통해 3D 캡처 장치들(206)로부터 제1의 복수의 표면 데이터 프레임들을 포함하는 제1 프레임 세트(및 후술될 다른 복수의 표면 데이터 프레임들을 포함하는 다른 프레임 세트들)를 수신할 수 있다. 예를 들어, 도시된 바와 같이, 구성(200) 내의 다양한 화살표들은 3D 캡처 장치들(206)과 시스템(100) 간의 통신들을 표현한다. 이들 통신들은 네트워크(예를 들어, 유선 또는 무선 근거리 네트워크, 광역 네트워크, 제공자 네트워크, 인트라넷, 등)를 통해, 유선 통신 인터페이스(예를 들어, 범용 직렬 버스(Universal Serial Bus)("USB"))를 통해, 무선 통신 인터페이스를 통해, 또는 임의의 다른 통신 인터페이스, 프로토콜, 및/또는 기술을 통해 구현될 수 있으며, 이는 특정 구현에 사용될 수 있다.
다른 예들에서, 복수의 3D 캡처 장치들은 시스템(100) 내에 통합되거나, 이와 달리 시스템(100)의 일부로서 (예를 들어, 실세계 장면 캡처 기능(102)의 일부로서) 포함될 수 있다. 이와 같이, 이 예들에서, 실세계 장면 캡처 기능(102)은 통합된 3D 캡처 장치들(206)을 사용하여 제1 프레임 세트를 캡처함으로써 제1 프레임 세트(및 다른 프레임 세트들)를 수신할 수 있다.
구성(200) 내의 3D 캡처 장치들(206)이 실세계 장면(202)을 표현하는 표면 데이터 프레임들(예를 들어, 전술된 바와 같은 실세계 장면 캡처 기능(102)에 의해 수신된 제1 프레임 세트 내의 제1의 복수의 표면 데이터 프레임들)을 어떻게 캡처하는지를 나타내기 위해, 도 3a는 도 3b 및 도 3c에 그래픽적으로 묘사된 표면 데이터 프레임을 캡처하는 3D 캡처 장치(206-1)를 도시한다.
도 3a에 도시된 바와 같이(그리고 도 2에 간단히 묘사된 바와 같이), 3D 캡처 장치(206-1)는 실세계 오브젝트(204)의 유리한 지점(208-1)을 갖기 위해, 실세계 장면(202) 내의 실세계 오브젝트(204)에 관련하여 배치될 수 있다. 게다가, 도 3a는, (도 2에 나타낸 다른 3D 캡처 장치들(206)과 함께) 3D 캡처 장치(206-1)가 실세계 오브젝트(204) 및/또는 실세계 장면(202)에 포함된 다른 오브젝트들을 나타내는 컬러 데이터(예를 들어, 풀 컬러 또는 그레이스케일 이미지를 표현하는 2D 비디오 데이터)를 캡처하도록 구성된 2D 비디오 캡처 장치(302) 및 실세계 오브젝트(204) 및/또는 실세계 장면(202)에 포함된 다른 오브젝트들을 나타내는 깊이 데이터를 캡처하도록 구성된 깊이 캡처 장치(304)를 포함할 수 있다는 것을 나타낸다.
2D 비디오 캡처 장치(302)는 임의의 적합한 2D 비디오 캡처 장치(예를 들어, 비디오 카메라, 등)로 구현될 수 있고, 임의의 방식으로 2D 비디오 데이터를 캡처할 수 있으며, 이는 특정 구현에 사용될 수 있다. 몇몇 예들에서, 2D 비디오 캡처 장치(302)는 깊이 캡처 장치(304)와 별개의 장치일 수 있다. 집합적으로, 이러한 별개의 장치들은 (예를 들어, 장치들을 기능적으로 병합하는데 사용되는 임의의 통신 인터페이스들 및/또는 다른 하드웨어 또는 소프트웨어 메커니즘들(mechanisms)도) 3D 캡처 장치(예를 들어, 3D 캡처 장치(206-1))로 언급될 수 있다. 다른 예들에서, 도 3a에 도시된 바와 같이, 2D 비디오 캡처 장치(302) 및 깊이 캡처 장치(304)는 2D 비디오 데이터 및 깊이 데이터 모두를 캡처하는 단일 장치(즉, 3D 캡처 장치(206-1))로 통합될 수 있으며, 이는 후술될 것이다.
별개의 장치로 구현되었든 또는 2D 비디오 캡처 장치(302)와 통합되었든, 깊이 데이터 캡처 장치(306)는 임의의 방식으로 실세계 장면(202)을 표현하는 깊이 데이터를 캡처할 수 있으며, 이는 특정 구현에 사용될 수 있다. 예시로서, 깊이 데이터 캡처 장치(306)는 구조화된 광 깊이 지도 캡처 기술, 입체적인 깊이 지도 캡처 기술, 비행-시간(time-of flight) 깊이 지도 캡처 기술, 다른 적합한 깊이 지도 캡처 기술, 또는 깊이 지도 캡처 기술들의 임의의 조합과 같은 하나 이상의 깊이 지도 캡처 기술들을 사용할 수 있으며, 이는 특정 구현에 사용될 수 있다.
깊이 데이터를 캡처하기 위해 사용되는 깊이 지도 캡처 기술들의 유형 및 개수에 상관없이, 3D 캡처 장치(206-1)에 의해 생성되는 각각의 표면 데이터 프레임은 유리한 지점(208-1)에서 실세계 오브젝트(204)의 표면들을 나타내는 컬러 데이터 및 깊이 데이터 모두를 포함할 수 있다. 마찬가지로, 다른 3D 캡처 장치들(206)에 의해 캡처되는 다른 표면 데이터 프레임들도 다른 3D 캡처 장치들(206)에 연관된 각각의 유리한 지점들(208)에서 실세계 오브젝트(204)의 표면들을 나타내는 컬러 데이터 및 깊이 데이터를 유사하게 포함할 수 있다.
도 3b 및 3c는 3D 캡처 장치(206-1)에 의해 캡처된 표면 데이터 프레임을 표현하는 데이터의 예시적인 그래픽 묘사들을 나타낸다. 구체적으로, 도시된 바와 같이, 표면 데이터 프레임은 적어도 2개의 구별되는 데이터세트들을 포함할 수 있다: 컬러 데이터(306)(도 3b에 도시됨) 및 깊이 데이터(308)(도 3c에 도시됨).
도 3b에서, 컬러 데이터(306)은 3D 캡처 장치(206-1) 내의 2D 비디오 캡처 장치(302)에 의해 유리한 지점(208-1)의 관점에서 뷰잉된 실세계 장면(202) 내의 실세계 오브젝트(204)를 묘사한다. 컬러 데이터(306)가 비디오 프레임들의 시퀀스 내의 단일 비디오 프레임을 표현할 수 있으므로, 컬러 데이터(306)에 의해 표면된 실세계 오브젝트(204)의 묘사는 실세계 오브젝트(204)가 (예를 들어, 실세계 장면(202)에 연관된 다른 오브젝트들도) 특정한 시점에 유리한 지점(208-1)에서 어떻게 보이는지를 표현할 수 있다. 도 3b에서는 이미지로 나타냈지만, 컬러 데이터(306)가 임의의 적합한 형태로 캡처, 부호화(encoding), 포맷, 트랜스미션, 및 표현될 수 있다는 것이 이해될 것이다. 예를 들어, 컬러 데이터(306)는 표준 비디오 부호화 프로토콜, 표준 이미지 포맷, 등에 따라 포맷된 디지털 데이터일 수 있다. 몇몇 예들에서, 컬러 데이터(306)는 실세계 장면(202) 내의 오브젝트들의 (예를 들어, 컬러 사진과 유사한) 컬러 이미지를 표현할 수 있다. 대안적으로, 다른 예들에서, 컬러 데이터(306)는 (예를 들어, 흑백 사진과 유사한) 오브젝트들을 나타내는 그레이스케일 이미지일 수 있다.
도 3c에서, 깊이 데이터(308)도 또한 (컬러 데이터(306)와 같이) 유리한 지점(208-1)의 관점에서 실세계 장면(202) 내의 실세계 오브젝트(204)를 묘사한다. 그러나, 실세계 오브젝트(204)의 가시적인 외형을 표현하기 (즉, 광이 실세계 오브젝트(204)의 표면들과 어떻게 상호작용하는지를 컬러 또는 그레이스케일로 표현하기) 보다, 깊이 데이터(308)는, 예를 들어, 3D 캡처 장치(206-1) 내의 깊이 캡처 장치(304)에 관련된 실세계 오브젝트(204)(및, 예를 들어, 실세계 장면(202) 내의 다른 오브젝트들)의 표면 상의 각각의 지점의 깊이(즉, 거리 또는 위치)를 표현할 수 있다. 컬러 데이터(306)와 같이, 깊이 데이터(308)는 임의의 적합한 형태로 캡처, 부호화, 포맷, 트랜스미션, 및 표현될 수 있다. 예를 들어, 도시된 바와 같이, 깊이 데이터(308)는 그레이스케일 이미지 데이터(예를 들어, 깊이 캡처 장치(304)로 캡처되는 각각의 화소에 대한 6 또는 8 비트들)로 표현될 수 있다. 그러나, (즉, 컬러 데이터(306) 내에 표현된 바와 같이) 실세계 오브젝트(204)의 표면들로부터 광이 어떻게 반사되는지를 표현하기 보다, 깊이 데이터(308)의 그레이스케일 이미지는, 이미지 내의 각각의 화소에 대해, 그 화소에 의해 표현된 지점이 깊이 캡처 장치(304)로부터 얼마나 멀리 있는지를 표현할 수 있다. 예를 들어, 깊이 캡처 장치(304)에 인접한 지점들은 더 어두운 회색 음영들을 표현하는 값들(예를 들어, 0b111111이 검정색을 표현하는 6-비트 구현의 경우, 0b111111에 인접한 이진 값들)로 표현될 수 있다. 반대로, 깊이 캡처 장치(304)로부터 더 멀리 떨어져있는 지점들은 더 밝은 회색 음영들을 표현하는 값들(예를 들어, 0b000000이 흰색을 표현하는 6-비트 구현의 경우, 0b000000에 인접한 이진 값들)로 표현될 수 있다.
전술된 바와 같이, 실세계 장면 캡처 기능(102)은 제1의 복수의 표면 데이터 프레임들을 포함하는 제1 프레임 세트 및 각각의 복수의 다른 표면 데이터 프레임들을 포함하는 하나 이상의 다른 프레임 세트들을 (예를 들어, 도 2 및 3a-3c에 관련하여 설명된 바와 같이, 3D 캡처 장치들(206)로부터) 수신할 수 있다. 나타내기 위해, 도 4는 상이한 유리한 지점들(208)에서 실세계 장면(202)을 표현하기 위해 3D 캡처 장치들(206)에 의해 캡처된 각각의 복수의 예시적인 표면 데이터 프레임들을 각각 포함하는 예시적인 복수의 프레임 세트들(402)(예를 들어, 프레임 세트들(402-1 내지 402-N))을 도시한다. 도 4에 도시된 표면 데이터 프레임들 상의 실세계 오브젝트(204)의 묘사들이 컬러 데이터(306) 내의 실세계 오브젝트(204)의 묘사와 유사하게 보일 수 있지만, 각각의 표면 데이터 프레임은 실세계 오브젝트(204) 및/또는 실세계 장면(202)에 포함된 다른 오브젝트들의 표면들을 표현하기 위해 사용될 수 있는 (예를 들어, 컬러 데이터(306)와 유사한) 컬러 데이터, (예를 들어, 깊이 데이터(308)와 유사한) 깊이 데이터, 및/또는 임의의 다른 적합한 데이터를 포함할 수 있다는 것이 이해될 것이다.
도 4는, 전술된 바와 같이, 비디오 프레임들의 각각의 시퀀스들이 각각의 개별적인 3D 캡처 장치(206)에 의해 어떻게 캡처될 수 있는지를 나타내기 위한 프레임 시퀀스들(404)(예를 들어, 프레임 시퀀스들(404-1 내지 404-8))을 더 도시한다. 구체적으로, 예시로서, 프레임 시퀀스(404-1)는 3D 캡처 장치(206-1)에 의해 순차적인 시점들에서 캡처된 표면 데이터 프레임들의 시퀀스를 표현할 수 있고, 프레임 시퀀스(404-2)는 3D 캡처 장치(206-2)에 의해 동일한 순차적인 시점들에서 캡처된 표면 데이터 프레임들의 시퀀스를 표현할 수 있는 등이다. 따라서, 프레임 세트(402-1) 및 그것 내에 묘사된 실세계 오브젝트(204)의 상이한 관점들에 의해 나타낸 바와 같이, 실세계 장면(202)은 특정한 프레임 세트(예를 들어, 프레임 세트(402-1)) 내에 포함된 상이한 표면 데이터 프레임들 내의 상이한 유리한 지점들(208)에서 뷰잉된 것으로 표현될 수 있다. 예를 들어, 프레임 세트(402-1) 내에 포함된 제1 표면 데이터 프레임(즉, 위에서 보이는 및 프레임 시퀀스(404-1) 내에 포함된 표면 데이터 프레임)은 유리한 지점(208-1)에서 캡처된 컬러 데이터 및 깊이 데이터를 표현할 수 있고, 프레임 세트(402-1) 내에 포함된 제2 표면 데이터 프레임(즉, 프레임 시퀀스(404-2) 내에 포함된 표면 데이터 프레임)은 유리한 지점(208-2)에서 캡처된 컬러 데이터 및 깊이 데이터를 표현할 수 있는, 등이다. 시퀀스 내에서 프레임 세트(402-1) 다음에 오는, 각각의 다른 프레임 세트들(402)(즉, "402-2 ... N"으로 라벨링된 프레임 세트들(402-2 내지 402-N))의 경우에 대해서도 또한 동일할 수 있다.
도 1로 되돌아가서, 병합된 현실 엔트리 상태 추적 기능(104)은 상이한 비디오 데이터 스트림들 내의 상이한 유리한 지점들로부터 표현된 가상 오브젝트 및 실세계 오브젝트에 기초하여 병합된 현실 장면을 생성하기 위해 사용되도록 엔트리 설명 데이터를 준비, 생성, 및/또는 유지하는 것에 연관된 다양한 동작들을 수행하는 하나 이상의 물리적 컴퓨팅 구성요소들(예를 들어, 실세계 장면 캡처 기능(102)과 별개인 또는 실세계 장면 캡처 기능(102)과 공유되는 하드웨어 및/또는 소프트웨어 구성요소들)을 포함할 수 있다. 예를 들어, 병합된 현실 엔트리 상태 추적 기능(104)은 실세계 장면 캡처 기능(102)이 복수의 3D 캡처 장치들(예를 들어, 3D 캡처 장치들(206))로부터 수신한 제1 프레임 세트(예를 들어, 프레임 세트(402-1)) 및 실세계 장면 캡처 기능(102)이 수신하고 다른 시점들(예를 들어, 시간 기간에 걸친 실세계 장면(202)을 표현하기 위한 제1 프레임 세트의 캡처 직전 및/또는 직후)에 캡처된 복수의 다른 프레임 세트들(예를 들어, 프레임 세트들(402-1 내지 402-N))에 기초하여 운송 스트림을 생성할 수 있다.
여기에 사용된 바와 같이, "데이터 스트림들" 및 "운송 스트림들"은 하나의 장치 또는 시스템에서 (데이터를 렌더링하거나 이와 달리 처리하거나 분석하는) 다른 것으로의 데이터의 트랜스미션(즉, 운송)을 용이하게 할 목적들 또는 다른 목적들을 위해 데이터를 패키징하는데 사용되는 데이터 구조들을 의미할 수 있으며, 이는 특정 구현에 사용될 수 있다. 몇몇 예들에서, 여기에 사용된 바와 같이, "운송 스트림"은 하나 이상의 비디오 데이터 스트림들과 같은 하나 이상의 다른 데이터 스트림들을 포함하는 및/또는 메타데이터 등과 같은 다른 데이터를 포함할 수 있는 단일 운송 스트림을 의미할 수 있다. 예를 들어, 병합된 현실 엔트리 상태 추적 기능(104)에 의해 생성된 운송 스트림은 복수의 3D 캡처 장치들(예를 들어, 3D 캡처 장치들(206)) 내의 각각의 3D 캡처 장치들에 대한 컬러 비디오 데이터 스트림 및 깊이 비디오 데이터 스트림을 포함할 수 있다. 즉, 단일 운송 스트림은 모든 비디오 데이터 스트림들(예를 들어, 각각의 3D 캡처 장치에 대한 하나의 컬러 비디오 데이터 스트림 및 각각의 3D 캡처 장치에 대한 하나의 깊이 비디오 데이터 스트림) 및 특정 구현에서 시스템(100)이 운송을 위해 포함할 수 있는 임의의 메타데이터 또는 다른 적합한 데이터를 운송하는데 사용될 수 있다. 다른 예들에서, 여기에 사용된 바와 같이, "운송 스트림"은 모든 비디오 데이터 스트림들을 집합적으로 운송하는 복수의 운송 스트림들을 의미할 수 있다. 예시로서, "운송 스트림"은, 각각이 상이한 특정 3D 캡처 장치의 컬러 비디오 데이터 스트림 및 깊이 비디오 데이터 스트림을 포함하거나, 각각이 복수의 컬러 및/또는 깊이 비디오 데이터 스트림들을 포함하는 개개의 운송 스트림들의 집합을 의미할 수 있고, 이는 특정 구현에 사용될 수 있다.
실례로서, 도 5는 예시적인 컬러 비디오 데이터 스트림(500-1-C) 및 예시적인 깊이 비디오 데이터 스트림(500-1-D)을 도시하는데, 이 둘 모두는 특정한 유리한 지점(208)에서 실세계 장면(202)을 표현하기 위해 특정 3D 캡처 장치(206)에 의해 캡처된 표면 데이터 프레임들에 기초한다. 구체적으로, 도시된 바와 같이, 컬러 비디오 데이터 스트림(500-1-C)은 (프레임 시퀀스의 깊이 부분과 반대로 프레임 시퀀스의 컬러('C') 부분을 나타내기 위해 프레임 시퀀스(404-1-C)로 라벨링된) 프레임 시퀀스(404-1) 내에 포함된 표면 데이터 프레임들의 컬러 데이터 부분들을 포함할 수 있고, 깊이 비디오 데이터 스트림(500-1-D)은 (프레임 시퀀스의 컬러 부분과 반대로 프레임 시퀀스의 깊이('D') 부분을 나타내기 위해 프레임 시퀀스(404-1-D)로 라벨링된) 프레임 시퀀스(404-1) 내에 포함된 표면 데이터 프레임들의 깊이 데이터 부분들을 포함할 수 있다.
컬러 비디오 데이터 스트림(500-1-C)은, 비디오 데이터 스트림이 실세계 장면(202) 상의 제1('1') 관점에 연관되고(즉, 3D 캡처 장치(206-1), 유리한 지점(208-1), 프레임 시퀀스(404-1), 등에 연관되고) 깊이 데이터가 아니라 컬러('C') 데이터에 연관된다는 것을 나타내기 위해 그렇게 라벨링된다. 마찬가지로, 깊이 비디오 데이터 스트림(500-1-D)은, 비디오 데이터 스트림이 또한 실세계 장면(202) 상의 제1('1') 관점에 연관되었지만 컬러 데이터가 아니라 깊이('D') 데이터에 연관된다는 것을 나타내기 위해 그렇게 라벨링된다. 추가적인 비디오 데이터 스트림들(500)(즉, 다른 도면들에 나타낸 비디오 데이터 스트림들(500), 그러나 여기 도 5에는 나타내지 않았음)도 유사한 방식으로 라벨링되고 참조될 수 있다는 것이 이해될 것이다. 비디오 데이터 스트림들(500)(예를 들어, 여기서 참조된 비디오 데이터 스트림들(500-1-C, 500-1-D) 및 다른 비디오 데이터 스트림들(500))은 임의의 프로토콜들, 포맷들, 등을 사용하여 생성, 저장, 트랜스미션, 및/또는 이와 달리 구현될 수 있으며, 이는 특정 구현에 사용될 수 있다. 예를 들어, 어떤 구현들에서, 프레임 시퀀스들(404-1-C 및 404-1-D)로부터의 컬러 및 깊이 데이터(및, 예를 들어, 하나 이상의 추가적인 프레임 시퀀스들로부터의 컬러 및/또는 깊이 데이터)는 타일 매핑(tile mapping) 또는 텍스처 아틀라이싱(texture atlasing) 기술을 사용하여 단일 비디오 데이터 스트림의 각각의 프레임의 개별적인 부분들(예를 들어, 개별적인 타일들, 줄무늬들, 등) 내에 표현될 수 있다.
도 6은 다른 컬러 비디오 데이터 스트림들 및 깊이 비디오 데이터 스트림들과 함께 컬러 비디오 데이터 스트림(500-1-C) 및 깊이 비디오 데이터 스트림(500-1-D)을 포함하는 예시적인 운송 스트림(600)을 나타낸다. 구체적으로, 도시된 바와 같이, 도 6은 도 2에 나타낸 3D 캡처 장치들(206) 및 유리한 지점들(208)에 연관된 컬러 비디오 데이터 스트림들(즉, 컬러 비디오 데이터 스트림들(500-1-C 내지 500-8-C)) 및 각각의 3D 캡처 장치들 및 유리한 지점들에 연관된 깊이 비디오 데이터 스트림들(즉, 깊이 비디오 데이터 스트림들(500-1-D 내지 500-8-D))을 포함하는 단일 운송 스트림(600)을 나타낸다. 다른 예들에서, 운송 스트림(600)은 다른 프로토콜들, 포맷들, 등을 사용하여 생성, 저장, 트랜스미션, 및/또는 이와 달리 구현될 수 있으며, 이는 특정 구현에 사용될 수 있다. 예시로서, 전술된 바와 같이, 다양한 프레임 시퀀스들로부터의 데이터가 타일 매핑 기술들, 등을 사용하여 하나의 비디오 데이터 스트림으로 (또는 도 6에 도시된 것보다 적은 비디오 데이터 스트림들을 갖는 복수의 비디오 데이터 스트림들로) 패키징될 수 있거나, 개별적인 운송 스트림들이 컬러 및 깊이 비디오 데이터 스트림들의 각각의 세트를 포함하도록 사용될 수 있다(예를 들어, 하나의 운송 스트림은 비디오 데이터 스트림들(500-1-C 및 500-1-D)을 포함하고, 다른 운송 스트림은 비디오 데이터 스트림들(500-2-C 및 500-2-D)을 포함하는 등).
도 1로 돌아가서, 병합된 현실 엔트리 상태 추적 기능(104)에 의해 생성된 운송 스트림(예를 들어, 운송 스트림(600) 내에 포함된 컬러, 깊이, 및 다른 데이터)에 기초하여, 병합된 현실 엔트리 상태 추적 기능(104)은 병합된 현실 장면의 3D 공간 내에 포함된 복수의 엔트리들을 나타내는 엔트리 설명 데이터를 생성할 수 있다. 병합된 현실 엔트리 상태 추적 기능(104)는 임의의 적합한 방식으로 엔트리 설명 데이터를 생성할 수 있다. 예를 들어, 병합된 현실 엔트리 상태 추적 기능(104)은 병합된 현실 장면의 복수의 엔트리들을 나타내는 엔트리 설명 데이터를 제작, 갱신, 수신, 추적, 유지, 분석, 조직화, 및/또는 이와 달리 처리할 수 있다. 더 상세하게 후술될 바와 같이, 병합된 현실 엔트리 상태 추적 기능(104)은 또한 엔트리 설명 데이터를 수정하기 위한 (예를 들어, 엔트리들을 추가, 제거, 대체, 이동, 회전, 확대, 또는 이와 달리 수정함으로써와 같이 하나 이상의 엔트리들을 수정하기 위한) 명령들을 수신하고, 엔트리 설명 데이터를 수정함으로써 그 명령들을 구현할 수 있다. 병합된 현실 엔트리 상태 추적 기능(104)은 각각의 엔트리에 대한 동적인 변화들을 표현하는 생성된 데이터에 대한 갱신들을 저장 및 유지하기 위해 저장 기능(106)과 상호동작함으로써 데이터를 더 생성할 수 있다.
여기에 사용된 바와 같이, 엔트리 설명 데이터가 생성된 "엔트리"는 가상 3D 공간(예를 들어, 병합된 현실 장면의 3D 공간)에 연관될 수 있는 임의의 실세계 또는 가상 아이템을 의미할 수 있다. 예를 들어, 병합된 현실 엔트리 상태 추적 기능(104)이 데이터를 생성한 엔트리들 중에서, 병합된 현실 장면의 3D 공간은 하나 이상의 가상 오브젝트들과 같은 가상 엔트리들 및/또는 3D 공간 내의 복수의 가상 뷰포인트들(예를 들어, 다양한 상이한 관점들에서 3D 공간을 캡처하기 위해 3D 공간에 관련하여 특정한 방식들로 위치되고 기울어진 가상 캡처 장치들과 유사할 수 있음), 전술된 바와 같이 데이터가 3D 캡처 장치들에 의해 캡처된 실세계 엔트리들(예를 들어, 데이터가 3D 캡처 장치들(206)에 의해 캡처된 실세계 오브젝트(204)) 및/또는 임의의 다른 실세계 또는 가상 엔트리들을 포함할 수 있으며, 이는 특정 구현에 사용될 수 있다.
더 상세히 후술될 바로서, 엔트리 설명 데이터가 생성된, 3D 공간 내에 포함된 각각의 엔트리는 임의의 방식으로 엔트리 설명 데이터에 정의될 수 있으며, 이는 특정 구현에 사용될 수 있다. 예를 들어, (예를 들어, 후술된 바와 같이 저장 기능(106) 내에 저장될 수 있는) 엔트리 설명 데이터 자체는 3D 공간 내에서의 엔트리의 위치에 연관된 좌표 정보, 3D 공간 내에서의 엔트리의 방향에 연관된 방향 정보, 엔트리가 3D 공간 내에서 얼마나 크게 보이도록 만들어졌는지에 연관된 크기 정보, 등과 같은 3D 공간 내의 특정 엔트리의 상태를 정의하는 데이터를 포함할 수 있다. 그러나, 몇몇 예들에서, 특정 엔트리에 연관된 어떤 정보(예를 들어, 3D 모델, 텍스처, 등을 표현하는 이진 정보)는 직접적으로 엔트리 설명 데이터의 일부로서 유지되지 않고, 다른 곳에 유지되어 엔트리 설명 데이터로부터 링크될 수 있다.
예를 들어, 병합된 현실 엔트리 상태 추적 기능(104)이 엔트리 설명 데이터를 생성한 복수의 엔트리들은 시스템(100)에 통신가능하게 연결되고 및/또는 시스템(100) 내에 통합된 자산 저장 시스템 내에 저장된 가상 오브젝트의 표면들의 컬러 데이터 및 깊이 데이터에의 링크들에 의해 엔트리 설명 데이터 내에 적어도 부분적으로 정의된 가상 오브젝트를 포함할 수 있다. 복수의 엔트리들은, 예를 들어, 전술된 3D 캡처 장치들(206)에 의해 캡처된 실세계 오브젝트(204)를 더 포함할 수 있다. 이와 같이, 실세계 오브젝트(204)는 운송 스트림 내에 포함된 컬러 비디오 데이터 스트림들 및 깊이 비디오 데이터 스트림들(예를 들어, 운송 스트림(600) 내의 컬러 비디오 데이터 스트림들(500-1-C 내지 500-8-C) 및 깊이 비디오 데이터 스트림들(500-1-D 내지 500-8-D)) 내에 포함된 실세계 오브젝트(204)의 표면들의 컬러 데이터 및 깊이 데이터에의 링크들에 의해 엔트리 설명 데이터 내에 적어도 부분적으로 정의될 수 있다. 게다가, 복수의 엔트리들은, 제2의 복수의 표면 데이터 프레임들을 포함하는 제2 프레임 세트가 렌더링되는 3D 공간 내의 복수의 가상 뷰포인트들을 포함할 수 있다. 예를 들어, 실세계 장면(202) 내의 실세계 오브젝트(204)의 컬러 및 깊이 데이터는 나타내는, 제1 프레임 세트(즉, 프레임 세트(402-1)) 및 전술된 다른 프레임 세트들(즉, 프레임 세트들(402-2 내지 402-N)) 내에 포함된 표면 데이터 프레임들과 대조적으로, 제2 프레임 세트 내에 포함된 제2의 복수의 표면 데이터 프레임들은 병합된 현실 장면의 3D 공간 내에 포함된 실세계 오브젝트(204) 및 하나 이상의 가상 오브젝트들 모두의 표면들의 컬러 데이터 및 깊이 데이터를 표현하도록 렌더링될 수 있다. 실세계 및 가상 오브젝트들 모두를 표현하는 제2 프레임 세트 및 추가적인 프레임 세트들이 아래에 더 상세하게 나타내지고 설명될 것이다.
몇몇 예들에서, 시스템(100)(예를 들어, 시스템(100)의 병합된 현실 엔트리 상태 추적 기능(104) 또는 다른 기능)은 적어도 하나의 엔트리의 상태를 나타내는 엔트리 설명 프레임을 생성할 수 있다. 예시로서, 시스템(100)은 병합된 현실 엔트리 상태 추적 기능(104)에 의해 생성된 복수의 엔트리들을 나타내는 엔트리 설명 데이터에 기초하여 엔트리 설명 프레임을 생성할 수 있다. 엔트리 설명 프레임은 하나 또는 몇 개의 엔트리들을 표현할 수 있거나, 또는 몇몇 예들에서는, 시간적 시퀀스 내의 특정 시점(예를 들어, 실시간의 특정 순간, 실시간과 무관한 가상의 시간선 상의 순간을 표현하는 특정 시점, 등)에 병합된 현실 장면의 3D 공간 내의 복수의 엔트리들 내의 모든 실세계 및 가상 엔트리들을 표현할 수 있다.
여기에 사용된 바와 같이, "엔트리 설명 프레임"은 병합된 현실 장면의 3D 공간 내에 포함된 하나 이상의 엔트리들의 상태를 설명하는 (예를 들어, 자바 스크립트 오브젝트 표기법(Java Script Object Notation)("JSON") 등과 같은 언어로 표현된 오브젝트 설명 데이터를 포함하는) 데이터세트를 의미할 수 있다. 예를 들어, 엔트리 설명 프레임은 시간적 시퀀스 내의 특정 시점에 3D 공간 내에 포함된 몇몇의 엔트리들 각각을 설명하는 데이터를 포함할 수 있다. 예시로서, 엔트리 설명 프레임은 전술된 좌표 정보, 방향 정보, 크기 정보, 및 다른 유형들의 상태 데이터와 같은 상태 데이터뿐만 아니라, 각각의 엔트리에 대한 하나 이상의 이동 벡터들, 각각의 엔트리의 다양한 표면들에 대한 컬러들 및/또는 텍스처들, 및/또는 시간적 시퀀스 내의 특정 시점에 특정한 엔트리들을 설명하기 위해 사용될 수 있는 임의의 다른 상태 데이터를 포함할 수 있으며, 이는 특정 구현에 사용될 수 있다. 몇몇 예들에서, 엔트리 설명 프레임은 전술된 바와 같은 엔트리 설명 데이터에 포함된 (예를 들어, 가상 오브젝트에 대한 자산 저장 시스템, 실세계 오브젝트에 대한 운송 스트림, 등에 대한) 링크들을 포함할 수 있다. 예시적인 엔트리 설명 프레임들이 아래에 더 상세하게 설명 및 나타내질 것이다.
시스템(100)이 엔트리 설명 프레임을 생성하면, 시스템(100)은 엔트리 설명 프레임을 콘텐츠 제공자 시스템에 연관된 복수의 서버측 3D 렌더링 엔진들(예를 들어, 시스템(100), 3D 렌더링 엔진들, 및 여기에 설명된 다른 서버측 시스템들 및 구성요소들과 협동하는 가상 현실 미디어 콘텐츠 시스템)에 제공할 수 있다. 여기에 사용된 바와 같이, "서버측"은 콘텐츠 제공자 시스템이 콘텐츠(예를 들어, 가상 현실 미디어 콘텐츠)를 최종 사용자에 의해 사용되는 클라이언트 장치에 제공하는 트랜젝션(transaction)과 같은 서버-클라이언트 트랜젝션의 서버 측(예를 들어, 제공자 측)을 의미할 수 있다. 예를 들어, 더 상세히 후술될 바로서, 가상 현실 미디어 콘텐츠 제공자 시스템은 사용자에 연관된 미디어 플레이어 장치에 가상 현실 미디어 콘텐츠를 제공할 수 있다. 이와 같이, 서버측 시스템들 및 구성요소들은 데이터(예를 들어, 가상 현실 미디어 콘텐츠)를 미디어 플레이어 장치에 (예를 들어, 네트워크를 통해) 제공하기 위해 콘텐츠 제공자 시스템에 연관된 (예를 들어, 그것에 포함된, 그것으로 구현된, 그것과 상호동작하는, 등) 그러한 시스템들 및 구성요소들을 의미할 수 있다. 반대로, "클라이언트 측" 장치들은 네트워크의 다른 측 상에서 사용자에 의해 사용되는 클라이언트 장치(예를 들어, 미디어 플레이어 장치)에 연관될 수 있고, 클라이언트 장치(예를 들어, 네트워크의 사용자 측 상에서 사용자에 의해 동작되는 미디어 플레이어 장치 및/또는 다른 컴퓨터 구성요소들)가 콘텐츠 제공자 시스템으로부터 데이터를 수신하는 것을 용이하게 하는 장치들을 포함할 수 있다.
따라서, 아래에 나타내고 설명될 바와 같이, 3D 렌더링 엔진들은 시스템(100)의 하드웨어 및/또는 소프트웨어 자원들과 통합되거나, 그들과 별개이면서 통신가능하게 연결될 수 있는 하드웨어 및/또는 소프트웨어 자원들에 의해 네트워크의 서버 측 상에 구현될 수 있다(즉, 시스템(100) 및/또는 콘텐츠 제공자 시스템의 다른 요소들과 연관될 수 있음). 3D 렌더링 엔진들 각각은 3D 공간으로의 복수의 가상 뷰포인트들로부터의 상이한 가상 뷰포인트에 연관될 수 있고, 제2 프레임 세트(즉, 병합된 현실 장면의 3D 공간의 실세계 및 가상 오브젝트들 모두를 표현하는 제2 프레임 세트) 내의 제2의 복수의 표면 데이터 프레임들 내에 포함된 상이한 각각의 표면 데이터 프레임을 렌더링하도록 구성될 수 있다(예를 들어, 각각은 시스템(100)에 의해 제공된 동일한 엔트리 설명 프레임에 기초함).
저장 기능(106)은 특정 구현에서 기능들(102 또는 104)에 의해 수신, 생성, 관리, 추적, 유지, 사용, 및/또는 트랜스미션된 임의의 적합한 데이터를 저장 및/또는 관리할 수 있다. 예를 들어, 도시된 바와 같이, 저장 기능(106)은 병합된 현실 장면의 3D 공간 내에 포함된 하나 이상의 실세계 오브젝트들(예를 들어, 실세계 오브젝트(204))에 연관된 데이터(예를 들어, 캡처된 컬러 및/또는 깊이 데이터, 상태 데이터, 엔트리 설명 데이터, 등)를 포함할 수 있는 실세계 오브젝트 데이터(108) 및 3D 공간 내의 하나 이상의 가상 오브젝트들 또는 가상 뷰포인트들에 연관된 데이터(예를 들어, 컬러 및/또는 깊이 데이터, 상태 데이터, 엔트리 설명 데이터, 등)를 포함할 수 있는 가상 엔트리 데이터(110)를 포함할 수 있다. 추가적으로, 저장 기능(106)은 병합된 현실 장면의 3D 공간 내에 포함된 다른 유형들의 엔트리들에 연관된 데이터, 여기에 설명된 동작들을 수행하기 위한 명령어들(예를 들어, 프로그래밍 명렁어들), 및/또는 여기에 설명된 동작들을 수행할 때 기능들(102 및 104)에 의해 사용되기에 적합한 임의의 다른 데이터를 포함할 수 있다. 예를 들어, 저장 기능(106)은 표면 데이터 프레임들, 엔트리 설명 프레임들, 등에 연관된 데이터(예를 들어, 오브젝트 설명 데이터, 컬러 데이터, 깊이 데이터, 오디오 데이터, 메타데이터, 등)를 더 포함할 수 있다. 저장 기능(106)은 또한 추가적인 또는 대안적인 데이터도 유지할 수 있으며, 이는 특정 구현에 사용될 수 있다.
몇몇 예들에서, 시스템(100)은 여기에 설명된 하나 이상의 동작들을, 이벤트들이 실세계 장면 내에서 일어나고 있을 때 실시간으로 또는 거의 실시간으로 수행될 수 있다. 따라서, 시스템(100)이, 다른 시스템들이 또한 실시간으로 동작하는 가상 현실 미디어 콘텐츠 제공자 파이프라인 내에서 사용되는 구현들에서, 가상 현실 미디어 콘텐츠(예를 들어, 시스템(100)에 의해 실시간으로 생성되는 가상화된 표면 데이터 프레임 시퀀스들을 포함하는 가상 현실 미디어 콘텐츠)가 미디어 플레이어 장치들에 제공되어, 실세계 장면에 물리적으로 인접하게 위치해 있지 않지만 실세계 장면(예를 들어, 이벤트들이 실세계 장면 내에서 일어남)을 경험하길 원할 수 있는 미디어 플레이어 장치들의 각각의 사용자들은 그들의 각각의 미디어 플레이어 장치들을 사용하여 실세계 장면 및 그것 내에서 라이브로 일어나고 있는 이벤트들을 가상적으로 경험할 수 있다. 사용자가 정확히 실세계 장면 내에서 이벤트들이 일어날 때 실세계 장면을 경험할 수 없게, 데이터 처리 및 데이터 분배가 한정된 양의 시간을 취할 수 있지만, 여기에 사용된 바와 같이, 동작이 즉각적으로 및 지나치게 지연되지 않으면서 수행될 때 동작은 "실시간" 또는 "거의 실시간"으로 수행된다고 고려된다. 따라서, 사용자가 실세계 장면 내의 특정 이벤트들을 지연 후(예를 들어, 실제로 일어난 몇 초 또는 몇 분 후)에 경험하더라도, 사용자는 실세계 장면을 실시간으로 경험했다고 말해질 수 있다.
어떤 예들에서, 상이한 비디오 데이터 스트림들 내에 상이한 유리한 지점들로부터 표현된 가상 오브젝트 및 실세계 오브젝트에 기초하여 병합된 현실 장면을 생성하고, 사용자가 병합된 현실 장면을 경험하도록 허용하기 위해 사용자에게 표시될 병합된 현실 장면을 표현하는 데이터를 (예를 들어, 가상 현실 미디어 콘텐츠의 일부로서) 제공하기 위해, 시스템(100)은 콘텐츠 제공자 시스템(예를 들어, 가상 현실 미디어 콘텐트 제공자 시스템) 내의 다양한 구성들과 함께 포함되는 다양한 다른 서버측 시스템들(예를 들어, 3D 캡처 장치들, 장면 제어 시스템들, 자산 저장 시스템들, 비디오 데이터 패키징 시스템들, 3D 렌더링 엔진들, 등)과 연관될 수 있다.
몇몇 구현들에서, 이들 다른 서버측 시스템들의 하나 이상은 시스템(100)과 통합(예를 들어, 그것 내에 포함)되거나, 이와 달리 시스템(100)에 밀접하게 연관(예를 들어, 시스템(100)에 통신가능하게 연결, 동일한 또는 관련된 가상 현실 미디어 제공자 엔트리들에 의해 동작, 등)될 수 있다는 것이 이해될 것이다. 예를 들어, 특정 구현에서, 시스템(100)은 실세계 장면 내에 포함된 실세계 오브젝트를 나타내는 데이터를 캡처하기 위한 실세계 장면의 복수의 상이한 유리한 지점들을 갖기 위해 실세계 장면에 관련하여 배치된 복수의 3D 캡처 장치들, 가상 오브젝트의 표면들을 나타내는 컬러 및 깊이 데이터를 저장하는 자산 저장 시스템, 자산 저장 시스템에 통신가능하게 연결된 복수의 서버측 3D 렌더링 엔진들, 및 복수의 3D 캡처 장치들, 자산 저장 시스템, 및/또는 복수의 서버측 3D 렌더링 엔진들에 통신가능하게 연결된 엔트리 상태 추적 시스템을 포함할 수 있다. 엔트리 상태 추적 시스템은 기능들(102 내지 106)에 관련하여 전술된 동작들 중 하나 이상을 수행하도록 구성될 수 있다. 다른 구현들에서, 시스템은 이들 다른 서버측 시스템들과 통합되지는 않았지만 다른 서버측 시스템들과 통신가능하게 연결되거나 및/또는 다른 서버측 시스템들과 이와 달리 상호동작하도록 구성된, 별개의 독립형 시스템으로 구현될 수 있다.
예로서, 도 7은, 시스템(100)이 상이한 비디오 데이터 스트림들 내의 상이한 유리한 지점들로부터 표현된 가상 오브젝트 및 실세계 오브젝트에 기초하여 병합된 현실 장면을 생성하는 것을 용이하게 하는 예시적인 구성(700)을 도시한다. 도 7에 도시된 바와 같이, 시스템(100)의 구현은 복수의 장면 제어 시스템들(702)(예를 들어, 장면 제어 시스템들(702-1 내지 702-N)) 및 복수의 서버측 3D 렌더링 엔진들(704)(예를 들어, 3D 렌더링 엔진들(704-1 내지 704-N))에 통신가능하게 연결될 수 있다. 예를 들어, 시스템(100)은 (예를 들어, 여기에 설명된 임의의 네트워크들 또는 네트워크 기술들을 포함하는) 하나 이상의 네트워크들을 통해 또는 다른 통신 모드들을 통해 장면 제어 시스템들(702) 및/또는 3D 렌더링 엔진들(704)에 통신가능하게 연결될 수 있으며, 이는 특정 구현에 사용될 수 있다. 구성(700)에 도시된 바와 같이, 기능들(102 내지 106)에 관련하여 전술된 동작들을 수행하는 엔트리 상태 추적 시스템은 시스템(100)에 의해 구현될 수 있다. 전술된 바와 같이, 다른 구현들에서, 시스템(100)은 이들 동작들을 수행하도록 구성된 엔트리 추적 시스템 및 구성(700)에 나타낸 하나 이상의 다른 시스템들 및 장치들 모두를 실시할 수 있다.
복수의 엔트리들을 나타내는 엔트리 설명 데이터(예를 들어, 가상 오브젝트, 실세계 오브젝트, 복수의 가상 뷰포인트들, 및 엔트리 설명 데이터가 전술된 바와 같이 시스템(100)에 의해 생성된 다른 엔트리들을 나타내는 데이터)에 기초하여, 시스템(100)은 시간적 시퀀스 내의 특정 시점에 병합된 현실 공간의 3D 공간 내에 포함된 복수의 엔트리들 내의 적어도 하나의 엔트리의 상태를 나타내는 엔트리 설명 프레임을 생성할 수 있다. 시스템(100)은 또한 생성된 엔트리 설명 프레임을 엔트리 설명 프레임(706)으로서 3D 렌더링 엔진들(704)에 (예를 들어, 3D 렌더링 엔진들(704)과의 통신 접속을 통해) 제공할 수 있다. 엔트리 설명 프레임(706) 및 (3D 렌더링 엔진들(704)에 통신가능하게 연결될 수 있는) 자산 저장 시스템(708) 및 (시스템(100) 또는 다른 적합한 시스템의 저장 기능 내에 저장될 수 있는) 운송 스트림(600)으로부터 요구 및 수신된 데이터에 기초하여, 3D 렌더링 엔진들(704)은 복수의 표면 데이터 프레임들(710-1 내지 710-N)을 렌더링할 수 있다. 구체적으로, 표면 데이터 프레임들(710-1 내지 710-N)은 전술된 제2의 복수의 표면 데이터 프레임들을 포함하는 제2 프레임 세트를 구현할 수 있고, 아래에서 집합적으로 프레임 세트(710)로 언급될 수 있다. 이와 같이, 프레임 세트(710) 내의 표면 데이터 프레임들(710-1 내지 710-N)은 가상 오브젝트(예를 들어, 도 8에 관련하여 후술된 가상 오브젝트(804)) 및 실세계 오브젝트(예를 들어, 실세계 오브젝트(204)) 모두의 표면의 컬러 데이터 및 깊이 데이터를 표현할 수 있고, 비디오 데이터 패키징 시스템(712)에 제공될 수 있다. 시스템(100) 및 운송 스트림(600)은 상세하게 전술되어 있다. 구성(700)에 나타낸 다른 시스템들 및 아이템들 각각이 이제 더 상세하게 설명될 것이다.
장면 제어 시스템들(702)은 병합된 현실 장면의 3D 공간 내에 포함된 하나 이상의 엔트리들(예를 들어, 시스템(100)에 의해 데이터가 생성된 엔트리들)에 대한 변화들을 요청 및/또는 이와 달리 구현하도록 구성된 임의의 컴퓨팅 시스템들을 표현할 수 있다. 예를 들어, 하나 이상의 장면 제어 시스템들(702)(예를 들어, 장면 제어 시스템(702-1))은 병합된 현실 장면의 3D 공간 내에 포함된 엔트리들을 나타내는 데이터를 원래 생성할 책임이 있는 콘텐츠 제작자에 연관(예를 들어, 그에 의해 생성, 그에 의해 동작, 등)될 수 있다. 추가적으로, 어떤 구현들에서, 하나 이상의 다른 장면 제어 시스템들(예를 들어, 장면 제어 시스템(702-2))은 병합된 현실 장면의 3D 공간을 경험하고 있는 최종 사용자에 연관될 수 있다. 예를 들어, 미디어 플레이어 장치의 사용자가 병합된 현실 장면의 3D 공간 내의 엔트리들을 경험하고 그들과 상호작용하도록 허용하기 위해, 장면 제어 시스템(702-2)은 현재 엔트리들을 렌더링하는 미디어 플레이어 장치에 의해 구현될 수 있다.
시스템(100)이 3D 공간 내에 포함된 모든 실세계 및 가상 엔트리들을 나타내는 하나의 통일된 데이터 세트(예를 들어, 각각의 장면 제어 시스템(702)에 대한 엔트리들을 나타내는 개별적인 데이터 세트들과 반대임)를 생성할 수 있기 때문에, 엔트리들에 대한 수정들은, 각각의 장면 제어 시스템들(702)이 이러한 수정을 행할 때, 통일된 데이터 세트 내에 반영될 수 있다. 따라서, 다수의 사용자들(즉, 상이한 장면 제어 시스템들(702)에 연관된 상이한 사용자들)은 모두 동일한 병합된 현실 장면의 동일한 3D 공간을 수정할 수 있다. 그 결과, 모든 장면 제어 시스템들(702)에 의해 만들어진 수정들은 시스템(100)에 의해 출력된 엔트리 설명 프레임들(예를 들어, 엔트리 설명 프레임(706))에 반영될 수 있고, 결국 3D 렌더링 엔진들(704)에 의해 렌더링되는 각각의 표면 데이터 프레임들(예를 들어, 프레임 세트(710) 내에 포함된 표면 데이터 프레임들(710-1 내지 710-N)) 내에 반영될 수 있다.
장면 제어 시스템들(702)이 3D 공간 내의 엔트리들을 어떻게 수정할 수 있는지를 나타내기 위해, 도 8은 복수의 엔트리들을 포함하는 예시적인 병합된 현실 장면(800)을 도시한다. 도시된 바와 같이, 병합된 현실 장면(800)은 (전술된) 실세계 오브젝트(204) 및 가상 오브젝트(804)를 포함하는 3D 공간(802)에 연관된다. 오브젝트들(204 및 804)은 복수의 가상 뷰포인트들(806)(예를 들어, 가상 뷰포인트들(806-1 내지 806-N))에 의해 둘러싸여 있다.
전술된 실세계 장면(202)과 같이, 병합된 현실 장면(800)은 (즉, 적어도 하나의 가상 오브젝트 및 적어도 하나의 실세계 오브젝트의 표현을 포함하는) 병합된 현실 요소들을 포함하는 임의의 적합한 크기, 모양, 또는 유형의 장면을 표현할 수 있다. 예시로서, 도 8 내의 3D 공간(802)을 원 형태로 나타낸 바와 같이, 3D 공간(802)은 무대, 경기장, 등과 같은 구체적으로 묘사된 영역을 표현할 수 있다. 반대로, 다른 예들에서, 3D 공간(802)은 그렇게 잘 정의 또는 묘사되지 않을 수 있다. 예를 들어, 3D 공간(802)은 실 세계(예를 들어, 실세계 장면, 이벤트, 경치, 구조물, 등)에 기초한 또는 공상 세계나 다른 가상 세계, 이벤트, 경치, 구조물, 등에 기초한 임의의 실내 또는 실외 위치를 표현할 수 있다.
전술된 바와 같이, 실세계 오브젝트(204)는 실세계 장면(예를 들어, 실세계 장면(202))으로부터 캡처되어 병합된 현실 장면(800)의 3D 공간(802)으로 투사된 임의의 오브젝트를 표현할 수 있다. 마찬가지로, 가상 오브젝트(804)는 병합된 현실 장면(800)을 생성하기 위해 실세계 오브젝트(204)와 함께 3D 공간(802)에 투사된 가상 오브젝트를 표현할 수 있다. 이와 같이, 가상 오브젝트(804)는, 생물이던 무생물이던, 적어도 하나의 가상 뷰포인트들(806)로부터 탐지가능한(예를 들어, 뷰잉가능한) 임의의 가상 오브젝트일 수 있다. 실세계 오브젝트(204)와 같이, 명료함을 위해 가상 오브젝트(804)가 비교적 간단한 기하학적 모양으로 그려졌지만, 가상 오브젝트(804)는 다양한 수준들의 복잡도를 갖는 다양한 유형들의 오브젝트들을 표현할 수 있다는 것이 이해될 것이다. 기하학적 모양 보다는, 예시로서, 가상 오브젝트(804)는 사람이나 다른 생물, 불투명한 고체, 액체, 가스, 또는 벽, 천장, 바닥과 같은 거의 끊김이 없는 오브젝트, 또는 여기에 설명된 임의의 다른 유형의 오브젝트와 같은 임의의 생물 또는 무생물 오브젝트 또는 표면을 표현할 수 있으며, 또는 이는 특정 구현에 사용될 수 있다. 또한 실세계 오브젝트(204)와 같이, 가상 오브젝트(804)가 각각의 상이한 가상 뷰포인트(806)에서 뷰잉될 때 상이하게 보일 수 있도록, 가상 오브젝트(804)도 다양한 표면들을 포함할 수 있으며, 이는 후술될 것이다.
3D 공간(802) 내의 가상 뷰포인트들(806)도 또한 병합된 현실 장면(800) 내에 나타내진다. 여기서 사용된 바와 같이, 3D 공간 "내의" 가상 뷰포인트는 임의의 적합한 방식으로 3D 공간에 관련하여 위치된, 기울어진, 향해있는, 등의 가상 뷰포인트를 의미할 수 있다. 예를 들어, 3D 공간 내의 가상 뷰포인트는 3D 공간의 적어도 몇몇의 부분의 뷰를 제공하기 위해, 3D 공간 내에 포함된, 3D 공간을 들여다보는 관점으로 3D 공간 외부에 있는, 다른 가상 뷰포인트들과 함께 3D 공간을 둘러싸는, 및/또는 임의의 적합한 방식으로 3D 공간에 이와 달리 연관된 가상 뷰포인트일 수 있다.
여기서 사용된 바와 같이, 가상 뷰포인트들(806)과 같은 "가상 뷰포인트들"은 (예를 들어, 위에서 도 2와 관련하여 실세계 장면(202)이 캡처된다고 설명되었던 3D 캡처 장치들(206)의 유리한 지점들(208)과 같은) 실세계 장면을 캡처하는 3D 캡처 장치들에 관련하여 설명된 "유리한 지점들"과 유사할 수 있다(그러나 상이하기도 함). 구체적으로, 가상 뷰포인트들은 유리한 지점들과 유사할 수 있는데, 그 둘 모두가 어떤 유형의 장면 또는 3D 공간을 뷰잉하는 특정 위치들, 각도들, 및/또는 관점들에 연관된다는 점에서 그러하다. 이 방식으로, 가상 뷰포인트들은 여기서 설명된 실제의 물리적 3D 캡처 장치들과 유사한 가상 3D 캡처 장치들로 생각될 수 있다. 그러나, 유리한 지점들이 실세계 위치들에 배치된 물리적 3D 캡처 장치들과 연관관계가 있을 수 있지만, 가상 뷰포인트들은 단지 가상적인 개념으로만 존재할 수 있다.
예시로서, 병합된 현실 장면의 3D 공간이 실세계 장면에 기초하는 예에서, 가상 뷰포인트들은 실세계 장면에 연관된 가상 위치들(예를 들어, 실세계 장면이 캡처되는 유리한 지점들의 위치들과 같은 가상 위치들)과 연관관계가 있을 수 있다. 그러나, 3D 공간이 실세계 장면에 기초하든 또는 가상 장면에 기초하든, 가상 뷰포인트들은 단지 가상적인 것일 뿐이고, 따라서 실세계 위치들에 배치된 임의의 물리적 3D 캡처 장치들에 반드시 대응하지 않을 수 있다. 그 결과, 실세계 장면의 복수의 상이한 유리한 지점들(예를 들어, 실세계 장면(202)의 유리한 지점들(208))의 제1 공간 구성은 병합된 현실 장면의 3D 공간 내의 복수의 가상 뷰포인트들(예를 들어, 3D 공간(802) 내의 가상 뷰포인트들(806))의 제2 공간 구성과 별개일 수 있다. 예를 들어, 3D 공간(802)이 유리한 지점들(208)에 배치된 3D 캡처 장치들(206)에 의해 캡처된 실세계 장면(202)에 기초하더라도, 어떤 예들에서, 가상 뷰포인트들(806)은 반드시 유리한 지점들(208)에 맞춰 정렬될 필요는 없으며, 오히려 유리한 지점들(208)과 별개일(즉, 상이한 각각의 위치들에 위치하고 및/또는 장면 상에서 상이한 각각의 각도들 및 관점들을 가질) 수 있다. 다른 예들에서, 가상 뷰포인트들(806)은 각각의 유리한 지점들(208)에 맞춰 정렬되고 및/또는 그들과 연관관계가 있을(예를 들어, 종속적일) 수 있다.
도시된 바와 같이, 각각의 가상 뷰포인트(806)는 3D 공간(802)에 관련하여 특정 위치에 배치된 라벨링된 원으로 도 8에 표현될 수 있다. 각각의 가상 뷰포인트는 가상 뷰포인트(806)에 연관된 시계를 나타내기 위해 그것으로부터 나오는 점선들로 묘사된다. 가상 뷰포인트들(806)에 연관된 위치들은 3D 공간(802)에 관련하여 고정될 수 있지만, 후술될 바와 같이, 그 고정된 위치들은 장면 제어 시스템들(702) 중 하나에 의해 수정될 수 있다. 추가적으로, 몇몇 예들에서, 3D 공간(802) 및 가상 뷰포인트들(806)은 (예를 들어, 우주선, 열기구, 등과 같은 탈 것 전용 3D 공간과 같은) 병합된 현실 장면(800)을 함께 지나치며 이동할 수 있는 것이 이해될 것이다. 도시된 바와 같이, 몇몇 예들에서, 가상 뷰포인트들(806)이 배치된 고정된 위치들은 3D 공간(802)에 연관된 적어도 2 차원을 따라 (예를 들어, 땅과 같은 평면을 따라) 3D 공간(802)을 둘러쌀 수 있다. 다른 예들에서, 위치들(806)은 (예를 들어, 또한 802 위아래에 위치들(806)을 포함시킴으로써) 3 차원을 따라 3D 공간(802)을 더 둘러쌀 수 있다.
도 8에 나타낸 각각의 가상 뷰포인트들(806)은, 3D 공간(802)이 나중에 임의 가상 뷰포인트들에서 렌더링될 수 있도록 다양한 각도들에서 3D 공간(802)을 캡처하기 위해 3D 공간(802)을 향해 안쪽으로 기울어지지만, 어떤 예들에서는, 하나 이상의 가상 뷰포인트들(806)이 3D 공간(802)을 둘러싸는 오브젝트들에 대한 관점을 획득하기 위해 바깥쪽으로 (예를 들어, 3D 공간(802)으로부터 멀어져) 기울어질 수 있다는 것이 이해될 것이다. 예시로서, 360-도 가상 뷰포인트가 3D 공간(802)의 중앙에 위치되어(명시적으로 도시되지 않음), 추가적인 관점들에서 3D 공간(802) 내에 포함된 실세계 및/또는 가상 오브젝트들을 나타내는 데이터 및/또는 3D 공간(802) 외부의 가상 오브젝트들을 나타내는 데이터를 제공할 수 있다.
도 8은 병합된 현실 장면(800)에 만들어질 수 있는 예시적인 수정들을 더 나타낸다. 몇몇 예들에서, 시스템(100)은 복수의 엔트리들을 나타내는 엔트리 설명 데이터(즉, 3D 공간(802) 내에 포함된 실세계 오브젝트(204), 가상 오브젝트(804), 가상 뷰포인트들(806), 및/또는 임의의 다른 엔트리들을 나타내는 데이터)를 수정하기 위한 명령을 수신할 수 있고, 그 명령의 수신에 응답하여, 그 명령에 따라 복수의 엔트리들을 나타내는 엔트리 설명 데이터를 수정할 수 있다. 예를 들어, 명령은 만들어질 수정을 설명하는 JSON 코드 또는 다른 적합한 오브젝트 설명 코드를 사용하여 임의의 장면 제어 시스템들(702)에 의해 (예를 들어, 웹 소켓(web socket) 또는 다른 적합한 유형의 통신을 통해) 송신될 수 있다.
병합된 현실 장면(800) 내에 포함된 엔트리들은 부분적으로 수정되는 엔트리의 유형에 의해 결정될 수 있는 임의의 적합한 방식으로 수정될 수 있다. 예를 들어, 수정되는 엔트리가 가상 오브젝트가면, 복수의 엔트리들을 나타내는 엔트리 설명 데이터를 명령에 따라 수정하는 것은 복수의 엔트리들에 추가적인 가상 오브젝트를 추가하는 것을 포함할 수 있다. 추가적으로 또는 대안적으로, 수정은 복수의 엔트리들 내에 포함된 가상 오브젝트를 추가적인 가상 오브젝트로 대체하는 것, 복수의 엔트리들에서 가상 오브젝트를 제거하는 것, 복수의 엔트리들 내에 포함된 가상 오브젝트의 적어도 하나의 속성을 수정하는 것, 및/또는 다른 엔트리들에 관련하여 및/또는 병합된 현실 장면의 3D 공간에 관련하여 가상 오브젝트를 이와 달리 수정하는 것을 포함할 수 있다.
수정되는 엔트리가 실세계 오브젝트(예를 들어, 실세계 오브젝트(204))이면, 엔트리 설명 데이터를 수정하는 것은 가상 오브젝트들에 대하여 전술된 것과 동일한 또는 유사한 방식으로 수행될 수 있다. 그러나, 실세계 장면에 연관된 데이터를 캡처하는 방식으로 인해, 하나의 실세계 오브젝트를 실세계 장면 내의 다른 것과 구별짓는 메타데이터가 실세계 장면을 표현하는 캡처된 데이터에 연관되지 않는 한, (예를 들어, 다양한 구별되는 실세계 오브젝트들을 포함하는) 전체 실세계 장면은 단일 실세계 오브젝트로 처리될 수 있다는 것이 이해될 것이다. 예를 들어, 시스템(100)은 동일한 특정 시점에 실세계 오브젝트(204)의 표면들의 컬러 데이터 및 깊이 데이터를, 실세계 장면(202) 내에 포함된 다른 추가적인 실세계 오브젝트들(즉, 도 2 또는 도 8에 명시적으로 도시되지 않은 실세계 장면(202) 내에 포함된 실세계 오브젝트들)의 다른 표면들을 나타내는 다른 컬러 데이터 및 다른 깊이 데이터와 구별짓는 제1 프레임 세트(예를 들어, 실세계 장면(202) 내의 오브젝트들을 나타내는 프레임 세트(402-1))에 연관된 메타데이터를 수신하도록 구성될 수 있다. 이와 같이, 엔트리 설명 데이터가 생성된 병합된 현실 장면(800)의 3D 공간(802)에 포함된 복수의 엔트리들은 하나 이상의 다른 추가적인 실세계 오브젝트들을 더 포함할 수 있다. 추가적인 실세계 오브젝트들은 컬러 비디오 데이터 스트림 및 깊이 비디오 데이터 스트림(즉, 운송 스트림(600) 내의 컬러 비디오 데이터 스트림(500-1-C) 및 깊이 비디오 데이터 스트림(500-1-D)) 내에 포함된 추가적인 실세계 오브젝트들의 다른 표면들을 나타내는 다른 컬러 데이터 및 다른 깊이 데이터에의 링크들에 의해 엔트리 설명 데이터 내에 적어도 부분적으로 정의될 수 있다. 추가적으로, 실세계 오브젝트(204)의 표면들의 컬러 데이터 및 깊이 데이터에의 링크들 및 추가적인 실세계 오브젝트들의 다른 표면들을 나타내는 다른 컬러 데이터 및 다른 깊이 데이터에의 링크들은 실세계 오브젝트(204)의 표면들의 컬러 데이터 및 깊이 데이터를 추가적인 실세계 오브젝트들의 다른 표면들을 나타내는 다른 컬러 데이터 및 다른 깊이 데이터와 구별짓는 메타데이터에 기초할 수 있다.
수정되는 엔트리가 가상 뷰포인트(예를 들어, 가상 뷰포인트들(806) 중 하나)이면, 복수의 엔트리들을 나타내는 엔트리 설명 데이터를 명령에 따라 수정하는 것은 복수의 엔트리들에 추가적인 가상 뷰포인트를 추가하는 것을 포함할 수 있다. 추가적으로 또는 대안적으로, 수정하는 것은 복수의 엔트리들 내에 포함된 복수의 가상 뷰포인트들 중 적어도 하나를 수정하는 것, 복수의 엔트리들에서 복수의 가상 뷰포인트들 중 적어도 하나를 제거하는 것, 등을 포함할 수 있다. 예를 들어, 가상 뷰포인트들(806) 중 하나(예를 들어, 가상 뷰포인트(806-1))에 연관된 시계는 3D 공간(802)의 상이한 각도 상에서의 관점을 획득하도록 변경되거나 방향이 돌려질(turn) 수 있다. 다른 예들에서, 가상 뷰포인트들(806)은 (예를 들어, 3D 공간(802) 내의 특정한 가상 오브젝트에 관련하여 줌 인(zoom in) 또는 줌 아웃(zoom out) 효과를 제작하기 위해) 안쪽으로 또는 바깥쪽으로 이동되거나, 복수의 가상 뷰포인트들(806)에서 제거되거나, 또는 이와 달리 수정될 수 있다. 다른 예로서, 오브젝트들(204 및/또는 804) 상의 다른 관점(예를 들어, 가상 뷰포인트들(806-1 내지 806-8) 중 하나에 의해 잘 커버(cover)되지 않는 관점)을 획득하기 위해 추가적인 가상 뷰포인트가 복수의 가상 뷰포인트들(806)에 추가될 수 있다.
전술된 바와 같이, 몇몇 예들에서, 가상 오브젝트(804)와 같은 가상 오브젝트는 가상 오브젝트를 수정하기 위한, 장면 제어 시스템(702)들 중 하나로부터의 직접적인 명령에 기초하여 수정(예를 들어, 3D 공간(802)과 관련하여 이동 및/또는 회전)될 수 있다. 그러나, 다른 예들에서, 가상 오브젝트는 3D 공간(802) 내에 포함된 다른 엔트리들과의 상호작용들에 기초하여 자동으로 수정(즉, 장면 제어 시스템(702)으로부터의 명시적인 명령에 기초하지 않지만 동일한 또는 상이한 방식들로 수정)될 수 있다. 보다 구체적으로, 예를 들어, 복수의 엔트리들을 나타내는 엔트리 설명 데이터의 시스템(100)에 의한 생성은 오브젝트들 사이에 (예를 들어, 가상 오브젝트들 사이에, 구별되는 실세계 오브젝트들 사이에, 가상 오브젝트와 실세계 오브젝트 사이, 등에) 가상 상호작용을 제작하는 것을 포함할 수 있다. 예를 들어, 시스템(100)은 가상 오브젝트(804)와 실세계 오브젝트(204) 사이의 가상 상호작용을 제작(예를 들어, 생성, 추적, 시뮬레이션, 등)할 수 있고, 가상 상호작용은 물리-기반 오브젝트 거동 및 AI-기반 오브젝트 거동 중 적어도 하나에 기초할 수 있다.
예시로서, 물리-기반 오브젝트 거동(808)이 도 8에 도시된다. 시스템(100)은, 가상 오브젝트(804) 및 실세계 오브젝트(204) 각각이 동일한 가상 공간 내에 존재할 수 없는 고체 가상 오브젝트들을 표현한다고 결정할 수 있다. 따라서, 물리-기반 오브젝트 거동(808)에 의해 나타낸 바와 같이, 가상 오브젝트(804)가 실세계 오브젝트(204)와 상호작용하게 (예를 들어, 부딪히고, "충돌"하는, 등) 보이도록, 가상 오브젝트(804)의 위치 및 방향 속성들이 물리 법칙들에 따라 수정될 수 있다. 다른 물리-기반 오브젝트 거동들은, 오브젝트들이 다른 것과 그리고 물리적인 힘들 및 원리들(예를 들어, 중력, 운동량, 마찰력, 부력, 광 반사, 등)과 어떻게 상호작용하는지를 정의하는 다른 물리 (예를 들어, 실세계 물리 또는 가상 세계에서만 적용되는 공상 물리) 법칙들을 모방할 수 있다. 이 물리-기반 오브젝트 거동들은 또한 시스템(100)에 의해, 3D 공간(802) 내에 포함된 복수의 엔트리들을 나타내는 엔트리 설명 데이터에 적용될 수 있다. 게다가, AI-기반 오브젝트 거동들은 또한, 실세계 및/또는 가상 오브젝트들이 다른 것과 그리고 오브젝트들이 위치하는 환경과 어떻게 상호작용하는지 정의하는 것을 도울 수 있다. 예를 들어, AI-기반 오브젝트 거동들은, 3D 공간(802) 내에서 어디를 걸을지, 누구에게 말할지, 무엇을 말할지, 언제 위험으로부터 도망칠지, 등과 같은 "선택들"을 하기 위해 인공 지능을 사용할 수 있는 생물들(예를 들어, 아바타들(avatars), 사람들, 동물들, 등)을 표현하는 엔트리들에 특히 적용될 수 있다.
도 7로 되돌아가서, 시스템(100)은 시간적 시퀀스 내의 특정 시점들(예를 들어, 실시간 시퀀스, 가상 세계 내의 시간에 연관된 가상 시간선, 등)에의 복수의 엔트리들 내의 엔트리들의 상태들을 표현하는 엔트리 설명 프레임들을 생성한다. 예를 들어, 도시된 바와 같이, 시스템(100)은 특정 엔트리 설명 프레임(즉, 엔트리 설명 프레임(706))을 생성할 수 있고, 엔트리 설명 프레임(706)을 각각의 3D 렌더링 엔진들(704)에 제공할 수 있다. 3D 렌더링 엔진들(704)은 서버측 3D 렌더링 엔진들(예를 들어, 네트워크에 걸친 및/또는 이와 달리 사용자에 의해 사용되는 미디어 플레이어 장치와 같은 클라이언트측 장치들과 별개인 3D 렌더링 엔진들)일 수 있다. 몇몇 예들에서, 3D 렌더링 엔진들(704)은 개별적인 장치들(예를 들어, 개별적인 서버들, 서버 내의 개별적인 프로세서들, 등) 또는 개별적인 소프트웨어 처리들(예를 들어, 개별적인 명령어 스레드들(threads), 등)에 의해 구현될 수 있는 반면, 다른 예들에서, 3D 렌더링 엔진들(704)은 공동 하드웨어 및/또는 소프트웨어 장치들 또는 처리들로 함께 통합될 수 있으며, 이는 특정 구현에 사용될 수 있다. 몇몇 구현들에서, 3D 렌더링 엔진들은 시스템(100)과 같은 병합된 현실 장면 캡처 시스템과 합동하여 동작하거나 심지어는 그것에 완전히 통합될 수 있는 반면, 다른 구현들에서, 3D 렌더링 엔진들은 (예를 들어, 클라우드-기반 처리 서비스들, 등을 제공하는 상이한 엔트리로서) 개별적으로 동작할 수 있다.
3D 렌더링 엔진들(704)에 제공되는 어떤 엔트리 설명 프레임들은 시간적 시퀀스 내의 특정 시점에 병합된 현실 장면(즉, 병합된 현실 장면(800))에 연관된 모든 엔트리들을 나타내는 상태 데이터를 포함하는 핵심 설명 프레임들일 수 있는 반면, 다른 엔트리 설명 프레임들은, 시간적 시퀀스 내의 이전 시점에 모든 엔트리들의 상태를 나타내는 핵심 설명 프레임이 생성된 이후 수정된, 병합된 현실 장면에 연관된 단지 그러한 엔트리들의 상태를 (예를 들어, 시간적 시퀀스 내의 특정 시점에) 표현하는 갱신 설명 프레임들일 수 있다.
실례로서, 도 9는 시스템(100)에 의해 생성될 수 있는 복수의 예시적인 엔트리 설명 프레임들(900)(예를 들어, 엔트리 설명 프레임들(900-1 내지 900-12))을 도시한다. 하나의 엔트리 설명 프레임(900)에서 다른 것을 가리키는 화살표들에 의해 나타낸 바와 같이, 엔트리 설명 프레임들(900)은 엔트리 설명 프레임(900-1)에서 시작하여 엔트리 설명 프레임(900-12)으로 진행하는 시간적 시퀀스로 순서화될 수 있고, 그 후 시간적 시퀀스는 도 9에 명시적으로 도시되지 않은 추가적인 엔트리 설명 프레임들(900)로 진행할 수 있다. 각각의 엔트리 설명 프레임(900)의 하단을 따라, 엔트리 설명 프레임의 유형(예를 들어, 핵심 설명 프레임 또는 갱신 설명 프레임)이 표시된다. 구체적으로, 엔트리 설명 프레임들(900-1, 900-5, 및 900-9)은 핵심 설명 프레임들로 표시되고, 엔트리 설명 프레임들(900-2 내지 900-4, 900-6 내지 900-8, 및 900-10 내지 900-12)은 갱신 설명 프레임들로 표시된다.
따라서, 이 예에서, 각각의 핵심 설명 프레임은 시간적 시퀀스에서 몇개의 (예를 들어, 3개) 갱신 설명 프레임들이 뒤따라지고, 이것은 결국 시간적 시퀀스에서 다른 핵심 설명 프레임이 뒤따라 진다. 그러나, 도 9에 도시된 핵심 설명 프레임들 및 갱신 설명 프레임들의 배열은 단시 예시적인 것일 뿐, 핵심 및 갱신 설명 프레임들의 배열은 임의의 방식으로 구성될 수 있으며, 이는 특정 구현에 사용될 수 있다는 것이 이해될 것이다. 예를 들어, 특별히 동적이지 않은 (즉, 엔트리들에 대한 다수의 수정들에 의해 영향을 받지 않는) 병합된 현실 장면은 비교적 다수의 갱신 설명 프레임들이 뒤따르는 비교적 적은 핵심 설명 프레임들에 의해 표현될 수 있다. 반대로, 더 동적인 병합된 현실 장면은 더 큰 비율의 핵심 설명 프레임들(오로지 핵심 설명 프레임들만 포함할 때까지 많아짐) 및 더 적은 비율의 갱신 설명 프레임들(갱신 설명 프레임들을 포함하지 않을 때까지 적어짐)로 표현될 수 있다.
도 9에 더 도시된 바와 같이, 각각의 엔트리 설명 프레임(900)은 엔트리 설명 코드(예를 들어, 시스템(100)에 의해 엔트리 설명 데이터가 생성된 엔트리들에 연관된 상태 데이터를 설명하기에 적합한 JSON 코드, XML 코드, 또는 다른 유형의 코드)를 포함하거나 그것으로 구현될 수 있고, 시간적 시퀀스 내에서의 다른 엔트리 설명 프레임들(900)에 대한 각각의 엔트리 설명 프레임(900)의 위치를 나타내는 시퀀스 번호(예를 들어, 식별 번호 또는 "ID")에 연관될 수 있다. 예를 들어, 도시된 바와 같이, 엔트리 설명 프레임(900-1)은, 엔트리 설명 프레임(900-1)이 핵심 설명 프레임임을 나타내고 다른 핵심 설명 프레임들에 대한 그 프레임의 상대적인 위치(예를 들어, "1.0"는 "2.0" 전에 옴)를 나타내기 위해, 정수(즉, "1.0")인 시퀀스 번호를 가질 수 있다. 그 후 엔트리 설명 프레임들(900-2 내지 900-4) 각각은 1로 시작하고(즉, 이 프레임들이 핵심 설명 프레임(1.0)에 대한 갱신들임을 나타내기 위함), 시간적 시퀀스 내에서의 다른 갱신 설명 프레임들에 대한 갱신 설명 프레임들의 상대적인 위치들을 나타내는 (예를 들어, "1.1"은 "1.2" 전에 옴) 하위-식별자들(즉, ".1", ".2", 및 ".3")을 포함하는 시퀀스 번호들에 연관될 수 있다. 이 엔트리 설명 프레임에 번호를 매기는 방법은 단지 예시적인 것일 뿐이며, 임의의 적합한 프레임에 번호를 매기는 방법이 사용될 수 있으며, 이는 특정 구현에 사용될 수 있다.
도 7로 되돌아 가서, 엔트리 설명 프레임(706)이 (예를 들어, 엔트리 설명 프레임들(900-1, 900-5, 또는 900-9)과 같은) 핵심 설명 프레임이든 또는 (예를 들어, 도 9 내의 다른 엔트리 설명 프레임들(900)과 같은) 갱신 설명 프레임이든지에 관계 없이, 엔트리 설명 프레임(706)을 포함하는 엔트리 설명 프레임들의 시퀀스는 각각의 3D 렌더링 엔진(704)에 연관된 각각의 가상 뷰포인트들에서 병합된 현실 장면(800)의 3D 공간(802)을 묘사하는 표면 데이터 프레임들을 렌더링하기 위해 3D 렌더링 엔진들(704)에 의해 필요로 되는 모든 정보를 제공할 수 있다. 이와 같이, 3D 렌더링 엔진들(704)은 엔트리 설명 프레임들을 순서대로 수신 또는 처리할 필요가 없을 수 있다. 오히려, 3D 렌더링 엔진들(704)은 특정한 3D 렌더링 엔진(704)에 편리하거나 효율적일 수 있는 임의의 순서로 (예를 들어, 각각이 그 시퀀스 내의 단일 엔트리 설명 프레임으로부터 생성될 수 있는) 각각의 표면 데이터 프레임들(710)을 렌더링할 수 있고, 표면 데이터 프레임들(710)은 (예를 들어, 비디오 데이터 패키징 시스템(712)에 의해) 나중에 재순서화 및 동기화될 수 있다.
전술된 바와 같이, 가상 오브젝트들을 나타내는 어떤 상세한 정보(예를 들어, 가상 오브젝트 기하학적 구조들, 텍스처들, 등을 표현하는 이진 데이터)는 (예를 들어, 엔트리 설명 프레임(706) 내에 명시적으로 포함되기 보다는) 자산 저장 시스템(708)에 저장될 수 있고, 엔트리 설명 프레임(706) 내에 포함된 데이터에의 링크들을 통해 액세스될 수 있다. 자산 저장 시스템(708)은 시스템(100) 및/또는 3D 렌더링 엔진들(704)과 개별적인 장치(예를 들어, 개별적인 서버, 개별적인 프로세서, 및 서버 내의 저장 기능, 등)에 의해, 개별적인 소프트웨어 처리들(예를 들어, 개별적인 명령어 스레드들, 등)에 의해 구현되거나, 시스템(100) 및/또는 3D 렌더링 엔진들(704)과 공동 하드웨어 및/또는 소프트웨어 장치들 또는 처리들 내에 통합될 수 있으며, 이는 특정 구현에 사용될 수 있다. 몇몇 구현들에서, 자산 저장 시스템(708)은 시스템(100)과 같은 병합된 현실 장면 캡처 시스템 및/또는 3D 렌더링 엔진들(704)을 또한 포함하는 시스템과 합동하여 동작하거나 그것에 완전히 통합될 수 있는 반면, 다른 구현들에서, 자산 저장 시스템(708)은 (예를 들어, 클라우드-기반 처리 서비스, 등을 제공하는 상이한 엔트리로서) 개별적으로 동작할 수 있다.
마찬가지로, 어떤 예들에서, 실세계 오브젝트를 나타내는 엔트리 설명 데이터를 생성하는 것은 실세계 장면(202) 내에 포함된 실세계 오브젝트(204)의 3D 표현을 생성하고, 실세계 오브젝트(204)의 3D 표면에 대한 포인터들로서 시스템(100)에 의해 생성된 엔트리 설명 데이터 내에 실세계 오브젝트를 적어도 부분적으로 정의한 실세계 오브젝트(204)의 표면의 컬러 데이터 및 깊이 데이터에의 링크들을 생성하는 것을 포함할 수 있다. 예를 들어, 시스템(100)은 제1 프레임 세트 및 복수의 다른 프레임 세트들에 기초하여 생성된 컬러 비디오 데이터 스트림 및 깊이 비디오 데이터 스트림(즉, 프레임 세트들(402-1 내지 402-N)에 기초하고 운송 스트림(600) 내에 저장된 비디오 데이터 스트림(500-1 내지 500-8))을 (예를 들어, 사용자에 의해 사용되는 미디어 플레이어 장치가 렌더링하는 방식과 유사한 방식으로) 렌더링함으로서 실세계 오브젝트(204)의 3D 표현을 생성할 수 있다. 그 후 시스템(100)은 컬러 데이터 및 깊이 데이터에의 링크들(즉, 시스템(100) 또는 다른 적합한 서버측 시스템 내에 유지될 수 있는 운송 스트림(600) 내의 데이터에의 포인터들)을 생성하고 그 링크들을 엔트리 설명 프레임(706)에 포함시킬 수 있다.
따라서, 엔트리 설명 프레임(706)은 다른 곳에 저장된 세부 정보에의 링크들과 함께 (예를 들어, 가상 오브젝트들의 경우 자산 저장 시스템(708) 내에, 실세계 오브젝트들의 경우 운송 스트림(600) 내에, 등) 엔트리들을 나타내는 상태 정보를 포함할 수 있고, 엔트리 설명 프레임(706) 내의 링크들에 기초하여, 필요에 따라 각각의 3D 렌더링 엔진들(704)에 의해 액세스될 수 있다. 세부 정보가 개별적으로 (예를 들어, 실세계 오브젝트 데이터에 대해서는 운송 스트림(600) 내에 및 가상 오브젝트 데이터에 대해서는 자산 저장 시스템(708) 내에) 유지될 수 있지만, 구성(700) 내에 도시된 시스템(100), 엔트리 설명 프레임(706), 3D 렌더링 엔진들(704), 및/또는 다른 시스템들은 실세계 오브젝트들과 가상 오브젝트들을 유사한 방식들로 처리(예를 들어, 렌더링, 표현, 등)할 수 있다는 것이 주의된다. 몇몇 예들에서, 예시로서, 구성(700)의 어떤 요소들(예를 들어, 비디오 데이터 패키징 시스템(712))은 실세계 오브젝트(204)와 같은 실세계 오브젝트들과 가상 오브젝트(804)와 같은 가상 오브젝트들 간에 심지어 구별할 필요가 없거나 구별하지 못할 수 있다. 다른 예들에서는, 실세계 오브젝트들과 가상 오브젝트들 사이에 고려되는 차이들이 있을 수 있다. 예시로서, 가상 오브젝트들에 대한 모델들은 비교적 고정적일 수 있지만, 실세계 오브젝트들을 나타내는 데이터는 실시간으로 동적으로 변할 수 있어, 3D 렌더링 엔진들(704)이 특정 순간에 연관된 데이터에 액세스할 필요가 있다.
임의의 경우, 엔트리 설명 프레임(706) 내에 포함된 데이터와 엔트리 설명 프레임(706) 내에 제공된 링크들을 사용하여 자산 저장 시스템(708) 및/또는 운송 스트림(600)으로부터 액세스된 데이터 간에, 3D 렌더링 엔진들(704)에 의해 국부적으로 유지되는 정보에 의존해야하지 않으면서, 3D 렌더링 엔진들(704)은 각각의 가상 뷰포인트들에서 3D 공간(802)을 표현하는 표면 데이터 프레임들(710)을 렌더링하는데 필요한 모든 정보에 액세스할 수 있다.
각각의 3D 렌더링 엔진(704)은, 시스템(100)에 의해 엔트리 설명 데이터가 생성된 복수의 엔트리들에 표현된 가상 뷰포인트들 중 하나에 연관될 수 있다. 예를 들어, 3D 렌더링 엔진들(704-1 내지 704-8)(도 7에는 단지 3D 렌더링 엔진들(704-1 및 704-2)만이 명시적으로 도시됨)은 각각 가상 뷰포인트들(806-1 내지 806-8)(도 8에 나타냄)에 연관될 수 있다. 이와 같이, 각각의 3D 렌더링 엔진(704)은, 특정 3D 렌더링 엔진(704)이 연관된 가상 뷰포인트(806)의 관점(즉, 위치, 각도, 시계, 등)에서 보이는 것처럼, 각각의 표면 데이터 프레임(710)을 렌더링할 수 있다. 게다가, 전술된 바와 같이, 각각의 표면 데이터 프레임(710)은 각각의 가상 뷰포인트에서 가상 오브젝트들의 외형을 표현하는 컬러 데이터(즉, 이미지 데이터)뿐만 아니라 깊이 데이터도 포함할 수 있다.
실례로서, 도 7은 표면 데이터 프레임(710-1)을 표현하는 이미지들을 도시하는데, 여기서, 표면 데이터 프레임(710-1)은 가상 뷰포인트(806-1)에 연관된 3D 렌더링 엔진(704-1)에 의해 렌더링된 표면 데이터 프레임일 수 있다(도 8 참조). 도시된 바와 같이, 표면 데이터 프레임(710-1)은 컬러 데이터(714) 및 깊이 데이터(716) 모두를 포함할 수 있는데, 이들은 컬러 데이터(306) 및 깊이 데이터(308)에 관련하여 전술된 것과 유사한 유형들의 데이터를 표현할 수 있다(도 3 참조). 그러나, 컬러 데이터(306) 및 깊이 데이터(308)에 연관된 표면 데이터 프레임과 대조적으로, 표면 데이터 프레임(710-1)은 실세계 오브젝트(204) 및 가상 오브젝트(804) 모두의 표현들뿐만 아니라 병합된 현실 장면(800)의 3D 공간(802) 내에 포함될 수 있는 임의의 다른 오브젝트들을 포함할 수 있다. 구체적으로, 도시된 바와 같이, (예를 들어, 시스템(100)에 의해 구현된 오브젝트들 간의 물리-기반 가상 상호작용을 통해) 가상 오브젝트(804)는 실세계 오브젝트(204) 위에 놓여 있는 것으로 보인다.
시스템(100)에 의해 제공된 각각의 엔트리 설명 프레임(예를 들어, 엔트리 설명 프레임(706))이 3D 공간(802) 내의 상이한 가상 뷰포인트들에서의 병합된 현실 장면(800)의 3D 공간(802)의 렌더링들을 표현하는 각각의 프레임 세트에 연관되도록, 표면 데이터 프레임들의 각각의 프레임 세트들(예를 들어, 표면 데이터 프레임들(710-1 내지 710-N)을 포함하는 프레임 세트(710))이 3D 렌더링 엔진들(704)에 의해 생성될 수 있다. 도 7에 도시된 바와 같이, 각각의 프레임 세트들 내의 (예를 들어, 표면 데이터 프레임(710-1 내지 710-N)을 포함하는) 각각의 표면 데이터 프레임은 그 후 비디오 데이터 패키징 시스템(712)에 제공될 수 있는데, 데이터 패키징 시스템(712)은 각각의 가상 뷰포인트(806)에 연관된 각각의 컬러 비디오 데이터 스트림들 및 깊이 비디오 데이터 스트림들을 생성하기 위해 표면 데이터 프레임들을 조작화, 동기화, 부호화, 압축, 조합, 및/또는 이와 달리 처리할 수 있다.
실례로서, 도 10은 구성(700)의 특정 구성요소들의 더 상세한 뷰를 도시한다. 구체적으로, 도 10은 표면 데이터 프레임들의 완전한 세트(즉, 표면 데이터 프레임들(710-1 내지 710-8)을 포함하는 프레임 세트(710))를 렌더링하는 8개의 3D 렌더링 엔진들(704)(즉, 3D 렌더링 엔진들(704-1 내지 704-8))을 나타낸다. 표면 데이터 프레임들(710-1 내지 710-8)은 병합된 현실 장면의 3D 공간 내에 포함된 실세계 및 가상 오브젝트들의 표면들의 컬러 및 깊이 데이터를 표현할 수 있다. 도시된 바와 같이, 예시로서, 프레임 세트(710)는, 3D 공간(802) 내의 실세계 오브젝트(204) 및 가상 오브젝트(804)의 표면들이 3D 공간(802)에 관련하여 상이한 가상 뷰포인트들(예를 들어, 가상 뷰포인트들(806-1 내지 806-8))에서 보이는 것처럼, 그표면들을 나타내는 데이터를 포함한다. 도 10에서 표면 데이터 프레임들이 도 7에 나타낸 컬러 데이터 이미지(즉, 컬러 데이터(714)를 나타내는 이미지)와 유사한 이미지에 의해 표현되도록 도시되었지만, 프레임 세트(710) 내의 각각의 표면 데이터 프레임은 도 7에 나타낸 깊이 데이터 이미지(즉, 깊이 데이터(716)를 나타내는 이미지)와 유사한 이미지에 의해 표현될 수 있는 깊이 데이터를 나타내는 데이터도 또한 포함할 수 있다는 것이 이해될 것이다.
전술된 바와 같이, 3D 렌더링 엔진들(704)은 엔트리 설명 프레임(706)에 기초하여 그리고 자산 저장 시스템(708) 및/또는 운송 스트림(600)으로부터 액스된 데이터에 기초하여 연관된 가상 뷰포인트들(806)에서 표면 데이터 프레임들(710-1 내지 710-N)을 각각 생성할 수 있다. 예를 들어, 병합된 현실 장면(800)에 연관된 복수의 엔트리들을 나타내는 엔트리 설명 데이터는 자산 저장 시스템(708)에 저장된 가상 오브젝트(804)를 표현하는 컬러 및 깊이 데이터에의 링크 및/또는 운송 스트림(600) 내에 포함된 실세계 오브젝트(204)를 표현하는 컬러 및 깊이 데이터에의 링크를 포함할 수 있다. 이와 같이, (전술된 바와 같이 시스템(100)에 의해 생성되어 3D 렌더링 엔진들(704)에 제공될 수 있는) 엔트리 설명 프레임(706)은 운송 스트림(600) 및 자산 저장 시스템(708) 내에 각각 유지된 오브젝트들(204 및 804)을 표현하는 컬러 및 깊이 데이터에의 각각의 링크들을 포함하도록 생성될 수 있다. 각각의 3D 렌더링 엔진들(704)은 시스템(100)으로부터 엔트리 설명 프레임(706)을 수신하고 엔트리 설명 프레임(706) 내에 포함된 링크들을 사용하여 운송 스트림(600) 및 자산 저장 시스템(708) 내에 각각 유지된 오브젝트들(204 및 804)를 표현하는 컬러 및 깊이 데이터에 액세스하는 것을 포함하는 동작들을 수행함으로서 그들 각각의 가상 뷰포인트들(806)로부터 그들 각각의 표면 데이터 프레임들(710)을 렌더링하도록 구성될 수 있다. 도시된 바와 같이, 엔트리 설명 프레임(706) 내에 포함된 데이터 및 링크들을 통해 액세스된 컬러 및 깊이 데이터 모두로, 3D 렌더링 엔진들(704)은 3D 공간(802)을 둘러싸는 가상 뷰포인트들로부터의 (예를 들어, 실세계 오브젝트(204) 및 가상 오브젝트(804) 모두를 포함하는) 3D 공간(802)의 뷰들을 제공하기 위해 표면 데이터 프레임들(710)을 렌더링할 수 있다.
전술된 실세계 장면(202)을 표현하는 프레임 시퀀스(404)와 같이, 표면 데이터 프레임들(710-1 내지 710-N) 각각은 시간적 시퀀스 동안의 각각의 가상 뷰포인트들(806)로부터의 병합된 현실 장면(800)의 컬러 및 깊이 데이터는 나타내는 표면 데이터 프레임들의 개별적인 프레임 시퀀스 내에 포함될 수 있다. 예를 들어, 표면 데이터 프레임(710-1)은 시간적 시퀀스 동안 가상 뷰포인트(806-1)로부터 가시가능한 오브젝트들(204 및 804)의 표면들의 컬러 및 깊이 데이터는 나타내는 표면 데이터 프레임들의 제1 프레임 시퀀스 내에 포함될 수 있고, 표면 데이터 프레임(710-2)은 시간적 시퀀스 동안 가상 뷰포인트(806-2)로부터 가시가능한 오브젝트들(204 및 804)의 표면들의 컬러 및 깊이 데이터는 나타내는 표면 데이터 프레임들의 제2 프레임 시퀀스 내에 포함될 수 있는, 등이다. 즉, 표면 데이터 프레임들(710)이 렌더링되면, 각각의 3D 렌더링 엔진(704)은 표면 데이터 프레임들의 상이한 각각의 시퀀스들 내의 다른 표면 데이터 프레임들을 계속 렌더링할 수 있다. 예를 들어, 3D 렌더링 엔진들(704)은 (예를 들어, 도 9에 나타낸 엔트리 설명 프레임들(900)의 시퀀스와 같은) 엔트리 설명 프레임(706) 다음에 추가적인 엔트리 설명 프레임들을 수신할 수 있고, 추가적인 엔트리 설명 프레임들에 기초하여 표면 데이터 프레임들을 더 생성할 수 있다.
실례로서, 도 11은 각각 유리한 지점들(806-1 내지 806-8)에서 가시가능한 가상 오브젝트(804) 및 실세계 오브젝트(204) 모두의 표면들의 컬러 및 깊이 데이터는 나타내는 표면 데이터 프레임들의 복수의 예시적인 프레임 시퀀스들(1102)(예를 들어, 프레임 시퀀스들(1102-1 내지 1102-8))을 도시한다. 예를 들어, 도시된 바와 같이, 각각의 프레임 시퀀스(1102) 내에 나타낸 제1 표면 데이터 프레임들(즉, 오브젝트들(204 및 804)의 상이한 뷰들이 도 11에서 가시가능하도록 커버되지 않은 표면 데이터 프레임들)은 (프레임 시퀀스(1102-1) 내에 포함된) 표면 데이터 프레임(710-1) 내지 (프레임 시퀀스(1102-8) 내에 포함된) 표면 데이터 프레임(710-8)에 대응할 수 있다. 따라서, 프레임 시퀀스들(1102-1 내지 1102-8)은 각각 3D 렌더링 엔진들(704-1 내지 704-8)에, 그리고 따라서, 가상 뷰포인트들(806-1 내지 806-8)에 연관될 수 있다. 예를 들어, 프레임 시퀀스(1102-1)는 특정한 시간적 시퀀스(1104) 동안 (예를 들어, 특정 실시간 기간, 몰입형 가상 현실 세계에 연관된 특정한 가상 시간선, 등) 가상 뷰포인트(806-1)에서 뷰잉된 병합된 현실 장면(800)의 3D 공간(802) 내에 포함된 실세계 오브젝트들 및 가상 오브젝트들의 컬러 및 깊이 모두를 표현할 수 있다. 마찬가지로, 프레임 시퀀스(1102-2)는 시간적 시퀀스(1104) 동안 가상 뷰포인트(806-2)에서 뷰잉된 3D 공간(802) 내에 포함된 실세계 및 가상 오브젝트들의 컬러 및 깊이를 표현할 수 있고, 프레임 시퀀스들(1102-3 내지 1102-8)에 대해서도 마찬가지이다.
앞에서 설명 및 나타낸 바와 같이, 3D 렌더링 엔진들(704)에 의해 생성되고 프레임 시퀀스들(1102) 내에 포함된 각각의 표면 데이터 프레임들은 3D 렌더링 엔진들(704)에 통신가능하게 연결될 수 있는 비디오 데이터 패키징 시스템(712)에 트랜스미션되거나 이와 달리 전달될 수 있다. 표면 데이터 프레임들의 각각의 상이한 프레임 시퀀스들(1102)에 기초하여(예를 들어, 도시된 바와 같이 각각의 추가적인 복수의 표면 데이터 프레임들을 포함하는 프레임 세트(710) 및 프레임 세트(710)를 뒤따르는 추가적인 프레임 세트들에 기초하여), 비디오 데이터 패키징 시스템(712)은 각각의 가상 뷰포인트들(806)에 대한 컬러 비디오 데이터 스트림 및 깊이 비디오 데이터 스트림을 포함하는 (즉, 이전에 생성된 운송 스트림(600) 이외의) 적어도 하나의 추가적인 운송 스트림을 생성할 수 있다. 예를 들어, 비디오 데이터 패키징 시스템(712)은 각각의 프레임 시퀀스(1102)에 연관된 (즉, 각각의 3D 렌더링 엔진(704) 및 가상 뷰포인트(806)에 연관된) 개개의 컬러 비디오 데이터 스트림들 및 깊이 비디오 데이터 스트림들을 포함하는 단일 운송 스트림을 생성할 수 있거나, 또는 비디오 데이터 패키징 시스템(712)은 각각의 프레임 시퀀스(1102)에 연관된 컬러 비디오 데이터 스트림 및 깊이 비디오 데이터 스트림에 대한 상이한 운송 스트림들을 생성할 수 있다. 적어도 하나의 추가적인 운송 스트림은 여기에 설명된 임의의 방식으로 (예를 들어, 운송 스트림(600)과 유사한 방식으로) 또는 임의의 다른 적합한 방식으로 생성될 수 있는데, 이는 특정 구현에 사용될 수 있다.
적어도 하나의 추가적인 운송 스트림이 생성되면, 비디오 데이터 패키징 시스템(712)은 사용자에 연관된 클라이언트측 미디어 플레이어 장치에 스트리밍하기 위한 적어도 하나의 추가적인 운송 스트림을 제공할 수 있다. 예를 들어, 비디오 데이터 패키징 시스템(712)은 운송 스트림을 미디어 플레이어 장치 자체에 스트리밍(예를 들어, 네트워크를 통해 트랜스미션)할 수 있거나, 운송 스트림이 다른 시스템에 의해 더욱 처리되고, (예를 들어, 파이프라인에 연관된 다른 장치들, 처리들, 및/또는 시스템들에 의해 처리 및/또는 다시 패키징된 후) 미디어 플레이어 장치로 스트리밍될 데이터 파이프라인 내에 운송 스트림을 포함시킬 수 있다. 후술될 바와 같이, 클라이언트측 미디어 플레이어 장치는 사용자에 의해 선택되고 병합된 현실 장면(800)의 3D 공간(802) 내의 임의 가상 위치에 대응하는 동적으로 선택가능한 가상 뷰포인트에서, 사용자에 의해 경험될 병합된 현실 장면의 3D 공간의 3D 표현을 (예를 들어, 적어도 하나의 추가적인 운송 스트림 내에 포함된 각각의 가상 뷰포인트들에 대한 컬러 비디오 데이터 스트림 및 깊이 비디오 데이터 스트림에 기초하여) 생성하도록 구성될 수 있다.
전술된 바와 같이, 몇몇 예들에서, 여기에 설명된 시스템(100) 및/또는 다른 시스템들(예를 들어, 다른 서버측 시스템들) 및 장치들은 사용자들에 의해 경험될 가상 현실 미디어 콘텐츠를 생성하는데 사용될 수 있다. 예를 들어, 전술된 동작들 이외에, (예를 들어, 여기에 설명된 시스템(100), 비디오 데이터 패키징 시스템(712), 및/또는 다른 장치들 및 시스템들이 포함될 수 있거나, 이들 시스템들이 이와 달이 연관될 수 있는) 가상 현실 미디어 콘텐츠 제공자 시스템은, 비디오 데이터 패키징 시스템(712)이 생성 및 제공하는 적어도 하나의 추가적인 운송 스트림에 기초하여 가상 현실 미디어 콘텐츠를 더 생성 및 제공할 수 있다. 가상 현실 미디어 콘텐츠는 병합된 현실 장면(예를 들어, 병합된 현실 장면(800))을 표현할 수 있고, 병합된 현실 장면에 관련된 임의 가상 위치에 대응하는 동적으로 선택가능한 가상 뷰포인트로부터 경험되도록 사용자에게 표시될 수 있다. 예를 들어, 동적으로 선택가능한 가상 뷰포인트는, 사용자가 미디어 플레이어 장치를 사용하여 병합된 현실 장면을 경험하는 동안, 미디어 플레이어 장치의 사용자에 의해 선택될 수 있다. 게다가, 사용자가 병합된 현실 장면 내의 임의 가상 위치에 대응하는 동적으로 선택가능한 가상 뷰포인트에서 병합된 현실 장면을 경험하도록 허용하기 위해, 가상 현실 미디어 콘텐츠가 미디어 플레이어 장치에 (예를 들어, 시스템(100)을 포함하거나 이와 달리 그것에 연관된 가상 현실 미디어 콘텐츠 제공자 시스템에 의해) 제공될 수 있다.
실례로서, 도 12는, 시스템(100) 및 비디오 데이터 패키징 시스템(712)을 포함하는 예시적인 가상 현실 미디어 콘텐츠 제공자 시스템(1202)("제공자 시스템(1202)")이 병합된 현실 장면을 경험하도록 사용자(1208)에 의해 사용되는 예시적인 클라이언트측 미디어 플레이어 장치(1206)("미디어 플레이어 장치(1206)")에 네트워크(1204)를 통해 제공되는 가상 현실 미디어 콘텐츠를 생성하는 예시적인 구성(1200)을 도시한다.
전술된 바와 같이 적어도 하나의 추가적인 운송 스트림이 프레임 시퀀스들(1102)에 기초하여 생성된 후, 미디어 플레이어 장치(102)가 렌더링하도록 구성될 수 있는 가상 현실 미디어 콘텐츠를 형성하기 위해, 제공자 시스템(1202)은 하나 이상의 운송 스트림들을 더욱 부호화, 패키징, 암호화, 또는 이와 달리 처리할 수 있다. 후술된 바와 같이, 예를 들어, 병합된 현실 장면(800) 내의 (예를 들어, 가상 뷰포인트들(806) 이외의 사용자(1208)가 관심 있어 할 수 있는 가상 뷰포인트들을 포함하는) 임의의 임의 가상 뷰포인트에서의 병합된 현실 장면(800)의 뷰를 제시하기 위해, 가상 현실 미디어 콘텐츠는 미디어 플레이어 장치(1206)에 의해 렌더링될 수 있는 복수의 2D 비디오 데이터 스트림들(예를 들어, 각각의 가상 뷰포인트(806)에 대한 컬러 데이터 및 깊이 데이터에 연관된 2D 비디오 데이터 스트림들)을 포함하거나 표현할 수 있다. 추가적으로 또는 대안적으로, 가상 현실 미디어 콘텐츠는 임의 가상 뷰포인트들로부터 뷰잉될 수 있도록 또한 렌더링될 수 있는 병합된 현실 장면(800) 내에 포함된 가상 오브젝트들의 하나 이상의 입체 모델들(예를 들어, 3D 또는 4D 모델들)을 표현하는 데이터를 포함할 수 있다. 가상 현실 미디어 콘텐츠는 그 후 네트워크(1204)를 통해 사용자(1208)에 연관된 미디어 플레이어 장치(1206)와 같은 하나 이상의 미디어 플레이어 장치들에 분배될 수 있다. 예를 들어, 사용자(1208)가 미디어 플레이어 장치(1206)를 사용하여 병합된 현실 장면(800)을 가상적으로 경험할 수 있도록, 제공자 시스템(1202)는 미디어 플레이어 장치(1206)에 가상 현실 미디어 콘텐츠를 제공할 수 있다.
몇몇 예들에서, 사용자(1208)가 (예를 들어, 병합된 현실 장면(800)을 표현하는) 가상 현실 미디어 콘텐츠에 의해 표현되는 몰입형 가상 현실 세계 내의 하나 이상의 개별적인 위치들에 제한되는 것은 바람직하지 않을 수 있다. 이와 같이, 병합된 현실 장면(800)이 가상 뷰포인트들(806)뿐만 아니라 병합된 현실 장면(800) 내의 (예를 들어, 3D 공간(802) 내의 또는 그 주변의) 임의 가상 위치에 대응하는 임의의 동적으로 선택가능한 가상 뷰포인트에서 렌더링되도록 허용하기 위해, 제공자 시스템(1202)은 병합된 현실 장면(800)을 표현하는 가상 현실 미디어 콘텐츠 내에 충분한 데이터를 제공할 수 있다. 예를 들어, 동적으로 선택가능한 가상 뷰포인트는, 사용자(1208)가 미디어 플레이어 장치(1206)를 사용하여 병합된 현실 장면(800)을 경험하는 동안, 사용자(1208)에 의해 선택될 수 있다.
여기에 사용된 바와 같이, "임의 가상 위치"는 병합된 현실 장면에 연관된 공간 내의 (예를 들어, 병합된 현실 장면의 3D 공간 내의 또는 그 주변의) 임의의 가상 지점을 의미할 수 있다. 예를 들어, 임의 가상 위치들은 병합된 현실 장면 주변의 고정된 위치들(예를 들어, 가상 뷰 포인트들(806)에 연관된 고정된 위치들)에 제한되지 않고, 가상 뷰포인트들(806)에 연관된 위치들과 3D 공간(802) 내의 위치들 사이의 모든 위치들을 또한 포함한다. 게다가, 임의 가상 위치들은 가상 뷰포인트들(806) 중 임의의 것에 맞춰 정렬되도록 제한되지 않은 임의 가상 뷰포인트들에 연관될 수 있다. 몇몇 예들에서, 이러한 임의 가상 위치들은 병합된 현실 장면(800) 내의 가장 바람직한 가상 뷰포인트들에 대응할 수 있다. 예시로서, 병합된 현실 장면(800)이 농구 경기를 포함하면, 사용자(1208)는 농구 코트 상의 임의의 임의 가상 위치 내에 있는, 경기를 경험하기 위한 가상 뷰포인트들을 동적으로 선택할 수 있다. 예를 들어, 사용자는 마치 경기 중간에 농구 코드 위에 서있는 것처럼 농구 코트 위아래로 농구 공을 따라가면서 농구 경기를 경험하도록 그의 또는 그녀의 가상 뷰포인트들을 동적으로 선택할 수 있다. 즉, 예를 들어, 가상 뷰포인트들(806)이 농구 코트 주변의 고정된 위치들에 위치될 수 있지만, 사용자(1208)는 농구 코드 위의 임의의 임의 위치에 연관된, 경기를 경험하기 위한 임의 가상 뷰포인트들을 동적으로 선택할 수 있다.
네트워크(1204)는 제공자-특정 유선 또는 무선 네트워크(예를 들어, 케이블 또는 위성 반송파 네트워크 또는 이동 전화 네트워크), 인터넷, 광역 네트워크, 콘텐츠 전달 네트워크, 또는 임의의 다른 적합한 네트워크를 포함할 수 있다. 데이터는 임의의 통신 기술들, 장치들, 미디어, 및 프로토콜들을 사용하여 제공자 시스템(1202)과 미디어 플레이어 장치(1206)(및 명시적으로 도시되지 않은 다른 미디어 플레이어 장치들) 사이에 흐를 수 있으며, 이는 특정 구현에 사용될 수 있다.
미디어 플레이어 장치(1206)는 제공자 시스템(1202)으로부터 수신된 가상 현실 미디어 콘텐츠에 액세스하고 그것을 경험하도록 사용자(1208)에 의해 사용될 수 있다. 예를 들어, 미디어 플레이어 장치(1206)는 임의 가상 뷰포인트(예를 들어, 사용자에 의해 선택되고 3D 공간(802) 내의 임의 가상 위치에 대응하는 동적으로 선택가능한 가상 뷰포인트)에서 사용자(1208)에 의해 경험되게 병합된 현실 장면(800)의 3D 공간(802)의 3D 표현을 (예를 들어, 2D 비디오 데이터 스트림들일 수 있는 적어도 하나의 추가적인 운송 스트림 내에 포함된 각각의 가상 뷰포인트들에 대한 컬러 비디오 데이터 스트림 및 깊이 비디오 데이터 스트림에 기초하여) 생성하도록 구성될 수 있다. 이를 위해, 미디어 플레이어 장치(1206)는 몰입형 가상 현실 세계(예를 들어, 병합된 현실 장면(800)을 표현하는 몰입형 가상 현실 세계)의 시계를 표시하고, 사용자(1208)가 몰입형 가상 현실 세계를 경험할 때 시계 내에 표시된 몰입형 가상 현실 세계를 동적으로 갱신하기 위해 사용자(1208)로부터 사용자 입력을 탐지할 수 있는 임의의 장치를 포함하거나 그것에 의해 구현될 수 있다.
예를 들어, 도 13은 가상 현실 미디어 콘텐츠를 경험하기 위해 사용자(1208)에 의해 사용될 수 있는 다양한 예시적인 유형들의 미디어 플레이어 장치들(1206)을 도시한다. 구체적으로, 도시된 바와 같이, 미디어 플레이어 장치(1206)는 머리-장착 디스플레이 화면을 포함하는 머리-장착 가상 현실 장치(1302)(예를 들어, 가상 현실 게임 장치), 개인용 컴퓨터 장치(1304)(예를 들어, 데스트톱 컴퓨터, 랩톱 컴퓨터, 등), 이동 또는 무선 장치(1306)(예를 들어, 머리 장착 기기들에 의해 사용자(1208)의 머리에 장착될 수 있는 스마트폰, 테블릿 장치, 등), 또는 가상 현실 미디어 콘텐츠를 수신 및/또는 제시하는 것을 용이하게 하기 위해 특정 구현에 사용될 수 있는 임의의 다른 장치 또는 장치들의 구성과 같은 몇몇의 상이한 형태 요소들 중 하나를 취할 수 있다. 상이한 유형들의 미디어 플레이어 장치들(예를 들어, 머리-장착 가상 현실 장치들, 개인용 컴퓨터 장치들, 이동 장치들, 등)은 사용자(1208)에게 상이한 수준의 몰입도를 갖는 상이한 유형들의 가상 현실 경험들을 제공할 수 있다.
도 14는 병합된 현실 장면에 관련된 예시적인 임의 가상 위치에 대응하는 동적으로 선택가능한 가상 뷰포인트로부터 경험되는 병합된 현실 장면을 표현하는 예시적인 가상 현실 미디어 콘텐츠가 사용자(1208)에게 표시되는 예시적인 가상 현실 경험(1400)을 나타낸다. 구체적으로, 슛이 들어가고 있는 병합된 현실 장면의 3D 공간 내의 농구대 바로 아래의 임의 가상 위치에 대응하는 가상 뷰포인트에서 병합된 현실 장면을 도시하는 시계(1404) 내에 가상 현실 미디어 콘텐츠(1402)가 표시된다. 몰입형 가상 현실 세계(1406)를 둘러보고 및/또는 주변을 이동하기 위한(즉, 경험하기 위해 가상 뷰포인트를 동적으로 선택하기 위한) 사용자 입력(예를 들어, 머리 움직임, 키보드 입력, 등)을 제공함으로써, 뷰어는 병합된 현실 장면에 기초한 몰입형 가상 현실 세계(1406)를 경험하게 할 수 있게 된다.
예를 들어, 시계(1404)는 사용자(1208)가 몰입형 가상 현실 세계(1406)를 용이하고 자연스럽게 둘러볼 수 있는 창을 제공할 수 있다. 시계(1404)는 미디어 플레이어 장치(1206)에 의해 (예를 들어, 미디어 플레이어 장치(1206)의 디스플레이 화면 상에) 제공되고, 몰입형 가상 현실 세계(1406) 내의 사용자 주변의 오브젝트들을 묘사하는 비디오를 포함할 수 있다. 추가적으로, 시계(1404)는, 사용자(1208)가 몰입형 가상 현실 세계(1406)를 경험할 때 사용자(1208)에 의해 제공되는 사용자 입력에 응답하여 동적으로 변할 수 있다. 예를 들어, 미디어 플레이어 장치(1206)는 사용자 입력(예를 들어, 시계(1404)가 제시되는 디스플레이 화면을 움직이거나 방향을 돌림)을 탐지할 수 있다. 응답으로, 시계(1404)는 이전 가상 뷰포인트 또는 가상 위치에서 보이는 오브젝트들 대신에, 상이한 오브젝트들 및/또는 상이한 가상 뷰포인트 또는 가상 위치에서 보이는 오브젝트들을 디스플레이할 수 있다.
도 14에서, 몰입형 가상 현실 세계(1406)는 반-구로 나타내지는데, 이것은 사용자(1208)가 현재 선택한 농구대 아래 위치의 가상 뷰포인트로부터 실질적으로 앞, 뒤, 좌, 우, 및/또는 위인 몰입형 가상 현실 세계(1406) 내의 임의의 방향으로 사용자(1208)가 볼 수 있다는 것을 나타낸다. 다른 예들에서, 몰입형 가상 현실 세계(1406)는 180°구에 의해 전체 360°를 포함할 수 있어, 사용자(1208)가 아래도 내려다 볼 수 있다. 추가적으로, 사용자(1208)는 몰입형 가상 현실 세계(1406) 내의 다른 위치들로 돌아다닐 수 있다(즉, 3D 공간 내의 상이한 동적으로 선택가능한 가상 뷰포인트들을 동적으로 선택함). 예를 들어, 사용자(1208)는 하프코트에의 가상 뷰포인트, 농구대를 향하고 있는 자유투라인으로부터의 뷰포인트, 농구대 위에 매달려있는 가상 뷰포인트, 등을 선택할 수 있다.
도 15는 상이한 비디오 데이터 스트림들 내의 상이한 유리한 지점들로부터 표현된 가상 오브젝트 및 실세계 오브젝트에 기초하여 병합된 현실 장면을 생성하기 위한 예시적인 방법(1500)을 나타낸다. 도 15는 일 실시예에 따른 예시적인 동작들을 나타내며, 다른 실시예들은 도 15에 도시된 임의의 동작을 생략, 추가, 재순서화, 및/또는 수정할 수 있다. 도 15에 도시된 하나 이상의 동작들은 시스템(100), 그것의 구현, 및/또는 시스템(100)에 연관(예를 들어, 통신가능하게 연결되고, 상호동작하도록 구성되는 등)된다고 전술된 다른 시스템에 의해 수행될 수 있다.
동작(1502)에서, 병합된 현실 장면 캡처 시스템이 실세계 장면의 복수의 상이한 유리한 지점들을 갖도록 실세계 장면에 관련하여 배치된 복수의 3D 캡처 장치들로부터 제1의 복수의 표면 데이터 프레임들을 포함하는 제1 프레임 세트를 수신할 수 있다. 몇몇 예들에서, 제1의 복수의 표면 데이터 프레임들 내의 각각의 표면 데이터 프레임은 복수의 3D 캡처 장치들 내의 각각의 3D 캡처 장치에 의해 동일한 특정 시점에 캡처될 수 있다. 이와 같이, 각각의 이들 표면 데이터 프레임들은 복수의 상이한 유리한 지점들 내의 각각의 유리한 지점으로부터 캡처될 수 있다. 제1의 복수의 표면 데이터 프레임들 내의 표면 데이터 프레임들은, 특정 시점에 각각의 3D 캡처 장치의 각각의 유리한 지점에서 표면들이 보이는 것처럼, 실세계 장면 내에 포함된 실세계 오브젝트의 표면들의 컬러 데이터 및 깊이 데이터를 표현할 수 있다. 동작(1502)은 여기에 설명된 임의의 방식으로 수행될 수 있다.
동작(1504)에서, 병합된 현실 장면 캡처 시스템이 복수의 3D 캡처 장치들 내의 각각의 3D 캡처 장치들에 대한 컬러 비디오 데이터 스트림 및 깊이 비디오 데이터 스트림을 포함하는 운송 스트림을 생성할 수 있다. 몇몇 예들에서, 운송 스트림은 (예를 들어, 동작(1502)에서) 복수의 3D 캡처 장치들로부터 수신된 제1 프레임 세트에 기초하여 및/또는 다른 시점에 캡처된 복수의 다른 프레임 세트들에 기초하여 생성될 수 있다. 동작(1504)은 여기에 설명된 임의의 방식으로 수행될 수 있다.
동작(1506)에서, 병합된 현실 장면 캡처 시스템은 병합된 현실 장면의 3D 공간 내에 포함된 복수의 엔트리들을 나타내는 엔트리 설명 데이터를 생성할 수 있다. 예를 들어, 엔트리 설명 데이터는 운송 스트림에 기초하여 생성될 수 있다. 다양한 유형들의 엔트리들이 병합된 현실 장면의 3D 공간 내에 포함된 복수의 엔트리들 내에 포함될 수 있다. 예시로서, 엔트리들은 병합된 현실 장면 캡처 시스템에 통신가능하게 연결된 자산 저장 시스템 내에 저장된 가상 오브젝트의 표면들의 컬러 데이터 및 깊이 데이터에의 링크들에 의해 엔트리 설명 데이터 내에 적어도 부분적으로 정의된 가상 오브젝트를 포함할 수 있다. 다른 예로서, 엔트리들은, 동작(1502)에서 데이터가 캡처된 실세계 오브젝트를 포함할 수 있다. 예시로서, 실세계 오브젝트는 복수의 3D 캡처 장치들로부터 수신된 제1 프레임 세트 및 복수의 다른 프레임 세트들에 기초하여 생성된 컬러 비디오 데이터 스트림 및 깊이 비디오 데이터 스트림 (즉, 동작(1504)에서 생성된 운송 스트림 내에 포함된 비디오 데이터 스트림) 내에 포함된 실세계 오브젝트의 표면들의 컬러 데이터 및 깊이 데이터에의 링크들에 의해 엔트리 설명 데이터 내에 적어도 부분적으로 정의될 수 있다. 게다가, 엔트리 설명 데이터가 동작(1506)에서 생성된 엔트리들은 제2의 복수의 표면 데이터 프레임들을 포함하는 제2 프레임 세트가 렌더링되는 3D 공간 내의 복수의 가상 뷰포인트들을 포함할 수 있다. 예를 들어, 제2의 복수의 표면 데이터 프레임들은 병합된 현실 장면의 3D 공간 내에 포함된 가상 및 실세계 오브젝트들 모두의 표면들의 컬러 데이터 및 깊이 데이터를 나타낼 수 있다. 동작(1506)은 여기에 설명된 임의의 방식들로 수행될 수 있다.
동작(1508)에서, 병합된 현실 장면 캡처 시스템은 병합된 현실 장면의 3D 공간 내에 포함된 복수의 엔트리들 내의 적어도 하나의 엔트리의 상태를 나타내는 엔트리 설명 프레임을 생성할 수 있다. 몇몇 예들에서, 엔트리 설명 프레임은 시간적 시퀀스의 특정 시점에서의 적어도 하나의 엔트리의 상태를 표현할 수 있다. 동작(1508)은 동작(1506)에서 생성된 복수의 엔트리들을 나타내는 엔트리 설명 데이터에 기초하여 수행될 수 있다. 동작(1508)은 여기에 설명된 임의의 방식들로 수행될 수 있다.
동작(1510)에서, 병합된 현실 장면 캡처 시스템은 콘텐츠 제공자 시스템에 연관된 복수의 서버측 3D 렌더링 엔진들에 엔트리 설명 프레임을 제공할 수 있다. 예를 들어, 복수의 서버측 3D 렌더링 엔진들 내의 각각의 3D 렌더링 엔진은, 동작(1506)에서 엔트리 설명 프레임 데이터가 생성된 3D 공간 내의 복수의 가상 뷰포인트들로부터의 상이한 가상 뷰포인트에 연관될 수 있다. 몇몇 구현들에서, 복수의 서버측 3D 렌더링 엔진들 내의 각각의 3D 렌더링 엔진들은 엔트리 설명 프레임에 기초하여 제2의 복수의 표면 데이터 프레임들 내에 포함된 상이한 표면 데이터 프레임을 렌더링하도록 구성될 수 있다. 동작(1510)은 여기에 설명된 임의의 방식들로 수행될 수 있다.
동작(1512)에서, 복수의 서버측 3D 렌더링 엔진들에 통신가능하게 연결된 및/또는 병합된 현실 장면 캡처 시스템에 이와 달리 연관된 비디오 데이터 패키징 시스템은 적어도 하나의 추가적인 운송 스트림을 생성할 수 있다. 예를 들어, 비디오 데이터 패키징 시스템은 제2의 복수의 표면 데이터 프레임들을 포함하는 제2 프레임 세트 및/또는 각각의 추가적인 복수의 표면 데이터 프레임들을 포함하는 추가적인 프레임 세트들에 기초하여 적어도 하나의 추가적인 운송 스트림을 생성할 수 있다. 몇몇 예들에서, 적어도 하나의 추가적인 운송 스트림은, 동작(1506)에서 엔트리 설명 데이터가 생성된 복수의 가상 뷰포인트들 내의 각각의 가상 뷰포인트들에 대한 컬러 비디오 데이터 스트림 및 깊이 비디오 데이터 스트림을 포함할 수 있다. 동작(1512)은 여기에 설명된 임의의 방식들로 수행될 수 있다.
동작(1514)에서, 병합된 현실 장면 캡처 시스템에 연관된 비디오 데이터 패키징 시스템은 사용자에 연관된 클라이언트측 미디어 플레이어 장치에 스트리밍할 적어도 하나의 추가적인 운송 스트림을 제공할 수 있다. 예시로서, 클라이언트측 미디어 플레이어 장치는 적어도 하나의 추가적인 운송 스트림 내에 포함된 각각의 가상 뷰포인트들에 대한 컬러 비디오 데이터 스트림 및 깊이 비디오 데이터 스트림에 기초하여, 사용자에 의해 경험될 병합된 현실 장면의 3D 공간의 3D 표현을 생성하도록 구성될 수 있다. 몇몇 예들에서, 3D 공간의 3D 표현은 사용자에 의해 선택되고 병합된 현실 장면의 3D 공간 내의 임의 가상 위치에 대응하는 동적으로 선택가능한 가상 뷰포인트로부터 사용자에 의해 경험될 수 있다. 동작(1514)은 여기에 설명된 임의의 방식들로 수행될 수 있다.
어떤 실시예들에서, 여기에 설명된 하나 이상의 시스템들, 구성요소들, 및/또는 처리들은 하나 이상의 적절하게 구성된 컴퓨팅 장치들에 의해 구현 및/또는 수행될 수 있다. 이를 위해, 전술된 하나 이상의 시스템들 및/또는 구성요소들은 임의의 컴퓨터 하드웨어 및/또는 여기에 설명된 처리들 중 하나 이상을 수행하도록 구성된 적어도 하나의 비일시적(non-transitory) 컴퓨터-판독가능 매체 상에 실시된 컴퓨터-구현 명령어들(예를 들어, 소프트웨어)을 포함하거나 그것들에 의해 구현될 수 있다. 특히, 시스템 구성요소들은 하나의 물리적 컴퓨팅 장치 상에 구현될 수 있거나 하나 이상의 물리적 컴퓨팅 장치 상에 구현될 수 있다. 따라서, 시스템 구성요소들은 임의의 개수의 컴퓨팅 장치들을 포함할 수 있고, 다수의 컴퓨터 동작 시스템들 중 임의의 것을 사용할 수 있다.
어떤 실시예들에서, 여기에 설명된 하나 이상의 처리들은 비일시적 컴퓨터-판독가능 매체 내에 실시되고 하나 이상의 컴퓨팅 장치들에 의해 실행가능한 명령어들로 적어도 부분적으로 구현될 수 있다. 일반적으로, 프로세서(예를 들어, 마이크로프로세서)는 비일시적 컴퓨터-판독가능 매체(예를 들어, 메모리, 등)로부터 명령어들을 수신하고, 그 명령어들을 실행하여, 여기에 설명된 하나 이상의 처리들을 포함하는 하나 이상의 처리들이 수행된다. 이러한 명령어들은 다양한 알려진 컴퓨터-판독가능 매체 중 임의의 것을 사용하여 저장 및/또는 트랜스미션될 수 있다.
(프로세서-판독가능 매체로도 또한 언급되는) 컴퓨터-판독가능 매체는 컴퓨터에 의해 (예를 들어, 컴퓨터의 프로세서에 의해) 판독될 수 있는 데이터(예를 들어, 명령어들)를 제공하는데 참여하는 임의의 고정 매체를 포함한다. 이러한 매체는 비-휘발성 매체, 및/또는 휘발성 매체를 포함하는 많은 형태들을 취할 수 있지만, 이에 제한되는 것은 아니다. 비-휘발성 매체는, 예를 들어, 광학 또는 자기 디스크들 및 다른 영구 메모리를 포함할 수 있다. 휘발성 매체는, 예를 들어, 전형적으로 주 메모리를 이루는 동적 랜덤 액세스 메모리(dynamic random access memory("DRAM"))를 포함할 수 있다. 흔한 형태들의 컴퓨터-판독가능 매체는, 예를 들어, 디스크, 하드 디스크, 자기 테이프, 임의의 다른 자기 매체, 콤팩트 디스크 판독-전용 메모리(compact disc read-only memory("CD- ROM")), 디지털 비디오 디스크("DVD"), 임의의 다른 광학 매체, 랜덤 액세스 메모리("RAM"), 프로그래밍가능 판독-전용 메모리("PROM"), 전기로 삭제가능한 프로그래밍가능 판독-전용 메모리("EPROM"), FLASH-EEPROM, 임의의 다른 메모리 칩 또는 카트리지, 또는 컴퓨터가 판독할 수 있는 임의의 다른 유형 매체를 포함한다.
도 16은 여기에 설명된 처리들 중 하나 이상을 수행하도록 구체적으로 구성될 수 있는 예시적인 컴퓨팅 장치(1600)를 나타낸다. 도 16에 도시된 바와 같이, 컴퓨팅 장치(1600)는 통신 인터페이스(1602), 프로세서(1604), 저장 장치(1606), 및 통신 기반구조(1610)를 통해 통신가능하게 접속된 입/출력("I/O") 모듈(1608)을 포함할 수 있다. 예시적인 컴퓨팅 장치(1600)가 도 16에 도시되어 있지만, 도 16에 나타낸 구성요소들은 제한하는 것으로 의도된 것은 아니다. 추가적인 또는 대안적인 구성요소들이 다른 실시예들에서 사용될 수 있다. 도 16에 도시된 컴퓨팅 장치(1600)의 구성요소들이 이제 추가적으로 상세히 후술될 것이다.
통신 인터페이스(1602)는 하나 이상의 컴퓨팅 장치들과 통신하도록 구성될 수 있다. 통신 인터페이스(1602)의 예들에는 (네트워크 인터페이스 카드와 같은) 유선 네트워크 인터페이스, (무선 네트워크 인터페이스 카드와 같은) 무선 네트워크 인터페이스, 모뎀, 오디오/비디오 접속부, 및 임의의 다른 적합한 인터페이스가 포함되지만, 이에 제한된 것은 아니다.
프로세서(1604)는 일반적으로 데이터를 처리하거나 여기에 설명된 명령어들, 처리들, 및/또는 동작들 중 하나 이상을 해석, 실행, 및/또는 실행 지시할 수 있는 임의의 유형 또는 형태의 처리 유닛(예를 들어, 중앙 처리 유닛 및/또는 그래픽 처리 유닛)을 표현한다. 프로세서(1604)는 저장 장치(1606) 또는 다른 컴퓨터-판독가능 매체 내에 저장될 수 있는 것과 같은 하나 이상의 애플리케이션들(1612) 또는 다른 컴퓨터-실행가능 명령어들에 따라 동작들의 실행을 지시할 수 있다.
저장 장치(1606)는 하나 이상의 데이터 저장 매체, 장치들, 또는 구성들을 포함할 수 있고, 데이터 저장 매체 및/또는 장치의 임의의 유형, 형태, 및 조합을 사용할 수 있다. 예를 들어, 저장 장치(1606)는 하드 디스크, 네트워크 드라이브, 플래시 드라이브, 자기 디스크, 광학 디스크, RAM, 동적 RAM, 다른 비-휘발성 및/또는 휘발성 데이터 저장 유닛들, 또는 그들의 조합 또는 하위 조합을 포함할 수 있지만, 이에 제한되는 것은 아니다. 여기에 설명된 데이터를 포함하는 전자 데이터는 저장 장치(1606) 내에 일시적으로 및/또는 영구적으로 저장될 수 있다. 예를 들어, 프로세서(1604)가 여기에 설명된 동작들 중 임의의 것을 수행하도록 지시하게 구성된 하나 이상의 실행가능 애플리케이션들(1612)을 표현하는 데이터는 저장 장치(1606) 내에 저장될 수 있다. 몇몇 예들에서, 데이터는 저장 장치(1606) 내에 존재하는 하나 이상의 데이터베이스들 내에 배치될 수 있다.
I/O 모듈(1608)은 사용자 입력을 수신하고 사용자에게 출력을 제공하도록 구성된 하나 이상의 I/O 모듈들을 포함할 수 있다. 하나 이상의 I/O 모듈들은 단일 가상 현실 경험에 대한 입력을 수신하기 위해 사용될 수 있다. I/O 모듈(1608)은 입력 및 출력 능력들을 지원하는 임의의 하드웨어, 펌웨어(firmware), 소프트웨어, 또는 그들의 조합을 포함할 수 있다. 예를 들어, I/O 모듈(1608)은 키보드 또는 키패드, 터치스크린 구성요소(예를 들어, 터치스크린 디스플레이), 수신기(예를 들어, RF 또는 적외선 수신기), 움직임 감지기들, 및/또는 하나 이상의 입력 버튼들을 포함하는(이에 제한되지는 않음), 사용자 입력을 캡처하기 위한 하드웨어 및/또는 소프트웨어를 포함할 수 있다.
I/O 모듈(1608)은 그래픽 엔진, 디스플레이(예를 들어, 디스플레이 스크린), 하나 아상의 출력 드라이버들(예를 들어, 디스플레이 드라이버들), 하나 이상의 오디오 스피커들, 및 하나 이상의 오디오 드라이버들을 포함하는(이에 제한되지 않음), 사용자에 출력을 제시하기 위한 하나 이상의 장치들을 포함할 수 있다. 어떤 실시예들에서, I/O 모듈(1608)은 사용자에게 제시할 그래픽 데이터를 디스플레이에 제공하도록 구성된다. 그래픽 데이터는 하나 이상의 그래픽 사용자 인터페이스들 및/또는 임의의 다른 그래픽 콘텐츠를 표현할 수 있으며, 이는 특정 구현에 사용될 수 있다.
몇몇 예들에서, 여기에 설명된 기능들 중 임의의 것은 컴퓨팅 장치(1600)의 하나 이상의 구성요소들에 의해 또는 그것들 내에 구현될 수 있다. 예를 들어, 저장 장치(1606) 내에 존재하는 하나 이상의 애플리케이션들(1612)은 시스템(100)의 실세계 장면 캡처 기능(102) 또는 병합된 현실 엔트리 상태 추적 기능(104)에 연관된 하나 이상의 동작들 또는 기능들을 수행하게 프로세서(1604)에 지시하도록 구성될 수 있다(도 1 참조). 마찬가지로, 시스템(100)의 저장 기능(106)은 저장 장치(1606)에 의해 또는 그것 내에 구현될 수 있다.
전술된 실시예들이 개인이 제공하는 개인 정보를 수집, 저장, 및/또는 이용하는 한, 그러한 정보는 개인정보 보호에 관한 모든 해당 법률에 따라 사용되어야 한다는 것이 이해되어야 한다. 추가적으로, 그러한 정보의 수집, 저장, 및 사용은, 예를 들어, 상황 및 정보 유형에 적합할 수 있는 잘 알려진 "사전동의(opt-in)" 또는 "사후철회(opt-out)" 처리들을 통해 그러한 활동에 대한 개인의 동의의 대상이 될 수 있다. 개인 정보의 저장과 사용은, 예를 들어, 특히 민감한 정보에 대한 다양한 암호화 및 익명화 기술들을 통해 정보 유형을 반영하는 적절하게 안전한 방식으로 행해질 수 있다.
전술에서, 다양하고 예시적인 실시예들이 첨부된 도면들을 참조하여 설명되었다. 그러나, 다음의 청구항들에 언급된 본 발명의 영역에서 벗어나지 않으면서, 다양한 수정들 및 변경들이 행해질 수 있고, 추가적인 실시예들이 구현될 수 있다는 것이 자명해질 것이다. 예를 들어, 여기에 설명된 일 실시예의 어떤 특징들은 여기에 설명된 다른 실시예의 특징들과 조합되거나 그들을 대신할 수 있다. 따라서 설명 및 도면들은 제한적인 의미보다는 예시로 간주된다.
100: 병합된 현실 장면 캡처 시스템
102: 실세계 장면 캡처 기능
104: 병합된 현실 엔트리 상태 추적 기능
202: 실세계 장면
206: 3D 캡처 장치들

Claims (20)

  1. 실세계 장면의 복수의 상이한 유리한 지점들을 갖도록 상기 실세계 장면에 관련하여 배치된 복수의 3-차원(3D) 캡처 장치들로부터 병합된 현실 장면 캡처 시스템에 의해, 제1의 복수의 표면 데이터 프레임들을 포함하는 제1 프레임 세트를 수신하는 단계로서, 상기 제1의 복수의 표면 데이터 프레임들은,
    동일한 특정 시점에, 상기 복수의 3D 캡처 장치들 내의 각각의 3D 캡처 장치에 의해 그리고 상기 복수의 상이한 유리한 지점들 내의 각각의 유리한 지점에서 캡처되고,
    상기 실세계 장면 내에 포함된 실세계 오브젝트의 표면들이 상기 특정 시점에 상기 각각의 3D 캡처 장치의 상기 각각의 유리한 지점에서 보일 때, 상기 표면들의 컬러 데이터 및 깊이 데이터를 나타내는, 상기 제1 프레임 세트를 수신하는 단계;
    상기 병합된 현실 장면 캡처 시스템에 의해, 상기 복수의 3D 캡처 장치들로부터 수신된 상기 제1 프레임 세트 및 다른 시점들에 캡처된 복수의 다른 프레임 세트들에 기초하여, 상기 복수의 3D 캡처 장치들 내의 상기 3D 캡처 장치들 각각에 대한 컬러 비디오 데이터 스트림 및 깊이 비디오 데이터 스트림을 포함하는 운송 스트림을 생성하는 단계; 및
    상기 병합된 현실 장면 캡처 시스템에 의해, 상기 운송 스트림에 기초하여, 병합된 현실 장면의 3D 공간 내에 포함된 복수의 엔트리들을 나타내는 엔트리 설명 데이터를 생성하는 단계로서, 상기 복수의 엔트리들은,
    상기 병합된 현실 장면 캡처 시스템에 통신가능하게 연결된 자산 저장 시스템 내에 저장된 가상 오브젝트의 표면들의 컬러 데이터 및 깊이 데이터에의 링크들에 의해 상기 엔트리 설명 데이터 내에 적어도 부분적으로 정의된 상기 가상 오브젝트,
    상기 복수의 3D 캡처 장치들로부터 수신된 상기 제1 프레임 세트 및 상기 복수의 다른 프레임 세트들에 기초하여 생성된 상기 컬러 비디오 데이터 스트림 및 상기 깊이 비디오 데이터 스트림 내에 포함된 상기 실세계 오브젝트의 표면들의 상기 컬러 데이터 및 상기 깊이 데이터에의 링크들에 의해 상기 엔트리 설명 데이터 내에 적어도 부분적으로 정의된 상기 실세계 오브젝트, 및
    상기 병합된 현실 장면의 상기 3D 공간 내에 포함된 상기 가상 오브젝트 및 상기 실세계 오브젝트 모두의 표면들의 상기 컬러 데이터 및 상기 깊이 데이터는 나타내는 제2의 복수의 표면 데이터 프레임들을 포함하는 제2 프레임 세트가 렌더링되는 상기 3D 공간 내의 복수의 가상 뷰포인트들(virtual viewpoints)을 포함하는, 상기 엔트리 설명 데이터를 생성하는 단계를 포함하는, 방법.
  2. 제 1 항에 있어서,
    상기 병합된 현실 장면 캡처 시스템에 의해, 상기 복수의 엔트리들을 나타내는 상기 엔트리 설명 데이터에 기초하여, 시간적 시퀀스(temporal sequence) 내의 특정 시점에 상기 병합된 현실 장면의 상기 3D 공간 내에 포함되는 상기 복수의 엔트리들 내의 엔트리의 상태를 나타내는 엔트리 설명 프레임을 생성하는 단계; 및
    상기 병합된 현실 장면 캡처 시스템에 의해, 콘텐츠 제공자 시스템에 연관된 복수의 3D 렌더링 엔진들에 상기 엔트리 설명 프레임을 제공하는 단계로서, 상기 복수의 3D 렌더링 엔진들 내의 각각의 3D 렌더링 엔진은 상기 3D 공간 내의 상기 복수의 가상 뷰포인트들과 상이한 가상 뷰포인트에 연관되고, 상기 엔트리 설명 프레임에 기초하여, 상기 제2의 복수의 표면 데이터 프레임들 내에 포함된 상이한 표면 데이터 프레임을 렌더링하도록 구성된, 상기 엔트리 설명 프레임을 제공하는 단계를 더 포함하는, 방법.
  3. 제 2 항에 있어서,
    상기 복수의 3D 렌더링 엔진들에 통신가능하게 연결된 비디오 데이터 패키징 시스템에 의해, 상기 제2의 복수의 표면 데이터 프레임들을 포함하는 상기 제2 프레임 세트 및 각각의 추가적인 복수의 표면 데이터 프레임들을 포함하는 추가적인 프레임 세트들에 기초하여, 상기 복수의 가상 뷰포인트들 내의 각각의 상기 가상 뷰포인트들에 대한 컬러 비디오 데이터 스트림 및 깊이 비디오 데이터 스트림을 포함하는 다른 운송 스트림을 생성하는 단계; 및
    상기 비디오 데이터 패키징 시스템에 의해, 사용자에 연관된 클라이언트측 미디어 플레이어 장치에 스트리밍할 상기 다른 운송 스트림을 제공하는 단계로서, 상기 클라이언트측 미디어 플레이어 장치는 상기 다른 운송 스트림 내에 포함된 각각의 상기 가상 뷰포인트들에 대한 상기 컬러 비디오 데이터 스트림 및 상기 깊이 비디오 데이터 스트림에 기초하여, 상기 사용자에 의해 선택되고 상기 병합된 현실 장면의 상기 3D 공간 내의 임의 가상 위치에 대응하는 동적으로 선택가능한 가상 뷰포인트에서 상기 사용자에 의해 경험되는 상기 병합된 현실 장면의 상기 3D 공간의 3D 표현을 생성하도록 구성된, 상기 다른 운송 스트림을 제공하는 단계를 더 포함하는, 방법.
  4. 제 1 항에 있어서,
    상기 실세계 오브젝트를 나타내는 상기 엔트리 설명 데이터를 생성하는 단계는:
    상기 제1 프레임 세트 및 상기 복수의 다른 프레임 세트들에 기초하여 생성된 상기 컬러 비디오 데이터 스트림 및 상기 깊이 비디오 데이터 스트림에 기초하여, 상기 실세계 장면 내에 포함된 상기 실세계 오브젝트의 3D 표현을 생성하는 단계; 및
    상기 실세계 오브젝트의 상기 3D 표현에 대한 포인터들로서, 상기 엔트리 설명 데이터 내의 상기 실세계 오브젝트를 적어도 부분적으로 정의하는 상기 실세계 오브젝트의 상기 표면들의 상기 컬러 데이터 및 상기 깊이 데이터에의 상기 링크들을 생성하는 단계를 포함하는, 방법.
  5. 제 1 항에 있어서,
    상기 병합된 현실 장면 캡처 시스템에 의해, 장면 제어 시스템으로부터, 상기 복수의 엔트리들을 나타내는 상기 엔트리 설명 데이터를 수정하기 위한 명령을 수신하는 단계; 및
    상기 병합된 현실 장면 캡처 시스템에 의해, 상기 명령을 수신하는 단계에 응답하여, 상기 명령에 따라 상기 복수의 엔트리들을 나타내는 상기 엔트리 설명 데이터를 수정하는 단계를 더 포함하는, 방법.
  6. 제 1 항에 있어서,
    상기 복수의 엔트리들을 나타내는 상기 엔트리 설명 데이터를 생성하는 단계는,
    상기 병합된 현실 장면의 상기 3D 공간 내에 포함된 상기 가상 오브젝트와 상기 병합된 현실 장면의 상기 3D 공간 내에 포함된 상기 실세계 오브젝트 사이의 가상 상호작용을 제작하는 단계를 포함하고,
    상기 가상 상호작용은 물리-기반 오브젝트 거동 및 인공 지능-기반 (AI-기반) 오브젝트 거동 중 적어도 하나에 기초하는, 방법.
  7. 제 1 항에 있어서,
    상기 병합된 현실 장면 캡처 시스템에 의해, 상기 제1 프레임 세트에 연관된 메타데이터를 수신하는 단계로서, 상기 메타데이터는 상기 특정 시점에 상기 실세계 장면 내에 포함된 상기 실세계 오브젝트의 상기 표면들의 상기 컬러 데이터 및 상기 깊이 데이터를 추가적인 실세계 오브젝트의 다른 표면들을 나타내는 다른 컬러 데이터 및 다른 깊이 데이터로부터 구별짓는, 상기 메타데이터를 수신하는 단계를 더 포함하고,
    상기 엔트리 설명 데이터가 생성된 상기 병합된 현실 장면의 상기 3D 공간 내에 포함된 상기 복수의 엔트리들은 상기 추가적인 실세계 오브젝트를 더 포함하고,
    상기 추가적인 실세계 오브젝트는 상기 컬러 비디오 데이터 스트림 및 상기 깊이 비디오 데이터 스트림 내에 포함된 상기 추가적인 실세계 오브젝트의 상기 다른 표면들을 나타내는 상기 다른 컬러 데이터 및 상기 다른 깊이 데이터에의 링크들에 의해 상기 엔트리 설명 데이터 내에 적어도 부분적으로 정의되고,
    상기 실세계 오브젝트의 상기 표면들의 상기 컬러 데이터 및 상기 깊이 데이터에의 상기 링크들 및 상기 추가적인 실세계 오브젝트의 상기 다른 표면들을 나타내는 상기 다른 컬러 데이터 및 상기 다른 깊이 데이터에의 상기 링크들은 상기 실세계 오브젝트의 상기 표면들의 상기 컬러 데이터 및 상기 깊이 데이터를 상기 추가적인 실세계 오브젝트의 상기 다른 표면들을 나타내는 상기 다른 컬러 데이터 및 상기 다른 깊이 데이터로부터 구별짓는 상기 메타데이터에 기초하는, 방법.
  8. 제 1 항에 있어서,
    상기 실세계 장면의 상기 복수의 상이한 유리한 지점들의 제1 공간 구성은 상기 병합된 현실 장면의 상기 3D 공간 내의 상기 복수의 가상 뷰포인트들의 제2 공간 구성과 별개인, 방법.
  9. 제 1 항에 있어서,
    상기 제1 프레임 세트를 수신하는 단계, 상기 운송 스트림을 생성하는 단계, 및 상기 엔트리 설명 데이터를 생성하는 단계는 각각, 이벤트들이 상기 실세계 장면 내에서 일어날 때 실시간으로 상기 병합된 현실 장면 캡처 시스템에 의해 수행되는, 방법.
  10. 제 1 항에 있어서,
    상기 방법은 적어도 하나의 비일시적(non-transitory) 컴퓨터-판독가능 매체 상의 컴퓨터-실행가능 명령어들로 실시되는, 방법.
  11. 병합된 현실 장면 캡처 시스템에 있어서,
    실세계 장면 내에 포함된 실세계 오브젝트를 나타내는 데이터를 캡처하기 위한, 상기 실세계 장면의 복수의 상이한 유리한 지점들을 갖도록 상기 실세계 장면에 관련하여 배치된 복수의 3-차원(3D) 캡처 장치들;
    가상 오브젝트의 표면들을 나타내는 컬러 데이터 및 깊이 데이터를 저장하는 자산 저장 시스템;
    상기 자산 저장 시스템에 통신가능하게 연결된 복수의 서버측 3D 렌더링 엔진들; 및
    상기 복수의 3D 캡처 장치들, 상기 자산 저장 시스템, 상기 복수의 서버측 3D 렌더링 엔진들에 통신가능하게 연결된 엔트리 상태 추적 시스템을 포함하고,
    상기 엔트리 상태 추적 시스템은, 이벤트들이 상기 실세계 장면 내에서 일어날 때 실시간으로,
    상기 복수의 3D 캡처 장치들로부터, 상기 실세계 오브젝트의 표면들을 나타내는 제1의 복수의 표면 데이터 프레임들을 포함하는 제1 프레임 세트를 수신하고,
    상기 제1 프레임 세트 및 상기 복수의 3D 캡처 장치들로부터 수신되는 복수의 다른 프레임 세트들에 기초하여, 상기 복수의 3D 캡처 장치들 내의 각각의 상기 3D 캡처 장치들에 대한 컬러 비디오 데이터 스트림 및 깊이 비디오 데이터 스트림을 포함하는 운송 스트림을 생성하고,
    상기 운송 스트림 및 상기 자산 저장 시스템 내에 저장된 상기 컬러 데이터 및 깊이 데이터에 기초하여, 병합된 현실 장면의 3D 공간 내에 포함된 복수의 엔트리들을 나타내는 엔트리 설명 데이터를 생성하고, 상기 복수의 엔트리들은,
    상기 자산 저장 시스템 내에 저장된 상기 컬러 데이터 및 상기 깊이 데이터에 의해 표현된 상기 가상 오브젝트,
    상기 제1 프레임 세트에 포함되고 상기 실세계 오브젝트의 상기 표면들을 나타내는 상기 제1의 복수의 표면 데이터 프레임들에 의해 표현되는 상기 실세계 오브젝트, 및
    상기 병합된 현실 장면의 상기 3D 공간 내의 복수의 가상 뷰포인트들을 포함하는, 상기 엔트리 설명 데이터를 생성하고,
    상기 복수의 엔트리들을 나타내는 상기 엔트리 설명 데이터에 기초하여, 시간적 시퀀스 내의 특정 시점에 상기 병합된 현실 공간의 상기 3D 공간 내에 포함된 상기 복수의 엔트리들 내의 엔트리의 상태를 나타내는 엔트리 설명 프레임을 생성하고,
    상기 복수의 서버측 3D 렌더링 엔진들에 상기 엔트리 설명 프레임을 제공하도록 구성되고,
    상기 복수의 서버측 3D 렌더링 엔진들 내의 각각의 3D 렌더링 엔진은 상기 3D 공간 내의 상기 복수의 가상 뷰포인트들로부터의 상이한 가상 뷰포인트에 연관되고, 상기 엔트리 설명 프레임에 기초하여, 상기 시간적 시퀀스 내의 상기 특정 시점에 상기 상이한 가상 뷰포인트로부터 가시가능한 상기 병합된 현실 장면의 상기 3D 공간의 뷰를 나타내고 제2 프레임 세트의 제2의 복수의 표면 데이터 프레임들 내에 포함된 상이한 표면 데이터 프레임을 렌더링하도록 구성된, 병합된 현실 장면 캡처 시스템.
  12. 병합된 현실 장면 캡처 시스템에 있어서,
    적어도 하나의 물리적 컴퓨팅 장치를 포함하고,
    상기 적어도 하나의 물리적 컴퓨팅 장치는,
    실세계 장면의 복수의 상이한 유리한 지점들을 갖도록 상기 실세계 장면에 관련하여 배치된 복수의 3-차원(3D) 캡처 장치들로부터, 제1의 복수의 표면 데이터 프레임들을 포함하는 제1 프레임 세트를 수신하는 것으로, 상기 제1의 복수의 표면 데이터 프레임들은,
    동일한 특정 시점에, 상기 복수의 3D 캡처 장치들 내의 각각의 3D 캡처 장치에 의해 그리고 상기 복수의 상이한 유리한 지점들 내의 각각의 유리한 지점에서 캡처되고,
    상기 실세계 장면 내에 포함된 실세계 오브젝트의 표면들이 상기 특정 시점에 상기 각각의 3D 캡처 장치의 상기 각각의 유리한 지점에서 보일 때, 상기 표면들의 컬러 데이터 및 깊이 데이터를 나타내는, 상기 제 1 프레임 세트를 수신하고,
    상기 복수의 3D 캡처 장치들로부터 수신된 상기 제1 프레임 세트 및 다른 시점들에 캡처된 복수의 다른 프레임 세트들에 기초하여, 상기 복수의 3D 캡처 장치들 내의 상기 3D 캡처 장치들 각각에 대한 컬러 비디오 데이터 스트림 및 깊이 비디오 데이터 스트림을 포함하는 운송 스트림을 생성하고,
    상기 운송 스트림에 기초하여, 병합된 현실 장면의 3D 공간 내에 포함된 복수의 엔트리들을 나타내는 엔트리 설명 데이터를 생성하고,
    상기 복수의 엔트리들은,
    상기 병합된 현실 장면 캡처 시스템에 통신가능하게 연결된 자산 저장 시스템 내에 저장된 가상 오브젝트의 표면들의 컬러 데이터 및 깊이 데이터에의 링크들에 의해 상기 엔트리 설명 데이터 내에 적어도 부분적으로 정의된 상기 가상 오브젝트,
    상기 복수의 3D 캡처 장치들로부터 수신된 상기 제1 프레임 세트 및 상기 복수의 다른 프레임 세트들에 기초하여 생성된 상기 컬러 비디오 데이터 스트림 및 상기 깊이 비디오 데이터 스트림 내에 포함된 상기 실세계 오브젝트의 상기 표면들의 상기 컬러 데이터 및 상기 깊이 데이터에의 링크들에 의해 상기 엔트리 설명 데이터 내에 적어도 부분적으로 정의된 상기 실세계 오브젝트, 및
    상기 병합된 현실 장면의 상기 3D 공간 내에 포함된 상기 가상 오브젝트 및 상기 실세계 오브젝트 모두의 상기 표면들의 상기 컬러 데이터 및 상기 깊이 데이터는 나타내는 제2의 복수의 표면 데이터 프레임들을 포함하는 제2 프레임 세트가 렌더링되는 상기 3D 공간 내의 복수의 가상 뷰포인트들을 포함하는, 병합된 현실 장면 캡처 시스템.
  13. 제 12 항에 있어서,
    상기 적어도 하나의 물리적 컴퓨팅 장치는 또한;
    상기 복수의 엔트리들을 나타내는 상기 엔트리 설명 데이터에 기초하여, 시간적 시퀀스 내의 특정 시점에 상기 병합된 현실 장면의 상기 3D 공간 내에 포함되는 상기 복수의 엔트리들 내의 엔트리의 상태를 나타내는 엔트리 설명 프레임을 생성하고,
    콘텐츠 제공자 시스템에 연관된 복수의 3D 렌더링 엔진들에 상기 엔트리 설명 프레임을 제공하고, 상기 복수의 3D 렌더링 엔진들 내의 각각의 3D 렌더링 엔진은 상기 3D 공간 내의 상기 복수의 가상 뷰포인트들과 상이한 가상 뷰포인트에 연관되고, 상기 엔트리 설명 프레임에 기초하여, 상기 제2의 복수의 표면 데이터 프레임들 내에 포함된 상이한 표면 데이터 프레임을 렌더링하도록 구성된, 병합된 현실 장면 캡처 시스템.
  14. 제 13 항에 있어서,
    상기 복수의 3D 렌더링 엔진들은 비디오 데이터 패키징 시스템에 통신가능하게 연결되고, 상기 비디오 데이터 패키징 시스템은:
    상기 제2의 복수의 표면 데이터 프레임들을 포함하는 상기 제2 프레임 세트 및 각각의 추가적인 복수의 표면 데이터 프레임들을 포함하는 추가적인 프레임 세트들에 기초하여, 상기 복수의 가상 뷰포인트들 내의 각각의 상기 가상 뷰포인트들에 대한 컬러 비디오 데이터 스트림 및 깊이 비디오 데이터 스트림을 포함하는 다른 운송 스트림을 생성하고,
    사용자에 연관된 클라이언트측 미디어 플레이어 장치에 스트리밍할 상기 다른 운송 스트림을 제공하고,
    상기 클라이언트측 미디어 플레이어 장치는 상기 다른 운송 스트림 내에 포함된 각각의 상기 가상 뷰포인트들에 대한 상기 컬러 비디오 데이터 스트림 및 상기 깊이 비디오 데이터 스트림에 기초하여, 상기 사용자에 의해 선택되고 상기 병합된 현실 장면의 상기 3D 공간 내의 임의 가상 위치에 대응하는 동적으로 선택가능한 가상 뷰포인트에서 상기 사용자에 의해 경험되는 상기 병합된 현실 장면의 상기 3D 공간의 3D 표현을 생성하도록 구성된, 병합된 현실 장면 캡처 시스템.
  15. 제 12 항에 있어서,
    상기 적어도 하나의 물리적 컴퓨팅 장치는:
    상기 제1 프레임 세트 및 상기 복수의 다른 프레임 세트들에 기초하여 생성된 상기 컬러 비디오 데이터 스트림 및 상기 깊이 비디오 데이터 스트림에 기초하여, 상기 실세계 장면 내에 포함된 상기 실세계 오브젝트의 3D 표현을 생성하고,
    상기 실세계 오브젝트의 상기 3D 표현에 대한 포인터들로서, 상기 엔트리 설명 데이터 내의 상기 실세계 오브젝트를 적어도 부분적으로 정의하는 상기 실세계 오브젝트의 상기 표면들의 상기 컬러 데이터 및 상기 깊이 데이터에의 상기 링크들을 생성함으로써,
    상기 실세계 오브젝트를 나타내는 상기 엔트리 설명 데이터를 생성하는, 병합된 현실 장면 캡처 시스템.
  16. 제 12 항에 있어서,
    상기 적어도 하나의 물리적 컴퓨팅 장치는 또한:
    장면 제어 시스템으로부터, 상기 복수의 엔트리들을 나타내는 상기 엔트리 설명 데이터를 수정하기 위한 명령을 수신하고;
    상기 명령을 수신한 것에 응답하여, 상기 명령에 따라 상기 복수의 엔트리들을 나타내는 상기 엔트리 설명 데이터를 수정하는, 병합된 현실 장면 캡처 시스템.
  17. 제 12 항에 있어서,
    상기 적어도 하나의 물리적 컴퓨팅 장치는 상기 병합된 현실 장면의 상기 3D 공간 내에 포함된 상기 가상 오브젝트와 상기 병합된 현실 장면의 상기 3D 공간 내에 포함된 상기 실세계 오브젝트 사이의 가상 상호작용을 제작함으로써, 상기 복수의 엔트리들을 나타내는 상기 엔트리 설명 데이터를 생성하고, 상기 가상 상호작용은 물리-기반 오브젝트 거동 및 인공 지능-기반 (AI-기반) 오브젝트 거동 중 적어도 하나에 기초하는, 병합된 현실 장면 캡처 시스템.
  18. 제 12 항에 있어서,
    상기 적어도 하나의 물리적 컴퓨팅 장치는 또한:
    상기 제1 프레임 세트에 연관된 메타데이터를 수신하고,
    상기 메타데이터는 상기 특정 시점에 상기 실세계 장면 내에 포함된 상기 실세계 오브젝트의 상기 표면들의 상기 컬러 데이터 및 상기 깊이 데이터를 추가적인 실세계 오브젝트의 다른 표면들을 나타내는 다른 컬러 데이터 및 다른 깊이 데이터로부터 구별짓고,
    상기 엔트리 설명 데이터가 생성된 상기 병합된 현실 장면의 상기 3D 공간 내에 포함된 상기 복수의 엔트리들은 상기 추가적인 실세계 오브젝트를 더 포함하고,
    상기 추가적인 실세계 오브젝트는 상기 컬러 비디오 데이터 스트림 및 상기 깊이 비디오 데이터 스트림 내에 포함된 상기 추가적인 실세계 오브젝트의 상기 다른 표면들을 나타내는 상기 다른 컬러 데이터 및 상기 다른 깊이 데이터에의 링크들에 의해 상기 엔트리 설명 데이터 내에 적어도 부분적으로 정의되고,
    상기 실세계 오브젝트의 상기 표면들의 상기 컬러 데이터 및 상기 깊이 데이터에의 상기 링크들 및 상기 추가적인 실세계 오브젝트의 상기 다른 표면들을 나타내는 상기 다른 컬러 데이터 및 상기 다른 깊이 데이터에의 상기 링크들은 상기 실세계 오브젝트의 상기 표면들의 상기 컬러 데이터 및 상기 깊이 데이터를 상기 추가적인 실세계 오브젝트의 상기 다른 표면들을 나타내는 상기 다른 컬러 데이터 및 상기 다른 깊이 데이터로부터 구별짓는 상기 메타데이터에 기초하는, 병합된 현실 장면 캡처 시스템.
  19. 제 12 항에 있어서,
    상기 실세계 장면의 상기 복수의 상이한 유리한 지점들의 제1 공간 구성은 상기 병합된 현실 장면의 상기 3D 공간 내의 상기 복수의 가상 뷰포인트들의 제2 공간 구성과 별개인, 병합된 현실 장면 캡처 시스템.
  20. 제 12 항에 있어서,
    상기 적어도 하나의 물리적 컴퓨팅 장치는 상기 제1 프레임 세트를 수신하고, 상기 운송 스트림을 생성하고, 및 이벤트들이 상기 실세계 장면 내에서 일어날 때 실시간으로 상기 엔트리 설명 데이터를 생성하는, 병합된 현실 장면 캡처 시스템.
KR1020197035521A 2017-05-31 2018-05-24 상이한 비디오 데이터 스트림들 내의 상이한 유리한 지점들로부터 표현된 가상 오브젝트 및 실세계 오브젝트에 기초하여 병합된 현실 장면을 생성하기 위한 방법들 및 시스템들 KR102494795B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/610,573 US10297087B2 (en) 2017-05-31 2017-05-31 Methods and systems for generating a merged reality scene based on a virtual object and on a real-world object represented from different vantage points in different video data streams
US15/610,573 2017-05-31
PCT/US2018/034431 WO2018222499A1 (en) 2017-05-31 2018-05-24 Methods and systems for generating a merged reality scene based on a virtual object and on a real-world object represented from different vantage points in different video data streams

Publications (2)

Publication Number Publication Date
KR20200012879A true KR20200012879A (ko) 2020-02-05
KR102494795B1 KR102494795B1 (ko) 2023-02-03

Family

ID=62621030

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020197035521A KR102494795B1 (ko) 2017-05-31 2018-05-24 상이한 비디오 데이터 스트림들 내의 상이한 유리한 지점들로부터 표현된 가상 오브젝트 및 실세계 오브젝트에 기초하여 병합된 현실 장면을 생성하기 위한 방법들 및 시스템들

Country Status (6)

Country Link
US (2) US10297087B2 (ko)
EP (1) EP3632118A1 (ko)
JP (1) JP7189895B2 (ko)
KR (1) KR102494795B1 (ko)
CN (1) CN110679152B (ko)
WO (1) WO2018222499A1 (ko)

Families Citing this family (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018011054A1 (en) 2016-07-15 2018-01-18 Koninklijke Kpn N.V. Streaming virtual reality video
US20190362151A1 (en) * 2016-09-14 2019-11-28 Koninklijke Kpn N.V. Streaming virtual reality video
US10712555B2 (en) 2016-11-04 2020-07-14 Koninklijke Kpn N.V. Streaming virtual reality video
WO2019028479A1 (en) * 2017-08-04 2019-02-07 Magical Technologies, Llc SYSTEMS, METHODS AND APPARATUSES FOR DEPLOYING AND TARGETING VIRTUAL OBJECTS SENSITIVE TO CONTEXT AND MODELING BEHAVIOR OF VIRTUAL OBJECTS BASED ON PHYSICAL PRINCIPLES
US11249714B2 (en) 2017-09-13 2022-02-15 Magical Technologies, Llc Systems and methods of shareable virtual objects and virtual objects as message objects to facilitate communications sessions in an augmented reality environment
WO2019079826A1 (en) 2017-10-22 2019-04-25 Magical Technologies, Llc DIGITAL ASSISTANT SYSTEMS, METHODS AND APPARATUSES IN AN INCREASED REALITY ENVIRONMENT AND LOCAL DETERMINATION OF VIRTUAL OBJECT PLACEMENT AND SINGLE OR MULTIDIRECTIONAL OBJECTIVES AS GATEWAYS BETWEEN A PHYSICAL WORLD AND A DIGITAL WORLD COMPONENT OF THE SAME ENVIRONMENT OF INCREASED REALITY
US11095748B1 (en) 2017-12-13 2021-08-17 Amazon Technologies, Inc. Network-based content rendering
US10878187B1 (en) * 2017-12-13 2020-12-29 Amazon Technologies, Inc. Network-based content rendering
US11783546B2 (en) * 2017-12-18 2023-10-10 Streem, Llc Layered 3-D images for augmented reality processing
US11113887B2 (en) * 2018-01-08 2021-09-07 Verizon Patent And Licensing Inc Generating three-dimensional content from two-dimensional images
US10904374B2 (en) 2018-01-24 2021-01-26 Magical Technologies, Llc Systems, methods and apparatuses to facilitate gradual or instantaneous adjustment in levels of perceptibility of virtual objects or reality object in a digital scene
US11398088B2 (en) 2018-01-30 2022-07-26 Magical Technologies, Llc Systems, methods and apparatuses to generate a fingerprint of a physical location for placement of virtual objects
JP7187182B2 (ja) * 2018-06-11 2022-12-12 キヤノン株式会社 データ生成装置、方法およびプログラム
US10885689B2 (en) * 2018-07-06 2021-01-05 General Electric Company System and method for augmented reality overlay
EP3595319A1 (en) * 2018-07-12 2020-01-15 InterDigital VC Holdings, Inc. Methods and apparatus for volumetric video transport
US10818076B2 (en) * 2018-10-26 2020-10-27 Aaron Bradley Epstein Immersive environment from video
US11467656B2 (en) 2019-03-04 2022-10-11 Magical Technologies, Llc Virtual object control of a physical device and/or physical device control of a virtual object
US11074697B2 (en) 2019-04-16 2021-07-27 At&T Intellectual Property I, L.P. Selecting viewpoints for rendering in volumetric video presentations
US11153492B2 (en) 2019-04-16 2021-10-19 At&T Intellectual Property I, L.P. Selecting spectator viewpoints in volumetric video presentations of live events
US10970519B2 (en) 2019-04-16 2021-04-06 At&T Intellectual Property I, L.P. Validating objects in volumetric video presentations
US11012675B2 (en) 2019-04-16 2021-05-18 At&T Intellectual Property I, L.P. Automatic selection of viewpoint characteristics and trajectories in volumetric video presentations
US11523185B2 (en) 2019-06-19 2022-12-06 Koninklijke Kpn N.V. Rendering video stream in sub-area of visible display area
US11297116B2 (en) * 2019-12-04 2022-04-05 Roblox Corporation Hybrid streaming
US11557094B2 (en) * 2020-05-21 2023-01-17 Virtuix Holdings Inc. Efficient capture and delivery of walkable and interactive virtual reality or 360 degree video
US20220067153A1 (en) * 2020-09-03 2022-03-03 The Government Of The United States, As Represented By The Secretary Of The Army Artificial Intelligence Embedded and Secured Augmented Reality
TWI756956B (zh) 2020-12-01 2022-03-01 財團法人工業技術研究院 用於環景影像的影像處理方法及裝置
CN114302128A (zh) * 2021-12-31 2022-04-08 视伴科技(北京)有限公司 视频生成的方法、装置、电子设备及存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20080069579A (ko) * 2005-09-15 2008-07-28 올레그 스탄니슬라보비치 루린 가상 3차원 객체들의 시각화를 위한 방법 및 시스템
KR20170033340A (ko) * 2014-08-08 2017-03-24 그렉 반 쿠렌 가상 공간에의 몰입감과 실제 공간에서의 이동을 양립할 수 있는 가상 현실 시스템 및 이를 이용한 전투 훈련 시스템
JP2017511907A (ja) * 2013-12-17 2017-04-27 ジャガー ランド ローバー リミテッドJaguar Land Rover Limited 車両データを記録する方法およびシステム

Family Cites Families (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AU761202B2 (en) * 1997-09-22 2003-05-29 Sony Corporation Generation of a bit stream containing binary image/audio data that is multiplexed with a code defining an object in ascii format
US6707487B1 (en) * 1998-11-20 2004-03-16 In The Play, Inc. Method for representing real-time motion
US7788071B2 (en) * 2004-12-03 2010-08-31 Telekinesys Research Limited Physics simulation apparatus and method
EP1862969A1 (en) * 2006-06-02 2007-12-05 Eidgenössische Technische Hochschule Zürich Method and system for generating a representation of a dynamically changing 3D scene
GB2452510A (en) * 2007-09-05 2009-03-11 Sony Corp System For Communicating A Three Dimensional Representation Of A Sporting Event
KR101234495B1 (ko) 2009-10-19 2013-02-18 한국전자통신연구원 화상회의 시스템을 위한 단말, 중계 노드 및 스트림 처리 방법
US8803951B2 (en) * 2010-01-04 2014-08-12 Disney Enterprises, Inc. Video capture system control using virtual cameras for augmented reality
JP5300777B2 (ja) * 2010-03-31 2013-09-25 株式会社バンダイナムコゲームス プログラム及び画像生成システム
EP2384001A1 (en) 2010-04-29 2011-11-02 Alcatel Lucent Providing of encoded video applications in a network environment
US8885023B2 (en) * 2010-09-01 2014-11-11 Disney Enterprises, Inc. System and method for virtual camera control using motion control systems for augmented three dimensional reality
KR101690955B1 (ko) * 2010-10-04 2016-12-29 삼성전자주식회사 증강 현실을 이용한 영상 데이터 생성 방법 및 재생 방법, 그리고 이를 이용한 촬영 장치
US20120139906A1 (en) 2010-12-03 2012-06-07 Qualcomm Incorporated Hybrid reality for 3d human-machine interface
AU2012232423A1 (en) 2011-03-18 2013-09-05 Sony Corporation Image processing device and image processing method
JP5749595B2 (ja) 2011-07-27 2015-07-15 日本電信電話株式会社 画像伝送方法、画像伝送装置、画像受信装置及び画像受信プログラム
US9392248B2 (en) 2013-06-11 2016-07-12 Google Inc. Dynamic POV composite 3D video system
JP2016540401A (ja) 2013-10-14 2016-12-22 コーニンクレッカ フィリップス エヌ ヴェKoninklijke Philips N.V. 3d表示のための深度マップのリマッピング
US10321117B2 (en) * 2014-04-11 2019-06-11 Lucasfilm Entertainment Company Ltd. Motion-controlled body capture and reconstruction
US9846961B2 (en) * 2014-04-30 2017-12-19 Intel Corporation System and method of limiting processing by a 3D reconstruction system of an environment in a 3D reconstruction of an event occurring in an event space
US9779633B2 (en) 2014-08-08 2017-10-03 Greg Van Curen Virtual reality system enabling compatibility of sense of immersion in virtual space and movement in real space, and battle training system using same
US10332311B2 (en) 2014-09-29 2019-06-25 Amazon Technologies, Inc. Virtual world generation engine
US20160140761A1 (en) 2014-11-19 2016-05-19 Microsoft Technology Licensing, Llc. Using depth information for drawing in augmented reality scenes
CN104599243B (zh) * 2014-12-11 2017-05-31 北京航空航天大学 一种多视频流与三维场景的虚实融合方法
CN105791881A (zh) * 2016-03-15 2016-07-20 深圳市望尘科技有限公司 一种基于光场摄像机的三维场景录播的实现方法
CN105786432A (zh) * 2016-03-18 2016-07-20 北京奇虎科技有限公司 在移动终端上展示虚拟画面的方法及装置
CN105939481A (zh) * 2016-05-12 2016-09-14 深圳市望尘科技有限公司 一种交互式三维虚拟现实视频节目录播和直播方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20080069579A (ko) * 2005-09-15 2008-07-28 올레그 스탄니슬라보비치 루린 가상 3차원 객체들의 시각화를 위한 방법 및 시스템
JP2017511907A (ja) * 2013-12-17 2017-04-27 ジャガー ランド ローバー リミテッドJaguar Land Rover Limited 車両データを記録する方法およびシステム
KR20170033340A (ko) * 2014-08-08 2017-03-24 그렉 반 쿠렌 가상 공간에의 몰입감과 실제 공간에서의 이동을 양립할 수 있는 가상 현실 시스템 및 이를 이용한 전투 훈련 시스템

Also Published As

Publication number Publication date
WO2018222499A1 (en) 2018-12-06
CN110679152A (zh) 2020-01-10
US20180350146A1 (en) 2018-12-06
JP2020522194A (ja) 2020-07-27
US10636220B2 (en) 2020-04-28
EP3632118A1 (en) 2020-04-08
CN110679152B (zh) 2022-01-04
US20190147661A1 (en) 2019-05-16
JP7189895B2 (ja) 2022-12-14
KR102494795B1 (ko) 2023-02-03
US10297087B2 (en) 2019-05-21

Similar Documents

Publication Publication Date Title
KR102494795B1 (ko) 상이한 비디오 데이터 스트림들 내의 상이한 유리한 지점들로부터 표현된 가상 오브젝트 및 실세계 오브젝트에 기초하여 병합된 현실 장면을 생성하기 위한 방법들 및 시스템들
US10699471B2 (en) Methods and systems for rendering frames based on a virtual entity description frame of a virtual scene
CN110663012B (zh) 用于定制虚拟现实数据的方法和系统
US10586377B2 (en) Methods and systems for generating virtual reality data that accounts for level of detail
US10699749B2 (en) Methods and systems for customizing virtual reality data
CN110663067B (zh) 用于生成现实世界场景的定制视图的虚拟化投影以包括在虚拟现实媒体内容中的方法和系统
US10347037B2 (en) Methods and systems for generating and providing virtual reality data that accounts for level of detail

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