KR20230007358A - 증강 현실을 위한 멀티레이어 재투영 기법들 - Google Patents

증강 현실을 위한 멀티레이어 재투영 기법들 Download PDF

Info

Publication number
KR20230007358A
KR20230007358A KR1020227038324A KR20227038324A KR20230007358A KR 20230007358 A KR20230007358 A KR 20230007358A KR 1020227038324 A KR1020227038324 A KR 1020227038324A KR 20227038324 A KR20227038324 A KR 20227038324A KR 20230007358 A KR20230007358 A KR 20230007358A
Authority
KR
South Korea
Prior art keywords
virtual objects
reprojection
metadata
bounding boxes
bounding box
Prior art date
Application number
KR1020227038324A
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 KR20230007358A publication Critical patent/KR20230007358A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T19/00Manipulating 3D models or images for computer graphics
    • G06T19/006Mixed reality
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/14Digital output to display device ; Cooperation and interconnection of the display device with other functional units
    • G06F3/1454Digital output to display device ; Cooperation and interconnection of the display device with other functional units involving copying of the display data of a local workstation or window to a remote workstation or window so that an actual copy of the data is displayed simultaneously on two or more displays, e.g. teledisplay
    • GPHYSICS
    • G02OPTICS
    • G02BOPTICAL ELEMENTS, SYSTEMS OR APPARATUS
    • G02B27/00Optical systems or apparatus not provided for by any of the groups G02B1/00 - G02B26/00, G02B30/00
    • G02B27/0093Optical systems or apparatus not provided for by any of the groups G02B1/00 - G02B26/00, G02B30/00 with means for monitoring data relating to the user, e.g. head-tracking, eye-tracking
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/14Digital output to display device ; Cooperation and interconnection of the display device with other functional units
    • G06F3/147Digital output to display device ; Cooperation and interconnection of the display device with other functional units using display panels
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G5/00Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
    • G09G5/14Display of multiple viewports
    • GPHYSICS
    • G02OPTICS
    • G02BOPTICAL ELEMENTS, SYSTEMS OR APPARATUS
    • G02B27/00Optical systems or apparatus not provided for by any of the groups G02B1/00 - G02B26/00, G02B30/00
    • G02B27/01Head-up displays
    • G02B27/0179Display position adjusting means not related to the information to be displayed
    • G02B2027/0187Display position adjusting means not related to the information to be displayed slaved to motion of at least a part of the body of the user, e.g. head, eye
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2354/00Aspects of interface with display user

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Computer Hardware Design (AREA)
  • Optics & Photonics (AREA)
  • Computer Graphics (AREA)
  • Software Systems (AREA)
  • Processing Or Creating Images (AREA)

Abstract

본 개시는 증강 현실을 위한 멀티레이어 재투영 기법들을 위한, 저장 매체 상에 인코딩된 컴퓨터 프로그램들을 포함하는, 시스템들, 디바이스들, 장치 및 방법들을 제공한다. 디스플레이 프로세서는 복수의 가상 객체들을 포함하는 그래픽 데이터의 레이어를 획득할 수도 있다. 복수의 가상 객체들 각각은 복수의 바운딩 박스들 중 적어도 하나의 바운딩 박스와 연관될 수도 있다. 디스플레이 프로세서는 복수의 바운딩 박스들 중 적어도 하나의 바운딩 박스의 적어도 하나의 에지를 나타내는 메타데이터, 및 복수의 바운딩 박스들 각각과 연관된 재투영 명령들에 대응하는 메타데이터를 추가로 획득할 수도 있다. 디스플레이 프로세서는 적어도 하나의 바운딩 박스의 적어도 하나의 에지를 나타내는 메타데이터 및 재투영 명령들에 대응하는 메타데이터에 기초하여 복수의 가상 객체들을 재투영할 수도 있다.

Description

