KR20220163366A - 분할 렌더링에서의 폐색 핸들링을 위한 방법 및 장치 - Google Patents

분할 렌더링에서의 폐색 핸들링을 위한 방법 및 장치 Download PDF

Info

Publication number
KR20220163366A
KR20220163366A KR1020227031647A KR20227031647A KR20220163366A KR 20220163366 A KR20220163366 A KR 20220163366A KR 1020227031647 A KR1020227031647 A KR 1020227031647A KR 20227031647 A KR20227031647 A KR 20227031647A KR 20220163366 A KR20220163366 A KR 20220163366A
Authority
KR
South Korea
Prior art keywords
content
group
occludes
potentially
real
Prior art date
Application number
KR1020227031647A
Other languages
English (en)
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 KR20220163366A publication Critical patent/KR20220163366A/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
    • G06T15/205Image-based rendering
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T19/00Manipulating 3D models or images for computer graphics
    • G06T19/006Mixed reality
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/20Processor architectures; Processor configuration, e.g. pipelining
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/10Geometric effects
    • G06T15/40Hidden part removal
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/50Lighting effects
    • G06T15/503Blending, e.g. for anti-aliasing

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Graphics (AREA)
  • Geometry (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Computing Systems (AREA)
  • Processing Or Creating Images (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

본 개시는 그래픽스 프로세싱을 위한 방법 및 장치에 관한 것이다. 본 개시의 양태들은 장면에서 제 1 콘텐트 그룹 및 제 2 콘텐트 그룹을 식별할 수도 있다. 또한, 본 개시의 양태들은 제 1 콘텐트 그룹의 적어도 일부가 제 2 콘텐트 그룹의 적어도 일부를 폐색 또는 잠재적으로 폐색하는지 여부를 결정할 수도 있다. 부가적으로, 본 개시는 제 1 콘텐트 그룹의 적어도 일부가 제 2 콘텐트 그룹의 적어도 일부를 폐색 또는 잠재적으로 폐색하는지 여부의 결정에 기초하여 제 1 콘텐트 그룹 및 제 2 콘텐트 그룹을 표현할 수도 있다. 일부 양태들에서, 제 1 콘텐트 그룹은 적어도 일부 실제 콘텐트를 포함할 수도 있고, 제 2 콘텐트 그룹은 적어도 일부 증강 콘텐트를 포함할 수도 있다. 본 개시는 또한 폐색 재료를 사용하여 제 1 콘텐트 그룹의 표면들의 적어도 일부를 렌더링할 수도 있다.

Description

분할 렌더링에서의 폐색 핸들링을 위한 방법 및 장치
관련 출원(들)에 대한 상호 참조
본 출원은 "분할 렌더링에서의 폐색 핸들링 방법 및 장치"라는 제목으로 2020년 4월 3일에 출원된 미국 가출원 제63/005,164호, 및 "분할 렌더링에서의 폐색 핸들링 방법 및 장치"라는 제목으로 2020년 10월 1일에 출원된 미국 특허출원 제17/061,179호의 이익을 주장하며, 이는 이의 양수인에게 양도되고 본 명세서에서 참조에 의해 명시적으로 포함된다.
본 개시는 일반적으로 프로세싱 시스템에 관한 것으로, 더욱 상세하게는 그래픽스 프로세싱을 위한 하나 이상의 기술들에 관한 것이다.
컴퓨팅 디바이스는 디스플레이를 위한 그래픽 데이터의 렌더링을 가속화하기 위해 그래픽스 프로세싱 유닛 (GPU) 을 종종 활용한다. 이러한 컴퓨팅 디바이스는 예를 들어 컴퓨터 워크스테이션, 모바일 폰, 예컨대 이른바 스마트 폰, 임베딩된 시스템, 개인용 컴퓨터, 태블릿 컴퓨터 및 비디오 게임 콘솔을 포함할 수도 있다. GPU들은 그래픽스 프로세싱 커맨드들을 실행하고 프레임을 출력하도록 함께 동작하는 하나 이상의 프로세싱 스테이지들을 포함하는 그래픽스 프로세싱 파이프라인을 실행한다. 중앙 프로세싱 유닛 (CPU) 이 하나 이상의 그래픽스 프로세싱 커맨드들을 GPU 에 발행함으로써 GPU 의 동작을 제어할 수도 있다. 현대의 CPU들은 통상적으로 다중 애플리케이션들을 동시에 실행할 수 있으며, 그 각각은 실행 동안 GPU 를 활용해야 할 수도 있다. 디스플레이 상에 시각적 프리젠테이션을 위한 콘텐트를 제공하는 디바이스는 일반적으로 GPU 를 포함한다.
전형적으로, 디바이스의 GPU 는 그래픽스 프로세싱 파이프라인에서 프로세스들을 수행하도록 구성된다. 그러나, 무선 통신 및 더 작은 핸드헬드 디바이스들의 출현과 함께, 개선된 그래픽스 프로세싱에 대한 필요성이 증가하였다.
다음은 그러한 양태들의 기본적인 이해를 제공하기 위하여 하나 이상의 양태의 간략한 개요를 제시한다. 이 개요는 모든 고려된 양태들의 철저한 개관은 아니며, 모든 양태들의 핵심적인 엘리먼트들을 식별하지도 않고, 임의의 또는 모든 양태들의 범위를 묘사하지도 않도록 의도된 것이다. 그 유일한 목적은 이후에 제시되는 보다 상세한 설명에 대한 도입부로서 간략화된 형태로 하나 이상의 양태의 일부 개념들을 제시하는 것이다.
본 개시의 일 양태에서, 방법, 컴퓨터 판독가능 매체 (예컨대, 비일시적 판독가능한 컴퓨터 판독가능 매체), 및 장치가 제공된다. 장치는 서버, 클라이언트 디바이스, 중앙 프로세싱 유닛 (CPU), 그래픽스 프로세싱 유닛 (GPU), 또는 그래픽스 프로세싱을 수행할 수 있는 임의의 장치일 수 있다. 장치는 장면에서 제 1 콘텐트 그룹 및 제 2 콘텐트 그룹을 식별할 수도 있다. 장치는 또한 제 1 콘텐트 그룹의 적어도 일부가 제 2 콘텐트 그룹의 적어도 일부를 폐색 또는 잠재적으로 폐색하는지 여부를 결정할 수도 있다. 부가적으로, 장치는 제 1 콘텐트 그룹의 적어도 일부가 제 2 콘텐트 그룹의 적어도 일부를 폐색하는지 또는 잠재적으로 폐색하는지 여부의 결정에 기초하여 제 1 콘텐트 그룹 및 제 2 콘텐트 그룹을 표현할 수도 있다. 일부 양태들에서, 장치는 제 1 콘텐트 그룹의 적어도 일부가 제 2 콘텐트 그룹의 적어도 일부를 폐색할 때 폐색 재료를 사용하여 제 1 콘텐트 그룹의 하나 이상의 표면의 적어도 일부를 렌더링할 수도 있다. 장치는 또한 적어도 하나의 제 1 평면 방정식에 따라 적어도 하나의 제 1 빌보드를 생성할 수도 있고 적어도 하나의 제 2 평면 방정식에 따라 적어도 하나의 제 2 빌보드를 생성할 수도 있다. 장치는 또한 적어도 하나의 제 1 메시 및 제 1 셰이딩 텍스처, 및 적어도 하나의 제 2 메시 및 제 2 셰이딩 텍스처를 생성할 수도 있다. 또한, 장치는 제 1 콘텐트 그룹과 연관된 정보 및 제 2 콘텐트 그룹과 연관된 정보를 클라이언트 디바이스에 통신할 수도 있다.
다른 양태에서, 그래픽스 프로세싱 방법이, 장면에서 제 1 콘텐트 그룹 및 제 2 콘텐트 그룹을 식별하는 단계; 상기 제 1 콘텐트 그룹의 적어도 일부가 상기 제 2 콘텐트 그룹의 적어도 일부를 폐색 또는 잠재적으로 폐색하는지 여부를 결정하는 단계; 및 상기 제 1 콘텐트 그룹의 적어도 일부가 상기 제 2 콘텐트 그룹의 적어도 일부를 폐색 또는 잠재적으로 폐색하는지 여부의 결정에 기초하여 상기 제 1 콘텐트 그룹 및 상기 제 2 콘텐트 그룹을 표현하는 단계를 포함한다.
추가적인 예에 있어서, 트랜시버, 명령들을 저장하도록 구성된 메모리, 및 트랜시버 및 메모리와 통신가능하게 커플링된 하나 이상의 프로세서들을 포함하는, 무선 통신을 위한 장치가 제공된다. 양태는 장면에서 제 1 콘텐트 그룹 및 제 2 콘텐트 그룹을 식별하고, 상기 제 1 콘텐트 그룹의 적어도 일부가 상기 제 2 콘텐트 그룹의 적어도 일부를 폐색 또는 잠재적으로 폐색하는지 여부를 결정하며, 그리고 상기 제 1 콘텐트 그룹의 적어도 일부가 상기 제 2 콘텐트 그룹의 적어도 일부를 폐색 또는 잠재적으로 폐색하는지 여부의 결정에 기초하여 상기 제 1 콘텐트 그룹 및 상기 제 2 콘텐트 그룹을 표현하도록 구성되는 하나 이상의 프로세서들을 포함할 수도 있다.
다른 양태에서, 장면에서 제 1 콘텐트 그룹 및 제 2 콘텐트 그룹을 식별하기 위한 수단; 상기 제 1 콘텐트 그룹의 적어도 일부가 상기 제 2 콘텐트 그룹의 적어도 일부를 폐색 또는 잠재적으로 폐색하는지 여부를 결정하기 위한 수단; 및 상기 제 1 콘텐트 그룹의 적어도 일부가 상기 제 2 콘텐트 그룹의 적어도 일부를 폐색 또는 잠재적으로 폐색하는지 여부의 결정에 기초하여 상기 제 1 콘텐트 그룹 및 상기 제 2 콘텐트 그룹을 표현하기 위한 수단을 포함하는 그래픽스 프로세싱을 위한 장치가 제공된다.
또 다른 양태에서, 그래픽스 프로세싱을 위한 하나 이상의 프로세서 실행 코드를 포함하는 비일시적 컴퓨터 판독가능 매체가 제공되며, 이 코드는 프로세서에 의해 실행될 때 상기 프로세서로 하여금, 장면에서 제 1 콘텐트 그룹 및 제 2 콘텐트 그룹을 식별하고; 상기 제 1 콘텐트 그룹의 적어도 일부가 상기 제 2 콘텐트 그룹의 적어도 일부를 폐색 또는 잠재적으로 폐색하는지 여부를 결정하며; 그리고 상기 제 1 콘텐트 그룹의 적어도 일부가 상기 제 2 콘텐트 그룹의 적어도 일부를 폐색 또는 잠재적으로 폐색하는지 여부의 결정에 기초하여 상기 제 1 콘텐트 그룹 및 상기 제 2 콘텐트 그룹을 표현하게 한다.
본 개시의 하나 이상의 예들의 상세들은 첨부 도면들 및 이하의 설명에 기술된다. 본 개시의 다른 특징들, 목적들 및 이점들은 상세한 설명 및 도면들, 및 청구항들로부터 명확해질 것이다.
도 1 은 본 개시의 하나 이상의 기술들에 따른 예시적인 콘텐트 생성 시스템을 도시하는 블록도이다.
도 2 는 본 개시의 하나 이상의 기술들에 따른 예시적인 이미지 또는 장면을 도시한다.
도 3 은 본 개시의 하나 이상의 기술들에 따른 깊이-정렬된 빌보드들의 일 예를 도시한다.
도 4a 는 본 개시의 하나 이상의 기술들에 따른 예시적인 셰이딩 아틀라스를 도시한다.
도 4b 는 본 개시의 하나 이상의 기술들에 따른 예시적인 셰이딩 아틀라스 조직을 도시한다.
도 5 는 본 개시의 하나 이상의 기술들에 따른 예시적인 이미지 또는 장면을 도시한다.
도 6 은 본 개시의 하나 이상의 기술들에 따른 예시적인 방법의 예시적인 플로우차트를 도시한다.
증강 현실 (AR) 시스템에서, 폐색을 정확하게 포착하는 것은 도전일 수 있다. 실세계 콘텐트가 증강 콘텐트를 폐색하는 때에 그러할 수 있다. 더욱이, 이는 레이턴시 문제가 있는 AR 시스템들에 대해 특히 사실일 수 있다. 실세계 콘텐트 및 증강 콘텐트의 정확한 폐색은 사용자가 더 현실적이고 몰입적인 AR 경험을 획득하는 것을 도울 수도 있다. 본 개시의 일부 양태들은 앞서 언급된 폐색하는 실세계 또는 증강 객체들에 대한 깊이 정보를 결정함으로써 이 객체들을 해결할 수도 있다. 예를 들어, 실세계 표면은 증강 목적을 위한 폐색기로서 취급될 수도 있고, 클라이언트 디바이스로 스트리밍되고 폐색 재료를 사용하여 클라이언트 상에 렌더링될 수도 있다. 폐색 재료 또는 널 디스플레이 값을 갖는 객체는 렌더링된 객체로 취급될 수도 있지만, 클라이언트 디스플레이에서는 보이지 않을 수도 있다. 따라서, 본 개시의 양태들은 실세계 폐색 객체들에 대한 값들을 결정하거나 렌더링하고, 이 객체들에 폐색 재료를 제공할 수도 있다. 일부 양태들에서, 이 폐색 재료들은, 예를 들어 빌보드에서와 같이 물리적으로 평평한 표면들의 컬러를 나타낼 수도 있다. 다른 양태들에서, 폐색 재료들은 메시, 예를 들어, 폐색기들로서 취급되는 실세계 객체들에 대응하는 메시들에 의해 설명되는 표면들에 할당될 수도 있다. 그렇게 함으로써, 메시 및/또는 폐색 객체에 관한 정보는 시간이 지남에 따라 점점 더 정밀해질 수도 있다. 따라서, 본 개시의 양태들은 분할 렌더링 시스템들에서 콘텐트를 폐색하는 정확도를 개선할 수도 있다.
시스템들, 장치들, 컴퓨터 프로그램 제품들, 및 방법들의 다양한 양태들이 첨부 도면들을 참조하여 이하에서 더 충분히 설명된다. 하지만, 본 개시는 많은 상이한 형태들로 구현될 수도 있고, 본 개시에 걸쳐 제시된 임의의 특정 구조 또는 기능으로 제한된다고 해석되어서는 안 된다. 오히려, 이 양태들은 본 개시가 철저하고 완전하게 되고 당업자에게 본 개시의 범위를 충분히 전달하도록 제공된다. 본 명세서에서의 교시들에 기초하여, 당업자는, 본 개시의 다른 양태들과 독립적으로 구현되든 또는 결합되든, 본 개시의 범위가 본 명세서에 개시된 시스템들, 장치들, 컴퓨터 프로그램 제품들 및 방법들의 임의의 양태를 커버하도록 의도된다는 것을 인식할 것이다. 예를 들어, 본 명세서에 기술된 임의의 수의 양태를 이용하여 장치가 구현될 수도 있거나 방법이 실시될 수도 있다. 추가로, 본 개시의 범위는 본 명세서에 제시된 본 개시의 다양한 양태들에 더하여 또는 그 이외의 다른 구조, 기능성, 또는 구조 및 기능성을 사용하여 실시되는 그러한 장치 또는 방법을 커버하도록 의도된다. 본 명세서에 개시된 임의의 양태는 청구항의 하나 이상의 엘리먼트들에 의해 구체화될 수도 있다.
다양한 양태들이 본 명세서에서 설명되지만, 이 양태들의 많은 변형들 및 치환들이 본 개시의 범위에 속한다. 본 개시의 양태들의 일부 잠재적인 이익들 및 이점들이 언급되지만, 본 개시의 범위는 특정 이익들, 사용들, 또는 목적들로 한정되도록 의도되지 않는다. 오히려, 본 개시의 양태들은 상이한 무선 기술들, 시스템 구성들, 네트워크들, 및 송신 프로토콜들에 광범위하게 적용가능한 것으로 의도되고, 이들 중 일부는 예로써 도면들에서 그리고 다음의 설명에서 예시된다. 상세한 설명 및 도면들은 제한적이기보다는 본 개시의 예시일 뿐이며, 본 개시의 범위는 첨부된 청구항들 및 그 등가물들에 의해 정의된다.
여러 개의 양태들이 다양한 장치 및 방법들을 참조하여 제시된다. 이들 장치 및 방법들은 다양한 블록들, 컴포넌트들, 회로들, 프로세스들, 알고리즘들 등 ("엘리먼트들" 로 총칭됨) 에 의해 다음의 상세한 설명에서 설명되고 첨부 도면들에 예시될 것이다. 이 엘리먼트들은 전자 하드웨어, 컴퓨터 소프트웨어, 또는 이들의 임의의 조합을 이용하여 구현될 수도 있다. 그러한 엘리먼트들이 하드웨어 또는 소프트웨어로 구현될지 여부는 전체 시스템에 부과된 특정 애플리케이션 및 설계 제약들에 의존한다.
예로써, 엘리먼트, 또는 엘리먼트의 임의의 부분, 또는 엘리먼트들의 임의의 조합은 하나 이상의 프로세서들 (또한 프로세싱 유닛들로 지칭될 수도 있음) 을 포함하는 "프로세싱 시스템" 으로서 구현될 수도 있다. 프로세서들의 예들은 마이크로프로세서들, 마이크로제어기들, 그래픽스 프로세싱 유닛들 (GPU들), 범용 GPU들 (GPGPU들), 중앙 프로세싱 유닛들 (CPU들), 애플리케이션 프로세서들, 디지털 신호 프로세서들 (DSP들), RISC (reduced instruction set computing) 프로세서들, SOC (Systems on a chip), 베이스밴드 프로세서들, ASIC들 (애플리케이션 specific integrated 회로s), 필드 프로그래밍가능 게이트 어레이들 (FPGA들), 프로그래밍가능 로직 디바이스들 (PLD들), 상태 머신들, 게이티드 로직, 이산 하드웨어 회로들, 및 본 개시 전반에 걸쳐 설명된 다양한 기능성을 수행하도록 구성된 다른 적합한 하드웨어를 포함한다. 프로세싱 시스템에서의 하나 이상의 프로세서들이 소프트웨어를 실행할 수도 있다. 소프트웨어는, 소프트웨어, 펌웨어, 미들웨어, 마이크로코드, 하드웨어 기술 언어, 또는 다른 것으로서 지칭되든 간에, 명령들, 명령 세트들, 코드, 코드 세그먼트들, 프로그램 코드, 프로그램들, 서브프로그램들, 소프트웨어 컴포넌트들, 애플리케이션들, 소프트웨어 애플리케이션들, 소프트웨어 패키지들, 루틴들, 서브루틴들, 오브젝트들, 실행가능물들, 실행 스레드들, 절차들, 함수들 등을 의미하는 것으로 폭넓게 해석될 수도 있다. 용어 애플리케이션은 소프트웨어를 지칭할 수도 있다. 본 명세서에서 설명된 바와 같이, 하나 이상의 기술은 하나 이상의 기능을 수행하도록 구성된 애플리케이션, 즉 소프트웨어를 지칭할 수도 있다. 그러한 예들에서, 애플리케이션은 메모리, 예를 들어, 프로세서의 온-칩 메모리, 시스템 메모리, 또는 임의의 다른 메모리에 저장될 수도 있다. 프로세서와 같은 본 명세서에 설명된 하드웨어는 애플리케이션을 실행하도록 구성될 수도 있다. 예를 들어, 애플리케이션은, 하드웨어에 의해 실행될 때, 하드웨어로 하여금 본 명세서에 설명된 하나 이상의 기술을 수행하게 하는 코드를 포함하는 것으로 설명될 수도 있다. 일 예로서, 하드웨어는 메모리로부터 코드에 액세스하고 메모리로부터 액세스된 코드를 실행하여 본 명세서에 설명된 하나 이상의 기술을 수행할 수도 있다. 일부 예들에서, 컴포넌트들은 본 개시에서 식별된다. 그러한 예들에서, 컴포넌트들은 하드웨어, 소프트웨어, 또는 이들의 조합일 수도 있다. 컴포넌트들은 별개의 컴포넌트들 또는 단일 컴포넌트의 서브-컴포넌트들일 수도 있다.
따라서, 본 명세서에서 설명된 하나 이상의 예에서, 설명된 기능들은 하드웨어, 소프트웨어, 또는 이들의 임의의 조합에서 구현될 수도 있다. 소프트웨어로 구현되는 경우, 기능들은 컴퓨터 판독가능 매체 상에 하나 이상의 명령들 또는 코드로서 저장되거나 또는 인코딩될 수도 있다. 컴퓨터 판독가능 매체는 컴퓨터 저장 매체를 포함한다. 저장 매체는 컴퓨터에 의해 액세스될 수도 있는 임의의 가용 매체일 수도 있다. 한정이 아닌 예시로서, 이러한 컴퓨터 판독가능 매체는 랜덤 액세스 메모리 (random-access 메모리; RAM), 판독 전용 메모리 (read-only 메모리; ROM), 전기적 소거가능 프로그램가능 ROM (electrically erasable programmable ROM; EEPROM), 광학 디스크 저장, 자기 디스크 저장, 다른 자기 저장 디바이스들, 전술한 타입의 컴퓨터 판독가능 매체들의 조합들, 또는 컴퓨터에 의해 액세스될 수도 있는 명령들 또는 데이터 구조들 형태로 컴퓨터 실행가능 코드를 저장하는데 사용될 수도 있는 임의의 다른 매체를 포함할 수도 있다.
일반적으로, 본 개시는 단일 디바이스 또는 다중 디바이스들에서 그래픽스 프로세싱 파이프라인을 갖고, 그래픽 콘텐트의 렌더링을 개선하고, 그리고/또는 프로세싱 유닛, 즉, GPU 와 같은 본 명세서에서 설명된 하나 이상의 기술들을 수행하도록 구성된 임의의 프로세싱 유닛의 로드를 감소시키기 위한 기술들을 설명한다. 예를 들어, 본 개시는 그래픽스 프로세싱을 이용하는 임의의 디바이스에서의 그래픽스 프로세싱을 위한 기술들을 설명한다. 다른 예시적인 이점들이 본 개시 전반에 걸쳐 설명된다.
본 명세서에서 사용되는 바와 같이, 용어 "콘텐트" 의 사례들은 "그래픽 콘텐트", "3D 그래픽 디자인의 제품들", 그들의 변환, 즉 "이미지들" 을 지칭할 수도 있고, 그 반대도 가능하다. 이는 용어가 형용사, 명사 또는 다른 품사로 사용되고 있는지 여부에 관계없이 사실이다. 일부 예들에서, 본 명세서에서 사용되는 바와 같이, 용어 "그래픽 콘텐트" 는 그래픽스 프로세싱 파이프라인의 하나 이상의 프로세스들에 의해 생성된 콘텐트를 지칭할 수도 있다. 일부 예들에서, 본 명세서에서 사용되는 바와 같이, 용어 "그래픽 콘텐트" 는 그래픽스 프로세싱을 수행하도록 구성된 프로세싱 유닛에 의해 생성된 콘텐트를 지칭할 수도 있다. 일부 예들에서, 본 명세서에서 사용되는 바와 같이, 용어 "그래픽 콘텐트" 는 그래픽스 프로세싱 유닛에 의해 생성된 콘텐트를 지칭할 수도 있다.
일부 예들에서, 본 명세서에서 사용되는 바와 같이, 용어 "디스플레이 콘텐트" 는 디스플레잉 프로세싱을 수행하도록 구성된 프로세싱 유닛에 의해 생성된 콘텐트를 지칭할 수도 있다. 일부 예들에서, 본 명세서에서 사용되는 바와 같이, 용어 "디스플레이 콘텐트" 는 디스플레이 프로세싱 유닛에 의해 생성된 콘텐트를 지칭할 수도 있다. 그래픽 콘텐트는 디스플레이 콘텐트가 되도록 프로세싱될 수도 있다. 예를 들어, 그래픽스 프로세싱 유닛은 프레임과 같은 그래픽 콘텐트를 버퍼 (프레임버퍼로 지칭될 수도 있음) 에 출력할 수도 있다. 디스플레이 프로세싱 유닛은 버퍼로부터 하나 이상의 프레임들과 같은 그래픽 콘텐트를 판독하고, 그에 대해 하나 이상의 디스플레이 프로세싱 기술들을 수행하여 디스플레이 콘텐트를 생성할 수도 있다. 예를 들어, 디스플레이 프로세싱 유닛은 프레임을 생성하기 위해 하나 이상의 렌더링된 계층에 합성을 수행하도록 구성될 수도 있다. 다른 예로서, 디스플레이 프로세싱 유닛은 둘 이상의 계층들을 함께 단일 프레임으로 구성, 블렌딩, 또는 그렇지 않으면 결합하도록 구성될 수도 있다. 디스플레이 프로세싱 유닛은 프레임에 스케일링, 예컨대 업스케일링 또는 다운스케일링을 수행하도록 구성될 수도 있다. 일부 예들에서, 프레임은 계층을 지칭할 수도 있다. 다른 예들에서, 프레임은 프레임을 형성하도록 이미 함께 블렌딩된 2 이상의 계층들을 지칭할 수도 있으며, 즉, 프레임은 2 이상의 계층들을 포함하고, 2 이상의 계층들을 포함하는 프레임이 후속하여 블렌딩될 수도 있다.
도 1 은 본 개시의 하나 이상의 기술들을 시행하도록 구성된 예시적인 시스템 (100) 을 나타내는 블록도이다. 시스템 (100) 은 디바이스 (104) 를 포함한다. 디바이스 (104) 는 본 명세서에 설명된 다양한 기능들을 수행하기 위한 하나 이상의 컴포넌트들 또는 회로들을 포함할 수도 있다. 일부 예들에서, 디바이스 (104) 의 하나 이상의 컴포넌트들은 SOC 의 컴포넌트들일 수도 있다. 디바이스 (104) 는 본 개시의 하나 이상의 기술들을 수행하도록 구성된 하나 이상의 컴포넌트들을 포함할 수도 있다. 도시된 예에서, 디바이스 (104) 는 프로세싱 유닛 (120), 콘텐트 인코더/디코더 (122), 및 시스템 메모리 (124) 를 포함할 수도 있다. 일부 양태들에서, 디바이스 (104) 는 다수의 선택적 컴포넌트들, 예를 들어, 통신 인터페이스 (126), 트랜시버 (132), 수신기 (128), 송신기 (130), 디스플레이 프로세서 (127), 및 하나 이상의 디스플레이들 (131) 을 포함할 수도 있다. 디스플레이 (131) 에 대한 언급은 하나 이상의 디스플레이 (131) 를 지칭할 수도 있다. 예를 들어, 디스플레이 (131) 는 단일 디스플레이 또는 다중 디스플레이들을 포함할 수도 있다. 디스플레이 (131) 는 제 1 디스플레이 및 제 2 디스플레이를 포함할 수도 있다. 제 1 디스플레이는 좌안 디스플레이이고, 제 2 디스플레이는 우안 디스플레이일 수도 있다. 일부 예들에서, 제 1 및 제 2 디스플레이는 그 표면에서의 제시를 위해 상이한 프레임들을 수신할 수도 있다. 다른 예들에서, 제 1 및 제 2 디스플레이는 그 표면에서의 제시를 위해 동일한 프레임들을 수신할 수도 있다. 추가 예들에서, 그래픽스 프로세싱의 결과들은 디바이스 상에 디스플레이되지 않을 수도 있고, 예를 들어, 제 1 및 제 2 디스플레이는 그 표면에서의 제시를 위한 임의의 프레임들을 수신하지 않을 수도 있다. 대신에, 프레임들 또는 그래픽스 프로세싱 결과들이 다른 디바이스로 이송될 수도 있다. 일부 양태들에서, 이는 분할 렌더링으로 지칭될 수도 있다.
프로세싱 디바이스 (120) 는 내부 메모리 (121) 를 포함할 수도 있다. 프로세싱 유닛 (120) 은 그래픽스 프로세싱 파이프라인 (107) 에서와 같이 그래픽스 프로세싱을 수행하도록 구성될 수도 있다. 콘텐트 인코더/디코더 (122) 는 내부 메모리 (123) 를 포함할 수도 있다. 일부 예들에서, 디바이스 (104) 는 하나 이상의 디스플레이들 (131) 에 의한 제시 전에 프로세싱 유닛 (120) 에 의해 생성된 하나 이상의 프레임들에 대해 하나 이상의 디스플레이 프로세싱 기술들을 수행하기 위해 디스플레이 프로세서 (127) 와 같은 디스플레이 프로세서를 포함할 수도 있다. 디스플레이 프로세서 (127) 는 디스플레이 프로세싱을 수행하도록 구성될 수도 있다. 예를 들어, 디스플레이 프로세서 (127) 는 프로세싱 유닛 (120) 에 의해 생성된 하나 이상의 프레임에 대해 하나 이상의 디스플레이 프로세싱 기술을 수행하도록 구성될 수도 있다. 하나 이상의 디스플레이들 (131) 은 디스플레이 프로세서 (127) 에 의해 프로세싱된 프레임들을 디스플레이하거나 그렇지 않으면 제시하도록 구성될 수도 있다. 일부 예들에서, 하나 이상의 디스플레이들 (131) 은 액정 디스플레이 (LCD), 플라즈마 디스플레이, 유기 발광 다이오드 (OLED) 디스플레이, 프로젝션 디스플레이 디바이스, 증강 현실 디스플레이 디바이스, 가상 현실 디스플레이 디바이스, 헤드 마운티드 디스플레이, 또는 임의의 다른 타입의 디스플레이 디바이스 중 하나 이상을 포함할 수도 있다.
시스템 메모리 (124) 와 같은, 프로세싱 유닛 (120) 및 콘텐트 인코더/디코더 (122) 외부의 메모리는 프로세싱 유닛 (120) 및 콘텐트 인코더/디코더 (122) 에 액세스 가능할 수도 있다. 예를 들어, 프로세싱 유닛 (120) 및 콘텐트 인코더/디코더 (122) 는 시스템 메모리 (124) 와 같은 외부 메모리로부터 판독 및/또는 그에 기록하도록 구성될 수도 있다. 프로세싱 유닛 (120) 및 콘텐트 인코더/디코더 (122) 는 버스를 통해 시스템 메모리 (124) 에 통신가능하게 커플링될 수도 있다. 일부 예들에서, 프로세싱 유닛 (120) 및 콘텐트 인코더/디코더 (122) 는 버스 또는 상이한 접속을 통해 서로 통신가능하게 커플링될 수도 있다.
콘텐트 인코더/디코더 (122) 는 시스템 메모리 (124) 및/또는 통신 인터페이스 (126) 와 같은 임의의 소스로부터 그래픽 콘텐트를 수신하도록 구성될 수도 있다. 시스템 메모리 (124) 는 수신된 인코딩된 또는 디코딩된 그래픽 콘텐트를 저장하도록 구성될 수도 있다. 콘텐트 인코더/디코더 (122) 는 예를 들어, 시스템 메모리 (124) 및/또는 통신 인터페이스 (126) 로부터 인코딩된 또는 디코딩된 그래픽 콘텐트를 인코딩된 픽셀 데이터의 형태로 수신하도록 구성될 수도 있다. 콘텐트 인코더/디코더 (122) 는 임의의 그래픽 콘텐트를 인코딩 또는 디코딩하도록 구성될 수도 있다.
내부 메모리 (121) 또는 시스템 메모리 (124) 는 하나 이상의 휘발성 또는 비휘발성 메모리 또는 저장 디바이스를 포함할 수도 있다. 일부 예들에서, 내부 메모리 (121) 또는 시스템 메모리 (124) 는 RAM, SRAM, DRAM, EPROM (erasable programmable ROM), EEPROM (electrically erasable programmable ROM), 플래시 메모리, 자기 데이터 매체 또는 광학 저장 매체, 또는 임의의 다른 타입의 메모리를 포함할 수도 있다.
내부 메모리 (121) 또는 시스템 메모리 (124) 는 일부 예들에 따른 비일시적 저장 매체일 수도 있다. 용어 "비일시적" 은, 저장 매체가 캐리어파 또는 전파 신호에서 구현되지 않는다는 것을 나타낼 수도 있다. 그러나, 용어 "비일시적" 은 내부 메모리 (121) 또는 시스템 메모리 (124) 가 이동가능하지 않거나 또는 그 콘텐트들이 정적임을 의미하는 것으로 해석되어서는 안 된다. 일 예로서, 시스템 메모리 (124) 는 디바이스 (104) 로부터 제거될 수도 있고, 다른 디바이스로 이동될 수도 있다. 다른 예로서, 시스템 메모리 (124) 는 디바이스 (104) 로부터 제거 가능하지 않을 수도 있다.
프로세싱 유닛 (120) 은 중앙 프로세싱 유닛 (CPU), 그래픽스 프로세싱 유닛 (GPU), 범용 GPU (GPGPU), 또는 그래픽스 프로세싱을 수행하도록 구성될 수 있는 임의의 다른 프로세싱 유닛일 수도 있다. 일부 예들에서, 프로세싱 유닛 (120) 은 디바이스 (104) 의 마더보드에 통합될 수도 있다. 일부 예들에서, 프로세싱 유닛 (120) 은 디바이스 (104) 의 마더보드에서의 포트에 설치되는 그래픽 카드 상에 존재할 수도 있거나 그렇지 않으면 디바이스 (104) 와 상호동작하도록 구성된 주변 디바이스에 통합될 수도 있다. 프로세싱 유닛 (120) 은 하나 이상의 마이크로프로세서들, GPU들, ASIC들 (application specific integrated circuits), 필드 프로그래밍가능 로직 어레이들 (FPGA들), ALU들 (arithmetic logic units), 디지털 신호 프로세서들 (DSP들), 이산 로직, 소프트웨어, 하드웨어, 펌웨어, 다른 등가의 집적 또는 이산 로직 회로부, 또는 이들의 임의의 조합과 같은 하나 이상의 프로세서들을 포함할 수도 있다. 기술들이 소프트웨어에서 부분적으로 구현되면, 프로세싱 유닛 (120) 은 적합한 비일시적인 컴퓨터 판독가능 저장 매체, 예컨대 내부 메모리 (121) 에 소프트웨어에 대한 명령들을 저장할 수도 있으며, 본 개시의 기술들을 수행하기 위해 하나 이상의 프로세서들을 사용하여 하드웨어에서 명령들을 실행할 수도 있다. 하드웨어, 소프트웨어, 하드웨어와 소프트웨어의 조합 등을 포함하는 임의의 전술한 바가 하나 이상의 프로세서인 것으로 고려될 수도 있다.
콘텐트 인코더/디코더 (122) 는 콘텐트 디코딩을 수행하도록 구성된 임의의 프로세싱 유닛일 수도 있다. 일부 예들에서, 콘텐트 인코더/디코더 (122) 는 디바이스 (104) 의 마더보드에 통합될 수도 있다. 콘텐트 인코더/디코더 (122) 는 하나 이상의 마이크로프로세서들, ASIC들 (application specific integrated circuits), 필드 프로그래밍가능 로직 어레이들 (FPGA들), ALU들 (arithmetic logic units), 디지털 신호 프로세서들 (DSP들), 비디오 프로세서들, 이산 로직, 소프트웨어, 하드웨어, 펌웨어, 다른 등가의 집적 또는 이산 로직 회로부, 또는 이들의 임의의 조합과 같은 하나 이상의 프로세서들을 포함할 수도 있다. 기술들이 소프트웨어에서 부분적으로 구현되면, 콘텐트 인코더/디코더 (122) 는 적합한 비일시적인 컴퓨터 판독가능 저장 매체, 예컨대 내부 메모리 (123) 에 소프트웨어에 대한 명령들을 저장할 수도 있으며, 본 개시의 기술들을 수행하기 위해 하나 이상의 프로세서들을 사용하여 하드웨어에서 명령들을 실행할 수도 있다. 하드웨어, 소프트웨어, 하드웨어와 소프트웨어의 조합 등을 포함하는 임의의 전술한 바가 하나 이상의 프로세서인 것으로 고려될 수도 있다.
일부 양태들에서, 시스템 (100) 은 선택적인 통신 인터페이스 (126) 를 포함할 수도 있다. 통신 인터페이스 (126) 는 수신기 (128) 및 송신기 (130) 를 포함할 수도 있다. 수신기 (128) 는 디바이스 (104) 에 대해 본 명세서에서 설명된 임의의 수신 기능을 수행하도록 구성될 수도 있다. 추가적으로, 수신기 (128) 는 다른 디바이스로부터 정보, 예를 들어, 눈 또는 머리 위치 정보, 렌더링 커맨드들, 또는 위치 정보를 수신하도록 구성될 수도 있다. 송신기 (130) 는 디바이스 (104) 에 대해 본 명세서에서 설명된 임의의 송신 기능을 수행하도록 구성될 수도 있다. 예를 들어, 송신기 (130) 는 콘텐트에 대한 요청을 포함할 수도 있는 정보를 다른 디바이스에 송신하도록 구성될 수도 있다. 수신기 (128) 및 송신기 (130) 는 트랜시버 (132) 로 결합될 수도 있다. 그러한 예들에서, 트랜시버 (132) 는 디바이스 (104) 에 대해 본 명세서에서 설명된 임의의 수신 기능 및/또는 송신 기능을 수행하도록 구성될 수도 있다.
다시 도 1 을 참조하면, 특정 양태들에서, 그래픽스 프로세싱 파이프라인 (107) 은 장면에서 제 1 콘텐트 그룹 및 제 2 콘텐트 그룹을 식별하도록 구성된 결정 컴포넌트 (198) 를 포함할 수도 있다. 결정 컴포넌트 (198) 는 또한 제 1 콘텐트 그룹의 적어도 일부가 제 2 콘텐트 그룹의 적어도 일부를 폐색 또는 잠재적으로 폐색하는지 여부를 결정하도록 구성될 수도 있다. 결정 컴포넌트 (198) 는 또한, 제 1 콘텐트 그룹의 적어도 일부가 제 2 콘텐트 그룹의 적어도 일부를 폐색 또는 잠재적으로 폐색하는지 여부의 결정에 기초하여 제 1 콘텐트 그룹 및 제 2 콘텐트 그룹을 표현하도록 구성될 수도 있다. 결정 컴포넌트 (198) 는 또한 제 1 콘텐트 그룹의 적어도 일부가 제 2 콘텐트 그룹의 적어도 일부를 폐색할 때 폐색 재료를 사용하여 제 1 콘텐트 그룹의 하나 이상의 표면의 적어도 일부를 렌더링하도록 구성될 수도 있다. 결정 컴포넌트 (198) 는 또한 적어도 하나의 제 1 평면 방정식에 따라 적어도 하나의 제 1 빌보드를 그리고 적어도 하나의 제 2 평면 방정식에 따라 적어도 하나의 제 2 빌보드를 생성하도록 구성될 수도 있다. 결정 컴포넌트 (198) 는 또한 제 1 콘텐트 그룹과 연관된 정보 및 제 2 콘텐트 그룹과 연관된 정보를 클라이언트 디바이스에 통신하도록 구성될 수도 있다.
본 명세서에서 설명된 바와 같이, 디바이스 (104) 와 같은 디바이스는 본 명세서에서 설명된 하나 이상의 기술을 수행하도록 구성된 임의의 디바이스, 장치 또는 시스템을 지칭할 수도 있다. 예를 들어, 디바이스는 서버, 기지국, 사용자 장비, 클라이언트 디바이스, 스테이션, 액세스 포인트, 컴퓨터, 예를 들어, 개인용 컴퓨터, 데스크톱 컴퓨터, 랩톱 컴퓨터, 태블릿 컴퓨터, 컴퓨터 워크스테이션, 또는 메인프레임 컴퓨터, 최종 제품, 장치, 전화, 스마트폰, 서버, 비디오 게임 플랫폼 또는 콘솔, 핸드헬드 디바이스, 예를 들어, 휴대용 비디오 게임 디바이스 또는 PDA (personal digital assistant), 웨어러블 컴퓨팅 디바이스, 예를 들어, 스마트 워치, 증강 현실 디바이스, 또는 가상 현실 디바이스, 비-웨어러블 디바이스, 디스플레이 또는 디스플레이 디바이스, 텔레비전, 텔레비전 셋톱 박스, 중간 네트워크 디바이스, 디지털 미디어 플레이어, 비디오 스트리밍 디바이스, 콘텐트 스트리밍 디바이스, 차내 컴퓨터 (in-car computer), 임의의 모바일 디바이스, 그래픽 콘텐트를 생성하도록 구성된 임의의 디바이스, 또는 본 명세서에 설명된 하나 이상의 기술을 수행하도록 구성된 임의의 디바이스일 수 있다. 본 명세서의 프로세스들은 특정 컴포넌트 (예를 들어, GPU) 에 의해 수행되는 것으로 설명될 수도 있지만, 추가 실시형태들에서, 개시된 실시형태들과 모순이 없는, 다른 컴포넌트들 (예를 들어, CPU) 을 사용하여 수행될 수도 있다.
GPU들은 GPU 파이프라인에서 다중 타입들의 데이터 또는 데이터 패킷들을 프로세싱할 수도 있다. 예를 들어, 일부 양태들에서, GPU 는 2 가지 타입들의 데이터 또는 데이터 패킷들, 예를 들어, 컨텍스트 레지스터 패킷들 및 드로우 콜 데이터를 프로세싱할 수도 있다. 컨텍스트 레지스터 패킷은 그래픽스 컨텍스트가 어떻게 프로세싱될지를 조절할 수도 있는, 글로벌 상태 정보의 세트, 예를 들어, 글로벌 레지스터, 셰이딩 프로그램, 또는 상수 데이터에 관한 정보일 수도 있다. 예를 들어, 컨텍스트 레지스터 패킷들은 컬러 포맷에 관한 정보를 포함할 수도 있다. 컨텍스트 레지스터 패킷들의 일부 양태들에서, 어느 워크로드가 컨텍스트 레지스터에 속하는지를 표시하는 비트가 있을 수도 있다. 또한, 동시에 및/또는 병렬로 실행되는 다중 기능들 또는 프로그래밍이 있을 수도 있다. 예를 들어, 기능들 또는 프로그래밍은 특정 동작, 예를 들어, 컬러 모드 또는 컬러 포맷을 설명할 수도 있다. 따라서, 컨텍스트 레지스터는 GPU 의 다중 상태들을 정의할 수도 있다.
컨텍스트 상태들은 개별 프로세싱 유닛이 어떻게 기능하는지, 예를 들어, 정점 페처 (vertex fetcher; VFD), 정점 셰이더 (VS), 셰이더 프로세서, 또는 지오메트리 프로세서, 및/또는 프로세싱 유닛이 어떤 모드에서 기능하는지를 결정하는 데 이용될 수도 있다. 그렇게 하기 위해, GPU들은 컨텍스트 레지스터들 및 프로그래밍 데이터를 사용할 수도 있다. 일부 양태들에서, GPU 는 모드 또는 상태의 콘텍스트 레지스터 정의에 기초하여 파이프라인에서 워크로드, 예를 들어, 정점 또는 픽셀 워크로드를 생성할 수도 있다. 특정 프로세싱 유닛들, 예를 들어, VFD 는 특정 기능들, 예를 들어, 정점이 조립되는 방법을 결정하기 위해 이 상태들을 사용할 수도 있다. 이 모드들 또는 상태들이 변할 수도 있기 때문에, GPU들은 대응하는 콘텍스트를 변경할 필요가 있을 수도 있다. 또한, 모드 또는 상태에 대응하는 워크로드는 변화하는 모드 또는 상태를 뒤따를 수도 있다.
GPU는 다양한 상이한 방식으로 이미지들을 렌더링할 수도 있다. 일부 경우들에서, GPU들은 렌더링 또는 타일드 (tiled) 렌더링을 사용하여 이미지를 렌더링할 수도 있다. 타일드 렌더링 GPU들에서, 이미지는 상이한 섹션들 또는 타일들로 분할되거나 분리될 수도 있다. 이미지의 분할 후, 각각의 섹션 또는 타일은 개별적으로 렌더링될 수도 있다. 타일드 렌더링 GPU들은 컴퓨터 그래픽스 이미지들을 그리드 포맷으로 분할하여, 그리드의 각각의 부분, 즉 타일이 개별적으로 렌더링되도록 할 수도 있다. 일부 양태들에서, 비닝 패스 (binning pass) 동안, 이미지는 상이한 빈들 또는 타일들로 분할될 수도 있다. 또한, 비닝 패스에서, 상이한 프리미티브들은, 예를 들어, 드로우 콜들 (draw calls) 을 사용하여 특정 빈들에서 셰이딩될 수도 있다. 일부 양태들에서, 비닝 패스 동안, 가시적 프리미티브들 또는 드로우 콜들이 식별될 수도 있는 가시성 스트림이 구성될 수도 있다.
렌더링의 일부 양태들에서, 다중 프로세싱 페이즈들 또는 패스들이 존재할 수도 있다. 예를 들어, 렌더링은 예컨대 가시성 패스 및 렌더링 패스의 2 개의 패스로 수행될 수도 있다. 가시성 패스 동안, GPU 는 렌더링 워크로드를 입력하고, 프리미티브들 또는 삼각형들의 위치들을 기록하고, 이어서 어느 프리미티브들 또는 삼각형들이 프레임의 어느 부분에 속하는지를 결정할 수도 있다. 가시성 패스의 일부 양태들에서, GPU들은 또한 가시성 스트림에서 각각의 프리미티브 또는 삼각형의 가시성을 식별하거나 마킹할 수도 있다. 렌더링 패스 동안, GPU는 가시성 스트림을 입력하고 한 번에 프레임의 하나의 부분을 프로세싱할 수도 있다. 일부 양태들에서, 가시성 스트림은 어느 프리미티브들이 가시적인지 또는 가시적이지 않은지를 결정하기 위해 분석될 수도 있다. 이와 같이, 가시적인 프리미티브들이 프로세싱될 수도 있다. 그렇게 함으로써, GPU들은 가시적이지 않은 프리미티브들을 프로세싱 또는 렌더링하는 불필요한 워크로드를 감소시킬 수도 있다.
일부 양태들에서, 렌더링은, 예를 들어, 상이한 디바이스들 사이에서 렌더링 워크로드를 분할하기 위해, 다수의 위치들에서 및/또는 다수의 디바이스들 상에서 수행될 수도 있다. 예를 들어, 렌더링은 서버와 클라이언트 디바이스 사이에서 분할될 수도 있으며, 이는 "분할 렌더링" 으로 지칭될 수도 있다. 일부 경우들에서, 분할 렌더링은 사용자 디바이스들 또는 헤드 장착 디스플레이들 (HMD들) 에 콘텐트를 가져오기 위한 방법일 수도 있으며, 여기서 그래픽스 프로세싱의 일부는 디바이스 또는 HMD 의 외부에서, 예를 들어 서버에서 수행될 수도 있다.
분할 렌더링은 다수의 상이한 타입들의 애플리케이션들, 예를 들어, 가상 현실 (VR) 애플리케이션들, 증강 현실 (AR) 애플리케이션들, 클라우드 게이밍 및/또는 확장 현실 (XR) 애플리케이션들에 대해 수행될 수도 있다. VR 애플리케이션들에서, 사용자 디바이스에 디스플레이된 콘텐트는 인공 (man-made) 또는 애니메이션화된 (animated) 콘텐트, 예를 들어, 서버 또는 사용자 디바이스에서 렌더링된 콘텐트에 대응할 수도 있다. AR 또는 XR 콘텐트에서, 사용자 디바이스에 디스플레이된 콘텐트의 일부는 실세계 콘텐트, 예를 들어, 실세계의 객체들에 대응할 수도 있고, 콘텐트의 일부는 인공 또는 애니메이션화된 콘텐트일 수도 있다. 또한, 인공 또는 애니메이션화된 콘텐트 및 실세계 콘텐트는 광학 시스루 (optical see-through) 또는 비디오 시스루 (video see-through) 디바이스에 디스플레이되어, 사용자가 실세계 객체들과 인공 또는 애니메이션화된 콘텐트를 동시에 볼 수 있을 수도 있다. 일부 양태들에서, 인공 또는 애니메이션화된 콘텐트는 증강 콘텐트로 지칭될 수도 있거나, 그 반대일 수도 있다.
AR 애플리케이션들에서, 객체들은 사용자 디바이스의 유리한 지점으로부터 다른 객체들을 폐색할 수도 있다. AR 애플리케이션들 내에 상이한 타입들의 폐색들이 또한 존재할 수도 있다. 예를 들어, 증강 콘텐트는 실세계 콘텐트를 폐색할 수도 있고, 예를 들어, 렌더링된 객체가 실제 객체를 부분적으로 폐색할 수도 있다. 또한, 실세계 콘텐트는 증강 콘텐트를 폐색할 수도 있고, 예를 들어, 실제 객체가 렌더링된 객체를 부분적으로 폐색할 수도 있다. 상기한 폐색을 생성하는 실세계 콘텐트와 증강 콘텐트의 이러한 중첩은 증강 콘텐트와 실 계 콘텐트가 AR 내에서 매우 이음매없이 블렌딩될 수 있는 하나의 이유이다. 이는 또한 해결하기 어려운 증강 콘텐트 및 실세계 콘텐트 폐색들을 초래할 수도 있어서, 증강 및 실세계 콘텐트의 에지들이 부정확하게 중첩될 수도 있다.
일부 양태들에서, 증강 콘텐트 또는 증강들은 실세계 또는 시스루 콘텐트를 통해 렌더링될 수도 있다. 이와 같이, 증강들은 사용자 디바이스의 유리한 지점으로부터 증강 뒤에 있는 어떠한 객체도 폐색할 수도 있다. 예를 들어, 적색 (R), 녹색 (G), 청색 (B) (RGB) 값을 취하는 픽셀들이 실세계 객체들을 폐색하도록 렌더링될 수도 있다. 따라서, 증강은 증강 뒤의 실세계 객체들을 폐색할 수도 있다. 비디오 시스루 시스템들에서, 증강 계층을 전경에 합성함으로써 동일한 효과가 달성될 수도 있다. 이와 같이, 증강들은 실세계 콘텐트를 폐색할 수도 있거나, 그 반대일 수도 있다.
위에서 나타낸 바와 같이, AR 시스템을 이용할 때, 폐색을 정확하게 포착하는 것이 도전일 수 있다. 더욱이, 이는 레이턴시 문제가 있는 AR 시스템들에 대해 특히 사실일 수 있다. 일부 양태들에서, 증강 콘텐트를 폐색하고 있는 실세계 객체를 정확하게 포착하는 것이 특히 어려울 수 있다. 실세계 콘텐트 및 증강 콘텐트의 정확한 폐색은 사용자가 더 현실적이고 몰입적인 AR 경험을 획득하는 것을 도울 수도 있다.
도 2 는 본 개시의 하나 이상의 기술에 따른 예시적인 이미지 또는 장면 (200) 을 도시한다. 장면 (200) 은 증강 콘텐트 (210) 및 에지 (222) 를 포함하는 실세계 콘텐트 (220) 를 포함한다. 보다 구체적으로, 도 2 는 증강 콘텐트 (210), 예를 들어 사람을 폐색하는 실세계 객체 (220), 예를 들어 문을 디스플레이한다. 도 2 에 도시된 바와 같이, 증강 콘텐트 (210) 는, 실세계 객체 (220) 가 증강 콘텐트 (210) 를 완전히 폐색하도록 의도되더라도, 실세계 객체 (220) 의 에지 (222) 와 약간 중첩한다. 예를 들어, 문이 사람을 완전히 폐색한다고 여겨질 때, 사람의 일부가 문의의 에지에 약간 중첩한다.
위에서 나타낸 바와 같이, 도 2 는 AR 시스템에서 증강 콘텐트를 폐색하는 실세계 콘텐트의 효과를 정확하게 달성하는 것이 어려울 수도 있다는 것을 디스플레이한다. 도 2 에 도시된 바와 같이, AR 시스템들은 실세계 객체들이 증강 콘텐트를 폐색할 때를 정확하게 반영하기 어려울 수도 있고, 그 반대도 마찬가지이다. 실제로, 일부 AR 시스템들은 객체들이 실세계 콘텐트 및 증강 콘텐트일 때 두 객체들의 에지들을 빠르고 정확하게 프로세싱하는 데 어려움을 가질 수도 있다. 따라서, 실세계 콘텐트가 증강 콘텐트를 폐색하는 때를 정확하게 묘사할 필요가 있다.
증강 콘텐트를 폐색하는 실세계 콘텐트 또는 그 반대를 정확하게 시뮬레이션하기 위해, 실세계 폐색 객체의 지오메트리 정보가 결정될 수도 있다. 일부 경우들에서, 이는 컴퓨터 비전 기술들, 3차원 (3D) 재구성, 및/또는 메싱 (meshing) 의 조합에 의해 달성될 수도 있다. 일 예에서, 메싱은 클라이언트 디바이스 또는 HMD 에서 실시간으로 실행될 수도 있고, 재구성된 지오메트리는 서버 또는 클라우드 서버로 전송될 수도 있다. 다른 예에서, 클라이언트 디바이스 또는 HMD 는 이미지들을 시퀀스로 포착하고 이들을 서버로 송신할 수도 있고, 그 후, 서버는 실세계 장면에서 보이는 객체들에 관한 3D 메시 정보를 추출하기 위해 3D 재구성 및/또는 메싱 알고리즘들을 수행한다. 예를 들어, 일부 양태들에서, 실세계 3D 메시가 결정될 수도 있다. 따라서, 폐색 객체의 지오메트리는 클라이언트 디바이스 상에서 이용가능할 수도 있고 서버로 전송될 수도 있거나, 그 반대도 마찬가지이다. 이 지오메트리 표현은 동일한 실세계 객체 또는 객체들의 더 많은 관찰들이 이용 가능해짐에 따라 조정될 수도 있고 시간이 지남에 따라 더 정밀해질 수도 있다. 그렇게 함으로써, 메시 및/또는 폐색 객체에 관한 정보는 시간이 지남에 따라 점점 더 정밀해질 수도 있다.
일부 양태들에서, 증강 및 실세계 콘텐트의 정확한 묘사를 획득하기 위해, 증강 콘텐트는, 예를 들어, 실세계 콘텐트가 증강 콘텐트를 폐색하고 있다면, 실세계 콘텐트의 에지에서 정확하게 정지할 필요가 있을 수도 있다. 이와 같이, 증강 콘텐트를 폐색하고 있는 실세계 콘텐트는 렌더링되고 있지 않은 증강 콘텐트의 일부에 대응할 필요가 있을 수도 있다. 도 2 에 도시된 바와 같이, 오버레이된 증강 콘텐트 (210) 는 폐색하는 실제 콘텐트 (220) 의 에지에서 정지할 필요가 있을 수도 있다.
일부 경우들에서, 본 개시의 양태들은 폐색하는 실세계 콘텐트의 정확한 에지를 결정할 수 있다. 부가적으로, 실세계 콘텐트의 이러한 에지는 렌더링 시에 결정되거나 알려질 수도 있다. 그렇게 함으로써, 증강 콘텐트는 실세계 객체의 에지에서 정확하게 정지할 수 있고, 이는 AR 경험의 정확도를 개선할 수 있다.
일부 양태들에서, 전술된 에지 결정은 가시성 패스 동안, 예를 들어, 렌더링 엔진에서 해결될 수도 있다. 분할 AR 시스템들에서, 렌더링 엔진은 서버에 상주한다. 가시성 패스는 현재 카메라 포즈의 관점에서 모든 관련 메시들, 예를 들어, 실세계 및 증강 메시들 쌍방의 포즈를 고려할 수도 있고/있거나 실세계 지오메트리의 깊이뿐만 아니라 증강 콘텐트의 원하는 깊이/배치를 고려하여 현재 카메라 포즈로부터 어느 삼각형들이 가시적인지를 결정할 수도 있다. 본 개시의 양태들에서, 실세계 객체들의 메시들 상의 가시적 삼각형들은 폐색 재료들로서 렌더링되거나 폐색 메시지들을 통해, 예를 들어, (0,0,0) 값들로 표현될 수도 있고, 컴퓨터 그래픽스 객체들의 메시들 상의 가시적 삼각형들은 0 이 아닌 픽셀들, 즉 컬러로 렌더링될 수도 있다.
본 개시의 맥락에서, 용어 "카메라" 는 2 개의 별개의 엔티티들: 컴퓨터 그래픽스 카메라 (예를 들어, 그래픽스 렌더링 엔진 내의 카메라 객체) 또는 실세계 관찰자 (예를 들어, AR 디바이스를 착용한 사용자의 눈) 를 나타내기 위해 상호 교환적으로 사용될 수 있다. 현재 용도에 맞는 용어 카메라의 어떤 변형이든 카메라를 통해 "관찰되는" 콘텐트에 기초하여 결정될 수도 있고, 예를 들어, 실세계 콘텐트가 논의된다면, "카메라" 는 실세계 관찰자를 나타낼 수 있다. 또한, 그래픽스 렌더링 엔진 카메라의 포즈를 수정하기 위해 실세계 관찰자의 포즈가 사용될 수도 있기 때문에, XR 시스템들에서 2 개의 타입들의 카메라들 사이에 대응이 있을 수도 있다는 것에 유의한다. 또한, 본 개시에서 논의된 계산들은 컴퓨터 그래픽스 세계의 영역 내에서 실제 객체들 및 애니메이션화된 객체들을 결합할 수 있어서, 쌍방이 그래픽스 렌더링 엔진 내에서 표현될 수도 있다. 이것이 일어날 때, 용어 "카메라" 의 2 개의 개념은 컴퓨터 그래픽스 카메라에 대응하도록 병합될 수도 있다.
분할 XR, AR, 클라우드 게이밍 시스템들은 또한 렌더링된 콘텐트를 클라이언트 디스플레이에 전달할 때 레이턴시를 도입할 수도 있다. 일부 양태들에서, 이 레이턴시는 클라이언트 렌더링과 비교하여 서버 상에서 렌더링이 발생할 때 훨씬 더 높을 수도 있지만, 더 복잡한 XR 또는 AR 애플리케이션들을 또한 가능하게 할 수도 있다. 또한, 카메라 포즈가 계산되는 시간과 콘텐트가 클라이언트 디스플레이 상에 나타나는 시간 사이에 무시할 수 없는 레이턴시가 있을 수도 있다. 예를 들어, 특정 양의 레이턴시가 분할 XR, AR, 클라우드 게이밍 시스템들에 항상 존재할 수도 있다.
본 개시는 분할 XR, AR, 클라우드 게이밍 아키텍처들의 2 개의 양식들: 픽셀 스트리밍 (PS) 아키텍처 및 벡터 스트리밍 (VS) 아키텍처를 고려할 수도 있다. PS 시스템들에서, 콘텐트 레이턴시는 디스플레이 전에 클라이언트 상의 비동기 시간-워핑 (asynchronous time-warping) 의 변형을 사용하여 보상될 수도 있다. 일부 양태들에서, 분할 XR 시스템에서, 클라이언트로 스트리밍되는 PS 프레임들은 콘텐트를 렌더링하는 데 사용되는 뷰와 동일한 콘텐트를 디스플레이하기 위해 적시에 가장 최근의 뷰 사이의 뷰 변환에 기초하여 시간 워핑될 수도 있다. 예를 들어, 본 개시의 양태들은 시간 보상 재투영을 수행하여, 지연된 프레임들의 출현이 보상된 기간 동안 카메라가 이동한 카메라 위치 및 배향에서의 추정된 거리에 기초하여 결정될 수도 있다.
본 명세서에 설명된 분할/원격 렌더링 AR 시스템들에서의 폐색 핸들링을 위한 방법들은 스크린 공간에서 렌더링된 장면이 서버와 클라이언트 사이의 인터페이스의 일부일 수도 있는 시스템들에 특화된 기술들을 포함할 수도 있다. 이러한 시스템들은 픽셀 스트리밍 시스템들로 지칭될 수도 있다. 부가적으로, 본 개시는 최종 스크린-공간 렌더링이 클라이언트 상에서 발생할 수도 있는 시스템들에 특화된 기술들을 포함할 수도 있는 반면, 서버는 잠재적으로 가시적인 텍스처들의 객체 공간에서 관련 장면 지오메트리 및 포즈-의존적 셰이딩을 제공할 수도 있다. 이러한 시스템들은 벡터 스트리밍 시스템들로 지칭될 수도 있다. 이 두 기술에 대한 설명은 본 개시 전반에 걸쳐 분산될 수도 있다. 어떤 시스템이 설명되고 있는지를 결정하는 방법은 설명에서 인터페이스를 고려하는 것이다. 예를 들어, 픽셀 스트리밍 시스템들을 위한 인터페이스 (시그널링 매체) 는 빌보드들일 수도 있는 반면, 벡터 스트리밍 시스템들을 위한 인터페이스 (시그널링 매체) 는 셰이딩된 표면 텍스처들을 위한 메시들 또는 지오메트리 및 셰이딩 아틀라스들일 수도 있다.
일부 경우들에서, PS 클라이언트 상의 비동기 시간-워핑 (ATW) 은 렌더링된 콘텐트 또는 CGI 의 형상을 왜곡할 수도 있다. 예를 들어, ATW 는 본질적으로 평면 뷰 변환일 수 있는 반면, CGI 장면들에서의 대부분의 콘텐트는 사실상 평면이 아닐 수도 있고, 훨씬 더 적은 콘텐트 표면들이 문제의 평면들이 엄격하게 카메라-정렬되는 공통-평면 관계를 고수할 수도 있다. 일부 양태들에서, 증강의 일부가 서버 상에서 렌더링되고 그 다음 렌더링을 완료하기 위해 클라이언트로 전송되면, 렌더링된 증강은 시간 워핑을 겪을 수도 있다. 이러한 양태들에서, 임의의 실세계 객체들과 증강에만 적용된 시간 워핑 이후의 증강 사이에 정확한 폐색 경계를 유지하는 것이 어려울 수도 있다.
픽셀 스트리밍 아키텍처에서, 서버 또는 게임 엔진은 장면에 대한 픽셀 정보 또는 눈 버퍼 정보를 결정하고, 픽셀 정보를 클라이언트 디바이스에 전송할 수도 있다. 그 다음, 클라이언트 디바이스는 픽셀 정보에 기초하여 장면을 렌더링할 수도 있다. 일부 경우들에서, 이 픽셀 정보 또는 눈 버퍼 정보는 XR 카메라의 특정 포즈에 대응할 수도 있다.
일부 양태들에서, 그리고 분할 AR 시스템들에서, 증강 콘텐트에 대해 ATW 에 의해 수행된 재투영 동작은 또한 폐색 실세계 객체에 대해 증강 콘텐트의 에지를 시프트시킬 수도 있다. 예를 들어, 상기 도 2 에서, 약간 열린 문 (220) 은 사람 (210) 에 의해 부분적으로 절단된 것처럼 보인다. 또한, 부분적으로 약간 열린 문 (220) 과 폐색된 사람 (210) 사이에 갭이 있을 수도 있다.
벡터 스트리밍 시스템들에서, 서버는 증강 또는 CGI 표면들의 출현뿐만 아니라 이 증강 객체들의 지오메트리를 스트리밍할 수도 있다. 디바이스 프로세싱의 후반 스테이지들에서, 예를 들어, 정보를 디스플레이로 전송하기 전에, 클라이언트는 가시적인 증강 객체들의 지오메트리를 래스터화하고/하거나 스트리밍된 아틀라스들로부터의 대응하는 텍스처들을 래스터화된 다각형들로 텍스처-맵핑할 수도 있다. 사전-디스플레이 프로세싱의 이러한 변형은 본질적으로 긴 포즈-렌더링 레이턴시들이 없고, 증강 객체들의 형상을 왜곡시키지 않을 수도 있다. 본 개시의 대상인 시스템 수정과 결합된, 사전-디스플레이 프로세싱의 이러한 변형은 또한 전경 및 배경 콘텐트 사이의 정확한 경계를 보존할 수 있고, 따라서, 혼합 현실 장면의 정확한 묘사를 유지할 수 있다.
일부 양태들에서, 벡터 스트리밍 시스템들 내에서 전송되는 셰이딩 아틀라스 정보는 시간-진화 텍스처들로서 전송되고 비디오로서 인코딩될 수도 있다. 일부 양태들에서, 지오메트리 정보는 CGI 객체들의 메시들 또는 부분 메시들을 나타낼 수도 있고, 메시 압축 방법들을 사용하여 운송 또는 인코딩될 수도 있다. 클라이언트 디바이스는 서버 프레임을 렌더링하는데 사용된 헤드셋 포즈 T0 에 대응하는 셰이딩 아틀라스 정보 및 지오메트리 정보 쌍방을 수신할 수도 있고, 이 정보를 디코딩할 수도 있고, 가장 최근의 포즈 T1 를 이용하여 장면의 최종 눈 버퍼 표현들을 렌더링하는 데 이를 사용할 수 있다. 포즈 T1 는 포즈 T0 보다 훨씬 더 신선하고 더 최신일 수 있으므로, 그리고, 포즈 T1 에서 착수된 최종 렌더링 단계는 적절한 지오메트리 래스터이고 근사치가 아니므로, 설명된 시스템은 픽셀 스트리밍의 것보다 덜 레이턴시-제한될 수도 있다.
클라이언트는 가장 최근의 포즈 T1 을 사용하여 이 셰이딩 아틀라스 정보 및/또는 지오메트리 정보를 래스터화할 수도 있고, 즉, 이 정보를 디바이스 상에 디스플레이될 수도 있는 픽셀들로 변환할 수도 있다. 추가적으로, 일부 양태들에서, 서버는 클라이언트 디바이스 또는 HMD 로부터 스트리밍된 포즈를 수신하고, 그 후 이 수신된 포즈 T0 에 기초하여 가시성 및 셰이딩 계산들을 수행할 수도 있다. 가시성 계산은 어느 메시들 또는 메시들의 부분들이 클라이언트에 전송될 수 있는지에 영향을 미치고, 셰이딩 계산은 또한 클라이언트에 전송되는 현재 프레임에 대응하는 셰이딩 아틀라스를 포함할 수도 있다. 본 개시의 양태들은 또한 클라이언트 디바이스가 예를 들어 오프라인 장면 로딩 단계의 결과로서 이러한 메시들 또는 지오메트리에 관한 정보를 갖고, 따라서 지오메트리가 실시간으로 클라이언트에게 스트리밍될 필요가 없을 수도 있다고 가정할 수도 있다. 예를 들어, 서버는 예컨대 카메라의 유리한 지점 또는 장면의 다른 동적 요소들에 기초하여 변경될 수도 있는 객체 표면들 상의 셰이딩만을 계산하고 스트리밍할 수도 있고, 이 셰이딩 정보만이 실시간으로 클라이언트에게 스트리밍될 수도 있다.
일부 양태들에서, 픽셀 스트리밍 또는 벡터 스트리밍 아키텍처가 AR 애플리케이션들에 사용되는지 여부에 관계없이, 실세계 폐색 콘텐트 및 그것이 배경 증강들에 어떻게 영향을 미치는지에 관한 정보가 클라이언트에 시그널링될 수도 있다. 본 개시는 이러한 정보를 시그널링하고, 레이턴시 보상 전체에 걸쳐 폐색 에지 충실도를 보존하면서 클라이언트 동작들을 단순화할 수도 있다.
본 개시의 일부 양태들은 앞서 언급된 폐색 실세계 객체들에 대한 깊이 정보를 결정함으로써 픽셀 스트리밍 시스템들에서 이러한 객체들을 해결할 수도 있다. 예를 들어, 실세계 표면은 단지 표면 재료 타입으로서 폐색 재료를 사용하여 다른 혼합 현실 자산으로서 취급될 수도 있고, 클라이언트가 실세계와 증강 객체들 사이의 폐색 경계를 그의 이상적인 외관에 가깝게 보존할 목적으로 사전-디스플레이 프로세싱의 일부로서 그것을 통합하기 위해 실세계 자산의 일부 다른 속성들과 함께 클라이언트 디바이스로 스트리밍될 수도 있다. 폐색 재료를 갖는 객체는 분할 렌더링 클라이언트에 의해 다른 렌더링된 객체로서 취급될 수 있지만, 그의 표면 재료 타입으로 인해, 그것은 클라이언트 디스플레이에서 가시적이지 않을 수도 있고; 반대로, 사전-디스플레이 헤드셋 포즈 T1 으로부터 렌더링된 그의 실루엣은 배경에서 렌더링될 수도 있는 다른 증강된 객체들/자산들을 폐색하는 역할을 한다. 따라서, 본 개시의 양태들은 실세계 폐색 객체들에 대한 값들을 결정하거나 렌더링할 수도 있고, 이 객체들에 폐색 재료를 부착할 수도 있다. 실세계 폐색 객체들의 존재는, 폐색 재료 패치들에 대한 별개의 시그널링 메시지 타입을 포함하고 폐색 재료를 사용하여 렌더링될 패치들의 고유 패치 식별자들을 리스팅함으로써, 예를 들어 벡터 스트리밍 클라이언트에 시그널링될 수도 있다.
폐색 재료들을 사용하여 표현되는 실세계 콘텐트를 포함함으로써, 콘텐트 합성 디바이스는 포즈 T0 와 포즈 T1 사이의 분할 렌더링 시스템에 도입된 지연에 관계없이 증강 콘텐트를 폐색 실세계 객체의 에지에서 정확하게 정지시킬 수도 있다. 실제로, 증강이 폐색 실세계 객체와 중첩하는 것을 방지하기 위해, 본 개시는 폐색 재료를 사용하여 배경 애니메이션의 "위에" 전경 실세계 콘텐트를 렌더링할 수도 있으며, 이는 결국 실세계 콘텐트에 의해 폐색되어야 하는 애니메이션의 부분들을 효과적으로 마스킹할 수도 있다. 이와 같이, 본 개시는 애니메이션 계층과 유사하게, 실세계 콘텐트를 렌더링된 것으로 처리할 수도 있지만, AR 디바이스의 사용자는 "투명" 마스크를 통해 실세계 콘텐트를 실제로 보고 있기 때문에 이 렌더링된 콘텐트를 볼 수 없을 수도 있다. 클라이언트에서 폐색 재료를 사용하여 실제 객체 표면을 표현하는 목적은 사전-디스플레이 프로세싱 단계 동안 "마스크"; 시스루 (실세계) 콘텐트를 대응하는 픽셀들에서 가시적이게 할 수 있는 마스크로서 작용하는 것일 수도 있다. 이 개념은 실세계 전경 콘텐트와 애니메이션화된 배경 콘텐트 사이에 예리한 경계를 유지하는 것을 도울 수도 있다.
일부 양태들에서, 장면에 대한 픽셀 정보 또는 눈 버퍼 정보는 서버에서 결정되거나 렌더링될 수도 있고, 별개의 빌보드들 또는 계층들에서 클라이언트에 전송될 수도 있다. 예를 들어, 증강이 결정되거나 렌더링되어 하나의 빌보드 또는 계층에서 클라이언트에 전송될 수도 있고, 실세계 객체가 결정되어 다른 빌보드 또는 계층에서 전송될 수도 있다. 다른 양태들에서, 서버에서 생성되고 클라이언트에게 스트리밍되는 각각의 빌보드 또는 계층은 가장 최근의 카메라/헤드셋 포즈가 주어지면 카메라로부터 대략 동일한 거리 / "깊이" 에 나타나는 장면 자산들 (실세계 객체들 또는 애니메이션들) 의 디스조인트 평면 투영들을 포함할 수도 있다. 이러한 시스템들에서, 사전-디스플레이 프로세싱을 위해 PS 클라이언트로 전송되는 많은 (예를 들어, 12 개의) 상이한 빌보드들 또는 계층들이 있을 수 있다.
도 3 은 본 개시의 하나 이상의 기술들에 따른 예시적인 깊이-정렬된 빌보드들 (300) 을 도시한다. 빌보드들 (300) 은 빌보드들 또는 층들 (310, 320, 330, 340, 350) 을 포함한다. 전술한 바와 같이, 빌보드들 (310, 320, 330, 340, 350) 은 실세계 콘텐트 또는 증강 콘텐트와 같은 상이한 콘텐트를 나타낼 수도 있다. 또한, 도 3 은 픽셀 스트리밍 아키텍처에서 빌보드들 (310, 320, 330, 340, 350) 의 사용을 디스플레이한다.
일부 경우들에서, 실세계 콘텐트에 대한 상기한 폐색 재료들은 빌보드 또는 계층을 사용하여 묘사될 수도 있고, 증강 콘텐트는 다른 빌보드 또는 계층을 사용하여 묘사될 수도 있는 반면, 쌍방의 타입들의 계층들은 사전-디스플레이 프로세싱 동안 백-투-프론트 방식으로 클라이언트 상에 합성될 수도 있다. 그렇게 함으로써, 폐색 재료 실세계 콘텐트 및 증강 콘텐트는 별개의 빌보드들 또는 계층들에 대응할 수도 있다. 이들 빌보드들 또는 계층들은, AR 장면에서 실세계 및 애니메이션화된 콘텐트를, 예를 들어 그들의 평면 렌디션들을 통해, 근사화할 수도 있다.
일부 양태들에서, 클라이언트 디바이스에서의 AR 카메라가 이동할 때, 다양한 깊이 값들로 렌더링된 이러한 빌보드들 또는 계층들은 혼합 현실 장면에서 예상되는 폐색기/폐색 관계를 보존하는 것을 도울 수도 있다. 이와 같이, 하나 이상의 빌보드들 또는 계층들은 실세계 콘텐트에 대응할 수도 있고, 하나 이상의 다른 빌보드들 또는 계층들은 증강 콘텐트에 대응할 수도 있어서, 클라이언트 포즈가 콘텐트 렌더링의 포즈 T0 로부터 콘텐트 프리젠테이션의 포즈 T1 으로 이동할 때에도 실세계 와 증강 콘텐트 사이의 상대적 폐색들이 정확하게 유지될 수도 있다.
추가적으로, 빌보드들은 AR 카메라가 시간 조정될 때 장면의 다양한 부분들의 디스패리티/깊이 정보를 보존하는 것을 돕는 상이한 깊이들에서의 평면들에 대응할 수도 있다. 추가적으로, 빌보드들 상의 이러한 깊이 정보는, 백-투-프론트일 수도 있는 콘텐트 합성에 의해, 어떤 콘텐트, 예를 들어, 실세계 콘텐트 또는 증강 콘텐트가 다른 콘텐트를 폐색하고 있는지를 암시적으로 결정할 수도 있다. 또한, 실세계 객체들/표면들의 빌보드 또는 계층 표현은 둘 중 어느 것이 폐색기인지에 관계없이 실세계 콘텐트와 증강 콘텐트 사이의 에지 또는 분할의 정확도를 향상시킬 수도 있다.
일부 양태들에서, 혼합 현실 장면에서의 실세계 객체들은 객체들의 위치, 형상 및 크기뿐만 아니라 대응하는 표면들에 대한 폐색 재료들을 설명하는 메시/지오메트리로서 클라이언트 상에 표현될 수도 있다. 예를 들어, 실제 장면의 메시 표현은 서버에서 결정될 수도 있고, 폐색 재료들을 갖는 대응하는 지오메트리는 장면에 대한 렌더링을 수행하기 위해 클라이언트로 전송될 수도 있다. 더욱이, 이러한 메시 표현은 서버 및/또는 클라이언트에서 결정되거나 알려질 수도 있다. 클라이언트에서도 알 수 있다면, 실세계 콘텐트를 나타내는 데 필요한 정보가 서버에 의해 전송될 필요가 없다. 또한, 클라이언트 상에 실세계 메싱 능력을 갖는 것은 레이턴시 관점에서 그 이점들을 갖는다. 실세계 장면이 완전히 정적이 아니면 (움직이는 또는 변형가능한 객체들을 포함함), 세상을 메싱하고 메시 정보를 폐색 재료들로 래스터화하는 시스템에 포함된 레이턴시가 역할을 하기 시작할 수도 있다. 온-디바이스 메싱 능력 (on-device meshing capability) 을 갖는 클라이언트들은, 그들의 실세계 표현 컴포넌트가 더 낮은 레이턴시들을 초래하고, 따라서 실제 시스루 장면에 더 가깝게 대응하기 때문에 이점에 있을 수도 있다.
객체 렌더링 시, 서버는 여러 조각들의 정보를 필요로 할 수도 있다. 예를 들어, 서버는 실세계 폐색 객체들의 메시들 또는 모델들을 필요로 할 수도 있으며, 이는 그 후, 예를 들어 픽셀 스트리밍 시스템들에서 일련의 빌보드들 또는 임포스터들로 렌더링될 수도 있거나, 또는 예를 들어, 벡터 스트리밍 시스템들에서 셰이딩 아틀라스들로 베이킹된 널 표면들에 의해 수반되는 메시들로서 클라이언트에 송신될 수도 있다. 일부 양태들에서, 실세계 폐색기들의 스크린-공간 투영들을 포함하는 빌보드들은 대응하는 평면 파라미터들: 카메라로부터의 배향 및 거리 (깊이) 에 의해 특징지어질 수도 있다. 또한, 증강들 및 실세계 객체들을 포함하는 빌보드들 또는 계층들은, 예를 들어, 절두체 내에서 정확한 가시성 계산을 겪도록 렌더링될 수도 있거나, 또는 예를 들어, 절두체 약간 외부에 있거나 다른 객체들로부터의 폐색으로 인해 현재 관점으로부터 정확하게 보이지 않는 객체들의 스크린-공간 투영의 부분들을 포함하기 위해 적어도 부분적으로 오버-셰이딩될 수도 있다. 클라이언트 측에서, 빌보드들 또는 계층들은 백-투-프론트로 렌더링 또는 구성될 수도 있고, 깊이에 의해 순서화될 수도 있다.
네트워크 및 프로세싱 레이턴시에 의존하여, 환경 메싱은 전적으로 클라우드 상에서 (예를 들어, 업링크 데이터는 실시간 비디오 피드이고 IMU 데이터는 클라이언트 상에서 포착됨), 부분적으로 클라우드 상에서 그리고 부분적으로 클라이언트 상에서 (예를 들어, 업링크 데이터는 일부 키 프레임들, 수반하는 메타-데이터, 및 클라이언트 상에서 로컬로 추출된 다른 환경 디스크립터들을 포함할 수도 있음), 또는 전적으로 클라이언트 상에서 (예를 들어, 클라이언트는 일부 하이-레벨 메싱 속성들을 서버에 전송할 수도 있지만, 일반적으로 로컬로 메싱 속성들을 유지함) 행해질 수도 있다. 이러한 옵션들은 (클라이언트로부터 에지 서버 또는 클라우드로의) 컴퓨트 오프로드와 (최고로부터 중간으로의) 트래픽 요건들 사이에 다양한 균형을 제공할 수도 있다.
픽셀 스트리밍 시스템들의 일부 사례들에서, 증강들이 엄격한 가시성을 넘어 적어도 일부 오버-셰이딩을 갖는 빌보드들 상에 렌더링된다고 가정하고, 대부분의 객체들이 디스플레이 카메라에 너무 가깝지 않다면, 클라이언트 디스플레이에 실세계 폐색기들을 묘사하기 위한 방법은 폐색 경계들을 급격하게 왜곡함이 없이 일부 레이턴시 및 카메라 모션을 용인할 수도 있다. 또한, 렌더링에 사용된 헤드-포즈와 디스플레이 시의 헤드-포즈 사이의 클라이언트 상에 누적되는 상대 모션은 구성된 콘텐트의 품질에 영향을 미칠 수도 있다. 예를 들어, AR 카메라 움직임과 네트워크 레이턴시의 조합은 렌더링된 콘텐트의 정확도에 영향을 미칠 수도 있다.
픽셀 스트리밍 시스템들의 일부 경우들에서, 각각의 실제 및/또는 증강 객체는 별개의 빌보드 또는 계층을 이용할 수도 있다. 이는 서버 및 클라이언트 프로세싱을 복잡하게 할 수도 있고 다운링크 트래픽을 부풀릴 수도 있다. 본 개시의 일부 양태들에서, 서버는 증강 객체를 향해 절두체와 부분적으로 교차하고 카메라와 증강 사이에 있는 실세계 객체들을 식별하거나 태그 (tag) 할 수도 있다. 나머지 실세계 객체들은 다운링크 상에서 명시적으로 시그널링되지 않을 수도 있고, 따라서, 송신 대역폭 및 대응하는 클라이언트 프로세싱을 보존한다.
또한, 실세계 객체들을 설명하는 빌보드들 또는 임포스터들은 렌더링 포즈 T0 의 관점으로부터 이러한 객체들의 윤곽을 추적할 수도 있다. 일부 양태들에서, ATW 가 레이턴시 보상 수단으로서 클라이언트에 적용될 때, 실세계 폐색 객체들의 시그널링된 윤곽은 포즈 오프셋 T1 - T0 에 비례하여 조정되거나 "신장될" 수도 있고, 빌보드 렌더링을 위해 시그널링된 것과 비교하여 상이하거나 더 진보될 수도 있는 최신 관점으로부터의 폐색 객체 윤곽에 대응하지 않을 수도 있다. 이는 실세계 전경과 증강 배경 사이의 폐색 에지의 부자연스러운 외관을 초래할 수도 있다. 더욱이, 특정 조건들 하에서, 인지된 폐색 경계는 전경 객체에 대해 이동할 수도 있으며, 이는 또한 부자연스럽게 나타날 수도 있다.
이러한 단점들의 대부분은 벡터 스트리밍 시스템들에 대해 제안된 방법론에서 자연스럽게 해결될 수도 있다. 이러한 시스템들에서, 클라이언트는, 예를 들어 최신 클라이언트 포즈를 사용하여, 디스플레이 스크린 상에서 혼합 장면 객체들 - 애니메이션들 및 실세계 객체들 - 의 최종 래스터화를 수행한다. 래스터화가 원시 자산들의 3D 메시들/지오메트리를 입력들로서 사용할 수도 있기 때문에, 형상 왜곡 문제들 및/또는 왜곡된/움직이는 폐색 경계의 문제는, 실세계 및 증강 객체들에 대한 지오메트리 메시들이 클라이언트에 정확하게 제시되는 한, 존재하지 않을 수도 있다. 혼합 현실 장면에서 잠재적으로 가시적인 액터들의 메시들/지오메트리 이외에, 클라이언트는 또한 셰이딩 아틀라스에 패킹된 대응하는 셰이딩된 표면들을 수신할 수도 있다.
도 4a 는 본 개시의 하나 이상의 기술들에 따른 셰이딩 아틀라스 (400) 를 도시한다. 도 4a 에 도시된 바와 같이, 셰이딩 아틀라스 (400) 는 이미지 공간보다는 객체 공간에 있는 텍스처들을 저장하는 효율적인 방법을 예시한다. 도 4a 는 또한, 셰이딩 아틀라스 (400) 의 상이한 부분들이 예를 들어 카메라로부터의 거리에 따라 상이한 해상도로 셰이딩되고, 셰이딩 텍스처들이 더 많거나 더 적은 레벨의 상세로 묘사될 필요가 있다는 것을 보여준다. 또한, 셰이딩 아틀라스 (400) 의 어두운 회색 부분들, 예를 들어, 도 4a 의 맨 우측의 셰이드 (420) 는, 셰이딩 아틀라스 (400) 의 할당되지 않은 부분들을 나타낼 수도 있다. 일부 경우들에서, 셰이딩 아틀라스 (400) 는 높은 시간적 코히어런스에 기초하여 효율적으로 인코딩될 수도 있다. 예를 들어, 셰이딩 아틀라스 (400) 의 하나의 블록은 혼합 현실 세계에서 동일한 물리적 표면을 나타낼 수도 있다. 일부 양태들에서, 셰이딩 아틀라스 (400) 내의 블록들은, 그들이 잠재적으로 가시적이고 스크린 공간에서 유사한 영역을 점유하는 한, 동일한 위치에 유지될 수도 있다.
도 4b 는 본 개시의 하나 이상의 기술들에 따른 셰이딩 아틀라스 조직 (450) 을 도시한다. 도 4b 에 도시된 바와 같이, 셰이딩 아틀라스 (460) 는 수퍼블록들 (462) 을 포함하고, 각각의 수퍼블록은 칼럼들 (470) 을 포함한다. 특정 폭의 칼럼들은 동일한 수퍼블록에 할당될 수도 있으며, 여기서 칼럼들은 칼럼 폭 A 및 칼럼 폭 B 를 포함한다. 각각의 칼럼은 블록들 (480) 을 더 포함할 수도 있다. 일부 양태들에서, 셰이딩 아틀라스 조직 (450) 에 예시된 바와 같이, 칼럼 폭 A 는 칼럼 폭 B 의 값의 절반일 수도 있다. 도 4b 에 도시된 바와 같이, 큰 값들로부터 작은 값들로의 셰이딩 아틀라스 조직 (450) 은 블록들 (480) 로의 칼럼들 (470) 로의 수퍼블록들 (462) 일 수도 있다. 도 4b 는 블록들 (480) 이 어떻게 효율적으로 셰이딩 아틀라스 (460) 에 패킹되는지를 예시한다. 또한, 메모리 관리의 이러한 체계는, 블록들 (480) 로부터 셰이딩 아틀라스 (460) 내의 대응하는 위치들로의 맵핑을 결정할 때 광범위한 병렬화를 허용한다.
셰이딩 아틀라스의 메모리 조직은 다음과 같을 수 있다. 아틀라스는 (동일한 폭의) 칼럼들로 추가로 분할되는 수퍼블록들을 포함하고, 각각의 칼럼은 적층된 블록들을 포함한다. 블록들은 직사각형 형상 (정사각형은 특별한 경우임) 이며, 이들은 고정된 수의 삼각형들, 예를 들어 삼각형들 (490) 을 포함한다. 이것은 폭 B 의 칼럼들을 묘사하는 도 4b 의 부분에 도시되어 있고, 여기서 몇몇 블록들이 다수의 삼각형들, 예를 들어, 삼각형들 (490) 을 포함하고 있다. 예를 들어, 이 수는 1, 2 또는 3 일 수 있다. 일부 구현들에서, 3 개 초과의 삼각형들을 포함하는 블록 성상도들 (constellations) 이 또한 가능할 수도 있다. 삼각형-대-블록 할당은 자산 로딩 및 장면 전처리 동안 한 번 선택되고 (예를 들어, 오프라인으로 수행됨), 그 점을 넘어서 그것은 게임의 지속기간 동안 고정된 채로 유지된다. 일부 양태들에서, 삼각형-대-블록 맵핑 동작은 도 4b 에 도시된 바와 같이, 블록들의 온라인 메모리 조직으로부터 셰이딩 아틀라스들로 분리된다. 일 예에서, 하나의 블록에 할당된 삼각형들은 그들이 객체 메시 내의 이웃들이도록 선택될 수도 있고, 그들의 종횡비들은 선택된 블록 성상도에 "양립가능" 일 수도 있고, 그들의 크기들/영역들은 유사할 수도 있고, 그들의 표면 법선들은 유사할 수도 있다. 삼각형-대-블록 할당은 순전히 메시 속성들에 기초할 수도 있고, 따라서 객체 공간에서 그리고 이와 같이 게임이 시작되기 전에 행해질 수도 있다. 그와 반대로, 수퍼블록들에 대한 블록들의 할당은 시간이 지남에 따라 변화할 수도 있고, 스크린 공간에서 객체 외관과 단단히 커플링될 수도 있으며, 따라서 이는 카메라 위치 및 배향에 의존한다. 아틀라스에 블록이 나타날지 여부, 만약 그렇다면 어느 수퍼블록에 나타날지를 지시하는 몇 가지 요소들이 있다. 첫째, 블록은 잠재적으로 가시적인 세트의 일부가 되면 셰이딩 아틀라스로 개시된다. 이는 대략적으로 현재 위치 근처로 이동하는 카메라에 의해 일단 드러나면 블록이 처음으로 추가됨을 의미한다. 추가된 블록에 대한 초기 수퍼블록 할당은 스크린 공간에서의 블록 외관에 의존한다. 카메라에 더 가까운 블록들은 스크린 공간에서 더 크게 나타나고, 따라서 아틀라스 자산의 더 큰 부분을 할당받는다. 또한, 카메라 축에 대해 큰 입사각들로 나타나는 블록들은 비스듬하게 나타날 수도 있고, 따라서 높은 종횡비를 갖는 블록 (예를 들어, 스키니 직사각형) 에 의해 아틀라스에서 표현될 수도 있다. 카메라 모션에 따라, 스크린 공간의 삼각형 외관이 점진적으로 변화할 수도 있으며, 결과적으로 해당 블록의 크기 및 종횡비도 변화할 수도 있다. 칼럼 폭들이 2 의 거듭제곱들로 제한되는 셰이딩 아틀라스 조직의 경우들에서, 아틀라스에서 이용가능한 블록 사이즈들 및 종횡비들의 제한된 수가 있을 수도 있고, 따라서 하나의 칼럼-폭 수퍼블록으로부터 다른 수퍼블록으로의 블록의 스위칭은 시간적으로 매우 빈번하지 않거나 연속적이지 않을 수도 있다.
아틀라스 내에서 전술한 시간적 코히어런스를 보존하기 위해, 블록은, 일단 아틀라스에 추가되면, 일부 제약들에 따라 가능한 한 오랫동안 동일한 장소를 점유하도록 제한될 수도 있다. 그러나, 아틀라스 내의 그의 위치는 한번 변경될 수 있다: (i) 그의 스크린 공간 영역 및 종횡비가 현재 수퍼블록 칼럼 폭에 대해 점점 부적절해져서, 스위치가 필요하게 되거나, 또는 (ii) 블록이 연장된 기간 동안 잠재적으로 가시적인 세트에 있는 것을 중단한다. 이러한 상황들 둘 다에서, 문제의 블록은, 특히 경우 (ii) 에서, 아틀라스 내에서 이동되거나 완전히 제거될 수도 있다. 변경은 인코딩된 비트레이트의 일시적인 증가를 초래할 수도 있지만, 새로운 상태는 지속되는 반면 인코딩된 비트레이트를 전반적으로 낮출 수도 있다. 빠른 메모리 검색을 용이하게 하기 위해, 수평 및 수직 블록 크기들 둘 다는 2 의 거듭제곱들로서 유지된다. 예를 들어, 블록은 16 픽셀 높이 및 64 픽셀 폭일 수도 있다. 이 블록은 폭이 모두 64 픽셀인 블록들을 포함하는 수퍼블록에 할당될 것이다. 블록의 종횡비가 1:2 에 훨씬 더 가깝게 나타나도록 헤드셋 위치가 변화하고 크기가 약간 더 커지면, 블록은 그것의 현재 위치로부터 제거될 것이고, 그것은 높이에서 32 픽셀들 그리고 폭에서 64 픽셀들이 할당될 수도 있다. 이 경우, 폭 64 의 수퍼블록에 다시 할당될 수도 있지만, 그 위치를 변경할 필요가 있을 것이다.
벡터 스트리밍 클라이언트에 실세계 폐색기들에 관한 정보를 묘사하기 위한 제안된 방법에서, 다운링크에서 전송된 지오메트리의 나머지, 예를 들어, 애니메이션화된 객체들의 지오메트리에서와 같이 대응하는 메시들/지오메트리를 스트리밍하는 것이 제안된다. 결과적인 실세계 다각형들은 분할 렌더링 클라이언트가 폐색 재료 렌더링을 지원하는 시스템들에서 대응하는 폐색 재료 메시지들에 의해 수반될 필요가 있을 수도 있다. 폐색 재료 렌더링을 지원하지 않는 클라이언트들에서, 대응하는 다각형 표면들은 셰이딩 아틀라스에서 텍스처들로서 묘사될 필요가 있다. 위에서 언급된 바와 같이, 셰이딩 아틀라스로 렌더링되는 이들 텍스처들은 균일하게 흑색, (0,0,0) 값, 널 텍스처들일 수도 있는데, 이는 일부 경우들에서 증강 현실 디스플레이 상에 (0,0,0) 값을 렌더링하는 것이 대응하는 영역이 완전히 투명 또는 시스루로 취급되게 할 수도 있기 때문이다. 또한, 이들 특정 객체들에 대한 셰이딩된 텍스처들은 컬러가 균일할 수 있기 때문에, 그들의 해상도는 3D 장면에서 카메라에 더 가깝게 나타나는 다각형들이 더 높은 해상도의 텍스처들 - 즉, 셰이딩 아틀라스에서의 더 큰 직사각형들의 텍스처들에 의해 표현될 수도 있다는 종래의 제한들을 고수하지 않을 수도 있다. 즉, 혼합 현실 장면에서 실세계 객체들의 다각형 텍스처들은 균일한 널 텍스처들을 사용하여 셰이딩된 작은 직사각형들에 의해 표현될 수도 있다. 일부 양태들에서, 작은 직사각형들은 크기가 2 픽셀 x 2 픽셀일 수도 있고, 즉 각각의 차원에서 2 픽셀을 갖는 정사각형일 수도 있다.
또한, 클라이언트 상의 폐색 재료 렌더링을 지원하지 않는 일부 벡터 스트리밍 시스템들은 단일-컬러 메시지들로 지칭될 수도 있는 균일하게 채색된 다각형들을 설명하기 위한 특수 메시지 포맷을 지원할 수도 있다. 이들 메시지들은 셰이딩 아틀라스들에서 균일하게 흑색의 정사각형들을 명시적으로 셰이딩하는 대신에 전송될 수도 있고, 단일-컬러 메시지가 전송되고 있음을 표시하는 헤더, 이어서 동일한 컬러에 맵핑되고 있는 고유 표면 피스들의 수를 포함할 수도 있다. 메시지 본문은 균일한 색상을 설명할 수도 있으며, 이는 표면을 폐색하는 경우 (0,0,0) 흑색 색상이다. 이것 다음에, 설명된 색상을 취할 수도 있는 텍스처들 (패치들/삼각형들) 의 모든 부분들을 열거하는 것이 뒤따를 수도 있다. 이 열거는 고유 단위 표면 식별자를 사용하여 용이하게 된다. 예를 들어, 혼합 현실 장면에 존재하는 모든 패치들에는 고유 패치 ID 가 할당되고, 이들 패치 ID들은 단일-컬러 메시지들에 포함될 수도 있다. 이 송신 방식은 (0,0,0) 컬러 정보가 셰이딩 아틀라스에서 별개의 직사각형으로서 명시적으로 시그널링되는 방식보다 비트레이트, 메모리, 및/또는 레이턴시 관점에서 더 효율적일 수도 있다. 또한, 특정 표면들은 단일-컬러 메시지들을 사용하여 설명될 수도 있으며, 이는 그들을 셰이딩 아틀라스에서 명시적으로 렌더링하는 것에 대한 대안이다. 이러한 단일-컬러 메시지들은 비디오로부터 이들을 모두 단순히 제거함으로써 표준 비디오 압축을 사용하여 모든 균일한 색상의 표면들을 설명하는 대부분의 중복성 및 비효율성을 제거할 수도 있다.
일부 경우들에서, 벡터 스트리밍 클라이언트는 실세계 폐색 객체들의 존재에 대해 불가지론적 (agnostic) 으로 유지될 수 있다. 예를 들어, 실세계 폐색들을 갖는 AR 애플리케이션들 또는 실세계 폐색들이 없는 AR 애플리케이션들을 프로세싱할 때, 클라이언트 동작에서의 차이가 없을 수도 있다. 사전-디스플레이 프로세싱의 일부로서 모든 분할 렌더링 시스템들에 존재하는 신규 뷰 합성 단계에 대한 벡터 스트리밍 접근법은 비동기식 시간 워프 (ATW) 에 비해 개선된 성능을 제공할 수도 있고, 픽셀 스트리밍 기반 분할 렌더링 시스템들에 존재할 수도 있는 신규 뷰 합성에 대한 유사한 접근법들을 제공할 수도 있다. 벡터 스트리밍-기반 신규 뷰 합성은 신규 관점으로부터 전체 잠재적으로 가시적인 지오메트리를 재렌더링함으로써 평면 재투영 기반 형상 왜곡 및 폐색 경계 시프트들/왜곡들을 회피한다. 일부 양태들에서, 업링크 트래픽이 지연되거나 중단되면, 또는 온-클라이언트 메싱을 가정하면, 클라이언트 디바이스는 폐색 실세계 객체의 외관 및 지오메트리를 로컬로 재구성할 수도 있고, 이어서 대응하는 메시들 및 모든 제로 값 텍스처들을 기존의 드로우 콜들의 리스트에 추가할 수도 있다. 이러한 방식으로, 메싱 능력을 갖는 벡터 스트리밍 클라이언트들은 불안정한 통신 링크에 더 강건성을 제공할 수도 있고, 또한 복잡한 혼합 현실 경험들에 실세계 객체들을 통합하기 위한 더 낮은 전체 레이턴시를 갖는 솔루션을 제공할 수도 있다. 일부 양태들에서, (클라이언트 재구성을 사용하여) 로컬로 이용가능한 폐색 객체 메시는 크게 정제되지 않을 수도 있고, 더 정밀하게 하고 실제 실세계 지오메트리를 고수하기 위해 서버에서 번들 조정을 필요로 할 수도 있다. 그러나, 일부 양태들에서, 실세계 폐색기의 대략적인 버전은 긴 네트워크 지연들 또는 서비스 중단들의 경우에 어떠한 그러한 표현도 갖지 않는 것을 통해 여전히 선택될 수도 있다.
일부 양태들에서, 스루풋이 느리거나 레이턴시가 높으면, 클라이언트는 서버로부터의 메시들보다는, 예를 들어, 실세계 콘텐트에 대해 로컬 메시들을 사용하는 옵션을 가질 수도 있다. 로컬 메시들을 사용함으로써, 클라이언트는 클라이언트에서 이 메시 콘텐트를 렌더링할 수도 있고, 서버로부터 메시들을 수신하는 것을 기다리지 않을 수도 있다. 이는 실세계 폐색들에 대한 보다 즉각적인 반응을 제공할 수도 있다. 예를 들어, 로컬 클라이언트 메시들은 클라이언트에 의해 검출되지만 아직 서버에 알려지지 않은 실세계 콘텐트에 유용할 수도 있다.
클라이언트 디바이스는 또한 대강의 실세계 메싱을 수행하고 이 정보를 서버에 전송할 수도 있다. 그 다음, 서버는 번들 조정을 수행할 수도 있어서, 서버는 많은 별개의 시점에서 클라이언트에 의해 이루어진 실제 객체의 실세계 관측들을 비교하고, 이 정보를 실세계 객체들의 미래의 표현을 위해 단일의 컴팩트한 정제된 메시 정보로 정제한다. 따라서, 클라이언트 또는 서버 둘 다에서 실세계 콘텐트 개량이 발생할 수도 있다.
일부 경우들에서, 클라이언트 디바이스는, 예를 들어, 최신 실세계 객체 메시들 및 포즈들을 사용하여, 서버에 알려지지 않은 폐색 객체들을 렌더링하기 위한 추가적인 패스를 활용할 수도 있다. 이러한 조건은 플래깅된 폐색 객체들이 다운링크 데이터에 나타나지 않으면 클라이언트 상에서 검출될 수도 있다. 또한, 클라이언트는 폐색 객체들의 존재 및/또는 신뢰할 수 있는 통신 네트워크 서비스의 부존재의 경우에도, 예를 들어, 서버로부터의 입력 없이, 자기-충분하게 동작할 수도 있다.
전술한 바와 같이, 본 개시의 양태들은 계층들 또는 빌보드들을 통해 폐색 객체들을 렌더링함으로써 픽셀 스트리밍 시스템들에서 폐색 객체들을 핸들링할 수도 있다. 예를 들어, 본 개시는 혼합 현실 공간에서 증강 객체들과의 지오메트리 비교를 통해 어떤 실세계 객체들이 객체들을 폐색할 수도 있는지를 결정할 수도 있다. 예를 들어, 실세계 객체들의 지오메트리 (예를 들어, 실세계 내의 임의의 지점에 연결된 세계 좌표계에서 검출되고 메싱됨) 는 두 세계들: 카메라 사이의 공통 대상의 포즈를 사용함으로써 애니메이션화된 객체들에 의해 지시된 혼합된 세계 좌표들로 "번역" 될 수도 있다. 이 다음으로, 선택된 실세계 객체들을 잠재적인 폐색기들로서 태그하기 위해, 표준 가시성 테스트의 변형이 혼합 세계 표현에서 수행될 수도 있다. 픽셀 공간에서 애니메이션들과 부분적으로 중첩되고 적어도 하나의 증강 객체보다 가상 카메라에 더 가깝게 나타나는 실세계 객체들은 잠재적 폐색기들로서 태그될 수도 있고, 가장 최근에 알려진 객체 메시를 사용하여 별개의 빌보드 상에 렌더링될 수도 있다. 이러한 폐색 객체들은 AR 카메라로부터 평균 객체 거리에서 (또는 카메라에 대한 평면 거리 및 배향을 결정하기 위해 일부 다른 방법을 사용하여) 빌보드 평면 상으로 래스터화될 수 있다. 빌보드 내의 객체 표면은 모든 제로 픽셀들, 예를 들어 (0,0,0) 의 RGB 값을 사용하여 렌더링될 수도 있다.
추가적으로, 본 개시는 다른 객체들과 유사한 벡터 스트리밍 시스템들에서 폐색 객체들을 핸들링할 수도 있다. 알려진 메시를 갖는 실세계 객체는 서버에서 애니메이션화된 객체와 동일한 방식으로 취급될 수도 있다. 이와 같이, 이러한 실세계 객체들은 가시성 계산에 참여할 수도 있다. 실세계 객체가 적어도 하나의 애니메이션화된 객체를 폐색하는 것으로 발견되면, 본 개시는 이 실세계 객체를 활성 폐색 객체로서 취급할 수도 있고, 대응하는 정보를 알려진 객체들의 조합된 세트에 추가할 수도 있다. 본 개시는 또한 이들 객체들의 잠재적으로 가시적인 지오메트리 또는 텍스처들을 (0,0,0) 의 RGB 값 또는 단일 컬러 값을 갖는 메시지로서 송신할 수도 있다. 이러한 객체들의 메시 정보가 서버 상에서 계속 정제될 수도 있기 때문에, 본 개시는 객체 지오메트리에 관한 업데이트들을 전송할 수도 있다.
본 명세서에 표시된 바와 같이, 본 개시는 또한, 서버로부터 수신된 메시지들이 이러한 폐색 객체들에 관한 정보를 포함하지 않을 때, 클라이언트 디바이스 상에서 (그리고 서버 상에서가 아님) 로컬로 실세계 폐색 객체들의 지오메트리를 추정하는 단계를 포함할 수도 있다. 이 상황은, 예를 들어, 서버 워크로드에 대한 제한들 및/또는 업링크 일시적인 중단들로 인해, 조합된 시스템 레이턴시들을 감소시키기 위해, 다수의 상이한 이유들로 인해 발생할 수도 있다. 본 개시에서, 벡터 스트리밍 클라이언트는, 대응하는 텍스처들에 대해 모든 제로 값들을 사용하여, 실세계 객체들의 국부적으로 추정된 메시들을 클라이언트 상에서 래스터화된 메시들의 리스트에 추가할 수도 있다. 또한, 픽셀 스트리밍 클라이언트는, 결과를 네트워크를 통해 수신된 픽셀 스트리밍 텍스처들과 결합하기 전에, 별개의 패스에서 국부적으로 추정된 메시들을 래스터화할 수도 있다. 따라서, 픽셀 스트리밍 시스템들에서, 본 개시는 증강 콘텐트를 폐색하는 실세계 콘텐트를 해결하기 위해 하나 이상의 솔루션을 이용할 수도 있다. 그리고, 벡터 스트리밍 시스템에서, 본 개시는 증강 콘텐트를 폐색하는 실세계 콘텐트를 해결하기 위해 다수의 솔루션을 이용할 수도 있다.
도 5 는 본 개시의 하나 이상의 기술에 따른 예시적인 이미지 또는 장면 (500) 을 도시한다. 장면 (500) 은 증강 콘텐트 (510) 및 에지 (522) 를 포함하는 실세계 콘텐트 (520) 를 포함한다. 보다 구체적으로, 도 5 는 증강 콘텐트 (510), 예를 들어 사람을 폐색하는 실세계 객체 (520), 예를 들어 문을 디스플레이한다. 도 5 에 도시된 바와 같이, 증강 콘텐트 (510) 는 실세계 객체 (520) 가 증강 콘텐트 (510) 를 완전히 폐색함에 따라 실세계 객체 (520) 의 에지 (522) 에서 정지한다. 예를 들어, 사람 (510) 의 어떠한 부분도 문 (520) 의 에지 (522) 와 중첩되지 않는다.
전술한 바와 같이, 도 5 는 AR 시스템에서 증강 콘텐트, 예를 들어 콘텐트 (510) 를 폐색하는 실세계 콘텐트, 예를 들어 콘텐트 (520) 의 효과를 정확하게 디스플레이한다. 도 5 에 도시된 바와 같이, 본 개시의 양태들은 스크린 공간에서 둘이 완전히 또는 부분적으로 중첩할 때 어느 실세계 객체들 및 애니메이션화된 객체들이 다른 것을 폐색할 수도 있는지를 정확하게 결정할 수도 있다. 또한, 본 개시의 양태들은, 객체들이 실세계 콘텐트 및 증강 콘텐트일 때, 폐색하는/전경 객체들과 폐색된/배경 객체들 사이의 폐색 경계들이 다양한 네트워크 레이턴시들 및 카메라 모션들을 통해 날카롭고 정확하게 유지되도록 분할 렌더링 아키텍처들에서 혼합 현실 장면의 콘텐트들을 렌더링할 수도 있다. 이와 같이, 본 개시의 양태들은 실세계 콘텐트가 증강 콘텐트를 완전히 또는 부분적으로 폐색할 때, 또는 증강 콘텐트가 실세계 콘텐트를 폐색할 때, 및 둘 사이의 경계가 AR 디스플레이들에서 어떻게 또는 어디에 묘사될 수 있는지를 정확하게 묘사할 수도 있다.
도 5 는 실세계 콘텐트 및 증강 콘텐트로 분할 렌더링에서 폐색 콘텐트를 핸들링하기 위한 전술한 프로세스들의 일 예를 도시한다. 도 5 에 도시된 바와 같이, 본 개시의 양태들, 예를 들어, 본 명세서의 서버들 및 클라이언트 디바이스들은, 실세계 및 증강 콘텐트가 공존하고 서로 상호작용하는 혼합 현실 장면들을 몰입형 방식으로 렌더링하기 위해 다수의 상이한 단계들 또는 프로세스들을 수행할 수도 있다. 예를 들어, 본 명세서의 서버들 및 클라이언트 디바이스들은 장면 내에서 실세계 객체들 중에서 제 1 콘텐트 그룹, 예를 들어, 도 5 의 문 (520) 을 식별하고 애니메이션화된 객체들 중에서 제 2 콘텐트 그룹, 예를 들어, 도 5 의 사람 (510) 을 식별할 수도 있다. 본 명세서의 서버들 및 클라이언트 디바이스들은 또한, 절두체에서의 그들의 포지션에 기초하여, 현재 카메라 포즈 또는 인근 카메라 포즈로부터 다른 것을 (부분적으로 또는 완전히) 잠재적으로 폐색할 수 있는지 여부를 결정할 수도 있고, 잠재적인 폐색기들/피폐색기들에 대해, 혼합된 장면이 예를 들어 인근 카메라 포즈들 및 배향들의 조밀한 세트로부터 재렌더링될 때 그 둘 사이의 폐색 경계가 정확하게 나타날 수 있는 방식으로 그들의 외관 및 지오메트리 특성들을 나타낼 수도 있다. 일부 양태들에서, 제 1 콘텐트 그룹, 예를 들어, 문 (520) 은 적어도 일부 실제 콘텐트를 포함할 수도 있고, 제 2 콘텐트 그룹, 예를 들어, 사람 (510) 은 적어도 일부 증강 콘텐트를 포함할 수도 있다. 본 명세서에서 서버들 및 클라이언트 디바이스들은 또한 제 1 콘텐트 그룹의 적어도 일부, 예컨대 문 (520) 이 제 2 콘텐트 그룹의 적어도 일부, 예컨대 사람 (510) 을 폐색 또는 잠재적으로 폐색하는지 여부를 결정할 수도 있다.
일부 양태들에서, 제 1 콘텐트 그룹, 예를 들어, 문 (520) 은 적어도 하나의 제 1 빌보드, 예를 들어, 도 3 의 빌보드 (320) 를 사용하여 표현될 수도 있고, 제 2 콘텐트 그룹, 예를 들어, 사람 (510) 은 적어도 하나의 제 2 빌보드, 예를 들어, 도 3 의 빌보드 (310) 를 사용하여 표현될 수도 있다. 본 명세서에서의 서버들 및 클라이언트 디바이스들은 또한 적어도 하나의 제 1 평면 방정식에 따라 적어도 하나의 제 1 빌보드, 예를 들어, 빌보드 (320) 를 생성할 수도 있고, 적어도 하나의 제 2 평면 방정식에 따라 적어도 하나의 제 2 빌보드, 예를 들어, 빌보드 (310) 를 생성할 수도 있다. 일부 양태들에서, 제 1 콘텐트 그룹의 적어도 일부가 제 2 콘텐트 그룹의 적어도 일부를 폐색 또는 잠재적으로 폐색하는지 여부의 결정은, 현재 카메라 포즈, 인근 위치들 또는 배향들을 갖는 하나 이상의 카메라 포즈들, 또는 가까운 미래의 포즈들을 포함하는 하나 이상의 예측된 카메라 포즈들 중 적어도 하나에 기초할 수도 있다. 추가적으로, 적어도 하나의 제 1 빌보드, 예를 들어 빌보드 (320) 는 제 1 평면에 대응하여 위치되고 배향될 수도 있고, 적어도 하나의 제 2 빌보드, 예를 들어 빌보드 (310) 는 제 2 평면에 대응하여 위치되고 배향될 수도 있다.
일부 양태들에서, 제 1 콘텐트 그룹, 예를 들어, 문 (520) 은 적어도 하나의 제 1 메시 및 적어도 하나의 제 1 셰이딩 텍스처를 사용하여 표현될 수도 있고, 제 2 콘텐트 그룹, 예를 들어, 사람 (510) 은 적어도 하나의 제 2 메시 및 적어도 하나의 제 2 셰이딩 텍스처를 사용하여 표현될 수도 있다. 본 명세서의 서버들 및 클라이언트 디바이스들은 또한 적어도 하나의 제 1 메시 및 하나의 제 1 셰이딩 텍스처, 및 적어도 하나의 제 2 메시 및 하나의 제 2 셰이딩 텍스처를 생성할 수도 있다.
본 명세서의 서버들 및 클라이언트 디바이스들은 또한, 제 1 콘텐트 그룹의 적어도 일부가 현재 또는 인근 카메라 위치 및 배향으로부터 제 2 콘텐트 그룹의 적어도 일부를 폐색할 수 있는지 여부의 결정에 기초하여, 제 1 콘텐트 그룹, 예를 들어, 문 (520) 및 제 2 콘텐트 그룹, 예를 들어, 사람 (510) 을 렌더링할 수도 있다. 일부 양태들에서, 아무것도 렌더링되지 않는 AR 헤드셋들 내의 픽셀들은 렌더링된 값이 (0,0,0) 인 것처럼 동일하게 거동할 수도 있으며, 즉, 이들 픽셀들은 뷰어가 이들 픽셀들을 "시스루" 할 수 있다는 의미에서 실세계 콘텐트에 대해 완전히 투명하게 유지된다. 대안적으로, 본 명세서의 클라이언트 디바이스들은 제 1 콘텐트 그룹의 적어도 일부가 제 2 콘텐트 그룹의 적어도 일부를 폐색할 때 폐색 재료 표면 특성을 사용하여 제 1 콘텐트 그룹의 하나 이상의 표면의 적어도 일부를 렌더링할 수도 있다. 일부 양태들에서, 적어도 하나의 제 1 메시는 제 1 지오메트리 정보와 연관될 수도 있고, 적어도 하나의 제 2 메시는 제 2 지오메트리 정보와 연관될 수도 있다.
본 명세서의 서버들 및 클라이언트 디바이스들은 또한, 제 1 콘텐트 그룹, 예컨대 문 (520) 과 연관된 정보, 및 제 2 콘텐트 그룹, 예컨대 사람 (510) 과 연관된 정보를 클라이언트 디바이스에 통신할 수도 있다. 일부 양태들에서, 클라이언트 디바이스는 제 1 콘텐트 그룹의 엘리먼트들, 예를 들어, 문 (520) 및 제 2 콘텐트 그룹의 엘리먼트들, 예를 들어, 사람 (510) 에 대해 구별할 수 없는 프로세싱을 착수할 수도 있다. 일부 양태들에서, 클라이언트 디바이스는 적어도 하나의 눈 버퍼가 디스플레이를 위해 합성될 때 제 1 콘텐트 그룹과 연관된 정보 및 제 2 콘텐트 그룹과 연관된 정보를 프로세싱할 수도 있다. 또한, 제 1 콘텐트 그룹, 예를 들어, 문 (520) 및 제 2 콘텐트 그룹, 예를 들어, 사람 (510) 의 표현은 서버에 의해 적어도 부분적으로 준비될 수도 있다. 또한, 제 1 콘텐트 그룹, 예를 들어, 문 (520) 및 제 2 콘텐트 그룹, 예를 들어, 사람 (510) 의 표현은 클라이언트 디바이스에 의해, 예를 들어, 디스플레이를 위해 눈 버퍼에 적어도 부분적으로 렌더링될 수도 있다. 일부 양태들에서, 제 1 콘텐트 그룹은 하나 이상의 제 1 메시 엘리먼트들 및 하나 이상의 제 1 픽셀들을 사용하여 표현될 수도 있고, 제 2 콘텐트 그룹은 하나 이상의 제 2 메시 엘리먼트들 및 하나 이상의 제 2 픽셀들을 사용하여 표현될 수도 있다. 일부 양태들에서, 제 1 콘텐트 그룹은 하나 이상의 제 1 폐색 메시지들에 의해 표현될 수도 있다.
일부 양태들에서, 제 1 콘텐트 그룹, 예를 들어, 문 (520) 은 하나 이상의 픽셀을 포함할 수도 있고, 제 2 콘텐트 그룹, 예를 들어, 사람 (510) 은 하나 이상의 픽셀로 표현될 수도 있다. 또한, 장면, 예를 들어, 장면 (500) 은 분할 증강 현실 (AR) 아키텍처, 분할 확장 현실 (XR) 아키텍처, 또는 서버와의 클라우드 게이밍 중 적어도 하나에서 클라이언트 디바이스에 위치된 디스플레이 상에 합성 및/또는 생성될 수도 있다. 또한, 제 1 콘텐트 그룹의 적어도 일부, 예를 들어, 문 (520) 이 제 2 콘텐트 그룹의 적어도 일부, 예를 들어, 사람 (510) 을 폐색 또는 잠재적으로 폐색하는지 여부의 결정은 GPU 또는 CPU 에 의해 적어도 부분적으로 수행될 수도 있다. 일부 양태들에서, 제 1 콘텐트 그룹의 적어도 일부가 제 2 콘텐트 그룹의 적어도 일부를 폐색할 때 폐색 재료를 사용하여 제 1 콘텐트 그룹의 하나 이상의 표면의 적어도 일부를 렌더링하는 단계는 서버 상에서 적어도 부분적으로 수행될 수도 있다.
전술한 바와 같이, 픽셀 스트리밍 시스템들을 이용하는 본 개시의 양태들은 빌보드들, 임포스터들, 또는 계층들을 포함할 수도 있고, 실세계 콘텐트는 현재 카메라 포즈를 사용하여 대응하는 빌보드들 내로 올-널/블랙 실루엣 마스크로서 렌더링될 수도 있다. 벡터 스트리밍 시스템들을 이용하는 본 개시의 양태들은 또한 실세계 콘텐트 및 애니메이션화된 콘텐트를 표현하는 정보를 정확하게 동일한 방식으로 프로세싱하는 클라이언트 디바이스를 포함할 수도 있다. 예를 들어, 각각의 실세계 폐색 객체는 서버에서 알려진 것으로 가정될 수도 있다. 또한, 각각의 실세계 폐색 객체는 클라이언트에 전송되는 메시지들에 의해 적어도 부분적으로 표현되는 것으로 가정될 수도 있다. 특정 양태들에서, 송신된 메시지들에 임베딩된 실제 장면 내의 실세계 콘텐트를 표현하는 모달리티는 가상/혼합 현실 장면에서 애니메이션화된 콘텐트를 표현하는 모달리티와 동일할 수도 있다. 실제로, 클라이언트 디바이스는 어느 표현이 증강 또는 실세계 객체에 대응하는지에 관한 어떠한 구별도 하지 않을 수도 있다.
부가적으로, 본 개시의 양태들은, 서버가 실세계 폐색 객체를 인식하지 못할 수 있는 벡터 스트리밍 아키텍처를 포함할 수도 있고, 그리고/또는 클라이언트에 도달하는 다운링크 트래픽은 폐색 객체에 관한 정보를 포함하지 않을 수도 있지만, 클라이언트 디바이스는 실세계 폐색 객체들: 카메라/관찰자에 대한 그들의 형상, 크기, 및 포즈를 인식할 수도 있다. 이러한 경우들에서, 클라이언트 디바이스는 별개의 렌더링 패스를 가질 수도 있으며, 여기서 클라이언트는 실세계 폐색 객체의 메시를 래스터화하여, 폐색 재료를 사용하여 그의 텍스처들을 렌더링한다. 예를 들어, 서버가 폐색 객체를 인식하게 되는 데 여러 프레임이 걸릴 수도 있지만, 클라이언트는 단일 프레임 내에서 폐색 객체를 인식하게 될 수도 있다. 따라서, 클라이언트 디바이스는, 폐색 객체의 존재가 더 빠르게 묘사될 수 있고 명백하게 부정확한 폐색들의 발생들을 최소화할 수 있도록, 폐색 객체 지오메트리를 서버보다 빠르게 결정할 수도 있다.
도 6 은 본 개시의 하나 이상의 기술에 따른 예시적인 방법의 예시적인 플로우차트 (600) 를 도시한다. 방법은 서버, 클라이언트 디바이스, CPU, GPU, 또는 그래픽스 프로세싱을 위한 장치와 같은 장치에 의해 수행될 수도 있다. 602 에서, 장치는, 도 2, 3, 4 및 5 의 예들과 관련하여 설명된 바와 같이, 장면에서 제 1 콘텐트 그룹 및 제 2 콘텐트 그룹을 식별할 수도 있다. 일부 양태들에서, 도 2, 3, 4 및 5 의 예들과 관련하여 설명된 바와 같이, 제 1 콘텐트 그룹은 적어도 일부 실제 콘텐트를 포함할 수도 있고, 제 2 콘텐트 그룹은 적어도 일부 증강 콘텐트를 포함할 수도 있다.
604 에서, 장치는, 도 2, 3, 4 및 5 에서의 예들과 관련하여 설명된 바와 같이, 예를 들어, 현재 또는 인근의 카메라 포즈로부터, 제 1 콘텐트 그룹의 적어도 일부가 제 2 콘텐트 그룹의 적어도 일부를 폐색 또는 잠재적으로 폐색하는지 여부를 결정할 수도 있다.
일부 양태들에서, 교차 콘텐트 폐색이 발생할 수 있다면, 제 1 콘텐트 그룹은 적어도 하나의 제 1 빌보드를 사용하여 표현될 수도 있다. 제 2 콘텐트 그룹은, 도 2, 3, 4 및 5 의 예들과 관련하여 설명된 바와 같이, 적어도 하나의 제 2 빌보드를 사용하여 표현될 수도 있다. 606 에서, 장치는, 도 2, 3, 4 및 5 의 예들과 관련하여 설명된 바와 같이, 적어도 하나의 제 1 평면 방정식에 따라 적어도 하나의 제 1 빌보드를 생성할 수도 있고, 적어도 하나의 제 2 평면 방정식에 따라 적어도 하나의 제 2 빌보드를 생성할 수도 있다. 일부 양태들에서, 제 1 콘텐트 그룹의 적어도 일부가 제 2 콘텐트 그룹의 적어도 일부를 폐색 또는 잠재적으로 폐색하는지 여부의 결정은, 도 2, 3, 4 및 5 의 예들과 관련하여 설명된 바와 같이, 현재 카메라 포즈, 인근 위치들 또는 배향들을 갖는 하나 이상의 카메라 포즈들, 또는 가까운 미래의 포즈들을 포함하는 하나 이상의 예측된 카메라 포즈들 중 적어도 하나에 기초한다. 추가적으로, 도 2, 3, 4 및 5 의 예들과 관련하여 설명된 바와 같이, 적어도 하나의 제 1 빌보드는 제 1 평면에 대응할 수도 있고, 적어도 하나의 제 2 빌보드는 제 2 평면에 대응할 수도 있다.
일부 양태들에서, 도 2, 3, 4 및 5 의 예들과 관련하여 설명된 바와 같이, 제 1 콘텐트 그룹은 적어도 하나의 제 1 메시 및 제 1 셰이딩 텍스처를 사용하여 표현될 수도 있고, 제 2 콘텐트 그룹은 적어도 하나의 제 2 메시 및 제 2 셰이딩 텍스처를 사용하여 표현될 수도 있다.
610 에서, 장치는, 도 2, 3, 4 및 5 의 예들과 관련하여 설명된 바와 같이, 제 1 콘텐트 그룹의 적어도 일부가 제 2 콘텐트 그룹의 적어도 일부를 폐색하는지 또는 잠재적으로 폐색하는지 여부의 결정에 기초하여 제 1 콘텐트 그룹 및 제 2 콘텐트 그룹을 표현할 수도 있다. 612 에서, 장치는, 도 2, 3, 4 및 5 의 예들과 관련하여 설명된 바와 같이, 제 1 콘텐트 그룹의 적어도 일부가 제 2 콘텐트 그룹의 적어도 일부를 폐색하거나 잠재적으로 폐색할 때 폐색 재료를 사용하여 제 1 콘텐트 그룹의 하나 이상의 표면들의 적어도 일부를 렌더링할 수도 있다.
일부 양태들에서, 도 2, 3, 4 및 5 의 예들과 관련하여 설명된 바와 같이, 제 1 콘텐트 그룹은 제 1 셰이딩 아틀라스에 의해 표현될 수도 있고, 제 2 콘텐트 그룹은 제 2 셰이딩 아틀라스에 기초할 수도 있다. 또한, 도 2, 3, 4 및 5 의 예들과 관련하여 설명된 바와 같이, 적어도 하나의 제 1 메시는 제 1 지오메트리 정보와 연관될 수도 있고, 적어도 하나의 제 2 메시는 제 2 지오메트리 정보와 연관될 수도 있다.
614 에서, 장치는, 도 2, 3, 4 및 5 의 예들과 관련하여 설명된 바와 같이, 제 1 콘텐트 그룹과 연관된 정보 및 제 2 콘텐트 그룹과 연관된 정보를 클라이언트 디바이스에 통신할 수도 있다. 일부 양태들에서, 클라이언트 디바이스는, 예컨대 적어도 하나의 눈 버퍼가 디스플레이를 위해 합성될 때, 도 2, 3, 4 및 5 의 예들과 관련하여 설명된 바와 같이, 제 1 콘텐트 그룹과 연관된 정보 및 제 2 콘텐트 그룹과 연관된 정보를 프로세싱할 수도 있다. 추가적으로, 제 1 콘텐트 그룹의 표현 및 제 2 콘텐트 그룹의 표현은, 도 2, 3, 4 및 5 의 예들과 관련하여 설명된 바와 같이, 서버 상에서 적어도 부분적으로 셰이딩될 수도 있다. 또한, 제 1 콘텐트 그룹 및 제 2 콘텐트 그룹은 도 2, 3, 4 및 5 의 예들과 관련하여 설명된 바와 같이 클라이언트 디바이스에 의해 적어도 부분적으로 렌더링될 수도 있다.
일부 양태들에서, 도 2, 3, 4 및 5 의 예들과 관련하여 설명된 바와 같이, 제 1 콘텐트 그룹이 하나 이상의 픽셀들을 포함할 수도 있고 제 2 콘텐트 그룹이 하나 이상의 픽셀들을 포함할 수도 있다. 일부 양태들에서, 제 1 콘텐트 그룹은 도 2, 3, 4 및 5 의 예들과 관련하여 설명된 바와 같이 하나 이상의 제 1 폐색 메시지들에 의해 표현될 수도 있다. 일부 양태들에서, 도 2, 3, 4 및 5 의 예들과 관련하여 설명된 바와 같이, 제 1 콘텐트 그룹은 하나 이상의 제 1 메시 엘리먼트들 및 하나 이상의 제 1 픽셀들을 사용하여 표현될 수도 있고, 제 2 콘텐트 그룹은 하나 이상의 제 2 메시 엘리먼트들 및 하나 이상의 제 2 픽셀들을 사용하여 표현될 수도 있다. 또한, 장면은, 도 2, 3, 4 및 5 의 예들과 관련하여 설명된 바와 같이, 분할 증강 현실 (AR) 아키텍처, 분할 확장 현실 (XR) 아키텍처, 또는 서버와의 클라우드 게이밍 중 적어도 하나에서 클라이언트 디바이스에 위치된 디스플레이 상에 렌더링될 수도 있다. 또한, 제 1 콘텐트 그룹의 적어도 일부가, 예를 들어, 현재 또는 인근 카메라 위치들 및 배향들로부터, 제 2 콘텐트 그룹의 적어도 일부를 폐색 또는 잠재적으로 폐색하는지 여부의 결정은, 도 2, 3, 4 및 5 의 예들과 관련하여 설명된 바와 같이, GPU 또는 CPU 에 의해 적어도 부분적으로 수행될 수도 있다.
일부 양태들에서, 제 1 콘텐트 그룹의 적어도 일부가 제 2 콘텐트 그룹의 적어도 일부를 폐색 또는 잠재적으로 폐색하는지 여부의 결정은, 도 2, 3, 4 및 5 의 예들과 관련하여 설명된 바와 같이, 서버 상에서 적어도 부분적으로 수행될 수도 있다. 또한, 제 1 콘텐트 그룹의 적어도 일부가 제 2 콘텐트 그룹의 적어도 일부를 폐색 또는 잠재적으로 폐색할 때 폐색 재료를 사용하여 제 1 콘텐트 그룹의 하나 이상의 표면들의 적어도 일부를 렌더링하는 것은, 도 2, 3, 4 및 5 의 예들과 관련하여 설명된 바와 같이, 서버 상에서 적어도 부분적으로 수행될 수도 있다.
하나의 구성에서, 그래픽스 프로세싱을 위한 방법 또는 장치가 제공된다. 장치는 서버, 클라이언트 디바이스, CPU, GPU, 또는 그래픽스 프로세싱을 수행할 수 있는 일부 다른 프로세서일 수도 있다. 일 양태에서, 장치는 디바이스 (104) 내의 프로세싱 유닛 (120) 일 수도 있거나, 디바이스 (104) 또는 다른 디바이스 내의 일부 다른 하드웨어일 수도 있다. 장치는 장면에서 제 1 콘텐트 그룹 및 제 2 콘텐트 그룹을 식별하기 위한 수단을 포함할 수도 있다. 장치는 또한 제 1 콘텐트 그룹의 적어도 일부가 제 2 콘텐트 그룹의 적어도 일부를 폐색 또는 잠재적으로 폐색하는지 여부를 결정하기 위한 수단을 포함할 수도 있다. 장치는 또한 제 1 콘텐트 그룹의 적어도 일부가 제 2 콘텐트 그룹의 적어도 일부를 폐색 또는 잠재적으로 폐색하는지 여부의 결정에 기초하여 제 1 콘텐트 그룹 및 제 2 콘텐트 그룹을 표현하기 위한 수단을 포함할 수도 있다. 장치는 또한, 제 1 콘텐트 그룹의 적어도 일부가 제 2 콘텐트 그룹의 적어도 일부를 폐색할 때 폐색 재료를 사용하여 제 1 콘텐트 그룹의 하나 이상의 표면들의 적어도 일부를 렌더링하기 위한 수단을 포함할 수도 있다. 장치는 또한, 적어도 하나의 제 2 평면 방정식에 따라 적어도 하나의 제 2 빌보드 및 제 2 셰이딩, 및 적어도 하나의 제 1 평면 방정식 및 제 1 셰이딩 텍스처에 따라 적어도 하나의 제 1 빌보드를 생성하기 위한 수단을 포함할 수도 있다. 장치는 또한 제 1 콘텐트 그룹과 연관된 정보 및 제 2 콘텐트 그룹과 연관된 정보를 클라이언트 디바이스에 통신하기 위한 수단을 포함할 수도 있다.
본 명세서에서 설명되는 주제는 하나 이상의 이득 또는 이점을 실현하도록 구현될 수도 있다. 예를 들어, 설명된 그래픽스 프로세싱 기술들은 서버, 클라이언트, GPU, CPU, 또는 본 명세서에 설명된 분할 렌더링 기술들을 구현하기 위해 그래픽스 프로세싱을 수행할 수 있는 일부 다른 프로세서에 의해 사용될 수도 있다. 이는 또한 다른 그래픽스 프로세싱 기술에 비해 낮은 비용으로 달성될 수도 있다. 더욱이, 본 명세서의 그래픽스 프로세싱 기술들은 데이터 프로세싱 또는 실행을 개선하거나 가속화할 수도 있다. 또한, 본 명세서의 그래픽스 프로세싱 기술들은 자원 또는 데이터 이용 및/또는 자원 효율성을 개선할 수도 있다. 추가적으로, 본 개시의 양태들은 실세계 콘텐트 및 증강 콘텐트를 이용한 분할 렌더링에서 폐색 콘텐트를 핸들링하는 정확도를 증가시킬 수도 있는 분할 렌더링 프로세스를 이용할 수도 있다.
본 개시에 따르면, 용어 "또는" 은 문맥이 달리 지시하지 않는 경우 "및/또는" 으로 해석될 수도 있다. 추가적으로, "하나 이상" 또는 "적어도 하나" 등과 같은 문구들이 본 명세서에 개시된 일부 특징들에 대해 사용되고 다른 특징들에 대해서는 사용되지 않았을 수 있지만, 그러한 표현이 사용되지 않은 특징들은 문맥이 달리 지시하지 않는 경우 암시되는 그러한 의미를 갖는 것으로 해석될 수도 있다.
하나 이상의 예에서, 본 명세서에 설명된 기능들은 하드웨어, 소프트웨어, 펌웨어, 또는 이들의 임의의 조합에서 구현될 수도 있다. 예를 들어, 용어 "프로세싱 유닛" 이 본 개시에 걸쳐 사용되었지만, 이러한 프로세싱 유닛들은 하드웨어, 소프트웨어, 펌웨어, 또는 이들의 임의의 조합으로 구현될 수도 있다. 임의의 기능, 프로세싱 유닛, 본 명세서에 설명된 기술, 또는 다른 모듈이 소프트웨어에서 구현되는 경우, 기능, 프로세싱 유닛, 본 명세서에 설명된 기술, 또는 다른 모듈은 컴퓨터 판독가능 매체 상에 하나 이상의 명령 또는 코드로서 저장되거나 전송될 수도 있다. 컴퓨터 판독가능 매체는 일 장소로부터 다른 장소로의 컴퓨터 프로그램의 전송을 용이하게 하는 임의의 매체를 포함하는 통신 매체 또는 컴퓨터 데이터 저장 매체를 포함할 수도 있다. 이런 식으로, 컴퓨터 판독가능 매체들은 일반적으로 (1) 비일시적인 유형의 컴퓨터 판독가능 저장 매체들 또는 (2) 신호 또는 캐리어 파와 같은 통신 매체에 대응할 수도 있다. 데이터 저장 매체들은 본 개시에서 설명된 기술들의 구현을 위한 명령들, 코드 및/또는 데이터 구조들을 취출하기 위해 하나 이상의 컴퓨터들 또는 하나 이상의 프로세서들에 의해 액세스될 수 있는 임의의 가용 매체들일 수도 있다. 한정이 아닌 예로서, 그러한 컴퓨터 판독가능 매체들은 RAM, ROM, EEPROM, CD-ROM 또는 다른 광학 디스크 저장부, 자기 디스크 저장부 또는 다른 자기 저장 디바이스들을 포함할 수 있다. 본 명세서에서 사용된 바와 같이, 디스크 (disk) 및 디스크 (disc) 는 콤팩트 디스크 (CD), 레이저 디스크, 광학 디스크, 디지털 다용도 디스크 (DVD), 플로피 디스크 및 블루-레이 디스크를 포함하고, 여기서 디스크 (disk) 들은 보통 데이터를 자기적으로 재생하는 한편, 디스크 (disc) 들은 레이저들로 데이터를 광학적으로 재생한다. 또한, 상기의 조합들이 컴퓨터 판독가능 매체들의 범위 내에 포함되어야 한다. 컴퓨터 프로그램 제품은 컴퓨터 판독가능 매체를 포함할 수 있다.
코드는 하나 이상의 디지털 신호 프로세서들 (DSP들), 범용 마이크로 프로세서들, 주문형 집적 회로들 (ASIC들), ALU들 (arithmetic logic units), 필드 프로그래밍가능 로직 어레이들 (FPGA들), 또는 다른 균등한 집적된 또는 별개의 로직 회로부와 같은 하나 이상의 프로세서들에 의해 실행될 수도 있다. 따라서, 본 명세서에 사용된 용어 "프로세서" 는 전술한 구조 중 임의의 것 또는 본 명세서에 설명된 기술들의 구현에 적합한 임의의 다른 구조를 지칭할 수도 있다. 또한, 기술들은 하나 이상의 회로 또는 로직 엘리먼트에서 완전히 구현될 수도 있다.
본 개시의 기술들은 무선 핸드셋, 집적 회로 (IC) 또는 IC들의 세트, 예컨대 칩 세트를 포함하는, 매우 다양한 디바이스들 또는 장치들에서 구현될 수도 있다. 다양한 컴포넌트들, 모듈들, 또는 유닛들은 개시된 기술들을 수행하도록 구성된 디바이스들의 기능적 양태들을 강조하기 위해 본 개시에 설명되지만, 상이한 하드웨어 유닛들에 의한 실현을 반드시 필요로 하는 것은 아니다. 오히려, 상기 설명된 바와 같이, 다양한 유닛들은 적절한 소프트웨어 및/또는 펌웨어와 함께 상기 설명된 바와 같은 하나 이상의 프로세서들을 포함하여 임의의 하드웨어 유닛으로 결합되거나 또는 상호운용식 하드웨어 유닛들의 집합에 의해 제공될 수도 있다.
다양한 예들이 설명되었다. 이들 및 다른 예들은 다음의 청구항들의 범위 내에 있다.

Claims (44)

  1. 그래픽스 프로세싱 방법으로서,
    장면에서 제 1 콘텐트 그룹 및 제 2 콘텐트 그룹을 식별하는 단계;
    상기 제 1 콘텐트 그룹의 적어도 일부가 상기 제 2 콘텐트 그룹의 적어도 일부를 폐색 또는 잠재적으로 폐색하는지 여부를 결정하는 단계; 및
    상기 제 1 콘텐트 그룹의 적어도 일부가 상기 제 2 콘텐트 그룹의 적어도 일부를 폐색 또는 잠재적으로 폐색하는지 여부의 결정에 기초하여 상기 제 1 콘텐트 그룹 및 상기 제 2 콘텐트 그룹을 표현하는 단계를 포함하는, 그래픽스 프로세싱 방법.
  2. 제 1 항에 있어서,
    상기 제 1 콘텐트 그룹은 적어도 일부 실제 콘텐트를 포함하고, 상기 제 2 콘텐트 그룹은 적어도 일부 증강 콘텐트를 포함하는, 그래픽스 프로세싱 방법.
  3. 제 1 항에 있어서,
    상기 제 1 콘텐트 그룹의 적어도 일부가 상기 제 2 콘텐트 그룹의 적어도 일부를 폐색 또는 잠재적으로 폐색하는지 여부의 결정에 기초하여 상기 제 1 콘텐트 그룹 및 상기 제 2 콘텐트 그룹을 표현하는 단계는,
    상기 제 1 콘텐트 그룹의 적어도 일부가 상기 제 2 콘텐트 그룹의 적어도 일부를 폐색 또는 잠재적으로 폐색할 때 폐색 재료를 사용하여 상기 제 1 콘텐트 그룹의 하나 이상의 표면들의 적어도 일부를 렌더링하는 것을 더 포함하는, 그래픽스 프로세싱 방법.
  4. 제 1 항에 있어서,
    상기 제 1 콘텐트 그룹은 적어도 하나의 제 1 빌보드를 사용하여 표현되고, 상기 제 2 콘텐트 그룹은 적어도 하나의 제 2 빌보드를 사용하여 표현되는, 그래픽스 프로세싱 방법.
  5. 제 4 항에 있어서,
    적어도 하나의 제 1 평면 방정식에 따라 상기 적어도 하나의 제 1 빌보드를 그리고 적어도 하나의 제 2 평면 방정식에 따라 상기 적어도 하나의 제 2 빌보드를 생성하는 단계
    를 더 포함하는, 그래픽스 프로세싱 방법.
  6. 제 1 항에 있어서,
    상기 제 1 콘텐트 그룹의 적어도 일부가 상기 제 2 콘텐트 그룹의 적어도 일부를 폐색 또는 잠재적으로 폐색하는지 여부의 결정은, 현재 카메라 포즈, 인근 위치들 또는 배향들을 갖는 하나 이상의 카메라 포즈들, 또는 가까운 미래의 포즈들을 포함하는 하나 이상의 예측된 카메라 포즈들 중 적어도 하나에 기초하는, 그래픽스 프로세싱 방법.
  7. 제 6 항에 있어서,
    디스플레이 시에 상기 제 1 콘텐트 및 상기 제 2 콘텐트의 동적 부분들의 세계 위치 및 배향을 더 정확하게 예측하기 위해 상기 제 1 콘텐트의 부분 및 상기 제 2 콘텐트의 부분을 포함하는 장면 액터들의 물리 모델들 (physics models) 및 모션 예측을 이용하는 단계를 더 포함하는, 그래픽스 프로세싱 방법.
  8. 제 1 항에 있어서,
    상기 제 1 콘텐트 그룹은 적어도 하나의 제 1 메시 및 제 1 셰이딩 텍스처를 이용하여 표현되고, 상기 제 2 콘텐트 그룹은 적어도 하나의 제 2 메시 및 제 2 셰이딩 텍스처를 이용하여 표현되는, 그래픽스 프로세싱 방법.
  9. 제 8 항에 있어서,
    적어도 하나의 제 1 메시는 제 1 지오메트리 정보와 연관되고, 적어도 하나의 제 2 메시는 제 2 지오메트리 정보와 연관되는, 그래픽스 프로세싱 방법.
  10. 제 8 항에 있어서,
    상기 제 2 콘텐트 그룹은 클라이언트 능력들에 따라 RGB 값 (0,0,0) 의 올-블랙 픽셀들을 사용하거나 폐색 재료 표면 속성을 사용하여 렌더링되는, 그래픽스 프로세싱 방법.
  11. 제 1 항에 있어서,
    상기 제 1 콘텐트 그룹과 연관된 정보 및 상기 제 2 콘텐트 그룹과 연관된 정보를 클라이언트 디바이스에 통신하는 단계를 더 포함하는, 그래픽스 프로세싱 방법.
  12. 제 11 항에 있어서,
    상기 클라이언트 디바이스는 적어도 하나의 눈 버퍼가 디스플레이를 위해 합성될 때 상기 제 1 콘텐트 그룹과 연관된 상기 정보 및 상기 제 2 콘텐트 그룹과 연관된 상기 정보를 프로세싱하는, 그래픽스 프로세싱 방법.
  13. 제 1 항에 있어서,
    상기 제 1 콘텐트 그룹의 표현 및 상기 제 2 콘텐트 그룹의 표현이 서버 상에서 적어도 부분적으로 결정되는, 그래픽스 프로세싱 방법.
  14. 제 1 항에 있어서,
    상기 제 1 콘텐트 그룹 및 상기 제 2 콘텐트 그룹이 클라이언트 디바이스에 의해 적어도 부분적으로 렌더링되는, 그래픽스 프로세싱 방법.
  15. 제 1 항에 있어서,
    상기 제 1 콘텐트 그룹이 하나 이상의 픽셀들에 의해 표현되고, 상기 제 2 콘텐트 그룹이 하나 이상의 픽셀들에 의해 표현되는, 그래픽스 프로세싱 방법.
  16. 제 1 항에 있어서,
    상기 제 1 콘텐트 그룹이 하나 이상의 제 1 폐색 메시지들에 의해 표현되는, 그래픽스 프로세싱 방법.
  17. 제 7 항에 있어서,
    상기 제 1 콘텐트 그룹은 하나 이상의 제 1 메시 엘리먼트들 및 하나 이상의 제 1 픽셀들을 사용하여 표현되고, 상기 제 2 콘텐트 그룹은 하나 이상의 제 2 메시 엘리먼트들 및 하나 이상의 제 2 픽셀들을 사용하여 표현되는, 그래픽스 프로세싱 방법.
  18. 제 1 항에 있어서,
    상기 장면은 분할 증강 현실 (AR) 아키텍처, 분할 확장 현실 (XR) 아키텍처, 또는 서버와의 클라우드 게이밍 중 적어도 하나에서 클라이언트 디바이스에 위치된 디스플레이 상에 렌더링되는, 그래픽스 프로세싱 방법.
  19. 제 1 항에 있어서,
    상기 제 1 콘텐트 그룹의 적어도 일부가 상기 제 2 콘텐트 그룹의 적어도 일부를 폐색 또는 잠재적으로 폐색하는지 여부의 결정은, 그래픽스 프로세싱 유닛 (GPU) 또는 중앙 프로세싱 유닛 (CPU) 에 의해 적어도 부분적으로 수행되는, 그래픽스 프로세싱 방법.
  20. 제 1 항에 있어서,
    상기 제 1 콘텐트 그룹의 적어도 일부가 상기 제 2 콘텐트 그룹의 적어도 일부를 폐색 또는 잠재적으로 폐색하는지 여부의 결정은, 서버에서 적어도 부분적으로 수행되는, 그래픽스 프로세싱 방법.
  21. 제 3 항에 있어서,
    상기 제 1 콘텐트 그룹의 적어도 일부가 상기 제 2 콘텐트 그룹의 적어도 일부를 폐색 또는 잠재적으로 폐색할 때 폐색 재료를 사용하여 상기 제 1 콘텐트 그룹의 하나 이상의 표면들의 적어도 일부를 렌더링하는 것은, 서버에서 적어도 부분적으로 수행되는, 그래픽스 프로세싱 방법.
  22. 그래픽스 프로세싱을 위한 장치로서,
    메모리; 및
    상기 메모리에 커플링된 적어도 하나의 프로세서를 포함하고, 상기 프로세서는,
    장면에서 제 1 콘텐트 그룹 및 제 2 콘텐트 그룹을 식별하고,
    상기 제 1 콘텐트 그룹의 적어도 일부가 상기 제 2 콘텐트 그룹의 적어도 일부를 폐색 또는 잠재적으로 폐색하는지 여부를 결정하며, 그리고
    상기 제 1 콘텐트 그룹의 적어도 일부가 상기 제 2 콘텐트 그룹의 적어도 일부를 폐색 또는 잠재적으로 폐색하는지 여부의 결정에 기초하여 상기 제 1 콘텐트 그룹 및 상기 제 2 콘텐트 그룹을 표현하도록 구성되는, 장치.
  23. 제 22 항에 있어서,
    상기 제 1 콘텐트 그룹은 적어도 일부 실제 콘텐트를 포함하고, 상기 제 2 콘텐트 그룹은 적어도 일부 증강 콘텐트를 포함하는, 장치.
  24. 제 22 항에 있어서,
    상기 제 1 콘텐트 그룹의 적어도 일부가 상기 제 2 콘텐트 그룹의 적어도 일부를 폐색 또는 잠재적으로 폐색하는지 여부의 결정에 기초하여 상기 제 1 콘텐트 그룹 및 상기 제 2 콘텐트 그룹을 표현하기 위해, 상기 적어도 하나의 프로세서는,
    상기 제 1 콘텐트 그룹의 적어도 일부가 상기 제 2 콘텐트 그룹의 적어도 일부를 폐색 또는 잠재적으로 폐색할 때 폐색 재료를 사용하여 상기 제 1 콘텐트 그룹의 하나 이상의 표면들의 적어도 일부를 렌더링하도록 구성되는, 장치.
  25. 제 22 항에 있어서,
    상기 제 1 콘텐트 그룹은 적어도 하나의 제 1 빌보드를 사용하여 표현되고, 상기 제 2 콘텐트 그룹은 적어도 하나의 제 2 빌보드를 사용하여 표현되는, 장치.
  26. 제 25 항에 있어서,
    상기 적어도 하나의 프로세서는 추가로,
    적어도 하나의 제 1 평면 방정식에 따라 상기 적어도 하나의 제 1 빌보드를 그리고 적어도 하나의 제 2 평면 방정식에 따라 상기 적어도 하나의 제 2 빌보드를 생성하도록 구성되는, 장치.
  27. 제 22 항에 있어서,
    상기 제 1 콘텐트 그룹의 적어도 일부가 상기 제 2 콘텐트 그룹의 적어도 일부를 폐색 또는 잠재적으로 폐색하는지 여부의 결정은, 현재 카메라 포즈, 인근 위치들 또는 배향들을 갖는 하나 이상의 카메라 포즈들, 또는 가까운 미래의 포즈들을 포함하는 하나 이상의 예측된 카메라 포즈들 중 적어도 하나에 기초하는, 장치.
  28. 제 27 항에 있어서,
    상기 적어도 하나의 프로세서는 추가로, 디스플레이 시에 상기 제 1 콘텐트 및 상기 제 2 콘텐트의 동적 부분들의 세계 위치 및 배향을 더 정확하게 예측하기 위해 상기 제 1 콘텐트의 부분 및 상기 제 2 콘텐트의 부분을 포함하는 장면 액터들의 물리 모델들 및 모션 예측을 이용하도록 구성되는, 장치.
  29. 제 22 항에 있어서,
    상기 제 1 콘텐트 그룹은 적어도 하나의 제 1 메시 및 제 1 셰이딩 텍스처를 이용하여 표현되고, 상기 제 2 콘텐트 그룹은 적어도 하나의 제 2 메시 및 제 2 셰이딩 텍스처를 이용하여 표현되는, 장치.
  30. 제 29 항에 있어서,
    상기 적어도 하나의 제 1 메시는 제 1 지오메트리 정보와 연관되고, 상기 적어도 하나의 제 2 메시는 제 2 지오메트리 정보와 연관되는, 장치.
  31. 제 30 항에 있어서,
    상기 제 2 콘텐트 그룹은 클라이언트 능력들에 따라 RGB 값 (0,0,0) 의 올-블랙 픽셀들을 사용하거나 폐색 재료 표면 속성을 사용하여 렌더링되는, 장치.
  32. 제 22 항에 있어서,
    상기 적어도 하나의 프로세서는 추가로,
    상기 제 1 콘텐트 그룹과 연관된 정보 및 상기 제 2 콘텐트 그룹과 연관된 정보를 클라이언트 디바이스에 통신하도록 구성되는, 장치.
  33. 제 32 항에 있어서,
    상기 클라이언트 디바이스는 적어도 하나의 눈 버퍼가 디스플레이를 위해 합성될 때 상기 제 1 콘텐트 그룹과 연관된 상기 정보 및 상기 제 2 콘텐트 그룹과 연관된 상기 정보를 프로세싱하는, 장치.
  34. 제 22 항에 있어서,
    상기 제 1 콘텐트 그룹의 표현 및 상기 제 2 콘텐트 그룹의 표현이 서버 상에서 적어도 부분적으로 셰이딩되는, 장치.
  35. 제 22 항에 있어서,
    상기 제 1 콘텐트 그룹 및 상기 제 2 콘텐트 그룹이 클라이언트 디바이스에 의해 적어도 부분적으로 렌더링되는, 장치.
  36. 제 22 항에 있어서,
    상기 제 1 콘텐트 그룹이 하나 이상의 픽셀들에 의해 표현되고, 상기 제 2 콘텐트 그룹이 하나 이상의 픽셀들에 의해 표현되는, 장치.
  37. 제 22 항에 있어서,
    상기 제 1 콘텐트 그룹이 하나 이상의 제 1 폐색 메시지들에 의해 표현되는, 장치.
  38. 제 22 항에 있어서,
    상기 제 1 콘텐트 그룹은 하나 이상의 제 1 메시 엘리먼트들 및 하나 이상의 제 1 픽셀들을 사용하여 표현되고, 상기 제 2 콘텐트 그룹은 하나 이상의 제 2 메시 엘리먼트들 및 하나 이상의 제 2 픽셀들을 사용하여 표현되는, 장치.
  39. 제 22 항에 있어서,
    상기 장면은 분할 증강 현실 (AR) 아키텍처, 분할 확장 현실 (XR) 아키텍처, 또는 서버와의 클라우드 게이밍 중 적어도 하나에서 클라이언트 디바이스에 위치된 디스플레이 상에 렌더링되는, 장치.
  40. 제 22 항에 있어서,
    상기 제 1 콘텐트 그룹의 적어도 일부가 상기 제 2 콘텐트 그룹의 적어도 일부를 폐색 또는 잠재적으로 폐색하는지 여부의 결정은, 그래픽스 프로세싱 유닛 (GPU) 또는 중앙 프로세싱 유닛 (CPU) 에 의해 적어도 부분적으로 수행되는, 장치.
  41. 제 22 항에 있어서,
    상기 제 1 콘텐트 그룹의 적어도 일부가 상기 제 2 콘텐트 그룹의 적어도 일부를 폐색 또는 잠재적으로 폐색하는지 여부의 결정은, 서버에서 적어도 부분적으로 수행되는, 장치.
  42. 제 24 항에 있어서,
    상기 제 1 콘텐트 그룹의 적어도 일부가 상기 제 2 콘텐트 그룹의 적어도 일부를 폐색 또는 잠재적으로 폐색할 때 폐색 재료를 사용하여 상기 제 1 콘텐트 그룹의 하나 이상의 표면들의 적어도 일부를 렌더링하는 것은, 서버에서 적어도 부분적으로 수행되는, 장치.
  43. 그래픽스 프로세싱을 위한 장치로서,
    장면에서 제 1 콘텐트 그룹 및 제 2 콘텐트 그룹을 식별하기 위한 수단;
    상기 제 1 콘텐트 그룹의 적어도 일부가 상기 제 2 콘텐트 그룹의 적어도 일부를 폐색 또는 잠재적으로 폐색하는지 여부를 결정하기 위한 수단; 및
    상기 제 1 콘텐트 그룹의 적어도 일부가 상기 제 2 콘텐트 그룹의 적어도 일부를 폐색 또는 잠재적으로 폐색하는지 여부의 결정에 기초하여 상기 제 1 콘텐트 그룹 및 상기 제 2 콘텐트 그룹을 표현하기 위한 수단을 포함하는, 장치.
  44. 그래픽스 프로세싱을 위한 컴퓨터 실행가능 코드를 저장하는 컴퓨터 판독가능 저장 매체로서, 상기 코드는 프로세서에 의해 실행될 때 상기 프로세서로 하여금,
    장면에서 제 1 콘텐트 그룹 및 제 2 콘텐트 그룹을 식별하고,
    상기 제 1 콘텐트 그룹의 적어도 일부가 상기 제 2 콘텐트 그룹의 적어도 일부를 폐색 또는 잠재적으로 폐색하는지 여부를 결정하며, 그리고
    상기 제 1 콘텐트 그룹의 적어도 일부가 상기 제 2 콘텐트 그룹의 적어도 일부를 폐색 또는 잠재적으로 폐색하는지 여부의 결정에 기초하여 상기 제 1 콘텐트 그룹 및 상기 제 2 콘텐트 그룹을 표현하게 하는, 컴퓨터 판독가능 저장 매체.
KR1020227031647A 2020-04-03 2021-03-05 분할 렌더링에서의 폐색 핸들링을 위한 방법 및 장치 KR20220163366A (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US202063005164P 2020-04-03 2020-04-03
US63/005,164 2020-04-03
US17/061,179 2020-10-01
US17/061,179 US11468629B2 (en) 2020-04-03 2020-10-01 Methods and apparatus for handling occlusions in split rendering
PCT/US2021/021245 WO2021202055A2 (en) 2020-04-03 2021-03-05 Methods and apparatus for handling occlusions in split rendering

Publications (1)

Publication Number Publication Date
KR20220163366A true KR20220163366A (ko) 2022-12-09

Family

ID=77920859

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020227031647A KR20220163366A (ko) 2020-04-03 2021-03-05 분할 렌더링에서의 폐색 핸들링을 위한 방법 및 장치

Country Status (6)

Country Link
US (1) US11468629B2 (ko)
EP (1) EP4128170A2 (ko)
KR (1) KR20220163366A (ko)
CN (1) CN115244584A (ko)
TW (1) TW202141418A (ko)
WO (1) WO2021202055A2 (ko)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11625806B2 (en) * 2019-01-23 2023-04-11 Qualcomm Incorporated Methods and apparatus for standardized APIs for split rendering
US11748913B2 (en) * 2021-03-01 2023-09-05 Qualcomm Incorporated Modeling objects from monocular camera outputs
US11694409B1 (en) * 2021-12-08 2023-07-04 Google Llc Augmented reality using a split architecture

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9122053B2 (en) 2010-10-15 2015-09-01 Microsoft Technology Licensing, Llc Realistic occlusion for a head mounted augmented reality display
US10181214B2 (en) 2013-03-14 2019-01-15 Google Llc Smooth draping layer for rendering vector data on complex three dimensional objects
US9286725B2 (en) 2013-11-14 2016-03-15 Nintendo Co., Ltd. Visually convincing depiction of object interactions in augmented reality images
US9754419B2 (en) 2014-11-16 2017-09-05 Eonite Perception Inc. Systems and methods for augmented reality preparation, processing, and application
CN111788611B (zh) 2017-12-22 2021-12-03 奇跃公司 密集3d重建数据的缓存和更新

Also Published As

Publication number Publication date
EP4128170A2 (en) 2023-02-08
WO2021202055A2 (en) 2021-10-07
TW202141418A (zh) 2021-11-01
US20210312701A1 (en) 2021-10-07
CN115244584A (zh) 2022-10-25
WO2021202055A3 (en) 2021-11-11
US11468629B2 (en) 2022-10-11

Similar Documents

Publication Publication Date Title
US11069128B2 (en) Rendering an image from computer graphics using two rendering computing devices
US10991127B2 (en) Index buffer block compression
US10776997B2 (en) Rendering an image from computer graphics using two rendering computing devices
US20230039100A1 (en) Multi-layer reprojection techniques for augmented reality
US11468629B2 (en) Methods and apparatus for handling occlusions in split rendering
KR20230130756A (ko) 셰이딩 아틀라스를 사용한 분할 렌더링에서의 에러 은닉
US11908079B2 (en) Variable rate tessellation
US20210312704A1 (en) Rendering using shadow information
US20230147244A1 (en) Methods and apparatus for occlusion handling techniques
TW202137141A (zh) 用於邊緣壓縮抗混疊的方法和裝置
US20230101978A1 (en) Meshlet shading atlas
WO2023164792A1 (en) Checkerboard mask optimization in occlusion culling
WO2023055655A1 (en) Meshlet shading atlas