KR102560187B1 - 3차원("3d") 장면의 2차원("2d") 캡처 이미지를 기반으로 하는 가상 현실 콘텐츠를 렌더링하기 위한 방법 및 시스템 - Google Patents

3차원("3d") 장면의 2차원("2d") 캡처 이미지를 기반으로 하는 가상 현실 콘텐츠를 렌더링하기 위한 방법 및 시스템 Download PDF

Info

Publication number
KR102560187B1
KR102560187B1 KR1020197035459A KR20197035459A KR102560187B1 KR 102560187 B1 KR102560187 B1 KR 102560187B1 KR 1020197035459 A KR1020197035459 A KR 1020197035459A KR 20197035459 A KR20197035459 A KR 20197035459A KR 102560187 B1 KR102560187 B1 KR 102560187B1
Authority
KR
South Korea
Prior art keywords
partial
virtual
space
meshes
data
Prior art date
Application number
KR1020197035459A
Other languages
English (en)
Other versions
KR20200012875A (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 KR20200012875A publication Critical patent/KR20200012875A/ko
Application granted granted Critical
Publication of KR102560187B1 publication Critical patent/KR102560187B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/10Geometric effects
    • G06T15/20Perspective computation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/04Texture mapping
    • 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
    • G06T17/00Three dimensional [3D] modelling, e.g. data description of 3D objects
    • G06T17/20Finite element generation, e.g. wire-frame surface description, tesselation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/50Depth or shape recovery

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Graphics (AREA)
  • Geometry (AREA)
  • Software Systems (AREA)
  • Computing Systems (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Image Generation (AREA)
  • Processing Or Creating Images (AREA)

Abstract

예시적인 방법은 가상 현실 콘텐츠 렌더링 시스템이 3차원("3D") 장면과 관련하여 상이한 밴티지 포인트들에 배치된 복수의 캡처 장치들에 의해 캡처된 2차원("2D") 컬러 데이터 및 깊이 데이터를 수신하고, 메타 데이터를 수신하고, 복수의 캡처 장치들에 포함된 각각의 캡처 장치 각각과 관련된 각각의 밴티지 포인트에 대해 그리고 상기 메타 데이터 및 상기 깊이 데이터에 기초하여, 가상 3D 공간에서 3D 장면의 부분 표현을 생성하기 위해 상기 가상 3D 공간으로 투영된 부분 3D 메쉬를 생성하고, 상기 가상 3D 공간으로 투영된 부분 3D 메쉬들에 기초하여 그리고 상기 가상 3D 공간 내의 임의의 뷰포인트로부터, 상기 가상 3D 공간의 이미지 뷰를 생성하는 것을 포함한다. 상기 이미지 뷰를 생성하는 것은 상기 가상 3D 공간으로 투영된 부분 3D 메쉬들을 축적하는 것을 포함할 수 있다.

Description

3차원("3D") 장면의 2차원("2D") 캡처 이미지를 기반으로 하는 가상 현실 콘텐츠를 렌더링하기 위한 방법 및 시스템
관련 출원
본 출원은 2017년 5월 31일에 출원된 발명의 명칭이 3차원("3D") 장면의 2차원("2D") 캡처 이미지를 기반으로 하는 가상 현실 콘텐츠를 렌더링하기 위한 방법 및 시스템인 미국 특허 출원 제15/610,586호에 대한 우선권을 주장하며, 그 전체 내용이 본 명세서에 참조로 포함된다.
본 발명은 3차원("3D") 장면의 2차원("2D") 캡처 이미지를 기반으로 하는 가상 현실 콘텐츠를 렌더링하기 위한 방법 및 시스템에 관한 것이다.
컴퓨팅 및 네트워킹 기술의 발전으로 새로운 형태의 미디어 콘텐츠가 가능해졌다. 예를 들어, 시청자(또는 "사용자")를 대화형 가상 현실 세계로 몰입시키는 가상 현실 미디어 콘텐츠가 이용 가능하며, 사용자는 동시에 가상 현실 세계에서 제시되는 다양한 것들 중 어느 것에든 주의를 기울임으로써 대화형 가상 현실 세계를 경험할 수 있다. 가상 현실 미디어 콘텐츠를 제시하는 동안 언제든지, 가상 현실 미디어 콘텐츠를 경험하는 사용자는 수평 차원(예를 들어, 전방, 후방, 왼쪽, 오른쪽 등) 및 수직 차원(예를 들어, 위, 아래 등) 모두와 관련한 임의의 방향으로 가상 현실 세계를 둘러보거나 및/또는 가상 현실 세계 내로 이동할 수 있으며, 이는 가상 현실 세계 내의 특정 뷰포인트로부터 가상 현실 세계 내에 실재로 존재하고 이를 경험하고 있는 느낌을 사용자에게 준다.
일부 예들에서, 가상 현실 미디어 제공자는 네트워크를 통해 가상 현실 세계를 나타내는 데이터를 가상 현실 세계를 경험하기 위해 사용자에 의해 사용되고 있는 클라이언트 컴퓨팅 장치에 전송함으로써 가상 현실 세계를 포함하는 가상 현실 콘텐츠를 제공할 수 있다.
가상 현실 콘텐츠를 렌더링하는 향상된 방법 및 시스템을 제공한다.
3D 장면의 2D 캡처 이미지에 기초하여 가상 현실 콘텐츠를 렌더링하기 위한 방법 및 시스템이 본 명세서에서 설명된다. 특정의 예시적인 방법 및 시스템에서, 가상 현실 콘텐츠 렌더링 시스템("렌더링 시스템")은 3D 장면과 관련하여 상이한 밴티지 포인트들(different vantage points)(예를 들어, 3D 장면과 관련하여 상이한 캡처 각도들을 갖는 다른 위치들)에 물리적으로 배치된 복수의 캡처 장치들(예를 들어, 비디오 카메라, 3D 깊이 스캐닝 하드웨어 등)에 의해 캡처되는 것과 같은 3D 장면(예를 들어, 실제 세계 장면(real-world scene))의 2D 이미지를 나타내는 데이터를 수신할 수 있다. 표면 데이터(surface data)로 지칭될 수 있는 캡처된 2D 이미지는 복수의 캡처 장치들에 포함된 각각의 캡처 장치에 의해 캡처된 바와 같은, 3D 장면에서 하나 이상의 객체들의 표면들에 대한 2D 컬러 데이터 및 깊이 데이터를 포함할 수 있다.
각각의 캡처 장치에 의해 캡처된 2D 컬러 데이터 및 깊이 데이터는 3D 장면에 대한 특정의 밴티지 포인트로부터 3D 장면의 구별된 비-메쉬 뷰(distinct unmeshed view)를 나타낼 수 있다. 본 명세서에 사용된 바와 같이, "구별된 비-메쉬 뷰"는 특정 캡처 장치로부터의 3D 장면의 뷰에 대응하며, 특정 캡처 장치에 의해 캡처된 3D 장면에 대한 표면 데이터(예를 들어, 2D 컬러 데이터 및 깊이 데이터)는 기하학적 프리미티브들의 3D 메쉬로 표현되지 않거나 및/또는 3D 장면의 3D 모델 또는 3D 표현을 형성하기 위해 다른 캡처 장치에 의해 캡처된 표면 데이터와 함께 결합되지 않는다(즉, 메쉬되지 않는다).
렌더링 시스템은 또한 2D 컬러 데이터 및 깊이 데이터에 대한 투영 메타 데이터와 같은 메타 데이터를 수신할 수 있다. 메타 데이터는 가상 3D 공간에서 3D 장면의 가상 표현을 생성하기 위해 2D 컬러 데이터 및 깊이 데이터를 가상 3D 공간으로 투영하기 위해 렌더링 시스템에 의해 사용될 수 있는 복수의 캡처 장치들에 관한 정보와 같은 3D 장면과 관련된 정보를 포함할 수 있어, 상기 투영된 데이터는 가상 3D 공간 내의 임의의 뷰포인트로부터 가상 3D 공간의 뷰(즉, 가상 3D 공간에서의 3D 장면의 가상 표현의 뷰)를 렌더링하기 위해 렌더링 시스템에 의해 사용될 수 있다.
수신된 데이터(예를 들어, 메타 데이터 및 깊이 데이터)에 기초하여, 렌더링 시스템은 각각의 캡처 장치 각각과 관련된 각각의 밴티지 포인트(vantage point)에 대해 가상 3D 공간으로 투영된 부분 3D 메쉬를 생성하여 가상 3D 공간에서 3D 장면의 부분 가상 표현을 생성할 수 있다. 특정 예들에서, 각각의 부분 3D 메쉬를 생성하는 것은, 렌더링 시스템이 가상 3D 공간에서 부분 3D 메쉬의 프리미티브 정점들(vertices of primitives)의 3D 좌표들을 생성하도록 깊이 데이터에 기초하여 각각의 캡처 장치 각각과 관련된 각각의 밴티지 포인트에 대해 가상 3D 공간 내의 깊이들로 투시선들(perspective rays)을 따라 2D 입력 메쉬를 투영하는 것을 포함할 수 있다. 특정 예들에서, 각각의 부분 3D 메쉬를 생성하는 것은 또한 렌더링 시스템이 각각의 부분 3D 메쉬에 대해 부분 3D 메쉬의 하나 이상의 프리미티브들을 관계없는 프리미티브들(extraneous primitives)로 식별하고 식별된 관계없는 프리미티브들을 각각의 부분 3D 메쉬로부터 제거하는 것을 포함할 수 있다.
캡처 장치들과 관련된 밴티지 포인트들에 대한 가상 3D 공간으로 투영된 부분 3D 메쉬들에 기초하여, 렌더링 장치는 가상 3D 공간 내의 임의의 뷰포인트으로부터 가상 3D 공간의 이미지 뷰를 생성할 수 있다. 특정 예들에서, 가상 3D 공간의 이미지 뷰를 생성하는 것은 렌더링 시스템이 가상 3D 공간으로 투영된 부분 3D 메쉬들을 축적하고 2D 컬러 데이터에 기초하여 부분 3D 메쉬들에 대한 컬러 샘플들을 블렌딩하여 가상 3D 공간의 이미지 뷰를 형성하는 것을 포함한다. 특정 예들에서, 가상 3D 공간으로 투영된 부분 3D 메쉬들을 축적하는 것은 그래픽 프로세싱 유닛("GPU")의 프레임 버퍼에서 부분 3D 메쉬들을 축적하고, GPU의 프레임 버퍼에 부분 3D 메쉬들에 대한 컬러 샘플들을 부가적으로 블렌딩하는 것을 포함할 수 있다. 특정 예들에서, 컬러 샘플들을 블렌딩하는 것은 렌더링 시스템이 부분 3D 메쉬들의 프리미티브들에 대한 블렌드 가중치들을 결정하고, 부분 3D 메쉬들의 프리미티브들에 대해 결정된 블렌드 가중치들에 기초하여 부분 3D 메쉬들에 대한 컬러 샘플을 가중하고, 부분 3D 메쉬들의 중첩 섹션들에 포함된 중첩된 프리미티브들에 대한 가중된 컬러 샘플들의 가중된 평균들(weighted averages)을 결정하는 것을 포함한다. 특정 예들에서, 렌더링 시스템은 축적 영역을 결정하고 축적 영역 내에 위치된 프리미티브들 또는 프래그먼트들만을 축적 및 블렌딩할 수 있다.
상기 설명된 원리들 및 동작들은 물론 부가적인 및/또는 대안적인 원리들 및 동작들의 예시적인 예들이 본 명세서에 기술된다. 명확성 및 설명을 위해, 특정의 예시적인 예들이 단순화된 데이터 세트들(예를 들어, 간단한 3D 장면, 객체, 2D 입력 메쉬, 부분 3D 메쉬 등을 나타내는 데이터 세트들)을 사용하여 설명되고 도시되어 있다. 그러나, 본 명세서에서 설명된 원리들 및 동작들은 더 크고 및/또는 더 복잡한 데이터 세트들에 적용될 수 있음을 이해할 것이다.
본 명세서에 기술된 방법 및 시스템은 종래의 가상 현실 콘텐츠 렌더링 기술들에 비해 하나 이상의 장점들 및/또는 이점들을 제공한다. 예를 들어, 본 명세서에 기술된 방법 및 시스템은 가상 현실 콘텐츠를 렌더링하는 데 필요한 컴퓨팅 자원들(예를 들어, 메모리 및/또는 프로세싱 자원들)을 상당히 감소시킬 수 있다. 설명을 위해, 본 명세서에 기술된 바와 같이 가상 3D 공간의 이미지 뷰를 형성하기 위해 부분 3D 메쉬들을 생성, 축적 및 블렌딩하도록 2D 컬러 데이터, 깊이 데이터 및 메타 데이터를 사용함으로써, 렌더링 시스템은 3D 장면의 단일의 응집성 기하학적 메쉬와 같은 3D 장면의 완전한 3D 모델을 수신하거나 생성할 필요없이 가상 현실 콘텐츠(예를 들어, 가상 3D 공간에서 임의의 동적으로 선택 가능한 뷰포인트로부터의 가상 3D 공간의 이미지 뷰)를 랜더링할 수 있다. 결과적으로, 전송 대역폭, 프로세싱 요구 사항 및 메모리가 절약된다.
추가적으로 또는 대안적으로, 본 명세서에서 설명된 바와 같이 가상 3D 공간의 이미지 뷰를 형성하기 위해 부분 3D 메쉬들을 생성, 축적 및 블렌딩하도록 2D 컬러 데이터, 깊이 데이터 및 메타 데이터를 사용 함으로써, 본 명세서에 기술된 방법들 및 시스템들은 기존의 비디오 처리 기술들(예를 들어, 비디오 렌더링 기술) 및 기존의 그래픽 하드웨어(예를 들어, 기존의 그래픽 카드 및 파이프라인) 및/또는 소프트웨어를 사용하여 가상 현실 콘텐츠를 렌더링할 수 있고, 이는 보다 광범위한 최종 사용자 컴퓨팅 장치들에 대한 가상 현실 콘텐츠 서비스의 확장성(scalability)을 지원할 수 있고 및/또는 다양한 최종 사용자 컴퓨팅 장치들의 사용자들에게 가상 현실 콘텐츠의 접근성(accessibility)을 확장시킨다.
추가적으로 또는 대안적으로, 본 명세서에서 설명된 바와 같이 가상 3D 공간의 이미지 뷰를 형성하기 위해 부분 3D 메쉬들을 생성, 축적 및 블렌딩하도록 2D 컬러 데이터, 깊이 데이터 및 메타 데이터를 사용 함으로써, 본 명세서에 기술된 바와 같은 방법들 및 시스템들은 종래의 렌더링 기술들을 사용하여 렌더링되는 가상 현실 콘텐츠보다 더 빠르게 가상 현실 콘텐츠를 렌더링할 수 있다. 이것은 이벤트가 실시간으로 발생할 때 이벤트를 나타내는 가상 현실 콘텐츠에 대한 것과 같이, 가상 현실 콘텐츠가 실시간 또는 거의 실시간으로 스트리밍되고 렌더링되는 애플리케이션들을 지원할 수 있다.
추가적으로 또는 대안적으로, 본 명세서에서 설명된 바와 같이 가상 3D 공간의 이미지 뷰를 형성하기 위해 부분 3D 메쉬들을 생성, 축적 및 블렌딩하도록 2D 컬러 데이터, 깊이 데이터 및 메타 데이터를 사용 함으로써, 본 명세서에 기술된 바와 같은 방법들 및 시스템들은 네트워크를 통해 가상 현실 콘텐츠를 미디어 플레이어 장치에 제공하기 위해 필요한 대역폭의 양에 있어서 상당한 감소를 가능하게 할 수 있다. 예를 들어, 전송 전에 3D 장면의 3D 모델을 생성하는 대신에, 3D 장면의 구별된 비-메쉬 뷰들을 나타내는 2D 데이터가 생성되어 네트워크를 통해 미디어 플레이어 장치로 전송될 수 있다. 이는 서버 측에서 처리되고 네트워크를 통해 전송되는 데 필요한 데이터의 양을 크게 줄이며, 프로세싱 및/또는 대역폭 요구 사항들이 줄어든 상태로 증가된 속도에서 가상 현실 콘텐츠의 스트리밍을 가능하게 할 수 있고, 이는 데이터 처리량 및 대기 시간을 향상시킬 수 있다.
본 명세서에 설명된 시스템들 및 방법들은 특정 구현을 제공할 수 있는 추가적인 또는 대안적인 이점들을 제공할 수 있다. 다양한 실시예가 이제 도면들을 참조하여 보다 상세하게 설명될 것이다. 개시된 방법들 및 시스템들은 상기 언급된 이점들 중 하나 이상 및/또는 본 명세서에서 명백해질 다양한 추가적 및/또는 대안적인 이점들을 제공할 수 있다.
첨부된 도면은 다양한 실시예를 도시하고 본 명세서의 일부이다. 예시된 실시예는 단지 예일뿐이며 본 개시의 범위를 제한하지 않는다. 도면 전체에 걸쳐 동일하거나 유사한 참조 번호는 동일하거나 유사한 요소를 나타낸다.
도 1은 본 명세서에 설명된 원리에 따른 예시적인 가상 현실 콘텐츠 렌더링 시스템을 도시한다.
도 2는 도 1의 시스템의 렌더링 설비가 3D 장면과 관련된 데이터를 수신하고 처리하여 본 명세서에 설명된 원리에 따라 3D 장면을 나타내는 가상 현실 콘텐츠를 렌더링하는 예시적인 구성을 도시한다.
도 3은 본 명세서에 설명된 원리에 따라 3D 장면에서 객체(object)에 대한 캡처 장치의 예시적인 구성을 도시한다.
도 4는 본 명세서에 설명된 원리에 따른 예시적인 2차원("2D") 입력 메쉬(meshes)를 도시한다.
도 5 내지 도 7은 본 명세서에 설명된 원리에 따라 가상 3D 공간 내의 깊이(depths)로의 2D 입력 메쉬의 예시적인 투영(projections)을 도시한다.
도 8 내지 도 10은 본 명세서에 설명된 원리에 따라 부분 3D 메쉬로부터 관계없는 프리미티브(extraneous primitives)를 식별하고 제거하기 위한 예시적인 동작을 도시한다.
도 11 및 도 12는 본 명세서에 설명된 원리에 따라 가상 3D 공간으로 투영된 복수의 부분 3D 메쉬들의 단면 뷰들을 도시한다.
도 13은 가상 3D 공간으로 투영되고 본 명세서에서 설명된 원리에 따라 임의의 뷰포인트로부터 가상 3D 공간의 이미지 뷰를 생성하는 데 사용될 수 있는 부분 3D 메쉬들의 단면 뷰를 도시한다.
도 14는 본 명세서에서 설명된 원리에 따른 프레임 버퍼의 예시적인 구성을 도시한다.
도 15는 본 명세서에 설명된 원리에 따라 가상 3D 공간 내의 임의의 뷰포인트로부터 렌더링될 객체의 부분 표현의 예시적인 깊이 오프셋을 도시한다.
도 16은 본 명세서에서 설명된 원리에 따라 도 1의 가상 현실 콘텐츠 렌더링 시스템의 예시적인 구현을 도시한다.
도 17은 본 명세서에서 설명된 원리에 따라 도 1의 가상 현실 콘텐츠 렌더링 시스템에 의해 수신될 수 있는 예시적인 전송 스트림을 도시한다.
도 18은 본 명세서에 설명된 원리에 따라 특정 시간 시퀀스 동안 특정 캡처 장치로부터 도 1의 가상 현실 콘텐츠 렌더링 시스템에 의해 수신될 수 있는 예시적인 2D 컬러 및 깊이 데이터를 도시한다.
도 19는 본 명세서에서 설명된 원리에 따른 메타 데이터에 대한 예시적인 구현을 도시한다.
도 20은 본 명세서에서 설명된 원리에 따라 3D 장면의 2D 캡처 이미지(2D captured imagery)에 기초하여 가상 현실 콘텐츠를 렌더링하기 위한 예시적인 방법을 도시한다.
도 21은 본 명세서에서 설명된 원리에 따라 3D 장면의 2D 캡처 이미지에 기초하여 가상 현실 콘텐츠를 렌더링하기 위한 다른 예시적인 방법을 도시한다.
도 22는 본 명세서에 설명된 원리에 따른 예시적인 컴퓨팅 장치를 도시한다.
도 1은 본 명세서에서 설명된 방법들 및 시스템들에 따라 가상 3D 공간의 이미지 뷰를 형성하기 위해 부분 3D 메쉬들을 생성, 축적 및 블렌딩하도록 2D 컬러 데이터, 깊이 데이터 및 메타 데이터를 처리할 수 있는 예시적인 가상 현실 콘텐츠 렌더링 시스템(100)("시스템 100")을 도시한다. 도시된 바와 같이, 시스템(100)은 서로 간에 선택적으로 통신 가능하게 결합된 렌더링 설비(102) 및 저장 설비(104)를 포함할 수 있으며, 이에 대한 제한은 없다. 어떤 대안적인 예들에 있어서, 저장 설비(104)은 시스템(100)으로부터 제외되고 시스템에 통신 가능하게 결합될 수 있다. 비록 설비들(102 및 104)이 도 1에서 별개의 설비들인 것으로 도시되어 있지만, 설비들(102 및 104)은 더 적은 설비, 예컨대 단일의 설비로 결합될 수 있으며, 또는 특정 구현을 제공할 수 있는 더 많은 설비들로 분할될 수 있다. 설비들(102 및 104) 각각은 장치(예를 들어, 단일 섀시(single chassis)를 갖는 미디어 플레이어 장치)을 포함하거나 또는 그 장치에 포함될 수 있으며, 단일 위치(예를 들어, 거주지, 사업장 등과 같은 사용자 구내 또는 미디어 플레이어 장치의 사용자와 관련된 다른 위치)에 위치될 수 있거나 또는 특정 구현을 제공할 수 있는 복수의 장치들 및/또는 복수의 위치들 사이에 분배될 수 있다. 설비들(102 및 104) 각각이 이제 보다 상세하게 설명될 것이다.
저장 설비(104)는 2D 컬러 및 깊이 데이터(106), 메타 데이터(108), 가상 현실 콘텐츠 데이터(110) 및/또는 렌더링 설비(102)에 의해 수신, 생성, 관리, 유지, 사용 및/또는 전송되는 임의의 다른 데이터를 저장할 수 있다. 2D 컬러 및 깊이 데이터(106)는 렌더링 설비(102)에 의해 수신될 수 있고 3D 장면에서의 객체들의 외관 및 위치와 같은 3D 장면에서의 하나 이상의 객체들을 나타내는 2D 컬러 데이터 및 깊이 데이터를 포함할 수 있다.
특정 예들에서, 3D 장면은 실황으로(예를 들어, 실시간으로) 발생할 수 있는 실제 세계 이벤트(real-world event)의 3D 장면과 같은 실제 세계 장면일 수 있다. 그러한 예들에서, 3D 장면은 실제 세계 이벤트와 연관된 하나 이상의 실제 세계 객체들을 포함할 수 있고, 실제 세계 이벤트가 발생함에 따라 2D 컬러 및 깊이 데이터(106)가 실시간으로 획득될 수 있다. 다른 예들에서, 3D 장면은 하나 이상의 가상 객체들을 포함하는 가상 장면일 수 있다. 다른 예들에서, 3D 장면은 병합된 현실 장면일 수 있고, 3D 장면은 적어도 하나의 가상 객체 및 적어도 하나의 실제 세계 객체(real-world object)를 포함할 수 있다. 상기 3D 장면은 3D 장면에서의 각각의 객체 및/또는 표면이 실제인지 또는 가상인지에 상관없이 3D 장면 및 3D 장면에서의 다른 객체들과 관련하여 3D 공간에서 검출 가능한 위치를 갖기 때문에 하나의 3D 장면으로 간주될 수 있다.
본 명세서에 사용된 바와 같이, "객체(object)"는 살아 움직이거나(living) 또는 살아 움직이지 않는(inanimate) 것에 상관없이 3D 장면에서의 특정의 밴티지 포인트로부터 가시적인(즉, 투명하지 않은) 어떠한 것도 포함할 수 있다. 예를 들어, 3D 장면이 농구 경기와 같은 실제 세계 이벤트에 대응하는 경우, 객체들은 그 게임에 사용되고 있는 농구공, 농구 코트, 농구 표준(즉, 백보드, 림, 네트 등), 그 게임에 참여하는 선수들 및 심판들 및/또는 농구 경기에 존재하거나 및/또는 그와 관련된 어떠한 다른 객체들도 포함할 수 있다.
본 명세서에서 사용된 바와 같이, "2D 컬러 데이터"는 2D 컬러 데이터를 캡처하는 적어도 하나의 장치의 적어도 하나의 밴티지 포인트로부터 3D 장면이 어떻게 나타나는지를 나타내는 임의의 데이터를 광범위하게 포함할 수 있다. 2D 컬러 데이터는 3D 장면의 컬러(예를 들어, 적색, 녹색, 청색 등) 표현, 3D 장면의 흑백 표현, 3D 장면의 그레이스케일 표현 및/또는 3D 장면의 외관의 임의의 다른 적합한 표현을 포함할 수 있다. 특정 예들에서, 2D 컬러 데이터는 특정의 기간에 걸쳐 밴티지 포인트로부터 3D 장면의 외관(예를 들어, 실제 세계 이벤트에서의 객체)을 나타내는 캡처된 이미지들(예를 들어, 고해상 정지 이미지들)의 시퀀스를 포함할 수 있다. 실례로, 2D 컬러 데이터는 비디오의 프레임이 프레임의 픽셀 좌표들에서 컬러 값들을 나타내는 3D 장면의 2D 컬러 비디오 데이터를 포함할 수 있다. 그러나, 2D 컬러 데이터는 본 기술 분야에서 비디오를 정의하는 다양한 정의들 및/또는 표준들과 관련될 수 있는 임의의 특정 포맷, 파일 유형, 프레임 레이트, 해상도, 품질 레벨 또는 다른 특성으로 제한되지 않는다.
본 명세서에서 사용된 바와 같이, "깊이 데이터"는 3D 장면 내에서 하나 이상의 객체들(예를 들어, 실제 세계 이벤트에서 하나 이상의 객체들)의 공간적 위치들을 나타내는 임의의 데이터를 광범위하게 포함할 수 있다. 깊이 데이터는 임의의 적합한 방식으로 포맷될 수 있다. 특정 예들에서, 후술되는 바와 같이, 깊이 데이터는 특정한 밴티지 포인트로부터 일련의 순차적인 2D 깊이 데이터 캡처들(예를 들어, 특정 시간들에 캡처된 깊이 데이터의 개별적인 인스턴스들(separate instances))로서 포맷될 수 있다. 실례로, 깊이 데이터는 특정의 밴티지 포인트로부터 3D 장면의 2D 깊이 비디오 데이터를 포함할 수 있으며, 여기에서 비디오의 프레임은 프레임의 픽셀 좌표들에서 깊이 값들을 나타낸다. 그러나, 깊이 데이터는 본 기술 분야에서 비디오를 정의하는 다양한 정의들 및/또는 표준들과 관련될 수 있는 임의의 특정 포맷, 파일 유형, 프레임 레이트, 해상도, 품질 레벨 또는 다른 특성으로 제한되지 않는다. 바람직하게는, 깊이 데이터는 높은 정밀도 및 정확성을 갖는다. 그러나, 깊이 데이터는 일반적으로 2D 컬러 데이터보다 낮은 해상도(예를 들어, 낮은 x 및 y 좌표 해상도)를 가질 수 있으며, 여전히 수용 가능하다.
깊이 데이터는 2D 컬러 데이터와 동기화될 수 있다. 예를 들어, 깊이 데이터의 깊이 데이터 프레임 및 컬러 데이터의 컬러 데이터 프레임은 시간에 있어 공통 인스턴스(예를 들어, 동일한 기준 신호, 타임 스탬프, 캡처 시간 등)에 대응할 수 있다. 이러한 대응하는 깊이 데이터 프레임 및 컬러 데이터 프레임은, 다른 밴티지 포인트들로부터 캡처된 다른 깊이 및 컬러 데이터 프레임들의 동기화된 쌍들 및 대응하는 메타 데이터와 함께, 가상 3D 공간의 이미지 뷰를 형성하기 위해 부분 3D 메쉬들을 생성, 축적 및 블렌딩하도록 본 명세서에 기술된 바와 같이 임의의 적합한 방식으로 렌더링 설비(102)에 의해 처리될 수 있는 한 쌍의 동기화된 프레임들을 형성할 수 있다.
2D 컬러 데이터 및 깊이 데이터는 3D 장면과 관련하여 상이한 밴티지 포인트들에 배치된 복수의 캡처 장치들에 의해 캡처될 수 있다. 캡처 장치들은 예를 들어 2D 비디오 카메라, 3D 깊이 스캐너, 조합 캡처 장치(예를 들어, 2D 비디오 및 관련된 깊이 데이터 모두를 캡처하도록 구성된 장치) 등을 포함할 수 있다. 복수의 캡처 장치들에 포함된 각각의 캡처 장치는 3D 장면과 관련하여 특정의 밴티지 포인트로부터 3D 장면에 대한 2D 컬러 데이터 및 깊이 데이터를 캡처할 수 있다. 본 명세서에서 사용된 바와 같이, "밴티지 포인트(vantage point)"는 복수의 캡처 장치들에 포함된 각각의 캡처 장치에 의해 3D 장면의 표면 데이터(surface data)가 캡처되는 위치 및 캡처 각도를 지칭한다. 특정 예들에서, 특정 캡처 장치의 밴티지 포인트는 고정될 수 있다(즉, 특정 캡처 장치의 위치 및 특정 캡처 장치의 캡처 각도는 시간에 따라 변하지 않는다). 대안적으로, 특정 캡처 장치의 위치 및 캡처 각도 중 하나 이상이 시간에 따라 변할 수 있다. 예를 들어, 특정 캡처 장치의 위치 및/또는 캡처 각도는 특정 캡처 장치가 고정된 장치가 3D 장면과 관련하여 이동함에 따라 시간에 따라 변할 수 있다. 밴티지 포인트는 특정 구현에 적합할 수 있는 임의의 다른 적합한 정보에 의해 설명될 수 있다. 캡처 장치들의 예시적인 밴티지 포인트들이 본 명세서에서 설명된다.
복수의 캡처 장치들은 임의의 적합한 방식으로 그리고 특정 구현을 제공할 수 있는 임의의 적합한 장치들을 사용하여 2D 컬러 데이터 및 깊이 데이터를 캡처할 수 있다. 특정 예들에서, 캡처 장치들은 비디오 카메라 또는 다른 타입들의 이미지 캡처 장치로 구성될 수 있으며, 이들은 복수의 밴티지 포인트들로부터 3D 장면에서의 객체들의 2D 컬러 데이터를 캡처할 수 있고, 이들로부터 하나 이상의 깊이 캡처 기술들(예를 들어, 삼각 측량 기반 깊이 캡처 기술, 입체 깊이 캡처 기술 등)을 사용함으로써 객체들의 표면들에 대한 깊이 데이터가 캡처될 수 있다(예를 들어, 유도될 수 있다).
다른 예들에서, 캡처 장치들은 2D 컬러 데이터를 캡처하도록 구성된 비디오 카메라들 또는 다른 타입들의 이미지 캡처 장치들을 포함할 수 있을뿐만 아니라, 하나 이상의 깊이 캡처 기술들(예를 들어, 비행 시간 기반 깊이 캡처 기술(time-of-flight-based depth capture techniques), 적외선 기반 깊이 캡처 기술(infrared-based depth capture techniques) 등)을 사용하여 객체들의 표면 깊이들을 캡처하도록 구성된 별개의 깊이 캡처 장치들을 포함할 수 있다. 예를 들어, 각각의 캡처 장치는 제 1 구성 요소가 지향되는 객체들의 2D 비디오를 캡처하도록 구성된 상기 제 1 구성 요소(예를 들어, 비디오 카메라 장치) 및 제 2 구성 요소가 지향되는 객체들의 깊이 데이터를 캡처하도록 구성된 상기 제 2 구성 요소(예를 들어, 깊이 카메라 장치, 3D 이미징 또는 3D 스캐닝 장치 등)를 포함할 수 있다. 이 예에서, 제 1 구성 요소 및 제 2 구성 요소는 개별적인 또는 분리된 장치들일 수 있지만, 통신적으로 결합될 수 있고, 2D 컬러 데이터 및 깊이 데이터 모두를 동기식으로(예를 들어, 동시에) 캡처하기 위해 서로 연대하여 작업하도록 구성될 수 있다.
다른 예들에서, 각각의 캡처 장치는 2D 컬러 데이터 및 깊이 데이터 모두를 캡처하도록 구성된 조합 비디오 깊이 캡처 장치(예를 들어, 특별히 설계된 비디오 카메라)를 포함할 수 있다. 조합 비디오 깊이 캡처 장치는 3D 장면에서의 객체들의 비디오 데이터를 캡처할 수 있을뿐만 아니라 하나 이상의 적합한 깊이 캡처 기술들을 사용하여 객체들의 대응하는 깊이들을 검출할 수 있는 상업적으로 이용 가능하거나 특별히 설계된 비디오 카메라일 수 있다.
일부 예들에서, 캡처 장치들은 유한 캡처 각도들(예를 들어, 90도, 120도 등)을 가질 수 있고, 3D 장면의 각각의 영역들로부터 데이터를 캡처하도록 위치될 수 있고 및 지향될 수 있다. 예를 들어, 캡처 장치들의 링 구성은 3D 장면 또는 3D 장면의 하나 이상의 부분들(예를 들어, 농구장 코트, 경마장의 회전 구간들)을 둘러싸도록 위치될 수 있고, 3D 장면에서의 객체들을 나타내는 데이터를 캡처하도록 안쪽을 향하게 될 수 있다. 동일하거나 다른 예들에서, 적어도 하나의 특정 캡처 장치는 360도 캡처 각도를 가질 수 있고, 특정 캡처 장치를 둘러싸는 객체들로부터 데이터를 캡처하도록 위치될 수 있다. 예를 들어, 캡처 장치들 중 적어도 하나는 360도 카메라에 대응하는 중심 지점 둘레에서 3D 장면의 360도 비디오 이미지를 캡처하고 및/또는 생성하도록 구성된 360도 카메라가 될 수 있다. 3D 장면에 대한 캡처 장치들의 특정의 예시적인 구성들이 본 명세서에 기술되어 있지만, 그 예들은 단지 예시적인 것일 뿐이다. 3D 장면에 대한 캡처 장치들의 임의의 적합한 구성이 다른 구현들에서 사용될 수 있다.
복수의 캡처 장치들은 본 명세서에 기술된 바와 같이 임의의 적합한 방식으로 서로 통신 가능하게 결합될 수 있고(예를 들어, 함께 네트워킹됨) 및/또는 다른 장치 또는 시스템(예를 들어, 시스템(100))에 통신 가능하게 결합될 수 있다. 이것은 캡처 장치들이 시간, 위치, 각도 등에서 동기성을 유지하게 할 수 있다. 예를 들어, 캡처 장치들은, 각각의 캡처 장치가 공통 시간(예를 들어, 시간의 임계 범위 내)에서 대응하는 데이터를 캡처하고 상이한 캡처 장치들에 의해 캡처된 데이터가 모든 캡처 장치들에 의해 공유되는 표준시로 타임 스탬프될 수 있는 것을 보장하도록 타이밍 신호들을 송신 및 수신할 수 있다. 특정 예들에서, 제어기가 3D 장면에 대한 데이터를 캡처 및/또는 출력할 시기에 대해 캡처 장치들에 지시할 수 있다. 다른 예들에서, 캡처 장치들은 3D 장면에 대한 데이터가 캡처되거나 및/또는 출력되는 시기를 제어할 수 있고, 임의의 적합한 설비가 캡처 장치들로부터 수신된 데이터를 분류하거나 및/또는 선택적으로 사용할 수 있다. 캡처 장치들이 동기적으로 기능하는 방법에 대한 이러한 예들은 단지 예시적인 것일 뿐이다. 3D 장면에 대한 데이터를 동기적으로 캡처하기 위해 캡처 장치들의 동작들을 용이하게 하도록 임의의 적합한 장치 동기화 및/또는 통신 기술들이 다른 구현들에서 사용될 수 있다. 특정의 대안적인 예들에서, 복수의 캡처 장치들 중 하나 이상이 비동기적으로 기능할 수 있고, 3D 장면에 대해 캡처된 데이터가 캡처 후에 임의의 적합한 방식으로 처리 및 동기화될 수 있다.
메타 데이터(108)는 가상 3D 공간에서 3D 장면의 가상 표현들을 생성하고 가상 3D 공간 내의 임의의 뷰포인트로부터 가상 3D 공간의 이미지 뷰를 형성하기 위해 3D 장면에 대한 2D 컬러 데이터 및 깊이 데이터와 함께 렌더링 설비(102)에 의해 사용될 수 있는 임의의 정보를 포함할 수 있다. 예를 들어, 메타 데이터(108)는 가상 3D 공간에서 3D 장면의 가상 표현들을 생성하기 위해 3D 장면에 대한 2D 컬러 데이터 및 깊이 데이터를 공통의 가상 3D 공간으로 투영하도록 3D 장면에 대한 2D 컬러 데이터 및 깊이 데이터와 함께 렌더링 설비(102)에 의해 사용될 수 있는 임의의 정보를 포함할 수 있는 투영 메타 데이터(projection metadata)를 포함할 수 있다. 메타 데이터(108)는 2D 컬러 데이터가 캡처된 시점, 2D 컬러 데이터가 캡처되었던 밴티지 포인트, 2D 컬러 데이터를 캡처한 캡처 장치 등과 같은 3D 장면에 대한 2D 컬러 데이터와 관련된 시간 및 공간 정보를 나타내는 정보를 포함할 수 있지만, 이에 제한되지 않는다. 또한, 메타 데이터(108)는 깊이 데이터가 캡처된 시점, 깊이 데이터가 캡처된 위치, 깊이 데이터가 캡처되었던 밴티지 포인트, 깊이 데이터를 캡처한 캡처 장치 등과 같은 3D 장면에 대한 깊이 데이터와 관련된 시간 및 공간 정보를 나타내는 정보를 포함할 수 있다. 메타 데이터(108)는 또한 시야 정보(예를 들어, 초점 길이, 광학 중심, 시야각, 각도의 탄젠트 등), 깊이 맵핑 정보, 위치 정보, 방향 정보, 시야각 정보, 변환 정보(translation information), 변환 매트릭스 정보(transformation matrix information), 각각의 캡처 장치에 대한 그러한 정보의 임의의 것에서의 변화 및/또는 캡처 장치들의 임의의 다른 내적 특성 및/또는 외적 특성에 관한 정보를 포함할 수 있다. 일부 예들에서, 메타 데이터(108)는 좌표계(예를 들어, 캡처 장치들 및/또는 장면과 관련된 로컬 좌표계), 투영 파라미터, 투영 계산, 렌즈 왜곡 파라미터에 관한 정보 및/또는 본 명세서에서 설명된 방법들 중 임의의 것에서 2D 컬러 및 깊이 데이터를 처리하는 데 유용한 임의의 다른 정보를 포함할 수 있다. 특정 예들에서, 메타 데이터(108)는 또한 3D 장면과 관련하여 캡처된 오디오 샘플들에 대한 위치 정보를 포함할 수 있다. 메타 데이터(108)는 자바 스크립트 객체 표기법("JSON"), 확장 가능 마크업 언어("XML") 등과 같은 특정 구현을 제공할 수 있는 것과 같이 임의의 적합한 포맷으로 표현될 수 있다. 메타 데이터(108)에 대한 예시적인 포맷들이 본 명세서에 설명된다.
몰입형 가상 현실 콘텐츠 데이터(110)는 2D 컬러 데이터, 깊이 데이터 및 3D 장면과 관련된 메타 데이터에 기초하여 렌더링 설비(102)에 의해 생성된 가상 현실 콘텐츠를 나타내는 임의의 데이터를 포함할 수 있다. 예를 들어, 가상 현실 콘텐츠 데이터(110)는 가상 3D 공간으로 투영되어 생성된 부분 3D 메쉬들을 나타내는 데이터, 가상 3D 공간 내의 임의의 뷰포인트들로부터 가상 3D 공간의 생성된 이미지 뷰들을 나타내는 데이터 및/또는 가상 3D 공간 내의 임의의 뷰포인트으로부터 가상 3D 공간에서의 3D 장면의 가상 표현의 이미지 뷰를 제공하도록 렌더링 설비(102)에 의해 생성될 수 있는 임의의 다른 적합한 데이터를 포함할 수 있다. 그러한 데이터의 예들이 본 명세서에 기술되어 있다. 특정 예들에서, 가상 현실 콘텐츠 데이터(110)는 또한 3D 장면의 생성된 가상 표현과 관련된 오디오 데이터 및/또는 3D 장면의 생성된 가상 표현과 관련된 임의의 다른 적합한 데이터를 포함할 수 있다. 저장 설비(104)는 특정 구현을 제공할 수 있는 바와 같이 가상 3D 공간 내의 임의의 뷰포인트로부터 가상 3D 공간에서의 3D 장면의 가상 표현의 이미지 뷰를 형성하기 위해 렌더링 설비(102)에 의해 사용될 수 있는 임의의 다른 데이터를 더 포함할 수 있다.
렌더링 설비(102)는 가상 3D 공간의 이미지 뷰를 형성하기 위해 2D 컬러 데이터, 깊이 데이터 및 메타 데이터에 기초하여 부분 3D 메쉬들을 생성, 축적 및 블렌딩하는 데 사용되는 임의의 하드웨어 및/또는 소프트웨어(예를 들어, 컴퓨팅 시스템, 소프트웨어 프로그램, 그래픽 처리 하드웨어 등)를 포함할 수 있다. 특정 예들에서, 렌더링 설비(102)는 전용 비디오 디코딩 하드웨어(예를 들어, 하나 이상의 전용 비디오 디코더)를 갖는 그래픽 카드 및 프로그램 가능 GPU를 포함할 수 있다.
렌더링 설비(102)는 3D 장면과 관련하여 상이한 밴티지 포인트들에 배치된 복수의 캡처 장치들에 의해 캡처된 2D 컬러 데이터 및 깊이 데이터를 수신할 수 있다. 렌더링 설비(102)는 또한 2D 컬러 데이터 및 깊이 데이터에 대한 메타 데이터(예를 들어, 메타 데이터(108))를 수신할 수 있다. 렌더링 설비(102)는 임의의 적합한 방식으로 및 임의의 적합한 소스로부터 2D 컬러 데이터, 깊이 데이터 및 메타 데이터를 수신할 수 있다. 예시를 위해, 도 2는 렌더링 설비(102)가 객체(208)를 포함하는 3D 장면(206)과 관련하여 물리적으로 상이한 밴티지 포인트들(예를 들어, 밴티지 포인트들(204-1 내지 204-n))에 배치된 복수의 캡처 장치들(202)(예를 들어, 캡처 장치들(202-1 내지 202-n))로부터 데이터를 수신하는 예시적인 구성(200)을 도시한다.
복수의 캡처 장치(202)는 특정 구현을 제공할 수 있는 임의의 방식으로 3D 장면(206)에 대해 고정된 위치들에 배치(즉, 위치, 설치 등)될 수 있다. 예를 들어, 캡처 장치들(202)은 실제 세계 이벤트 또는 실제 세계 이벤트의 하나 이상의 부분들을 둘러싸는(예를 들어, 농구 경기에서 농구 코트와 같은 스포츠 이벤트의 경기장을 둘러싸거나 부분적으로 둘러싸는) 고정된 위치들에 위치될 수 있다.
도 2에 도시된 예에서, 밴티지 포인트들(204) 각각은 3D 장면(206) 및 3D 장면(206)에서의 객체(208)의 상이한 제한된 뷰를 제공한다. 예를 들어, 캡처 장치(202-2)의 밴티지 포인트(204-2)는 객체(208) 위로부터의 뷰를 제공할 수 있다. 밴티지 포인트(204-2)로부터, 캡처 장치(202-2)는 객체(208)의 하부 표면에 대한 2D 컬러 데이터 및 깊이 데이터를 캡처하지 못 할 수 있다. 그러나, 캡처 장치(202-1)는 객체(208) 아래에 위치될 수 있고, 밴티지 포인트(204-1)로부터 객체(208)의 하부 표면에 대한 2D 컬러 데이터 및 깊이 데이터를 캡처할 수 있다. 따라서, 캡처 장치들(202)은 객체(208)의 모든 표면들에 대한 2D 컬러 데이터 및 깊이 데이터를 조합하여 캡처하도록 구성될 수 있다. 캡처 장치들(202)은 서로 통신 가능하게 결합될 수 있으며, 본 명세서에 기술된 바와 같이 임의의 적합한 방식으로 렌더링 설비(102)에 통신 가능하게 결합될 수 있다.
도 2에 도시된 바와 같이, 렌더링 설비(102)는 2D 컬러 데이터(210), 깊이 데이터(212) 및 메타 데이터(214)를 수신할 수 있다. 렌더링 설비(102)는 임의의 적합한 데이터 통신 채널들 및/또는 기술들을 사용하여 캡처 장치들(202)로부터 2D 컬러 데이터(210), 깊이 데이터(212) 및 메타 데이터(214)를 직접적으로 또는 간접적으로 수신할 수 있다. 특정 예들에서, 렌더링 설비(102)는 하나 이상의 적합한 데이터 통신 네트워크들을 통해 캡처 장치들(202)로부터 2D 컬러 데이터(210), 깊이 데이터(212) 및 메타 데이터(214)를 수신할 수 있다. 예를 들어, 렌더링 설비(102)는 스트리밍 비디오 및/또는 다른 데이터를 운반할 수 있는 CDN(예를 들어, Amazon Web Services에서 운영하는 CDN)과 같은 콘텐츠 전달 네트워크("CDN")를 통해 2D 컬러 데이터(210), 깊이 데이터(212) 및 메타 데이터(214) 중 적어도 일부를 수신할 수 있다. 렌더링 설비(102)가 2D 컬러 데이터(210), 깊이 데이터(212) 및 메타 데이터(214)를 수신할 수 있게 하는 예시적인 데이터 통신 네트워크들이 본 명세서에 설명된다.
렌더링 설비(102)에 의해 수신된 2D 컬러 데이터(210), 깊이 데이터(212) 및 메타 데이터(214)는 임의의 적합한 데이터 포맷 및/또는 데이터 통신 프로토콜, 포맷 및 기술을 사용하여 표현될 수 있다. 이러한 데이터 포맷 및 통신 스트림의 예들이 본 명세서에 기술되어 있다.
3D 장면에 대한 수신된 데이터(예를 들어, 3D 장면에 대한 메타 데이터 및 깊이 데이터)에 기초하여, 렌더링 설비(102)는 3D 장면과 관련된 각각의 캡처 장치 각각과 관련된 각각의 밴티지 포인트에 대해, 가상 3D 공간에서의 3D 장면의 부분적 표현을 생성하기 위해 가상 3D 공간으로 투영된 부분 3D 메쉬를 생성할 수 있다. 도 2와 관련하여, 예를 들어, 수신된 메타 데이터(214) 및 수신된 깊이 데이터(212)에 기초하여, 렌더링 설비(102)는 각각의 캡처 장치(202)와 각각 관련된 밴티지 포인트들(204) 각각에 대해, 가상 3D 공간에서의 3D 장면 (및 그에 따른 객체(208))의 부분적 표현을 생성하기 위해 가상 3D 공간으로 투영된 부분 3D 메쉬를 생성할 수 있다.
본 명세서에서 사용되는 바와 같이, "가상 3D 공간"은 가상 3D 세계의 3D 공간을 나타낼 수 있고, 가상 3D 세계 좌표들의 세트에 기초하여 표현될 수 있다. 가상 3D 공간은 3D 공간에서의 캡처된 3D 장면의 부분 가상 표현들을 생성하기 위해 3D 공간으로 투영된 부분 3D 메쉬들을 수용할 수 있는 임의의 적합한 3D 공간으로 정의될 수 있다. 특정 예들에서, 렌더링 설비(102)는 깊이 캡처 범위, 시야, 및 각각의 캡처 장치의 각각의 밴티지 포인트에 대한 변환 매트릭스에 관한 정보와 같은 메타 데이터에 적어도 부분적으로 기초하여 가상 3D 공간을 정의할 수 있다.
가상 3D 공간으로 투영된 부분 3D 메쉬는 가상 3D 공간 내의 3D 좌표들로 투영된 정점들(vertices)의 세트에 의해 상호 연결 및/또는 형성되는 기하학적 프리미티브들(예를 들어, 삼각형, 점, 선, 다각형, 복잡한 기하학적 형상 등)의 메쉬를 포함할 수 있다. 이와 같이, 3D 장면에 대한 깊이 데이터에 기초하여 가상 3D 공간으로 투영된 부분 3D 메쉬는 3D 장면(예를 들어, 3D 장면(206)) 및 그에 따른 3D 장면 내의 하나 이상의 객체들(예를 들어, 3D 장면(206) 내의 객체(208))의 부분 가상 표현을 생성할 수 있다. 3D 장면의 부분 가상 표현은 3D 장면의 부분 가상 재현(partial virtual reconstruction)으로 지칭될 수 있고, 3D 장면에서의 하나 이상의 객체들의 표면들을 가상으로 나타낼 수 있다. 본 명세서에서 사용된 바와 같이 "부분 3D 메쉬"는 하나의 부분 3D 메쉬이며 전체 3D 장면에 대한 단일의 응집성(cohesive) 3D 메쉬가 아닌데, 이는 부분 3D 메쉬는 3D 장면의 부분 뷰만을 나타내기 때문이고, 단일 밴티지 포인트로부터의 뷰는 단일의 각각의 캡처 장치와 관련된다. 본 명세서에 설명된 바와 같이, 렌더링 설비(102)는 3D 장면의 단일의 응집성 3D 메쉬와 같이 3D 장면의 완전한 3D 모델을 구성하거나 사용해야 할 필요없이, 가상 현실 콘텐츠를 렌더링하기 위해 부분 3D 메쉬를 개별적으로 생성 및 사용하거나 또는 복수의 부분 3D 메쉬들을 생성 및 사용할 수 있다. 렌더링 설비(102)에 의해 생성될 수 있는 부분 3D 메쉬들의 예들이 본 명세서에 설명된다.
특정 예들에서, 가상 3D 공간으로 투영된 부분 3D 메쉬는 부분 3D 메쉬와 관련된 캡처된 3D 장면에 대한 2D 컬러 데이터로부터의 컬러 샘플없이 가상 3D 공간에서의 캡처된 3D 장면의 부분적인 기하학적 표현을 생성할 수 있다. 다른 예들에서, 가상 3D 공간으로 투영된 부분 3D 메쉬는 부분 3D 메쉬와 관련된 캡처된 3D 장면에 대한 2D 컬러 데이터로부터의 컬러 샘플들을 이용하여 가상 3D 공간에서의 캡처된 3D 장면의 부분적인 기하학적 표현을 생성할 수 있다. 따라서, 특정 예들에서, 가상 3D 공간으로 투영된 부분 3D 메쉬의 생성은 수신된 2D 컬러 데이터(210)에 더 기초하여 2D 컬러 데이터(210)로부터의 컬러 샘플들을 부분 3D 메쉬 생성의 일부로서 가상 3D 공간으로 투영된 부분 3D의 정점들 및/또는 프리미티브들과 연관시킬 수 있다. 다른 예들에서, 렌더링 설비(102)는 (부분 3D 메쉬가 생성된 후) 부분 3D 메쉬의 생성과는 별개인 하나 이상의 동작들을 수행하여, 2D 컬러 데이터(210)로부터의 컬러 샘플들을 가상 3D 공간으로 투영된 부분 3D 메쉬의 정점들 및/또는 프리미티브들과 연관시킬 수 있다.
렌더링 설비(102)는 임의의 적합한 방식으로 3D 장면의 각각의 밴티지 포인트에 대한 부분 3D 메쉬를 생성할 수 있다. 예를 들어, 렌더링 설비(102)는 메모리에서 인스턴스화하고(instantiate) 렌더링 설비(102)에 의해 수신된 깊이 데이터에 기초하여 가상 3D 공간 내의 깊이들로 투시선들(perspective rays)을 따라 2D 입력 메쉬를 투영할 수 있다. 2D 입력 메쉬는 정점들을 서로 연결하는 기하학적 프리미티브들의 세트를 형성하기 위해 2D 평면에서 정규화된 좌표 그리드로 배열된 정점들의 세트를 포함할 수 있다. 예를 들어, 2D 입력 메시는 정점들을 에지들과 서로 연결하고 임의의 미리 결정된 범위(예를 들어, 하나 이상의 계산들을 단순화할 수 있는 부호있는 정규화된 범위 [-1, 1])를 커버함으로써 형성된 정점들 및 기하학적 프리미티브들(예를 들어, 삼각형, 점, 선, 다각형, 복잡한 기하학적 형상 등)의 2D 그리드를 포함 할 수있다. 예시적인 2D 입력 메쉬들이 본 명세서에서 설명된다.
렌더링 설비(102)는 렌더링 설비(102)에 의해 수신되고 밴티지 포인트와 관련된 깊이 데이터에 기초하여 밴티지 포인트로부터 가상 3D 공간 내의 깊이들로 투시선들을 따라 2D 입력 메쉬를 투영할 수 있다. 예를 들어, 렌더링 설비(102)는 가상 3D 공간 내의 정점들의 3D 좌표들을 결정하기 위해 2D 입력 메쉬의 정점들을 가상 3D 공간 내의 깊이들로 투영할 수 있다. 2D 입력 메쉬의 정점들을 3D 좌표들로 투영하면 2D 입력 메쉬의 프리미티브들의 형상, 방향, 깊이 등을 결정할 수 있으며 2D 입력 메쉬를 가상 3D 공간으로 투영되는 부분 3D 메쉬로 변환할 수 있어, 가상 3D 메쉬의 프리미티브들이 가상 3D 공간 내에 위치되어 캡처된 3D 장면에 포함된 하나 이상의 객체들의 표면들을 가상으로 나타낼 수 있다. 특정 예들에서, 가상 3D 공간 내에서 2D 입력 메쉬의 정점들의 투영은 2D 캡처된 이미지들(예를 들어, 렌더링 설비(102)에 의해 수신된 2D 컬러 데이터 및/또는 깊이 데이터)을 가상 3D 공간과 관련된 3D 세계 좌표계로 변환하는 것을 포함한다(예를 들어, 렌더링 설비(102)에 의해 수신된 메타 데이터에 포함된 변환 매트릭스를 사용).
부분 3D 메쉬들을 생성하는 렌더링 설비(102)의 예들이 이제 도 3 내지 도 10을 참조하여 설명될 것이다. 도 3은 상이한 각각의 밴티지 포인트들(204-1 내지 204-3)에 배치된 캡처 장치들(202-1 내지 202-3)를 도시하며, 상기 상이한 각각의 밴티지 포인트들로부터 캡처 장치들(202-1 내지 202-3)은 3D 장면(206) 내의 객체(208)의 특정의 표면들(302)(표면들(302-1 및 302-2))과 관련된 깊이 데이터 및 2D 컬러 데이터를 캡처할 수 있다. 설명의 편의를 위해, 3 개의 캡처 장치들(202)이 도 3에 도시되어 있고, 도 3은 객체(208)에 대해 3 개의 각각의 밴티지 포인트들(204-1 내지 204-3)을 갖는 3 개의 캡처 장치들(202-1 내지 202-3)과 관련하는 3D 장면(206) 내의 객체(208)의 단면 뷰이다. 따라서, 큐브(208), 캡처 장치들(202) 및 밴티지 포인트들(204) 사이의 관계들은 도 3에서 (예를 들어, xyz 좌표계에 의해 표현된 3D 장면(206)의 xz 평면 내에서) 2차원들로 도시되어 있다. 하지만, 특정의 구현에 적합할 수 있는 바와 같이 객체(208) 및/또는 3D 장면(206)과 관련하여 어떠한 수의 캡처 장치들(202)도 제공될 수 있으며, 2D 단면 뷰와 관련하여 설명된 원리들은 다양한 밴티지 포인트들(204)을 갖는 캡처 장치들(202)과 객체(208) 사이의 3D 관계들에도 적용된다는 것을 이해해야 한다.
렌더링 설비(102)는 캡처 장치들(202-1 내지 202-3)에 의해 캡처된 2D 컬러 데이터 및 깊이 데이터뿐만 아니라 2D 컬러 데이터 및 깊이 데이터에 대한 메타 데이터를 수신할 수 있고, 수신된 데이터를 사용하여 각각의 캡처 장치(202-1 내지 202-3)의 밴티지 포인트들(204-1 내지 204-3) 각각에 대한 부분 3D 메쉬를 생성할 수 있다. 부분 3D 메쉬들을 생성하기 위해, 렌더링 설비(102)는, 예를 들어 메모리에서 각각의 2D 입력 메쉬를 인스턴스화함으로써 각각의 밴티지 포인트(204-1 내지 204-3)에 대한 2D 입력 메쉬를 생성할 수 있다. 도 4는 렌더링 설비(102)에 의해 생성될 수 있는 예시적인 2D 입력 메쉬들(402)(예를 들어, 2D 입력 메쉬들(402-1 내지 402-3))을 도시한다. 도 4에 도시된 예에서, 2D 입력 메쉬(402-1)는 밴티지 포인트(204-1)와 관련되고, 2D 입력 메쉬(402-2)는 밴티지 포인트(204-2)와 관련되고, 2D 입력 메쉬(404-3)는 밴티지 포인트(204-3)와 관련된다. 예시된 예에서, 각각의 2D 입력 메쉬는 2D 평면에 배열된 삼각형의 그리드이고, 각각의 삼각형(예를 들어, 삼각형(404))은 프리미티브(즉, 기하학적 형상을 갖는 면)를 나타내고, 삼각형의 각 점은 2D 평면에서 좌표(예를 들어, 정규화된 좌표)에 위치된 정점(예를 들어, 정점(406))을 나타낸다. 도 4에 도시된 예에서, 2D 입력 메쉬들(402)은 각각 특정 높이(예를 들어, 4 개의 정점들 또는 3 개의 프리미티브들) 및 특정 길이(예를 들어, 8 개의 정점들 또는 7 개의 프리미티브들)를 갖는 직사각형 형상이다. 그러나, 2D 입력 메쉬들은 어떠한 적합한 종횡비, 크기 및/또는 형상을 가질 수 있고, 특정 구현에 적합할 수 있는 정점들 및 프리미티브들의 어떠한 적합한 2D 배열도 사용할 수 있다.
렌더링 설비(102)는 임의의 적합한 방식으로 가상 3D 공간 내에 2D 입력 메쉬를 투영할 수 있다. 예를 들어, 렌더링 설비(102)는 렌더링 설비(102)에 의해 수신된 깊이 데이터에 기초하여 각각의 밴티지 포인트와 관련된 투시선들을 따라 가상 3D 공간 내의 깊이들로 2D 입력 메쉬를 투영할 수 있다. 예시를 위해, 도 5 내지 도 7은 가상 3D 공간(504) 내에서 투시선들(502)(예를 들어, 투시선들(502-1 내지 502-3))을 따라 투영되는 2D 입력 메쉬들(402)(예를 들어, 2D 입력 메쉬들(402-1 내지 402-3))의 예시적인 투영들을 도시한다. 도 5 내지 도 7에 도시된 예들에서, 가상 3D 공간(504) 및 2D 입력 메쉬들(402)은 단면 뷰로 도시되며(예를 들어, xyz 좌표계로 표현된 가상 3D 공간(504)의 xz 평면의 뷰), 2D 입력 메쉬들(402)의 각각의 원형 도트는 2D 입력 메쉬(402)의 정점을 나타낸다. 도 5 내지 도 7이 가상의 3D 공간(504)의 단면을 직사각형으로 도시하지만, 이것은 단지 예시일 뿐이다. 가상 3D 공간은 어떠한 적합한 형상도 가질 수 있다.
도 5는 밴티지 포인트(204-1)와 관련된 캡처 장치(202-1)에 의해 캡처되고 렌더링 설비(102)에 의해 수신된 깊이 데이터로 표현되는 가상 3D 공간(504) 내의 깊이들로 밴티지 포인트(204-1)와 관련된 복수의 투시선들(502-1)을 따라 2D 입력 메쉬(402-1)를 투영하는 것을 도시한다. 깊이 데이터는 밴티지 포인트(204-1)로부터 캡처 장치(202-1)의 시야 내에 있고 그에 의해 검출된 캡처된 3D 장면에 포함된 하나 이상의 객체들의 표면들을 나타낼 수 있다. 도 5는 객체(208)의 파선 표현(506)(예를 들어, 큐브의 단면 뷰) 및 다른 객체의 파선 표현(508)(예를 들어, 뒷벽의 단면 뷰)을 도시하며, 캡처된 3D 장면 내의 객체 표면들의 위치들을 나타낸다. 객체 표면들의 위치들은 캡처된 깊이 데이터로 표현되고, 렌더링 설비(102)는 이러한 깊이 데이터를 사용하여 캡처된 3D 장면 내의 객체 표면들의 검출된 위치들과 정렬하는 가상 3D 공간(504) 내의 3D 좌표들로 2D 입력 메쉬(402-1)의 정점들을 투영할 수 있다.
도 6는 밴티지 포인트(204-2)와 관련된 캡처 장치(202-2)에 의해 캡처되고 렌더링 설비(102)에 의해 수신된 깊이 데이터로 표현되는 가상 3D 공간(504) 내의 깊이들로 밴티지 포인트(204-2)와 관련된 복수의 투시선들(502-2)을 따라 2D 입력 메쉬(402-2)를 투영하는 것을 유사하게 도시한다. 도 7은 밴티지 포인트(204-3)와 관련된 캡처 장치(202-3)에 의해 캡처되고 렌더링 설비(102)에 의해 수신된 깊이 데이터로 표현되는 가상 3D 공간(504) 내의 깊이들로 밴티지 포인트(204-3)와 관련된 복수의 투시선들(502-3)을 따라 2D 입력 메쉬(402-3)를 투영하는 것을 유사하게 도시한다.
도 5 내지 도 7에 도시된 예들에서, 투영된 2D 입력 메쉬들(402)은 캡처된 3D 장면에 포함된 객체 표면들의 적어도 일부를 가상으로 나타내는 부분 3D 메쉬들(510)(예를 들어, 부분 3D 메쉬들(510-1 내지 510-3))을 형성한다. 부분 3D 메쉬들(510)은 가상 3D 공간(504)에서 3D 좌표들에 위치된 정점들을 포함한다. 3D 좌표들에 위치한 정점들은 부분 3D 메쉬들의 프리미티브들의 특성들(예를 들어, 크기, 위치, 방향 등)을 정의하여, 상기 정점들 및 프리미티브들은 가상 3D 공간(504) 내에서 캡처 3D 장면에서의 객체 표면들의 위치들을 가상으로 나타낸다.
도 5 내지 도 7에 도시된 예시적인 2D 입력 메쉬들(402) 및 대응하는 부분 3D 메쉬들(510)은 단지 예시의 목적으로 제공된다. 실제로는 2D 입력 메쉬의 단면은 도 5 내지 도 7에 도시된 각각의 2D 입력 메쉬에 대해 도시된 8 개의 정점들보다 더 많은 정점들을 가질 수 있는 것으로 이해된다.
도 5 내지 도7에 도시된 바와 같이, 부분 3D 메쉬의 정점들은 캡처된 3D 장면에 포함된 상이한 객체들의 표면들과 관련된 가상 3D 공간(504) 내의 깊이들로 투영될 수 있다. 예를 들어, 도 5에서, 부분 3D 메쉬(510-1)의 8 개의 단면 정점들 중 5 개는 캡처된 3D 장면에서 객체(208)의 표면과 관련된 깊이들로 투영되고(객체(208)의 파선 표현(506)으로 표시됨), 부분 3D 메쉬(510-1)의 단면 정점들 중 다른 3 개는 예를 들어 캡처된 3D 장면에서 배경 벽의 표면과 관련된 깊이들로 투영된다(다른 객체의 파선 표현(508)으로 표시됨). 유사하게, 도 6 및 도 7에서, 부분 3D 메쉬들의 정점들은 캡처된 3D 장면에 포함된 객체들의 표면들과 관련된 가상 3D 공간(504) 내의 깊이들로 투영된다.
가상 3D 공간 내에서 2D 입력 메쉬의 투영은 가상 3D 공간에서 캡처된 장면 또는 객체의 부분 가상 표현을 생성하는 데 유용하지 않거나 신뢰할 수 없는 하나 이상의 프리미티브들을 포함하는 부분 3D 메쉬를 생성할 수 있다. 따라서, 렌더링 설비(102)는 부분 3D 메쉬로부터 유용하지 않은 및/또는 신뢰할 수 없는 프리미티브들을 식별하고 제거하기 위해 하나 이상의 동작들을 수행할 수 있다. 그러한 프리미티브들은 관계없는 프리미티브들로 지칭될 수 있으며, 캡처된 3D 장면의 객체의 표면을 충분한 신뢰도로 정확하게 나타낼 수 없는 어떠한 프리미티브들도 포함할 수 있다(그러한 신뢰 임계치(confidence threshold)는 특정 애플리케이션에 적합할 수 있는 것으로 규정될 수도 있다).
예로서, 부분 3D 메쉬는 각각 하나의 객체의 표면에 투영된 정점과 다른 객체의 표면에 투영된 정점 사이의 거리에 걸쳐있는 하나 이상의 프리미티브들을 포함할 수 있다. 그러한 객체 간 프리미티브는 캡처된 3D 장면에서 객체의 표면을 정확하게 나타낼 수 없고, 따라서 객체의 부분 가상 표현을 생성하는 데 유용하지 않을 수 있다. 예를 들어, 도 5는 프리미티브(512)가 파선 표현(506)에 의해 표시된 큐브 객체의 표면에 투영된 정점으로부터 파선 표현(508)에 의해 표시된 뒷벽 객체의 표면에 투영된 정점까지의 거리에 걸쳐있는 것을 도시한다. 따라서, 프리미티브(512)는 큐브 객체(208) 또는 뒷벽 객체의 표면을 나타낼 수 없다. 따라서, 프리미티브(512)는 가상 3D 공간 내에서 객체(208) 또는 뒷벽 객체의 부분 가상 표현을 생성하는 데 유용하지 않다.
렌더링 설비(102)는 부분 3D 메쉬들로부터 프리미티브(512)와 같은 관계없는 프리미티브들을 식별하고 제거하기 위해 하나 이상의 동작들을 수행할 수 있다. 그러한 동작들은 렌더링 설비(102)가 각각의 부분 3D 메쉬에 대해 부분 3D 메쉬의 하나 이상의 프리미티브들을 관계없는 프리미티브들로 식별하고 식별된 관계없는 프리미티브들을 각각의 부분 3D 메쉬로부터 제거하는 것을 포함할 수 있다. 렌더링 설비(102)는 임의의 적합한 방식으로 부분 3D 메쉬로부터 관계없는 프리미티브들을 식별하고 제거할 수 있으며, 그러한 예들이 이제 설명될 것이다.
특정 예들에서, 렌더링 설비(102)는 미리 결정된 깊이 변화 임계값을 초과하는 깊이 변화를 갖는 프리미티브에 적어도 부분적으로 기초하여 부분 3D 메쉬의 프리미티브를 관계없는 프리미티브로서 식별할 수 있다. 미리 결정된 깊이 변화 임계값은 임의의 적합한 방식으로 사전에 결정될 수 있고 특정 구현에 따라 임의의 적합한 값을 가질 수 있다. 특정 예들에서, 미리 결정된 깊이 변화 임계값은 프리미티브가 가질 수 있는 최대량의 깊이 변화를 나타낼 수 있고, 여전히 3D 장면에서 객체의 표면을 나타내는 것으로 간주될 수 있다.
도 8은 부분 3D 메쉬(510-2)에 포함된 특정 프리미티브들이 미리 결정된 깊이 변화 임계값을 초과하는 깊이 변화를 갖는 예를 도시한다. 도 8에 도시된 바와 같이, 부분 3D 메쉬(510-2)는 프리미티브들(802)(예를 들어, 프리미티브들(802-1 내지 802-7))을 포함한다. 프리미티브들(802) 중 프리미티브들(802-2 및 802-6)은 각각 미리 결정된 깊이 변화 임계값을 초과하는 각각의 깊이 변화(804)(예를 들어, 깊이 변화들(804-1 및 804-2))을 가질 수 있다. 깊이 변화들(804)로 인해, 렌더링 설비(102)는 프리미티브들(802-2 및 802-6)이 캡처된 3D 장면에서 객체(예를 들어, 객체(208) 또는 뒷벽 객체)의 표면을 정확하게 나타내지 못한다고 결정할 수 있다. 따라서, 렌더링 설비(102)는 프리미티브들(802-2 및 802-6)을 관계없는 프리미티브들로 식별하고, 임의의 적합한 방식으로 부분 3D 메쉬(510-2)로부터 프리미티브들(802-2 및 802-6)을 제거할 수 있다. 프리미티브들(802-2 및 802-6)은 렌더링 설비(102)에 의해 제거되었음을 나타내도록 도 8에서 점선으로 도시되어 있다.
부가적으로 또는 대안적으로, 렌더링 설비(102)는 미리 결정된 근거리 평면 또는 미리 결정된 원거리 평면의 범위를 벗어난 프리미티브에 적어도 부분적으로 기초하여 부분 3D 메쉬의 프리미티브를 관계없는 프리미티브로 식별할 수 있다. 렌더링 설비(102)는 메타 데이터(예를 들어, 메타 데이터에 포함된 깊이 매핑 범위), 밴티지 포인트 및/또는 깊이 데이터에 기초하여 임의의 적합한 방식으로 미리 결정된 근거리 평면 및 미리 결정된 원거리 평면을 사전에 정의할 수 있다.
도 9는 미리 결정된 근거리 평면(902) 및 미리 결정된 원거리 평면(904)과 관련하여 부분 3D 메쉬(510-2)의 프리미티브들(802)이 도시된 예를 도시한다. 도 9에 도시된 예에서, 렌더링 설비(102)는 미리 결정된 근거리 평면(902)이 파선 표현(506)에 의해 표시된 가장 가까운 깊이 지점의 깊이 값 또는 가장 가까운 깊이 지점의 깊이 값에서 일부 미리 결정된 오프셋을 뺀 값에 대응한다고 결정할 수 있다. 프리미티브의 전부 또는 일부가 미리 결정된 근거리 평면(902)과 밴티지 포인트(204-2) 사이에 위치될 때, 렌더링 설비(102)는 프리미티브가 관계없는 프리미티브인 것으로 결정할 수 있다. 유사하게, 프리미티브의 전부 또는 일부가 원거리 평면(904) 상에 또는 그 너머에 위치하는 경우(밴티지 포인트(204-2)로부터 멀어짐), 렌더링 설비(102)는 프리미티브는 관계없는 프리미티브인 것으로 결정할 수 있다. 도 9에 도시된 예에서, 프리미티브들(802-2 및 802-6) 중 적어도 일부는 원 거리 평면(904) 너머에 위치된다. 또한, 프리미티브들(802-1 및 802-7)은 원 거리 평면(904)을 완전히 넘어서 위치된다. 따라서, 렌더링 설비(102)는 프리미티브들(802-1, 802-2, 802-6 및 802-7)이 관계없는 프리미티브인 것으로 결정하고, 임의의 적합한 방식으로 부분 3D 메쉬(510-2)로부터 이들을 제거할 수 있다. 프리미티브들((802-1, 802-2, 802-6 및 802-7)은 이들이 렌더링 설비(102)에 의해 제거되었음을 나타내도록 도 9에서 점선들로 도시되어 있다.
부가적으로 또는 대안적으로, 렌더링 설비(102)는 부분 3D 메쉬와 관련된 각각의 밴티지 포인트을 향하지 않는 표면을 갖는 프리미티브에 적어도 부분적으로 기초하여 프리미티브를 관계없는 프리미티브로 식별할 수 있다. 렌더링 설비(102)는 프리미티브가 임의의 적합한 방식으로 각각의 밴티지 포인트을 향하지 않는 표면을 갖는지 여부를 결정할 수 있다. 예를 들어, 렌더링 설비(102)는 프리미티브의 표면 법선과 대응하는 밴티지 포인트으로부터의 대응하는 투시선 사이의 관계에 기초하여 프리미티브가 상기 대응하는 밴티지 포인트을 향하지 않는 것으로 결정할 수 있다. 예를 들어, 렌더링 설비(102)는 프리미티브의 표면이 각각의 밴티지 포인트을 향하는지 여부를 결정하기 위해 코사인 세타 또는 내적 계산(cosine-theta or dot-product calculation)을 수행할 수 있다. 코사인-세타 또는 내적 계산의 결과가 특정 값이면, 렌더링 설비(102)는 프리미티브의 표면이 밴티지 포인트으로부터 멀어지게 향하는(예를 들어, 밴티지 포인트의 투시선에 직교하는 방향으로) 것으로 결정할 수 있다. 따라서, 렌더링 설비(102)는 그러한 프리미티브를 관계없는 프리미티브로 식별할 수 있다.
도 10은 프리미티브들(802)의 표면들이 향할 수 있는 방향들을 보여주기 위해 부분 3D 메쉬(510-2)의 각각의 프리미티브(802)에 대해 표면 법선 화살표가 도시된 예를 보여주고 있다. 도 10에 도시된 예에서, 렌더링 설비(102)는 프리미티브들(802-2 및 802-6)이 밴티지 포인트(204-2)를 향하지 않는 표면들을 갖는지를 결정하기 위해 임의의 적합한 계산을 수행할 수 있다. 따라서, 렌더링 설비(102)는 프리미티브들(802-2 및 802-6)을 관계없는 프리미티브들로 식별하고, 임의의 적합한 방식으로 부분 3D 메쉬(510-2)로부터 이들을 제거할 수 있다.
전술한 예에서, 렌더링 설비(102)는 대응하는 투시선과 표면에 대한 표면 법선 사이의 각도가 직교 각도보다 크거나 같으면 프리미티브의 표면이 대응하는 밴티지 포인트으로부터 멀어지게 향하고 있다고 결정할 수 있다. 특정의 다른 예들에서, 렌더링 설비(102)는 특정 구현에 적합할 수 있는 바와 같이, 프리미티브의 표면이 대응하는 밴티지 포인트의 투시선에 대해 직교하는 미리 정의된 범위 내에 있는 표면에 기초하여 밴티지 포인트를 향하지 않는 것으로 결정할 수 있다. 따라서, 렌더링 설비(102)는 밴티지 포인트의 투시선에 대해 미리 결정된 각도보다 큰 각도를 이루는 표면을 갖는 프리미티브를 식별하고 제거할 수 있다.
렌더링 설비(102)는 부분 3D 메쉬를 생성하기 위해 전술한 것들과 같은 하나 이상의 동작들을 수행할 수 있다. 특정 예들에서, 생성된 부분 3D 메쉬는 전술한 바와 같이, 2D 입력 메쉬를 밴티지 포인트에 대한 깊이 데이터에 의해 규정된 깊이들로 투영함으로써 생성된 모든 프리미티브들을 포함할 수 있다. 다른 예들에서, 생성된 부분 3D 메쉬는 하나 이상의 프리미티브들이 관계없는 프리미티브들로 식별되어 부분 3D 메쉬로부터 제거될 수 있어 프리미티브들의 서브세트를 생성된 부분 3D 메쉬로서 남겨두기 때문에 2D 입력 메쉬를 밴티지 포인트에 대한 깊이 데이터에 의해 규정된 깊이들로 투영함으로써 생성된 모든 프리미티브들보다 적은 프리미티브들을 포함할 수 있다. 예를 들어, 프리미티브들(802-3 내지 802-5)만이 남도록 특정의 프리미티브들(802)이 도 9에 도시된 부분 3D 메쉬(510-2)로부터 제거되었다. 그러한 동작들은 각각의 밴티지 포인트들에 대응하는 임의의 수의 부분 3D 메쉬들에 대해 수행될 수 있다. 따라서, 렌더링 설비(102)는 가상 3D 공간으로 투영된 이용 가능한 밴티지 포인트들의 서브세트 또는 전부에 대해 부분 3D 메쉬들을 생성하여, 캡처된 3D 장면에서 하나 이상의 객체들(예를 들어, 3D 장면(206)의 객체(208))의 부분 가상 표현들을 생성할 수 있고, 이는 가상 3D 공간 내의 임의의 뷰포인트로부터 가상 3D 공간에서의 부분 가상 표현들의 이미지 뷰를 생성하기 위해 렌더링 설비(102)에 의해 사용될 수 있다.
렌더링 설비(102)는 각각의 부분 3D 메쉬를 개별적으로 생성 및 사용할 수 있고, 각각의 부분 3D 메쉬는 3D 장면의 부분 가상 표현만을 나타낼 수 있다. 예를 들어, 프리미티브들(802-3, 802-4 및 802-5)를 포함하도록 도 9에 도시된 바와 같은 부분 3D 메쉬(510-2)는 3D 장면(206)에서 객체(208)의 표면들을 부분적으로만 나타낸다. 이러한 장면에서, 부분 3D 메쉬(510-2)는 전체 가상 객체 또는 가상 3D 세계에 대한 단일의 응집성 메쉬와는 대조적으로 부분 메쉬로 간주될 수 있다. 렌더링 설비(102)는 부분 3D 메쉬들을 개별적으로 생성하고 사용할 수 있지만, 부분 3D 메쉬들이 공통 가상 3D 공간으로 투영되기 때문에, 집합적으로 부분 3D 메쉬들은 캡쳐된 3D 장면에서 객체들의 모든 표면들 또는 모든 관련 표면들을 나타낼 수 있다.
도 11은 가상 3D 공간(504)으로 투영된 복수의 부분 3D 메쉬들(1102)(예를 들어, 부분 3D 메쉬들(1102-1 내지 1102-3))의 단면 뷰를 도시한다. 도 11에 도시된 예에서, 각각의 부분 3D 메쉬(1102)의 정점들은 다른 부분 3D 메쉬들(1102)의 정점들과 다른 형상 표시자로 표현된다. 예를 들어, 부분 3D 메쉬(1102-1)의 정점들은 삼각형 표시자들로 표현되고, 부분 3D 메쉬(1102-2)의 정점들은 원형 표시자들로 표현되고, 부분 3D 메쉬(1102-3)의 정점들은 정사각 표시자들 표현된다. 정점들은 부분 3D 메쉬들(1102) 사이를 구별하고 각각의 부분 3D 메쉬(1102)가 개별적인 별개의 부분 3D 메쉬인 것을 설명하기 위해 도 11에서 상이한 형상으로 표현된다.
또한, 부분 3D 메쉬들(1102)은 도 11에서 서로 인접하고 예시의 명확성을 위해 서로의 위에 정렬되지 않은 것으로 도시되어 있다. 실제에 있어서는, 부분 3D 메쉬들(1102)은 서로의 위에 그리고 캡처된 3D 장면(206)에서 객체(208)의 표면들의 위치들을 나타내는 깊이 데이터에 기초하여 가상 3D 공간(504) 내에서 동일한 깊이들로 투영되는 하나 이상의 정점들에 기초하여 객체(208)의 파선 표현(506)으로 정렬될 수 있다는 것을 이해해야 한다. 예를 들어, 부분 3D 메쉬들(1102-1 및 1102-3)이 도 11에서 부분 3D 메쉬(1102-2) 및 객체(208)의 파선 표현(506)의 약간 앞에 위치되는 것으로 도시되어 있지만, 이는 설명의 명확성을 위한 것이다. 실제에 있어서는, 부분 3D 메쉬들(1102-1 및 1102-3)은 부분 3D 메쉬(1102-2) 및 객체(208)의 파선 표현(506)과 더 가깝게 정렬될 것이다.
도 11은 개별적인 부분 3D 메쉬들이 공통 가상 3D 공간으로 투영되어, 개별적인 부분 3D 메쉬들이 중첩되고 가상 3D 공간에서 공통 공간 위치들을 공유하는 중첩 섹션들을 가질 수 있음을 도시한다. 부분 3D 메쉬들의 섹션들은 상기 섹션들이 가상 3D 공간에서 공통의 공간 위치들을 공유할 때 중첩되는 것으로 간주될 수 있다. 예를 들어, 부분 3D 메쉬(1102-2)의 프리미티브(1104)와 부분 3D 메쉬(1102-1)의 섹션(1106)은 가상 3D 공간(504)에서 객체(208)의 표면을 나타내는 공통 공간 위치들과 정렬될 때 중첩될 수 있다.
도 11은 가상 3D 공간으로 투영된 3 개의 부분 3D 메쉬들(1102-1 내지 1102-3)을 도시한다. 부분 3D 메쉬들(1102-1 내지 1102-3)은 도 2에 도시된 구성(200)에서 캡처 장치들(202-1 내지 202-3)의 밴티지 포인트들(204-1 내지 204-3)에 기초하여 상술된 임의의 방식으로 렌더링 설비(102)에 의해 생성된 부분 3D 메쉬들일 수 있다. 그러나, 3D 장면에 대한 밴티지 포인트들을 갖는 캡처 장치들의 임의의 적합한 구성을 위한 임의의 적합한 수의 부분 3D 메쉬들이 가상 3D 공간에서 3D 장면의 부분 가상 표현들을 생성하기 위해 공통 가상 3D 공간으로 투영될 수 있다. 예를 들어, 3D 장면에서 객체(208)에 대한 추가의 밴티지 포인트들을 갖는 추가 캡처 장치들의 구성의 경우, 렌더링 설비(102)는 추가의 밴티지 포인트들에 대해, 가상 3D 공간(504)으로 투영된 추가의 부분 3D 메쉬들을 생성하여 가상 3D 공간(504)에서 객체(208)의 추가의 표면들을 가상으로 나타낼 수 있다. 설명을 위해, 도 12은 가상 3D 공간(504)으로 투영된 복수의 부분 3D 메쉬들(1202)(예를 들어, 부분 3D 메쉬들(1202-1 내지 1202-6))의 단면 뷰를 도시한다. 도 12는 도 12가 가상 3D 공간(504)으로 투영된 6 개의 밴티지 포인트들과 관련된 6 개의 부분 3D 메쉬들(1202)을 도시한다는 점을 제외하고는 도 11과 유사하다.
특정 예들에서, 렌더링 설비(102)는 캡처된 3D 공간에 대한 모든 이용 가능한 밴티지 포인트들에 대해 공통 가상 3D 공간으로 투영된 부분 3D 메쉬들을 생성할 수 있다. 다른 예들에서, 렌더링 설비(102)는 캡처된 3D 공간에 대한 모든 이용 가능한 밴티지 포인트들 중 한 서브세트에 대해서만 공통 가상 3D 공간으로 투영된 부분 3D 메쉬들을 생성할 수 있다. 렌더링 설비(102)는, 렌더링 설비(102)가 이용 가능한 밴티지 포인트의 서브세트에 대해서만 데이터를 수신하거나 또는 렌더링 설비(102)가 가상 3D 공간에서 임의의 뷰포인트에 가장 신뢰할 만한 데이터를 제공하는 밴티지 포인트들과 같은 가장 바람직한 밴티지 포인트들의 서브세트에 대한 데이터를 선택하고 처리할 수 있기 때문에, 이용 가능한 밴티지 포인트들의 서브세트에 대해서만 부분적인 3D 메쉬들을 생성할 수 있다.
렌더링 설비(102)는 가상 3D 공간으로 투영된 생성된 부분 3D 메쉬들을 사용하여 가상 3D 공간 내의 임의의 뷰포인트로부터 가상 3D 공간의 이미지 뷰를 생성할 수 있다. 전술한 바와 같이, 가상 3D 공간으로 투영된 부분 3D 메쉬들이 캡처된 3D 장면의 부분 가상 표현들(즉, 3D 장면에서 하나 이상의 객체들의 부분 가상 재현들)을 생성하기 때문에, 이미지 뷰는 가상 3D 공간 내의 어떠한 임의의 뷰포인트로부터 3D 장면의 부분 가상 표현들의 투시 뷰를 나타낼 수 있다. 생성된 이미지 뷰는 가상 3D 공간(504)의 3D 좌표들로부터 이미지 평면에서 2D 이미지 좌표들의 세트로 매핑된(예를 들어, 래스터화된(rasterized)) 데이터(예를 들어, 프래그먼트들을 나타내는 데이터)와 같은 것을 포함하여 임의의 적합한 방식으로 표현될 수 있으며, 상기 데이터는 2D 디스플레이 스크린 상에 디스플레이하기 위해 이미지 뷰를 나타내는 디스플레이 스크린 데이터(예를 들어, 픽셀 데이터)를 생성 및 출력하는데 사용될 수 있다.
렌더링 설비(102)는 가상 3D 공간으로 투영된 부분 3D 메쉬들을 축적하고 부분 3D 메쉬들에 대한 컬러 샘플들을 블렌딩하여 가상 3D 공간의 이미지 뷰를 형성함으로써 가상 3D 공간 내의 임의의 뷰포인트로부터 가상 3D 공간의 이미지 뷰를 생성할 수 있다. 특정 예들에서, 렌더링 설비(102)는 GPU의 프레임 버퍼에 부분 3D 메쉬들을 축적할 수 있고 GPU의 프레임 버퍼에 부분 3D 메쉬들에 대한 컬러 샘플들을 부가적으로 블렌딩할 수 있다. 특정 예들에서, 부분 3D 메쉬들에 대한 컬러 샘플들의 블렌딩은 렌더링 설비(102)가 부분 3D 메쉬들의 프리미티브들에 대한 블렌드 가중치들을 결정하고, 부분 3D 메쉬들의 프리미티브들에 대해 결정된 블렌드 가중치들에 기초하여 부분 3D 메쉬들에 대한 컬러 샘플을 가중하고, 부분 3D 메쉬들의 중첩 섹션들에 포함된 중첩된 프리미티브들에 대한 가중된 컬러 샘플들의 가중된 평균들을 결정하는 것을 포함한다. 특정 예들에서, 렌더링 설비(102)는 축적 영역을 결정하고 축적 영역 내에 위치된 프리미티브들 또는 프래그먼트들만을 축적 및 블렌딩할 수 있다. 가상 3D 공간으로 투영된 부분 3D 메쉬들에 기초하여 가상 3D 공간 내의 임의의 뷰포인트로부터 가상 3D 공간의 이미지 뷰를 생성하기 위한 그러한 동작들의 예들이 이제 설명될 것이다.
도 13은 가상 3D 공간(504)으로 투영된 부분 3D 메쉬들(1202)의 단면 뷰(예를 들어, 가상 3D 공간(504)의 xz 평면의 뷰)를 도시하며, 이는 가상 3D 공간(504)에서 임의의 뷰포인트(1304)로부터 가상 3D 공간(504)의 이미지 뷰(1302)를 생성하도록 렌더링 설비(102)에 의해 사용될 수 있다. 도 13에서, 이미지 뷰(1302)는 가상 3D 공간(504)에서 2D 이미지 평면의 단면 뷰로서 표현되며, 그 위로 가상 3D 공간(504)의 투시 뷰가 임의의 뷰포인트(1304)로부터 투영될 수 있다.
이미지 뷰(1302)를 생성하기 위해, 렌더링 설비(102)는 가상 3D 공간(504)에 투영된 부분 3D 메쉬들(1202)을 나타내는 데이터를 이미지 뷰(1302)을 나타내는 데이터가 기록되는 프레임 버퍼에 축적할 수 있다. 프레임 버퍼는 축적된 부분 3D 메쉬들로부터의 데이터 샘플들을 저장할 수 있는 GPU의 버퍼와 같은 임의의 버퍼일 수 있다. 특정 예들에서, 프레임 버퍼는 16 비트 플로트 타입 데이터(float type data) 또는 높은 동적 범위 비디오 또는 이미지 포맷에 적합한 임의의 다른 데이터 타입을 저장하도록 구성된 프레임 버퍼와 같은 고정밀 프레임 버퍼일 수 있다. 다른 예들에서, 프레임 버퍼는 임의의 적합한 이미지 및/또는 비디오 포맷에 사용될 수 있는 임의의 다른 데이터 타입을 저장하도록 구성될 수 있다.
렌더링 설비(102)는 프레임 버퍼에 기록할 데이터를 선택하도록 부분 3D 메쉬들에 대한 데이터를 샘플링하고, 선택된 데이터를 프레임 버퍼에 기록하고, 선택되지 않은 데이터를 프레임 버퍼에 기록하지 않도록 하는 것을 포함하는 임의의 적합한 방식으로 부분 3D 메쉬들(1202)을 프레임 버퍼에 축적할 수 있다. 이를 위하여, 렌더링 설비(102)는 가상 3D 공간(504) 내의 폐색(occlusion) 결정, 부분 3D 메쉬들(1202)에 의해 표현된 표면들이 향하는 방향들을 결정, 깊이 테스팅 등과 같이 프레임 버퍼에 기록하거나 기록하지 않을 데이터를 선택하기 위한 하나 이상의 동작들을 수행할 수 있다. 그러한 동작들을 사용하여, 렌더링 설비(102)는 부분 3D 메쉬들(1202)로부터의 어느 데이터가 임의의 뷰포인트(1304)로부터 가시적인 객체의 표면을 가상으로 나타내는지를 결정할 수 있고 그 데이터를 선택하여 프레임 버퍼에 기록할 수 있다.
예시를 위해, 도 13의 임의의 뷰포인트(1304)로부터, 가상 3D 공간에서 객체(208)의 전방 우측 표면을 가상으로 나타내는 부분 3D 메쉬들(1202)의 프리미티브들이 가시적이이고, 따라서 이미지 뷰(1302)에 포함된다. 도시된 바와 같이, 그러한 프리미티브들은 부분 3D 메쉬들(1202-2)의 하나의 프리미티브(프리미티브(1306)로 라벨링 됨), 부분 3D 메쉬들(1202-3)의 모든 프리미티브들(개별적인 참조 번호들로 라벨링되지 않음), 및 부분 3D 메쉬(1202-4)의 하나의 프리미티브(프리미티브(1308)로 라벨링 됨)를 포함한다. 이 예에서, 렌더링 설비(102)는 이들 프리미티브들을 임의의 뷰포인트(1304)로부터 가시적인 것으로 식별하고 이들 프리미티브를 나타내는 데이터를 프레임 버퍼에 기록하는 동작들을 수행할 수 있다. 렌더링 설비(102)는 또한 임의의 뷰포인트(1304)로부터 가시적이지 않는 다른 프리미티브들을 식별하고 이들 다른 프리미티브를 나타내는 데이터를 프레임 버퍼에 기록하지 않도록 하는 동작들을 수행할 수 있으며, 이는 비가시적 프리미티브들을 나타내는 데이터를 프레임 버퍼에 결코 기록하지 않는 것 및/또는 임의의 뷰포인트(1304)로부터 가시적인 것으로 식별된 프리미티브들을 나타내는 데이터로 프레임 버퍼에 이미 기록되어 있는 비가시적 프리미티브들을 나타내는 데이터를 겹쳐 기록하는(overwirte) 것을 포함할 수 있는며, 이러한 것은 렌더링 설비(102)가 부분 3D 메쉬들(1202)로부터 데이터를 샘플링하는(예를 들어, 깊이 테스트) 순서에 의존한다.
특정 예들에서, 렌더링 설비(102)는 임의의 순서로 가상 3D 공간(504)으로 투영된 모든 부분 3D 메쉬들(1202)로부터 데이터를 샘플링할 수 있고 선택된 프리미티브들을 나타내는 데이터를 프레임 버퍼에 기록할 수 있어, 모든 부분 3D 메쉬들(1202)이 샘플링된 후에, 프레임 버퍼는 임의의 뷰포인트(1304)로부터 가시적인 부분 3D 메쉬들의 프리미티브들에 대한 데이터만을 포함한다. 다른 예들에서, 렌더링 설비(102)는 임의의 뷰포인트(1304)와 가장 관련이 있는 가상 3D 공간(504)에 투영된 부분 3D 메쉬들(1202)의 서브 세트를 선택할 수 있으며, 이는 임의의 적합하게 정의된 기준 및 동작들과, 오직 선택된 부분 3D 메쉬들(1202)에 대한 샘플 데이터에만 기초한다.
렌더링 설비(102)가 가상 3D 공간(504)에서 공통 3D 좌표들과 관련된 중첩 섹션들을 갖는 부분 3D 메쉬들(1202)을 축적할 수 있기 때문에, 렌더링 설비(102)는 프레임 버퍼에 표현된 바와 같이 이미지 뷰(1302)의 공통 2D 좌표에 매핑되도록 가상 3D 공간(504)의 공통 3D 좌표에 대해 다수의 부분 3D 메쉬들(1202)로부터 다수의 프리미티브들 또는 샘플들을 선택할 수 있다. 부분 3D 메쉬들(1202)의 그러한 중첩 섹션들에 대해, 렌더링 설비(102)는 프레임 버퍼에서 부분 3D 메쉬들(1202)의 중첩 섹션들에 대한 컬러 샘플들을 축적 및 블렌딩하는 하나 이상의 동작들을 수행할 수 있다. 특정 예들에서, 렌더링 설비(102)는 부분 3D 메쉬들(1202)의 임의의 처리 순서에 대해 샘플들이 샘플링되고 기록되도록 선택됨에 따라 부분적 3D 메쉬들(1202)의 샘플들이 프레임 버퍼에 기록될 수 있도록 부가적인 블렌딩을 사용하여 컬러 샘플들을 블렌딩한다.
이미지 뷰(1302)의 단일 2D 좌표 포인트에 대한 부분 3D 메쉬들로부터 샘플들을 축적하고 블렌딩하는 렌더링 설비(102)의 예가 이제 설명될 것이다. 도 13은 임의의 뷰포인트(1304)로부터 가상 3D 공간(504)으로 투영된 예시적인 투시선(1310)을 도시한다. 도시된 바와 같이, 투시선(1310)은 가상 3D 공간(504)의 3D 좌표 포인트(1312)에서 이미지 뷰(1302)와 교차하고, 가상 3D 공간(504)의 3D 좌표 포인트(1314)에서 부분 3D 메쉬(1202-3)와 교차하고, 가상 3D 공간(504)의 3D 좌표 포인트(1316)에서 부분 3D 메쉬(1202-2)와 교차하고, 3D 좌표 포인트(1318)에서 부분 3D 메쉬(1202-6)와 교차한다. 3D 좌표 포인트들(1314 및 1316)이 도 13에서 상이한 위치들에 도시되어 있지만, 부분 3D 메쉬들(1202-2 및 1202-3)이 전술한 바와 같이 설명의 명확성을 위해 서로의 위에 정렬되지 않기 때문에, 3D 좌표 포인트들(1314 및 1316)은 동일한 3D 좌표 포인트가 되거나 또는 동일한 3D 좌표 포인트로 취급되도록 서로의 미리 결정된 임계 거리 내에 있는 것으로 간주된다. 이미지 뷰(1302)의 이미지 평면 상의 3D 좌표 포인트(1312)는, 프레임 버퍼에서 부분 3D 메쉬들(1202)로부터 데이터를 축적할 때 렌더링 설비(1302)에 의해 3D 좌표 포인트들(1314, 1316 및 1318)이 매핑될 수 있고 그리고 이미지 뷰(1302)를 나타내는 데 사용되는 2D 좌표들의 세트 내의 이미지 뷰(1302)의 2D 좌표 포인트에 대응한다.
예로서, 렌더링 설비(102)는 부분 3D 메쉬(1202-3)의 3D 좌표 포인트(1314)를 샘플링하고, 프레임 버퍼에 기록될 3D 좌표 포인트(1314)를 선택하고, 3D 좌표 포인트(1314)에 대한 데이터를 이미지 뷰(1302)의 이미지 평면 상의 3D 좌표 포인트(1312)에 대응하는 이미지 뷰(1302)에 대한 2D 좌표 포인트에 매핑 및 기록할 수 있다. 렌더링 설비(102)는 또한 부분 3D 메쉬(1202-6)의 3D 좌표 포인트(1318)를 샘플링할 수 있고, 3D 좌표 포인트(1318)가 프레임 버퍼에서 이미지 뷰(1302)에 대한 2D 좌표 포인트에 이미 맵핑되어 기록된 3D 좌표 포인트(1314)에 의해 폐색되기(occluded) 때문에(그러한 폐색(occlusion)은 깊이 테스팅에 의해 또는 임의의 다른 적합한 방식으로 결정될 수 있다) 프레임 버퍼에 기록될 3D 좌표 포인트(1318)를 선택하지 않을 수 있으며, 이미지 뷰(1302)에 대한 2D 좌표 포인트에 3D 좌표 포인트(1318)에 대한 데이터를 기록하지 않을 수 있다. 렌더링 설비(102)는 또한 부분 3D 메쉬(1202-2)의 3D 좌표 포인트(1316)를 샘플링할 수 있고, 프레임 버퍼에 기록될 3D 좌표 포인트(1316)를 선택할 수 있는데, 이는 3D 좌표 포인트(1316)가 공통 3D 포인트를 나타내기 때문에 3D 좌표 포인트(1314)에 의해 폐색되지 않기 때문이다. 3D 좌표 포인트(1316)가 전술한 바와 같이 3D 좌표 포인트(1314)와 동일하기 때문에, 렌더링 설비(102)는 이미지 뷰(1302)에 대한 2D 좌표 포인트에 3D 좌표 포인트(1316)에 대한 데이터를 매핑하여 기록할 수 있으며, 이는 프레임 버퍼가 3D 좌표 포인트들(1314 및 1316)에 대한 데이터의 블렌딩을 나타내는 2D 좌표 포인트에 대한 데이터를 포함하도록 3D 좌표 포인트들(1314 및 1316)에 대한 데이터를 블렌딩하는 방식에 의한다. 예를 들어, 렌더링 설비(102)는 프레임 버퍼에 3D 좌표 포인트들(1314 및 1316)에 대한 컬러 샘플들을 블렌딩할 수 있다.
특정 예들에서, 렌더링 설비(102)는 렌더링 설비(102)가 샘플을 처리할 때 프레임 버퍼에서 부분 3D 메쉬들의 중첩 섹션들 상의 공통 3D 좌표 포인트들에 대한 컬러 샘플들을 부가적으로 블렌딩함으로써 부분 3D 메쉬들에 대한 컬러 샘플들을 블렌딩할 수 있다. 도 13에 도시된 예를 계속하여, 렌더링 설비(102)는 3D 좌표 포인트들(1314 및 1316)이 매핑되는 이미지 뷰(1302)에서 2D 좌표 포인트에 대한 프레임 버퍼에서 공통 3D 좌표 포인트들(1314 및 1316)에 대한 컬러 샘플들을 부가적으로 블렌딩할 수 있다. 예시를 위해, 렌더링 설비(102)는 부분 3D 메쉬(1202-3)의 3D 좌표 포인트(1314)를 샘플링하고, 프레임 버퍼에 기록될 3D 좌표 포인트(1314)를 선택하고, 3D 좌표 포인트(1314)에 대한 데이터를 이미지 뷰(1302)에 대한 2D 좌표 포인트에 매핑 및 기록할 수 있다. 이러한 것은 3D 좌표 포인트(1314)와 관련된 컬러 샘플 데이터를 프레임 버퍼에 기록하는 것을 포함할 수 있다. 실례로, RGB 컬러 모델 값에서 3D 좌표 포인트에 대한 컬러 샘플 데이터는 (255, 0, 0) 일 수 있고, 렌더링 설비(102)는 이 값을 이미지 뷰(1302)의 2D 좌표 포인트에 2D에 대한 프레임 버퍼에 (예를 들어, 프레그먼트 데이터의 일부로서) 기록할 수 있다. 렌더링 설비(102)는 또한 전술한 바와 같이, 부분 3D 메쉬(1202-2)의 3D 좌표 포인트(1316)를 샘플링할 수 있고, 프레임 버퍼에 기록될 3D 좌표 포인트(1316)를 선택할 수 있다. 3D 좌표 포인트(1316)가 3D 좌표 포인트(1314)와 동일하기 때문에, 이미지 뷰(1302)에 대한 2D 좌표 포인트에 3D 좌표 포인트(1316)에 대한 데이터를 기록하는 것은 3D 좌표 포인트(1316)와 관련된 컬러 샘플 데이터를 프레임 버퍼에 기록하는 것을 포함할 수 있으며, 이는 프레임 버퍼가 3D 좌표 포인트들(1314 및 1316)에 대한 컬러 샘플들의 블렌딩을 나타내는 2D 좌표 포인트에 대한 컬러 샘플 데이터를 포함하도록 3D 좌표 포인트들(1314 및 1316)에 대한 컬러 샘플 데이터를 블렌딩하는 방식에 의한다. 실례로, RGB 컬러 모델 값에서 3D 좌표 포인트에 대한 컬러 샘플 데이터는 (205, 0, 0) 일 수 있고, 렌더링 설비(102)는 이 값을 이미지 뷰(1302)의 2D 좌표 포인트에 대한 프레임 버퍼에 이미 저장된 3D 좌표 포인트(1314)에 대한 값 RGB 값에 부가적으로 블렌딩할 수 있다. 특정 예들에서, 상기 부가적인 블렌딩은 3D 좌표 포인트들(1314 및 1316)에 대한 RGB 컬러 값들의 평균을 결정하는 것 및 이미지 뷰(1302)의 2D 좌표 포인트에 대한 프레임 버퍼에 상기 결정된 평균(예를 들어, RGB 값(225, 0, 0))을 기록하는 것을 포함할 수 있다.
특정 예들에서, 렌더링 설비(102)는 가중된 블렌딩을 사용하여 부분 3D 메쉬들에 대한 컬러 샘플들을 블렌딩할 수 있다. 예로서, 부분 3D 메쉬들에 대한 컬러 샘플들의 블렌딩은 렌더링 설비(102)가 부분 3D 메쉬들의 프리미티브들에 대한 블렌드 가중치들을 결정하고, 부분 3D 메쉬들의 프리미티브들에 대해 결정된 블렌드 가중치들에 기초하여 부분 3D 메쉬들에 대한 컬러 샘플을 가중하고, 부분 3D 메쉬들의 중첩 섹션들에 포함된 중첩된 프리미티브들에 대한 가중된 컬러 샘플들의 가중된 평균들을 결정하는 것을 포함한다.
렌더링 설비(102)는 임의의 적합한 방식으로 부분 3D 메쉬들의 프리미티브들에 대한 블렌드 가중치들을 결정할 수 있다. 특정 예들에서, 렌더링 설비(102)는, 프리미티브 표면의 표면 법선과 밴티지 포인트으로부터 투영되고 상기 프리미티브와 교차하는 투시선 사이의 관계(예를 들어, 각도)와 같이, 밴티지 포인트(그로부터 프리미티브와 관련된 데이터가 캡처된다)와 관련하여 프리미티브의 표면이 향하는 방향에 기초하여 프리미티브의 블렌드 가중치를 결정할 수 있다. 그러한 관계는 표면 데이터가 포착되도록 하는 밴티지 포인트에 대한 프리미티브의 표면 각도에 기초하여 프리미티브에 대한 표면 데이터의 신뢰 수준 또는 품질을 나타낼 수 있다. 예를 들어, 프리미티브의 표면 법선과 캡처 밴티지 포인트로부터 투영된 투시선 사이의 더 작은 각도는, 프리미티브의 표면 법선과 캡처 밴티지 포인트로부터 투영된 투시선 사이의 더 큰 각도에 의해 나타나게 될 것보다 프리미티브에 대한 표면 데이터에서 더 높은 신뢰 수준을 나타낼 수 있다 상기 더 작은 각도는, 프리미티브의 표면이 캡처 밴티지 포인트에 덜 직접적으로 향하고 있는 것을 나타내는 더 큰 각도에 비하여, 프리미티브의 표면이 캡처 밴티지 포인트에 더욱 직접적으로 향하고 있는 것을 나타낸다. 따라서, 프리미티브 표면들과 캡처 밴티지 포인트들 사이의 각도 관계들에 기초하여, 렌더링 설비(102)는 제 2 프리미티브와 관련된 표면 데이터에 부여되는 것보다 제 1 프리미티브와 관련된 표면 데이터에 더 많은 가중치를 부여하기 위해, 캡처 밴티지 포인트에 더 직접적으로 향하는 표면을 갖는 제 1 프리미티브에 대해 더 높은 블렌드 가중치를 및 캡처 밴티지 포인트에 덜 직접적으로 향하는 표면을 갖는 제 2 프리미티브에 대해 더 낮은 블렌드 가중치를 결정할 수 있다. 이러한 또는 유사한 방식으로, 렌더링 설비(102)는 예를 들어 블렌딩 동작에서 각도를 이루는 표면들(angled surfaces)의 영향을 감소시킴으로써, 프리미티브들에 대한 표면 데이터의 신뢰 수준에 기초하여 프리미티브가 블렌딩 동작에 영향을 미치는 방식을 제어할 수 있다.
도 13에 도시된 예를 계속하면, 예를 들어, 3D 좌표 포인트(1314)는, 부분 3D 메쉬(1202-2)와 관련된 표면 데이터가 캡처되어지는 밴티지 포인트(예를 들어, 밴티지 포인트(204-2))에 대해 3D 좌표 포인트(1316)가 위치되는 부분 3D 메쉬(1202-2)의 프리미티브의 표면보다, 부분 3D 메쉬(1202-3)와 관련된 표면 데이터가 캡처되어지는 밴티지 포인트(예를 들어, 밴티지 포인트(204-3))에 더 직접적으로 향하는 표면을 갖는 부분 3D 메쉬(1202-3)의 프리미티브 상에 있을 수 있다. 따라서, 렌더링 설비(102)는 부분 3D 메쉬(1202-3) 상의 3D 좌표 포인트(1314)와 관련된 프리미티브에 대해 상대적으로 더 높은 블렌드 가중치를 및 부분 3D 메쉬(1202-2) 상의 3D 좌표 포인트(1316)와 관련된 프리미티브에 대해 상대적으로 더 낮은 블렌드 가중치를 결정할 수 있으며, 이는 3D 좌표 포인트들(1314 및 1316)에 대한 컬러 샘플들이 블랜딩될 때 3D 좌표 포인트(1314)와 관련된 프리미티브의 영향을 증가시키고 3D 좌표 포인트(1316)와 관련된 프리미티브의 영향을 감소시키기 위해 블렌드 가중치들이 렌더링 설비(102)에 의해 사용될 수 있다.
렌더링 설비(102)는 부분 3D 메쉬들에 대한 표면 데이터(예를 들어, 컬러 샘플들)에 가중치를 부여하기 위해 부분 3D 메쉬들의 프리미티브들에 대해 상기 결정된 블렌드 가중치들을 사용할 수 있으며, 부분 3D 메쉬들의 중첩 섹션들(overlapping sections)에 포함된 중첩된 프리미티브들(superimposed primitives)에 대한 가중된 표면 데이터의 가중된 평균들(weighted averages)을 결정할 수 있다. 예를 들어, 렌더링 설비(102)는 부분 3D 메쉬들(1202-3 및 1202-2)의 프리미티브들에 대한 블렌드 가중치들을 사용하여 3D 좌표 포인트들(1314 및 1316)에 대한 컬러 샘플들에 가중치를 부여하고 가중된 컬러 샘플들의 가중된 평균을 결정할 수 있다. 예를 들어, 렌더링 설비(102)는 3D 좌표 포인트(1314)에 대한 컬러 샘플에 3D 좌표 포인트(1314)를 포함하는 부분 3D 메쉬(1202-3)의 프리미티브에 대해 결정된 제 1 블렌드 가중치를 곱하고, 3D 좌표 포인트(1316)에 대한 컬러 샘플에 3D 좌표 포인트(1316)를 포함하는 부분 3D 메쉬(1202-2)의 프리미티브에 대해 결정된 제 2 블렌드 가중치를 곱하고, 두 곱셈들의 결과들을 더하고, 상기 결과들의 합을 블렌드 가중치들의 합계로 나눔으로써, 부분 3D 메쉬들(1202-3 및 1202-2)의 중첩 섹션들에 포함된 중첩된 프리미티브들의 3D 좌표 포인트들(1314 및 1316)에 대한 컬러 샘플들의 가중된 평균을 결정할 수 있다. 렌더링 설비(102)는 컬러 샘플들의 결정된 가중된 평균을 이미지 뷰(1302)의 대응하는 2D 좌표 포인트에 대한 프레임 버퍼에 기록할 수 있다.
이러한 또는 유사한 방식으로 컬러 샘플들에 가중치를 부여하는 것은 더 직접적으로 캡처된 표면과 관련된 컬러 샘플에 대해 상대적으로 더 많은 가중치를 제공하고 덜 직접적으로 캡처된 표면과 관련된 컬러 샘플에 대해 상대적으로 더 적은 가중치를 제공한다. 예를 들어, RGB 값(255, 0, 0)을 갖는 3D 좌표 포인트(1314)에 대한 컬러 샘플에 대해 0.7의 가중치가 결정되고, RGB 값(205, 0, 0)을 갖는 3D 좌표 포인트(1316)에 대한 컬러 샘플에 대해 0.3의 가중치가 결정되면, 렌더링 설비(102)는 블렌딩된 컬러 샘플들에 대해 (240, 0, 0)의 가중된 평균 컬러 샘플 RGB 값을 결정할 수 있고, 이러한 가중된 평균 컬러 샘플 값은 프레임 버퍼에서 컬러 샘플들을 블렌딩한 결과로서 대응하는 2D 좌표 포인트에 대해 프레임 버퍼에 기록될 수 있다.
본 명세서에서 사용되는 바와 같이, 데이터를 프레임 버퍼에 기록하는 것은 임의의 적합한 프레임 버퍼 또는 가상 3D 공간의 2D 이미지 뷰에 대한 데이터를 저장하는 프레임 버퍼들의 구성에 데이터를 기록하는 것을 포함할 수 있다. 프레임 버퍼에 기록된 데이터는 디스플레이 데이터로서 도움이 되고 및/또는 디스플레이 장치로 출력될 수 있고 2D 디스플레이 스크린 상에 또는 다수의 2D 디스플레이 스크린들의 세트 상에 2D 이미지 뷰를 디스플레이하는 데 사용될 수 있는 디스플레이 데이터(예를 들어, 픽셀 데이터)를 결정하는 데 도움이 되는 임의의 데이터를 포함할 수 있다.
도 14는 축적 버퍼(1402) 및 출력 버퍼(1404)를 포함하는 프레임 버퍼들의 예시적인 구성(1400)을 도시한다. 특정 예들에서, 렌더링 설비(102)는 축적 버퍼(1402)를 사용하여 부분 3D 메쉬들에 대한 가중된 데이터를 축적할 수 있다. 이를 위해, 축적 버퍼(1402)는 RGB 컬러 모델 값들이 블렌드 가중치 "w"로 곱해진 가중된 프래그먼트에 대한 데이터 세트를 포함할 수 있다. 축적 버퍼(1402)는 또한 블렌드 가중치 "w"를 나타내는 데이터를 포함할 수 있으며, 이러한 블렌드 가중치는 본 명세서에 기술된 렌더링 설비(102)에 의해 결정될 수 있다. 렌더링 설비(102)는 이미지 뷰의 공통 2D 좌표 포인트에 대한 모든 가중된 프래그먼트들을 추가하는 것을 포함하여, 본 명세서에 설명된 바와 같이, 축적 버퍼에 부분 3D 메쉬들을 축적할 수 있다. 모든 샘플들이 축적 버퍼(1402)에 축적되면, 렌더링 설비(102)는 공통 2D 좌표 포인트에 대한 프래그먼트들의 가중된 평균을 결정하기 위해 가중된 프래그먼트들의 합을 축적 버퍼(1402)의 블렌드 가중치들의 합으로 나눌 수 있다. 렌더링 설비(102)는 프래그먼트들의 결정된 가중된 평균을 출력 버퍼(1404)에 출력(예를 들어, 기록)할 수 있으며(예를 들어, 도시된 바와 같은 RGBA 컬러 모델 포맷으로 또는 임의의 다른 적합한 포맷으로) 출력할 수 있고, 이는 디스플레이 스크린과 관련된 사용자가 볼 수 있도록 디스플레이 스크린 상에 2D 이미지 뷰의 디스플레이를 제공하는 데 사용될 수 있다.
도 14에서, 축적 버퍼(1402)는 이미지 뷰(1302) 상의 2D 좌표 포인트에 매핑되는 가상 3D 공간(504) 내의 단일 3D 좌표 포인트에 대한 데이터 세트를 포함하는 것으로 도시되어 있다. 축적 버퍼(1402)는 이미지 뷰(1302) 상의 동일한 2D 좌표 포인트에 매핑되는 가상 3D 공간(504) 내의 모든 3D 좌표 포인트들에 대한 데이터 세트들의 가중된 축적 및 블렌딩을 허용하기 위해, 이미지 뷰(1302) 상의 동일한 2D 좌표 포인트에 매핑되는 가상 3D 공간(504) 내의 하나 이상의 다른 3D 좌표 포인트들에 대한 추가의 데이터 세트들을 포함할 수 있음을 이해할 것이다.
도 14에서, 축적 버퍼(1402) 및 출력 버퍼(1404)는 각각 이미지 뷰(예를 들어, 이미지 뷰(1302))의 단일 2D 좌표 포인트에 대한 데이터 세트를 포함하는 것으로 도시되어 있다. 축적 버퍼(1402) 및 출력 버퍼(1404) 각각은 2D 이미지 뷰를 나타내는 2D 좌표 포인트들의 2D 어레이에서 각각의 2D 좌표 포인트에 대해 도시된 데이터 세트(및 특정 구현들에서는 도 14에 도시되지는 않은 추가의 데이터)를 포함할 수 있음을 이해할 것이다. 특정 예들에서, 축적 버퍼(1402)는 축적 버퍼(1402)에서의 데이터에 대한 정확한 축적 계산을 허용하기 위해 디스플레이 정밀도 및/또는 출력 버퍼(1404)보다 더 높은 정밀도의 버퍼가 될 수 있다. 예를 들어, 축적 버퍼(1402)는 16 비트 플로트(16-bit float), 16- 비트 정규화된(16-bit normalized), 또는 다른 높은 동적 범위 비디오 또는 이미지 데이터 타입 포맷으로 데이터를 저장할 수 있고, 출력 버퍼(1404)는 8 비트 낮은 동적 범위 비디오 또는 이미지 데이터 타입 포맷으로 데이터를 저장할 수 있다. 축적 버퍼(1402)는 다수의 부분 3D 메쉬들에 대한 데이터가 축적되고 본 명세서에 기술된 바와 같이 출력 버퍼(1404)로 출력될 수 있는 중간 버퍼로서 기능할 수 있다.
특정 예들에서, 렌더링 설비(102)는 축적 영역을 결정하고 축적 영역 내에 위치된 프리미티브들 또는 프래그먼트들만을 축적 및/또는 블렌딩할 수 있다. 렌더링 설비(102)는 예를 들어 메타 데이터(예를 들어, 메타 데이터에 포함된 깊이 매핑 범위), 가상 3D 공간 내의 임의의 뷰포인트 및/또는 가상 3D 공간으로 투영된 부분 3D 메쉬들에 대한 깊이 데이터에 기초하여, 임의의 적합한 시간에(예를 들어, 깊이 프리 패스(depth pre-pass)의 일부로서) 그리고 임의의 적합한 방식으로 축적 영역을 결정할 수 있다. 예를 들어, 렌더링 설비(102)는 가상 3D 공간(504)으로 투영된 부분 3D 메쉬들(1202)에 대한 깊이 데이터에 기초하여, 축적 영역이 가상 3D 공간(504) 내의 임의의 뷰포인트로부터의 투시를 따라 투영된 부분 3D 메쉬들(1202)의 가장 가까운 깊이 포인트의 깊이 값에서 시작하는 것을 결정할 수 있다. 렌더링 설비(102)는 투영된 부분 3D 메쉬들(1202)의 가장 가까운 깊이 포인트의 결정된 깊이 값에 미리 결정된 깊이 오프셋 값을 추가하여 축적 범위의 원단(far end)을 결정할 수 있다. 축적 영역은 투시를 따른 방향으로 그리고 임의의 뷰포인트로부터 멀어지는 방향으로 가장 가까운 깊이 포인트의 결정된 깊이 값으로부터 미리 결정된 깊이 오프셋 값 및 가장 가까운 깊이 포인트의 합과 동일한 깊이 값을 갖는 원거리 깊이 포인트(far depth point)의 깊이 값으로 확장될 수 있다. 가장 가까운 깊이 포인트가 zO로 표현되고 미리 결정된 깊이 오프셋이 dz로 표현된다면, 원거리 깊이 포인트는 z1로 표현될 수 있고, 여기서 z1 = zO + dz이고, 축적 범위는 [zO, z1]이며, 깊이 z은 임의의 뷰포인트로부터 투시를 따라 지향된다.
축적 영역은 특정 구현에 적합할 수 있는 임의의 크기(즉, 가상 3D 공간 내의 깊이 범위)를 가질 수 있다. 축적 영역의 크기는 미리 결정된 깊이 오프셋의 값에 의해 결정될 수 있으며, 이는 특정 구현에 적합하도록 사전에 정의될 수 있다. 예를 들어, 깊이 오프셋은 3D 장면 및/또는 가상 3D 공간에 대해 원하는 수준의 정밀도를 제공하도록 정의될 수 있다.
깊이 오프셋은 렌더링 설비(102)에 의해 가상 3D 공간(504)에서 임의의 뷰포인트로부터 투시를 따라 투영된 부분 3D 메쉬들의 각각의 가장 가까운 샘플의 깊이 값을 푸시 백(push back)하기 위해 사용될 수 있다. 설명을 위해, 도 15는 가상 3D 공간(504) 내의 임의의 뷰포인트(1502)와 관련하여 객체(208)의 파선 표현(506)의 예시적인 단면 뷰를 도시한다. 도 15에서, 객체(208)의 파선 표현(506)의 전방 에지들은 임의의 뷰포인트(1502)에 대해 투영된 부분 3D 메쉬들의 가장 가까운 깊이 샘플들이며, 실선들(1504-1 및 1504-2)로서 표시된다. 가장 가까운 샘플들은 깊이 오프셋에 의해 투시를 따라 푸시 백되고, 깊이 오프셋은 화살표들(1506)로 표시된다. 렌더링 설비(102)는 깊이 오프셋에 의해 가장 가까운 샘플들을 푸시 백함으로써, 임의의 뷰포인트(1502)로부터 각각의 투시를 따라 축적 영역을 결정할 수 있다. 축적 영역들(1508)의 예들이 도 15에 도시되어 있다. 도 15에서, 객체(208)의 파선 표현(1510)은 렌더링 설비(102)가 깊이 오프셋을 수행한 후 가상 3D 공간(504)에서의 객체를 나타낸다. 객체(208)의 파선 표현(1510)의 전방 에지들은 깊이 오프셋 이후 임의의 뷰포인트(1502)에 대해 투영된 부분 3D 메쉬들의 가장 가까운 깊이 샘플들이며, 실선들(1512-1 및 1512-2)로서 표시된다. 렌더링 설비(102)가 임의의 뷰포인트(1502)로부터 투시를 따라 가장 가까운 샘플들을 푸시 백하기 때문에, 깊이 오프셋은 사용자에게 투명할 수 있다.
도 15에 도시된 바와 같이, 축적 영역들(1508) 각각은 임의의 뷰포인트(1502)로부터 투시를 따라 가장 가까운 깊이 샘플 값으로부터 깊이 오프셋 값까지의 거리에 걸쳐있을 수 있다. 각각의 축적 영역(1508)과 관련된 임의의 뷰포인트(1502)로부터의 투시를 따라, 렌더링 설비(102)는 각각의 축적 영역(1508) 내에 위치된 프리미티브들 또는 프래그먼트들(예를 들어, 프리미티브들 또는 프래그먼트들에 대한 컬러 샘플들)만을 축적하고 블렌딩할 수 있다. 따라서, 렌더링 설비(102)는 각각의 축적 영역(1508) 외부의(예를 들어, 넘어서는) 샘플들을 무시할 수 있으며, 이는 컴퓨팅 자원들을 보존하고 및/또는 고속의 데이터 처리를 허용할 수 있다. 각각의 축적 영역(예를 들어, 각각의 축적 영역(1508))이 가상 3D 공간에서의 임의의 뷰포인트에 대한 축적 영역으로 고려될 수 있거나, 또는 가상 3D 공간에서의 축적 영역들(예를 들어, 축적 영역들(1508))의 조합이 임의의 뷰포인트와 관련한 가상 3D 공간에 대한 축적 영역으로 고려될 수 있다.
투영된 부분 3D 메쉬들은 중첩될 수 있으며 (예를 들어, 도 11 및 도 12에 도시된 바와 같이) 가상 3D 공간 내에서 중첩할 수 있다. 따라서, 부분 3D 메쉬들은 임의의 뷰포인트로부터 투시를 따라 상이한 깊이 값들을 가질 수 있다. 깊이 값들에 있어서의 그러한 차이들은 인코딩 에러, 캡처 에러 및/또는 렌더링 설비(102)에 의해 수신된 깊이 데이터와 관련된 임의의 다른 에러로 인해 발생할 수 있다. 렌더링 설비(102)는 축적 영역을 결정하도록 최전방 샘플(front-most sample)로부터 깊이 오프셋을 사용하고 결정된 축적 영역 내에 샘플들을 축적함으로써 깊이 값들에서의 그러한 차이들을 수정 및/또는 보상할 수 있으며, 이는 축적 영역 내의 상이한 깊이 값들과 관련된 샘플들이 샘플링되고 함께 블렌딩되어 임의의 뷰포인트로부터의 이미지 뷰에 기여하도록 한다.
특정 예들에서, 시스템(100)은, 캡처된 3D 장면에 대한 2D 컬러 데이터, 깊이 데이터 및 메타 데이터를 수신할 수 있고 수신된 데이터를 사용하여 미디어 플레이어 장치의 사용자에게 표현하기 위해 본 명세서에 설명된 바와 같이 가상 현실 콘텐츠를 렌더링할 수 있게 함으로써 미디어 플레이어 장치의 사용자가 3D 장면의 가상 재현(virtual reconstruction) 내에서 동적으로 선택된 뷰포인트로부터 3D 장면의 가상 재현을 경험할 수 있게 하는 미디어 플레이어 장치에 통합될 수 있다. 도 16은 시스템(100)이 가상 현실 미디어 제공자 시스템(1604)에 통신 가능하게 결합된 미디어 플레이어 장치(1602)에 통합되는 시스템(100)의 예시적인 구현(1600)을 도시한다. 미디어 플레이어 장치(1602)는 임의의 적합한 방식으로 가상 현실 미디어 제공자 시스템(1604)에 통신 가능하게 결합될 수 있다. 도 16에 도시된 예에서, 미디어 플레이어 장치(1602)는 네트워크(1606)를 통해 가상 현실 미디어 제공자 시스템(1604)에 통신 가능하게 결합된다. 그러나, 미디어 플레이어 장치(1602)는 부가적으로 또는 대안적으로 가상 현실 미디어 제공자 시스템(1604)에 통신 가능하게 직접 결합될 수 있다.
네트워크(1606)는 임의의 제공자 특정 유선 또는 무선 네트워크(예를 들어, 케이블 또는 위성 캐리어 네트워크 또는 모바일 전화 네트워크), 인터넷, 광역 네트워크 또는 임의의 다른 적합한 네트워크를 포함할 수 있다. 데이터는 특정 구현을 제공할 수 있는 임의의 통신 기술, 장치, 미디어 및 프로토콜을 사용하여 미디어 플레이어 장치(1602)와 가상 현실 미디어 제공자 시스템(1604) 사이에서 흐를 수 있다. 예를 들어, 미디어 플레이어 장치(1602) 및 가상 현실 미디어 제공자 시스템(1604)은, 이에 제한되는 것은 아니지만, 소켓 연결, 이더넷, 데이터 버스 기술, 데이터 전송 미디어, 통신 장치, 미디어 스트리밍 기술(예를 들어, 비디오 스트리밍 기술), 동영상 전문가 그룹("MPEG") 프로토콜, 전송 제어 프로토콜("TCP"), 인터넷 프로토콜("IP"), 파일 전송 프로토콜("FTP"), 텔넷(Telnet), 하이퍼텍스트 전송 프로토콜("HTTP"), HTTPS, 세션 시작 프로토콜("SIP"), 단순 객체 액세스 프로토콜("SOAP"), 확장 가능 마크-업 언어("XML") 및 그 변형, 실시간 전송 프로토콜("RTP"), 사용자 데이터그램 프로토콜("UDP"), 모바일 통신("GSM") 용 글로벌 시스템 기술, 코드 분할 다중 액세스("CDMA") 기술, 진화 데이터 최적화 프로토콜("EVDO"), 4G 롱 텀 에볼루션("LTE"), WiMax, 시분할 다중 접속("TDMA") 기술, 무선 주파수("RF") 시그널링 기술, 무선 통신 기술(예를 들어, BLUETOOTH, Wi-Fi 등), 대역 내 및 대역 외 시그널링 기술, 및 기타 적합한 통신 기술들을 포함하여, 데이터 통신을 지원하는 임의의 적합한 통신 기술, 장치, 미디어, 및/또는 프로토콜들을 사용하여 통신할 수 있다. 단지 하나의 네트워크(1606)만이 도 2에서 가상 현실 미디어 제공자 시스템(1604)과 미디어 플레이어 장치(1602)를 상호 연결하는 것으로 도시되어 있지만, 이들 장치들 및 시스템들은 특정 구현을 제공할 수 있는 것으로서 다수의 및/또는 상이한 상호 연결된 네트워크들을 통해 상호 통신할 수 있음을 인식할 것이다.
가상 현실 미디어 제공자 시스템(1604)은 2D 캡처 이미지 및 메타 데이터를 처리하는 데 사용되는 임의의 하드웨어 및/또는 소프트웨어(예를 들어, 컴퓨팅 시스템, 소프트웨어 프로그램 등)를 포함할 수 있다. 가상 현실 미디어 제공자 시스템(1604)은 단일 위치에 위치될 수 있거나 또는 특정 구현을 제공할 수 있는 것으로서 다수의 장치들(예를 들어, 서버들) 및/또는 다수의 위치들 사이에 분포될 수 있다.
가상 현실 미디어 제공자 시스템(1604)은 2D 캡처된 이미지 및 메타 데이터의 전달을 위한 데이터 파이프라인을 제공할 수 있으며, 여기에서 2D 캡처된 이미지 및 메타 데이터는 임의의 적합한 방식으로(예를 들어, 직접적으로 또는 네트워크(1606)를 통해) 캡처 장치들(예를 들어, 캡처 장치들(202))로부터 가상 현실 미디어 제공자 시스템(1604)으로 그리고 네트워크(1606)에 의해 가상 현실 미디어 제공자 시스템(1604)으로부터 미디어 플레이어 장치(1602)로 흐른다. 예를 들어, 가상 현실 미디어 제공자 시스템(1604)은 획득된 2D 캡쳐된 이미지 및 메타 데이터를 처리하여 네트워크(1606)를 통해 미디어 플레이어 장치(1602)로 스트리밍하기 위해 적어도 하나의 전송 스트림으로 2D 캡처 이미지 및 메타 데이터를 생성 및 제공할 수 있다.
특정 예들에서, 가상 현실 미디어 제공자 시스템(1604)은, 본 명세서에 그 전체가 참고로 포함되어 있으며 본 출원과 동일자로 출원된, 발명의 명칭이 "가상 현실 콘텐츠를 제공하기 위해 장면의 2D 캡쳐된 이미지를 사용하기 위한 방법 및 시스템"인 동시 계류중인 미국 특허 출원 번호 제15/610,575호에 기술된 임의의 방식으로, 미디어 플레이어 장치(1602)와 같은 미디어 플레이어 장치에 2D 캡처 이미지 및 메타 데이터를 생성 및 제공할 수 있다.
특정 예들에서, 가상 현실 미디어 제공자 시스템(1604)은 임의의 적합한 통신 채널을 통해 전송 스트림을 미디어 플레이어 장치(1602)로 스트리밍할 수 있다. 대안적으로, 가상 현실 미디어 제공자 시스템(1604)은 미디어 플레이어 장치(1602)로 스트리밍하기 위해 전송 스트림을 콘텐츠 전달 네트워크("CDN")(예를 들어, 제 3 자 CDN)에 제공할 수 있다. 특정 예들에서, 가상 현실 미디어 제공자 시스템(1604)은 전송 스트림에 메타 데이터를 포함할 수 있고(예를 들어, 2D 캡처된 이미지 데이터(즉, 표면 데이터)와 함께), 메타 데이터가 전송 스트림의 일부로서 미디어 플레이어 장치(1602)로 스트리밍되도록 스트리밍하기 위한 전송 스트림을 제공할 수 있다. 다른 예들에서, 가상 현실 미디어 제공자 시스템(1604)은 메타 데이터가 전송 스트림과 별개로 스트리밍될 수 있도록 스트리밍하기 위해 메타 데이터 및 전송 스트림을 별개로 제공할 수 있다.
본 명세서에서 사용되는 바와 같이, "전송 스트림"은 컬러 비디오 데이터 스트림들 및 깊이 비디오 데이터 스트림들이 패키징(packaged)될 수 있는 단일 전송 스트림 또는 컬러 비디오 데이터 스트림들 및 깊이 비디오 데이터 스트림들이 패키징될 수 있는 다중 전송 스트림들을 지칭할 수 있다. 따라서, 특정 예들에서, 전송 스트림은 캡처된 장면에 대한 비디오 데이터 스트림을 운반하는 단일 전송 스트림(예를 들어, 각각의 3D 캡처 장치에 대한 하나의 컬러 비디오 데이터 스트림 및 각각의 3D 캡처 장치에 대한 하나의 깊이 비디오 데이터 스트림) 뿐만 아니라 특정 구현에서 전송을 위해 포함될 수 있는 임의의 메타 데이터 또는 다른 적합한 데이터를 지칭할 수 있다. 다른 예들에서, 전송 스트림은 캡처된 장면에 대한 비디오 데이터 스트림들을 집합적으로 운반하는 복수의 전송 스트림들(예를 들어, 각각의 3D 캡처 장치에 대한 하나의 컬러 비디오 데이터 스트림 및 각각의 3D 캡처 장치에 대한 하나의 깊이 비디오 데이터 스트림) 뿐만 아니라 특정 구현에서 전송을 위해 포함될 수 있는 임의의 메타 데이터 또는 다른 적합한 데이터를 지칭할 수 있다.
전송 스트림은 가상 현실 미디어 제공자 시스템(1604)으로부터 미디어 플레이어 장치(1602)로 비디오 및/또는 다른 데이터를 전송하는 데 적합한 임의의 타입의 전송 스트림(예를 들어, MPEG 전송 스트림 또는 다른 타입의 전송 스트림)을 포함할 수 있다. 전송 스트림은 특정 구현에 적합할 수 있는 바와 같이 임의의 적합한 데이터 포맷, 컨테이너 포맷 및/또는 전송 프로토콜에 따라 구성될 수 있다.
도 17은 컬러 비디오 데이터 스트림(1704-1), 깊이 비디오 데이터 스트림(1706-1) 및 메타 데이터 스트림(1708-1)이 캡처 장치(202-1)로부터의 스트림으로서 제공되고, 컬러 비디오 데이터 스트림(1704-2), 깊이 비디오 데이터 스트림(1706-2) 및 메타 데이터 스트림(1708-2)이 캡처 장치(202-2)로부터의 스트림으로서 제공되고, 컬러 비디오 데이터 스트림(1704-n), 깊이 비디오 데이터 스트림(1706-n) 및 메타 데이터 스트림(1708-n)이 캡처 장치(202-n)로부터의 스트림으로서 제공되는, 전송 스트림(1702)의 예를 도시한다.
전송 스트림(예를 들어, 전송 스트림(1702))으로 미디어 플레이어 장치(1602)로 전송되거나 또는 달리 제공되는 2D 캡처 이미지 데이터는 임의의 적합한 방식으로 별개의 컬러 데이터 스트림 및 깊이 데이터 스트림으로 제공될 수 있다. 예시를 위해, 도 18은 예를 들어 캡처 장치(202-2)로부터 가상 현실 미디어 제공자 시스템(1604)에 의해 획득될 수 있는 예시적인 표면 데이터(1802)를 도시한다. 도 18에 도시된 바와 같이, 표면 데이터(1802)는 캡처 장치(202-2)에 의해 캡처된 3D 장면(206)의 일련의 순차적인 2D 컬러 데이터 캡처들(1804)(예를 들어, 컬러 데이터 스트림의 프레임들) 및 캡처 장치(202-2)에 의해 캡처된 장면(206)의 일련의 순차적인 2D 깊이 데이터 캡처들(1806)(예를 들어, 깊이 데이터 스트림의 프레임들)을 포함할 수 있다. 일련의 순차적인 2D 컬러 데이터 캡처들(1804)은 특정 시간 시퀀스(1808)(예를 들어, 특정의 실시간 기간, 3D 장면(206)과 관련된 특정 가상 타임라인(particular virtual timeline) 등) 동안, 캡처 장치(202-2)의 밴티지 포인트(204-2)로부터 3D 장면(206)에서의 객체(208)의 컬러 데이터를 나타낼 수 있다. 일련의 순차적인 2D 깊이 데이터 캡처(1806)는 특정 시간 시퀀스(1808) 동안 캡처 장치(202-2)의 밴티지 포인트(204-2)로부터 3D 장면(206)에서의 객체(208)의 깊이 데이터를 나타낼 수 있다.
도 18은 또한 일련의 순차적인 2D 컬러 데이터 캡처들(1804)에 포함된 예시적인 2D 컬러 데이터 캡처(1810) 및 일련의 순차적인 2D 깊이 데이터 캡처들에 포함된 예시적인 2D 깊이 데이터 캡처(1812)를 도시한다. 2D 컬러 데이터 캡처(1810)는 밴티지 포인트(204-2)로부터 가시적인 3D 장면(206)(객체(208)의 표면들로부터의 컬러 데이터 포함)의 뷰를 나타낼 수 있는 컬러 데이터를 포함할 수 있다. 컬러 데이터가 도 18에서 이미지로서 도시되어 있지만, 컬러 데이터는 임의의 적합한 형태로 캡처, 인코딩, 포맷, 전송 및 표현될 수 있음을 이해할 것이다. 예를 들어, 컬러 데이터는 표준 비디오 인코딩 프로토콜, 표준 이미지 포맷 등에 따라 포맷되는 디지털 데이터일 수 있다. 컬러 데이터는 가상 밴티지 포인트(204-2)로부터 볼 때 3D 장면 내에 포함된 객체들의 컬러 이미지(예를 들어, 컬러 사진과 유사)를 나타낼 수 있다. 대안적으로, 컬러 데이터는 객체들을 나타내는 그레이스케일 이미지(예를 들어, 흑백 사진과 유사)일 수 있다.
2D 깊이 데이터 캡처(1812)는 밴티지 포인트(204-2)와 관련된 공간에서의 포인트로부터 객체(208)의 표면들에 대한 깊이 데이터를 포함할 수 있다. 컬러 데이터와 같이, 2D 깊이 데이터 캡처(412)로 표현된 깊이 데이터는 밴티지 포인트(204-2)의 투시로부터 3D 장면(206) 내의 객체(208)를 묘사할 수 있다. 그러나, 객체(208)의 가시적인 외관을 나타내는 것(즉, 빛이 객체(208)의 표면들과 어떻게 상호 작용하는 지를 컬러 또는 그레이스케일로 나타내는 것)보다는, 깊이 데이터는 밴티지 포인트(204-2)의 위치에 대한 객체(208)(또한 예를 들어, 3D 장면(206) 내의 다른 객체들)의 표면들 상의 포인트들의 깊이(즉, 거리 또는 위치)를 나타낼 수 있다. 컬러 데이터와 마찬가지로, 깊이 데이터는 임의의 적합한 형태로 캡처, 인코딩, 포맷, 전송 및 표현될 수 있다. 예를 들어, 도시된 바와 같이, 깊이 데이터는 그레이스케일 이미지 데이터(예를 들어, 깊이 데이터 내에 표현된 각 픽셀에 대해 6 비트 또는 8 비트)로 표현될 수 있다. 그러나, 가시광이 객체(208)의 표면들로부터 어떻게 반사되는지(즉, 컬러 데이터로 표현됨)를 나타내기보다는, 깊이 데이터의 그레이스케일 이미지는 이미지에서의 각 픽셀에 대해 그 픽셀에 의해 표현된 포인트가 밴티지 포인트(204-2)의 위치로부터 얼마나 멀리 떨어져 있는지를 나타낼 수 있다. 예를 들어, 밴티지 포인트(204-2)에 더 가까운 포인트들은 더 어두운 회색 음영(darker shades of gray)을 나타내는 값들로 표현될 수 있다(예를 들어, 0b111111이 검은 색을 나타내는 6 비트 구현의 경우 0b111111에 더 가까운 이진 값). 대조적으로, 밴티지 포인트(204-2)로부터 더 멀리 떨어진 포인트들은 더 밝은 회색 음영을 나타내는 값들로 표현될 수 있다(예를 들어, 0b000000이 흰색을 나타내는 6 비트 구현의 경우 0b000000에 더 가까운 이진 값).
가상 현실 콘텐츠 제공자 시스템(1604)에 의해 제공되는 메타 데이터는 임의의 적합한 방식으로 포맷될 수 있다. 특정 예들에서, 메타 데이터는 일련의 순차적인 메타 데이터 캡처들로 포맷될 수 있다. 일련의 순차적인 투영 메타 데이터 캡처들에 포함된 각각의 메타 데이터 캡처는 3D 장면과 관련하여 특정의 시점에서 특정 캡처 장치와 관련된 메타 데이터를 포함할 수 있다. 또한, 각각의 메타 데이터 캡처는 대응하는 2D 컬러 데이터 캡처 및 대응하는 2D 깊이 데이터 캡처와 동기화될 수 있고, 따라서 2D 컬러 데이터 및 깊이 데이터에 대한 메타 데이터(예를 들어, 동기화된 2D 컬러 및 깊이 데이터 캡처들 또는 프레임들에 대한 메타 데이터 캡처 또는 프레임으로서)로서 지칭될 수 있다.
도 19는 가상 현실 콘텐츠 제공자 시스템(1604)에 의해 제공될 수 있고 미디어 플레이어 장치(1602)에 의해 수신될 수 있는 메타 데이터의 예시적인 구현(1902)을 도시한다. 구현(1902)은 JSON 데이터 포맷, 이진 데이터 포맷, 또는 특정 구현을 제공할 수 있는 것으로서 임의의 다른 적합한 데이터 포맷에 충실할 수 있다. 도 19는 특정 캡처 장치(예를 들어, 캡처 장치(202-1))와 관련된 메타 데이터를 정의하기 위해 사용될 수 있는 예시적인 데이터 필드를 도시한다. 도 19에 도시된 각각의 필드에 대한 간단한 설명이 이제 제공될 것이다.
도 19에 도시된 예에서 "스트림 IDs"로 라벨링된 필드는 특정 캡처 장치와 관련된 컬러 비디오 데이터 스트림에 대한 식별자 및 깊이 비디오 데이터 스트림에 대한 식별자로 채워질 수 있다. 식별자들은 스트링 타입 변수 또는 임의의 다른 적합한 데이터 타입을 사용하여 표현될 수 있다. 식별자들은 임의의 적합한 타입의 데이터 스트림에 대한 임의의 적합한 포맷일 수 있다. 예를 들어, MPEG 전송 스트림의 경우, 식별자들은 MPEG 전송 스트림에서의 패킷들에 대한 패킷 식별자들("PIDs")일 수 있다.
도 19에 도시된 예에서 "깊이 매핑"으로 라벨링된 필드는 캡처 설비(106)에 의해 초기에 제공되고 표현 가능한 범위의 값들 중 최소 값의 (예를 들어, 특정 캡처 장치로부터의) 거리 및 표현 가능한 범위의 값들 중 최대 값의 (예를 들어, 특정 캡처 장치로부터의) 거리를 각각 나타내는 "근거리(near)" 및 "원거리(far)" 깊이 값들로 채워질 수 있다. "근거리" 및 "원거리" 깊이 값들은 데이터 값들을 실제 세계 유닛들에 매핑할 수 있고, 부동 소수점 값들 또는 임의의 다른 적합한 데이터 타입으로 표현될 수 있고, 깊이 매핑 범위, 예를 들면 명시된 깊이 값들에 위치된 근거리 평면 및 원거리 평면에 의해 경계를 이룬 깊이 매핑 범위를 나타낼 수 있다. 일 실시예에서, 이러한 것은 여기서 Z = 와 같은포맷으로 더욱 일반화된 "깊이 디코드"를 포함할 수 있으며, 캡처 시스템(예를 들어, 도 4의 캡처 장치들(202)과 같은 하나 이상의 캡처 장치들)이 매트릭스 계수들(a, b, c, d)을 보낸다.
도 19에 도시된 예에서 "3x4 열-우선 변환 행렬"로 라벨링된 필드는 컬러 비디오 데이터 스트림 및 깊이 비디오 데이터 스트림에 포함된 데이터를 공통 가상 3D 공간에서의 3D 좌표들로 변환하기 위해 시스템(100)에 의해 사용되도록 변환 행렬로 채워질 수 있다.
도 19에 도시된 예에서 "FOV 탄젠트 각도들"로 라벨링된 필드는, 뷰 각도들 또는 각도들의 탄젠트들(예를 들어, tanleft, tanright, tantop, tanbottom)과 관련하여 특정 캡처 장치의 초점 거리, 중심점 등에 기초한 것과 같이 시야 또는 고유한 캡처 장치 파라미터들을 나타내는 정보로 채워질 수 있다. 특정 예들에서, 메타 데이터는 추가적으로 또는 대안적으로 외적 캡처 장치 파라미터들 및/또는 캡처 장치들 및/또는 캡처된 표면 데이터와 관련된 선형 및/또는 비선형 깊이 차이(depth disparity)와 관련된 정보를 포함할 수 있다.
도 11에 도시된 구현(1102)은 특정 예들에서 메타 데이터가 표현되어 미디어 플레이어 장치(210)에 제공될 수 있는 하나의 방식을 예시한다. 다른 예들에서, 메타 데이터는 임의의 다른 포맷으로 표현될 수 있고, 특정 구현에 적합할 수 있는 것으로서 임의의 추가적인 또는 대안적인 정보를 포함할 수 있다.
도 16으로 돌아가면, 미디어 플레이어 장치(1602)는 2D 컬러 데이터 및 깊이 데이터 및 메타 데이터를 나타내는 데이터를 수신하고(예를 들어, 전송 스트림으로) 본 명세서에서 기술된 바와 같이 가상 현실 콘텐츠를 생성하기 위해 수신된 데이터를 처리할 수 있는 임의의 장치를 포함하거나 그에 의해 구현될 수 있다. 미디어 플레이어 장치(1602)는 가상 3D 공간 내에서 선택된 임의의 뷰포인트로부터 가상 3D 공간의 이미지 뷰를 렌더링 및 제시하기 위해 본 명세서에 설명된 것들과 같은 부분 3D 메쉬들을 생성 및 사용할 수 있으며, 이러한 이미지 뷰는 가상 3D 공간의 투시 시야(perspective field of view)(예를 들어, 캡처된 3D 장면을 나타내는 가상 현실 세계의 투시 뷰)가 될 수 있다. 도 16에 도시된 바와 같이, 미디어 플레이어 장치(1602)는 사용자(1608)에 의해 작동될 수 있다. 미디어 플레이어 장치(1602)는 사용자(1608)로부터의 사용자 입력을 검출할 수 있고, 사용자 입력에 기초하여, 사용자(1608)가 가상 3D 공간에서 표현된 가상 현실 세계를 경험하는 것으로서 렌더링되어 제시되어질 가상 3D 공간의 이미지 뷰를 동적으로 업데이트할 수 있다.
예를 들어, 가상 현실 세계 내의 임의의 뷰포인트로부터의 시야는 사용자(1608)가 가상 현실 세계를 쉽고 자연스럽게 둘러 볼 수 있게 하는 이미지 뷰를 제공할 수 있다. 시야는 미디어 플레이어 장치(1602)에 의해 제시될 수 있고(예를 들어, 미디어 플레이어 장치(1602)의 디스플레이 스크린 상에) 가상 현실 세계 내에서 사용자(1608)의 뷰포인트을 둘러싼 객체들을 묘사하는 비디오를 포함할 수 있다. 또한, 사용자(1608)가 가상 현실 세계를 경험함에 따라, 사용자(1608)에 의해 제공되는 사용자 입력에 응답하여 시야가 동적으로 변할 수 있다. 예를 들어, 미디어 플레이어 장치(1602)는 사용자 입력을 검출할 수 있다(예를 들어, 시야가 제시되는 디스플레이 스크린을 이동시키거나 돌리는 것). 이에 응답하여, 시야는 상이한 객체들 및/또는 이전의 뷰포인트로부터 보여지는 객체들 대신에 상이한 뷰포인트(예를 들어, 디스플레이 스크린의 위치에 대응하는 뷰포인트)로부터 보여지는 객체들을 디스플레이할 수 있다.
사용자(1608)가 가상 3D 공간의 이미지 뷰를 경험하는 것을 용이하게 하기 위해, 미디어 플레이어 장치(1602)는 가상 현실 세계의 이미지 뷰들이 디스플레이될 수 있는 적어도 하나의 디스플레이 스크린(예를 들어, 헤드 장착형 가상 현실 장치에 내장된 헤드 장착형 디스플레이 스크린 또는 카드보드 장치를 갖는 사용자의 머리에 장착된 모바일 장치의 디스플레이 스크린)을 포함하거나 이와 관련될 수 있다. 미디어 플레이어 장치(1602)는 또한 가상 현실 세계를 나타내는 2D 컬러 데이터 및 깊이 데이터를 대응하는 메타 데이터와 함께 수신, 유지 및/또는 처리하도록 구성된 소프트웨어를 포함하여, 본 명세서에 기술된 시스템(100)의 임의의 동작들에 따라 미디어 플레이어 장치(1602)의 디스플레이 스크린(들) 상에 가상 현실 세계의 뷰들을 렌더링 및 제시할 수 있다. 예를 들어, 미디어 플레이어 장치(1602)는 디스플레이(들) 상에 가상 현실 세계를 나타내는 데이터를 처리하여 제시하도록 구성된 전용의 독립형 소프트웨어 애플리케이션들(예를 들어, 모바일 애플리케이션들)을 포함할 수 있다. 다른 예들에서, 가상 현실 세계의 특정 뷰들을 제시하는데 사용되는 소프트웨어는 표준 웹 브라우저 애플리케이션과 같은 비-전용의 소프트웨어를 포함할 수 있다.
추가적으로 또는 대안적으로, 미디어 플레이어 장치(1602)는 2D 컬러 데이터, 깊이 데이터 및 메타 데이터를 수신, 디코딩, 디 멀티플렉싱 및/또는 처리하는 것을 용이하게 하도록 구성된 하드웨어, 펌웨어 및/또는 소프트웨어를 포함할 수 있다. 예를 들어, 미디어 플레이어 장치(1602)는 가상 현실 미디어 제공자 시스템(1604)으로부터 수신된 2D 컬러 데이터, 깊이 데이터 및 메타 데이터와 관련된 임의의 적합한 디코딩 및/또는 디멀티플렉싱 동작들을 수행할 수 있는 디코딩/디멀티플렉싱 시스템(1610)을 포함할 수 있다. 특정 예들에서, 디코딩/디멀티플렉싱 시스템(1610)은 전용 비디오 디코딩 하드웨어(예를 들어, 하나 이상의 전용 비디오 디코더들)를 갖는 그래픽 카드 및 프로그램 가능 GPU를 포함할 수 있다. 그래픽 카드는 수신된 데이터를 디코딩할 수 있는 제한된 수의 디코더들을 포함할 수 있다. 따라서, 특정 예들에서, 미디어 플레이어 장치(1602)에 의해 수신된 데이터(예를 들어, 미디어 플레이어 장치(1602)에 의해 수신되는 전송 스트림에 포함된 데이터)는 가상 현실 미디어 제공자 시스템(1604)에 의해 미디어 플레이어 장치(1602)의 특정 하드웨어 제약들에 맞춰질 수 있다(예를 들어, 전송 스트림에 포함된 스트림들의 수를 제한함으로써).
디코딩/디멀티플렉싱 시스템(1610)은 임의의 적합한 방식으로 시스템(100)에 통신 가능하게 결합될 수 있다. 따라서, 특정 예들에서, 시스템(100)은 디코딩/디멀티플렉싱 시스템(1610)으로부터 디멀티플렉싱된 및/또는 디코딩된 2D 캡처된 이미지 데이터 및 투영 데이터를 수신하고, 수신된 데이터를 본 명세서에 설명된 바와 같이 처리하여 가상 현실 콘텐츠를 렌더링할 수 있다. 비록 시스템들(100 및 1610)이 도 16에서 별개의 시스템들인 것으로 도시되어 있지만, 시스템들(100 및 1610)은 더 적은 시스템들, 예컨대 단일의 시스템으로 결합될 수 있으며, 또는 특정 구현을 제공할 수 있는 더 많은 시스템들로 분할될 수 있다.
미디어 플레이어 장치(1602)는 여러 상이한 형태 팩터들 중 하나를 취할 수 있다. 예를 들어, 미디어 플레이어 장치(1602)는 헤드 장착형 디스플레이 스크린을 포함하는 헤드 장착형 가상 현실 장치(예를 들어, 가상 현실 게임 장치), 개인용 컴퓨터 장치(예를 들어, 데스크탑 컴퓨터, 랩탑 컴퓨터 등), 모바일 또는 무선 장치(예를 들어, 스마트 폰, 태블릿 장치, 모바일 리더 등), 또는 2D 컬러 데이터, 깊이 데이터 및 메타 데이터를 수신하고 가상 현실 콘텐츠를 렌더링 및 제시하는 것을 용이하게 하기 위해 특정 구현을 제공할 수 있는 임의의 다른 장치 또는 장치들의 구성을 포함하거나 이에 의해 구현될 수 있다. 상이한 타입들의 미디어 플레이어 장치들(예를 들어, 헤드 장착형 가상 현실 장치, 개인용 컴퓨터 장치, 모바일 장치 등)은 사용자(1608)에게 상이한 수준의 몰입을 갖는 상이한 타입들의 가상 현실 경험들을 제공할 수 있다.
특정 미디어 플레이어 장치들의 예가 설명되었지만, 그 예들은 예시적인 것이며 제한적인 것은 아니다. 미디어 플레이어 장치는 2D 컬러 데이터, 깊이 데이터 및 메타 데이터를 수신하고 2D 컬러 데이터, 깊이 데이터 및 메타 데이터를 사용하여, 본 명세서에서 설명된 원리들에 따라 가상 3D 공간의 이미지 뷰를 렌더링하도록 구성된 임의의 적합한 장치 및/또는 장치들의 구성을 포함할 수 있다. 예를 들어, 미디어 플레이어 장치는 테더링된 장치 구성(tethered device configuration)(예를 들어, 테더링된 헤드셋 장치) 또는 테더링되지 않은 장치 구성(예를 들어, 처리 장치로부터 테더링되지 않은 디스플레이 스크린)을 포함할 수 있다. 다른 예로서, 헤드 장착형 가상 현실 미디어 플레이어 장치 또는 다른 미디어 플레이어 장치가 웨어러블 컨트롤러(예를 들어, 링 컨트롤러(ring controller)) 및/또는 핸드헬드 컨트롤러와 같은 가상 현실 컨트롤러와 함께 사용될 수 있다.
도 16은 미디어 플레이어 장치(1602)의 일부인 것으로 시스템(100)을 도시하지만, 시스템(100)의 하나 이상의 기능들은 대안적인 구현들에서 다른 컴퓨팅 장치들에 통합되거나 다른 컴퓨팅 장치들에 분포될 수 있는 것으로 이해해야 한다. 예를 들어, 렌더링 설비(102)에 의해 수행되는 하나 이상의 동작들은 가상 현실 미디어 제공자 시스템(1604) 및/또는 미디어 플레이어 장치(1602)와 분리된 다른 시스템과 관련된 컴퓨팅 장치(예를 들어, 서버)에 의해 수행될 수 있다. 또한, 저장 설비(104)는 특정 구현들에서 미디어 플레이어 장치(1602)로부터 원격으로(예를 들어, 클라우드 기반 저장 설비로서) 위치될 수 있다.
도 20은 3D 장면의 2D 캡처 이미지에 기초하여 가상 현실 콘텐츠를 렌더링하기 위한 예시적인 방법(2000)을 도시한다. 도 20은 일 실시예에 따른 예시적인 동작을 도시하지만, 다른 실시예들은 도 20에 도시된 동작들 중 임의의 것을 생략, 추가, 재정렬 및/또는 수정할 수 있다. 도 20에 도시된 동작들 중 하나 이상은 렌더링 시스템(100) 및/또는 이의 임의의 구현에 의해 수행될 수 있다.
동작 2002에서, 가상 현실 콘텐츠 렌더링 시스템(예를 들어, 가상 현실 콘텐츠 렌더링 시스템(100))은 3D 장면과 관련하여 상이한 밴티지 포인트들에 배치된 복수의 캡처 장치들에 의해 캡처된 2D 컬러 데이터 및 깊이 데이터를 수신할 수 있다. 동작 2002는 본 명세서에 설명된 임의의 방식으로 수행될 수 있다.
동작 2004에서, 가상 현실 콘텐츠 렌더링 시스템은 2D 컬러 데이터 및 깊이 데이터에 대한 메타 데이터를 수신할 수 있다. 동작 2004는 본 명세서에 설명된 임의의 방식으로 수행될 수 있다.
동작 2006에서, 가상 현실 콘텐츠 렌더링 시스템은 복수의 캡처 장치들에 포함된 각각의 캡처 장치 각각과 관련된 각각의 밴티지 포인트에 대해 그리고 메타 데이터 및 깊이 데이터에 기초하여, 가상 3D 공간에서 3D 장면의 부분 가상 표현을 생성하기 위해 가상 3D 공간으로 투영된 부분 3D 메쉬를 생성할 수 있다. 동작 2006는 본 명세서에 설명된 임의의 방식으로 수행될 수 있다.
동작 2008에서, 가상 현실 콘텐츠 렌더링 시스템은 가상 3D 공간으로 투영된 부분 3D 메쉬에 기초하여 그리고 가상 3D 공간 내의 임의의 뷰포인트로부터, 가상 3D 공간의 이미지 뷰를 생성할 수 있다. 특정 예들에서, 이미지 뷰를 생성하는 것은 가상 3D 공간으로 투영된 부분 3D 메쉬들을 축적하고 2D 컬러 데이터에 기초하여 부분 3D 메쉬들에 대한 컬러 샘플들을 블렌딩하여 가상 3D 공간의 이미지 뷰를 형성하는 것을 포함한다. 동작 2008는 본 명세서에 설명된 임의의 방식으로 수행될 수 있다.
특정 예들에서, 본 명세서에 설명된 시스템(100)의 하나 이상의 동작들은 GPU 및/또는 그래픽 카드의 그래픽스 파이프라인(graphics pipeline)(예를 들어, OpenGL 렌더링 파이프라인)에 따라, 그의 일부로서 및/또는 이를 사용하여 수행될 수 있다. 시스템(100)의 그러한 구현들은 고정된 기능들, 하드웨어-가속 기능들 및/또는 GPU 및/또는 그래픽 카드의 버퍼들(예를 들어, 고정-기능 래스터화, 하드웨어-가속 깊이 테스팅, 깊이 버퍼 등)을 포함하여, 하나 이상의 성능들, 기능들 및/또는 GPU 및/또는 그래픽 카드의 자원들(예를 들어, 2D 데이터를 나타내도록 설계된 기존 비디오 코덱)을 활용할 수 있다.
특정 예들에서, 그래픽스 파이프라인은 적어도 정점 프로세싱, 래스터화 및 프래그먼트 프로세싱 단계들을 포함할 수 있고, 시스템(100)의 하나 이상의 동작들은 그래픽스 파이프라인의 이들 단계들 내에서 수행될 수 있다. 예로서, 시스템(100)은 본 명세서에 기술된 바와 같이, 그래픽스 파이프라인의 정점 프로세싱 단계 내에서 부분 3D 메쉬를 생성할 수 있다. 다른 예로서, 시스템(100)은 그래픽스 파이프라인의 정점 프로세싱 단계 내에서 정점 셰이더(vertex shader)를 사용하여, 본 명세서에 설명된 바와 같이, 가상 3D 공간에서 부분 3D 메쉬를 생성하도록 2D 입력 메쉬들을 투영할 수 있다. 다른 예로서, 시스템(100)은 부분 3D 메쉬들의 관계없는 프리미티브들를 제거할 수 있으며 및/또는 본 명세서에 기술된 바와 같이, 그래픽스 파이프라인의 정점 프로세싱 단계 내에서 지오메트리 셰이더(geometry shader) 및/또는 테셀레이션 셰이더(tessellation shader)를 사용하여 래스터화 전(pre-rasterization) 및/또는 그래픽스 파이프라인의 프래그먼트 프로세싱 단계 내에서 프래그먼트 셰이더(fragment shader)를 사용하는 래스터화 후(post-rasterization) 부분 3D 메쉬들의 프리미티브들에 대한 블렌드 가중치들을 결정할 수 있다. 다른 예로서, 시스템(100)은 그래픽스 파이프라인의 프래그먼트 프로세싱 단계 내에서 프래그먼트 셰이더를 사용하여 래스터화 후 컬러 샘플들을 샘플링하여 및 블렌딩할 수 있다.
특정 예들에서, 시스템(100)은 그래픽스 파이프라인을 활용하는 방식으로 데이터 세트에 대한 다중 패스들(multiple passes)(예를 들어, 캡처 프레임들의 시퀀스에서 하나의 프레임에 대한 2D 컬러 데이터, 깊이 데이터 및 메타 데이터에 대한 다중 패스들)을 수행할 수 있다. 예를 들어, 시스템(100)은 컬러 샘플들을 축적할 축적 영역을 확립하기 위해 깊이 프리-패스(depth pre-pass)를 수행하기 위해 데이터 세트를 한번 반복할 수 있고, 상기 축적 영역 내에 컬러 샘플들을 축적하기 위해 상기 데이터 세트를 다시 반복할 수 있다. 시스템(100)은 디스플레이를 위해 출력될 수 있는 이미지 뷰를 형성하기 위해 컬러 샘플들을 블렌딩하도록 축적된 컬러 샘플에 대해 반복할 수 있다.
도 21은 본 명세서에서 설명된 원리에 따라 3D 장면의 2D 캡처 이미지에 기초하여 가상 현실 콘텐츠를 렌더링하기 위한 예시적인 방법을 도시한다. 도 21은 일 실시예에 따른 예시적인 동작을 도시하지만, 다른 실시예들은 도 21에 도시된 동작들 중 임의의 것을 생략, 추가, 재정렬 및/또는 수정할 수 있다. 도 21에 도시된 동작들 중 하나 이상은 가상 현실 콘텐츠 렌더링 시스템(예를 들어, 가상 현실 콘텐츠 렌더링 시스템(100)) 및/또는 이들의 임의의 구현 또는 조합에 의해 수행될 수 있다.
동작 2102에서, 가상 현실 콘텐츠 렌더링 시스템(예를 들어, 가상 현실 콘텐츠 렌더링 시스템(100))은 3D 장면과 관련하여 상이한 밴티지 포인트들에 배치된 복수의 캡처 장치들에 의해 캡처된 2D 컬러 데이터 및 깊이 데이터를 수신할 수 있다. 동작 2102는 본 명세서에 설명된 임의의 방식으로 수행될 수 있다.
동작 2104에서, 가상 현실 콘텐츠 렌더링 시스템은 2D 컬러 데이터 및 깊이 데이터에 대한 메타 데이터를 수신할 수 있다. 동작 2104는 본 명세서에 설명된 임의의 방식으로 수행될 수 있다.
동작 2106에서, 가상 현실 콘텐츠 렌더링 시스템은 깊이 패스(예를 들어, 깊이 프리-패스)를 수행할 수 있다. 깊이 패스는, 가상 현실 콘텐츠 렌더링 시스템이 수신된 깊이 데이터(예를 들어, 3D 장면에서 객체들의 위치들을 나타내는 캡처된 깊이 데이터) 및 메타 데이터(예를 들어, 밴티지 포인트 정보)를 공통 가상 3D 공간에서의 3D 좌표들로 변환하고, 밴티지 포인트들에 대한 2D 입력 메쉬들을 가상 3D 공간에서의 3D 좌표들로 투영하여 본 명세서에 설명된 바와 같이, 가상 3D 공간으로 투영되는 부분 3D 메쉬들을 형성하는 것을 포함할 수 있다. 깊이 패스는 또한 폐색된 샘플들(occluded samples)을 식별하여 생략하기 위해, 가상 3D 공간 내에서 선택된 임의의 뷰포인트의 투시로부터 예를 들면 깊이 테스트에 의해 가상 현실 콘텐츠 렌더링 시스템이 깊이 데이터를 추리는(culling) 것을 포함할 수 있다.
깊이 패스는 또한 가상 현실 콘텐츠 렌더링 시스템이 가상 3D 공간 내에서 선택된 임의의 뷰포인트로부터 컬러 샘플들이 축적될 축적 범위를 결정하는 것을 포함할 수 있다. 가상 현실 콘텐츠 렌더링 시스템은 본 명세서에 설명된 바와 같이, 선택된 임의의 뷰포인트로부터의 투시를 따라 번환(translating)함으로써 선택된 임의의 뷰포인트에 가장 가까운 깊이 값들을 오프셋함으로써 축적 범위를 결정할 수 있다. 가상 현실 콘텐츠 렌더링 시스템은 축적 패스(accumulation pass)에 사용하기 위해 축적 범위의 원거리 값을 나타내는 데이터와 같은 축적 범위를 나타내는 데이터를 저장할 수 있다.
깊이 패스는 컬러 기록을 비활성화한 상태에서 깊이 테스트 및 깊이 기록을 위해 설정(set up)될 수 있다. 따라서, 가상 현실 콘텐츠 렌더링 시스템은 깊이 패스 동안 깊이 버퍼에 데이터를 기록할 수 있다. 깊이 버퍼에 기록된 데이터는 (축적 범위의 원거리 값인) 미리 결정된 깊이 오프셋만큼 오프셋된 최전방 깊이 샘플 값들을 포함할 수 있다. 가상 현실 콘텐츠 렌더링 시스템은 깊이 버퍼가 축적 패스에서 수행되는 고정-함수 깊이 테스트에 대한 입력을 제공할 수 있도록 축적 패스 전에 깊이 버퍼를 소거하지 않도록 구성 될 수 있다. 이러한 것은 결정된 축적 범위 밖의 샘플들(예를 들어, 축적 범위의 원거리 값을 초과하는 샘플들)의 하드웨어-가속 거부(hardware-accelerated rejection)를 제공할 수 있고, 축적 범위 밖에 있는 샘플들(예를 들어, 깊이 오프셋을 벗어난 샘플들)은 래스터화로부터 출력되지 않을 것이다. 축적 범위 내에 있는 샘플들(즉, 축적 범위의 원거리 값 앞에 있는 샘플들)이 선택될 것이고 그려진 이미지 뷰에 기여할 것이다.
동작 2108에서, 가상 현실 콘텐츠 렌더링 시스템은 축적 패스를 수행할 수 있다. 축적 패스는, 가상 현실 콘텐츠 렌더링 시스템이 수신된 깊이 데이터(예를 들어, 3D 장면에서 객체들의 위치들을 나타내는 캡처된 깊이 데이터) 및 메타 데이터(예를 들어, 밴티지 포인트 시야 좌표들)를 공통 가상 3D 공간에서의 3D 좌표들로 변환하고, 밴티지 포인트들에 대한 2D 입력 메쉬들을 가상 3D 공간에서의 3D 좌표들로 투영하여 본 명세서에 설명된 바와 같이, 가상 3D 공간으로 투영되는 부분 3D 메쉬들을 형성하는 것을 포함할 수 있다. 축적 패스는 또한 폐색된 샘플들을 식별하여 생략하기 위해, 가상 3D 공간 내에서 선택된 임의의 뷰포인트의 투시로부터 예를 들면 깊이 테스트에 의해 가상 현실 콘텐츠 렌더링 시스템이 깊이 데이터를 추리는 것을 포함할 수 있다. 축적 패스는 또한 본 명세서에 기술된 바와 같이 가상 현실 콘텐츠 렌더링 시스템이 부분 3D 메쉬들의 프리미티브들에 대한 블렌드 가중치들을 결정하는 것을 포함할 수 있다.
축적 패스는 또한, 가상 현실 콘텐츠 렌더링 시스템이 가상 3D 공간 내에서 선택된 임의의 뷰포인트로부터 투영된 부분 3D 메쉬들의 투시 이미지 뷰를 래스터화하고, 2D 컬러 데이터로부터(예를 들어, 입력 2D 좌표들에서의 컬러 비디오 스트림으로부터), 본 명세서에 기술된 바와 같이 깊이 패스에서 확립된 축적 영역 내에 있는 투영된 부분 3D 메쉬들의 3D 좌표들에 대한 컬러 샘플들을 축적하는 것을 포함할 수 있다. 투시 이미지 뷰에 대한 컬러 샘플들은 본 명세서에 기술된 바와 같이 프레임 버퍼에 축적될 수 있다. 특정 예들에서, 축적은 부가적인 블렌딩을 사용하여 모든 프래그먼트 출력들의 총계를 축적할 수 있으며, 이 블렌딩은 특정 구현들에서 고정 함수 연산일 수 있다. 축적 패스에서 결정된 블렌드 가중치들은 축적된 컬러 샘플들을 곱하기 위해 사용될 수 있으며, 그 후 본 명세서에 기술된 바와 같이 모든 프래그먼트들에 대한 가중된 총계를 결정하기 위해 함께 추가된다.
축적 패스는 깊이 기록을 비활성화한 상태에서 깊이 테스트 및 컬러 기록을 위해 설정될 수 있다. 따라서, 가상 현실 콘텐츠 렌더링 시스템은 본 명세서에 설명된 바와 같이 축적 패스 동안 축적된 컬러 샘플 데이터를 중간의 고정밀 프레임 버퍼에 기록할 수 있다.
동작 2110에서, 가상 현실 콘텐츠 렌더링 시스템은 가중된 평균 분할 패스(weighted average division pass)를 수행할 수 있다. 가중된 평균 분할 패스는 가상 현실 콘텐츠 렌더링 시스템이 축적된 가중된 컬러 샘플들을 블렌드 가중치들의 총계로 나눔으로써 축적된 컬러 샘플들의 가중된 평균을 결정하는 것을 포함할 수 있다. 가상 현실 콘텐츠 렌더링 시스템은 단계 2112에서 출력(예를 들어, 디스플레이) 프레임 버퍼에 결정된 가중된 평균들의 풀-스크린 쿼드(full-screen quad)(예를 들어, 클립 좌표들(clip coordinates)에서 x/y [-1, 1]을 커버하는 쿼드)를 끌어낼 수 있다. 출력 프레임 버퍼 내의 콘텐츠는 가상 현실 콘텐츠 렌더링 시스템 및/또는 가상 현실 콘텐츠 렌더링 시스템을 구현하는 미디어 플레이어 장치에 의해 사용되어, 본 명세서에 기술된 바와 같이 부분 3D 메쉬들을 생성, 축적 및 블렌딩하는 가상 현실 콘텐츠 렌더링 시스템에 의해 형성된 가상 3D 공간의 투시 이미지 뷰를 디스플레이할 수 있다.
특정 예들에서, 방법(2000) 또는 방법(2100)은 프레임들의 시간 시퀀스에서 프레임에 대해 수행될 수 있다. 프레임은 2D 컬러 데이터 프레임, 깊이 데이터 프레임, 및 프레임과 관련된(예를 들어, 프레임에 대응하는 시점과 관련된) 메타 데이터를 포함할 수 있다. 따라서, 방법(2000) 또는 방법(2100)은 프레임들의 시간 시퀀스에서 서로의 프레임에 대해 반복되어 캡처된 3D 장면을 나타내는 가상 3D 공간의 동적 투시 이미지 뷰의 비디오 출력을 생성할 수 있다.
특정 실시예들에서, 본 명세서에 기술된 하나 이상의 시스템들, 구성 요소들 및/또는 프로세스들은 하나 이상의 적절하게 구성된 컴퓨팅 장치들에 의해 구현 및/또는 수행될 수 있다. 이를 위해, 위에서 설명된 하나 이상의 시스템들 및/또는 구성 요소들은 임의의 컴퓨터 하드웨어 및/또는 본 명세서에 기술된 하나 이상의 프로세스들을 수행하기 위해 구성된 적어도 하나의 비-일시적 컴퓨터 판독 가능 매체 상에 포함된 컴퓨터 구현 명령들(예를 들어, 소프트웨어)을 포함하거나 이에 의해 구현될 수 있다. 특히, 시스템 구성 요소들은 하나의 물리적 컴퓨팅 장치에서 구현되거나 하나의 물리적 컴퓨팅 장치보다 많은 장치들에서 구현될 수 있다. 따라서, 시스템 구성 요소들은 임의의 수의 컴퓨팅 장치들을 포함할 수 있고, 임의의 수의 컴퓨터 오퍼레이팅 시스템들을 채용할 수 있다.
특정 실시예들에서, 본 명세서에 기술된 하나 이상의 프로세스들은 비-일시적 컴퓨터 판독 가능 매체에 포함되고 하나 이상의 컴퓨팅 장치들에 의해 실행 가능한 명령들로서 적어도 부분적으로 구현될 수 있다. 일반적으로, 프로세서(예를 들어, 마이크로프로세서)는 비-일시적 컴퓨터 판독 가능 매체(예를 들어, 메모리 등)로부터 명령들을 수신하고, 이들 명령들을 실행함으로써, 본 명세서에 기술된 프로세스들 중 하나 이상을 포함하는 하나 이상의 프로세스들을 수행한다. 이러한 명령들은 다양한 공지된 컴퓨터 판독 가능 매체들 중 임의의 것을 사용하여 저장 및/또는 전송될 수 있다.
컴퓨터 판독 가능 매체(프로세서 판독 가능 매체라고도 함)는 컴퓨터에 의해(예를 들어, 컴퓨터의 프로세서에 의해) 판독될 수 있는 데이터(예를 들어, 명령들)를 제공하는 데 참여하는 임의의 비-일시적 매체를 포함한다. 그러한 매체는 이에 제한되지는 않지만 비-휘발성 매체 및/또는 휘발성 매체를 포함하는 많은 형태들을 취할 수 있다. 비-휘발성 매체는 예를 들어, 광학 또는 자기 디스크들 및 다른 영구 메모리를 포함할 수 있다. 휘발성 매체는 예를 들어, 동적 랜덤 액세스 메모리("DRAM")를 포함할 수 있으며, 이는 일반적으로 메인 메모리를 구성한다. 컴퓨터 판독 가능 매체의 일반적인 형태들은 예를 들어, 디스크, 하드 디스크, 자기 테이프, 임의의 다른 자기 매체, 컴팩트 디스크 판독 전용 메모리("CD-ROM"), 디지털 비디오 디스크("DVD"), 임의의 다른 광학 매체, 랜덤 액세스 메모리("RAM"), 프로그램 가능 판독 전용 메모리("PROM"), 전기적 소거 가능 프로그램 가능 판독 전용 메모리("EPROM"), 플래시-이이피롬(FLASH-EEPROM), 임의의 다른 메모리 칩 또는 카트리지, 또는 컴퓨터가 판독할 수 있는 임의의 다른 유형의 매체(any other tangible medium)를 포함한다.
도 22는 본 명세서에 기술된 하나 이상의 프로세스들을 수행하도록 구체적으로 구성될 수 있는 예시적인 컴퓨팅 장치(2200)를 도시한다. 도 22에 도시된 바와 같이, 컴퓨팅 장치(2200)는 통신 인터페이스(2202), 프로세서(2204), 저장 장치(2206), 입력/출력("I/O") 모듈(2208), 및 통신 인프라(2212)를 통해 통신 가능하게 연결된 그래픽 카드(2210)를 포함할 수 있다. 예시적인 컴퓨팅 장치(2200)가 도 22에 도시되어 있지만, 도 22에 도시된 구성 요소들은 제한적인 것으로 의도되지 않는다. 추가적인 또는 대안적인 구성 요소들은 다른 실시예들에서 사용될 수 있다. 도 22에 도시된 컴퓨팅 장치(2200)의 구성 요소들이 이제 추가로 상세하게 설명될 것이다.
통신 인터페이스(2202)는 하나 이상의 컴퓨팅 장치들과 통신하도록 구성될 수 있다. 통신 인터페이스(2202)의 예들은 유선 네트워크 인터페이스(예를 들어, 네트워크 인터페이스 카드), 무선 네트워크 인터페이스(예를 들어, 무선 네트워크 인터페이스 카드), 모뎀, 오디오/비디오 연결부 및 임의의 다른 적합한 인터페이스를 포함하지만, 이에 제한되지는 않는다.
프로세서(2204)는 일반적으로 데이터를 처리하거나 본 명세서에 기술된 하나 이상의 명령들, 프로세스들 및/또는 동작들의 실행을 해석, 실행 및/또는 지시할 수 있는 임의의 타입 또는 형태의 프로세싱 유닛(예를 들어, 중앙 처리 유닛)을 나타낸다. 프로세서(2204)는 하나 이상의 애플리케이션들(2214) 또는 저장 장치(2206) 또는 다른 컴퓨터 판독 가능 매체에 저장될 수 있는 다른 컴퓨터 실행 가능 명령들에 따른 동작들의 실행을 지시할 수 있다.
저장 장치(2206)는 하나 이상의 데이터 저장 매체, 장치들 또는 구성들을 포함할 수 있으며, 데이터 저장 매체 및/또는 장치들의 임의의 타입, 형태 및 조합을 이용할 수 있다. 예를 들어, 저장 장치(2206)는 이에 제한되는 것은 아니지만, 하드 드라이브, 네트워크 드라이브, 플래시 드라이브, 자기 디스크, 광 디스크, RAM, 동적 RAM, 다른 비-휘발성 및/또는 휘발성 데이터 저장 유닛, 또는 이들의 조합 또는 하위 조합을 포함할 수 있다. 본 명세서에 기술된 데이터를 포함하는 전자 데이터는 저장 장치(2206)에 일시적으로 및/또는 영구적으로 저장될 수 있다. 예를 들어, 본 명세서에 기술된 임의의 동작들을 수행하기 위해 프로세서(2204)에 지시하도록 구성된 하나 이상의 실행 가능한 애플리케이션(2214)을 나타내는 데이터가 저장 장치(2206) 내에 저장될 수 있다. 일부 예들에서, 데이터는 저장 장치(2206) 내에 존재하는 하나 이상의 데이터베이스들에 배열될 수 있다. 특정 예들에서, 저장 장치들(2206)은 표면 데이터, 메타 데이터, 데이터 스트림, 비디오 스트림, 전송 스트림 및/또는 설비(102)로 또는 그에 의해 수신된, 생성된, 관리된, 유지된, 사용된 및/또는 전송된 임의의 다른 데이터를 유지할 수 있다. 저장 장치(2206)는 본 명세서에 기술된 동작들 중 하나 이상을 수행하기 위해 설비(102)에 의해 사용될 수 있는 임의의 다른 데이터를 더 포함할 수 있다.
I/O 모듈(2208)은 사용자 입력을 수신하고 사용자 출력을 제공하도록 구성된 하나 이상의 I/O 모듈들을 포함할 수 있다. 단일 가상 현실 경험을 위한 입력을 수신하기 위해 하나 이상의 I/O 모듈들이 사용될 수 있다. I/O 모듈(2208)은 입력 및 출력 능력들을 지원하는 임의의 하드웨어, 펌웨어, 소프트웨어 또는 이들의 조합을 포함할 수 있다. 예를 들어, I/O 모듈(2208)은 이에 제한되는 것은 아니지만, 키보드 또는 키패드, 터치스크린 구성 요소(예를 들어, 터치스크린 디스플레이), 수신기(예를 들어, RF 또는 적외선 수신기), 모션 센서들 및/또는 하나 이상의 입력 버튼들을 포함하여 사용자 입력을 캡처하기 위한 하드웨어 및/또는 소프트웨어를 포함할 수 있다.
I/O 모듈(2208)은 이에 제한되는 것은 아니지만, 그래픽 엔진, 디스플레이(예를 들어, 디스플레이 스크린), 하나 이상의 출력 드라이버들(예를 들어, 디스플레이 드라이버들), 하나 이상의 오디오 스피커들 및 하나 이상의 오디오 드라이버들을 포함하여 사용자에게 출력을 제시하기 위한 하나 이상의 장치들을 포함할 수 있다. 특정 실시예들에서, I/O 모듈(2208)은 그래픽 데이터를 사용자에게 제시하기 위한 디스플레이에 제공하도록 구성된다. 그래픽 데이터는 특정 구현을 제공할 수 있는 하나 이상의 그래픽 사용자 인터페이스 및/또는 임의의 다른 그래픽 콘텐츠를 나타낼 수 있다. I/O 모듈(2208)은 특정 구현들에서는 생략될 수 있다.
일부 예들에서, 본 명세서에 기술된 설비들 중 임의의 것이 컴퓨팅 장치(2200)의 하나 이상의 구성 요소들에 의해 또는 그 내부에서 구현될 수 있다. 예를 들어, 저장 장치(2206) 내에 존재하는 하나 이상의 애플리케이션들(2214)이 가상 현실 콘텐츠 렌더링 시스템(100)의 렌더링 설비(102)와 관련된 프로세스들 또는 기능들(도 1 참조)을 실행하도록 프로세서(2204)에 지시하도록 구성될 수 있다. 대안적으로, 저장 장치(2206) 내에 존재하는 하나 이상의 애플리케이션들(2214)이 데이터 디코딩/디멀티플렉싱 시스템(1610)과 관련된 하나 이상의 프로세스들 또는 기능들(도 16 참조)을 수행하도록 프로세서(2204)에 지시하도록 구성될 수 있다. 마찬가지로, 시스템(100)의 저장 설비(104)는 저장 장치(2206)에 의해 또는 저장 장치 내에 구현될 수 있다.
그래픽 카드(2210)는 프로그램 가능 GPU(2216) 및 전용 비디오 디코딩 하드웨어(예를 들어, 하나 이상의 전용 비디오 디코더들)를 갖는 임의의 적합한 그래픽 카드(예를 들어, 상업적으로 이용 가능한 그래픽 카드)를 포함할 수 있다. 그래픽 카드(2210)는 특정 실시예들에서 추가적인 구성 요소들을 포함할 수 있다. 그래픽 카드(2210) 및/또는 GPU(2216)는 본 명세서에 기술된 하나 이상의 예시적인 동작들을 실행하는 데 있어서 프로세서(2204)를 실행 및/또는 보조하도록 구성될 수 있다. 그래픽 카드(2210)는 특정 구현에 적합할 수 있는 임의의 적합한 수의 그래픽 카드들 및/또는 GPU들을 포함할 수 있다.
전술한 실시예들이 개인들에 의해 제공된 개인 정보를 수집, 저장 및/또는 사용하는 한, 그러한 정보는 개인 정보 보호에 관한 모든 적용 가능한 법률들에 따라 사용되어야한다는 것을 이해해야 한다. 또한, 그러한 정보의 수집, 저장 및 사용은 예를 들어 상황 및 정보 타입에 적합할 수 있는 잘 알려진 "옵트-인(opt-in)" 또는 "옵트-아웃(opt-out)" 프로세스들을 통해 그러한 활동에 대한 개인의 동의를 받아야 될 수 있다. 개인 정보의 저장 및 사용은 예를 들어 특히 민감한 정보에 대한 다양한 암호화 및 익명화 기술들을 통해 정보 타입을 반영하는 적절한 보안 방식으로 있을 수 있다.
전술한 설명에서, 다양한 예시적인 실시예들이 첨부된 도면들을 참조하여 기술되었다. 그러나, 다음의 청구 범위에 기재된 본 발명의 범위를 벗어나지 않으면서 다양한 수정들과 변경들이 이루어질 수 있으며, 추가적인 실시예들이 구현될 수 있음이 명백할 것이다. 예를 들어, 본 명세서에 기술된 일 실시예의 특정의 특징은 본 명세서에 기술된 다른 실시예의 특징들과 결합되거나 대체될 수 있다. 따라서, 상기한 설명 및 도면은 제한적인 의미가 아니라 예시적인 것으로 간주되어야 한다.

Claims (20)

  1. 가상 현실 콘텐츠를 렌더링하기 위한 방법으로서,
    가상 현실 콘텐츠 렌더링 시스템에 의해, 3차원("3D") 장면과 관련하여 상이한 밴티지 포인트들에 배치된 복수의 캡처 장치들에 의해 캡처된 2차원("2D") 컬러 데이터 및 깊이 데이터를 수신하는 단계;
    상기 가상 현실 콘텐츠 렌더링 시스템에 의해, 상기 2D 컬러 데이터 및 상기 깊이 데이터에 대한 메타 데이터를 수신하는 단계;
    상기 가상 현실 콘텐츠 렌더링 시스템에 의해, 복수의 캡처 장치들에 포함된 각각의 캡처 장치 각각과 관련된 각각의 밴티지 포인트에 대해 그리고 상기 메타 데이터 및 상기 깊이 데이터에 기초하여, 가상 3D 공간에서 3D 장면의 부분 표현을 생성하기 위해 상기 가상 3D 공간으로 투영된 부분 3D 메쉬를 생성하는 단계; 및
    상기 가상 현실 콘텐츠 렌더링 시스템에 의해, 상기 가상 3D 공간으로 투영된 부분 3D 메쉬들에 기초하여 그리고 상기 가상 3D 공간 내의 임의의 뷰포인트로부터, 상기 가상 3D 공간의 이미지 뷰를 생성하는 단계를 포함하며,
    상기 이미지 뷰를 생성하는 단계는,
    상기 가상 3D 공간으로 투영된 부분 3D 메쉬들을 축적하는 단계, 및
    상기 가상 3D 공간의 이미지 뷰를 형성하기 위해 상기 2D 컬러 데이터에 기초하여 상기 부분 3D 메쉬들의 중첩 섹션들(overlapping sections)에 대한 컬러 샘플들을 블렌딩하는 단계를 포함하는, 가상 현실 콘텐츠를 렌더링하기 위한 방법.
  2. 제 1 항에 있어서,
    상기 복수의 캡처 장치들에 포함된 각각의 캡처 장치 각각과 관련된 각각의 밴티지 포인트에 대해 상기 부분 3D 메쉬를 생성하는 단계는:
    상기 복수의 캡처 장치들에 포함된 각각의 캡처 장치 각각과 관련된 각각의 밴티지 포인트에 대해, 상기 가상 3D 공간에서 부분 3D 메쉬의 프리미티브 정점들(vertices of primitives)의 3D 좌표들을 생성하도록 상기 깊이 데이터에 기초하여 상기 가상 3D 공간 내의 깊이들로 투시선들(perspective rays)을 따라 2D 입력 메쉬를 투영하는 단계를 포함하는, 가상 현실 콘텐츠를 렌더링하기 위한 방법.
  3. 제 2 항에 있어서,
    상기 복수의 캡처 장치들에 포함된 각각의 캡처 장치 각각과 관련된 각각의 밴티지 포인트에 대해 상기 부분 3D 메쉬를 생성하는 단계는:
    각각의 부분 3D 메쉬에 대해, 상기 부분 3D 메쉬의 프리미티브들 중 하나 이상을 관계없는 프리미티브들(extraneous primitives)로서 식별하는 단계; 및
    각각의 부분 3D 메쉬로부터 상기 식별된 관계없는 프리미티브들을 제거하는 단계를 더 포함하는, 가상 현실 콘텐츠를 렌더링하기 위한 방법.
  4. 제 3 항에 있어서,
    각각의 부분 3D 메쉬에 대해, 상기 부분 3D 메쉬의 프리미티브들 중 하나 이상을 관계없는 프리미티브들로서 식별하는 단계는:
    미리 결정된 깊이 변화 임계값을 초과하는 깊이 변화를 갖는 제 1 프리미티브에 적어도 부분적으로 기초하여 상기 부분 3D 메쉬의 제 1 프리미티브를 제 1의 관계없는 프리미티브로서 식별하는 단계;
    상기 부분 3D 메쉬와 관련된 각각의 밴티지 포인트을 향하지 않는 표면을 갖는 제 2 프리미티브에 적어도 부분적으로 기초하여 상기 부분 3D 메쉬의 제 2 프리미티브를 제 2의 관계없는 프리미티브로서 식별하는 단계; 및
    미리 결정된 근거리 평면(near plane) 또는 미리 결정된 원거리 평면(far plane)의 범위를 벗어난 제 3 프리미티브에 적어도 부분적으로 기초하여 상기 부분 3D 메쉬의 제 3 프리미티브를 제 3의 관계없는 프리미티브로서 식별하는 단계, 중 적어도 하나를 포함하는, 가상 현실 콘텐츠를 렌더링하기 위한 방법.
  5. 제 2 항에 있어서,
    상기 가상 3D 공간의 이미지 뷰를 형성하기 위해 상기 부분 3D 메쉬들의 중첩 섹션들에 대한 컬러 샘플들을 블렌딩하는 단계는:
    상기 부분 3D 메쉬들의 프리미티브들에 대한 블렌드 가중치들을 결정하는 단계;
    상기 부분 3D 메쉬들의 프리미티브들에 대한 상기 결정된 블렌드 가중치들에 기초하여 상기 부분 3D 메쉬들에 대한 컬러 샘플들을 가중하는 단계; 및
    상기 부분 3D 메쉬들의 중첩 섹션들에 포함된 중첩된 프리미티브들(superimposed primitives)에 대한 상기 가중된 컬러 샘플들의 가중된 평균들을 결정하는 단계를 포함하는, 가상 현실 콘텐츠를 렌더링하기 위한 방법.
  6. 제 1 항에 있어서,
    상기 가상 3D 공간으로 투영된 부분 3D 메쉬들을 축적하는 단계는 그래픽 프로세싱 유닛("GPU")의 프레임 버퍼에 상기 부분 3D 메쉬들에 대한 컬러 샘플들을 축적하는 단계를 포함하고,
    상기 가상 3D 공간의 이미지 뷰를 형성하기 위해 상기 부분 3D 메쉬들의 중첩 섹션들에 대한 컬러 샘플들을 블렌딩하는 단계는 상기 GPU의 프레임 버퍼에 상기 부분 3D 메쉬들의 중첩 섹션들에 대한 컬러 샘플들을 추가적으로 블렌딩하는 단계를 포함하는, 가상 현실 콘텐츠를 렌더링하기 위한 방법.
  7. 제 1 항에 있어서,
    상기 가상 현실 콘텐츠 렌더링 시스템에 의해, 상기 가상 3D 공간으로 투영된 부분 3D 메쉬들에 기초하여 그리고 상기 가상 3D 공간 내의 임의의 뷰포인트로부터, 축적 영역을 결정하는 단계를 더 포함하며,
    상기 부분 3D 메쉬들을 축적하는 단계 및 상기 가상 3D 공간의 이미지 뷰를 형성하기 위해 상기 부분 3D 메쉬들의 중첩 섹션들에 대한 컬러 샘플들을 블렌딩하는 단계는 상기 축적 영역 내에 있는 프레그먼트들에 대해서만 수행되는, 가상 현실 콘텐츠를 렌더링하기 위한 방법.
  8. 제 1 항에 있어서,
    적어도 하나의 비-일시적 컴퓨터 판독 가능한 매체 상의 컴퓨터 실행 가능한 명령들로서 구현되는, 가상 현실 콘텐츠를 렌더링하기 위한 방법.
  9. 실행 시에 컴퓨터 장치의 적어도 하나의 프로세서에 지시하는 명령들을 저장하는 비-일시적 컴퓨터 판독 가능한 매체로서, 상기 명령들은:
    3차원("3D") 장면과 관련하여 상이한 밴티지 포인트들에 배치된 복수의 캡처 장치들에 의해 캡처된 2차원("2D") 컬러 데이터 및 깊이 데이터를 수신하고,
    상기 2D 컬러 데이터 및 상기 깊이 데이터에 대한 메타 데이터를 수신하고,
    상기 복수의 캡처 장치들에 포함된 각각의 캡처 장치 각각과 관련된 각각의 밴티지 포인트에 대해 그리고 상기 메타 데이터 및 상기 깊이 데이터에 기초하여, 가상 3D 공간에서 3D 장면의 부분 표현을 생성하기 위해 가상 3D 공간으로 투영된 부분 3D 메쉬를 생성하고,
    상기 가상 3D 공간으로 투영된 부분 3D 메쉬들에 기초하여 그리고 상기 가상 3D 공간 내의 임의의 뷰포인트로부터, 상기 가상 3D 공간의 이미지 뷰를 생성하도록, 상기 적어도 하나의 프로세서에 지시하며,
    상기 이미지 뷰를 생성하는 것은 상기 가상 3D 공간의 이미지 뷰를 형성하기 위해 상기 2D 컬러 데이터에 기초하여 상기 부분 3D 메쉬들의 중첩 섹션들에 대한 컬러 샘플들을 블렌딩하는 것을 포함하는, 비-일시적 컴퓨터 판독 가능한 매체.
  10. 제 9 항에 있어서,
    상기 복수의 캡처 장치들에 포함된 각각의 캡처 장치 각각과 관련된 각각의 밴티지 포인트에 대해 상기 부분 3D 메쉬를 생성하는 것은:
    상기 명령들이 실행 시에, 상기 복수의 캡처 장치들에 포함된 각각의 캡처 장치 각각과 관련된 각각의 밴티지 포인트에 대해, 상기 가상 3D 공간에서 부분 3D 메쉬의 프리미티브 정점들의 3D 좌표들을 생성하도록 상기 깊이 데이터에 기초하여 상기 가상 3D 공간 내의 깊이들로 투시선들을 따라 2D 입력 메쉬를 투영하도록 상기 적어도 하나의 프로세서에 지시하는 것을 포함하는, 비-일시적 컴퓨터 판독 가능한 매체.
  11. 제 10 항에 있어서,
    상기 복수의 캡처 장치들에 포함된 각각의 캡처 장치 각각과 관련된 각각의 밴티지 포인트에 대해 상기 부분 3D 메쉬를 생성하는 것은,
    상기 명령들이 실행 시에:
    각각의 부분 3D 메쉬에 대해, 상기 부분 3D 메쉬의 프리미티브들 중 하나 이상을 관계없는 프리미티브들로서 식별하고;
    각각의 부분 3D 메쉬로부터 상기 식별된 관계없는 프리미티브들을 제거하도록, 상기 적어도 하나의 프로세서에 지시하는 것을 더 포함하는, 비-일시적 컴퓨터 판독 가능한 매체.
  12. 제 10 항에 있어서,
    상기 가상 3D 공간의 이미지 뷰를 형성하기 위해 상기 부분 3D 메쉬들의 중첩 섹션들에 대한 컬러 샘플들을 블렌딩하는 것은,
    상기 명령들이 실행 시에:
    상기 부분 3D 메쉬들의 프리미티브들에 대한 블렌드 가중치들을 결정하고;
    상기 부분 3D 메쉬들의 프리미티브들에 대한 상기 결정된 블렌드 가중치들에 기초하여 상기 부분 3D 메쉬들에 대한 컬러 샘플들을 가중하고;
    상기 부분 3D 메쉬들의 중첩 영역들(overlapping areas)에 포함된 중첩된 프리미티브들에 대한 상기 가중된 컬러 샘플들의 가중된 평균들을 결정하도록, 상기 적어도 하나의 프로세서에 지시하는 것을 포함하는, 비-일시적 컴퓨터 판독 가능한 매체.
  13. 제 9 항에 있어서,
    상기 적어도 하나의 프로세서는 그래픽 프로세싱 유닛("GPU")을 포함하고;
    상기 가상 3D 공간의 이미지 뷰를 형성하기 위해 상기 부분 3D 메쉬들의 중첩 섹션들에 대한 컬러 샘플들을 블렌딩하는 것은 상기 명령들이 실행 시에, 상기 GPU의 프레임 버퍼에 상기 부분 3D 메쉬들의 중첩 섹션들에 대한 컬러 샘플들을 축적하도록 상기 적어도 하나의 프로세서에 지시하는 것을 포함하는, 비-일시적 컴퓨터 판독 가능한 매체.
  14. 제 9 항에 있어서,
    실행 시에, 상기 가상 3D 공간으로 투영된 부분 3D 메쉬들에 기초하여 그리고 상기 가상 3D 공간 내의 임의의 뷰포인트로부터, 축적 영역을 결정하도록, 상기 적어도 하나의 프로세서에 지시하는 명령들을 더 포함하고,
    상기 가상 3D 공간의 이미지 뷰를 형성하기 위해 상기 부분 3D 메쉬들의 중첩 섹션들에 대한 컬러 샘플들을 블렌딩하는 것은 상기 축적 영역 내에 있는 컬러 샘플들에 대해서만 수행되는, 비-일시적 컴퓨터 판독 가능한 매체.
  15. 가상 현실 콘텐츠를 렌더링하기 위한 시스템으로서
    적어도 하나의 컴퓨터 프로세서; 및
    상기 적어도 하나의 컴퓨터 프로세서에 지시하는 가상 현실 렌더링 설비를 포함하고, 상기 가상 현실 렌더링 설비는:
    3차원("3D") 장면과 관련하여 상이한 밴티지 포인트들에 배치된 복수의 캡처 장치들에 의해 캡처된 2차원("2D") 컬러 데이터 및 깊이 데이터를 수신하고,
    상기 2D 컬러 데이터 및 상기 깊이 데이터에 대한 메타 데이터를 수신하고,
    복수의 캡처 장치들에 포함된 각각의 캡처 장치 각각과 관련된 각각의 밴티지 포인트에 대해 그리고 메타 데이터 및 깊이 데이터에 기초하여, 가상 3D 공간에서 3D 장면의 부분 표현을 생성하기 위해 상기 가상 3D 공간으로 투영된 부분 3D 메쉬를 생성하고,
    상기 가상 3D 공간으로 투영된 부분 3D 메쉬들에 기초하여 그리고 상기 가상 3D 공간 내의 임의의 뷰포인트로부터, 상기 가상 3D 공간의 이미지 뷰를 생성하도록, 상기 적어도 하나의 컴퓨터 프로세서에 지시하고,
    상기 이미지 뷰를 생성하는 것은 상기 가상 3D 공간의 이미지 뷰를 형성하기 위해 상기 2D 컬러 데이터에 기초하여 상기 부분 3D 메쉬들의 중첩 섹션들에 대한 컬러 샘플들을 블렌딩하는 것을 포함하는, 가상 현실 콘텐츠를 렌더링하기 위한 시스템.
  16. 제 15 항에 있어서,
    상기 복수의 캡처 장치들에 포함된 각각의 캡처 장치 각각과 관련된 각각의 밴티지 포인트에 대해 상기 부분 3D 메쉬를 생성하는 것은:
    상기 가상 현실 렌더링 설비가, 상기 복수의 캡처 장치들에 포함된 각각의 캡처 장치 각각과 관련된 각각의 밴티지 포인트에 대해, 상기 가상 3D 공간에서 부분 3D 메쉬의 프리미티브 정점들의 3D 좌표들을 생성하도록 상기 깊이 데이터에 기초하여 상기 가상 3D 공간 내의 깊이들로 투시선들을 따라 2D 입력 메쉬를 투영하도록 상기 적어도 하나의 컴퓨터 프로세서에 지시하는 것을 포함하는, 가상 현실 콘텐츠를 렌더링하기 위한 시스템.
  17. 제 16 항에 있어서,
    상기 복수의 캡처 장치들에 포함된 각각의 캡처 장치 각각과 관련된 각각의 밴티지 포인트에 대해 상기 부분 3D 메쉬를 생성하는 것은:
    상기 가상 현실 렌더링 설비가 각각의 부분 3D 메쉬에 대해 상기 부분 3D 메쉬의 프리미티브들 중 하나 이상을 관계없는 프리미티브들로서 식별하도록 상기 적어도 하나의 컴퓨터 프로세서에 지시하는 것; 및
    상기 가상 현실 렌더링 설비가 각각의 부분 3D 메쉬로부터 상기 식별된 관계없는 프리미티브들을 제거하도록 상기 적어도 하나의 컴퓨터 프로세서에 지시하는 것을 더 포함하는, 가상 현실 콘텐츠를 렌더링하기 위한 시스템.
  18. 제 16 항에 있어서,
    상기 가상 3D 공간의 이미지 뷰를 형성하기 위해 상기 부분 3D 메쉬들의 중첩 섹션들에 대한 컬러 샘플들을 블렌딩하는 것은:
    상기 가상 현실 렌더링 설비가 상기 부분 3D 메쉬들의 프리미티브들에 대한 블렌드 가중치들을 결정하도록 상기 적어도 하나의 컴퓨터 프로세서에 지시하는 것;
    상기 가상 현실 렌더링 설비가 상기 부분 3D 메쉬들의 프리미티브들에 대한 상기 결정된 블렌드 가중치들에 기초하여 상기 부분 3D 메쉬들에 대한 컬러 샘플들을 가중하도록 상기 적어도 하나의 컴퓨터 프로세서에 지시하는 것; 및
    상기 가상 현실 렌더링 설비가 상기 부분 3D 메쉬들의 중첩 영역들에 포함된 중첩된 프리미티브들에 대한 상기 가중된 컬러 샘플들의 가중된 평균들을 결정하도록 상기 적어도 하나의 컴퓨터 프로세서에 지시하는 것을 포함하는, 가상 현실 콘텐츠를 렌더링하기 위한 시스템.
  19. 제 15 항에 있어서,
    상기 적어도 하나의 컴퓨터 프로세서는 그래픽 프로세싱 유닛("GPU")을 포함하고,
    상기 가상 3D 공간의 이미지 뷰를 형성하기 위해 상기 부분 3D 메쉬들의 중첩 섹션들에 대한 컬러 샘플들을 블렌딩하는 것은 상기 가상 현실 렌더링 설비가 상기 GPU의 프레임 버퍼에 상기 부분 3D 메쉬들의 중첩 섹션들에 대한 컬러 샘플들을 축적하도록 상기 적어도 하나의 프로세서에 지시하는 것을 포함하는, 가상 현실 콘텐츠를 렌더링하기 위한 시스템.
  20. 제 15 항에 있어서,
    상기 가상 현실 렌더링 설비가 ,상기 가상 3D 공간으로 투영된 부분 3D 메쉬들에 기초하여 그리고 상기 가상 3D 공간 내의 임의의 뷰포인트로부터, 축적 영역을 결정하도록 상기 적어도 하나의 컴퓨터 프로세서에 지시하는 것을 더 포함하며,
    상기 가상 3D 공간의 이미지 뷰를 형성하기 위해 상기 부분 3D 메쉬들의 중첩 섹션들에 대한 컬러 샘플들을 블렌딩하는 것은 상기 축적 영역 내에 있는 컬러 샘플들에 대해서만 수행되는, 가상 현실 콘텐츠를 렌더링하기 위한 시스템.
KR1020197035459A 2017-05-31 2018-05-24 3차원("3d") 장면의 2차원("2d") 캡처 이미지를 기반으로 하는 가상 현실 콘텐츠를 렌더링하기 위한 방법 및 시스템 KR102560187B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/610,586 US10417810B2 (en) 2017-05-31 2017-05-31 Methods and systems for rendering virtual reality content based on two-dimensional (“2D”) captured imagery of a three-dimensional (“3D”) scene
US15/610,586 2017-05-31
PCT/US2018/034425 WO2018222495A1 (en) 2017-05-31 2018-05-24 Methods and systems for rendering virtual reality content based on two-dimensional ("2d") captured imagery of a three-dimensional ("3d") scene

Publications (2)

Publication Number Publication Date
KR20200012875A KR20200012875A (ko) 2020-02-05
KR102560187B1 true KR102560187B1 (ko) 2023-07-28

Family

ID=62599737

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020197035459A KR102560187B1 (ko) 2017-05-31 2018-05-24 3차원("3d") 장면의 2차원("2d") 캡처 이미지를 기반으로 하는 가상 현실 콘텐츠를 렌더링하기 위한 방법 및 시스템

Country Status (6)

Country Link
US (2) US10417810B2 (ko)
EP (1) EP3631766A1 (ko)
JP (1) JP7289796B2 (ko)
KR (1) KR102560187B1 (ko)
CN (1) CN110709892B (ko)
WO (1) WO2018222495A1 (ko)

Families Citing this family (51)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20180357819A1 (en) * 2017-06-13 2018-12-13 Fotonation Limited Method for generating a set of annotated images
US11004264B2 (en) 2017-08-07 2021-05-11 Verizon Patent And Licensing Inc. Systems and methods for capturing, transferring, and rendering viewpoint-adaptive three-dimensional (3D) personas
US11095854B2 (en) * 2017-08-07 2021-08-17 Verizon Patent And Licensing Inc. Viewpoint-adaptive three-dimensional (3D) personas
CN110998669B (zh) * 2017-08-08 2023-12-08 索尼公司 图像处理装置和方法
US10735707B2 (en) * 2017-08-15 2020-08-04 International Business Machines Corporation Generating three-dimensional imagery
CN111264058B (zh) * 2017-09-15 2024-06-14 交互数字Vc控股公司 用于对三自由度和体积兼容视频流进行编码和解码的方法、设备
US11270523B2 (en) 2017-11-29 2022-03-08 Sdc U.S. Smilepay Spv Systems and methods for constructing a three-dimensional model from two-dimensional images
US10109114B1 (en) 2017-11-29 2018-10-23 SmileDirectClub LLC Technologies for merging three-dimensional models of dental impressions
US11403813B2 (en) 2019-11-26 2022-08-02 Sdc U.S. Smilepay Spv Systems and methods for constructing a three-dimensional model from two-dimensional images
US10861250B2 (en) * 2017-11-29 2020-12-08 Sdc U.S. Smilepay Spv Technologies for merging three-dimensional models of dental impressions
EP3515066A1 (en) * 2018-01-19 2019-07-24 Thomson Licensing A method and apparatus for encoding and decoding three-dimensional scenes in and from a data stream
EP3515068A1 (en) 2018-01-19 2019-07-24 Thomson Licensing A method and apparatus for encoding and decoding three-dimensional scenes in and from a data stream
EP3756163B1 (en) * 2018-02-23 2022-06-01 Sony Group Corporation Methods, devices, and computer program products for gradient based depth reconstructions with robust statistics
US10510178B2 (en) * 2018-02-27 2019-12-17 Verizon Patent And Licensing Inc. Methods and systems for volumetric reconstruction based on a confidence field
US10950043B1 (en) * 2018-04-03 2021-03-16 A9.Com, Inc. Rendering three-dimensional models on mobile devices
JP7187182B2 (ja) * 2018-06-11 2022-12-12 キヤノン株式会社 データ生成装置、方法およびプログラム
WO2020013977A1 (en) * 2018-07-13 2020-01-16 Interdigital Vc Holdings, Inc. Methods and devices for encoding and decoding three degrees of freedom and volumetric compatible video stream
US11681834B2 (en) 2019-01-30 2023-06-20 Augmntr, Inc. Test cell presence system and methods of visualizing a test environment
WO2020161540A1 (en) * 2019-02-05 2020-08-13 Artec Europe S.A R.L. Generation of texture models using a moveable scanner
JP7378960B2 (ja) * 2019-05-14 2023-11-14 キヤノン株式会社 画像処理装置、画像処理システム、画像生成方法、および、プログラム
US12056820B2 (en) 2019-05-17 2024-08-06 Sdc U.S. Smilepay Spv Three-dimensional modeling toolkit
US11030801B2 (en) 2019-05-17 2021-06-08 Standard Cyborg, Inc. Three-dimensional modeling toolkit
WO2020242047A1 (en) * 2019-05-30 2020-12-03 Samsung Electronics Co., Ltd. Method and apparatus for acquiring virtual object data in augmented reality
US10922884B2 (en) * 2019-07-18 2021-02-16 Sony Corporation Shape-refinement of triangular three-dimensional mesh using a modified shape from shading (SFS) scheme
CN112396686B (zh) * 2019-07-31 2024-08-06 富联精密电子(天津)有限公司 三维场景工程模拟与实景融合系统及方法
US11977725B2 (en) * 2019-08-07 2024-05-07 Human Mode, LLC Authoring system for interactive virtual reality environments
KR20210030147A (ko) * 2019-09-09 2021-03-17 삼성전자주식회사 3d 렌더링 방법 및 장치
US10943038B1 (en) 2019-10-07 2021-03-09 Procore Technologies, Inc. Dynamic adjustment of cross-sectional views
US11501040B2 (en) 2019-10-07 2022-11-15 Procore Technologies, Inc. Dynamic dimensioning indicators
US10950046B1 (en) 2019-10-07 2021-03-16 Procore Technologies, Inc. Generating two-dimensional views with gridline information
US11297116B2 (en) * 2019-12-04 2022-04-05 Roblox Corporation Hybrid streaming
NO346115B1 (en) 2019-12-20 2022-02-28 Novotech As 3D rendering
WO2021140433A2 (en) * 2020-01-09 2021-07-15 Within Unlimited, Inc. Cloud-based production of high-quality virtual and augmented reality video of user activities
KR20210091571A (ko) * 2020-01-14 2021-07-22 엘지전자 주식회사 헤드 포즈를 추정하는 인공 지능 장치 및 그 방법
US11120522B2 (en) * 2020-02-03 2021-09-14 Sony Interactive Entertainment Inc. System and method for efficient multi-GPU rendering of geometry by subdividing geometry
JP7534444B2 (ja) 2020-05-29 2024-08-14 ナイキ イノベイト シーブイ キャプチャ画像の処理システム及び方法
KR102655908B1 (ko) 2020-07-07 2024-04-11 인하대학교 산학협력단 적층 가능한 라이트필드 기반 가상공간 구축 방법 및 장치
KR20220078298A (ko) * 2020-12-03 2022-06-10 삼성전자주식회사 적응적 증강 현실 스트리밍 제공 방법 및 이를 수행하는 장치
US20220245291A1 (en) * 2021-02-02 2022-08-04 Baya Inc. Apparatus, system and method for three-dimensional (3d) modeling with a plurality of linked metadata feeds
CN112862981B (zh) * 2021-02-05 2021-11-23 贝壳找房(北京)科技有限公司 用于呈现虚拟表示的方法和装置、计算机设备和存储介质
US12075018B2 (en) * 2021-04-21 2024-08-27 Microsoft Technology Licensing, Llc Distributed virtual reality
CN113096254B (zh) * 2021-04-23 2023-09-22 北京百度网讯科技有限公司 目标物渲染方法及装置、计算机设备和介质
KR20220153396A (ko) 2021-05-11 2022-11-18 삼성전자주식회사 Ar 원격 렌더링 프로세스를 위한 방법 및 장치
WO2023069363A1 (en) * 2021-10-19 2023-04-27 Within Unlimited, Inc. Virtual and augmented reality fitness training activity or games, systems, methods, and devices
CN114071104B (zh) * 2022-01-18 2022-04-19 山东捷瑞数字科技股份有限公司 基于着色器实现多投影机投影渐变融合的方法
KR102526683B1 (ko) * 2022-02-28 2023-05-02 한국가상현실 (주) 사용자의 요청에 기초하여 적응적으로 후처리를 수행하는 공간 이미지 처리 방법
KR102526677B1 (ko) * 2022-02-28 2023-05-02 한국가상현실 (주) 공간 특성에 기초하여 객체 속성을 변화시키는 공간 이미지 처리 방법
CN114666564B (zh) * 2022-03-23 2024-03-01 南京邮电大学 一种基于隐式神经场景表示进行虚拟视点图像合成的方法
CN115208935A (zh) * 2022-07-06 2022-10-18 中国电信股份有限公司 虚拟场景加载方法及装置、计算机可读介质和电子设备
CN115063520B (zh) * 2022-08-15 2022-11-29 武汉智景可视科技有限公司 基于三维gis的物联设备可视化渲染方法及系统
US20240236293A9 (en) * 2022-10-19 2024-07-11 Acer Incorporated Image processing method and virtual reality display system

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000137815A (ja) 1998-11-02 2000-05-16 Gen Tec:Kk 新視点画像生成方法
US8072470B2 (en) * 2003-05-29 2011-12-06 Sony Computer Entertainment Inc. System and method for providing a real-time three-dimensional interactive environment
US8654135B1 (en) * 2008-09-10 2014-02-18 Nvidia Corporation A-Buffer compression for different compression formats
US20130095920A1 (en) * 2011-10-13 2013-04-18 Microsoft Corporation Generating free viewpoint video using stereo imaging
US10089774B2 (en) * 2011-11-16 2018-10-02 Qualcomm Incorporated Tessellation in tile-based rendering
WO2013126784A2 (en) * 2012-02-23 2013-08-29 Huston Charles D System and method for creating an environment and for sharing a location based experience in an environment
US9811874B2 (en) * 2012-12-31 2017-11-07 Nvidia Corporation Frame times by dynamically adjusting frame buffer resolution
US9865074B2 (en) * 2014-04-05 2018-01-09 Sony Interactive Entertainment America Llc Method for efficient construction of high resolution display buffers
JP2016045266A (ja) 2014-08-21 2016-04-04 キヤノン株式会社 撮像装置
US11043033B2 (en) * 2016-11-21 2021-06-22 Sony Corporation Information processing device and information processing method capable of deciding objects arranged in virtual space generated based on real space

Also Published As

Publication number Publication date
EP3631766A1 (en) 2020-04-08
US20180350134A1 (en) 2018-12-06
CN110709892A (zh) 2020-01-17
CN110709892B (zh) 2023-08-11
US10417810B2 (en) 2019-09-17
US10867432B2 (en) 2020-12-15
WO2018222495A1 (en) 2018-12-06
JP2020522803A (ja) 2020-07-30
US20190385356A1 (en) 2019-12-19
JP7289796B2 (ja) 2023-06-12
KR20200012875A (ko) 2020-02-05

Similar Documents

Publication Publication Date Title
KR102560187B1 (ko) 3차원("3d") 장면의 2차원("2d") 캡처 이미지를 기반으로 하는 가상 현실 콘텐츠를 렌더링하기 위한 방법 및 시스템
US11087549B2 (en) Methods and apparatuses for dynamic navigable 360 degree environments
US11721071B2 (en) Methods and systems for producing content in multiple reality environments
CN111656407B (zh) 对动态三维模型的视图进行融合、纹理化和绘制
US10499033B2 (en) Apparatus, a method and a computer program for coding and rendering volumetric video
CN110351592B (zh) 动画呈现方法、装置、计算机设备和存储介质
US10636201B2 (en) Real-time rendering with compressed animated light fields
US10785513B2 (en) Methods and systems for using 2D captured imagery of a scene to provide media content
US20210012554A1 (en) Image processing
KR102499904B1 (ko) 가상 현실 미디어 콘텐트 내에 포함시키기 위해 실세계 장면의 맞춤화된 뷰의 가상화된 투영을 생성하기 위한 방법들 및 시스템들
US11006141B2 (en) Methods and systems for using atlas frames to process data representative of a scene
US20220353486A1 (en) Method and System for Encoding a 3D Scene
US20150326873A1 (en) Image frames multiplexing method and system
KR20200095408A (ko) 이머시브 비디오 포맷팅 방법 및 장치
US20240312140A1 (en) Split compute reprojection
US20220353530A1 (en) Method and System for Encoding a 3D Scene
WO2024155397A1 (en) Communication framework for virtual representation calls
WO2024040054A1 (en) Distributed generation of virtual content

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