증강 현실을 위한 멀티레이어 재투영 기법들
관련 출원에 대한 상호 참조
본 출원은 "MULTI-LAYER REPROJECTION TECHNIQUES FOR AUGMENTED REALITY"이라는 제목으로 2020년 5월 8일에 출원된 인도 출원 제202041019594호의 이익을 주장하며, 그 전문이 본원에 참조에 의해 명백히 통합된다.
본 개시는 일반적으로 프로세싱 시스템들에 관한 것으로, 보다 자세하게는, 멀티레이어 재투영 기법들에 관한 것이다.
컴퓨팅 디바이스들은 종종 컴퓨팅 디바이스들에 의한 디스플레이를 위한 그래픽 데이터를 렌더링하기 위해 (예를 들어, GPU(graphics processing unit)를 활용하여) 그래픽 프로세싱(graphics processing)을 수행한다. 이러한 컴퓨팅 디바이스들은, 예를 들어 AR 디바이스들 및/또는 VR 디바이스들과 같은 확장 현실(extended reality; XR) 디바이스들, 컴퓨터 워크스테이션들, 스마트폰들과 같은 모바일 폰들, 임베디드 시스템들, 개인용 컴퓨터들, 태블릿 컴퓨터들, 비디오 게임 콘솔들 등을 포함할 수도 있다. GPU들은 그래픽 프로세싱 커맨드들을 실행하고 프레임을 출력하기 위해 함께 동작하는 하나 이상의 프로세싱 스테이지들을 포함하는 그래픽 프로세싱 파이프라인을 실행하도록 구성된다. CPU(central processing unit)는 GPU에 하나 이상의 그래픽 프로세싱 커맨드들을 발행함으로써 GPU의 동작을 제어할 수도 있다. 최근의 CPU들은 통상적으로 동시에 다수의 애플리케이션들을 실행가능하고, 애플리케이션들 각각은 실행 동안에 GPU를 활용할 필요가 있을 수도 있다. 디스플레이 상의 시각적 표현을 위한 콘텐츠를 제공하는 디바이스는 GPU 를 활용할 수도 있다.
XR 디바이스를 위한 가상 콘텐츠는 사용자의 관점(perspective)에 기초하여 렌더링될 수도 있다. 사용자의 관점이 변함에 따라, 가상 콘텐츠의 관점도 마찬가지로 변경될 필요가 있을 수도 있다. 이와 같이, 가상 콘텐츠에 대한 재투영 기법들을 개선할 필요가 있다.
다음은, 하나 이상의 양태들의 기본적인 이해를 제공하기 위한 그러한 양태들의 간략한 개요를 제시한다. 이 개요는 모든 고려된 양태들의 광범위한 개관이 아니며, 모든 양태들의 핵심적 또는 결정적인 엘리먼트들을 식별하지도 않고 임의의 또는 모든 양태들의 범위를 묘사하지도 않도록 의도된 것이다. 그 유일한 목적은, 이후에 제시되는 보다 상세한 설명에 대한 도입부로서 간략화된 형태로 하나 이상의 양태의 일부 개념들을 제시하는 것이다.
AR 애플리케이션들은 사용자의 관점에 기초하여 "현실 세계(real world)" 시야에 투영될 수도 있는 가상 콘텐츠를 렌더링하기 위해 헤드 포즈(head pose) 정보를 활용할 수도 있다. 그럼에도 불구하고, 가상 콘텐츠가 렌더링되는 시간부터 가상 콘텐츠가 디스플레이되는 시간까지, 사용자의 관점/헤드 포즈가 변경되었을 수도 있으며, 이는 가상 콘텐츠에 대한 등록 에러를 야기할 수도 있다(예를 들어, 가상 콘텐츠가 관점 밖에 있는 것으로 보일 수도 있다). 잠재적 등록 에러들을 처리하기 위해서, 프레임 내에 가상 콘텐츠를 디스플레이하기 직전에 가상 콘텐츠의 관점을 수정하도록 가상 콘텐츠가 워핑(warping)/재투영될 수도 있다. 그러나, 가상 콘텐츠에 포함된 상이한 가상 객체들이 (예를 들어, 가변 깊이(depth)들에서) 현실 세계에서의 상이한 포인트들에 등록될 수도 있다는 것을 고려하면, 가변 깊이들에서 상이한 가상 객체들 모두를 워핑/재투영하기 위해 동일한 호모그래피(homography)를 적용하는 것은 모든 가상 객체들에 대한 등록 에러들을 감소시키지 않을 수도 있다.
따라서, 단일 레이어 아이 버퍼(eye buffer)에 포함된 가상 객체들은 단일 레이어 아이 버퍼로부터 개별적으로 식별될 수도 있고 복수의 레이어들과 각각 연관될 수도 있다. 다수의 레이어들은 상이한 깊이 값들에 기초할 수도 있다. 가상 객체들을 포함하는 다수의 레이어들을 식별하는 재투영 엔진은, 가상 객체들 각각에 대한 등록 에러들을 감소시키기 위해, 단일 레이어 재투영 보다는, 가상 객체들에 대해 재투영을 레이어마다 수행할 수도 있다. 다수의 레이어들은 단일 레이어 아이 버퍼로부터 식별된 가상 객체들 주위에 각각 정의되는 바운딩 박스들에 대응할 수도 있다. 가상 객체들이 개별적으로 재투영된 후, 가상 객체들은 디스플레이 디바이스에 디스플레이될 단일 프레임으로 합성될 수도 있다.
본 개시의 양태에서, 방법, 컴퓨터 판독가능 매체, 및 장치가 제공된다. 장치는, 복수의 가상 객체들을 포함하는 그래픽 데이터의 레이어를 획득하는 것으로서, 복수의 가상 객체들 각각은 복수의 바운딩 박스들 중 적어도 하나의 바운딩 박스와 연관되는, 상기 복수의 가상 객체들을 포함하는 그래픽 데이터의 레이어를 획득하고; 복수의 바운딩 박스들 중 적어도 하나의 바운딩 박스의 적어도 하나의 에지를 나타내는 메타데이터를 획득하고; 복수의 바운딩 박스들 각각과 연관된 재투영 명령들에 대응하는 메타데이터를 획득하고; 적어도 하나의 바운딩 박스의 적어도 하나의 에지를 나타내는 메타데이터 및 재투영 명령들에 대응하는 메타데이터에 기초하여 복수의 가상 객체들을 재투영할 수도 있다.
본 개시의 다른 양태에서, 방법, 컴퓨터 판독가능 매체, 및 장치가 제공된다. 장치는, 레이어 내의 복수의 가상 객체들을 렌더링하는 것으로서, 복수의 가상 객체들 각각은 복수의 바운딩 박스들 중 적어도 하나의 바운딩 박스와 연관되는, 상기 복수의 가상 객체들을 렌더링하고; 복수의 바운딩 박스들 중 적어도 하나의 바운딩 박스의 적어도 하나의 에지를 나타내는 메타데이터를 결정하고; 복수의 바운딩 박스들 각각과 연관된 재투영 명령들에 대응하는 메타데이터를 결정하고; 그리고 복수의 가상 객체들의 재투영을 위해, 상기 바운딩 박스의 적어도 하나의 에지를 나타내는 메타데이터 및 상기 재투영 명령들에 대응하는 메타데이터를 송신할 수도 있다.
전술한 관련 목적들의 달성을 위해 하나 이상의 양태들은, 이하에 충분히 설명되고 청구항들에서 특히 적시되는 특징들을 포함한다. 다음의 설명 및 첨부된 도면들은 하나 이상의 양태들의 소정의 예시적인 특징들을 상세히 제시한다. 그러나 이들 특징들은, 다양한 양태들의 원리들이 채용될 수도 있는 다양한 방식들 중 몇 가지만을 나타내며, 이 설명은 모든 그러한 양태들 및 그들의 균등물들을 포함하도록 의도된다.
도 1은 본 개시의 하나 이상의 기법들에 따른 예시적인 콘텐츠 생성 시스템을 예시하는 블록도이다.
도 2는 본 개시의 하나 이상의 기법들에 따른 시야 내로 투영되는 복수의 가상 객체들을 예시한다.
도 3은 본 개시의 하나 이상의 기법들에 따른 가상 콘텐츠를 워핑하기 위해 사용될 다수의 레이어들을 결정하는 것에 대한 흐름도이다.
도 4는 본 개시의 하나 이상의 기법들에 따른 워프 엔진에 의해 수신되는 아이 포즈 정보에 기초하여 가상 콘텐츠를 워핑하는 것에 대한 흐름도이다.
도 5는 본 개시의 하나 이상의 기법들에 따른 그리딩?? 바운딩 박스를 정의하는 것에 대한 도면이다.
도 6은 본 개시의 하나 이상의 기법들에 따른 재투영 알고리즘을 예시하는 흐름도이다.
도 7은 본 개시의 하나 이상의 기법들에 따른 서버 디바이스와 클라이언트 디바이스 사이에서 분할되는 렌더링 및 디스플레이 기법들을 예시하는 흐름도이다.
도 8은 본 개시의 하나 이상의 기법들에 따른 가상 콘텐츠를 워핑하기 위해 활용되는 메타데이터를 추출하는 것에 대한 흐름도이다.
도 9는 본 개시의 하나 이상의 기법들에 따른 디스플레이 공간에 대해 정의되는 정점 그리드에 기초한 원스텝(one-step) 워핑 기법을 예시하는 흐름도이다.
도 10은 본 개시의 하나 이상의 기법들에 따른 렌더링된 좌표 공간에서 정의되는 정점들에 기초한 원스텝 워핑 기법을 예시하는 흐름도이다.
도 11은 서버와 클라이언트 사이의 예시적인 통신들을 예시하는 호 흐름도(call flow diagram)이다.
도 12는 본 개시의 하나 이상의 기법들에 따른 디스플레이 프로세싱의 예시적인 방법의 플로우차트이다.
도 13은 본 개시의 하나 이상의 기법들에 따른 디스플레이 프로세싱의 예시적인 방법의 플로우차트이다.
도 14는 본 개시의 하나 이상의 기법들에 따른 디스플레이 프로세싱의 예시적인 방법의 플로우차트이다.
도 15는 본 개시의 하나 이상의 기법들에 따른 디스플레이 프로세싱의 예시적인 방법의 플로우차트이다.
시스템들, 장치들, 컴퓨터 프로그램 제품들, 및 방법들의 다양한 양태들이 첨부된 도면을 참조하여 이하에 보다 충분하게 설명된다. 그러나, 본 개시는 많은 상이한 형태들로 구현될 수도 있고 본 개시의 전반에 걸쳐 제시된 임의의 특정 구조 또는 기능으로 한정되는 것으로 해석되지 않아야 한다. 오히려, 이들 양태들은 본 개시가 철저하고 완전하도록 그리고 당업자에게 본 개시의 범위를 충분히 전달하도록 제공된다. 본원에서의 교시들에 기초하여 당업자는, 본 개시의 다른 양태들과 독립적으로 구현되든, 또는 조합하여 구현되든 간에 본 개시의 범위는 본원에 개시된 시스템들, 장치들, 컴퓨터 프로그램 제품들, 및 방법들의 임의의 양태를 커버하도록 의도됨을 이해할 것이다. 예를 들어, 본원에서 제시된 임의의 수의 양태들을 이용하여 장치가 구현될 수도 있거나 방법이 실시될 수도 있다. 추가로, 본 개시의 범위는 본원에서 제시된 본 개시의 다양한 양태들에 더하거나 그 외로 다른 구조, 기능성, 또는 구조 및 기능성을 사용하여 실시되는 그러한 장치 또는 방법을 커버하도록 의도된다. 본원에서 개시된 임의의 양태는 청구항의 하나 이상의 엘리먼트들에 의해 구현될 수도 있다.
다양한 양태들이 본원에서 설명되지만, 이들 양태들의 많은 변형들 및 순열들이 본 개시의 범위에 속한다. 본 개시의 양태들의 일부 잠재적 이익들 및 이점들이 언급되지만, 본 개시의 범위는 특정 이익들, 사용들, 또는 목적들로 한정되도록 의도되지 않는다. 오히려, 본 개시의 양태들은 상이한 무선 기술들, 시스템 구성들, 네트워크들, 및 송신 프로토콜들에 폭넓게 적용가능한 것으로 의도되며, 이들 중 일부가 도면들 및 다음의 설명에 예로서 예시된다. 상세한 설명 및 도면들은 본 개시를 제한하기 보다는 단지 예시할 뿐이며, 본 개시의 범위는 첨부된 청구항들 및 그 등가물들에 의해 정의된다.
여러 양태들이 다양한 장치 및 방법들을 참조하여 제시된다. 이들 장치 및 방법들은 다양한 블록들, 컴포넌트들, 회로들, 프로세스들, 알고리즘들 등("엘리먼트들"로 총칭됨)에 의해 다음의 상세한 설명에 설명되고 첨부 도면들에 예시된다. 이들 엘리먼트들은 전자 하드웨어, 컴퓨터 소프트웨어, 또는 이들의 임의의 조합을 이용하여 구현될 수도 있다. 이들 엘리먼트들이 하드웨어로 구형되는지 또는 소프트웨어로 구현되는지는 전체 시스템에 부과된 특정 애플리케이션 및 설계 제약들에 의존한다.
예로서, 엘리먼트, 또는 엘리먼트의 임의의 부분, 또는 엘리먼트들의 임의의 조합은 (프로세싱 유닛들로도 지칭될 수도 있는) 하나 이상의 프로세서들을 포함하는 "프로세싱 시스템"으로서 구현될 수도 있다. 프로세서들의 예들은, 마이크로프로세서들, 마이크로제어기들, GPU(graphics processing unit)들, GPGPU(general purpose GPU)들, CPU(central processing unit)들, 애플리케이션 프로세서들, DSP(digital signal processor)들, RISC(reduced instruction set computing) 프로세서들, SOC(systems-on-chip)들, 베이스밴드 프로세서들, ASIC(application specific integrated circuit)들, FPGA(field programmable gate array)들, PLD(programmable logic device)들, 스테이트 머신들, 게이티드 로직(gated logic), 이산 하드웨어 회로들, 및 본 개시 전반에 걸쳐 설명된 다양한 기능성을 수행하도록 구성된 다른 적합한 하드웨어를 포함한다. 프로세싱 시스템 내 하나 이상의 프로세서들은 소프트웨어를 실행할 수도 있다. 소프트웨어는, 소프트웨어, 펌웨어, 미들웨어, 마이크로코드, 하드웨어 기술 언어, 또는 다른 것으로 지칭되건 간에, 명령들, 명령 세트들, 코드, 코드 세그먼트들, 프로그램 코드, 프로그램들, 서브프로그램들, 소프트웨어 컴포넌트들, 애플리케이션들, 소프트웨어 애플리케이션들, 소프트웨어 패키지들, 루틴들, 서브루틴들, 객체들, 실행가능물들, 실행 스레드들, 절차들, 함수들 등을 의미하는 것으로 폭넓게 해석될 수 있다.
애플리케이션이라는 용어는 소프트웨어를 지칭할 수도 있다. 본원에서 설명되는 바와 같이, 하나 이상의 기법들은 하나 이상의 기능들을 수행하도록 구성되는 애플리케이션(예를 들어, 소프트웨어)를 지칭할 수도 있다. 이러한 예들에서, 애플리케이션은 메모리(예를 들어, 프로세서의 온칩(on-chip) 메모리, 시스템 메모리, 또는 임의의 다른 메모리)에 저장될 수도 있다. 프로세서와 같은, 본 명세서에 설명된 하드웨어는 애플리케이션을 실행하도록 구성될 수도 있다. 예를 들어 애플리케이션은, 하드웨어에 의해 실행될 경우, 하드웨어로 하여금 본원에서 설명된 하나 이상의 기법들을 수행하게 하는 코드를 포함하는 것으로 설명될 수도 있다. 일 예로서, 하드웨어는 메모리로부터 코드에 액세스하고 메모리로부터 액세스된 코드를 실행하여 본원에서 설명된 하나 이상의 기법들을 수행할 수도 있다. 일부 예들에서, 컴포넌트들은 본 개시에서 식별된다. 그러한 예들에서, 컴포넌트들은 하드웨어, 소프트웨어, 또는 이들의 조합일 수도 있다. 컴포넌트들은 별개의 컴포넌트들 또는 단일 컴포넌트의 서브 컴포넌트들일 수도 있다.
본원에서 설명된 하나 이상의 예들에서, 설명된 기능들은 하드웨어, 소프트웨어, 또는 이들의 임의의 조합에서 구현될 수도 있다. 소프트웨어로 구현되는 경우, 기능들은 컴퓨터 판독가능 매체 상에 하나 이상의 명령들 또는 코드로서 인코딩되거나 저장될 수도 있다. 컴퓨터 판독가능 매체는 컴퓨터 저장 매체를 포함한다. 저장 매체는 컴퓨터에 의해 액세스될 수 있는 임의의 이용가능한 매체일 수도 있다. 제한이 아닌 예로서, 이러한 컴퓨터 판독가능 매체는 RAM(random-access memory), ROM(read-only memory), EEPROM(electrically erasable programmable ROM), 광학 디스크 스토리지, 자기 디스크 스토리지, 다른 자기 저장 디바이스들, 전술한 유형들의 컴퓨터 판독가능 매체의 조합, 또는 컴퓨터에 의해 액세스될 수 있는 명령들 또는 데이터 구조들의 형태의 컴퓨터 실행가능 코드를 저장하는데 사용될 수 있는 임의의 다른 매체를 포함할 수도 있다.
AR 애플리케이션들은 사용자의 관점에 기초하여 "현실 세계" 시야에 투영될 수도 있는 가상 콘텐츠를 렌더링하기 위해 헤드 포즈 정보를 활용할 수도 있다. 그럼에도 불구하고, 가상 콘텐츠가 렌더링되는 시간부터 가상 콘텐츠가 디스플레이되는 시간까지, 사용자의 관점/헤드 포즈가 변경되었을 수도 있으며, 이는 가상 콘텐츠에 대한 등록 에러를 야기할 수도 있다(예를 들어, 가상 콘텐츠가 관점 밖에 있는 것으로 보일 수도 있다). 잠재적 등록 에러들을 처리하기 위해서, 프레임 내에 가상 콘텐츠를 디스플레이하기 직전에 가상 콘텐츠의 관점을 수정하도록 가상 콘텐츠가 워핑(warping)/재투영될 수도 있다. 그러나, 가상 콘텐츠에 포함된 상이한 가상 객체들이 (예를 들어, 가변 깊이들에서) 현실 세계에서의 상이한 포인트들에 등록될 수도 있다는 것을 고려하면, 가변 깊이들에서 상이한 가상 객체들 모두를 워핑/재투영하기 위해 동일한 호모그래피를 적용하는 것은 모든 가상 객체들에 대한 등록 에러들을 감소시키지 않을 수도 있다.
따라서, 단일 레이어 아이 버퍼에 포함된 가상 객체들은 단일 레이어 아이 버퍼로부터 개별적으로 식별될 수도 있고 복수의 레이어들과 각각 연관될 수도 있다. 다수의 레이어들은 상이한 깊이 값들에 기초할 수도 있다. 가상 객체들을 포함하는 다수의 레이어들을 식별하는 재투영 엔진은, 가상 객체들 각각에 대한 등록 에러들을 감소시키기 위해, 단일 레이어 재투영 보다는, 가상 객체들에 대해 재투영을 레이어마다 수행할 수도 있다. 다수의 레이어들은 단일 레이어 아이 버퍼로부터 식별된 가상 객체들 주위에 각각 정의되는 바운딩 박스들에 대응할 수도 있다. 가상 객체들이 개별적으로 재투영된 후, 가상 객체들은 디스플레이 디바이스에 디스플레이될 단일 프레임으로 합성될 수도 있다.
도 1은 본 개시의 하나 이상의 기법들을 구현하도록 구성된 예시적인 콘텐츠 생성 시스템(100)을 예시하는 블록도이다. 콘텐츠 생성 시스템(100)은 디바이스(104)를 포함한다. 디바이스(104)는 본원에서 설명된 다양한 기능들을 수행하기 위한 하나 이상의 컴포넌트들 또는 회로들을 포함할 수도 있다. 일부 예들에서, 디바이스(104)의 하나 이상의 컴포넌트들은 SOC의 컴포넌트들일 수도 있다. 디바이스(104)는 본 개시의 하나 이상의 기법들을 수행하도록 구성되는 하나 이상의 컴포넌트들을 포함할 수도 있다. 도시된 예에서, 디바이스(104)는 프로세싱 유닛(120) 및 시스템 메모리(124)를 포함할 수도 있다. 일부 양태들에서, 디바이스(104)는 복수의 선택적 컴포넌트들(예를 들어, 통신 인터페이스(126), 트랜시버(132), 수신기(128), 송신기(130), 디스플레이 프로세서(127), 및 하나 이상의 디스플레이들(131))을 포함할 수도 있다. 디스플레이(들)(131)은 하나 이상의 디스플레이들(131)을 지칭할 수도 있다. 예를 들어, 디스플레이(131)는 단일의 디스플레이, 또는 제1 디스플레이 및 제2 디스플레이를 포함할 수도 있는 다수의 디스플레이들을 포함할 수도 있다. 제1 디스플레이는 좌측 아이 디스플레이일 수도 있고 제2 디스플레이는 우측 아이 디스플레이일 수도 있다. 일부 예들에서, 제1 디스플레이 및 제2 디스플레이는 이에 제시하기 위한 상이한 프레임들을 수신할 수도 있다. 다른 예들에서, 제1 및 제2 디스플레이는 이에 제시하기 위한 동일한 프레임들을 수신할 수도 있다. 추가 예들에서, 그래픽 프로세싱의 결과들은 디바이스 상에 디스플레이되지 않을 수도 있는데, 예를 들어, 제1 디스플레이 및 제2 디스플레이는 이에 제시하기 위한 어떠한 프레임들도 수신하지 않을 수도 있다. 대신에, 프레임들 또는 그래픽 프로세싱 결과들이 다른 디바이스로 전송될 수도 있다. 일부 양태들에서, 이는 분할 렌더링으로 지칭될 수도 있다.
프로세싱 유닛(120)은 내부 메모리(121)를 포함할 수도 있다. 프로세싱 유닛(120)은 그래픽 프로세싱 파이프라인(107)을 사용하여 그래픽 프로세싱을 수행하도록 구성될 수도 있다. 일부 예들에서 디바이스(104)는, 하나 이상의 디스플레이들(131)에 의해 디스플레이되기 전에 프로세싱 유닛(120)에 의해 생성된 하나 이상의 프레임들에 대해 하나 이상의 디스플레이 프로세싱 기법들을 수행하기 위한, 디스플레이 프로세서(127)와 같은 디스플레이 프로세서를 포함할 수도 있다. 디스플레이 프로세서(127)는 디스플레이 프로세싱을 수행하도록 구성될 수도 있다. 예를 들어, 디스플레이 프로세서(127)는 프로세싱 유닛(120)에 의해 생성된 하나 이상의 프레임들에 대해 하나 이상의 디스플레이 프로세싱 기법들을 수행하도록 구성될 수도 있다. 하나 이상의 디스플레이들(131)은 디스플레이 프로세서(127)에 의해 프로세싱된 프레임들을 디스플레이하도록 또는 달리 제시하도록 구성될 수도 있다. 일부 예들에서, 하나 이상의 디스플레이들(131)은 LCD(liquid crystal display), 플라즈마 디스플레이, OLED(organic light emitting diode) 디스플레이, 투영 디스플레이 디바이스, 증강 현실 디스플레이 디바이스, 가상 현실 디스플레이 디바이스, 헤드 탑재형 디스플레이, 또는 임의의 다른 유형의 디스플레이 디바이스 중 하나 이상을 포함할 수도 있다.
시스템 메모리(124)와 같은, 프로세싱 유닛(120) 외부의 메모리는 프로세싱 유닛(120)에 액세스가능할 수도 있다. 예를 들어, 프로세싱 유닛(120)은 외부 메모리, 이를 테면 시스템 메모리(124)에 대해 판독 및/또는 기록하도록 구성될 수도 있다. 프로세싱 유닛(120)은 버스를 통해 시스템 메모리(124)에 통신가능하게 커플링될 수도 있다. 일부 예들에서, 프로세싱 유닛(120)은 버스를 통해 또는 상이한 접속을 통해 내부 메모리(121)에 통신가능하게 커플링될 수도 있다. 내부 메모리(121) 또는 시스템 메모리(124)는 하나 이상의 휘발성 또는 비휘발성 메모리들 또는 저장 디바이스들을 포함할 수도 있다. 일부 예들에서, 내부 메모리(121) 또는 시스템 메모리(124)는 RAM, SRAM(static random access memory), DRAM(dynamic random access memory), EPROM(erasable programmable ROM), EEPROM, 플래시 메모리, 자기 데이터 매체 또는 광학 저장 매체 또는 임의의 다른 유형의 메모리를 포함할 수도 있다.
내부 메모리(121) 또는 시스템 메모리(124)는 일부 예들에 따른 비일시적 저장 매체일 수도 있다. 용어 "비일시적(non-transitory)"은, 저장 매체가 캐리어파(carrier wave) 또는 전파 신호(propagated signal)에서 구현되지 않는다는 것을 나타낼 수도 있다. 그러나 용어 "비일시적"은 내부 메모리(121) 또는 시스템 메모리(124)가 이동가능하지 않음을 또는 그 콘텐츠들이 정적임을 의미하는 것으로 해석되어서는 안 된다. 일 예로서, 시스템 메모리(124)는 디바이스(104)로부터 제거될 수도 있고 다른 디바이스로 이동될 수도 있다. 다른 예로서, 시스템 메모리(124)는 디바이스(104)로부터 제거가능하지 않을 수도 있다.
프로세싱 유닛(120)은 CPU, GPU, GPGPU, 또는 그래픽 프로세싱을 수행하도록 구성될 수도 있는 임의의 다른 프로세싱 유닛일 수도 있다. 일부 예들에서, 프로세싱 유닛(120)은 디바이스(104)의 마더보드에 통합될 수도 있다. 추가의 예들에서, 프로세싱 유닛(120)은 디바이스(104)의 마더보드의 포트에 설치된 그래픽 카드 상에 존재할 수도 있거나, 그렇지 않으면 디바이스(104)와 상호동작하도록 구성된 주변 디바이스 내에 통합될 수도 있다. 프로세싱 유닛(120)은 하나 이상의 프로세서들, 이를 테면 하나 이상의 마이크로프로세서들, GPU들, ASIC들, FPGA들, ALU(arithmetic logic unit)들, DSP들, 이산 로직, 소프트웨어, 하드웨어, 펌웨어, 다른 등가의 집적 또는 이산 로직 회로, 또는 이들의 임의의 조합을 포함할 수도 있다. 기법들이 소프트웨어에서 부분적으로 구현되면, 프로세싱 유닛(120)은 소프트웨어에 대한 명령들을 적합한 비일시적인 컴퓨터 판독가능 저장 매체, 예컨대 내부 메모리(121)에 저장할 수도 있고, 본 개시의 기법들을 수행하기 위해 하나 이상의 프로세서들을 사용하여 하드웨어에서 명령들을 실행할 수도 있다. 하드웨어, 소프트웨어, 하드웨어와 소프트웨어의 조합 등을 포함하는 전술한 것들 중 어느 것이라도 하나 이상의 프로세서들인 것으로 고려될 수도 있다.
일부 양태들에서, 콘텐츠 생성 시스템(100)은 선택적인 통신 인터페이스(126)를 포함할 수도 있다. 통신 인터페이스(126)는 수신기(128) 및 송신기(130)를 포함할 수도 있다. 수신기(128)는 디바이스(104)에 대해 본원에서 설명된 임의의 수신 기능을 수행하도록 구성될 수도 있다. 추가적으로, 수신기(128)는 정보, 예를 들어 눈 또는 머리 포지션 정보, 렌더링 커맨드들, 및/또는 위치 정보를 다른 디바이스로부터 수신하도록 구성될 수도 있다. 송신기(130)는 디바이스(104)에 대해 본원에서 설명된 임의의 송신 기능을 수행하도록 구성될 수도 있다. 예를 들어, 송신기(130)는 콘텐츠에 대한 요청을 포함할 수도 있는 정보를 다른 디바이스에 송신하도록 구성될 수도 있다. 수신기(128) 및 송신기(130)는 트랜시버(132)로 결합될 수도 있다. 그러한 예들에서, 트랜시버(132)는 디바이스(104)에 대해 본원에서 설명된 임의의 수신 기능 및/또는 송신 기능을 수행하도록 구성될 수도 있다.
다시 도 1을 참조하면, 소정의 양태들에서 디스플레이 프로세서(127)는, 복수의 가상 객체들을 포함하는 그래픽 데이터의 레이어를 획득하는 것으로서, 복수의 가상 객체들 각각은 복수의 바운딩 박스들 중 적어도 하나의 바운딩 박스와 연관되는, 상기 복수의 가상 객체들을 포함하는 그래픽 데이터의 레이어를 획득하고; 복수의 바운딩 박스들 중 적어도 하나의 바운딩 박스의 적어도 하나의 에지를 나타내는 메타데이터를 획득하고; 복수의 바운딩 박스들 각각과 연관된 재투영 명령들에 대응하는 메타데이터를 획득하고; 그리고 적어도 하나의 바운딩 박스의 적어도 하나의 에지를 나타내는 메타데이터 및 재투영 명령들에 대응하는 메타데이터에 기초하여 복수의 가상 객체들을 재투영하도록 구성된 재투영 엔진(198)을 포함할 수도 있다. 추가적인 양태들에서 디스플레이 프로세서(127)는, 레이어 내의 복수의 가상 객체들을 렌더링하는 것으로서, 복수의 가상 객체들 각각은 복수의 바운딩 박스들 중 적어도 하나의 바운딩 박스와 연관되는, 상기 복수의 가상 객체들을 렌더링하고; 복수의 바운딩 박스들 중 적어도 하나의 바운딩 박스의 적어도 하나의 에지를 나타내는 메타데이터를 결정하고; 복수의 바운딩 박스들 각각과 연관된 재투영 명령들에 대응하는 메타데이터를 결정하고; 그리고 복수의 가상 객체들의 재투영을 위해, 상기 바운딩 박스의 적어도 하나의 에지를 나타내는 메타데이터 및 상기 재투영 명령들에 대응하는 메타데이터를 송신하도록 구성된 메타데이터 추출 엔진(199)을 포함할 수도 있다.
디바이스(104)와 같은 디바이스는, 본원에서 설명된 하나 이상의 기법들을 수행하도록 구성된 임의의 디바이스, 장치, 또는 시스템을 지칭할 수도 있다. 예를 들면, 디바이스는 서버, 기지국, 사용자 장비, 클라이언트 디바이스, 스테이션, 액세스 포인트, 개인용 컴퓨터, 데스크톱 컴퓨터, 랩톱 컴퓨터, 태블릿 컴퓨터, 컴퓨터 워크스테이션, 또는 메인프레임 컴퓨터와 같은 컴퓨터, 최종 제품(end product), 장치, 폰, 스마트폰, 서버, 비디오 게임 플랫폼 또는 콘솔, 포터블 비디오 게임 디바이스 또는 PDA(personal digital assistant)과 같은 핸드헬드 디바이스, 스마트 워치, 증강 현실 디바이스, 또는 가상 현실 디바이스와 같은 웨어러블 컴퓨팅 디바이스, 비(non-)웨어러블 디바이스, 디스플레이 또는 디스플레이 디바이스, 텔레비전, 텔레비전 셋톱박스, 중간 네트워크 디바이스, 디지털 미디어 플레이어, 비디오 스트리밍 디바이스, 콘텐츠 스트리밍 디바이스, 차량 내(in-vehicle) 컴퓨터, 임의의 모바일 디바이스, 그래픽 콘텐츠를 생성하도록 구성된 임의의 디바이스, 또는 본원에 설명된 하나 이상의 기법들을 수행하도록 구성된 임의의 디바이스일 수도 있다. 본원에서의 프로세스들은 특정 컴포넌트(예를 들어, GPU)에 의해 수행되는 것으로 설명될 수도 있지만, 다른 실시예들에서, 개시된 실시예들과 연관된 다른 컴포넌트들(예를 들어, CPU)을 사용하여 수행될 수도 있다.
도 2는 본 개시의 하나 이상의 기법들에 따라 시야(200) 내로 투영된 복수의 가상 객체들(202)을 갖는 시야(200)를 예시한다. 증강 현실(AR) 및 가상 현실(VR) 양자 모두에 대한 생성된 콘텐츠는 (예를 들어, 앵커 포인트를 통해) "현실 세계"에서 정적/고정된 것으로 보이도록 구성될 수도 있다. 예를 들어, 생성된 가상 객체(202)는, 현실 세계에서 객체가 거동할 것으로 예상되는 방식과 유사하게, 사용자의 관점이 변할 때 객체가 동일한 위치에 머물러 있는 것처럼 보이도록 구성될 수도 있다. 따라서, 시야(200) 내의 가상 객체들(202)을 렌더링하는 것은, 가상 객체(202)가 사용자의 대응하는 관점에 기초하여 디스플레이될 수도 있도록 사용자의 헤드 포즈와 연관된 정보를 결정하는 것을 포함할 수도 있다. 그러나, 가상 객체(202)가 렌더링되는 시간부터 가상 객체(202)가 디스플레이되는 시간까지, 사용자의 관점/헤드 포즈가 변경되었을 수도 있으며, 이는 등록 에러를 초래할 수도 있다. 현실 세계에서의 정적인 객체에 등록된 가상 객체(202)가 사용자에게 현재 사용자 관점에 따라 구성되지 않는 것으로/포지션 밖에 있는 것으로 보일 때 등록 오류가 발생할 수도 있다.
많은 경우들에서, 사소한 등록 오류들일지라도 사용자에게 눈에 띌 수도 있다. 1 미터(m) 깊이에 대한 단일 레이어 워핑을 갖는 프레임당 4 센티미터(cm)의 포즈 이동은 4 m 깊이에서 1.70의 에러율을 초래할 수도 있다. 인간의 눈이 1/60 정도의 분리를 인지할 수 있기 때문에, 콘텐츠가 현실 세계에서 고정된 것으로 보이도록 앵커링된 가상 콘텐츠를 유지할 수 있는 것은 AR 애플리케이션의 품질에 영향을 줄 수도 있다.
따라서, 현실 세계에 대한 가상 콘텐츠의 등록은, 콘텐츠가 렌더링되는 시간과 콘텐츠가 디스플레이되는 시간 사이의 지연(예를 들어, m2r2p(motion-to-render-to-photon) 지연) 및/또는 디스플레이 레이트(rate)에 관한 렌더링 레이트에 의해(예를 들어, 디스플레이 레이트에 대해 느린 렌더링 레이트는 지터(jitter)/등록 에러들을 야기할 수도 있음) 영향을 받을 수도 있다. 예를 들어, 디스플레이 레이트가 초당 90 프레임이고 렌더링 레이트가 초당 45 프레임이면, 모든 다른 프레임은 선행 프레임의 반복일 수도 있다. 보다 구체적으로, 각 프레임 내의 가상 객체(202)는 이러한 조건들 하에서 동일한 위치에 두 번 디스플레이될 수도 있으며, 이는 가상 객체(202)가 사용자의 관점이 변할 때 덜 현실적으로 보이게 할 수도 있다. 사용자의 변화하는 헤드 포즈가 관점의 매끄러운 변화와 연관될 수도 있지만, 가상 객체(202)는 그럼에도 불구하고 느린 렌더링 레이트의 결과로서 증분 단계들로 이동하는 것으로 보일 수도 있다.
잠재적 등록 에러들을 처리하기 위해서, 현재 식별된 헤드 포즈에 기초하여 콘텐츠의 관점을 수정하기 위해 프레임을 디스플레이하기 직전에 렌더링된 프레임이 워핑/재투영될 수도 있다. 이러한 수정들은 헤드 포즈에 대한 변화들과 연관된 지연을 감소시키도록 ATW(asynchronous time-warp) 재투영을 활용할 수도 있다. 즉, ATW는 결정된 호모그래피에 기초하여 콘텐츠를 디스플레이하기 직전에 렌더링된 콘텐츠를 워핑/재투영할 수도 있다. 호모그래피가 디스플레이된 콘텐츠의 일부 아티팩트(artifact)들을 숨길 수도 있지만, 시야(200)에 대한 전체 회전을 사용자 배향에 기초하는 것은 잠재적 등록 에러들을 충분하게 처리하지 않을 수도 있다.
가상 객체들(202)을 렌더링/워핑하기 위한 근사화들이 APR(asynchronous planar reprojection)에 기초하여 추가로 수행될 수도 있다. 본원에서 사용되는 바와 같이 APR은, 깊이 버퍼로부터 렌더링 시간에 결정된 평면 파라미터들 및 컴퓨터 셰이더(shader)에 의해 결정된 렌더링 평면을 위해, 근사화된 렌더링 평면이 디스플레이 이전에 호모그래피를 통해 이미지 평면에 매핑(mapping)되는 기법을 지칭한다. APR은 사용자 배향(예를 들어, 병진 및 회전)에 더하여 헤드 포지션 변화들을 고려할 수도 있기 때문에, ATW 기법들을 향상시키기 위해 APR이 사용될 수도 있다. 그러나, APR이 사용되더라도, APR도 ATW도 시야(200)에 포함된 상이한 가상 객체들(202)의 다양한 깊이들을 고려하지 않을 수도 있기 때문에 일부 아티팩트들이 여전히 사용자에 의해 관찰될 수도 있다. 예를 들어, APR 및 ATW 재투영 기법들은 디스플레이된 콘텐츠의 관점을 수정할 때 무한대에 위치된 배경 객체들에 기초할 수도 있다. 매우 멀리 떨어져 보이는 가상 객체들(202)에 대해, 등록 에러들은 사용자에 의해 관찰가능하지 않을 수도 있다. 그러나, 무한대보다 더 가까워 보이는 가상 객체들(202)에 대해, 그러한 가상 객체들의 등록 에러들이 사용자에게 더 눈에 띌 수도 있다.
AR에서의 상이한 가상 객체(202)가 (예를 들어, 가변 깊이들에서) 현실 세계에서의 상이한 포인트들에 등록될 수도 있다는 것을 고려하면, 단일 호모그래피를 전체 프레임에 적용하는 것은 프레임의 가변 깊이들에서 가상 객체들(202) 모두에 대한 등록 에러들을 감소시키지 않을 수도 있다. 따라서, 다수의 레이어들이 상이한 가상 객체들(202)과 연관되어 상이한 가상 객체들(202)에 대한 각각의 깊이 값들을 제공할 수도 있다. 예를 들면, 단일 레이어 아이 버퍼에 기초하여 콘텐츠를 렌더링하기보다는, 콘텐츠는 렌더링되고 상이한 가상 객체들(202)에 대한 별개의/다수의 레이어들과 연관될 수도 있으며, 이는 가상 객체들(202) 각각에 대한 등록 에러들을 감소시키기 위해 개별적으로 워핑(예를 들어, 레이어마다의 워핑)될 수도 있다. 즉, 프레임 내의 가상 객체들(202) 각각은 개별적으로 추출되고, 디스플레이되기 직전에 독립적으로 워핑될 수도 있다. 이러한 접근법은, 현실 세계에 대한 가상 객체들(202)의 더 정확한 등록을 초래할 수도 있고 프레임 내의 모든 가상 객체들(202)의 등록 에러들을 집합적으로 감소시킬 수도 있다. 각각의 가상 객체(202)는, 단일 프레임으로 가상 객체들(202)의 합성 및 디스플레이 이전에 가상 객체들(202)을 개별적으로 재투영하기 위한 개별적으로 렌더링된 레이어들에 대응하는 바운딩 박스들(204)(예컨대, 그리딩된 타일들을 포함할 수도 있음) 내에 각각 포함될 수도 있다.
특정 실시예들에서, 다수의 레이어들은 AR 애플리케이션에 의해 생성될 수도 있다. 다른 구성들에서, 상이한 콘텐츠를 생성하는 다수의/상이한 애플리케이션들은 디스플레이되기 전에 함께 합성되는 별개의 아이 버퍼들을 가질 수도 있어서, 별개의 아이 버퍼들이 워핑을 위해 다수의/상이한 레이어들을 정의하는 데 사용될 수도 있다. 또 다른 구성들에서, 상이한 깊이들의 다수의 가상 객체들(202)을 포함하는 콘텐츠가, 다수의 가상 객체들(202)이 추출될 수도 있는 단일 레이어 아이 버퍼 내에 생성될 수도 있고, 각기 워핑될 수도 있는 다수의 비중첩 "의사(pseudo) 레이어들” 내에 포함될 수도 있다. 의사 레이어들 각각을 워핑하기 위한 메타데이터는, 메타데이터 특정의 APR 호모그래피를 수행하고 디스플레이를 위해 의사 레이어들을 함께 합성하기 위해 렌더링 프로세스 동안 추출될 수도 있다. 각각의 의사 레이어에 대한 렌더링 평면 파라미터들(예를 들어, a, b, c)은 그 레이어에 대한 APR 메타데이터를 포함할 수도 있다. 예를 들어, 아이 버퍼 및 평면 파라미터들이 합성기에 제공되어 워핑된 가상 객체(202)를 변경된 사용자 포즈에 기초하여 디스플레이하기 전에 아이 버퍼를 수정할 수도 있다. 메타데이터 내 평면 파라미터들은 의사 레이어들 각각에 대해 개별적으로 계산될 수도 있다.
도 3은 본 개시의 하나 이상의 기법들에 따른, 가상 콘텐츠를 워핑하기 위해 사용될 다수의 레이어들을 결정하는 것에 대한 흐름도(300)이다. 단일 아이 버퍼에 기초하여 가상 콘텐츠를 생성하는 AR 애플리케이션들(302)의 경우, 다수의 레이어들(예를 들어, 의사 레이어들)이 디스플레이 포즈에 기초한 재투영/워핑을 위해 개별적으로 추출될 수도 있다. AR 애플리케이션(302)으로부터의 콘텐츠는, 흐름도(300)에서 파선에 의해 분리된 프로세싱 시스템의 렌더링 측 및 디스플레이 측 양자 모두에서 프로세싱될 수도 있다. AR 애플리케이션(302)으로부터의 가상 콘텐츠의 렌더링 및 디스플레이는 동일한 디바이스에 의해 또는 상이한 디바이스들에 의해(예를 들어, AR 안경에 의해 또는 스마트폰 및 연결된 AR 안경에 의해) 수행될 수도 있다. 프로세싱 시스템의 디스플레이 측은 디스플레이 디바이스(예를 들어, AR 안경)에서 일반적으로 수행된다. 프로세싱 시스템의 렌더링 측은 현실 세계에 대한 가상 콘텐츠를 생성/앵커링하기 위해 헤드 포즈 입력, 제어기 입력, 앵커 포즈 입력 등과 같은 입력을 AR 애플리케이션(302)에서 수신할 수도 있다. 입력에 기초하여, AR 애플리케이션(302)은 이미지 프레임(306)에 대한 아이 버퍼 및/또는 깊이 버퍼를 렌더링할 수도 있다. 이미지 프레임(306) 내의 공백 공간은, 예를 들어 AR 안경을 착용한 사용자가 현실 세계를 관찰할 수도 있는, 아이 버퍼의 투명한 영역에 대응할 수도 있다. 아이 버퍼의 채워진 공간/불투명한 영역들은 AR 애플리케이션(302)에 기초하여 생성된 가상 콘텐츠에 대응할 수도 있다.
플러그인(304)(예를 들어, 커스텀 게임 엔진 플러그인)은 AR 애플리케이션(302)으로부터 수신된 아이 버퍼 및 깊이 버퍼에 기초하여 바운딩 박스들 각각에 대한 및/또는 그리딩?? 바운딩 박스의 각각의 타일에 대한 워프 파라미터들 및 바운딩 박스 정보를 결정하는 데 사용될 수도 있다. 다른 실시예들에서, 바운딩 박스/타일 정보 및 워프 파라미터들은 AR 애플리케이션(302)에 의해 결정될 수도 있다. AR 애플리케이션(302)으로부터 수신된 가상 콘텐츠 주위에 정의된 바운딩 박스들은 의사 레이어들에 각각 대응할 수도 있다. 각각의 바운딩 박스에 대해, 플러그인(304)은 바운딩 박스들 내에 포함된 콘텐츠를 각각 워핑하기 위한 메타데이터를 식별할 수도 있으며, 여기서 메타데이터는 각각의 바운딩 박스/타일에 특정적일 수도 있다.
바운딩 박스들 및 평면 파라미터들과 연관된 메타데이터 및 아이 버퍼는 프로세싱 시스템의 디스플레이 측 상의 AR 런타임/워프 (APR) 엔진(308)에 제공될 수도 있다. AR 런타임/워프 (APR) 엔진(308)은 별개의/다수의 레이어들과 연관된 바운딩 박스들 각각에 포함된 콘텐츠를 독립적으로 워핑하기 위해 현재 헤드 포즈, 앵커 포즈 등을 결정하기 위한 입력을 수신할 수도 있다. 워핑된 콘텐츠(310)는 워핑된 아이 버퍼를 통해 디스플레이(312)에 제공될 수도 있다. 플러그인(304)으로부터의 메타데이터 없이, AR 런타임/워프 (APR) 엔진(308)은 그렇지 않으면 단일 레이어 파라미터들에 기초하여 아이 버퍼/이미지 프레임(306)의 모든 콘텐츠를 함께 워핑할 수도 있다.
워프 메타데이터를 결정하기 위해 사용되는 깊이 버퍼는 바운딩 박스들/타일들을 결정하기 위해 추가로 사용될 수도 있다. 뷰잉(viewing) 평면 내로 투영된 후에 서로 시각적으로 인접한 가상 객체들은 사용자에 관한 상이한 깊이들에서 있을 수도 있고, 별개의 레이어들에 기초하여 디스플레이될 수도 있다. 서로 가까운 두 객체에 대한 깊이 정보가 없다면, 두 객체에 대응하는 바운딩 박스들은 결국 단일의 바운딩 박스로 결합될 수도 있다. 그러나, 렌더링된 아이 버퍼의 콘텐츠가 상이한 깊이들에서 위치될 수도 있기 때문에, 결합된/단일의 바운딩 박스 내의 모든 콘텐츠에 동일한 호모그래피가 적용되면 등록 에러가 발생할 수도 있다. 깊이 정보에 추가로, 상이한 깊이들에 대응하는 그리딩?? 바운딩 박스의 타일들 또는 더 작은 바운딩 박스들이, 워핑된 아이 버퍼를 통해 디스플레이(312)에 콘텐츠를 디스플레이하기 위해 결정될 수도 있다.
일부 경우들에서, AR 애플리케이션(302)은 깊이 버퍼를 제공하지 않을 수도 있다. 따라서, 아이 버퍼와 연관될 수도 있는 좌측 아이 버퍼와 우측 아이 버퍼 사이에 DFS(Depth-From-Stereo)를 수행함으로써 콘텐츠의 깊이가 깊이 버퍼로부터 결정될 수도 있다. 예를 들어, 콘텐츠의 깊이는 좌측 아이 버퍼와 우측 아이 버퍼 간의 기하학적 비교에 기초하여 결정될 수도 있어서, 깊이 버퍼가 AR 애플리케이션(302)으로부터 제공되었던 것처럼 콘텐츠가 재투영될 수도 있다.
도 4는 본 개시의 하나 이상의 기법들에 따른 워프 엔진에 의해 수신되는 아이 포즈 정보(402)에 기초하여 가상 콘텐츠를 워핑하는 것에 대한 흐름도(400)이다. 흐름도(400)는 흐름도(300)와 유사할 수도 있지만, AR 런타임/워프 (APR) 엔진(308)에 의해 수신된 아이 포즈 정보(402)가 추가된다. 아이 포즈 정보(402)는 (예를 들어, AR 안경의) 아이 트래킹(eye-tracking) 기법들에 기초하여 생성될 수도 있고 사용자의 눈이 관찰하고 있는 방향을 나타낼 수도 있다. 따라서, 일부 바운딩 박스들은 눈이 관찰하고 있는 방향에 기초하여 다른 바운딩 박스들보다 더 높은 우선 순위를 가질 수도 있다. 높은 우선 순위 바운딩 박스에 적용되는 동일한 호모그래피가 전체 아이 버퍼에도 적용될 수도 있다.
사용자의 아이 포즈가 변함에 따라, 전체 아이 버퍼에 적용되는 호모그래피 또한 현재 사용자에 의해 상이한 바운딩 박스가 관찰되고 있음을 나타내는 아이 포즈 정보에 기초하여 변경될 수도 있다. 동일한 호모그래피에 기초하여 전체 아이 버퍼를 워핑하는 것은 외곽 위치/바운딩 박스에서의 등록 에러를 야기할 수도 있지만, 외곽 위치/바운딩 박스는 사용자의 현재 초점 방향에 주변적일 수도 있기 때문에 등록 에러가 사용자에 의해 관찰되지 않을 수도 있다. 따라서, 아이 포즈 정보는 사용자가 현재 초점을 두고 있는 시야 내 위치를 나타낼 수도 있어서, 상기 위치의 바운딩 박스에 대응하는 APR 메타데이터가 전체 아이 버퍼에 적용되는 호모그래피를 도출하기 위해 사용될 수도 있다. 한 개보다 많은 바운딩 박스가 눈의 초점 방향 내에 있는 양태들에서, 바운딩 박스들 각각은 한 개보다 많은 박스들에 대한 APR 메타데이터를 사용하여 워핑될 수도 있다. 그러나, 초점 영역 외부에 위치된 다른 바운딩 박스들은 초점 영역 내부의 바운딩 박스들 중 하나에 대응하는 메타데이터를 사용하여 워핑될 수도 있다.
도 5는 본 개시의 하나 이상의 기법들에 따른 그리드(504)의 하나 이상의 타일들(506)과 연관된 메타데이터(510)를 갖는 그리딩?? 바운딩 박스(508)를 정의하는 것에 대한 도면(500)이다. 바운딩 박스(502)를 위한 바운딩 박스 정보는 무선 네트워크의 서버 측 상의 아이 버퍼 및/또는 깊이 버퍼로부터 추출될 수도 있다. 바운딩 박스(502) 내부에 포함된 콘텐츠에 대응하는 메타데이터(510)는 바운딩 박스(502)에 대한 하나 이상의 평면을 결정하기 위해 추가로 추출될 수도 있다. 메타데이터(510) 및 바운딩 박스 정보(예컨대, 바운딩 박스(502)의 둘레를 나타냄)는 콘텐츠를 재투영하기 위해 무선 네트워크의 클라이언트 측으로 송신될 수도 있다. 즉, 재투영 알고리즘(512)은 메타데이터(510) 및 바운딩 박스 정보를 사용하여 콘텐츠, 텍스처 등을 디스플레이 공간 상으로 재투영할 수도 있다.
아이 버퍼 내부의 투명물들의 위치들에 기초하여 바운딩 박스(502)를 정의하기 보다는, 바운딩 박스(502)는 일부 구성들에서 그리드(504)(예를 들어, N x M 그리드 타일들(506)을 갖는 N x M 그리드)를 통해 정의될 수도 있다. 예들에서, 그리드(504)는 16 개의 그리드 타일들(506)을 갖는 4 x 4 그리드일 수도 있다. 추가적인 예들에서, 각각의 그리드 타일(506)은 별개의 바운딩 박스에 대응할 수도 있다. 그리드는, 그리딩?? 바운딩 박스(508)를 통해 아이 버퍼의 콘텐츠를 세분화(subdivide)하기 위해 아이 버퍼 상에 오버레이될 수도 있다. 아이 버퍼로부터의 평면 메타데이터(510)는 그리드 타일(506)마다 결정될 수도 있고 무선 네트워크의 클라이언트 측 상의 재투영 알고리즘(512)으로 송신될 수도 있다. 각각의 그리드 타일(506)은 그리딩된 바운딩 박스(508)에 포함된 그리드 타일들(506)의 콘텐츠를 재투영하기 위한, 파라미터들, 메타데이터 등을 결정하는 데 활용되는 깊이 버퍼 정보를 더 포함할 수도 있다. 따라서, 재투영 알고리즘(512)은 그리딩?? 바운딩 박스(508)의 그리드 타일(506)마다의 바운딩 박스 정보 및 평면 메타데이터(510)를 수신할 수도 있어서, 메타데이터(510)에 기초하여 그리드 타일 단위의 재투영 알고리즘(512)에 의해 아이 버퍼 텍스처가 디스플레이 공간 상으로 재투영될 수도 있다.
그리드(504)의 그리드 타일들(506)은 바운딩 박스(502) 전체에 걸쳐 균일하게 분포되거나 다른 기법들에 기초하여 분포될 수도 있다. 예를 들어, 그리드 타일(506)은 하나 이상의 다른 그리드 타일들(506)과 병합될 수도 있다. 추가적으로 또는 대안적으로, 그리드 타일들(506) 중 하나 이상은 더 작은 그리드 타일들로 세분화될 수도 있으며, 이는 서로 병합될 수도 있고 또는 병합되지 않을 수도 있다.
도 6은 본 개시의 하나 이상의 기법들에 따른 재투영 알고리즘을 예시하는 흐름도(600)이다. 602에서, 무선 네트워크의 서버 측에서, 수신된 깊이 버퍼에 기초하여 프레임에 대한 구분적(piece-wise) 평면 근사화가 수행될 수도 있다. 602에서 수행되는 근사화는 프레임과 연관된 각각의 바운딩 박스/타일에 대해 추출된 메타데이터에 기초할 수도 있다. 평면 근사화를 나타내는 평면들은 604 내지 612와 연관된 절차들을 수행하기 위해 무선 네트워크의 클라이언트 측으로 송신될 수도 있다.
근사화된 평면들, 바운딩 박스 정보, 및 렌더링/디스플레이 포즈 정보에 기초하여, 클라이언트는 렌더링 공간 내의 포인트들과 디스플레이 공간 내의 포인트들 사이의 각 평면에 대한 매핑을 결정할 수도 있다. 매핑은 하나 이상의 기하학적 변환(transformation)들에 기초할 수도 있다. 604에서, 클라이언트는 평면의 표면 법선이 디스플레이 카메라의 z 축과 둔각을 형성할 때 클라이언트로부터 가리켜진 특정 평면들을 폐기할 수도 있다. 폐기된 평면 정보는 삼각형들, 좌표들, 그리드 포인트들 등을 결정하는 것과 연관된 절차들에 대해 표시될 수도 있다.
타일-평면(tile-to-plane) 매핑 및/또는 평면 에지 알고리즘들은 디스플레이 그리드 및 렌더링/디스플레이 포즈 정보에 기초하여, 가리켜진 평면들에 대해 결정될 수도 있다. 606a에서, 클라이언트는 평면 바운더리 정점들에 대응하는 3차원 포인트들을 디스플레이 공간에 투영할 수도 있다. 606b에서, 클라이언트는 평면이 중첩되는 하나 이상의 디스플레이 그리드 타일들을 결정할 수도 있다. 606c에서, 클라이언트는 디스플레이 좌표들에서 각각의 평면에 대한 투영된 에지 알고리즘들을 결정할 수도 있다. 투영된 에지 알고리즘들 및/또는 타일-평면 매핑 뿐만 아니라 렌더링/디스플레이 포즈 정보에 기초하여, 클라이언트는 UV 좌표들 및 프리미티브-평면(primitive-to-plane) 매핑을 결정할 수도 있다.
608a에서, 클라이언트는 대응하는 타일과 중첩되는 각각의 평면에 대한 투영된 에지 알고리즘들에 기초하여 각각의 그리드 포인트를 평가할 수도 있다. 608b에서, 투영된 에지 알고리즘을 만족하는 포인트들에 대해, 클라이언트는 그리드 포인트와 평면의 교차점과 연관된 z 좌표를 결정할 수도 있다. 608c에서, 클라이언트는 디스플레이 카메라 원점 및 연관된 평면 식별자(ID)에 대하여 가장 낮은 z 좌표를 갖는 교차점을 저장할 수도 있다. 프리미티브-평면 매핑 및 UV 좌표들은 삼각형들, 3차원 좌표들, 새로운 그리드 포인트들 등을 결정하기 위해 사용될 수도 있다.
610a에서, 각각의 디스플레이 그리드 프리미티브에 대해, 디스플레이 그리드 프리미티브의 사이즈가 미리 결정된 값 t1 미만이면, 클라이언트는 612에서 픽셀 셰이딩(pixel shading)을 수행할 수도 있다. 디스플레이 그리드 프리미티브의 사이즈가 t1 미만인 경우, 610b에서 모든 정점들이 동일한 평면에 대응하면, 클라이언트는 또한 612에서 픽셀 셰이딩을 수행할 수도 있다. 모든 정점들이 동일한 평면에 대응하지 않는 경우, 610c에서, (예를 들어, UV 좌표들에 기초한) 역(back-)투영된 프리미티브가 폐기된 평면을 포함하지 않고, 디스플레이 그리드 프리미티브의 사이즈가 제2 미리 결정된 값 t2 미만이면, 클라이언트는 612에서 픽셀 셰이딩을 수행할 수도 있다. 역투영된 프리미티브 또는 디스플레이 그리드의 사이즈가 t2 이상인 경우, 클라이언트는 프리미티브 분할에 기초하여 그리드 포인트들을 업데이트하고 608a 내지 608d에서의 절차들을 반복할 수도 있다.
아이 버퍼, 삼각형들, 3차원 좌표들 및 UV 좌표들에 기초하여, 612에서 픽셀 셰이딩이 수행될 수도 있다. 예를 들어, 612에서, 디스플레이 그리드 내의 각각의 프리미티브에 대해, 클라이언트는 프리미티브의 정점들에 대한 z 좌표 및 UV 좌표들에 기초하여 하나 이상의 픽셀들을 셰이딩할 수도 있다. 클라이언트는 워핑된 프레임을 나타내는 정보를 후속적으로 출력할 수도 있다. 예를 들어, 디스플레이 텍스처/프레임은 기하학적 변환을 통해 결정된 매핑 및 아이 버퍼 텍스처에 기초하여 나타날 수도 있다.
그리드의 각각의 타일이 깊이 버퍼의 일부를 둘러싸는 바운딩 박스에 대응할 수도 있지만, 흐름도(600)는 그리드에 기초한 바운딩 박스들로 제한되지 않는다. 또한, 그리드 타일링은 (예를 들어, 하나 이상의 모델링 에러들에 기초하여) 더 작은 타일들로 세분화되는 타일들 또는 균일한 타일들을 포함할 수도 있다. 예를 들면, 증가된 재투영 에러율을 포함하는 바운딩 박스들은 더 작은 그리드 블록들로 세분화될 수도 있으며 이에 대한 평면들이 다시 정의/결정될 수도 있고 클라이언트 측 재투영 알고리즘으로 송신될 수도 있다. 그리드 타일들을 더 작은 타일들로의 세분화는 더 큰 그리드 타일들에 의해 야기되는 모델링 에러들을 감소시키기 위해 수행될 수도 있다.
도 7은 본 개시의 하나 이상의 기법들에 따른 무선 네트워크의 서버 측 상의 서버 디바이스와 무선 네트워크의 디바이스 측 상의 클라이언트 디바이스 사이에서 분할되는 렌더링 및 디스플레이 프로세스들을 예시하는 흐름도(700)이다. AR 헤드셋들과 같은 확장 현실(XR) 클라이언트 디바이스들의 프로세싱 제한들에 기초하여, 제1 디바이스(예를 들어, AR 헤드셋과 같은 클라이언트 디바이스)로부터 무선 링크에 의해 제1 디바이스에 연결된 제2 디바이스(예를 들어, 스마트폰, 원격 서버, 에지 서버 등과 같은 서버 디바이스)로 렌더링 동작들이 오프로딩(offloading)될 수도 있다. 서버 측 디바이스는 아이 버퍼 및/또는 깊이 버퍼에서 가상 콘텐츠를 렌더링하기 위해 클라이언트 디바이스(예를 들어, XR 디바이스)의 인지 모듈(706)로부터 수신된, 헤드 포즈 입력, 제어기 입력, 앵커 포즈 입력 등과 같은 입력에 기초하여 AR 애플리케이션(702)을 실행할 수도 있다. 제어기는 제어기 입력을 제공하기 위해 클라이언트 디바이스 또는 서버 디바이스 어느 하나에 연결될 수도 있다.
AR 애플리케이션(702)은 단일 레이어에 대한 아이 버퍼 및/또는 깊이 버퍼를 렌더링하고, 버퍼(들)를 플러그인(704)(예를 들어, 커스텀 게임 엔진 플러그인)에 제공할 수도 있다. 플러그인(704)은 렌더링 동작들로부터 도출된 메타데이터를 결정할 수도 있고, 여기서 메타데이터는 바운딩 박스/타일 재투영 정보 및/또는 APR 평면 파라미터들을 나타낼 수도 있다. 클라이언트 디바이스의 프로세싱 제한들은, 바운딩 박스들/타일들의 콘텐츠를 워핑하기 위해 사용될 수도 있는 메타데이터가 클라이언트 측 디바이스에 제공되기 전에 서버 측 디바이스를 통해 추출되게 할 수도 있다. 비디오 인코더(712)는 서버 측 상에서 아이 버퍼를 수신하고, 인코딩된 정보를 디코딩하는 클라이언트 측 상의 비디오 디코더(714)에 인코딩된 정보를 무선으로 송신(예를 들어, HEVC(high efficiency video coding)/H.264 또는 다른 비디오 코딩 표준 비트스트림으로서 아이 버퍼를 송신)할 수도 있다. 서버 측에서 추출된 메타데이터는 아이 버퍼의 비디오와 동일한 비트스트림 내에 인코딩되고 클라이언트에서 비트스트림으로부터 디코딩될 수도 있다.
AR 런타임/워프 (APR) 엔진(708)은 인지 모듈(706)로부터의 헤드 포즈 및/또는 앵커 포즈 정보에 더하여 비디오 디코더(714)로부터의 디코딩된 아이 버퍼를 수신하여 아이 버퍼로부터 수신된 메타데이터에 의해 나타나는 바운딩 박스들/타일들 내에 포함된 콘텐츠를 워핑할 수도 있다. 예를 들어 인식 모듈(706)은, 콘텐츠를 워핑하기 전에(예를 들어, 콘텐츠를 워핑하기 직전에) 발생하는 결정/측정에 기초하여 헤드 포즈 및/또는 앵커 포즈 정보를 제공할 수도 있다. 워핑된 가상 콘텐츠를 디스플레이하기 위해, 워핑된 콘텐츠를 포함하는 워핑된 아이 버퍼가 후속적으로 클라이언트 디바이스의 디스플레이(710)에 제공될 수도 있다.
도 8은 본 개시의 하나 이상의 기법들에 따른 가상 콘텐츠를 워핑하기 위해 활용되는 메타데이터를 추출하는 것에 대한 흐름도(800)이다. AR 애플리케이션(802)은, 플러그인(804)(예를 들어, 커스텀 게임 엔진 플러그인)에 제공될 수도 있는 아이 버퍼 및 깊이 버퍼를 생성할 수도 있다. 아이 버퍼는 플러그인(804)에 포함된 바운딩 박스 추출기(806)에 의해 수신될 수도 있다. 바운딩 박스 추출기(806)는 수신된 아이 버퍼 정보를 AR 애플리케이션(802)으로부터의 가상 콘텐츠를 포함하는 다수의 레이어들(예컨대, 의사 레이어들)에 대하여 분할하도록 구성될 수도 있다. 양태들에서, 아이 버퍼에 포함된 객체들에 대한 쿼리는 바운딩 박스들을 생성하기 위한 기초를 제공할 수도 있다.
연결 컴포넌트(connected component) 분석은, AR 애플리케이션(802)으로부터의 렌더링된 객체들을 완전히 포함하는 아이 버퍼 내 폐쇄된 윤곽들을 결정하는 데 사용되어, 바운딩 박스들/다수의 레이어들을 각각 생성할 수도 있다. 렌더링된 콘텐츠 사이의 반투명한 픽셀들은 가상 객체들 각각을 포함하는 폐쇄된/분리된 윤곽들의 표시를 제공할 수도 있다. 폐쇄된 윤곽들은 또한, 객체 중첩들에 대해 병합되는 바운딩 박스들에 기초하여 표시될 수도 있다(예를 들어, 단일 바운딩 박스는 2 개의 중첩된 객체들 주위에 정의될 수도 있다). 바운딩 박스들의 최종 구성이 다각형/불규칙적일 수도 있거나 바운딩 박스들이 다수의 비중첩 직사각형들로서 재정의될 수도 있다. 바운딩 박스 추출기(806)는 바운딩 박스들의 교집합/합집합에 기초하여 바운딩 박스들이 수정되게 할 수도 있으며, 이는 바운딩 박스들의 후속 세트가 워핑을 수행하기 위해 생성되게 할 수도 있다. 폐쇄된 윤곽들은, 워프 엔진으로 후속적으로 송신되는 바운딩 박스 메타데이터에 대응할 수도 있다.
AR 애플리케이션(802)으로부터의 깊이 버퍼는, 바운딩 박스 추출기(806)에 의해 표시된 각 바운딩 박스에 대한 평면 파라미터들을 결정하도록 구성된 APR 평면 파라미터들 모듈(808)에 의해 수신될 수도 있다. APR 평면 파라미터 모듈(808)은, 표시된 바운딩 박스들 각각 내부의 근사화된 평면을 결정할 수도 있고 이러한 파라미터들을 바운딩 박스 추출기(806)로부터 워프 엔진으로 송신된 바운딩 박스 메타데이터와 함께 메타데이터로서 워프 엔진에 제공할 수도 있다.
도 9는 본 개시의 하나 이상의 기법들에 따른 디스플레이 공간에 대해 정의된 정점 그리드에 기초한 원스텝 워핑 기법을 예시하는 흐름도(900)이다. 양태들에서, 다수의 레이어들은 더블 데이터 레이트 (DDR) 전송들을 감소시키기 위해 워프 엔진에 의해 동시에 프로세싱될 수도 있다. 정점 셰이더(904)는, 디스플레이 포즈, N 개의 바운딩 박스들, 평면 파라미터들의 N 개의 세트들, 및 렌더링된 헤드 포즈를 수신하는 APR 호모그래피 결정 모듈(902)로부터 N 개의 호모그래피들을 입력으로서 수신하는 것에 기초하여 바운딩 박스들 각각에 대해 APR 호모그래피를 수행할 수도 있다. 따라서, N 개의 행렬 변환들(예를 들어, M1, M2, . . . , MN)이 렌더링된 이미지에 대해 수행될 수도 있어서, 대응하는 N 개의 호모그래피들이 단일 워핑 단계에서 공동으로 아이 버퍼에 적용될 수도 있다. 콘텐츠가 워핑된 후에, 렌더링된 콘텐츠를 디스플레이하기 전에 렌즈 왜곡 및 디스플레이 보정이 수행되어 렌더링된 이미지에서의 기하학적 에러들을 추가로 감소시킬 수도 있다.
정점 그리드는 디스플레이 공간에서 정의되어, 렌즈 왜곡 보정(lens distortion correction; LDC) 또는 색수차 보상(chromatic aberration compensation; CAC)과 같은 지속적인 보정이, 각 프레임에 대해 개별적으로 LDC/CAC를 적용하기 보다는 초기화에서 사전적용되게 하는 원스텝 워핑 기술을 제공할 수도 있다. 정점 셰이더(904)는 정점들의 세트(예를 들어, V1, V2, . . . , VK)로서 디스플레이 공간 내에 정점 그리드를 수신할 수도 있고 N 개의 변환들(예를 들어, M1, M2, . . . , MN)로부터 결정된 N 개의 호모그래피들을 정점들의 세트에 적용할 수도 있다.
디스플레이 공간 내의 정점이 아이 버퍼에서 어디에 위치되는지를 결정하기 위해, 디스플레이 공간 내의 포인트가 아이 버퍼 공간 내의 하나 이상의 포인트들에 매핑될 수도 있다. 예들에서, 바운딩 박스들 각각이 상이한 깊이들에 대해 구성될 수도 있기 때문에, 바운딩 박스들 내에 포함된 렌더링된 콘텐츠는 디스플레이 포즈가 변함에 따라 중첩될 수도 있고, 이로써 디스플레이 공간 내의 동일한 포인트가 아이 버퍼 공간 내의 다수의 포인트들에 매핑되게 할 수도 있다. 모든 정점마다, (x1, y1, z1 ) 내지 (xN, yN, zN)와 연관된 호모그래피들에 대해 매핑이 결정되어, 대응하는 포인트들을 아이 버퍼 공간에 투영할 수도 있다. 포인트들에 대한 좌표들은 바운딩 박스들에 링크될 수도 있다. 그러나, 호모그래피에 기초하여 포인트가 투영될 때 포인트가 디스플레이 공간 내의 특정 바운딩 박스의 외부에 있는 것으로 결정되면, 디스플레이 공간 내의 그러한 포인트에 대응하는 콘텐츠는 특정 바운딩 박스에 링크되지 않을 수도 있다. 대신에, 콘텐츠는 다른 바운딩 박스에 기초하여 결정될 수도 있다. 각각의 정점에 대한 플래그들(f1, f2, . . . , fN)은, (Ui, Vi) 좌표가 바운딩 박스 내부에 있는지 또는 바운딩 박스 외부에 있는지를 결정하기 위해 정점 셰이더(904)에 의해 사용될 수도 있다.
(Ui, Vi) 좌표들, 3차원 포인트 위치들, 및 포인트들이 각각의 호모그래피에 대한 바운딩 박스 내부에 있는지의 여부를 포함하는 정점 정보가 프래그먼트 셰이더(906)로 송신되어, 디스플레이 공간 내의 정점들의 초기 세트에 따라 정의된 다수의 삼각형들에 대한 삼각형 정보를 결정할 수도 있다. 각각의 삼각형에 대해, 프래그먼트 셰이더(906)는 정점들로부터 삼각형이 바운딩 박스 내에 적어도 부분적으로 포함되는지 여부를 결정할 수도 있다. 정점들 중 하나 이상이 플래그들(f1, f2, . . . , fN)과 연관되면, 프래그먼트 셰이더(906)는 삼각형이 바운딩 박스 내에 적어도 부분적으로 포함된다고 결정하여, 삼각형이 바운딩 박스의 콘텐츠로 렌더링될 수도 있다. 프래그먼트 셰이더(906)가 렌더링하는 모든 픽셀마다, 픽셀의 컬러 및 픽셀의 깊이 양자 모두가 결정될 수도 있고 평면에 대한 바운딩 박스와 연관될 수도 있다.
도 10은 본 개시의 하나 이상의 기법들에 따른 렌더링된 좌표 공간에서 정의된 정점들에 기초한 원스텝 워핑 기법을 예시하는 흐름도(1000)이다. 프레임에 대한 N 개의 바운딩 박스들은, 각각의 바운딩 박스가 정점들의 세트를 각각 포함하도록, 정점 그리드 결정 모듈(1008)에 의해 복수의 정점들로 각각 분할될 수도 있다. 따라서, APR 호모그래피 결정 모듈(1002)로부터 수신된 N 개의 호모그래피들에 대한 N 개의 행렬 변환들(M1, M2, . . . , MN)을 렌더링된 좌표 공간에 적용할 때 정점 셰이더(1004)의 복잡도들이 감소될 수도 있다. 예를 들어, 정점 셰이더(1004)는, 정점들의 주어진 세트를 포함하는 바운딩 박스에 대응하는 단일 행렬 변환에 기초하여 정점들의 주어진 세트를 완료하기 위한 기준을 결정할 수도 있다. 정점 셰이더(1004)는, 디스플레이 공간에서 디스플레이 포즈에 관련될 수도 있는 (xi, yi, zi) 좌표들을 결정할 수도 있다. (Ui, Vi) 좌표가 디스플레이 공간에서 결정된 후, 정점 그리드 결정 모듈(1008)의 출력에 기초하여 아이 버퍼 공간 내의 정점 포인트가 결정될 수도 있다. 정점 셰이더(1004)는, 바운딩 박스와 연관된 픽셀들의 컬러 및 픽셀들의 깊이 양자 모두를 렌더링하기 위해 프래그먼트 셰이더(1006)에 정점 정보를 후속적으로 제공할 수도 있다.
정점들은, 정점 그리드가 바운딩 박스들과 정렬될 수도 있도록 바운딩 박스들의 각각의 후속 세트에 대해 재결정될 수도 있다. 대안적으로, 바운딩 박스들이 미리 결정된 그리드와 정렬되도록 바운딩 박스들이 정의될 수도 있다. 모든 바운딩 박스들에 대한 삼각형들의 리스트의 모든 삼각형마다, 삼각형의 픽셀들은 정점 셰이더(1004)의 출력에 기초하여 디스플레이 공간에 매핑될 수도 있다. 정점 셰이더(1004)는 정점들 각각에 LDC/CAC를 개별적으로 적용하고 프레임 단위로 디스플레이 포즈에 대한 적합한 위치에 정점을 매핑함으로써, 정점들에 대한 왜곡 보정을 더 수행할 수도 있다. 그러나, LDC/CAC는 AR 안경과 같은 클라이언트 디바이스에 사용되지 않을 수도 있다.
APR 기술들에 더하여, 다른 유형들의 워핑 기법들이 바운딩 박스들에 적용될 수도 있다. 예를 들어, 바운딩 박스들 내부에 포함된 콘텐츠를 이동시키기 위해 비동기 공간 워핑이 적용될 수도 있다. 콘텐츠와 연관된 메타데이터는 바운딩 박스 움직임들을 나타낼 수도 있다. 그러므로, 비동기 공간 워핑을 콘텐츠에 적용하기 위해 모션 벡터들이 바운딩 박스 내부의 포인트들의 서브세트에 대해 결정될 수도 있다.
추가적인 워핑 기술은 (예를 들어, 평면 파라미터들을 결정하기보다는) 파라미터화된 메쉬를 바운딩 박스에 포함된 콘텐츠의 가상 표면과 연관시키고, 파라미터화된 표면을 재투영하여 워핑을 수행하는 것일 수도 있다. 평면이 평면 파라미터들(a, b, c)을 통해 파라미터화된 메쉬로서 정의될 수도 있지만, 더 복잡한 표면들에 대해 더 복잡한 메쉬가 정의될 수도 있다(예를 들어, 구형 객체에 대응하는 메쉬). 메쉬의 파라미터들은 재투영/워핑을 위해 사용된 메타데이터와 연관될 수도 있다. 파라미터화는 다항식 함수에 기초하여 표시될 수도 있다(예를 들어, z=f(x, y), 여기서 z는 픽셀 (x, y)에서의 대략적인 깊이임). 즉, 깊이 버퍼 z는 바운딩 박스 내부에 통합될 메쉬를 정의하기 위해 아이 버퍼 내의 모든 픽셀에 대해 해결되는 함수 f(x, y)에 기초하여 결정될 수도 있다. 그 후, 메쉬의 파라미터들(예컨대, 다항식 함수의 계수들)은 재투영/워핑을 위한 메타데이터로서 사용될 수도 있다.
도 11은 서버(1102)와 클라이언트(1104) 사이의 예시적인 통신들을 예시하는 호 흐름도(1100)이다. 제1 양태에서, 서버(1102) 및 클라이언트(1104)는 동일한 디바이스에 포함될 수도 있다. 제2 양태에서, 서버(1102) 및 클라이언트(1104)는 별개의 디바이스들에 포함될 수도 있다.
1106에서, 서버는 프레임의 복수의 가상 객체들에 대한 바운딩 박스들을 정의할 수도 있다. 바운딩 박스들은 복수의 가상 객체들에 대응하는 깊이 정보를 포함하는 깊이 버퍼에 기초하여 정의될 수도 있다. 추가적으로 또는 대안적으로, 바운딩 박스들은 복수의 가상 객체들에 대응하는 아이 버퍼에 대해 수행되는 연결 컴포넌트 분석에 기초하여 정의될 수도 있다. 1108에서 서버(1102)는, 1106에서 정의된 바운딩 박스들에 기초하여 복수의 가상 객체들을 별개의 레이어들로 분리할 수도 있다. 예를 들어, 프레임에 포함된 가상 객체들 각각은 별개의 레이어들과 연관된 각각의 바운딩 박스들에 대응할 수도 있다.
1110에서, 서버(1102)는 복수의 가상 객체들에 대한 제1 메타데이터를 클라이언트(1104)에 송신할 수도 있다. 제1 메타데이터는 1106에서 정의된 바운딩 박스들의 하나 이상의 에지들을 나타낼 수도 있다. 1112에서 서버(1102)는, 1108에서 복수의 가상 객체들을 각각의 바운딩 박스들과 연관된 별개의 레이어들로 분리하는 것에 기초하여 바운딩 박스들에 대한 제2 메타데이터를 송신할 수도 있다. 제2 메타데이터는, 복수의 가상 객체들을 포함하는 바운딩 박스들을 워핑하기 위해 사용되는 평면 파라미터들을 나타낼 수도 있다.
1114에서 클라이언트(1104)는, 복수의 가상 객체들과 연관된 1110에서 수신된 제1 메타데이터 및 바운딩 박스들을 워핑하는 것과 연관된 1112에서 수신된 제2 메타데이터에 기초하여 복수의 가상 객체들을 재투영할 수도 있다. 1116에서, 클라이언트(1104)는 재투영된 가상 객체들을 XR 디스플레이 디바이스 상에 디스플레이되기 위해 동일한 프레임으로 합성할 수도 있다.
도 12는 본 개시의 하나 이상의 기법들에 따른 디스플레이 프로세싱의 예시적인 방법의 플로우차트(1200)이다. 방법은, 도 1 내지 도 11의 예들과 관련하여 사용되는 바와 같은, 디바이스(예를 들어, 클라이언트 디바이스), 디스플레이 프로세서, 재투영 모듈/엔진, 무선 통신 디바이스와 같은 장치 등에 의해 수행될 수도 있다.
1202에서, 디바이스는 복수의 가상 객체들을 포함하는 그래픽 데이터의 레이어를 획득할 수도 있으며―복수의 가상 객체들 각각은 복수의 바운딩 박스들 중 적어도 하나의 바운딩 박스와 연관된다. 예를 들어, 도 11을 참조하면, 클라이언트(1104)는 1110에서 복수의 가상 객체들에 대한 제1 메타데이터를 수신할 수도 있다. 또한, 도 1의 디스플레이 프로세서(127)는 단계 1202를 수행할 수도 있다. 도 2 내지 도 4를 참조하면, AR 런타임/워프 (APR) 엔진(308)은 아이 버퍼의 하나의 레이어에 복수의 가상 객체들(202)을 포함하는 이미지 프레임(306)을 수신할 수도 있다. 복수의 가상 객체들(202)은, 가상 객체들(202)을 포함하는 바운딩 박스들(204)의 에지들을 나타내는 메타데이터와 연관될 수도 있다.
1204에서, 디바이스는 복수의 바운딩 박스들 중 적어도 하나의 바운딩 박스의 적어도 하나의 에지를 나타내는 메타데이터를 획득할 수도 있다. 예를 들어, 도 11을 참조하면, 클라이언트(1104)는 1110에서 복수의 가상 객체들에 대한 제 1 메타데이터를 수신할 수도 있다. 또한, 도 1의 디스플레이 프로세서(127)는 단계 1204를 수행할 수도 있다. 도 2 내지 도 4를 참조하면, 복수의 가상 객체들(202)은 가상 객체들(202)을 포함하는 바운딩 박스들(204)의 에지들을 나타내는 메타데이터와 연관될 수도 있다.
1206에서, 디바이스는 복수의 바운딩 박스들 각각과 연관된 재투영 명령들에 대응하는 메타데이터를 획득할 수도 있다. 예를 들어, 도 11을 참조하면, 클라이언트(1104)는 1112에서 서버(1102)로부터 바운딩 박스들에 대한 제2 메타데이터를 수신할 수도 있다. 또한, 도 1의 디스플레이 프로세서(127)는 단계 1206을 수행할 수도 있다. 도 2 내지 도 4를 참조하면, AR 런타임/워프 (APR) 엔진(308)은 이미지 프레임(306)에 포함된 가상 객체들(202) 각각을 재투영하기 위해 플러그인(304)으로부터 재투영 메타데이터를 수신할 수도 있다.
1208에서, 디바이스는 적어도 하나의 바운딩 박스의 적어도 하나의 에지를 나타내는 메타데이터 및 재투영 명령들에 대응하는 메타데이터에 기초하여 복수의 가상 객체들을 재투영할 수도 있다. 예를 들어, 도 11을 참조하면, 클라이언트(1104)는 1114에서, 1110에서 수신된 제1 메타데이터 및 1112에서 수신된 제2 메타데이터에 기초하여 복수의 가상 객체들을 재투영할 수도 있다. 또한, 도 1의 디스플레이 프로세서(127)는 단계 1208을 수행할 수도 있다. 도 2 내지 도 4를 참조하면, AR 런타임/워프 (APR) 엔진(308)은 플러그인(304)으로부터 수신된 메타데이터에 기초하여 디스플레이(312)를 위한 워핑된 콘텐츠(310)를 생성하도록 가상 객체들(202)을 개별적으로 재투영할 수도 있다.
도 13은 본 개시의 하나 이상의 기법들에 따른 디스플레이 프로세싱의 예시적인 방법의 플로우차트(1300)이다. 방법은, 도 1 내지 도 11의 예들과 관련하여 사용되는 바와 같은, 디바이스(예를 들어, 클라이언트 디바이스), 디스플레이 프로세서, 재투영 모듈/엔진, 무선 통신 디바이스와 같은 장치 등에 의해 수행될 수도 있다.
1302에서, 디바이스는 아이 버퍼에서의 하나의 레이어 내에 복수의 가상 객체들을 수신할 수도 있으며―아이 버퍼에서의 하나의 레이어는, 하나 이상의 바운딩 박스들의 적어도 하나의 에지를 나타내는 제1 메타데이터에 기초하여 복수의 가상 객체들을 포함하는 하나 이상의 바운딩 박스들로 할당된다. 예를 들어, 도 11을 참조하면, 클라이언트(1104)는 1110에서 복수의 가상 객체들에 대한 제 1 메타데이터를 수신할 수도 있다. 또한, 도 1의 디스플레이 프로세서(127)는 단계 1302를 수행할 수도 있다. 도 2 내지 도 4를 참조하면, AR 런타임/워프 (APR) 엔진(308)은 아이 버퍼의 하나의 레이어 내에 복수의 가상 객체들(202)을 포함하는 이미지 프레임(306)을 수신할 수도 있다. 복수의 가상 객체들(202)은, 가상 객체들(202)을 포함하는 바운딩 박스들(204)의 에지들을 나타내는 메타데이터와 연관될 수도 있다. 복수의 가상 객체들(202) 각각은 하나 이상의 바운딩 박스들(204) 중의 하나에 각각 포함될 수도 있다. 양태들에서, 도 5를 참조하면, 복수의 가상 객체들(202)이 그리드 구조의 하나 이상의 타일들(506)에 포함될 수도 있도록, 하나 이상의 바운딩 박스들(502)이 그리드 구조(예컨대, 그리드(504))와 연관될 수도 있다. 그리드 구조(예컨대, 그리드(504))는 아이 버퍼 상에 오버레이될 수도 있다. 하나 이상의 타일들(506) 각각은 하나 이상의 바운딩 박스(502)의 별개의 바운딩 박스에 대응할 수도 있다. 그리드 구조(예컨대, 그리드(504))는 균일한 타일 분포, 적어도 하나의 세분화된 타일, 또는 적어도 하나의 병합된 타일 중 적어도 하나를 포함할 수도 있다. 추가적이 양태에서, 아이 버퍼는 좌측 아이 버퍼 및 우측 아이 버퍼를 포함할 수도 있어서, 좌측 아이 버퍼와 우측 아이 버퍼 사이에 DFS를 수행함으로써 깊이가 깊이 버퍼로부터 결정될 수도 있다. 복수의 가상 객체들(202)에 대응하는 폐쇄된 윤곽들을 결정하기 위해 아이 버퍼에 대해 수행된 연결 컴포넌트 분석에 기초하여 복수의 가상 객체들을 포함하는 하나 이상의 바운딩 박스(204)가 정의될 수도 있다. 추가적으로 또는 대안적으로, 복수의 가상 객체들(202)을 포함하는 하나 이상의 바운딩 박스들(204)은 복수의 가상 객체들(202)에 대응하는 깊이 정보를 포함하는 하나의 레이어에서의 깊이 버퍼에 기초하여 정의될 수도 있다.
1304에서, 디바이스는 하나 이상의 바운딩 박스들 내에 포함된 복수의 가상 객체들을 재투영하기 위해 바운딩 박스들 중 하나 이상에 대한 제2 메타데이터를 수신할 수도 있다. 예를 들어, 도 11을 참조하면, 클라이언트(1104)는 1112에서 서버(1102)로부터 바운딩 박스들에 대한 제2 메타데이터를 수신할 수도 있다. 또한, 도 1의 디스플레이 프로세서(127)는 단계 1304를 수행할 수도 있다. 도 2 내지 도 4를 참조하면, AR 런타임/워프 (APR) 엔진(308)은 이미지 프레임(306)에 포함된 가상 객체들(202) 각각을 재투영하기 위해 플러그인(304)으로부터 재투영 메타데이터를 수신할 수도 있다. 제2 메타데이터는 복수의 가상 객체들(202)에 대한 APR을 수행하기 위한 (예를 들어, 플러그인(304)으로부터 제공되는) 적어도 하나의 평면 파라미터를 포함할 수도 있다. 제2 메타데이터는 하나 이상의 바운딩 박스들(204)에 포함된 복수의 가상 객체들(202)에 대응하는 포즈 정보 또는 앵커 식별자들 중 적어도 하나를 포함할 수도 있다. 제2 메타데이터는 복수의 가상 객체들(202)에서 가상 객체(202)에 대응하는 파라미터화된 메쉬를 포함할 수도 있다. 제2 메타데이터는 서버 디바이스로부터 수신될 수도 있다. 예를 들어, 도 7을 참조하면, 제2 메타데이터는 무선 네트워크의 디바이스 측 상의 AR 런타임/워프 (APR) 엔진(708)에 의해 무선 네트워크의 서버 측 상의 플러그인(704)으로부터 수신될 수도 있다.
1306에서, 디바이스는 눈이 향하는 하나 이상의 바운딩 박스들 중의 특정 바운딩 박스를 결정하기 위해 아이 포즈 정보를 수신할 수도 있으며―복수의 가상 객체들의 재투영은 특정 바운딩 박스에 대한 제2 메타데이터에 기초한다. 예를 들어, 도 2 및 도 4를 참조하면, AR 런타임/워프 (APR) 엔진(308)은 아이 포즈 정보(402)를 수신하여, 눈이 향하는 바운딩 박스들(204)에 포함된 특정 바운딩 박스에 대해 플러그인(304)으로부터 수신된 메타데이터에 기초하여 가상 객체들(202)을 재투영하기 위해 특정 바운딩 박스를 결정할 수도 있다. 또한, 도 1의 디스플레이 프로세서(127)는 단계 1306을 수행할 수도 있다.
1308에서, 디바이스는 하나 이상의 바운딩 박스들에 대한 제1 메타데이터 및 제2 메타데이터에 기초하여 복수의 가상 객체들을 재투영할 수도 있다. 예를 들어, 도 11을 참조하면, 클라이언트(1104)는 1114에서, 1110에서 수신된 제1 메타데이터 및 1112에서 수신된 제2 메타데이터에 기초하여 복수의 가상 객체들을 재투영할 수도 있다. 또한, 도 1의 디스플레이 프로세서(127)는 단계 1308을 수행할 수도 있다. 도 2 내지 도 4를 참조하면, AR 런타임/워프 (APR) 엔진(308)은 플러그인(304)으로부터 수신된 메타데이터에 기초하여 디스플레이(312)를 위한 워핑된 콘텐츠(310)를 생성하도록 가상 객체들(202)을 개별적으로 재투영할 수도 있다.
1310에서, 디바이스는 XR 디스플레이 디바이스 상의 디스플레이를 위해 동일한 프레임으로 재투영된 복수의 가상 객체들을 합성할 수도 있다. 예를 들어, 도 11을 참조하면, 1116에서 클라이언트(1104)는 재투영된 가상 객체들을 동일한 프레임으로 합성할 수도 있다. 또한, 도 1의 디스플레이 프로세서(127)는 단계 1310을 수행할 수도 있다. 도 2 내지 도 4를 참조하면, AR 런타임/워프 (APR) 엔진(308)은 워핑된 아이 버퍼를 통해 디스플레이 디바이스의 디스플레이(312)에 제공되는 동일한 프레임으로 재투영된 가상 객체들(202)을 합성할 수도 있다.
구성들에서, 디스플레이 프로세싱을 위한 방법 또는 장치가 제공된다. 장치는 디바이스(예를 들어, 클라이언트 디바이스), 디스플레이 프로세서, DPU, 재투영 모듈/엔진, 또는 디스플레이 프로세싱을 수행할 수도 있는 일부 다른 프로세서일 수도 있다. 양태들에서, 장치는 디바이스(104) 내부의 디스플레이 프로세서(127)일 수도 있고, 또는 장치는 디바이스(104) 또는 다른 디바이스 내부의 일부 다른 하드웨어일 수도 있다. 장치는, 복수의 가상 객체들을 포함하는 그래픽 데이터의 레이어를 획득하기 위한 수단으로서, 복수의 가상 객체들 각각은 복수의 바운딩 박스들 중 적어도 하나의 바운딩 박스와 연관되는, 상기 복수의 가상 객체들을 포함하는 그래픽 데이터의 레이어를 획득하기 위한 수단; 복수의 바운딩 박스들 중 적어도 하나의 바운딩 박스의 적어도 하나의 에지를 나타내는 메타데이터를 획득하기 위한 수단; 복수의 바운딩 박스들 각각과 연관된 재투영 명령들에 대응하는 메타데이터를 획득하기 위한 수단; 및 적어도 하나의 바운딩 박스의 적어도 하나의 에지를 나타내는 메타데이터 및 재투영 명령들에 대응하는 메타데이터에 기초하여 복수의 가상 객체들을 재투영하기 위한 수단을 포함한다.
장치는, 아이 버퍼에서의 하나의 레이어 내에 복수의 가상 객체들을 수신하기 위한 수단으로서, 아이 버퍼에서의 하나의 레이어는, 하나 이상의 바운딩 박스들의 에지를 나타내는 제1 메타데이터에 기초하여 복수의 가상 객체들을 포함하는 하나 이상의 바운딩 박스들로 할당되는, 상기 아이 버퍼에서의 하나의 레이어 내에 복수의 가상 객체들을 수신하기 위한 수단; 하나 이상의 바운딩 박스들 내에 포함된 복수의 가상 객체들을 재투영하기 위해 바운딩 박스들 중 하나 이상에 대한 제2 메타데이터를 수신하기 위한 수단; 및 하나 이상의 바운딩 박스들에 대한 제1 메타데이터 및 제2 메타데이터에 기초하여 복수의 가상 객체들을 재투영하기 위한 수단을 더 포함한다. 장치는, 눈이 향하는 하나 이상의 바운딩 박스들 중의 특정 바운딩 박스를 결정하기 위해 아이 포즈 정보를 수신하기 위한 수단으로서, 복수의 가상 객체들의 재투영은 특정 바운딩 박스에 대한 제2 메타데이터에 기초하는, 상기 아이 포즈 정보를 수신하기 위한 수단을 더 포함한다. 장치는, XR 디스플레이 디바이스 상의 디스플레이를 위해 동일한 프레임으로 재투영된 복수의 가상 객체들을 합성하기 위한 수단을 더 포함한다.
도 14는 본 개시의 하나 이상의 기법들에 따른 디스플레이 프로세싱의 예시적인 방법의 플로우차트(1400)이다. 방법은, 도 1 내지 도 11의 예들과 관련하여 사용되는 바와 같은, 디바이스(예를 들어, 서버 디바이스), 디스플레이 프로세서, 무선 통신 디바이스와 같은 장치 등에 의해 수행될 수도 있다.
1402에서, 디바이스는 레이어 내 복수의 가상 객체들을 렌더링할 수도 있으며―복수의 가상 객체들 각각은 복수의 바운딩 박스들 중 적어도 하나의 바운딩 박스와 연관된다. 예를 들어, 도 2 내지 도 4를 참조하면, 복수의 가상 객체들(202)은 AR 애플리케이션(302)에 의해 (예를 들어, 아이 버퍼 및 깊이 버퍼를 통해) 단일 레이어에 렌더링될 수도 있다. 복수의 가상 객체들(202)은 바운딩 박스들(204) 내에 포함될 수도 있다. 또한, 도 1의 디스플레이 프로세서(127)는 단계 1402를 수행할 수도 있다.
1404에서, 디바이스는 복수의 바운딩 박스들 중 적어도 하나의 바운딩 박스의 적어도 하나의 에지를 나타내는 메타데이터를 결정할 수도 있다. 예를 들어, 도 11을 참조하면 서버(1102)는, 1110에서 제1 메타데이터를 클라이언트(1104)로 송신하기 위해 복수의 가상 객체들에 대한 제1 메타데이터를 결정할 수도 있다. 또한, 도 1의 디스플레이 프로세서(127)는 단계 1404를 수행할 수도 있다. 도 2 내지 도 4를 참조하면, 복수의 가상 객체들(202)은 가상 객체들(202)을 포함하는 바운딩 박스들(204)의 에지들을 나타내는 메타데이터와 연관될 수도 있다.
1406에서, 디바이스는 복수의 바운딩 박스들 각각과 연관된 재투영 명령들에 대응하는 메타데이터를 결정할 수도 있다. 예를 들어, 도 11을 참조하면 서버(1102)는, 1112에서 제2 메타데이터를 클라이언트(1102)로 송신하기 위해 바운딩 박스들에 대한 제2 메타데이터를 결정할 수도 있다. 또한, 도 1의 디스플레이 프로세서(127)는 단계 1406을 수행할 수도 있다.
1408에서, 디바이스는 복수의 가상 객체들의 재투영을 위해, 바운딩 박스의 적어도 하나의 에지를 나타내는 메타데이터 및 재투영 명령들에 대응하는 메타데이터를 송신할 수도 있다. 예를 들어, 도 11을 참조하면, 서버(1102)는 1110에서 제1 메타데이터를 클라이언트(1104)로 송신할 수도 있다. 서버(1102)는 또한 1112에서 제2 메타데이터를 클라이언트(1102)로 송신할 수도 있다. 도 2 내지 도 4를 참조하면, 복수의 가상 객체들(202)은 가상 객체들(202)을 포함하는 바운딩 박스들(204)의 에지들을 나타내는 메타데이터와 연관될 수도 있다. 이미지 프레임(306) 내에 포함된 가상 객체들(202) 각각을 재투영하기 위해 재투영 메타데이터가 플러그인(304)으로부터 AR 런타임/워프 (APR) 엔진(308)으로 송신될 수도 있다. 또한, 도 1의 디스플레이 프로세서(127)는 단계 1406을 수행할 수도 있다.
도 15는 본 개시의 하나 이상의 기법들에 따른 디스플레이 프로세싱의 예시적인 방법의 플로우차트(1500)이다. 방법은, 도 1 내지 도 11의 예들과 관련하여 사용되는 바와 같은, 디바이스(예를 들어, 서버 디바이스), 디스플레이 프로세서, 무선 통신 디바이스와 같은 장치 등에 의해 수행될 수도 있다.
1502에서, 디바이스는 복수의 가상 객체들에 대응하는 폐쇄된 윤곽들을 결정하기 위해 아이 버퍼에 대해 수행된 연결 컴포넌트 분석에 기초하여 복수의 가상 객체들을 포함하는 하나 이상의 바운딩 박스들을 정의할 수도 있다. 예를 들어, 도 11을 참조하면, 서버(1102)는 1106에서 아이 버퍼에 대해 수행된 연결 컴포넌트 분석에 기초하여 바운딩 박스들을 정의할 수도 있다. 또한, 도 1의 디스플레이 프로세서(127)는 단계 1502를 수행할 수도 있다.
1504에서, 디바이스는 복수의 가상 객체들에 대응하는 깊이 정보를 포함하는 하나의 레이어의 깊이 버퍼에 기초하여 복수의 가상 객체들을 포함하는 하나 이상의 바운딩 박스들을 정의할 수도 있다. 예를 들어, 도 11을 참조하면, 서버(1102)는 1106에서 깊이 버퍼에 포함된 깊이 버퍼 정보에 기초하여 바운딩 박스들을 정의할 수도 있다. 또한, 도 1의 디스플레이 프로세서(127)는 단계 1504를 수행할 수도 있다.
1506에서, 디바이스는 제1 메타데이터와 연관되는 하나 이상의 바운딩 박스들에 기초하여 복수의 가상 객체들을 별개의 레이어들로 분리할 수도 있다. 예를 들어, 도 11을 참조하면, 서버(1102)는 1108에서, 1106에서 정의된 바운딩 박스들에 기초하여 복수의 가상 객체들을 별개의 레이어들로 분리할 수도 있다. 또한, 도 1의 디스플레이 프로세서(127)는 단계 1506을 수행할 수도 있다. 도 2 내지 도 4를 참조하면, AR 런타임/워프 (APR) 엔진(308)은 이미지 프레임(306)에 표시된 바운딩 박스들(204)에 기초하여, 아이 버퍼의 이미지 프레임(306)에 포함된 복수의 가상 객체들(202)을 복수의 레이어들로 분리할 수도 있다.
1508에서, 디바이스는 아이 버퍼에서의 하나의 레이어 내에 복수의 가상 객체들을 송신할 수도 있으며―아이 버퍼에서의 하나의 레이어는, 하나 이상의 바운딩 박스들의 적어도 하나의 에지를 나타내는 제1 메타데이터에 기초하여 복수의 가상 객체들을 포함하는 하나 이상의 바운딩 박스들에 할당된다. 예를 들어, 도 11을 참조하면, 서버(1102)는 1110에서 복수의 가상 객체들에 대한 제1 메타데이터를 송신할 수도 있다. 또한, 도 1의 디스플레이 프로세서(127)는 단계 1508를 수행할 수도 있다. 도 2 내지 도 4를 참조하면, AR 어플리케이션(302)은 아이 버퍼의 하나의 레이어 내 복수의 가상 객체들(202)을 포함하는 이미지 프레임(306)을 송신할 수도 있다. 복수의 가상 객체들(202)은, 가상 객체들(202)을 포함하는 바운딩 박스들(204)의 에지들을 나타내는 메타데이터와 연관될 수도 있다. 복수의 가상 객체들(202) 각각은 하나 이상의 바운딩 박스들(204) 중의 하나에 각각 포함될 수도 있다. 양태들에서, 도 5를 참조하면, 복수의 가상 객체들(202)이 그리드 구조의 하나 이상의 타일들(506)에 포함될 수도 있도록, 하나 이상의 바운딩 박스들(502)이 그리드 구조(예컨대, 그리드(504))와 연관될 수도 있다. 그리드 구조(예컨대, 그리드(504))는 아이 버퍼 상에 오버레이될 수도 있다. 하나 이상의 타일들(506) 각각은 하나 이상의 바운딩 박스(502)의 별개의 바운딩 박스에 대응할 수도 있다. 그리드 구조(예컨대, 그리드(504))는 균일한 타일 분포, 적어도 하나의 세분화된 타일, 또는 적어도 하나의 병합된 타일 중 적어도 하나를 포함할 수도 있다. 추가적이 양태에서, 아이 버퍼는 좌측 아이 버퍼 및 우측 아이 버퍼를 포함할 수도 있어서, 좌측 아이 버퍼와 우측 아이 버퍼 사이에 DFS를 수행함으로써 깊이가 깊이 버퍼로부터 결정될 수도 있다.
1510에서, 디바이스는 하나 이상의 바운딩 박스들에 대한 제1 메타데이터 및 제2 메타데이터에 기초하여 하나 이상의 바운딩 박스들 내에 포함된 복수의 가상 객체들을 재투영하기 위해 하나 이상의 바운딩 박스들에 대한 제2 메타데이터를 송신할 수도 있다. 예를 들어, 도 11을 참조하면, 서버(1102)는 1112에서 바운딩 박스들에 대한 제2 메타데이터를 클라이언트(1104)로 송신할 수도 있다. 또한, 도 1의 디스플레이 프로세서(127)는 단계 1510을 수행할 수도 있다. 도 2 내지 도 4를 참조하면, 플러그인(304)은 이미지 프레임(306)에 포함된 가상 객체들(202) 각각을 재투영하기 위한 재투영 메타데이터를 AR 런타임/워프 엔진(308)로 송신할 수도 있다. 제2 메타데이터는 복수의 가상 객체들(202)에 대한 APR을 수행하기 위해 (예를 들어, 플러그인(304)으로부터 제공되는) 적어도 하나의 평면 파라미터를 포함할 수도 있다. 제2 메타데이터는 하나 이상의 바운딩 박스들(204)에 포함된 복수의 가상 객체들(202)에 대응하는 포즈 정보 또는 앵커 식별자들 중 적어도 하나를 포함할 수도 있다. 제2 메타데이터는 복수의 가상 객체들(202)에서 가상 객체(202)에 대응하는 파라미터화된 메쉬를 포함할 수도 있다. 제2 메타데이터는 클라이언트 디바이스로 송신될 수도 있다. 예를 들어, 도 7을 참조하면, 제2 메타데이터는 무선 네트워크의 서버 측 상의 플러그인(704)으로부터 무선 네트워크의 디바이스 측 상의 AR 런타임/워프 (APR) 엔진(708)로 송신될 수도 있다. 재투영된 복수의 가상 객체들은 XR 디스플레이 디바이스(예컨대, 디스플레이(710)) 상의 디스플레이를 위해 동일한 프레임으로 합성될 수도 있다.
1512에서, 디바이스는 눈이 향하는 하나 이상의 바운딩 박스들 중 특정 바운딩 박스를 결정하기 위해 아이 포즈 정보를 송신할 수도 있으며―복수의 가상 객체들의 재투영은 특정 바운딩 박스에 대한 제2 메타데이터에 기초한다. 예를 들어, 도 2 및 도 4를 참조하면, AR 런타임/워프 (APR) 엔진(308)은 아이 포즈 정보(402)를 수신하여, 눈이 향하는 바운딩 박스들(204)에 포함된 특정 바운딩 박스에 대해 플러그인(304)으로부터 수신된 메타데이터에 기초하여 가상 객체들(202)을 재투영하기 위해 특정 바운딩 박스를 결정할 수도 있다. 또한, 도 1의 디스플레이 프로세서(127)는 단계 1512를 수행할 수도 있다.
구성들에서, 디스플레이 프로세싱을 위한 방법 또는 장치가 제공된다. 장치는 디바이스(예를 들어, 서버 디바이스), 디스플레이 프로세서, DPU, 또는 디스플레이 프로세싱을 수행할 수도 있는 일부 다른 프로세서일 수도 있다. 양태들에서, 장치는 디바이스(104) 내부의 디스플레이 프로세서(127)일 수도 있고, 또는 장치는 디바이스(104) 또는 다른 디바이스 내부의 일부 다른 하드웨어일 수도 있다. 장치는, 레이어 내의 복수의 가상 객체들을 렌더링하기 위한 수단으로서, 복수의 가상 객체들 각각은 복수의 바운딩 박스들 중 적어도 하나의 바운딩 박스와 연관되는, 상기 복수의 가상 객체들을 렌더링하기 위한 수단; 복수의 바운딩 박스들 중 적어도 하나의 바운딩 박스의 적어도 하나의 에지를 나타내는 메타데이터를 결정하기 위한 수단; 복수의 바운딩 박스들 각각과 연관된 재투영 명령들에 대응하는 메타데이터를 결정하기 위한 수단; 및 복수의 가상 객체들의 재투영을 위해, 상기 바운딩 박스의 적어도 하나의 에지를 나타내는 메타데이터 및 상기 재투영 명령들에 대응하는 메타데이터를 송신하기 위한 수단을 포함한다.
장치는, 아이 버퍼에서의 하나의 레이어 내에 복수의 가상 객체들을 수신하기 위한 수단으로서, 아이 버퍼에서의 하나의 레이어는, 하나 이상의 바운딩 박스들의 적어도 하나의 에지를 나타내는 제1 메타데이터에 기초하여 복수의 가상 객체들을 포함하는 하나 이상의 바운딩 박스들로 할당되는, 상기 가상 객체들을 수신하기 위한 수단; 및 하나 이상의 바운딩 박스들 내에 포함된 복수의 가상 객체들을 재투영하기 위해 바운딩 박스들 중 하나 이상에 대한 제2 메타데이터를 수신하기 위한 수단으로서, 하나 이상의 바운딩 박스들에 대한 제1 메타데이터 및 제2 메타데이터에 기초하여 복수의 가상 객체들이 재투영되는, 상기 제2 메타데이터를 수신하기 위한 수단을 더 포함한다. 장치는 복수의 가상 객체들에 대응하는 폐쇄된 윤곽들을 결정하기 위해 아이 버퍼에 대해 수행된 연결 컴포넌트 분석에 기초하여 복수의 가상 객체들을 포함하는 하나 이상의 바운딩 박스를 정의하기 위한 수단을 더 포함한다. 장치는, 복수의 가상 객체들에 대응하는 깊이 정보를 포함하는 하나의 레이어에서의 깊이 버퍼에 기초하여 복수의 가상 객체들을 포함하는 하나 이상의 바운딩 박스들을 정의하기 위한 수단을 더 포함한다. 장치는, 눈이 향하는 하나 이상의 바운딩 박스들 중의 특정 바운딩 박스를 결정하기 위해 아이 포즈 정보를 수신하기 위한 수단으로서, 복수의 가상 객체들의 재투영은 특정 바운딩 박스에 대한 제2 메타데이터에 기초하는, 상기 아이 포즈 정보를 송신하기 위한 수단을 더 포함한다. 장치는 제1 메타데이터와 연관된 하나 이상의 바운딩 박스들에 기초하여 복수의 가상 객체들을 별개의 레이어들로 분리하기 위한 수단을 더 포함한다.
개시된 프로세스들 / 플로우차트들에서의 블록들의 특정 순서 또는 계층구조(hierarchy)는 예시적인 접근법들의 예시임이 이해된다. 설계 선호들에 기초하여, 프로세스들 / 플로우차트들에서의 블록들의 특정 순서 또는 계층구조가 재배열될 수도 있음이 이해된다. 추가로, 일부 블록들은 결합되거나 또는 생략될 수도 있다. 첨부된 방법 청구항들은 다양한 블록들의 엘리먼트들을 샘플 순서로 제시하고, 제시된 특정 순서 또는 계층구조로 한정되는 것으로 의도되지 않는다.
이전의 설명은 임의의 당업자로 하여금 본원에서 설명된 다양한 양태들을 실시할 수 있게 하도록 제공된다. 이들 양태들에 대한 다양한 수정들은 당업자에게 용이하게 자명할 것이고, 본 명세서에서 정의된 일반적인 원리들은 다른 양태들에 적용될 수도 있다. 따라서, 청구항들은 본원에서 제시된 양태들로 한정되도록 의도되지 않지만, 청구항들의 언어와 부합하는 충분한 범위를 부여 받아야 하며, 여기서 단수로의 엘리먼트들에 대한 지칭은 구체적으로 그렇게 명시되지 않는 한 "하나 및 오직 하나"가 아니라, 오히려 "하나 이상"을 의미하도록 의도된다. 단어 "예시적인"은 "예, 사례, 또는 예시로서의 역할을 하는 것"을 의미하도록 본원에서 사용된다. 본원에서 "예시적인"으로서 설명된 임의의 양태는 반드시 다른 양태들에 비해 유리하거나 또는 바람직한 것으로서 해석될 필요는 없다.
달리 구체적으로 언급되지 않는 한, 용어 "일부"는 하나 이상을 지칭하고, 용어 "또는"은 컨텍스트가 달리 지시하지 않는 경우 "및/또는"으로서 인터럽트될 수도 있다. "A, B, 또는 C 중 적어도 하나", "A, B, 또는 C 중 하나 이상", "A, B, 및 C 중 적어도 하나", "A, B, 및 C 중 하나 이상", 및 "A, B, C, 또는 이들의 임의의 조합"과 같은 조합들은 A, B, 및/또는 C의 임의의 조합을 포함하고, A 의 배수들, B 의 배수들, 또는 C 의 배수들을 포함할 수도 있다. 구체적으로, "A, B, 또는 C 중 적어도 하나", "A, B, 또는 C 중 하나 이상", "A, B, 및 C 중 적어도 하나", "A, B, 및 C 중 하나 이상", 및 "A, B, C, 또는 이들의 임의의 조합"과 같은 조합들은 오직 A, 오직 B, 오직 C, A 및 B, A 및 C, B 및 C, 또는 A 와 B 와 C일 수도 있고, 여기서 임의의 그러한 조합들은 A, B, 또는 C 의 하나 이상의 멤버 또는 멤버들을 포함할 수도 있다. 당업자들에게 알려진 또는 나중에 알려지게 될 본 개시 전반에 걸쳐 설명된 다양한 양태들의 엘리먼트들에 대한 모든 구조적 및 기능적 등가물들은 본원에 참조에 의해 명백히 통합되고 청구항들에 의해 포괄되도록 의도된다. 더욱이, 본원에서 개시된 어느 것도 그러한 개시가 청구항들에서 명시적으로 인용되는지 여부에 상관없이 대중에게 전용되도록 의도되지 않는다. 단어들 "모듈", "메커니즘", "엘리먼트", "디바이스" 등은 단어 "수단"에 대한 대체물이 아닐 수도 있다. 이로써, 어떠한 청구항 엘리먼트도, 그 엘리먼트가 어구 "위한 수단"을 사용하여 명시적으로 인용되지 않는 한 기능식(means plus function)으로서 해석되지 않아야 한다.
하나 이상의 예들에서, 본원에서 설명된 기능들은 하드웨어, 소프트웨어, 펌웨어, 또는 이들의 임의의 조합에서 구현될 수도 있다. 예를 들어, 용어 "프로세싱 유닛"이 본 개시에 걸쳐 사용되었지만, 이러한 프로세싱 유닛들은 하드웨어, 소프트웨어, 펌웨어, 또는 이들의 임의의 조합에서 구현될 수도 있다. 임의의 기능, 프로세싱 유닛, 본원에서 설명된 기법, 또는 다른 모듈이 소프트웨어에서 구현되는 경우, 기능, 프로세싱 유닛, 본원에서 설명된 기법, 또는 다른 모듈은 하나 이상의 명령 또는 코드로서 컴퓨터 판독가능 매체 상에 저장되거나 송신될 수도 있다.
컴퓨터 판독가능 매체는 한 장소로부터 다른 장소로의 컴퓨터 프로그램의 전송을 용이하게 하는 임의의 매체를 포함하는 통신 매체 또는 컴퓨터 데이터 저장 매체를 포함할 수도 있다. 이러한 방식으로, 컴퓨터 판독가능 매체는: (1) 비일시적인, 유형(tangible) 컴퓨터 판독가능 저장 매체; 또는 (2) 신호 또는 캐리어 파와 같은 통신 매체에 일반적으로 대응할 수도 있다. 데이터 저장 매체는 본 개시에서 설명된 기법들의 구현을 위한 명령들, 코드, 및/또는 데이터 구조들을 취출하기 위해 하나 이상의 컴퓨터들 또는 하나 이상의 프로세서들에 의해 액세스될 수 있는 임의의 이용가능한 매체들일 수도 있다. 한정이 아닌 예로서, 그러한 컴퓨터 판독가능 매체들은 RAM, ROM, EEPROM, CD-ROM (compact disc-read only memory) 또는 다른 광학 디스크 스토리지, 자기 디스크 스토리지 또는 다른 자기 저장 디바이스들을 포함할 수도 있다. 본 명세서에서 사용되는 디스크(자기 디스크(disk) 및 광 디스크(disc))는 컴팩트 디스크(CD), 레이저 디스크, 광학 디스크, DVD(digital versatile disc), 플로피 디스크 및 블루레이 디스크를 포함하며, 여기서 자기 디스크(disk)는 일반적으로 데이터를 자기적으로 재생(reproduce)하는 반면, 광 디스크(disc)는 일반적으로 레이저를 사용하여 광학적으로 데이터를 재생한다. 또한, 상기의 조합들은 컴퓨터 판독 가능 매체들의 범위 내에 포함되어야 한다. 컴퓨터 프로그램 제품은 컴퓨터 판독가능 매체를 포함할 수도 있다.
본 개시의 기법들은 무선 핸드셋, 집적 회로(IC) 또는 IC들의 세트, 예를 들어 칩 세트를 포함하는, 매우 다양한 디바이스들 또는 장치들에서 구현될 수도 있다. 개시된 기법들을 수행하도록 구성된 디바이스들의 기능적 양태들을 강조하기 위해 다양한 컴포넌트들, 모듈들, 또는 유닛들이 본 개시에 설명되지만, 상이한 하드웨어 유닛들에 의한 실현을 반드시 필요로 하는 것은 아니다. 오히려, 상기 설명된 바와 같이, 다양한 유닛들은 적합한 소프트웨어 및/또는 펌웨어와 함께 상기 설명된 바와 같은 하나 이상의 프로세서들을 포함하여, 상호운용식 하드웨어 유닛들의 집합에 의해 제공되거나 임의의 하드웨어 유닛에 결합될 수도 있다. 따라서, 본원에서 사용된 바와 같은 용어 "프로세서"는, 전술한 구조 중 임의의 것 또는 본원에서 설명된 기법들의 구현에 적합한 임의의 다른 구조를 지칭할 수도 있다. 또한, 기법들은 하나 이상의 회로 또는 로직 엘리먼트에서 완전히 구현될 수도 있다.
다음의 양태들은 단지 예시적인 것이며, 제한 없이 본원에서 설명된 다른 양태들 또는 교시들과 결합될 수도 있다.
양태 1은 디스플레이 프로세싱을 위한 장치로서, 메모리에 커플링되는 적어도 하나의 프로세서를 포함하고, 상기 적어도 하나의 프로세서는, 복수의 가상 객체들을 포함하는 그래픽 데이터의 레이어를 획득하는 것으로서, 복수의 가상 객체들 각각은 복수의 바운딩 박스들 중 적어도 하나의 바운딩 박스와 연관되는, 복수의 가상 객체들을 포함하는 그래픽 데이터의 레이어를 획득하고; 복수의 바운딩 박스들 중 적어도 하나의 바운딩 박스의 적어도 하나의 에지를 나타내는 메타데이터를 획득하고; 복수의 바운딩 박스들 각각과 연관된 재투영 명령들에 대응하는 메타데이터를 획득하고; 그리고 적어도 하나의 바운딩 박스의 적어도 하나의 에지를 나타내는 메타데이터 및 재투영 명령들에 대응하는 메타데이터에 기초하여 복수의 가상 객체들을 재투영하도록 구성되는, 디스플레이 프로세싱을 위한 장치이다.
양태 2는 양태 1과 결합될 수도 있고, 복수의 가상 객체들 각각이 복수의 바운딩 박스들 중 각각의 바운딩 박스 내에 포함되는 것을 포함한다.
양태 3은 양태들 1 중 임의의 것과 결합될 수도 있고, 복수의 바운딩 박스들이 그리드 구조와 연관되고, 복수의 가상 객체들은 그리드 구조의 하나 이상의 타일들 내에 포함되는 것을 포함한다.
양태 4는 양태들 1 또는 3 중 임의의 것과 결합될 수도 있고, 그리드 구조가 아이 버퍼 상에 오버레이되는 것을 포함한다.
양태 5는 양태들 1 또는 3 내지 4 중 임의의 것과 결합될 수도 있고, 하나 이상의 타일들 각각이 복수의 바운딩 박스들 중 별개의 바운딩 박스에 대응하는 것을 포함한다.
양태 6은 양태들 1 또는 3 내지 5 중 임의의 것과 결합될 수도 있고, 그리드 구조가 균일한 타일 분포, 적어도 하나의 세분화된 타일, 또는 적어도 하나의 병합된 타일 중 적어도 하나를 포함하는 것을 포함한다.
양태 7은 양태들 1 내지 6 중 임의의 것과 결합될 수도 있고, 재투영 명령들에 대응하는 메타데이터가 복수의 가상 객체들에 대해 APR을 수행하기 위한 적어도 하나의 평면 파라미터를 포함하는 것을 포함한다.
양태 8은 양태들 1 내지 7 중 임의의 것과 결합될 수도 있고, 재투영 명령들에 대응하는 메타데이터가 적어도 하나의 바운딩 박스와 연관된 복수의 가상 객체들에 대응하는 포즈 정보 또는 앵커 식별자들 중 적어도 하나를 포함하는 것을 포함한다.
양태 9는 양태들 1 내지 8 중 임의의 것과 결합될 수도 있고, 재투영 명령들에 대응하는 메타데이터가 서버 디바이스로부터 획득되는 것을 포함한다.
양태 10은 양태들 1 내지 9 중 임의의 것와 결합될 수도 있고, 복수의 가상 객체들과 연관된 적어도 하나의 바운딩 박스가 아이 버퍼에 대해 수행되는 연결 컴포넌트 분석에 기초하여 정의되며, 연결 컴포넌트 분석은 복수의 가상 객체들에 대응하는 폐쇄된 윤곽들을 나타내는 것을 포함한다.
양태 11은 양태들 1 내지 10 중 임의의 것과 결합될 수도 있고, 복수의 가상 객체들과 연관된 적어도 하나의 바운딩 박스가 복수의 가상 객체들에 대응하는 깊이 정보를 포함하는 깊이 버퍼에 기초하여 정의되는 것을 포함한다.
양태 12는 양태들 1 내지 11 중 임의의 것와 결합될 수도 있고, 적어도 하나의 프로세서가 눈이 향하는 복수의 바운딩 박스들 중 특정 바운딩 박스를 결정하기 위해 아이 포즈 정보를 획득하도록 추가로 구성되며, 여기서 복수의 가상 객체들의 재투영은 특정 바운딩 박스와 연관되는 재투영 명령들에 대응하는 메타데이터에 기초하는 것을 포함한다.
양태 13은 양태들 1 내지 12 중 임의의 것과 결합될 수도 있고, 아이 버퍼가 좌측 아이 버퍼 및 우측 아이 버퍼를 포함하고, 좌측 아이 버퍼 및 우측 아이 버퍼 사이의 DFS에 기초하여 깊이 버퍼로부터 깊이가 결정되는 것을 포함한다.
양태 14는 양태들 1 내지 13 중 임의의 것과 결합될 수도 있고, 재투영 명령들에 대응하는 메타데이터가 복수의 가상 객체들 중의 가상 객체에 대응하는 파라미터화된 메쉬를 포함하는 것을 포함한다.
양태 15는 양태들 1 내지 14 중 임의의 것과 결합될 수도 있고, 적어도 하나의 프로세서는 재투영된 복수의 가상 객체들을 XR 디스플레이 디바이스 상의 디스플레이를 위한 동일한 프레임으로 합성하도록 추가로 구성되는 것을 포함한다.
양태 16은 양태들 1 내지 15 중 임의의 것과 결합될 수도 있고, 장치가 무선 통신 디바이스인 것을 포함한다.
양태 17은 디스플레이 프로세싱을 위한 장치로서, 메모리에 커플링되는 적어도 하나의 프로세서를 포함하며, 상기 적어도 하나의 프로세서는, 레이어 내의 복수의 가상 객체들을 렌더링하는 것으로서, 복수의 가상 객체들 각각은 복수의 바운딩 박스들 중 적어도 하나의 바운딩 박스와 연관되는, 복수의 가상 객체들을 렌더링하고; 복수의 바운딩 박스들 중적어도 하나의 바운딩 박스의 적어도 하나의 에지를 나타내는 메타데이터를 결정하고; 복수의 바운딩 박스들 각각과 연관된 재투영 명령들에 대응하는 메타데이터를 결정하고; 그리고 복수의 가상 객체들의 재투영을 위해, 바운딩 박스의 상기 적어도 하나의 에지를 나타내는 메타데이터 및 재투영 명령들에 대응하는 메타데이터를 송신하도록 구성되는, 디스플레이 프로세싱을 위한 장치이다.
양태 18는 양태 17과 결합될 수도 있고, 복수의 가상 객체들 각각이 복수의 바운딩 박스들 중 각각의 바운딩 박스 내에 포함되는 것을 포함한다.
양태 19은 양태들 17 중 임의의 것과 결합될 수도 있고, 복수의 바운딩 박스들이 그리드 구조와 연관되고, 복수의 가상 객체들은 그리드 구조의 하나 이상의 타일들 내에 포함되는 것을 포함한다.
양태 20는 양태들 17 또는 19 중 임의의 것과 결합될 수도 있고, 그리드 구조가 아이 버퍼 상에 오버레이되는 것을 포함한다.
양태 21은 양태들 17 또는 19 내지 20 중 임의의 것과 결합될 수도 있고, 하나 이상의 타일 각각이 복수의 바운딩 박스들 중 별개의 바운딩 박스에 대응하는 것을 포함한다.
양태 22는 양태들 17 또는 19 내지 21 중 임의의 것과 결합될 수도 있고, 그리드 구조가 균일한 타일 분포, 적어도 하나의 세분화된 타일, 또는 적어도 하나의 병합된 타일 중 적어도 하나를 포함하는 것을 포함한다.
양태 23은 양태들 17 내지 22 중 임의의 것과 결합될 수도 있고, 재투영 명령들에 대응하는 메타데이터가 복수의 가상 객체들에 대해 APR을 수행하기 위한 적어도 하나의 평면 파라미터를 포함하는 것을 포함한다.
양태 24는 양태들 17 내지 23 중 임의의 것과 결합될 수 있고, 재투영 명령들에 대응하는 메타데이터가 하나 이상의 바운딩 박스들과 연관된 복수의 가상 객체들에 대응하는 포즈 정보 또는 앵커 식별자들 중 적어도 하나를 포함하는 것을 포함한다.
양태 25는 양태들 17 내지 24 중 임의의 것과 결합될 수도 있고, 재투영 명령들에 대응하는 메타데이터가 클라이언트 디바이스로 송신되는 것을 포함한다.
양태 26은 양태들 17 내지 25 중 임의의 양태와 조합될 수 있고, 적어도 하나의 프로세서가 아이 버퍼에 대해 수행되는 연결 컴포넌트 분석에 기초하여 복수의 가상 객체들과 적어도 하나의 바운딩 박스를 정의하도록 추가로 구성되며, 여기서 연결 컴포넌트 분석은 복수의 가상 객체들에 대응하는 폐쇄된 윤곽들을 나타내는 것을 포함한다.
양태 27은 양태들 17 내지 26 중 임의의 것과 결합될 수 있고, 적어도 하나의 프로세서가 복수의 가상 객체들에 대응하는 깊이 정보를 포함하는 깊이 버퍼에 기초하여 복수의 가상 객체들과 연관된 적어도 하나의 바운딩 박스를 정의하도록 추가로 구성되는 것을 포함한다.
양태 28은 양태들 17 내지 27 중 임의의 것과 결합될 수 있고, 적어도 하나의 프로세서가 눈이 향하는 복수의 바운딩 박스들 중 특정 바운딩 박스를 결정하기 위해 아이 포즈 정보를 송신하도록 추가로 구성되며, 여기서 복수의 가상 객체들의 재투영은 특정 바운딩 박스와 연관되는 재투영 명령들에 대응하는 메타데이터에 기초하는 것을 포함한다.
양태 29는 양태들 17 내지 28 중 임의의 것과 결합될 수도 있고, 아이 버퍼가 좌측 아이 버퍼 및 우측 아이 버퍼를 포함하고, 깊이가 좌측 아이 버퍼와 우측 아이 버퍼 사이의 DFS에 기초하여 깊이 버퍼로부터 결정되는 것을 포함한다.
양태 30은 양태들 17 내지 29 중 임의의 것과 결합될 수도 있고, 재투영 명령들에 대응하는 메타데이터가 복수의 가상 객체들 중의 가상 객체에 대응하는 파라미터화된 메쉬를 포함하는 것을 포함한다.
양태 31은 양태들 17 내지 30 중 임의의 것과 결합될 수 있고, 확장 현실 XR 디스플레이 디바이스 상의 디스플레이를 위한 동일한 프레임으로의 재투영 후에 복수의 가상 객체들이 합성되는 것을 포함한다.
양태 32는 양태들 17 내지 31 중 임의의 것과 결합될 수 있고, 적어도 하나의 프로세서가 적어도 하나의 바운딩 박스의 적어도 하나의 에지를 나타내는 메타데이터에 기초하여 복수의 가상 객체들을 별개의 레이어들로 분리하도록 추가로 구성되는 것을 포함한다.
양태 33은 양태들 17 내지 32 중 임의의 것과 결합될 수도 있고, 장치가 무선 통신 디바이스인 것을 포함한다.
양태 34는 양태들 1 내지 33 중 임의의 것을 구현하기 위한 무선 통신의 방법이다.
양태 35는 양태들 1 내지 33 중 임의의 것을 구현하기 위한 수단을 포함하는 무선 통신을 위한 장치이다.
양태 36은 컴퓨터 실행가능 코드를 저장하는 컴퓨터 판독가능 매체이며, 코드는 적어도 하나의 프로세서에 의해 실행될 때 적어도 하나의 프로세서로 하여금 양태들 1 내지 33 중 임의의 것을 구현하게 한다.
다양한 예들이 설명되었다. 이들 및 다른 예들은 다음의 청구항들의 범위 내에 있다.

Claims (35)

  1. 디스플레이 프로세싱을 위한 장치로서,
    메모리; 및
    상기 메모리에 커플링되는 적어도 하나의 프로세서를 포함하고,
    상기 적어도 하나의 프로세서는,
    복수의 가상 객체들을 포함하는 그래픽 데이터의 레이어를 획득하는 것으로서, 상기 복수의 가상 객체들 각각은 복수의 바운딩 박스들 중 적어도 하나의 바운딩 박스와 연관되는, 상기 복수의 가상 객체들을 포함하는 그래픽 데이터의 레이어를 획득하고;
    상기 복수의 바운딩 박스들 중 상기 적어도 하나의 바운딩 박스의 적어도 하나의 에지를 나타내는 메타데이터를 획득하고;
    상기 복수의 바운딩 박스들 각각과 연관된 재투영 명령들에 대응하는 메타데이터를 획득하고; 그리고
    상기 적어도 하나의 바운딩 박스의 상기 적어도 하나의 에지를 나타내는 메타데이터 및 상기 재투영 명령들에 대응하는 메타데이터에 기초하여 상기 복수의 가상 객체들을 재투영하도록
    구성되는, 디스플레이 프로세싱을 위한 장치.
  2. 제 1 항에 있어서,
    상기 복수의 가상 객체들 각각은 상기 복수의 바운딩 박스들 중 각각의 바운딩 박스 내에 포함되는, 디스플레이 프로세싱을 위한 장치.
  3. 제 1 항에 있어서,
    상기 복수의 바운딩 박스들은 그리드 구조와 연관되고, 상기 복수의 가상 객체들은 상기 그리드 구조의 하나 이상의 타일들 내에 포함되는, 디스플레이 프로세싱을 위한 장치.
  4. 제 3 항에 있어서,
    상기 그리드 구조는 아이 버퍼 상에 오버레이되는, 디스플레이 프로세싱을 위한 장치.
  5. 제 3 항에 있어서,
    상기 하나 이상의 타일들 각각은 상기 복수의 바운딩 박스들 중 별개의 바운딩 박스에 대응하는, 디스플레이 프로세싱을 위한 장치.
  6. 제 3 항에 있어서,
    상기 그리드 구조는 균일한 타일 분포, 적어도 하나의 세분화된 타일, 또는 적어도 하나의 병합된 타일 중 적어도 하나를 포함하는, 디스플레이 프로세싱을 위한 장치.
  7. 제 1 항에 있어서,
    상기 재투영 명령들에 대응하는 메타데이터는 상기 복수의 가상 객체들에 대해 APR(asynchronous planar reprojection)을 수행하기 위한 적어도 하나의 평면 파라미터를 포함하는, 디스플레이 프로세싱을 위한 장치.
  8. 제 1 항에 있어서,
    상기 재투영 명령들에 대응하는 메타데이터는 상기 적어도 하나의 바운딩 박스와 연관된 상기 복수의 가상 객체들에 대응하는 포즈 정보 또는 앵커 식별자들 중 적어도 하나를 포함하는, 디스플레이 프로세싱을 위한 장치.
  9. 제 1 항에 있어서,
    상기 재투영 명령들에 대응하는 메타데이터는 서버 디바이스로부터 획득되는, 디스플레이 프로세싱을 위한 장치.
  10. 제 1 항에 있어서,
    상기 복수의 가상 객체들과 연관된 상기 적어도 하나의 바운딩 박스는 아이 버퍼에 대해 수행되는 연결 컴포넌트 분석에 기초하여 정의되며, 상기 연결 컴포넌트 분석은 상기 복수의 가상 객체들에 대응하는 폐쇄된 윤곽들을 나타내는, 디스플레이 프로세싱을 위한 장치.
  11. 제 1 항에 있어서,
    상기 복수의 가상 객체들과 연관된 상기 적어도 하나의 바운딩 박스는 상기 복수의 가상 객체들에 대응하는 깊이 정보를 포함하는 깊이 버퍼에 기초하여 정의되는, 디스플레이 프로세싱을 위한 장치.
  12. 제 1 항에 있어서,
    상기 적어도 하나의 프로세서는, 눈이 향하는 상기 복수의 바운딩 박스들 중 특정 바운딩 박스를 결정하기 위해 아이 포즈 정보를 획득하도록 추가로 구성되며, 상기 복수의 가상 객체들의 재투영은 상기 특정 바운딩 박스와 연관되는 상기 재투영 명령들에 대응하는 메타데이터에 기초하는, 디스플레이 프로세싱을 위한 장치.
  13. 제 1 항에 있어서,
    아이 버퍼는 좌측 아이 버퍼 및 우측 아이 버퍼를 포함하고, 상기 좌측 아이 버퍼 및 상기 우측 아이 버퍼 사이의 DFS(depth-from-stereo)에 기초하여 깊이 버퍼로부터 깊이가 결정되는, 디스플레이 프로세싱을 위한 장치.
  14. 제 1 항에 있어서,
    상기 재투영 명령들에 대응하는 메타데이터는 상기 복수의 가상 객체들 중의 가상 객체에 대응하는 파라미터화된 메쉬를 포함하는, 디스플레이 프로세싱을 위한 장치.
  15. 제 1 항에 있어서,
    상기 적어도 하나의 프로세서는 재투영된 복수의 가상 객체들을 확장 현실(XR) 디스플레이 디바이스 상의 디스플레이를 위한 동일한 프레임으로 합성하도록 추가로 구성되는, 디스플레이 프로세싱을 위한 장치.
  16. 제 1 항에 있어서,
    상기 장치는 무선 통신 디바이스인, 디스플레이 프로세싱을 위한 장치.
  17. 디스플레이 프로세싱을 위한 장치로서,
    메모리; 및
    상기 메모리에 커플링되는 적어도 하나의 프로세서를 포함하며,
    상기 적어도 하나의 프로세서는,
    레이어 내의 복수의 가상 객체들을 렌더링하는 것으로서, 상기 복수의 가상 객체들 각각은 복수의 바운딩 박스들 중 적어도 하나의 바운딩 박스와 연관되는, 상기 복수의 가상 객체들을 렌더링하고;
    상기 복수의 바운딩 박스들 중 상기 적어도 하나의 바운딩 박스의 적어도 하나의 에지를 나타내는 메타데이터를 결정하고;
    상기 복수의 바운딩 박스들 각각과 연관된 재투영 명령들에 대응하는 메타데이터를 결정하고; 그리고
    상기 복수의 가상 객체들의 재투영을 위해, 상기 바운딩 박스의 상기 적어도 하나의 에지를 나타내는 메타데이터 및 상기 재투영 명령들에 대응하는 메타데이터를 송신하도록
    구성되는, 디스플레이 프로세싱을 위한 장치.
  18. 제 17 항에 있어서,
    상기 복수의 가상 객체들 각각은 상기 복수의 바운딩 박스들 중 각각의 바운딩 박스 내에 포함되는, 디스플레이 프로세싱을 위한 장치.
  19. 제 17 항에 있어서,
    상기 복수의 바운딩 박스들은 그리드 구조와 연관되고, 상기 복수의 가상 객체들은 상기 그리드 구조의 하나 이상의 타일들 내에 포함되는, 디스플레이 프로세싱을 위한 장치.
  20. 제 19 항에 있어서,
    상기 그리드 구조는 아이 버퍼 상에 오버레이되는, 디스플레이 프로세싱을 위한 장치.
  21. 제 19 항에 있어서,
    상기 하나 이상의 타일들 각각은 상기 복수의 바운딩 박스들 중 별개의 바운딩 박스에 대응하는, 디스플레이 프로세싱을 위한 장치.
  22. 제 19 항에 있어서,
    상기 그리드 구조는 균일한 타일 분포, 적어도 하나의 세분화된 타일, 또는 적어도 하나의 병합된 타일 중 적어도 하나를 포함하는, 디스플레이 프로세싱을 위한 장치.
  23. 제 17 항에 있어서,
    상기 재투영 명령들에 대응하는 메타데이터는 상기 복수의 가상 객체들에 대해 APR(asynchronous planar reprojection)을 수행하기 위한 적어도 하나의 평면 파라미터를 포함하는, 디스플레이 프로세싱을 위한 장치.
  24. 제 17 항에 있어서,
    상기 재투영 명령들에 대응하는 메타데이터는 하나 이상의 바운딩 박스들과 연관된 상기 복수의 가상 객체들에 대응하는 포즈 정보 또는 앵커 식별자들 중 적어도 하나를 포함하는, 디스플레이 프로세싱을 위한 장치.
  25. 제 17 항에 있어서,
    상기 재투영 명령들에 대응하는 메타데이터는 클라이언트 디바이스로 송신되는, 디스플레이 프로세싱을 위한 장치.
  26. 제 17 항에 있어서,
    상기 적어도 하나의 프로세서는 아이 버퍼에 대해 수행되는 연결 컴포넌트 분석에 기초하여 상기 복수의 가상 객체들과 연관된 상기 적어도 하나의 바운딩 박스를 정의하도록 추가로 구성되며, 상기 연결 컴포넌트 분석은 상기 복수의 가상 객체들에 대응하는 폐쇄된 윤곽들을 나타내는, 디스플레이 프로세싱을 위한 장치.
  27. 제 17 항에 있어서,
    상기 적어도 하나의 프로세서는 상기 복수의 가상 객체들에 대응하는 깊이 정보를 포함하는 깊이 버퍼에 기초하여 상기 복수의 가상 객체들과 연관된 상기 적어도 하나의 바운딩 박스를 정의하도록 추가로 구성되는, 디스플레이 프로세싱을 위한 장치.
  28. 제 17 항에 있어서,
    상기 적어도 하나의 프로세서는, 눈이 향하는 상기 복수의 바운딩 박스들 중 특정 바운딩 박스를 결정하기 위해 아이 포즈 정보를 송신하도록 추가로 구성되며, 상기 복수의 가상 객체들의 재투영은 상기 특정 바운딩 박스와 연관되는 상기 재투영 명령들에 대응하는 메타데이터에 기초하는, 디스플레이 프로세싱을 위한 장치.
  29. 제 17 항에 있어서,
    아이 버퍼는 좌측 아이 버퍼 및 우측 아이 버퍼를 포함하고, 상기 좌측 아이 버퍼 및 상기 우측 아이 버퍼 사이의 DFS(depth-from-stereo)에 기초하여 깊이 버퍼로부터 깊이가 결정되는, 디스플레이 프로세싱을 위한 장치.
  30. 제 17 항에 있어서,
    상기 재투영 명령들에 대응하는 메타데이터는 상기 복수의 가상 객체들 중의 가상 객체에 대응하는 파라미터화된 메쉬를 포함하는, 디스플레이 프로세싱을 위한 장치.
  31. 제 17 항에 있어서,
    상기 복수의 가상 객체들은, 확장 현실(XR) 디스플레이 디바이스 상의 디스플레이를 위한 동일한 프레임으로의 재투영 후에 합성되는, 디스플레이 프로세싱을 위한 장치.
  32. 제 17 항에 있어서,
    상기 적어도 하나의 프로세서는 상기 적어도 하나의 바운딩 박스의 상기 적어도 하나의 에지를 나타내는 메타데이터에 기초하여 상기 복수의 가상 객체들을 별개의 레이어들로 분리하도록 추가로 구성되는, 디스플레이 프로세싱을 위한 장치.
  33. 제 17 항에 있어서,
    상기 장치는 무선 통신 디바이스인, 디스플레이 프로세싱을 위한 장치.
  34. 디스플레이 프로세싱의 방법으로서,
    복수의 가상 객체들을 포함하는 그래픽 데이터의 레이어를 획득하는 단계로서, 상기 복수의 가상 객체들 각각은 복수의 바운딩 박스들 중 적어도 하나의 바운딩 박스와 연관되는, 상기 복수의 가상 객체들을 포함하는 그래픽 데이터의 레이어를 획득하는 단계;
    상기 복수의 바운딩 박스들 중 상기 적어도 하나의 바운딩 박스의 적어도 하나의 에지를 나타내는 메타데이터를 획득하는 단계;
    상기 복수의 바운딩 박스들 각각과 연관된 재투영 명령들에 대응하는 메타데이터를 획득하는 단계; 및
    상기 적어도 하나의 바운딩 박스의 상기 적어도 하나의 에지를 나타내는 메타데이터 및 상기 재투영 명령들에 대응하는 메타데이터에 기초하여 상기 복수의 가상 객체들을 재투영하는 단계
    를 포함하는, 디스플레이 프로세싱의 방법.
  35. 디스플레이 프로세싱의 방법으로서,
    레이어 내의 복수의 가상 객체들을 렌더링하는 단계로서, 상기 복수의 가상 객체들 각각은 복수의 바운딩 박스들 중 적어도 하나의 바운딩 박스와 연관되는, 상기 복수의 가상 객체들을 렌더링하는 단계;
    상기 복수의 바운딩 박스들 중 상기 적어도 하나의 바운딩 박스의 적어도 하나의 에지를 나타내는 메타데이터를 결정하는 단계;
    상기 복수의 바운딩 박스들 각각과 연관된 재투영 명령들에 대응하는 메타데이터를 결정하는 단계; 및
    상기 복수의 가상 객체들의 재투영을 위해, 상기 바운딩 박스의 상기 적어도 하나의 에지를 나타내는 메타데이터 및 상기 재투영 명령들에 대응하는 메타데이터를 송신하는 단계
    를 포함하는, 디스플레이 프로세싱의 방법.
KR1020227038324A 2020-05-08 2021-05-07 증강 현실을 위한 멀티레이어 재투영 기법들 KR20230007358A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
IN202041019594 2020-05-08
IN202041019594 2020-05-08
PCT/US2021/031409 WO2021226535A1 (en) 2020-05-08 2021-05-07 Multi-layer reprojection techniques for augmented reality

Publications (1)

Publication Number Publication Date
KR20230007358A true KR20230007358A (ko) 2023-01-12

Family

ID=76197617

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020227038324A KR20230007358A (ko) 2020-05-08 2021-05-07 증강 현실을 위한 멀티레이어 재투영 기법들

Country Status (7)

Country Link
US (1) US20230039100A1 (ko)
EP (1) EP4147192A1 (ko)
KR (1) KR20230007358A (ko)
CN (1) CN115552451A (ko)
BR (1) BR112022021706A2 (ko)
TW (1) TW202201350A (ko)
WO (1) WO2021226535A1 (ko)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2022097904A (ja) * 2020-12-21 2022-07-01 トヨタ自動車株式会社 案内表示システム及び案内表示システムのサーバ
US20230334792A1 (en) * 2022-04-18 2023-10-19 Mobeus Industries, Inc. Interactive reality computing experience using optical lenticular multi-perspective simulation
WO2023215637A1 (en) * 2022-05-06 2023-11-09 Mobeus Industries, Inc. Interactive reality computing experience using optical lenticular multi-perspective simulation
WO2023227223A1 (en) * 2022-05-26 2023-11-30 Telefonaktiebolaget Lm Ericsson (Publ) Split transport for warping
CN115032797B (zh) * 2022-06-30 2023-12-08 恒玄科技(上海)股份有限公司 用于无线智能眼镜的显示方法和无线智能眼镜
WO2024003577A1 (en) * 2022-07-01 2024-01-04 V-Nova International Ltd Applications of layered encoding in split computing
US20240029363A1 (en) * 2022-07-20 2024-01-25 Qualcomm Incorporated Late stage occlusion based rendering for extended reality (xr)
WO2024039887A1 (en) * 2022-08-19 2024-02-22 Mobeus Industries, Inc. Interactive reality computing experience using optical lenticular multi-perspective simulation
US20240193873A1 (en) * 2022-12-07 2024-06-13 Qualcomm Incorporated Independent scene movement based on mask layers

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10410349B2 (en) * 2017-03-27 2019-09-10 Microsoft Technology Licensing, Llc Selective application of reprojection processing on layer sub-regions for optimizing late stage reprojection power
US10776992B2 (en) * 2017-07-05 2020-09-15 Qualcomm Incorporated Asynchronous time warp with depth data
US10403032B2 (en) * 2017-08-22 2019-09-03 Qualcomm Incorporated Rendering an image from computer graphics using two rendering computing devices
US10861215B2 (en) * 2018-04-30 2020-12-08 Qualcomm Incorporated Asynchronous time and space warp with determination of region of interest

Also Published As

Publication number Publication date
US20230039100A1 (en) 2023-02-09
WO2021226535A1 (en) 2021-11-11
TW202201350A (zh) 2022-01-01
CN115552451A (zh) 2022-12-30
EP4147192A1 (en) 2023-03-15
BR112022021706A2 (pt) 2022-12-20

Similar Documents

Publication Publication Date Title
KR20230007358A (ko) 증강 현실을 위한 멀티레이어 재투영 기법들
US11719933B2 (en) Hand-locked rendering of virtual objects in artificial reality
KR102590644B1 (ko) 증강 현실 콘텐츠의 아틀라스 관리를 위한 방법 및 장치
US10776997B2 (en) Rendering an image from computer graphics using two rendering computing devices
US20210150802A1 (en) Processing of 3d image information based on texture maps and meshes
US11954805B2 (en) Occlusion of virtual objects in augmented reality by physical objects
US10909659B2 (en) Super-resolution image processing using a machine learning system
CN112739433B (zh) 用于远程渲染的vr的异步空间扭曲
US11468629B2 (en) Methods and apparatus for handling occlusions in split rendering
KR20180023856A (ko) 그래픽 처리 시스템 및 그래픽 프로세서
KR20220148814A (ko) 효율적인 다중 뷰 래스터화를 위한 방법들 및 장치
US20230147244A1 (en) Methods and apparatus for occlusion handling techniques
US20210312704A1 (en) Rendering using shadow information
US11062492B2 (en) Method of image production
KR20240093463A (ko) 메시릿 셰이딩 아틀라스
KR20180117835A (ko) 이미지를 렌더링하는 방법

Legal Events

Date Code Title Description
A201 Request for examination