KR101923562B1 - 가변 렌더링 및 래스터화 파라미터 하에서 가변 뷰포트에 대하여 오브젝트를 효율적으로 리렌더링하는 방법 - Google Patents

가변 렌더링 및 래스터화 파라미터 하에서 가변 뷰포트에 대하여 오브젝트를 효율적으로 리렌더링하는 방법 Download PDF

Info

Publication number
KR101923562B1
KR101923562B1 KR1020167027205A KR20167027205A KR101923562B1 KR 101923562 B1 KR101923562 B1 KR 101923562B1 KR 1020167027205 A KR1020167027205 A KR 1020167027205A KR 20167027205 A KR20167027205 A KR 20167027205A KR 101923562 B1 KR101923562 B1 KR 101923562B1
Authority
KR
South Korea
Prior art keywords
zone
different
zones
rendering
rendering parameters
Prior art date
Application number
KR1020167027205A
Other languages
English (en)
Other versions
KR20160130433A (ko
Inventor
마크 에반 세르니
제이슨 스칸린
Original Assignee
소니 인터랙티브 엔터테인먼트 아메리카 엘엘씨
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 소니 인터랙티브 엔터테인먼트 아메리카 엘엘씨 filed Critical 소니 인터랙티브 엔터테인먼트 아메리카 엘엘씨
Publication of KR20160130433A publication Critical patent/KR20160130433A/ko
Application granted granted Critical
Publication of KR101923562B1 publication Critical patent/KR101923562B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/005General purpose rendering architectures
    • 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
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/011Arrangements for interaction with the human body, e.g. for user immersion in virtual reality
    • G06F3/013Eye tracking input arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/60Memory management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T11/002D [Two Dimensional] image generation
    • G06T11/20Drawing from basic elements, e.g. lines or circles
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T11/002D [Two Dimensional] image generation
    • G06T11/40Filling a planar surface by adding surface attributes, e.g. colour or texture
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/10Geometric effects
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Graphics (AREA)
  • Human Computer Interaction (AREA)
  • Geometry (AREA)
  • Computer Hardware Design (AREA)
  • Image Generation (AREA)
  • Controls And Circuits For Display Device (AREA)

Abstract

그래픽 처리는, 스크린 영역 상의 서로 다른 위치들에 대하여 복수의 서로 다른 렌더링 파라미터들로 스크린을 처리한다. 렌더링 파라미터 컨텍스트는 복수의 구역의 각각에 대하여 설정되며, 각 구역에는 인덱스가 배정된다. 스크린 영역의 적어도 두 개의 영역을 커버하는 오브젝트는 메모리에 설정된다. 이러한 구역들에는 대응하는 구역 인덱스들이 배정된다. 오브젝트를 위한 드로 호출이 발행된다. 대안으로, 스크린 영역에 매핑된 하나 이상의 오브젝트를 나타내는 그래픽을 처리한다. 스크린 영역은 복수의 구역을 포함하고, 각 구역은 렌더링 파라미터들의 서로 다른 세트를 갖는다. 구역들 중 적어도 두 개의 구역을 커버하는 오브젝트들 중 하나에 속하는 프리미티브들을 수신한다. 각 프리미티브는, 각 반복마다 각 구역의 렌더링 파라미터들을 사용하여, 커버하는 각 구역에 대하여 각 프리미티브를 반복함으로써 스크린 공간에 조립된다.

Description

가변 렌더링 및 래스터화 파라미터 하에서 가변 뷰포트에 대하여 오브젝트를 효율적으로 리렌더링하는 방법{METHOD FOR EFFICIENT RE-RENDERING OBJECTS TO VARY VIEWPORTS AND UNDER VARYING RENDERING AND RASTERIZATION PARAMETERS}
우선권 주장
본 출원은, 2014년 4월 5일에 가출원된 동일 출원인에 의한 공동 계류중인 미국 가특허출원번호 제61/975,774호인 우선권을 주장하며, 그 전문은 본원에 참고로 원용된다.
관련 출원에 대한 상호 참조
본 출원은 "METHOD FOR EFFICIENT CONSTRUCTION OF HIGH RESOLUTION DISPLAY BUFFERS"(대리인 관리 번호 SCEA13055US00)라는 명칭으로 2014년 4월 5일자로 출원된 동일 출원인에 의한 공동 계류중인 Tobias Berghoff의 미국 특허출원번호 제14/246,064호에 관한 것으로서, 그 전문은 본원에 참고로 원용된다.
본 출원은 "GRAPHICS PROCESSING ENHANCEMENT BY TRACKING OBJECT AND/OR PRIMITIVE IDENTIFIERS"(대리인 관리 번호 SCEA13056US00)라는 명칭으로 2014년 4월 5일자로 출원된 동일 출원인에 의한 공동 계류중인 Tobias Berghoff의 미국 특허출원번호 제14/246,067호에 관한 것으로서, 그 전문은 본원에 참고로 원용된다.
본 출원은 "GRADIENT ADJUSTMENT FOR TEXTURE MAPPING TO NON-ORTHONORMAL GRID"(대리인 관리 번호 SCEA13057US00)라는 명칭으로 2014년 4월 5일자로 출원된 동일 출원인에 의한 공동 계류중인 Mark Evan Cerny의 미국 특허출원번호 제14/246,068호에 관한 것으로서, 그 전문은 본원에 참고로 원용된다.
본 출원은 "VARYING EFFECTIVE RESOLUTION BY SCREEN LOCATION BY CHANGING ACTIVE COLOR SAMPLE COUNT WITHIN MULTIPLE RENDER TARGETS"(대리인 관리 번호 SCEA13058US00)라는 명칭으로 2014년 4월 5일자로 출원된 동일 출원인에 의한 공동 계류중인 Tobias Berghoff의 미국 특허출원번호 제14/246,061호에 관한 것으로서, 그 전문은 본원에 참고로 원용된다.
본 출원은 "VARYING EFFECTIVE RESOLUTION BY SCREEN LOCATION BY ALTERING RASTERIZATION PARAMETERS"(대리인 관리 번호 SCEA13059US00)라는 명칭으로 2014년 4월 5일자로 출원된 동일 출원인에 의한 공동 계류중인 Mark Evan Cerny의 미국 특허출원번호 제14/246,063호에 관한 것으로서, 그 전문은 본원에 참고로 원용된다.
본 출원은 "VARYING EFFECTIVE RESOLUTION BY SCREEN LOCATION IN GRAPHICS PROCESSING BY APPROXIMATING PROJECTION OF VERTICES ONTO CURVED VIEWPORT"(대리인 관리 번호 SCEA13060US00)라는 명칭으로 2014년 4월 5일자로 출원된 동일 출원인에 의한 공동 계류중인 Mark Evan Cerny의 미국 특허출원번호 제14/246,066호에 관한 것으로서, 그 전문은 본원에 참고로 원용된다.
본 출원은 "GRADIENT ADJUSTMENT FOR TEXTURE MAPPING FOR MULTIPLE RENDER TARGETS WITH RESOLUTION THAT VARIES BY SCREEN LOCATION"(대리인 관리 번호 SCEA13061US00)라는 명칭으로 2014년 4월 5일자로 출원된 동일 출원인에 의한 공동 계류중인 Mark Evan Cerny의 미국 특허출원번호 제14/246,062호에 관한 것으로서, 그 전문은 본원에 참고로 원용된다.
본 개시 내용은 컴퓨터 그래픽 처리에 관한 것이다. 본 개시 내용의 일부 양태들은, 구체적으로, 헤드 장착 디스플레이(head mounted display: HMD), 포비티드 렌더링(foveated rendering), 및 기타 비통상적 렌더링 환경을 위한 그래픽에 관한 것이다.
컴퓨터 그래픽 처리는, 디스플레이 상에서의 프리젠테이션을 위한 가상 콘텐츠를 나타내는 이미지를 생성하도록 사용되는 복잡한 프로세스이다. 현대의 3D 그래픽은, 컴퓨터 그래픽을 조작하는 데 있어서 효율적으로 설계된 전용 아키텍처를 갖는 고성능 그래픽 처리 유닛(graphics processing unit: GPU)을 사용하여 종종 처리된다. GPU는, 디스플레이에 출력하기 위한 프레임 버퍼에 있는 이미지의 생성을 가속하도록 설계된 전용 전자 회로이며, GPU는, 많은 데이터 블록의 처리가 병렬로 행해지는 알고리즘을 위해 GPU를 범용 CPU보다 효과적으로 만드는 고 병렬 처리 아키텍처를 종종 갖는다. GPU는, 임베딩 시스템, 이동 전화, 퍼스널 컴퓨터, 태블릿 컴퓨터, 휴대용 게임 디바이스, 워크스테이션, 및 게임 콘솔 등의 다양한 컴퓨팅 시스템에서 사용된다.
비디오 게임과 기타 실시간 애플리케이션을 위한 많은 현대의 컴퓨터 그래픽 프로세스는, 디스플레이 상에 제시될 픽셀 값들의 최종 어레이를 결정하는 입력 데이터에 대한 연산들을 수행하기 위한 서로 다른 많은 단계를 포함하는 렌더링 파이프라인을 이용한다. 그래픽 렌더링 파이프라인의 소정의 구현예들에서, 처리는 CPU와 GPU 간에 조정될 수 있다. 입력 데이터는, 그래픽 프레임당 여러 번 발생할 수 있는, 애플리케이션 인터페이스(API)를 통해 GPU에 발행되는 일련의 드로 호출(draw call)을 통해 애플리케이션(예를 들어, CPU에 의해 실행되는 비디오 게임)의 현재 상태에 기초하여 중앙 처리 유닛(CPU)에 의해 발행될 수 있는 설정 및 드로잉 커맨드일 수 있고, GPU는 이에 따라 이미지를 렌더링하도록 파이프라인의 다양한 단계들을 응답으로서 구현할 수 있다.
파이프라인의 대부분의 단계들은, 데이터가 다양한 처리 단계들을 통해 흐를 때 명확한 입력과 출력을 갖고, 임의의 구체적인 구현예는 원하는 가시적 효과에 따라 다양한 단계들을 포함하거나 생략할 수 있다. 때때로, 그래픽 파이프라인 내에서의 다양한 고정 함수 연산은 GPU 내의 하드웨어 모듈로서 구현되는 한편, 프로그래밍가능 셰이더(programmable shader)는 통상적으로 이미지의 오브젝트 및 픽셀에 연관된 컬러, 조명, 텍스처 좌표, 및 기타 가시적 값을 결정하는 셰이딩 연산(shading computation)의 대부분을 수행하지만, 파이프라인의 다양한 단계를 하드웨어, 소프트웨어, 또는 이들의 조합으로 구현할 수 있다. 다른 GPU들은 연산이 GPU의 개별적인 하드웨어 모듈에 고정된 고정 함수 파이프라인을 대부분 사용하였지만, 셰이더 및 더욱 프로그래밍가능한 파이프라인의 출현으로 인해, 더욱 많은 연산이 소프트웨어 프로그램에 의해 구현되어, 개발자들에게 렌더링 프로세스에 대한 더욱 많은 유연성과 제어를 제공하게 되었다.
일반적으로, 파이프라인의 초기 단계들은, 2차원 또는 훨씬 더 흔하게는 3차원 가상 세계를 나타낼 수 있는 가상 공간(때로는 "세계 공간"이라 함)의 기하학 구조(geometry)에 대하여 수행되는 연산을 포함한다. 가상 공간의 오브젝트들은, 통상적으로, 파이프라인의 초기 단계로의 입력으로서 설정된 다각형 메시로서 표현되며, 그 정점들은 이미지의 프리미티브들의 세트에 대응하며, 이러한 프리미티브들은 통상적으로 삼각형이지만, 점, 선, 또는 기타 다각 형상을 포함할 수도 있다. 흔히, 프로세스는, 애플리케이션 콘텐츠를 실행하고, GPU를 위해 하나 이상의 버퍼에 입력 데이터를 설정하고, 애플리케이션 상태에 따라 그래픽을 렌더링하고 최종 프레임 이미지를 생성하도록 애플리케이션 인터페이스(API)를 통해 GPU에 드로 호출을 발행하는 범용 CPU 간에 조정된다.
각 프리미티브의 정점들은, 위치 값(예를 들어, X-Y 좌표 값 및 Z 깊이 값), 컬러 값, 조명 값, 텍스처 좌표 등을 포함하는 파라미터 값들의 세트에 의해 정의될 수 있고, 그래픽은 정점마다 정점들의 파라미터 값들의 조작을 통해 초기 단계에서 처리될 수 있다. 초기 단계의 연산들은, 가상 공간의 정점들의 파라미터들을 조작하기 위한 정점 셰이딩 연산, 및 장면 기하학 구조들과 기하학 구조 셰이딩 연산들을 세분하여 애플리케이션 단계에서 초기에 설정된 그 장면 기하학 구조들과 기하학 구조 셰이딩 연산들을 벗어난 새로운 장면 기하학 구조를 생성하기 위한 선택적 테셀레이션(tessellation)을 포함할 수 있다. 이러한 연산들 중 일부는, 기저의 가상 공간 기하학 구조의 렌더링 연산을 수행하기 위해 정점마다 프리미티브의 정점들의 파라미터 값들을 조작하는 정점 셰이더를 포함한 프로그래밍가능 셰이더에 의해 수행될 수 있다.
디스플레이에 적절한 가상 세계의 이미지를 생성하도록, 장면의 오브젝트들 및 이에 대응하는 프리미티브들은 래스터화에 연관된 다양한 처리 태스크들을 통해 가상 공간으로부터 스크린 공간으로 변환된다. 중간 단계들은, 스크린 공간을 정의하는 2차원 면에서 직사각형 뷰잉 윈도우(또는 "뷰포트")에 대한 프리미티브의 매핑과 투영을 결정하기 위한 다양한 변환 연산들을 포함할 수 있는 프리미티브 조립 연산들을 포함한다(입체적 렌더링이 사용되는 경우에는, 기하학 구조를 입체 디스플레이를 위한 좌안 이미지와 우안 이미지에 대응하는 2개의 개별적인 뷰포트로 변환할 수 있다). 프리미티브 조립은 뷰잉 절두체의 외부에 있는 프리미티브/오브젝트를 위한 클립핑 연산을 종종 포함하며, 떨어져 있는 장면 요소들은 상세가 더욱 중요한 거리들의 범위(예를 들어, 원거리 클립핑 면) 내의 오브젝트를 위한 렌더링 자원들을 보존하도록 이 단계 동안 클립핑될 수 있다. 동차 좌표는, 통상적으로, 장면 기하학 구조를 스크린 공간 면 상에 투영하는 변환 연산들이 행렬 계산을 이용하여 더욱 쉽게 연산되도록 사용된다. 일부 프리미티브들, 예를 들어, 백페이싱(back-facing) 삼각형들을 최종 이미지에 있어서 가려지거나 그 외에는 보이지 않는 프리미티브에 대하여 픽셀당 불필요한 연산을 야기하는 처리 프래그먼트를 피하기 위한 최적화로서 또한 컬링(cull)할 수 있다.
스캔 변환은, 통상적으로, 스크린 공간의 이산적 픽셀들에서 뷰포트에 조립된 프리미티브들을 샘플링하는 데 및 래스터라이저의 샘플들에 의해 커버되는 프리미티브들을 위한 프래그먼트들을 생성하는 데 사용된다. 각 프래그먼트에 대한 입력 값들로서 사용되는 파라미터 값들은, 통상적으로, 스크린 공간에서의 프래그먼트의 대응하는 픽셀의 위치에 프래그먼트를 생성한 샘플링된 프리미티브의 정점들의 파라미터들을 보간함으로써 결정되며, 그 위치는, 통상적으로, 픽셀의 중심이거나 픽셀 내의 다른 샘플 위치이지만, 일부 상황에서는 다른 보간 위치를 사용할 수도 있다.
이어서, 파이프라인은, 프래그먼트들 및 이들의 보간된 입력 파라미터 값들을 추가 처리를 위해 파이프라인의 하류측으로 전달할 수 있다. 이러한 차후 픽셀 처리 단계들 동안, 프래그먼트당 연산들은, 입력되는 보간된 파라미터 값들, 예를 들어, 컬러 값, 깊이 값, 조명, 텍스처 좌표 등을 프래그먼트들의 각각에 대하여 픽셀 단위로 또는 샘플 단위로 추가 조작하도록 픽셀 셰이더(때로는 "프래그먼트 셰이더"라고 함)를 인보크함으로써 수행될 수 있다. 스크린 공간에서의 각 프래그먼트의 좌표는, 픽셀 좌표 및/또는 샘플 좌표를 생성한 래스터화에서 정의되는 픽셀 좌표 및/또는 샘플 좌표에 대응한다. 비디오 게임과 실시간 그래픽 처리의 기타 경우에, 태스크를 렌더링하도록 연산 요건들을 감소시키고 연산 효율을 개선하는 것은 렌더링된 그래픽의 개선된 품질과 상세를 달성하는 데 있어서 핵심 목적이다.
종래의 그래픽 렌더링 파이프라인에서의 각 단계는, 통상적으로, 텔레비전 스크린 및 평면형 디스플레이 모니터 등의 통상적인 디스플레이 디바이스를 위한 그래픽을 렌더링하도록 구성된다. 최근에는, 헤드 장착 디스플레이(HMD) 등의 덜 통상적인 디스플레이 디바이스 및 포비티드 렌더링 등의 덜 통상적인 렌더링 기술에 대한 관심이 높아졌다. 이러한 비통상적인 디스플레이 기술들은, 그래픽 렌더링 파이프라인에서의 효율을 최적화하기 위한 고유한 기회를 제시한다.
본 개시 내용의 양태들은 이러한 문맥 내에서 발생한 것이다.
본 개시 내용의 교시는 다음에 따르는 상세한 설명을 첨부 도면과 함께 고려 함으로써 쉽게 이해할 수 있다.
도 1a와 도 1b는 시야(field of view; FOV)가 넓은 디스플레이의 소정의 파라미터들을 도시하는 간략화도.
도 1c는 넓은 FOV 디스플레이의 서로 다른 부분들에 대한 서로 다른 입체각들을 도시하는 도면.
도 2a 내지 도 2c는 본 개시 내용의 양태들에 따라 서로 다른 넓은 FOV 디스플레이의 서로 다른 영역들의 픽셀들의 상대적 중요도의 예들을 도시하는 도면.
도 2d는 본 개시 내용의 양태들에 따라 FOV 디스플레이의 스크린의 서로 다른 영역들에 대한 서로 다른 픽셀 해상도의 일례를 도시하는 도면.
도 3a 내지 도 3c는 종래의 렌더링 파라미터들을 도시하는 개략도.
도 4a 내지 도 4c는 본 개시 내용의 양태들에 따라 구역마다 렌더링 파라미터들의 서로 다른 세트를 갖는 복수의 구역을 갖는 스크린 공간들에 대한 렌더링 파라미터들을 도시하는 개략도.
도 5a와 도 5b는 본 개시 내용의 양태들에 따라 각 구역마다 렌더링 파라미터들의 서로 다른 세트를 갖는 복수의 구역을 갖는 스크린 공간들에 대한 렌더링 파라미터들을 도시하는 개략도.
도 6은, 본 개시 내용의 양태들에 따라 각 구역마다 렌더링 파라미터들의 서로 다른 세트를 갖는 복수의 구역을 갖는 스크린 공간에 대한 렌더링 파라미터들을 도시하는 개략도.
도 7a 내지 도 7c는, 본 개시 내용의 양태들에 따라 복수의 구역을 갖는 뷰포트들 및 뷰포트들의 서로 다른 구역들에 의해 커버되는 연관된 오브젝트들을 도시하는 개략도.
도 8은 본 개시 내용의 양태들에 따라 스크린 공간의 다수의 구역에 의해 커버되는 오브젝트를 리렌더링하는 방법을 도시하는 흐름도.
도 9a와 도 9b는, 본 개시 내용의 양태들에 따라 스크린 공간의 다수의 구역에 의해 커버되는 오브젝트를 리렌더링하는 다른 방법을 도시하는 흐름도.
도 10a와 도 10b는 본 개시 내용의 양태들에 따른 그래픽 렌더링 파이프라인을 도시하는 흐름도.
도 11은 본 개시 내용의 양태들에 따른 그래픽 렌더링 시스템을 도시하는 개략도.
전술한 설명은 예시를 위해 많은 구체적인 상세를 포함하고 있지만, 통상의 기술자라면, 다음에 따르는 상세에 대한 많은 변형 및 변경이 본 발명의 범위 내에 있음을 인식할 것이다. 이에 따라, 후술하는 본 발명의 예시적인 실시예들은, 어떠한 일반성도 잃지 않고 또한 청구 발명을 한정하지 않고 기재된 것이다.
본 개시 내용의 양태들은, 스크린 공간을 복수의 개별적인 구역(예를 들어, 두 개 이상의 구역)으로 나누고 서로 다른 구역들의 소정의 처리 연산들을 서로 다르게 수행함으로써 그래픽 파이프라인의 렌더링 효율을 개선하도록 설계된 그래픽 렌더링 기술들에 관한 것이다. 스크린 공간의 서로 다른 각 구역은 최종 이미지의 하나 이상의 픽셀에 대응할 수 있고, 서로 다른 각 구역은 렌더링 효율을 개선하기 위한 최적화로서 렌더링 파이프라인의 서로 다른 렌더링 파라미터로 렌더링될 수 있다. 예를 들어, 구역들 중 하나 이상은 뷰어를 위한 화질 면에서 상대적 중요도가 덜한 것으로 결정될 수 있고, 그 결과, 렌더링 파라미터들 중 하나 이상은, 더욱 중요한 것으로 여겨지는 다른 구역에 대한 그래픽 처리 자원들을 보존하도록, 그 더욱 중요한 것으로 여겨지는 다른 구역과 다를 수 있다.
본 개시 내용의 추가 양태에 따르면, 이는, 스크린의 에지와 스크린의 코너에 근접한 각 픽셀(또는 픽셀들의 세트)이 대하는 입체각이 스크린의 중심에 있는 픽셀들/픽셀들의 세트들이 대하는 입체각보다 작을 수 있다는 사실을 이용함으로써, 헤드 장착 디스플레이(HMD)를 위한 그래픽을 렌더링할 때 유용할 수 있다. 예를 들어, 렌더링 파라미터들은, 스크린 공간의 중심 픽셀들에 대응하는 하나 이상의 구역에 대한 렌더링 자원들을 보존하도록 선택될 수 있고, 스크린 공간의 에지 및/또는 코너에 있는 구역들의 파라미터들은 효율을 위해 선택될 수 있다.
본 개시 내용의 또 다른 일 양태에 따르면, 이는 포비티드 렌더링이 사용되는 경우에 유용할 수 있고, 서로 다른 구역들의 위치는 뷰어의 결정된 고정점에 기초할 수 있다. 따라서, 소정의 구현예들에서는, 스크린 구역들 중 하나 이상의 위치가, 예를 들어, 시선 추적 시스템에 의한 검출시 눈(또는 양쪽 눈)의 고정점의 검출된 변화에 응답하여, 동적이고 시간 경과에 따라 변하는 것이 유용할 수 있다.
본 개시 내용의 추가 양태에 따르면, 포비티드 이미징은 헤드 장착 디스플레이와 조합될 수 있으며, 이 경우, 헤드 장착 디스플레이 디바이스는 하나 이상의 광원과 하나 이상의 카메라를 포함하는 시선 추적 시스템 등의 시선 추적 시스템을 포함하도록 구성될 수 있다.
본 개시 내용의 추가 양태에 따르면, 오브젝트는, 리렌더링될 수 있고, 복수의 서로 다른 구역과 중첩되는 경우, 중첩되는 각 구역마다 리렌더링될 수 있다. 소정의 구현예들에서, 이는, 각 구역에 대한 렌더링 파라미터 컨텍스트(rendering parameter context) 및 각 컨텍스트에 연관된 구역 인덱스를 설정하는 커맨드 버퍼를 통해 달성될 수 있다. 구역 인덱스 또는 인덱스들은 오브젝트와 중첩되는 각 구역에 대하여 오브젝트를 위해 설정될 수 있다. 다른 구현예들에서, 오브젝트가 스크린 공간의 복수의 구역과 중첩되는 경우, 오브젝트의 프리미티브들의 각각은 오브젝트와 중첩되는 각 구역마다 프리미티브 조립기에 의해 고유하게 조립될 수 있다.
도 1a 내지 도 1c는, 넓은 FOV 디스플레이에 있어서 이전에는 인식하지 못한 문제점을 도시한다. 도 1a는 90도 FOV 디스플레이를 도시하고, 도 1b는 114도 FOV 디스플레이를 도시한다. 종래의 넓은 FOV 디스플레이에서, 3차원 기하학 구조는 뷰 면(101)으로의 면 투영을 이용하여 렌더링된다. 그러나, 높은 FOV 뷰 면으로의 렌더링 기하학 구조는 매우 비효율적이라고 밝혀졌다. 도 1c에서 알 수 있듯이, 뷰 면(101)의 에지 영역(112)과 중심 영역(114)은, 동일한 영역이지만, 뷰어(103)가 볼 때 서로 다른 입체각을 나타낸다. 결국, 스크린의 에지 근처의 픽셀들은 중심 근처의 픽셀들보다 의미있는 정보를 훨씬 덜 보유한다. 장면을 종래 방식으로 렌더링하는 경우, 이러한 영역들은 동일한 개수의 픽셀들을 갖고, 스크린 상의 균등한 크기의 영역들을 렌더링하는 데 소모되는 시간은 대략 같다.
도 2a 내지 도 2c는, 서로 다른 크기의 시야에 대하여 2차원으로 넓은 FOV 디스플레이의 서로 다른 부분들의 상대적 중요도를 도시한다. 도 2a는 체커보드가 114도의 각도로 대하는 경우 뷰 방향에 수직인 평면형 체커보드의 각 정사각형에 대한 입체각의 분산을 나타낸다. 다시 말하면, 이 도는 114도 FOV 디스플레이에 대한 종래의 평면 투영 렌더링의 비효율을 나타낸다. 도 2b는 90도 FOV 디스플레이에 대한 동일한 정보를 나타낸다. 이러한 평면 투영 렌더링에 있어서, 투영은, 에지에 있는 이미지(201)의 타일들(202) 및 코너에 있는 타일들(203)을 중심에 있는 타일들(204)에 비해 작은 입체각으로 압축한다. 이러한 압축 때문에, 그리고 이미지(201)의 각 타일이 스크린 공간에서 동일한 개수의 픽셀을 갖는다는 사실 때문에, 중심 타일들(204)에 비해 에지 타일들(202)을 렌더링하는 데 있어서 약 4X인 비효율 인자가 존재한다. 이는, 에지 타일들(202)의 종래의 렌더링에서는 중심 타일들(204)보다 단위 입체각당 4배나 많은 처리가 수반됨을 의미한다. 코너 타일들(203)에 대해서는, 비효율 인자가 약 8X이다. 전체 이미지(201)에 대하여 평균화하면, 비효율 인자는 약 2.5X이다.
비효율은 FOV의 크기에 의존한다. 예를 들어, 도 2b에 도시한 90도 FOV 디스플레이에 있어서, 비효율 인자는, 에지 타일(202)을 렌더링하는 경우 약 2X이며, 코너 타일(203)을 렌더링하는 경우 약 3X이며, 전체적으로 이미지(201)를 렌더링하는 경우 약 1.7X이다.
이러한 상황을 고려하는 다른 방식은, 대하는 단위 입체각당 픽셀 면에서 대략 같은 "중요도"의 직사각형들로 스크린(102)이 나누어진 도 2c에 도시되어 있다. 각 직사각형은, 디스플레이를 통해 볼 때 최종 이미지에 대략 동일하게 한다. 평면 투영이 에지 직사각형(202)과 코너 직사각형(203)의 중요도를 어떻게 왜곡하는지를 알 수 있다. 입체각에 관한 인자들에 더하여, 코너 직사각형(203)은 디스플레이 광학으로 인해 중심 직사각형보다 덜 기여할 수 있으며, 이러한 디스플레이 광학은 (입체각당 픽셀들로서 표현되는) 픽셀들의 가시적 밀도가 디스플레이를 중심을 향하여 높아지도록 선택될 수 있다.
전술한 고려 사항에 기초하여, 넓은 FOV 디스플레이를 위한 이미지(210)는 도 2d에 도시된 바와 같이 중심 영역들(215)보다 에지 영역들(212, 214, 216, 218)에서 작고 에지 영역들(212, 214, 216, 218)보다 코너 영역들(211, 213, 217, 219)에서 작은 픽셀 밀도를 갖는 것이 유리하다. 또한, 기저 그래픽 이미지 데이터 또는 데이터 포맷 또는 데이터의 처리를 상당히 수정할 필요 없이 스크린에 걸쳐 픽셀 밀도를 가변시키는 것과 동일한 효과를 얻는 식으로 넓은 FOV 디스플레이의 스크린 상의 종래의 그래픽 이미지를 렌더링하는 것이 유리하다.
포비티드 렌더링을 사용하는 경우, 결정된 픽셀 중요도 면에서 도 2c의 중심(204)은 결정된 뷰어 고정점에 대응하는 것으로 이해할 수 있으며, 고정점을 위해 렌더링 자원들을 보존하는 것이 유리하다.
이제 도 3a 내지 도 3c를 참조해 보면, 종래의 원리에 따른 컴퓨터 그래픽 렌더링을 위한 뷰잉 절두체의 예가 도시되어 있다. 도 3a는 절두체의 사시도를 도시하는 한편, 도 3b는 도 3b의 동일한 절두체를 평면도로 도시한다. 도 3c는 발생하는 대응 스크린 공간을 도시한다.
도 3a와 도 3b에 도시한 바와 같이, 절두체는 투영체(316)의 중심에 의해 정의되는 절단된 피라미드라고 이해할 수 있다. 투영체의 중심(316)은, 장면이 보이는 뷰포인트를 정의하는 눈 또는 가상의 카메라에 대응하는 것으로 이해할 수 있다. 절두체는, 렌더링될 그래픽을 위한 뷰 볼륨을 정의하는, 근접 클립핑 면(310) 및 원거리 클립핑 면(312)을 포함하며, 즉, 절두체 내의 볼륨이 뷰 볼륨을 정의한다. 절두체의 좌측면, 우측면, 최상위면, 및 최하위면에 의해 정의되는 뷰 절두체 면들은, 도면에 개별적으로 참조 표시되어 있지는 않았지만, 폐기(discard) 면들이라고 이해할 수 있으며, 이러한 면을 벗어나는 경우, 렌더링된 오브젝트가 스크린 밖에 있게 되어 폐기된다. 좌측면, 우측면, 최상위면, 및 최하위면은, 이 도에 도시되어 있지 않지만, 이러한 면들은 통상적으로 클립핑 가드 밴드(clipping guard band)를 구현하여 측면들에 대한 클립핑 필요를 최소화하도록 훨씬 넓은 시야로 구성된다. 도 3a와 도 3b는, 또한, 세계 공간의 3차원 장면이 렌더링 동안 연산되는 스크린 공간 변환을 통해 투영되는 뷰 면(320)을 도시한다. 뷰 면(320)은, 그래픽들이 디스플레이 상에서의 프리젠테이션을 위해 렌더링되는 스크린 공간을 정의하는 2차원 면에 대응한다. 일 양태에 따르면, 뷰 방향은, 투영체(316)의 중심으로부터 장면이 보이는 방향과 유사할 수 있는 뷰 면 법선(329)에 의해 정의될 수 있다. 뷰 면(320)은 도 3a와 도 3b 에서 뷰 볼륨(314) 내에 놓인 것으로서 도시되어 있지만, 뷰 면은 근접 클립핑 면(310)과 원거리 클립핑 면(312)에 평행한 배향으로 장면의 어느 곳에라도 놓일 수 있음을 이해할 수 있으며, 장면을 세계 공간으로부터 스크린 공간으로 변환하는 원리는 동일하다.
뷰잉 볼륨(314) 내에 놓이는 뷰 면(320)의 윈도우, 즉, 직사각형 윈도우(322)는 그래픽들이 렌더링되는 스크린 공간을 정의한다. 이 윈도우(322)는, 복수의 스크린 공간 픽셀로 이루어지는 스크린의 "뷰잉 윈도우" 또는 "뷰포트"에 대응한다. 뷰 볼륨 내에 있는 하나 이상의 오브젝트(318)는 스크린 공간 뷰잉 윈도우(322)로 투영되는 한편, 오브젝트들 또는 오브젝트들의 일부들, 예를 들어, 뷰잉 볼륨의 외부에 있는 오브젝트, 예를 들어, 오브젝트(319)의 삼각형 프리미티브들은, 픽셀당 추가 처리를 위한 래스터화 동안 각각의 변환된 오브젝트가 스캔 변환되기 전에 뷰로부터 클립핑된다.
동차 좌표들은 뷰 면(320)과 스크린 공간 뷰잉 윈도우(322)를 위해 사용되며, 그 개념은 투영 라인들(324)에 의해 도 3b에서 더욱 명백하게 예시되어 있다. 도 3b의 투영 라인(324)은, 또한, 뷰잉 면(320)의 위치가 왜 문제되지 않음을 더욱 명백하게 예시하며, 절두체 내에 있거나 절두체의 외부에 있는 것으로 개념적으로 이해될 수 있다. 오브젝트(318)의 정점들의 동차 좌표들은, 뷰어가 의도한 뷰포인트(316)로부터 볼 때 그러한 정점들의 스크린 공간(322) 위치들에 선형 대응한다. 소정의 뷰에 대한 동차 좌표 공간과 세계 공간 간의 변환은, Z축선과 뷰포트 배향을 갖는 뷰 방향을 X 및 Y좌표 축선들과 정렬하기 위한 선형 행렬 변환과, 이어서 종종 "원근 분할"이라 칭하는 X 및 Y좌표들을 Z로 나누는 것으로 이루어진다.
도 3a 내지 도 3c에 도시한 종래의 예에서, 렌더링의 파라미터들은 스크린 공간(322)의 전체 영역에 걸쳐 동일하다. 특히, 예를 들어, 절두체가 동일하며, 클립핑 면들이 모두 동일하고, 스크린(322)의 뷰 방향과 동차 좌표 공간이 모두 동일하다. 도 3a 내지 도 3c에 도시한 종래의 예가 입체 이미지에 사용된다면, 각 눈이 투영체(316)의 서로 다른 중심에 위치하는 좌안 뷰와 우안 뷰에 대응하는, 도 3a 내지 도 3c에 도시한 동일한 장면에 대하여 뷰들의 두 개의 개별적인 세트를 가질 수 있다. 개별적인 좌안 이미지와 우안 이미지는 이 경우 렌더링될 수 있지만, 렌더링 파라미터들은 좌안 이미지와 우안 이미지 각각에 대하여 스크린 공간 출력 이미지의 전체 영역에 걸쳐 여전히 동일하다.
이제 도 4a와 도 4b를 참조해 보면, 본 개시 내용의 두 개의 예가 예시되어 있다. 도시한 예들에서, 출력 이미지(들)에 대응하는 스크린 공간 영역은 개별적인 구역들(즉, Z1, Z2, Z3 등)로 나누어지고, 스크린의 각 구역은 서로 다른 파라미터들을 사용하여 렌더링된다.
도 1a 내지 도 1c에 관하여 전술한 원리를 참조할 때, 소정의 구현예들에서, 예를 들어, HMD를 위한 넓은 FOV 디스플레이에 대응할 수 있는 (곡선형 스크린을 갖는 도에 도시한) 예시된 디스플레이 시스템(425)에 대하여 스크린 공간(422)이 평평하지 않은 것처럼 렌더링되면 유리하다. 도 4b는 도 4a에 도시한 예와 유사하지만, 그 스크린 공간(420)은 더욱 많은 개수의 구역(Z)으로 나누어진다. 예시된 예들의 각각에 있어서, 각 구역(Z)은, 서로 다른 뷰 방향(429)(예를 들어, 도에 도시한 바와 같이 서로 다른 뷰 면 법선) 및 대응하는 서로 다른 각 뷰포트들과 동일한 뷰 위치를 사용하여 렌더링될 수 있고, 이때, 모든 구역 뷰포트들의 집합은, 픽셀당 입체각의 분산을 전체적으로 최소화하고 전체 시야를 벗어나는 투영 또는 구역들 간의 최소 중첩으로 전체 시야를 커버하도록 선택된다. 각 구역은, 개별적인 렌더 타겟(또는 다수의 렌더 타겟들의 개별적인 세트)으로 래스터화될 수 있고, 그 결과, 이미지들은 단일의 넓은 FOV 디스플레이 이미지를 후처리 단계로서 생성하도록 함께 합성될 수 있다. 이는 장면 내의 변환 오브젝트들을 평평하지 않은 "스크린"(422)으로 근사화한다.
도 4c에 도시한 바와 같이, 포인트(416)는 예시된 모든 구역 절두체의 공통 뷰포인트를 도시한다. 라인들(410, 412)은, 구역(Z6)의 오브젝트들을 위한 뷰잉 볼륨(414)을 정의하는 구역(Z6)에 대한 근접 클립핑 면 및 원거리 클립핑 면에 각각 대응한다. 유사한 각각의 뷰잉 볼륨들 및 근접/원거리 클립핑 면들은 각자의 뷰 절두체에 대하여 구역들(Z4, Z5)에 대한 도에서 볼 수 있다. 각 구역은 서로 다른 뷰 방향(429) 및 이에 따른 서로 다른 동차 좌표 공간을 갖지만, 모두가 공통 뷰포인트(416)를 공유하기 때문에, 각 구역 절두체의 뷰 면과 전체 시야 면(422) 간에 간단한 투영 변환이 존재한다. 따라서, 장면을 각 구역에 대한 개별적인 스크린 공간 이미지로 렌더링한 후, 단일 전체 시야 출력 이미지를 그 출력을 표시하기 전의 최종 단계로서 합성하도록 장면의 각 구역의 이미지에 대하여 투영 변환을 적용할 수 있다. 전술한 도 1과 도 2를 참조해 볼 때, 특정한 크기를 갖는 래스터 타일들을 이용하는 스캔 변환 프로세스를 고려함으로써 이점을 인식할 수 있다. 중심을 벗어난 구역들에 대하여, 동일한 장면 기하학 구조가 더욱 작은 픽셀 영역을 갖는 면에 투영될 수 있는 한편 각도 공간에서의 타겟 최소 화소 밀도를 유지할 수 있다. 따라서, 렌더링되는 총 픽셀 면적이 감소되며, 이는 픽셀 셰이딩과 하드웨어 픽셀 처리 오버헤드의 대응하는 감소로 병진되고, 출력 품질의 상당한 손실 없이 렌더링 효율의 대응하는 증가로 병진된다.
이제 도 5a와 도 5b를 참조해 보면, 서로 다른 구역들의 서로 다른 렌더링 파라미터들을 이용하는 본 개시 내용의 또 다른 예가 예시되어 있다. 도 5a와 도 5b는 장면 기하학 구조를 투영하는 데 사용되는 스크린 공간(522)의 이미지를 도시한다. 이러한 예에서, 스크린 공간을 9개의 구역(Z1, Z2 등)으로 나누어지고, 스크린 공간(522)의 서로 다른 구역들은, 동차 좌표와 뷰 절두체는 동일하지만 동차 좌표로부터 스크린 공간 좌표로의 선형 변환은 서로 다르게, 연산될 수 있다. 장면 렌더링 동안, 뷰포인트와 구역 경계에 의해 정의되는 면들에 대한 테스트를 이용하여 교차하지 않는 구역에 대한 오브젝트 또는 프리미티브의 렌더링을 폐기할 수 있다. 구역들 간의 분리를 이용하여 소정의 프리미티브가 어떠한 구역으로 렌더링될 필요가 있는지를 결정하는 데 사용되는 면들을 생성할 수 있지만, 이 경우에는, 서로 다른 스크린 공간 변환 파라미터들을 사용하여, 프리미티브들이 픽셀 좌표로 래스터화되는 포인트에 도달할 때 프리미티브들을 "인터셉트"하고, 각 구역의 서로 다른 스케일들을 적용하여 해당 구역의 픽셀 밀도를 변경한다. 이 예에서, 각 구역의 뷰 방향(529)은, 도 5A의 서로 다른 구역들(Z4, Z5, Z6)에 대하여 볼 때 동일하지만, 스크린 공간 변환은, 예를 들어, 렌더링을 평평하지 않은 "스크린"에 근사화하도록, 세계 공간 기하학 구조의 정점들이 뷰 면(522)에 도달하기 전에 그 세계 공간 기하학 구조의 정점들을 "인터셉트"하도록 연산된다.
이를 더욱 양호하게 예시하도록, 도 5b는, 또한, 세계 기하학 구조의 프리미티브(527)의 일례, 더욱 구체적으로는, 삼각형 프리미티브를 예시한다. 이 예에서, 삼각형(527)은 스크린 공간의 서로 다른 두 개의 구역, 즉, 구역(Z5, Z6)에서 중첩된다. 도 5b는, 또한, 서로 다른 스크린 공간 변환 파라미터들을 갖는 서로 다른 구역들로 인해 삼각형(527)이 동차 좌표로부터 서로 다른 구역들에 대하여 서로 다르게 스크린 공간 픽셀 좌표로 어떻게 변환되는지를 도시한다. 구역(Z6)의 수평 "스쿼시"에 주목한다. 이 예에서, 렌더링 파라미터들은, 하나 이상의 에지 구역, 예를 들어, (예를 들어, 구역들(Z4, Z6)에 대하여 스크린의 수평 x축선 또는 구역들(Z2, Z8)에 대하여 스크린의 수직 y축선을 따라 스쿼시된) 하나의 스크린 축선을 따라 소정의 스크린 공간 영역의 프리미티브를 "스쿼시"하는 구역들(Z2, Z4, Z6, Z8)에 대하여 선택될 수 있다. 게다가, 서로 다른 구역들은, 코너 구역들 중 하나 이상에 대한 양측 스크린 축선들을 따른 기하학 구조를 추가로 시쿼시(예를 들어, 구역들(Z1, Z3, Z7, Z9)에 대한 수평 축선과 수직 축선 모두를 따라 시쿼시)하도록 선택될 수 있다. 중심을 벗어난 구역들에 대해서는, 동일한 장면 기하학 구조가 작은 픽셀 영역으로 렌더링되는 한편 각도 공간의 타겟 최소 픽셀 밀도를 여전히 유지한다. 따라서, 렌더링되는 총 픽셀 면적이 감소되며, 이는 픽셀 셰이딩과 하드웨어 픽셀 처리 오버헤드의 대응하는 감소로 병진되고 출력 품질의 의미있는 손실 없이 렌더링 효율의 대응하는 증가로 병진된다.
도 4a 내지 도 4c의 렌더링 파라미터들과 도 5a와 도 5b의 렌더링 파라미터들 간의 차이는, 장면 기하학 구조를 스크린 공간으로 변환하는 전체 프로세스를 참조하여 이해할 수 있다.
도 4a 내지 도 4c의 예에서, 장면의 정점 위치들은, 서로 다른 뷰 방향들에 대응하는 서로 다른 동차 좌표 공간들을 이용하여 연산될 수 있다. 소정의 구현예들에서, 서로 다른 동차 좌표 공간들의 이러한 정점 위치들은 정점 셰이더로부터 출력될 수 있다. 따라서, 스크린 공간 변환 파라미터들은, 정점들을 동차 좌표 공간으로부터 (예를 들어, 장면 기하학 구조를 뷰 면으로 투영할 수 있는) 스크린 공간으로 투영하도록 각 구역마다 사용될 수 있다. 이는, 프리미티브 정점들을 서로 다른 뷰 방향들에 대응하는 서로 다른 뷰포트들에 투영하는 것과 유사하다.
도 5a와 도 5b의 예에서, 프리미티브들의 정점 위치들은, 동일한 뷰 방향에 대응하는 각 구역의 동일한 동차 좌표 공간들을 이용하여 연산될 수 있으며, 프리미티브 정점들의 위치들을 정점 셰이더로부터 단일 공유 동차 좌표 공간에 출력할 수 있다. 이어서, 프리미티브 조립 동안, 프리미티브들은 동차 좌표 공간으로부터 래스터화를 위한 스크린 공간 픽셀들로 변환될 수 있지만, 이는 각 구역마다 서로 다른 스크린 공간 변환 파라미터들을 이용할 수 있다.
정점 셰이터로부터 단일 공유 동차 좌표 공간에 프리미티브 정점들의 위치들을 출력할 수 있지만, 이렇게 행하는 것은, 요구되는 것이 아니며, 다른 고려 사항들에 기초하여 바람직할 수도 있고 또는 바람직하지 않을 수도 있다. 예를 들어, 모든 출력 구역들 간에 단일 정점 셰이딩의 재사용을 가능하게 하는 하드웨어가 존재하면, 모든 구역들에 적용될 수 있는 단일 정점 셰이딩에 대하여 동일한 동차 좌표 공간을 공유하는 것이 필요하다. 그러나, 이러한 하드웨어가 존재하지 않는다면, 기존의 삼각형 컬링 하드웨어가, 각 구역이 서로 다른 동차 공간을 갖기만 한다면 구역 경계들을 컬링하고, 이에 따라 동일한 공간을 공유하는 것은 다른 소정의 수단에 의해 다루어질 관심 구역 경계에서의 컬링을 필요로 하게 된다.
소정의 구현예들에서, 프리미티브당 구역 인덱스들은, 오브젝트 메시의 프리미티브 접속성을 정의하는 정점 인덱스 데이터에 임베딩될 수 있고 또는 개별적인 버퍼로서 공급될 수 있다.
소정의 구현예들에서, GPU에 공급되는 정점 인덱스 데이터 및 구역 인덱스는, 또한, 프리미티브가 커버할 수 있는 프리미티브당 구역 인덱스만을 포함하도록 기입기에 의해 컬링될 수 있다.
소정의 구현예들에서, GPU에 공급되는 정점 인덱스 데이터 및 구역 인덱스는, 또한, 프리미티브 조립 유닛이 프리미티브를 하드웨어에서 컬링한다고 결정될 수 있는 그 프리미티브를 제거하도록 컬링될 수 있다.
소정의 구현예들에서, 프리미티브당 구역 인덱스 및 가능한 컬링된 정점 인덱스 데이터는, CPU에 의해 또는 GPU 상에서 실행되는 연산 셰이더에 의해 GPU에 공급될 수 있다.
이제 도 6을 참조해 보면, 스크린 공간(622)의 서로 다른 구역들에 대하여 서로 다른 렌더링 파라미터들을 이용하는 본 개시 내용의 다른 예가 예시되어 있다. 이 예에서, 두 개의 서로 다른 구역이 도시되어 있는데, 즉, 예를 들어, 스크린 공간의 중심 또는 포비티드 렌더링을 위한 스크린 공간의 고정점, 또는 둘 다에 대응하는 구역(Z1), 및 스크린 공간의 에지 및 경계 영역, 또는 포비티드 렌더링을 위한 고정점의 외부, 또는 둘 다에 대응할 수 있는 구역(Z2)이 도시되어 있다. 이 예에서는, 동일한 동차 좌표와 뷰 방향을 구역들에 걸쳐 사용하며, 또한 동일한 절두체와 스크린 공간 변환 파라미터들을 사용한다. 그러나, 이 예에서, 서로 다른 구역들(스크린의 서로 다른 영역들)은, 예를 들어, 서로 다른 픽셀 농도, 샘플 밀도, 서로 다른 픽셀 포맷, 이들의 소정의 조합, 또는 서로 다른 구역들에 대한 서로 다른 정확도(fidelity)를 야기할 수 있는 잠재적으로 서로 다른 렌더링 파라미터들을 가질 수 있다. 예를 들어, 이 예에서, 구역(Z2)은, 그래픽 렌더링 자원들이 어떻게 할당되어야 하는지라는 관점에서 구역(Z1)보다 덜 중요하다고 결정될 수 있다. 이에 따라, 구역(Z2)은, 저 픽셀 밀도 또는 저 정확도 렌더링 파라미터를 사용하여 렌더링될 수 있다. 장면 렌더링 동안, 뷰포인트와 구역 경계에 의해 정의되는 면들에 대한 테스트를 사용하여, 교차하지 않는 구역들에 대한 오브젝트 또는 프리미티브의 렌더링을 폐기할 수 있다.
본 개시 내용의 양태들에 따르면, 서로 다른 구역들은 하나보다 많은 렌더링 파라미터에 있어서 서로 다를 수 있으며, 즉, 서로 다른 구역들은 두 개 이상의 렌더링 파라미터에 있어서 서로 다르며, 서로 다른 구역들이 본원에서 설명하는 렌더링 파라미터들의 임의의 조합으로 서로 다를 수 있다는 점에 주목한다. 예를 들어, 서로 다른 구역들은 전술한 렌더링 파라미터들의 임의의 조합으로 서로 다를 수 있다. 또한, 소정의 구현예들에서, 서로 다른 구역들은 도 4 내지 도 6을 참조하여 전술한 파라미터들을 벗어난 또는 그러한 파라미터들을 대신하는 다른 렌더링 파라미터들에 있어서 서로 다를 수 있다. 예를 들어, 일부 양태들에 따르면, 서로 다른 구역들은 서로 다른 픽셀 포맷들을 이용할 수 있다. 추가 양태들에 따르면, 서로 다른 구역들에 서로 다른 다수의 렌더 타겟(MRT) 파라미터들을 사용할 수 있다. 제한적이지 않은 예를 들면, 하나의 구역은, 다른 구역들을 위한 렌더링 자원들을 보존하도록 다른 하나의 구역에 비해 렌더 타겟 위치당 적은 다수의 렌더 타겟들을 지원할 수 있다.
일부 경우에, 오브젝트는, 그 장면의 기하학 구조가 장면을 위한 출력 이미지로서 렌더링되는 경우 단일 프레임의 복수의 구역과 중첩되거나 그 복수의 구역을 "커버"할 수 있다는 점에 주목한다. 그 결과, 소정의 구현예들에서는, 중첩되는 서로 다른 구역들의 서로 다른 렌더링 파라미터들을 사용하여 파이프라인의 하나 이상의 단계에서 동일한 오브젝트를 리렌더링하는 것이 필요할 수 있다. 도 7a 내지 도 7c는, 렌더링 파라미터들이 서로 다른 복수의 서로 다른 구역을 각각 포함하는 스크린 공간 윈도우(722)를 도시한다. 이 예들의 각각에 있어서, 이미지들의 오브젝트들(718) 중 적어도 하나는 복수의 구역(Z1, Z2 등)과 중첩되며, 도 7a 내지 도 7c에 예시한 각 오브젝트에 대한 개수는 도시된 예들에서 오브젝트가 커버하는 개별적인 구역들의 개수에 대응한다.
도 7a에 도시한 구현예에서, 구역(Z1)은 사용자의 시선을 위한 고정점에 대응할 수 있는 한편, 구역(Z2)은, 뷰어의 가시적 예민함이 가장 큰 고정점(Z1)을 위한 렌더링 자원들을 보존하도록 하나 이상의 서로 다른 렌더링 파라미터로 렌더링될 수 있는, 고정점의 외부에 있는 주변 구역에 대응할 수 있다. 소정의 구현예들에서, 구역(Z1)을 위한 고정점은 시선 추적 시스템으로부터 실시간으로 동적으로 결정될 수 있으며, 이는 스크린 상의 구역들(Z1, Z2)의 위치가 시간 경과에 따라 동적으로 변경될 수 있으며, 예를 들어, 뷰어가 자신의 시선 방향을 변경할 때 서로 다른 프레임들에 걸쳐 변경될 수 있고, 검출된 변경에 응답하여 그래픽들이 실시간으로 렌더링될 수 있음을 의미한다. 도 7a에 도시한 예에서, 구역(Z1)은 고유한 MRT, 스크린 공간 변환, 및 픽셀 포맷을 갖는 고 해상도 영역일 수 있는 한편, 스크린의 동차 좌표들은 서로 다른 구역들에 대하여 동일할 수 있다. 오브젝트 중첩 구역(Z1)은, 픽셀 처리 전에, 그 오브젝트와 중첩되는 서로 다른 구역들의 개수에 대응하여 두 번 재생될 필요가 있을 수 있다는 점에 주목한다.
도 7b는 본 개시 내용의 다른 예시적인 구현예를 도시한다. 도 7b에 도시한 예에서, 구역들은, 고유한 MRT, 스크린 공간 변환, 및 픽 셀 포맷을 가질 수 있다. 이 예에서, 구역들은 동일한 동차 좌표들을 가질 수 있고 절두체를 공유할 수 있다. 구역들이 도 7b에 도시한 예와 유사한 방식으로 설계되면, 좌안 및 우안 구역들, 예를 들어, Z4와 Z6, 및 가능하게는 최상위 및 최하위 에지 구역들, 예를 들어, Z2와 Z8이, 나머지 구역들과는 다를 수 있는 서로 동일한 렌더링 파라미터들을 가질 수 있다는 점에 주목한다. 유사하게, 코너 구역들, 예를 들어, Z1, Z3, Z7, Z9는, 나머지 구역들과는 다를 수 있는, 서로 동일한 렌더링 파라미터들을 가질 수 있다는 점에 주목한다. 다시 말하면, 각 구역은, 렌더링 파라미터들의 고유한 세트를 갖는 스크린 이미지의 개별적인 섹션이라고 여겨질 수 있으며, 소정의 구현예들에서, 스크린 이미지는, Z1, Z3, Z7, Z9의 위치들에 대응하는 뷰포트의 코너 영역들이 동일한 구역에 속하고, 유사하게, Z4와 Z6, 또는 Z2와 Z8에 대응하는 에지 영역들이 동일한 구역에 속하도록 나누어질 수 있다. 이는, 예를 들어, 서로 다른 구역들의 유일하게 서로 다른 렌더링 파라미터가 픽셀 포맷 또는 샘플 밀도인 경우에 참일 수 있다. 그러나, 서로 다른 뷰 방향들을 이용하면, 이들은 서로 다른 구역들이다. 소정의 구현예들에서, 구역들의 파라미터들은, 전술한 원리에 따라, 예를 들어, 픽셀들의 결정된 상대적 중요도에 기초하여 도 1과 도 2에 관하여 전술한 원리에 따라 선택될 수 있다.
도 7c는 본 개시 내용의 다른 예시적인 구현예를 도시한다. 이 예에서, 서로 다른 구역들은, 서로 다른 구역들을 위한 고유한 동차 좌표 공간들에 대하여 정의된 정점 위치들을 가질 수 있고, 또한, 서로 다른 절두체와 스크린 공간 변환을 이용할 수 있는 한편, MRI와 픽셀 포맷을 공유할 수도 있다. 도 7a 내지 도 7c에 예시한 구현예들은 예를 든 것이며, 구역 레이아웃들 및 구역들의 렌더링 파라미터 차이들을 본 개시 내용의 양태들에 따라 서로 다른 많은 방식으로 수정하거나 조합할 수 있다는 점에 주목한다.
소정의 구현예들에서, 효율적인 그래픽 렌더링 프로세스는, 렌더링 파이프라인의 하나 이상의 단계에서 전체 오브젝트를 고유하게 렌더링할 필요가 있을 수 있으며, 이는 도 7a 내지 도 7c에 도시한 예들에서 오브젝트들(718)의 개수가 오브젝트를 렌더링할 필요가 있는 횟수에 대응함을 의미한다. 더욱 구체적으로, 전술한 바와 유사한 방식으로 스크린 공간 변환의 파라미터들이 서로 다르고 및/또는 동차 좌표 공간들이 서로 다른 구역들에 대하여 서로 다른 구현예 등의 소정의 구현예들에서, 오브젝트는, 스크린 공간 픽셀에서 스캔 변환될 수 있고 픽셀 처리당 프래그먼트들이 추가로 생성되기 전에 중첩되는 각 구역마다 고유하게 처리될 필요가 있을 수 있다. 이에 따라, 본 개시 내용의 양태들은, 그래픽 파이프라인의 픽셀 처리 단계에 도달하기 전에 오브젝트를 효율적으로 리렌더링하기 위한 시스템 및 방법을 포함한다.
일반적으로, 임의의 주어진 오브젝트에 대하여 드로 호출이 발행되기 전에, 예를 들어, 커맨드 버퍼를 통해 소정의 입력 데이터를 설정할 필요가 있으며, 이러한 커맨드 버퍼는 통상적으로 절두체의 파라미터, MRT 등의 렌더링 파라미터들을 위해 설정된 레지스터들을 포함할 수 있다. 하나보다 많은 구역에 의해 커버되는 오브젝트에 대해서는, 그 오브젝트와 중첩되는 구역들의 각각으로부터의 파라미터들로 설정될 데이터를 필요로 함을 의미한다. 하나의 구역 또는 다른 구역에 속하는 오브젝트의 일부에 대하여 렌더링이 수행됨에 따라, 서로 다른 각 렌더링 파라미터들에 대하여 새로운 컨텍스트를 사용할 필요가 있을 수 있다. 일반적으로, 정점 셰이딩 연산은 근본적으로 오브젝트마다 있는 각 정점에 대하여 수행되므로, 구체적인 구역 및 대응하는 렌더링 파라미터가 서로 다른 구역들에 기초하여 오브젝트에 대한 정점마다 변경될 수 있고, 이는 다수의 구역들에 있는 정점들, 예를 들어, 스크린 영역의 서로 다른 구역들에 속하는 정점들을 갖는 오브젝트들에 대하여 비효율적일 수 있음을 의미한다.
이에 따라, 도 8은 커맨드 버퍼를 통해 스크린 공간의 서로 다른 구역들에 대한 효율적인 렌더링의 예시적인 구현예를 도시한다. 도 8에 도시한 바와 같이, 오브젝트를 위한 드로 호출 전에, 렌더링 파라미터들의 각각의 서로 다른 세트는, 참조번호 830으로 표시한 바와 같이, 메모리에 설정될 수 있고 구역 인덱스를 통해 각각의 구역과 연관될 수 있다. 이는, 선택적으로, 각각의 개별적인 구역에 대하여 레지스터들에 렌더링 파라미터들의 세트를 설정하고, 이러한 레지스터들의 각각을 구역 인덱스로 인덱싱하는 것을 포함할 수 있다. 참조번호 830에서 설정된 렌더링 파라미터 컨텍스트는 모든 절두체, MRT, 및 기타 렌더링 파라미터들을 포함할 수 있다.
참조번호 832로 표시한 바와 같이, 각 오브젝트를 위한 드로 호출 전에, 오브젝트와 중첩되는 각 구역은, 예를 들어, 애플리케이션에 의해 오브젝트를 위해 결정 및 설정될 수 있다. 이는, 각 오브젝트마다, 오브젝트가 스크린 영역에서 커버하는 각 구역의 오브젝트를 위한 구역 인덱스를 설정하는 것을 포함할 수 있다. 구역 인덱스는, 참조번호 830에서 설정된 스크린 영역의 구역에 대한 적절한 렌더링 파라미터 컨텍스트와 연관될 수 있다.
이는, 서로 다른 구역 렌더링 파라미터들의 서로 다른 컨텍스트들 간의 빈번한 변경으로 인해 렌더링이 비효율적으로 되므로, 구역들 중 서로 다른 구역들에 대응할 수 있는 오브젝트의 서로 다른 정점들에서의 정점 셰이딩 연산을 위한 컨텍스트 스위칭에 연관된 큰 오버헤드를 피한다. 대신, 스크린의 서로 다른 구역들의 동일한 오브젝트의 서로 다른 정점들이 정점 처리 동안 셰이딩됨으로써, 구역 인덱스 컨텍스트만을 스위칭할 수 있다. 이는, 구역 인덱스가 근본적으로 단일 수일 수 있고 렌더링 파라미터들의 전체 컨텍스트보다 훨씬 적은 데이터의 세트에 대응할 수 있으므로, 스크린의 서로 다른 부분들을 서로 다른 렌더링 파라미터들로 렌더링하는 경우 효율을 상당히 개선할 수 있다.
도 8에 도시한 바와 같이, 드로 호출은, 오브젝트들(834)의 각각마다, 예를 들어, 프레임의 각 오브젝트마다 발행될 수 있다. 구역 인덱스/컨텍스트를 설정하고 드로 호출을 발행하는 것은 그래픽 API를 통해 구현될 수 있고, 방법(800)은, 드로 호출(834)에 따라 오브젝트의 정점에 대한 정점 셰이딩 연산(836)을 포함할 수 있다. 예시한 구현예에서, 오브젝트의 각 정점은, 참조번호 832에서 설정된 구역 인덱스로 표시된 각 구역의 파라미터들로 셰이딩될 수 있다. 다시 말하면, 오브젝트는, 예를 들어, 도 7의 예에서 설명한 개수들에 따라 오브젝트와 중첩되는 각 구역마다 이 단계에서 리렌더링될 수 있다. 따라서, 스크린의 두 개의 구역을 렌더링 파라미터들의 서로 다른 두 개의 각 세트로 커버하는 오브젝트에 대하여, 정점 셰이더가 각 구역마다 렌더링 파라미터들의 고유한 세트로 오브젝트의 각 정점을 처리할 때 정점 셰이더 인보크의 횟수를 두 배로 할 수 있다. 도 8에 도시한 구현예에서, 오브젝트는 연관된 구역 인덱스에 따라 정점 셰이더에서 스크린 공간의 서로 다른 구역들에 대하여 리렌더링될 수 있으므로, 스크린의 서로 다른 구역들에 대한 서로 다른 동차 좌표 공간들을 이용할 수 있다. 이어서, 정점 셰이더는, 각 구역마다 고유한 동차 좌표를 갖는 오브젝트의 정점들의 위치들을 출력할 수 있다.
예를 들어, 텍스처 좌표, 조명 값, 컬러 등의 다양한 파라미터 값들의 조작을 통해 모든 정점들이 소정의 오브젝트에 대하여 셰이딩된 후, 오브젝트들의 정점들과 파라미터들은 프리미티브 조립 단계(838)로 전달될 수 있으며, 여기서, 서로 다른 구역들의 렌더링 파라미터들에 따라 뷰 절두체에 대한 클립 프리미티브들 뿐만 아니라 프리미티브, 예를 들어, 삼각형을 정의하는 오브젝트들의 정점들은, 투영 및 좌표 공간 변환을 연산하는 다양한 연산들을 통해 (때로는 "뷰포트"라고 알려져 있는) 스크린 공간 뷰잉 윈도우에 매핑될 수 있다. 프리미티브 조립 유닛의 출력은, 참조번호 840으로 표시한 바와 같이, 스크린 공간에서의 이산적 픽셀들로의 스캔 변환을 위한 래스터라이저에 전달될 수 있다. 예시한 구현예에서, 스크린 공간의 서로 다른 구역들이, 참조번호 830에서 설정된 서로 다른 구역들의 렌더링 파라미터들에 따라, 서로 다른 클립 면, 뷰잉 절두체, 스크린 공간 변환 파라미터 등의, 프리미티브 조립 연산(838)을 위한 서로 다른 파라미터들을 가질 수 있다.
각 프리미티브가 래스터화된 후, 연관된 프래그먼트 및 픽셀 값들은, 최종 프레임이 디스플레이를 위해 생성되기 전에 이후의 렌더링 파이프라인의 픽셀 처리 단계들에서 추가로 처리될 수 있다.
이제 도 9a를 참조해 보면, 본 개시 내용의 추가 양태들에 따른 다른 방법(900)이 도시되어 있다. 일반적으로, 도 9a에 도시한 예시적인 방법(900)에서, 복수의 구역과 중첩되는 오브젝트에 대하여, 그 오브젝트의 프리미티브들이 수신된다. 수신된 각 프리미티브에 대하여, 각 구역의 렌더링 파라미터들에 따라, 오브젝트와 중첩되는 스크린 공간의 각 구역에 대하여 새로운 프리미티브가 조립될 수 있다. 다시 말하면, 복수의 구역과 중첩되는 오브젝트에 대하여, 그 오브젝트의 프리미티브의 각각은 서로 다른 구역들의 각각에 대하여 재조립될 수 있고, 이러한 구역들은, 프리미티브 조립 동안, 서로 다른 뷰잉 절두체, 서로 다른 클립핑 면, 서로 다른 스크린 공간 변환 등의 서로 다른 파라미터들을 포함할 수 있다.
참조번호 933으로 표시한 바와 같이, 프리미티브들의 일괄이 오브젝트에 속할 수 있다. 참조번호 935로 도시한 바와 같이, 정점 셰이더가 인보크될 수 있고, 정점 셰이딩 연산이 일괄의 각 정점마다 수행될 수 있다. 이 예에서, 정점 셰이더는 오브젝트와 중첩되는 각 구역마다 고유하게 인보크될 필요가 없으며, 이처럼, 정점 셰이더 오버헤드는 종래의 방법들에 비해 증가하지 않는다. 오히려, 이 구현예에서는, 먼저, 프리미티브 조립 동안 서로 다른 렌더링 파라미터들을 차후에 적용할 수 있다.
참조번호 938로 표시한 바와 같이, 프리미티브 조립기는, 수신된 프리미티브들의 일괄들로부터 래스터화를 위한 스크린 공간에 대하여 프리미티브들을 조립할 수 있다. 이 예에서, 프리미티브 조립은, 참조번호 939로 도시한 바와 같이, 오브젝트가 커버하는 스크린의 각 구역에 대하여 반복 실행될 수 있다. 이에 따라, 프리미티브 조립기는, 구역들의 개수에 따라 오브젝트의 프리미티브들의 일괄의 각 프리미티브를, 프리미티브의 오브젝트와 중첩되는 각 구역에 대한 고유한 프리미티브 조립 렌더링 파라미터들로 재조립할 수 있다. 참조번호 940으로 표시한 바와 같이, 결과적으로 형성되는 프리미티브들의 각각은 추가 픽셀 처리를 위해 타겟 구역의 스크린 공간으로 스캔 변환될 수 있다.
구역들에 걸친 반복이 프리미티브 조립 유닛에 의해 제공되는 경우에 오브젝트당 구역 인덱스를 공급하는 많은 방식이 있다. 제한적이지 않은 예를 들면, 구역 인덱스는 그래픽 메모리에 어레이로서 공급될 수 있다. 어레이는, 예를 들어, 커맨드 버퍼에 임베딩될 수 있고 또는 커맨드 버퍼의 포인터를 통해 액세스될 수 있다. 오브젝트당 구역 인덱스는, GPU에서 실행되는 연산 셰이더에 의해 또는 CPU에 의해 버퍼 등을 통해 GPU에 공급될 수 있다.
도 9b는 도 9a의 방법에 따른 방법의 추가 양태들을 도시하는 개략도이다. 도 9B에 도시한 예의 프로세스는, 프리미티브 조립(PA) 유닛(938)이 대응하는 오브젝트와 중첩되는 각 구역에 대하여 프리미티브들을 반복적으로 재조립할 때 FIFO 버퍼(선입 선출; 941)를 이용하여 프리미티브들의 반복을 유지할 수 있다.
도 9b에 도시한 예는, 장면에 있는 오브젝트들의 정점들의 파라미터들을 처리하기 위해 정점 셰이더를 인보크하도록 구성될 수 있는 정점 셰이더 인보크 모듈(943)을 포함한다. 동시에, 그러한 정점들에 연관된 접속 데이터는 프리미티브 버퍼(941)에 송신될 수 있고, 프리미티브 버퍼는, 프리미티브들이 정점들의 그룹들로부터 어떻게 이루어져 있는지에 관한 정보를 포함하고, 또한, 각 프리미티브가 렌더링되어야 하는 구역들에 관한 정보를 포함한다.
정점 셰이더는 정점 셰이딩 연산을 수행하여 정점들의 다양한 파라미터들을 조작할 수 있고, 정점들의 위치들은, 정점 셰이더에 의해 동차 좌표로 정의될 수 있고, 정점 셰이더로부터 위치 캐시(944)로 출력될 수 있다. 프리미티브 조립기(938)는, 프리미티브 버퍼로부터 프리미티브들의 일괄들을 수신할 수 있고, 표시되는 각 구역에 대하여, 즉, 프리미티브를 포함하는 오브젝트와 중첩되는 각 구역에 대하여 반복 실행될 수 있다. 그 결과, 픽셀들은 추가 픽셀 처리를 위해 스캔 변환기(도시하지 않음)에 송신될 수 있다.
도 8에 도시한 구현예에 비교되는 도 9a와 도 9b의 구현예의 이점은, 서로 다른 동차 좌표 공간들의 서로 다른 정점 위치들이 각 구역에 대한 서로 다른 프리미티브 조립 연산들에 필요하지 않을 수 있으므로, 서로 다른 구역들과 중첩되는 오브젝트들에 대하여 정점 셰이더 오버헤드가 증가하지 않을 수 있다는 점이다. 그러나, 정점 셰이더는 통상적으로 정점들의 동차 좌표들을 연산하도록 구성되므로, 도 9a와 도 9b에 도시한 기술만을 사용하여 뷰 방향이 서로 다른 구역들을 이용하는 것이 어려울 수 있다.
그러나, 소정의 구현예들에서는, 도 8과 도 9a와 도 9b에 도시한 기술들의 조합을 이용할 수 있다.
도 10a는 본 개시 내용의 양태들을 구현하도록 구성된 예시적인 그래픽 렌더링 파이프라인(1000a)을 도시한다. 도 10a에 도시한 예시적인 그래픽 렌더링 파이프라인은, 렌더링 파라미터들이 서로 다른 복수의 구역을 갖는 스크린에 대하여 오브젝트들을 렌더링하도록 도 8의 방법(800)을 포함할 수 있다.
그래픽 렌더링 파이프라인(1000a)은, 그래픽들을, 가상 공간(때로는 본원에서 "세계 공간"이라 칭함)에서 바람직하게는 3차원의 기하학 구조를 가질 수 있지만 잠재적으로는 2차원의 기하학 구조를 가질 수 있는 장면을 나타내는 이미지들로서 렌더링하도록 구성될 수 있다. 그래픽 렌더링 파이프라인 전체에 걸쳐, 데이터는 하나 이상의 메모리 유닛으로부터 판독 및 그 하나 이상의 메모리 유닛에 기입될 수 있으며, 이러한 메모리 유닛들은 도면에서 일반적으로 그래픽 메모리(1020)로서 표시되어 있다. 그래픽 메모리는, 렌더링 파이프라인에서 이용되는 다양한 버퍼 및/또는 그래픽 자원을 포함하는, 비디오 메모리 및/또는 하드웨어 상태 메모리를 포함할 수 있다. 그래픽 메모리(1020)의 하나 이상의 개별적인 메모리 유닛들은, 렌더링의 구체적인 단계에서의 데이터의 성질에 따라, 하나 이상의 비디오 랜덤 액세스 메모리 유닛(들), 하나 이상의 캐시, 하나 이상의 프로세서 레지스터 등으로서 구체화될 수 있다. 이에 따라, 그래픽 메모리(1020)는 그래픽 렌더링 파이프라인에서 이용되는 임의의 프로세서 액세스가능 메모리를 가리킨다는 점을 이해하도록 한다. 전용 GPU 등의 처리 유닛은, 파이프라인의 다양한 연산들을 수행하고 이에 따라 그래픽 메모리(1020)에 대하여 판독/기입을 행하도록 구성될 수 있다.
파이프라인의 초기 단계들은, 장면이 래스터화되어 픽셀 디스플레이 디바이스 상의 출력에 적합한 이산적 픽처 요소들의 세트로서 스크린 공간으로 변환되기 전에, 세계 공간에서 수행되는 연산들을 포함할 수 있다. 파이프라인 전체에 걸쳐, 그래픽 메모리(1020)에 포함된 다양한 자원들은 파이프라인 단계들에서 이용될 수 있고, 그 단계들에 대한 입력과 출력은, 이미지들의 최종 값들이 결정되기 전에 그래픽 메모리에 포함된 버퍼들에 일시적으로 저장될 수 있다.
파이프라인의 초기 단계들은, 파이프라인의 다양한 렌더링 단계들을 위해 소정의 입력 데이터(1022)를 설정할 수 있는 애플리케이션 처리 단계(1061)를 포함할 수 있다. 애플리케이션 처리 단계(1061)는, 참조번호 1062로 표시한 바와 같이, 스크린 영역의 각 구역마다 렌더링 파라미터 컨텍스트들(1063)을, 고유한 각 구역 컨텍스트에 배정된 각 구역 인덱스, 예를 들어, 렌더링 파라미터 데이터를 포함하는 고유한 각 드로 컨텍스트에 연관된 구역 인덱스와 함께 설정하는 것을 포함할 수 있다. 또한, 애플리케이션 처리 단계(1061)는, 렌더링을 위한 각 오브젝트를 예를 들어 가상 공간의 정점들의 세트에 의해 정의되는 다각형 메시로서 설정할 수 있고, 오브젝트가 커버하는 스크린 공간의 고유한 각 구역에 대한 구역 인덱스(1064)를 설정할 수 있다. 이어서, 참조번호 1065로 표시한 바와 같이, 각 오브젝트에 대하여 드로 호출을 발행하여 오브젝트가 커버하는 하나 이상의 구역들의 렌더링 파라미터들에 따라 오브젝트를 렌더링할 수 있다. 소정의 구현예들에서, 프로세스(1000a)는 개별적인 CPU와 GPU 간에 조정될 수 있다.
입력 데이터(1022)는, 구역 인덱스(1064) 및 그러한 인덱스에 연관된 대응하는 렌더링 컨텍스트(1063)에 의존하여, 하나 이상의 렌더링 파라미터들에 따라 오브젝트를 렌더링하는 다양한 렌더링 연산들을 구현하도록 액세스되고 이용될 수 있다. 렌더링 파이프라인은, 세계 공간에서 설정되고 장면의 좌표에 관하여 정의되는 기하학 구조를 갖는 정점들의 세트에 의해 정의되는 하나 이상의 가상 오브젝트를 포함할 수 있는 입력 데이터(1022)에 대하여 동작할 수 있다. 렌더링 파이프라인(1000a)에서 이용되는 입력 데이터(1022)는, 본 개시 내용의 양태들에 따라 정점들이 렌더링 파이프라인에서 처리된 프리미티브들에 대응하는 장면 기하학 구조의 다각형 메시 모델을 포함할 수 있고, 초기 정점 기하학 구조는 CPU에 의해 구현되는 애플리케이션 단계 동안 그래픽 메모리에 설정될 수 있다. 파이프라인의 초기 단계들은, 도면에서 정점 처리 단계(1024)로서 대략 분류되는 것을 포함할 수 있고, 이는 세계 공간 기하학 구조에 있는 오브젝트들의 정점들을 처리하기 위한 다양한 연산들을 포함할 수 있다. 이는, 위치 값(예를 들어, X-Y 좌표 값 및 Z-깊이 값), 컬러 값, 조명 값, 텍스처 좌표 등의 장면에 있는 정점들의 다양한 파라미터 값들을 조작할 수 있는 정점 셰이딩 연산(1026)을 포함할 수 있다. 바람직하게, 정점 셰이딩 연산(1026)은 하나 이상의 프로그래밍가능 정점 셰이더에 의해 수행된다. 정점 셰이딩 연산은 오브젝트와 중첩되는 각 구역마다 고유하게 수행될 수 있고, 오브젝트 구역 인덱스(1064)는, 어느 렌더링 컨텍스트 및 오브젝트가 사용하는 연관된 파라미터를 결정하고 이에 따라 정점 값들이 이후 래스터화를 위해 어떻게 조작되어야 하는지를 결정하도록 정점 셰이딩(1026) 동안 이용될 수 있다.
정점 처리 단계는, 또한, 선택적으로, 세계 공간에서 프리미티브들을 세분하고 새로운 정점들과 새로운 기하학 구조들을 생성하는 데 사용될 수 있는, 테셀레이션 및 기하학 구조 셰이더 연산(1028) 등의 추가 정점 처리 연산을 포함할 수 있다. 일단 정점 처리(1024)라고 칭하는 단계가 완료되면, 파이프라인의 이 단계에서, 장면은, 각 정점마다 그래픽 메모리에 저장될 수 있는 정점 파라미터 값들(1046)의 세트를 갖는 정점들의 세트에 의해 정의된다. 소정의 구현예들에서, 정점 셰이더로부터 출력되는 정점 파라미터 값들(1046)은, 오브젝트의 구역 인덱스(1064)에 따라, 서로 다른 구역들에 대한 서로 다른 동차 좌표들로 정의된 위치들을 포함할 수 있다.
이어서, 파이프라인(1000a)은, 장면 기하학 구조를 스크린 공간으로 변환하는 것 및 이산적 픽처 요소들의 세트, 즉, 렌더링 파이프라인 동안 사용되는 픽셀들에 연관된 래스터화 처리 단계(1030)로 진행할 수 있지만, 픽셀이라는 용어는, 픽셀이 최종 디스플레이 버퍼 이미지의 디스플레이 픽셀 값에 대응함을 반드시 의미하는 것은 아니라는 점에 주목한다. 가상 공간 기하학 구조는, 세계 공간으로부터의 정점들과 오브젝트들을 래스터라이저에 의해 샘플링되는 복수의 이산적 스크린 공간 픽셀로 이루어진 장면의 뷰잉 윈도우(또는 "뷰포트")로 투영하는 것을 근본적으로 연산할 수 있는 연산들을 통해 스크린 공간 기하학 구조로 변환될 수 있다. 본 개시 내용의 양태들에 따르면, 스크린 장면은, 서로 다른 구역들을 위한 래스터화 파라미터들을 포함할 수 있는 렌더링 파라미터들이 서로 다른 복수의 이산적 구역을 포함할 수 있다. 도면에 도시한 래스터화 처리 단계(1030)는, 장면의 정점들의 각 세트에 의해 정의되는 프리미티브들을 설정할 수 있는 프리미티브 조립 연산(1032)을 포함할 수 있다. 각 정점은 정점 인덱스에 의해 정의될 수 있고, 각 프리미티브는, 그래픽 메모리(1020)의 인덱스 버퍼에 저장될 수 있는 이러한 정점 인덱스들에 관하여 정의될 수 있다. 프리미티브들은, 적어도 3개의 정점 각각에 의해 정의되는 삼각형을 포함해야 하지만, 점 프리미티브, 선 프리미티브, 및 기타 다각 형상도 포함할 수 있다. 프리미티브 조립 단계(1032) 동안, 일부 프리미티브들은 선택적으로 컬링될 수 있다. 예를 들어, 정점 인덱스와 동차 좌표 공간 위치가 소정의 와인딩(winding) 순서를 나타내는 그러한 프리미티브들은, 백페이싱이라고 여겨질 수 있으며 장면으로부터 컬링될 수 있다. 프리미티브 조립 단계(1032)는, 또한, 스크린 영역의 서로 다른 구역들에 대하여 서로 다른 스크린 공간 변환 파라미터들을 선택적으로 포함할 수 있는, 프리미티브 정점들을 위한 스크린 공간 변환을 포함할 수 있다.
프리미티브들이 조립된 후, 래스터화 처리 단계는, 이산적 각 픽셀에서 프리미티브들을 샘플링하고 샘플들이 프리미티브에 의해 커버되는 경우 추가 처리를 위해 프리미티브들로부터 프래그먼트들을 생성할 수 있는 스캔 변환 연산(1034)을 포함할 수 있다. 본 개시 내용의 소정의 구현예들에서, 스캔 변환(1034)은 각 스크린 공간 픽셀 내의 복수의 샘플에 대한 샘플 커버리지를 결정할 수 있다.
스캔 변환(1034) 동안 프리미티브들로부터 생성되는 프래그먼트들(또는 "픽셀들")은, 그 프래그먼트들을 생성한 프리미티브의 정점들의 정점 파라미터 값들(1046)로부터 픽셀들의 위치에 보간될 수 있는 파라미터 값들을 가질 수 있다. 래스터화 단계(1030)는, 파이프라인의 이후 단계들에서의 추가 처리를 위한 입력으로서 사용될 수 있는, 보간되는 프래그먼트 파라미터 값(1048)을 연산하는 파라미터 보간 연산(1036)을 포함할 수 있고, 파라미터 보간은, 또한, 구성에 따라 픽셀 셰이더에 대한 입력 프래그먼트 값으로서 사용되거나 사용되지 않을 수 있는, 깊이 샘플들을 커버하는 프리미티브들의 정점 깊이 값들로부터 깊이 값들의 보간을 포함할 수 있다.
방법(1000a)은, 보간된 파라미터 값(1048)을 추가 조작하고 프래그먼트들 및/또는 보간된 값들이 디스플레이를 위한 최종 픽셀 값들에 어떻게 기여하는지를 결정하는 추가 연산을 수행하도록 도면에서 일반적으로 참조번호 1040으로 표시되는 추가 픽셀 처리 연산을 포함할 수 있다. 이러한 픽셀 처리 태스크들 중 일부는, 프래그먼트의 보간된 파라미터 값(1048)을 추가 조작하는 데 사용될 수 있는 픽셀 셰이딩 연산(1042)을 포함할 수 있다. 픽셀 셰이딩 연산은 프로그래밍가능 픽셀 셰이더에 의해 수행될 수 있고, 픽셀 셰이더 인보크(1038)는 래스터화 처리 단계(1030) 동안 프리미티브의 샘플링에 기초하여 개시될 수 있다.
픽셀 셰이딩 연산(1042)은, 때로는 렌더 타겟(1049)이라 칭하는 그래픽 메모리(1020)의 하나 이상의 버퍼에 값들을 출력할 수 있다. 소정의 구현예들에서, 다수의 렌더 타겟들(MRT)이 사용될 수 있으며, 이 경우, 픽셀 셰이더는, 각각의 픽셀당 또는 샘플 출력당 다수의 독립적 값들을 출력할 수 있다. 본 개시 내용의 소정의 구현예들에서, 스크린의 서로 다른 구역들에 대하여 서로 다른 MRT 파라미터들을 사용할 수 있다. 픽셀 처리(1040)는, 때때로 래스터 연산(ROP)이라고 알려져 있는 것을 포함할 수 있는 렌더 출력 연산(1044)을 포함할 수 있다. 렌더 출력 연산(1044)은, 픽셀 셰이더에 의해 처리된 깊이 프래그먼트 값들 및 가능하게는 픽셀 셰이더에 의해 처리되지 않은 보간된 깊이 값들이 컬러 버퍼 및/또는 깊이 버퍼에 기입되어야 하는지 여부를 결정하기 위해 깊이 테스트, 스텐실 테스트, 및/또는 기타 연산을 포함할 수 있고, 렌더 출력 연산들 중 일부는, 픽셀 셰이딩 연산(1042) 후에 또는 픽셀 셰이딩 연산(1042) 전에 최적화로서 수행될 수 있다. 렌더 타겟(1049)에서의 샘플당 최종 컬러 값과 깊이 값은, 마무리 가공된 프레임을 구성하는 최종 디스플레이 픽셀 값들이 결정되기 전에 디스플레이 버퍼에 대한 하나 이상의 백 버퍼(때로는 "프레임 버퍼"로 알려져 있음)로서 저장될 수 있는 렌더 출력 연산(1044)에 따라 결정될 수 있다.
마무리 가공된 프레임은, 전술한 파이프라인 연산에 따른 복수의 서로 다른 드로 호출의 결과로부터 발생한 것일 수 있다. 또한, 본 개시 내용의 구현예들은, 서로 다른 렌더링 파라미터들로 연산된 서로 다른 스크린 공간을 복수의 서로 다른 구역을 갖는 출력 디스플레이 이미지로 합성할 수 있다. 선택 사항으로, 추가 후처리를 사용하여 출력 디스플레이 이미지의 구역들 간의 심들(seams)을 숨길 수 있으며, 이는, 예를 들어, 복수의 서로 다른 드로 호출로부터의 픽셀 처리 후에 선택적으로 발생할 수 있다.
또한, 파이프라인의 임의의 단계들은 하드웨어 모듈, 소프트웨어 모듈(예를 들어, 하나 이상의 개별적인 또는 통일된 셰이더 프로그램들), 또는 이들의 소정의 조합으로 구현될 수 있다는 점에 주목한다.
이제 도 10b를 참조해 보면, 다른 예가 예시되어 있다. 도 10b에 도시한 구현예에서, 렌더링 방법(1000b)은 도 9에 도시한 리렌더링 방법의 양태들을 구현하도록 구성될 수 있다. 이 예에서, 방법(1000b)은 도 10a에 도시한 예와 공통되는 많은 특징을 포함할 수 있다. 그러나, 이 예에서, 참조번호 1032에서의 프리미티브 조립기는, 도 9에 도시한 예에 따라, 각 프리미티브를 대응 오브젝트에 의해 커버되는 각 구역에 대한 뷰포트에 반복적으로 매핑하도록 구성될 수 있으며, 서로 다른 구역들을 커버하는 오브젝트에 대하여 서로 다른 각각의 스크린 공간 구역에 고유하게 조립된, 조립된 프리미티브들(1066)의 일괄들이 발생할 수 있다.
이제 도 11을 참조해 보면, 본 개시 내용의 양태들에 따라 그래픽들을 렌더링하도록 구성된 컴퓨팅 시스템(1100)의 예시적인 일례가 도시되어 있다. 시스템(1100)은 전술한 양태들에 따라 애플리케이션(1165)을 위한 그래픽들을 렌더링하도록 구성될 수 있다. 본 개시 내용의 양태들에 따르면, 시스템(1100)은, 임베딩된 시스템, 이동 전화, 퍼스널 컴퓨터, 태블릿 컴퓨터, 휴대용 게임 디바이스, 워크스테이션, 게임 콘솔 등일 수 있다.
시스템은, 일반적으로, 예를 들어, 도 8 및/또는 도 9의 방법들과 공통되는 특징들을 갖는 방법을 수행함으로써 본 개시 내용의 양태들을 구현하도록 구성된 프로세서와 메모리를 포함할 수 있다. 도시한 예에서, 프로세서는 중앙 처리 유닛(CPU; 1170), 그래픽 처리 유닛(GPU; 1171), 및 메모리(1172)를 포함한다. 메모리(1172)는 CPU와 GPU 모두가 액세스가능한 메인 메모리 유닛을 선택적으로 포함할 수 있고, 메인 메모리의 일부들은 그래픽 메모리(1150)의 일부들을 선택적으로 포함할 수 있다. CPU(1170)와 GPU(1171) 각각은, 하나 이상의 프로세서 코어, 예를 들어, 단일 코어, 2개의 코어, 4개의 코어, 8개의 코어 또는 그 이상을 포함할 수 있다. CPU(1170)와 GPU(1171)는, 데이터 버스(1176)를 사용하여 하나 이상의 메모리 유닛에 액세스하도록 구성될 수 있고, 소정의 구현예들에서는, 시스템(1100)이 두 개 이상의 서로 다른 버스를 포함하는 것이 유용할 수 있다.
메모리(1172)는, 어드레싱가능 메모리, 예를 들어, RAM, DRAM 등을 제공하는 집적 회로의 형태로 된 하나 이상의 메모리 유닛을 포함할 수 있다. 그래픽 메모리(1150)는, 그래픽 자원, 그래픽 버퍼, 및 그래픽 렌더링 파이프라인을 위한 기타 그래픽 데이터를 일시적으로 저장할 수 있다. 그래픽 버퍼는, 본 개시 내용의 양태들에 따라 렌더링 컨텍스트 데이터 및 구역 인덱스를 유지하도록 구성된 커맨드 버퍼(1159)를 포함할 수 있다. 그래픽 버퍼는, 또한, 예를 들어, 정점 파라미터 값을 저장하기 위한 하나 이상의 정점 버퍼 및 정점 인덱스를 저장하기 위한 하나 이상의 인덱스 버퍼를 포함할 수 있다. 또한, 그래픽 버퍼는 하나 이상의 렌더 타겟을 포함할 수 있고, 이러한 렌더 타겟은, 본 개시 내용의 양태들에 따라 연산되는 픽셀/샘플 값들을 유지하는 컬러 버퍼와 깊이 버퍼를 포함할 수 있다. 버퍼의 값들은, 본 개시 내용의 양태들에 따라 스크린의 서로 다른 구역들에 대응하는 서로 다른 렌더링 파라미터들을 사용하여 렌더링되는 픽셀들에 대응할 수 있다. 소정의 구현예들에서, GPU(1171)는, 디스플레이(1186) 상에 프리젠테이션하기 위해 디스플레이 버퍼(1193)로부터 그래픽 프레임을 스캔 아웃하도록 구성될 수 있고, 이러한 그래픽 프레임은, 본 개시 내용의 양태들에 따라 복수의 서로 다른 구역을 갖는 출력 디스플레이 이미지를 포함할 수 있다.
CPU는 CPU 코드를 실행하도록 구성될 수 있고, CPU 코드는, (비디오 게임 등의) 렌더링된 그래픽을 이용하는 애플리케이션(1165), 및 애플리케이션(1165)의 상태에 기초하여 GPU(1171)에 의해 구현되는 프로그램에 대한 드로 커맨드 또는 드로 호출을 발행하기 위한 대응하는 그래픽 API(1167)를 포함할 수 있다. CPU 코드는, 또한, 물리적 시뮬레이션 및 기타 기능을 구현할 수 있다.
GPU는 본 개시 내용의 예시적인 구현예들에 관하여 전술한 바와 같이 동작하도록 구성될 수 있다. 그래픽의 렌더링을 지원하도록, GPU는, 정점 셰이더와 픽셀 셰이더를 포함할 수 있는 셰이더(1173)를 실행할 수 있다. 또한, GPU는, 다른 셰이더 프로그램들, 예를 들어, 기하학 구조 셰이더, 테셀레이션 셰이더, 연산 셰이더 등을 실행할 수 있다. 또한, GPU는, 하나 이상의 텍스처 매핑 유닛, 및/또는 고정 함수 연산일 수 있는 도 10a와 도 10b에 도시한 파이프라인과 유사한 그래픽 파이프라인의 하나 이상의 단계에서 연산을 구현하도록 구성된 기타 하드웨어 모듈을 포함할 수 있는, 전용 하드웨어 모듈(1198)을 포함할 수 있다. 셰이더(1173)와 하드웨어 모듈(1198)은, 최종 픽셀 값들이 디스플레이에 출력되기 전에 파이프라인의 다양한 단계들에서 메모리(1150)와 버퍼 내의 데이터와 인터페이싱할 수 있다. 본원에서 설명하는 그래픽 처리 기술들의 양태들을 구현하게끔 시스템(1100)의 프로세서에 의해 실행되도록 구성된 셰이더(1173) 및/또는 기타 프로그램은 비일시적 컴퓨터 판독가능 매체에 명령어로서 저장될 수 있다. GPU는 프리미티브 조립 모듈(1138)을 포함할 수 있고, 이러한 프리미티브 조립 모듈은, GPU의 하드웨어 모듈(1198), 셰이더(1173), 또는 이들의 조합에 선택적으로 구체화될 수 있다. 프리미티브 조립 모듈(1138)은, 본 개시 내용의 양태들에 따라 스크린 공간의 복수의 서로 다른 구역에 걸쳐 수신되는 프리미티브들을 반복하도록 구성될 수 있다.
시스템(1100)은, 또한, 예를 들어 버스(1176)를 통해 시스템의 다른 구성요소들과 통신할 수 있는 공지되어 있는 지원 기능부들(1177)을 포함할 수 있다. 이러한 지원 기능부들은, 입력/출력(I/O) 요소(1179), 전원(P/S; 1180), 클록(CLK; 1181), 및 캐시(1182)를 포함할 수 있지만, 이러한 예들로 한정되지 않는다. 장치(1100)는, 프로그램 및/또는 데이터를 저장하기 위한 디스크 드라이브, CD-ROM 드라이브, 플래시 메모리, 테이프 드라이브, 블루레이 드라이브 등의 대용량 저장 디바이스(1184)를 선택적으로 포함할 수 있다. 디바이스(1100)는, 또한, 렌더링된 그래픽(1187)을 사용자에게 제시하기 위한 디스플레이 유닛(1186), 및 장치(1100)와 사용자 간의 상호 작용을 용이하게 하기 위한 사용자 인터페이스 유닛(1188)을 포함할 수 있다. 디스플레이 유닛(1186)은, 평면 디스플레이, 음극선관(CRT) 스크린, 터치 스크린, 또는 텍스트, 숫자, 그래픽 부호, 또는 이미지를 디스플레이할 수 있는 기타 디바이스의 형태로 된 것일 수 있다. 디스플레이(1186)는 본원에서 설명하는 다양한 기술들에 따라 처리되는 렌더링된 그래픽(1187)을 디스플레이할 수 있다. 소정의 구현예들에서, 디스플레이 디바이스(1186)는, 헤드 장착 디스플레이(HMD) 또는 기타 큰 FOV 디스플레이일 수 있고, 시스템(1100)은 큰 FOV 디스플레이를 위한 렌더링 효율을 최적화하도록 구성될 수 있다. 사용자 인터페이스(1188)는, 키보드, 마우스, 조이스틱, 라이트 펜, 게임 컨트롤러, 터치 스크린 및/또는 그래픽 사용자 인터페이스(GUI)와 함께 사용될 수 있는 기타 디바이스 등의 하나 이상의 주변 장치일 수 있다. 소정의 구현예들에서, 애플리케이션(1165)의 상태 및 그래픽의 기저 콘텐츠는, 예를 들어, 애플리케이션(1165)이 비디오 게임을 포함하는 비디오 게임 구현예들에서 사용자 인터페이스(1188)를 통한 사용자 입력에 의해 적어도 부분적으로 결정될 수 있다. 시스템(1100)은, 또한, 디스플레이 상의 뷰어의 고정점을 검출하도록, 예를 들어, 포비티드 렌더링을 구현하도록 구성될 수 있는 시선 추적기(1199)를 포함할 수 있고, 이에 응답하여 시스템(1100)은 뷰포트 상의 하나 이상의 구역의 위치를 조절하도록 구성될 수 있다. 시선 추적 유닛(1199)은, 카메라로부터 검출되는 사용자의 시선 방향에 기초하여 스크린 상의 고정점을 검출하도록 적외선 LED 또는 기타 적외선 광원 등의 하나 이상의 광원, 및 적외선 카메라 등의 하나 이상의 카메라를 포함할 수 있다.
시스템(1100)은, 또한, 디바이스가 네트워크를 통해 다른 디바이스들과 통신할 수 있게 하는 네트워크 인터페이스(1190)를 포함할 수 있다. 네트워크는, 예를 들어, LAN, 인터넷 등의 와이드 에리어 네트워크, 블루투스 네트워크 등의 퍼스널 에리어 네트워크, 또는 다른 유형의 네트워크일 수 있다. 도시하고 설명한 다양한 구성요소들 각각은 하드웨어, 소프트웨어, 또는 펌웨어, 또는 이들 중 두 개 이상의 소정의 조합으로 구현될 수 있다.
추가 양태
본 개시 내용의 추가 양태들은, 각 구역마다 렌더링 파라미터들의 서로 다른 세트를 갖는 복수의 구역을 포함하는 스크린 영역에 하나 이상의 오브젝트가 매핑될 때 그 하나 이상의 오브젝트를 나타내는 그래픽을 처리하는 방법을 포함하고, 이 방법은, 상기 각 구역에 대한 렌더링 파라미터 컨텍스트를 메모리에 설정하는 단계; 상기 각 구역에 구역 인덱스를 배정하는 단계; 상기 메모리에 오브젝트를 설정하는 단계로서, 상기 오브젝트는 상기 스크린 영역의 구역들 중 적어도 두 개의 구역을 커버하고, 상기 적어도 두 개의 구역에는 상기 구역 인덱스들 중 적어도 두 개의 구역 인덱스가 각각 배정되고, 상기 오브젝트의 설정에는 상기 오브젝트에 대한 상기 적어도 두 개의 구역 인덱스의 설정이 포함되는, 상기 오브젝트를 설정하는 단계; 및 상기 오브젝트를 위한 드로 호출을 발행하는 단계를 포함한다.
다른 추가 양태는, 컴퓨터 실행가능 명령어들이 내부에 내장된 컴퓨터 판독가능 매체로서, 이 명령어는, 실행시, 전술한 방법을 구현한다.
다른 양태는, 전술한 방법을 수행하기 위한 컴퓨터 판독가능 명령어를 반송하는 전자기 신호 또는 기타 신호이다.
또 다른 양태는, 통신 네트워크로부터 다운로드가능하며 및/또는 컴퓨터 판독가능 및/또는 마이크로프로세서 실행가능 매체에 저장된 컴퓨터 프로그램으로서, 전술한 방법을 구현하기 위한 프로그램 코드 명령어를 포함하는 것을 특징으로 한다.
본 개시 내용의 추가 양태들은, 각 구역마다 렌더링 파라미터들의 서로 다른 세트를 갖는 복수의 구역을 포함하는 스크린 영역에 하나 이상의 오브젝트가 매핑될 때 상기 하나 이상의 오브젝트를 나타내는 그래픽을 처리하는 방법으로서, 상기 스크린 영역의 구역들 중 적어도 두 개의 구역을 커버하는 오브젝트에 속하는 프리미티브들의 일괄을 수신하는 단계; 및 프리미티브 조립자에 의해 스크린 공간에 상기 프리미티브들의 각각을 조립하는 단계를 포함하고, 상기 프리미티브들의 각각을 조립하는 단계는, 각 프리미티브를 상기 프리미티브 조립자로 적어도 두 번(상기 적어도 두 개의 구역의 각각에 대하여 한번씩) 반복하되, 각 반복마다 상기 렌더링 파라미터들의 서로 다른 세트를 사용하는 단계를 포함한다.
또 다른 추가 양태는, 컴퓨터 실행가능 명령어들이 내부에 내장된 컴퓨터 판독가능 매체로서, 이 명령어는, 실행시, 전술한 방법을 구현한다.
추가 양태는, 전술한 방법을 수행하기 위한 컴퓨터 판독가능 명령어를 반송하는 전자기 신호 또는 기타 신호이다.
또 다른 양태는, 통신 네트워크로부터 다운로드가능하며 및/또는 컴퓨터 판독가능 및/또는 마이크로프로세서 실행가능 매체에 저장된 컴퓨터 프로그램으로서, 전술한 방법을 구현하기 위한 프로그램 코드 명령어를 포함하는 것을 특징으로 한다.
위 설명은 본 발명의 바람직한 실시예의 완전한 설명이지만, 다양한 대체예, 수정예, 및 균등예를 이용할 수 있다. 따라서, 본 발명의 범위는, 위 설명을 참조하여 결정되는 것이 아니라 대신에 청구범위 및 이들의 전체 균등 범위를 참조하여 결정되어야 한다. 본원에서 설명하는 임의의 특징부들은, 바람직한지 여부에 상관없이 본원에서 설명하는 다른 임의의 특징부와 바람직한지 여부에 상관없이 결합될 수 있다. 다음에 따르는 청구범위에서, "한" 또는 "하나"라는 부정 관사는, 명백하게 달리 언급하지 않는 한, 그 부정 관사 뒤에 오는 항목의 하나 이상의 양을 가리킨다. 청구범위는, 수단 플러스 기능 한정사항이 "~을 위한 수단"이라는 구를 사용하는 소정의 청구항에 명시적인 언급되지 않는 한, 이러한 한정사항을 포함하는 것으로서 해석해서는 안 된다.

Claims (63)

  1. 각 구역마다 렌더링 파라미터(rendering parameter)들의 서로 다른 세트를 갖는 복수의 구역(zone)을 포함하는 스크린 영역에 하나 이상의 오브젝트가 매핑될 때 상기 하나 이상의 오브젝트를 나타내는 그래픽을 처리하는 방법으로서,
    상기 각 구역에 대한 렌더링 파라미터 컨텍스트(rendering parameter context)를 메모리에 설정하는 단계;
    상기 각 구역에 구역 인덱스를 배정하는 단계;
    상기 메모리에 오브젝트를 설정하는 단계; 및
    상기 오브젝트를 위한 드로 호출(draw call)을 발행하는 단계를 포함하고,
    상기 오브젝트는 상기 스크린 영역의 구역들 중 적어도 두 개의 구역을 커버하고, 상기 적어도 두 개의 구역에는 상기 구역 인덱스들 중 적어도 두 개의 구역 인덱스가 각각 배정되고, 상기 오브젝트의 설정에는 상기 오브젝트에 대한 상기 적어도 두 개의 구역 인덱스의 설정이 포함되며,
    상기 렌더링 파라미터들의 서로 다른 각 세트는, 상기 각 구역이 서로 다른 동차 좌표 공간에 의해 정의되는 서로 다른 뷰(view) 방향을 갖도록 서로 다른 뷰 방향을 포함하는, 그래픽을 처리하는 방법.
  2. 삭제
  3. 제1항에 있어서, 상기 렌더링 파라미터들의 서로 다른 각 세트는, 상기 각 구역이 스크린 공간 변환 파라미터들의 서로 다른 세트를 갖도록 스크린 공간 변환 파라미터들의 서로 다른 세트를 포함하는, 그래픽을 처리하는 방법.
  4. 제1항에 있어서, 상기 렌더링 파라미터들의 서로 다른 각 세트는, 상기 각 구역이 서로 다른 픽셀 포맷을 갖도록 서로 다른 픽셀 포맷을 포함하는, 그래픽을 처리하는 방법.
  5. 제1항에 있어서, 상기 렌더링 파라미터들의 서로 다른 각 세트는, 상기 각 구역이 서로 다른 픽셀 밀도를 갖도록 서로 다른 픽셀 밀도를 포함하는, 그래픽을 처리하는 방법.
  6. 제1항에 있어서, 상기 렌더링 파라미터들의 서로 다른 각 세트는, 상기 각 구역이 서로 다른 샘플 밀도를 갖도록 서로 다른 샘플 밀도를 포함하는, 그래픽을 처리하는 방법.
  7. 제1항에 있어서, 상기 복수의 구역은 중심 구역과 적어도 하나의 에지 구역을 포함하고, 상기 에지 구역의 렌더링 파라미터들은 상기 중심 구역을 위한 그래픽 렌더링 자원들을 보존하도록 선택되는, 그래픽을 처리하는 방법.
  8. 제1항에 있어서, 상기 복수의 구역은 시선 추적기로부터 결정된 고정점 구역 및 적어도 하나의 주변 구역을 포함하고, 상기 주변 구역의 렌더링 파라미터들은 상기 고정점 구역을 위한 그래픽 렌더링 자원들을 보존하도록 선택되는, 그래픽을 처리하는 방법.
  9. 제1항에 있어서, 상기 오브젝트에 대한 상기 적어도 두 개의 구역의 인덱스는 그래픽 메모리에 어레이로서 설정되는, 그래픽을 처리하는 방법.
  10. 제1항에 있어서, 상기 오브젝트에 대한 상기 적어도 두 개의 구역의 인덱스는 중앙 처리 유닛(CPU)에 의해 또는 그래픽 처리 유닛(GPU) 상에서 실행되는 연산 셰이더(compute shader)에 의해 상기 그래픽 처리 유닛(GPU)에 공급되는, 그래픽을 처리하는 방법.
  11. 시스템으로서,
    프로세서; 및
    상기 프로세서에 결합된 메모리를 포함하되,
    상기 프로세서는, 각 구역마다 렌더링 파라미터들의 서로 다른 세트를 갖는 복수의 구역을 포함하는 스크린 영역에 하나 이상의 오브젝트가 매핑될 때 하나 이상의 오브젝트를 나타내는 그래픽을 처리하는 방법을 수행하도록 구성되고, 상기 방법은,
    상기 각 구역에 대한 렌더링 파라미터 컨텍스트를 메모리에 설정하는 단계;
    상기 각 구역에 구역 인덱스를 배정하는 단계;
    상기 메모리에 오브젝트를 설정하는 단계; 및
    상기 오브젝트를 위한 드로 호출을 발행하는 단계를 포함하고,
    상기 오브젝트는 상기 스크린 영역의 구역들 중 적어도 두 개의 구역을 커버하고, 상기 적어도 두 개의 구역에는 상기 구역 인덱스들 중 적어도 두 개의 구역 인덱스가 각각 배정되고, 상기 오브젝트의 설정에는 상기 오브젝트에 대한 상기 적어도 두 개의 구역 인덱스의 설정이 포함되며,
    상기 렌더링 파라미터들의 서로 다른 각 세트는, 상기 각 구역이 서로 다른 동차 좌표 공간에 의해 정의되는 서로 다른 뷰 방향을 갖도록 서로 다른 뷰 방향을 포함하는, 시스템.
  12. 제11항에 있어서, FOV가 넓은 디스플레이 디바이스를 더 포함하는, 시스템.
  13. 제12항에 있어서, 상기 복수의 구역은 중심 구역 및 적어도 하나의 에지 구역을 포함하고, 상기 에지 구역의 렌더링 파라미터들은 상기 중심 구역을 위한 그래픽 렌더링 자원들을 보존하도록 선택되는, 시스템.
  14. 제11항에 있어서, 시선 추적기를 더 포함하는, 시스템.
  15. 제14항에 있어서, 상기 복수의 구역은 상기 시선 추적기로부터 결정되는 고정점 구역을 포함하고, 상기 복수의 구역은 적어도 하나의 주변 구역을 포함하고, 에지 주변의 렌더링 파라미터들은 상기 고정점 구역을 위한 그래픽 렌더링 자원들을 보존하도록 선택되는, 시스템.
  16. 삭제
  17. 제11항에 있어서, 상기 렌더링 파라미터들의 서로 다른 각 세트는, 상기 각 구역이 스크린 공간 변환 파라미터들의 서로 다른 세트를 갖도록 스크린 공간 변환 파라미터들의 서로 다른 세트를 포함하는, 시스템.
  18. 제11항에 있어서, 상기 렌더링 파라미터들의 서로 다른 각 세트는, 상기 각 구역이 서로 다른 픽셀 포맷을 갖도록 서로 다른 픽셀 포맷을 포함하는, 시스템.
  19. 제11항에 있어서, 상기 렌더링 파라미터들의 서로 다른 각 세트는, 상기 서로 다른 픽셀 밀도를 갖도록 서로 다른 픽셀 밀도를 포함하는, 시스템.
  20. 제11항에 있어서, 상기 렌더링 파라미터들의 서로 다른 각 세트는, 상기 서로 다른 샘플 밀도를 갖도록 서로 다른 샘플 밀도를 포함하는, 시스템.
  21. 제11항에 있어서, 상기 복수의 구역은 중심 구역 및 적어도 하나의 에지 구역을 포함하고, 상기 에지 구역의 렌더링 파라미터들은 상기 중심 구역을 위한 그래픽 렌더링 자원들을 보존하도록 선택되는, 시스템.
  22. 제11항에 있어서, 상기 복수의 구역은 시선 추적기로부터 결정되는 고정점 구역 및 적어도 하나의 주변 구역을 포함하고, 상기 주변 구역의 렌더링 파라미터들은 상기 고정점 구역을 위한 그래픽 렌더링 자원들을 보존하도록 선택되는, 시스템.
  23. 프로세서 실행가능 명령어들이 내부에 내장된 비일시적 컴퓨터 판독가능 매체로서,
    프로세서에 의한 상기 명령어들의 실행에 따라, 상기 프로세서가, 각 구역마다 렌더링 파라미터들의 서로 다른 세트를 갖는 복수의 구역을 포함하는 스크린 영역에 하나 이상의 오브젝트가 매핑될 때 상기 하나 이상의 오브젝트를 나타내는 그래픽을 처리하는 방법을 구현하고, 상기 방법은,
    상기 각 구역에 대한 렌더링 파라미터 컨텍스트를 메모리에 설정하는 단계;
    상기 각 구역에 구역 인덱스를 배정하는 단계;
    상기 메모리에 오브젝트를 설정하는 단계; 및
    상기 오브젝트에 대한 드로 호출을 발행하는 단계를 포함하고,
    상기 오브젝트는 상기 스크린 영역의 구역들 중 적어도 두 개의 구역을 커버하고, 상기 적어도 두 개의 구역에는 상기 구역 인덱스들 중 적어도 두 개의 구역 인덱스가 각각 배정되고, 상기 오브젝트의 설정에는 상기 오브젝트에 대한 상기 적어도 두 개의 구역 인덱스의 설정이 포함되며,
    상기 렌더링 파라미터들의 서로 다른 각 세트는, 상기 각 구역이 서로 다른 동차 좌표 공간에 의해 정의되는 서로 다른 뷰 방향을 갖도록 서로 다른 뷰 방향을 포함하는, 비일시적 컴퓨터 판독가능 매체.
  24. 삭제
  25. 제23항에 있어서, 상기 렌더링 파라미터들의 서로 다른 각 세트는, 상기 각 구역이 스크린 공간 변환 파라미터들의 서로 다른 세트를 갖도록 스크린 공간 변환 파라미터들의 서로 다른 세트를 포함하는, 비일시적 컴퓨터 판독가능 매체.
  26. 제23항에 있어서, 상기 렌더링 파라미터들의 서로 다른 각 세트는, 상기 각 구역이 서로 다른 픽셀 포맷을 갖도록 서로 다른 픽셀 포맷을 포함하는, 비일시적 컴퓨터 판독가능 매체.
  27. 제23항에 있어서, 상기 렌더링 파라미터들의 서로 다른 각 세트는, 상기 각 구역이 서로 다른 픽셀 밀도를 갖도록 서로 다른 픽셀 밀도를 포함하는, 비일시적 컴퓨터 판독가능 매체.
  28. 제23항에 있어서, 상기 렌더링 파라미터들의 서로 다른 각 세트는, 상기 각 구역이 서로 다른 샘플 밀도를 갖도록 서로 다른 샘플 밀도를 포함하는, 비일시적 컴퓨터 판독가능 매체.
  29. 제23항에 있어서, 상기 복수의 구역은 중심 구역과 적어도 하나의 에지 구역을 포함하고, 상기 에지 구역의 렌더링 파라미터들은 상기 중심 구역을 위한 그래픽 렌더링 자원들을 보존하도록 선택되는, 비일시적 컴퓨터 판독가능 매체.
  30. 제23항에 있어서, 상기 복수의 구역은 시선 추적기로부터 결정된 고정점 구역 및 적어도 하나의 주변 구역을 포함하고, 상기 주변 구역의 렌더링 파라미터들은 상기 고정점 구역을 위한 그래픽 렌더링 자원들을 보존하도록 선택되는, 비일시적 컴퓨터 판독가능 매체.
  31. 제23항에 있어서, 상기 오브젝트에 대한 적어도 두 개의 구역 인덱스는 그래픽 메모리에 어레이로서 설정되는, 비일시적 컴퓨터 판독가능 매체.
  32. 제23항에 있어서, 상기 오브젝트에 대한 적어도 두 개의 구역 인덱스는, 중앙 처리 유닛(CPU)에 의해 또는 그래픽 처리 유닛(GPU)에서 실행되는 연산 셰이더에 의해 상기 GPU에 공급되는, 비일시적 컴퓨터 판독가능 매체.
  33. 각 구역마다 렌더링 파라미터들의 서로 다른 세트를 갖는 복수의 구역을 포함하는 스크린 영역에 하나 이상의 오브젝트가 매핑될 때 상기 하나 이상의 오브젝트를 나타내는 그래픽을 처리하는 방법으로서,
    상기 스크린 영역의 구역들 중 적어도 두 개의 구역을 커버하는 오브젝트에 속하는 프리미티브들의 일괄(batch)을 수신하는 단계; 및
    프리미티브 조립자에 의해 스크린 공간에 상기 프리미티브들의 각각을 조립하는 단계를 포함하되,
    상기 프리미티브들의 각각을 조립하는 단계는, 각 프리미티브를 상기 프리미티브 조립자로 적어도 두 번(상기 적어도 두 개의 구역의 각각에 대하여 한번씩) 반복하되, 각 반복마다 상기 렌더링 파라미터들의 서로 다른 세트를 사용하는 단계를 포함하며,
    상기 렌더링 파라미터들의 서로 다른 각 세트는, 상기 각 구역이 서로 다른 동차 좌표 공간에 의해 정의되는 서로 다른 뷰 방향을 갖도록 서로 다른 뷰 방향을 포함하는, 그래픽을 처리하는 방법.
  34. 삭제
  35. 제33항에 있어서, 상기 렌더링 파라미터들의 서로 다른 각 세트는, 상기 각 구역이 스크린 공간 변환 파라미터들의 서로 다른 세트를 갖도록 스크린 공간 변환 파라미터들의 서로 다른 세트를 포함하는, 그래픽을 처리하는 방법.
  36. 제33항에 있어서, 상기 렌더링 파라미터들의 서로 다른 각 세트는, 상기 각 구역이 서로 다른 픽셀 포맷을 갖도록 서로 다른 픽셀 포맷을 포함하는, 그래픽을 처리하는 방법.
  37. 제33항에 있어서, 상기 렌더링 파라미터들의 서로 다른 각 세트는, 상기 각 구역이 서로 다른 픽셀 밀도를 갖도록 서로 다른 픽셀 밀도를 포함하는, 그래픽을 처리하는 방법.
  38. 제33항에 있어서, 상기 렌더링 파라미터들의 서로 다른 각 세트는, 상기 각 구역이 서로 다른 샘플 밀도를 갖도록 서로 다른 샘플 밀도를 포함하는, 그래픽을 처리하는 방법.
  39. 제33항에 있어서, 상기 복수의 구역은 중심 구역과 적어도 하나의 에지 구역을 포함하고, 상기 에지 구역의 렌더링 파라미터들은 상기 중심 구역을 위한 그래픽 렌더링 자원들을 보존하도록 선택되는, 그래픽을 처리하는 방법.
  40. 제33항에 있어서, 상기 복수의 구역은 시선 추적기로부터 결정된 고정점 구역 및 적어도 하나의 주변 구역을 포함하고, 상기 주변 구역의 렌더링 파라미터들은 상기 고정점 구역을 위한 그래픽 렌더링 자원들을 보존하도록 선택되는, 그래픽을 처리하는 방법.
  41. 제33항에 있어서, 프리미티브당 구역 인덱스들은, 오브젝트 메시의 프리미티브 접속성을 정의하는 정점 인덱스 데이터에 구현되거나 별도의 버퍼로서 공급되는, 그래픽을 처리하는 방법.
  42. 제33항에 있어서, GPU에 공급되는 상기 프리미티브들의 일괄의 구체적인 각 프리미티브에 대한 구역 인덱스와 정점 인덱스 데이터는, 상기 구체적인 각 프리미티브가 커버할 수 있는 프리미티브당 구역 인덱스들만을 포함하도록 컬링(cull)되는, 그래픽을 처리하는 방법.
  43. 제33항에 있어서, 프리미티브당 구역 인덱스 또는 상기 프리미티브들의 일괄을 위해 컬링된 정점 인덱스 데이터는 CPU에 의해 또는 GPU 상에서 실행되는 연산 셰이더에 의해 상기 GPU에 공급되는, 그래픽을 처리하는 방법.
  44. 시스템으로서,
    프로세서; 및
    상기 프로세서에 결합된 메모리를 포함하되,
    상기 프로세서는, 각 구역마다 렌더링 파라미터들의 서로 다른 세트를 갖는 복수의 구역을 포함하는 스크린 영역에 하나 이상의 오브젝트가 매핑될 때 상기 하나 이상의 오브젝트를 나타내는 그래픽을 처리하는 방법을 수행하도록 구성되고, 상기 방법은,
    상기 스크린 영역의 구역들 중 적어도 두 개의 구역을 커버하는 오브젝트에 속하는 프리미티브들의 일괄을 수신하는 단계; 및
    프리미티브 조립자에 의해 스크린 공간에 상기 프리미티브들의 각각을 조립하는 단계를 포함하고,
    상기 프리미티브들의 각각을 조립하는 단계는, 각 프리미티브를 상기 프리미티브 조립자로 적어도 두 번(상기 적어도 두 개의 구역의 각각에 대하여 한번씩) 반복하되, 각 반복마다 상기 렌더링 파라미터들의 서로 다른 세트를 사용하는 단계를 포함하며,
    상기 렌더링 파라미터들의 서로 다른 각 세트는, 상기 각 구역이 서로 다른 동차 좌표 공간에 의해 정의되는 서로 다른 뷰 방향을 갖도록 서로 다른 뷰 방향을 포함하는, 시스템.
  45. 제44항에 있어서, FOV가 넓은 디스플레이 디바이스를 더 포함하는, 시스템.
  46. 제45항에 있어서, 상기 복수의 구역은 중심 구역 및 적어도 하나의 에지 구역을 포함하고, 상기 에지 구역의 렌더링 파라미터들은 상기 중심 구역을 위한 그래픽 렌더링 자원들을 보존하도록 선택되는, 시스템.
  47. 제44항에 있어서, 시선 추적기를 더 포함하는, 시스템.
  48. 제47항에 있어서, 상기 복수의 구역은 상기 시선 추적기로부터 결정된 고정점 구역을 포함하고, 상기 복수의 구역은 적어도 하나의 주변 구역을 포함하고, 상기 주변 구역의 렌더링 파라미터들은 상기 고정점 구역을 위한 그래픽 렌더링 자원들을 보존하도록 선택되는, 시스템.
  49. 삭제
  50. 제44항에 있어서, 상기 렌더링 파라미터들의 서로 다른 각 세트는, 상기 각 구역이 스크린 공간 변환 파라미터들의 서로 다른 세트를 갖도록 스크린 공간 변환 파라미터들의 서로 다른 세트를 포함하는, 시스템.
  51. 제44항에 있어서, 상기 렌더링 파라미터들의 서로 다른 각 세트는, 상기 각 구역이 서로 다른 픽셀 포맷을 갖도록 서로 다른 픽셀 포맷을 포함하는, 시스템.
  52. 제44항에 있어서, 상기 렌더링 파라미터들의 서로 다른 각 세트는, 상기 각 구역이 서로 다른 픽셀 밀도를 갖도록 서로 다른 픽셀 밀도를 포함하는, 시스템.
  53. 제44항에 있어서, 상기 렌더링 파라미터들의 서로 다른 각 세트는, 상기 각 구역이 서로 다른 샘플 밀도를 갖도록 서로 다른 샘플 밀도를 포함하는, 시스템.
  54. 제44항에 있어서, 상기 복수의 구역은 중심 구역과 적어도 하나의 에지 구역을 포함하고, 상기 에지 구역의 렌더링 파라미터들은 상기 중심 구역을 위한 그래픽 렌더링 자원들을 보존하도록 선택되는, 시스템.
  55. 제44항에 있어서, 상기 복수의 구역은 시선 추적기로부터 결정된 고정점 구역 및 적어도 하나의 주변 구역을 포함하고, 상기 주변 구역의 렌더링 파라미터들은 상기 고정점 구역을 위한 그래픽 렌더링 자원들을 보존하도록 선택되는, 시스템.
  56. 프로세서 실행가능 명령어들이 내부에 내장된 비일시적 컴퓨터 판독가능 매체로서,
    프로세서에 의한 상기 명령어들의 실행에 따라, 상기 프로세서가, 각 구역마다 렌더링 파라미터들의 서로 다른 세트를 갖는 복수의 구역을 포함하는 스크린 영역에 하나 이상의 오브젝트가 매핑될 때 상기 하나 이상의 오브젝트를 나타내는 그래픽을 처리하는 방법을 구현하고, 상기 방법은,
    상기 스크린 영역의 구역들 중 적어도 두 개의 구역을 커버하는 오브젝트에 속하는 프리미티브들의 일괄을 수신하는 단계; 및
    프리미티브 조립자에 의해 스크린 공간에 상기 프리미티브들의 각각을 조립하는 단계를 포함하되,
    상기 프리미티브들의 각각을 조립하는 단계는, 각 프리미티브를 상기 프리미티브 조립자로 적어도 두 번(상기 적어도 두 개의 구역의 각각에 대하여 한번씩) 반복하되, 각 반복마다 상기 렌더링 파라미터들의 서로 다른 세트를 사용하는 단계를 포함하며,
    상기 렌더링 파라미터들의 서로 다른 각 세트는, 상기 각 구역이 서로 다른 동차 좌표 공간에 의해 정의되는 서로 다른 뷰 방향을 갖도록 서로 다른 뷰 방향을 포함하는, 비일시적 컴퓨터 판독가능 매체.
  57. 삭제
  58. 제56항에 있어서, 상기 렌더링 파라미터들의 서로 다른 각 세트는, 상기 각 구역이 스크린 공간 변환 파라미터들의 서로 다른 세트를 갖도록 스크린 공간 변환 파라미터들의 서로 다른 세트를 포함하는, 비일시적 컴퓨터 판독가능 매체.
  59. 제56항에 있어서, 상기 렌더링 파라미터들의 서로 다른 각 세트는, 상기 각 구역이 서로 다른 픽셀 포맷을 갖도록 서로 다른 픽셀 포맷을 포함하는, 비일시적 컴퓨터 판독가능 매체.
  60. 제56항에 있어서, 상기 렌더링 파라미터들의 서로 다른 각 세트는, 상기 각 구역이 서로 다른 픽셀 밀도를 갖도록 서로 다른 픽셀 밀도를 포함하는, 비일시적 컴퓨터 판독가능 매체.
  61. 제56항에 있어서, 상기 렌더링 파라미터들의 서로 다른 각 세트는, 상기 각 구역이 서로 다른 샘플 밀도를 갖도록 서로 다른 샘플 밀도를 포함하는, 비일시적 컴퓨터 판독가능 매체.
  62. 제56항에 있어서, 상기 복수의 구역은 중심 구역과 적어도 하나의 에지 구역을 포함하고, 상기 에지 구역의 렌더링 파라미터들은 상기 중심 구역을 위한 그래픽 렌더링 자원들을 보존하도록 선택되는, 비일시적 컴퓨터 판독가능 매체.
  63. 제56항에 있어서, 상기 복수의 구역은 시선 추적기로부터 결정된 고정점 구역 및 적어도 하나의 주변 구역을 포함하고, 상기 주변 구역의 렌더링 파라미터들은 상기 고정점 구역을 위한 그래픽 렌더링 자원들을 보존하도록 선택되는, 비일시적 컴퓨터 판독가능 매체.
KR1020167027205A 2014-04-05 2015-04-03 가변 렌더링 및 래스터화 파라미터 하에서 가변 뷰포트에 대하여 오브젝트를 효율적으로 리렌더링하는 방법 KR101923562B1 (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201461975774P 2014-04-05 2014-04-05
US61/975,774 2014-04-05
US14/678,445 2015-04-03
PCT/US2015/024303 WO2015154004A1 (en) 2014-04-05 2015-04-03 Method for efficient re-rendering objects to vary viewports and under varying rendering and rasterization parameters
US14/678,445 US10438312B2 (en) 2014-04-05 2015-04-03 Method for efficient re-rendering objects to vary viewports and under varying rendering and rasterization parameters

Publications (2)

Publication Number Publication Date
KR20160130433A KR20160130433A (ko) 2016-11-11
KR101923562B1 true KR101923562B1 (ko) 2018-11-29

Family

ID=54210192

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020167027205A KR101923562B1 (ko) 2014-04-05 2015-04-03 가변 렌더링 및 래스터화 파라미터 하에서 가변 뷰포트에 대하여 오브젝트를 효율적으로 리렌더링하는 방법

Country Status (5)

Country Link
US (3) US10438312B2 (ko)
EP (2) EP3872767A1 (ko)
JP (1) JP6392370B2 (ko)
KR (1) KR101923562B1 (ko)
WO (1) WO2015154004A1 (ko)

Families Citing this family (77)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9652882B2 (en) 2014-04-05 2017-05-16 Sony Interactive Entertainment America Llc Gradient adjustment for texture mapping for multiple render targets with resolution that varies by screen location
US9495790B2 (en) 2014-04-05 2016-11-15 Sony Interactive Entertainment America Llc Gradient adjustment for texture mapping to non-orthonormal grid
US9836816B2 (en) 2014-04-05 2017-12-05 Sony Interactive Entertainment America Llc Varying effective resolution by screen location in graphics processing by approximating projection of vertices onto curved viewport
US11302054B2 (en) 2014-04-05 2022-04-12 Sony Interactive Entertainment Europe Limited Varying effective resolution by screen location by changing active color sample count within multiple render targets
US10068311B2 (en) 2014-04-05 2018-09-04 Sony Interacive Entertainment LLC Varying effective resolution by screen location by changing active color sample count within multiple render targets
US9865074B2 (en) 2014-04-05 2018-01-09 Sony Interactive Entertainment America Llc Method for efficient construction of high resolution display buffers
US9710881B2 (en) 2014-04-05 2017-07-18 Sony Interactive Entertainment America Llc Varying effective resolution by screen location by altering rasterization parameters
US10783696B2 (en) 2014-04-05 2020-09-22 Sony Interactive Entertainment LLC Gradient adjustment for texture mapping to non-orthonormal grid
WO2015154004A1 (en) 2014-04-05 2015-10-08 Sony Computer Entertainment America Llc Method for efficient re-rendering objects to vary viewports and under varying rendering and rasterization parameters
US9978341B2 (en) * 2014-12-23 2018-05-22 Mediatek Inc. Visual data processing method and visual data processing system which can perform a process operation according to a gazing point
JP6582419B2 (ja) * 2015-01-27 2019-10-02 セイコーエプソン株式会社 頭部装着型表示装置、頭部装着型表示装置の制御方法、および、コンピュータープログラム
US9760113B2 (en) 2015-02-20 2017-09-12 Sony Interactive Entertainment America Llc Backward compatibility through use of spoof clock and fine grain frequency control
US9704217B2 (en) * 2015-04-20 2017-07-11 Intel Corporation Apparatus and method for non-uniform frame buffer rasterization
US10037620B2 (en) 2015-05-29 2018-07-31 Nvidia Corporation Piecewise linear irregular rasterization
CN106297611B (zh) * 2015-06-05 2021-08-10 北京智谷睿拓技术服务有限公司 显示控制方法和装置
CN106291953B (zh) 2015-06-05 2019-01-08 北京智谷睿拓技术服务有限公司 显示控制方法和装置
CN106297610B (zh) 2015-06-05 2020-03-17 北京智谷睿拓技术服务有限公司 显示控制方法和装置
JP6002286B1 (ja) * 2015-07-14 2016-10-05 株式会社コロプラ ヘッドマウントディスプレイ制御方法、および、ヘッドマウントディスプレイ制御プログラム
US11403099B2 (en) 2015-07-27 2022-08-02 Sony Interactive Entertainment LLC Backward compatibility by restriction of hardware resources
US10235219B2 (en) 2015-07-27 2019-03-19 Sony Interactive Entertainment America Llc Backward compatibility by algorithm matching, disabling features, or throttling performance
US10726619B2 (en) 2015-10-29 2020-07-28 Sony Interactive Entertainment Inc. Foveated geometry tessellation
US9892024B2 (en) 2015-11-02 2018-02-13 Sony Interactive Entertainment America Llc Backward compatibility testing of software in a mode that disrupts timing
WO2017127631A1 (en) 2016-01-22 2017-07-27 Sony Interactive Entertainment Inc Spoofing cpuid for backwards compatibility
EP4145297A1 (en) 2016-01-22 2023-03-08 Sony Interactive Entertainment Inc. Simulating legacy bus behavior for backwards compatibility
US10297077B1 (en) * 2016-03-02 2019-05-21 Valve Corporation Hidden area stencil mesh rendering systems and methods
US10275239B2 (en) 2016-03-30 2019-04-30 Sony Interactive Entertainment Inc. Deriving application-specific operating parameters for backwards compatiblity
US10303488B2 (en) 2016-03-30 2019-05-28 Sony Interactive Entertainment Inc. Real-time adjustment of application-specific operating parameters for backwards compatibility
US10915333B2 (en) 2016-03-30 2021-02-09 Sony Interactive Entertainment Inc. Deriving application-specific operating parameters for backwards compatiblity
GB2548860A (en) * 2016-03-31 2017-10-04 Nokia Technologies Oy Multi-camera image coding
US10102668B2 (en) * 2016-05-05 2018-10-16 Nvidia Corporation System, method, and computer program product for rendering at variable sampling rates using projective geometric distortion
US10152122B2 (en) * 2016-07-18 2018-12-11 Tobii Ab Foveated rendering
US20190180723A1 (en) * 2016-08-01 2019-06-13 Universität des Saarlandes Optimized Rendering with Eye Tracking in a Head-Mounted Display
US10410313B2 (en) * 2016-08-05 2019-09-10 Qualcomm Incorporated Dynamic foveation adjustment
GB2553353B (en) * 2016-09-05 2021-11-24 Advanced Risc Mach Ltd Graphics processing systems and graphics processors
KR102644833B1 (ko) * 2016-10-06 2024-03-07 주식회사 케이티 Vr 스트림의 지연을 보상하는 방법 및 시스템
KR102650215B1 (ko) * 2016-10-18 2024-03-21 삼성전자주식회사 영상 처리 방법 및 장치
US10529119B2 (en) * 2016-12-25 2020-01-07 Biosense Webster (Israel) Ltd. Fast rendering of quadrics and marking of silhouettes thereof
JP6967603B2 (ja) * 2017-03-17 2021-11-17 ユニティ アイピーアール エイピーエスUnity Ipr Aps 自動化されたカメラコリジョンおよび構図保存のための方法およびシステム
US10277943B2 (en) 2017-03-27 2019-04-30 Microsoft Technology Licensing, Llc Selective rendering of sparse peripheral displays based on user movements
US10216260B2 (en) * 2017-03-27 2019-02-26 Microsoft Technology Licensing, Llc Selective rendering of sparse peripheral displays based on element saliency
US10643374B2 (en) * 2017-04-24 2020-05-05 Intel Corporation Positional only shading pipeline (POSH) geometry data processing with coarse Z buffer
US10503456B2 (en) * 2017-05-05 2019-12-10 Nvidia Corporation Method and apparatus for rendering perspective-correct images for a tilted multi-display environment
CN110770796B (zh) * 2017-06-05 2024-03-15 谷歌有限责任公司 平稳变化的中央凹型渲染
US10515466B2 (en) * 2017-06-09 2019-12-24 Sony Interactive Entertainment Inc. Optimized deferred lighting in a foveated rendering system
US10969740B2 (en) 2017-06-27 2021-04-06 Nvidia Corporation System and method for near-eye light field rendering for wide field of view interactive three-dimensional computer graphics
GB201713052D0 (en) * 2017-08-15 2017-09-27 Imagination Tech Ltd Single pass rendering for head mounted displays
US10403032B2 (en) * 2017-08-22 2019-09-03 Qualcomm Incorporated Rendering an image from computer graphics using two rendering computing devices
US10776997B2 (en) 2017-08-24 2020-09-15 Qualcomm Incorporated Rendering an image from computer graphics using two rendering computing devices
US10521881B1 (en) * 2017-09-28 2019-12-31 Apple Inc. Error concealment for a head-mountable device
US10755383B2 (en) * 2017-09-29 2020-08-25 Apple Inc. Multi-space rendering with configurable transformation parameters
US10460509B2 (en) * 2017-11-07 2019-10-29 Dolby Laboratories Licensing Corporation Parameterizing 3D scenes for volumetric viewing
US10845595B1 (en) * 2017-12-28 2020-11-24 Facebook Technologies, Llc Display and manipulation of content items in head-mounted display
CN115842907A (zh) * 2018-03-27 2023-03-24 京东方科技集团股份有限公司 渲染方法、计算机产品及显示装置
US10764581B2 (en) 2018-05-24 2020-09-01 Lockhead Martin Corporation Multi-resolution regionalized data transmission
JP7254464B2 (ja) * 2018-08-28 2023-04-10 キヤノン株式会社 情報処理装置、情報処理装置の制御方法、及びプログラム
CN109741463B (zh) * 2019-01-02 2022-07-19 京东方科技集团股份有限公司 虚拟现实场景的渲染方法、装置及设备
CN111598976B (zh) * 2019-02-01 2023-08-22 华为技术有限公司 场景识别方法及装置、终端、存储介质
CN109978981B (zh) * 2019-03-15 2023-04-25 广联达科技股份有限公司 一种提高建筑模型显示效率的批次渲染方法
KR20230144093A (ko) * 2019-07-28 2023-10-13 구글 엘엘씨 포비에이티드 메시들로 몰입형 비디오 콘텐츠를 렌더링하기 위한 방법들, 시스템들, 및 매체들
US11468627B1 (en) 2019-11-08 2022-10-11 Apple Inc. View dependent content updated rates
US11544903B2 (en) * 2019-12-13 2023-01-03 Sony Group Corporation Reducing volumetric data while retaining visual fidelity
CN111127616B (zh) * 2019-12-27 2023-09-19 珠海金山数字网络科技有限公司 一种渲染校验方法及装置
CN111354062B (zh) * 2020-01-17 2023-03-14 中国人民解放军战略支援部队信息工程大学 一种多维空间数据渲染方法及装置
CN113298918B (zh) * 2020-02-24 2022-12-27 广东博智林机器人有限公司 一种重叠区域的异色显示方法及装置
US11763517B1 (en) * 2020-02-27 2023-09-19 Apple Inc. Method and device for visualizing sensory perception
US11132831B1 (en) * 2020-03-02 2021-09-28 Qualcomm Incorporated Methods and apparatus for efficient multi-view rasterization
US11030932B1 (en) * 2020-03-23 2021-06-08 Shenzhen China Star Optoelectronics Semiconductor Display Technology Co., Ltd. Display panel and display device
US11900499B2 (en) * 2020-03-31 2024-02-13 Advanced Micro Devices, Inc. Iterative indirect command buffers
US11790479B2 (en) * 2021-01-29 2023-10-17 Arm Limited Primitive assembly and vertex shading of vertex attributes in graphics processing systems
CN113052950B (zh) * 2021-03-31 2021-12-17 完美世界(北京)软件科技发展有限公司 光照计算方法、装置、计算机设备及计算机可读存储介质
CN113362436B (zh) * 2021-05-31 2023-09-12 上海米哈游璃月科技有限公司 一种对象渲染方法、装置、设备及存储介质
CN113269860B (zh) * 2021-06-10 2022-10-04 广东奥普特科技股份有限公司 一种高精度三维数据实时渐进式渲染方法和系统
WO2023014086A1 (ko) * 2021-08-03 2023-02-09 엘지전자 주식회사 3d 데이터 송신 장치, 3d 데이터 송신 방법, 3d 데이터 수신 장치 및 3d 데이터 수신 방법
CN113658033B (zh) * 2021-08-20 2023-08-18 西安电子科技大学 一种计算给定区域内部点集的gpu方法
CN113886744B (zh) * 2021-12-08 2022-05-06 浙江口碑网络技术有限公司 内容渲染方法、装置、电子设备及存储介质
CN115641399B (zh) * 2022-09-08 2024-05-17 上海新迪数字技术有限公司 基于图像的多层网格拾取方法及系统
US11676328B1 (en) * 2022-10-24 2023-06-13 Illuscio, Inc. Systems and methods for prioritized rendering and streaming based on risk maps that predict change in a three-dimensional environment

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070183649A1 (en) * 2004-03-15 2007-08-09 Koninklijke Philips Electronic, N.V. Image visualization

Family Cites Families (94)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5224208A (en) 1990-03-16 1993-06-29 Hewlett-Packard Company Gradient calculation for texture mapping
US5130794A (en) 1990-03-29 1992-07-14 Ritchey Kurtis J Panoramic display system
US5422653A (en) 1993-01-07 1995-06-06 Maguire, Jr.; Francis J. Passive virtual reality
US5602391A (en) 1995-02-23 1997-02-11 Hughes Electronics Quincunx sampling grid for staring array
US6249289B1 (en) 1996-11-27 2001-06-19 Silicon Graphics, Inc. Multi-purpose high resolution distortion correction
USH1812H (en) 1997-10-24 1999-11-02 Sun Microsystems, Inc. Method for encoding bounding boxes of drawing primitives to be rendered for multi-resolution supersampled frame buffers
AU2680699A (en) 1998-02-17 1999-08-30 Sun Microsystems, Inc. Estimating graphics system performance for polygons
US6469700B1 (en) 1998-06-24 2002-10-22 Micron Technology, Inc. Per pixel MIP mapping and trilinear filtering using scanline gradients for selecting appropriate texture maps
AU5688199A (en) 1998-08-20 2000-03-14 Raycer, Inc. System, apparatus and method for spatially sorting image data in a three-dimensional graphics pipeline
US6724403B1 (en) * 1999-10-29 2004-04-20 Surfcast, Inc. System and method for simultaneous display of multiple information sources
DE60127253T2 (de) * 2000-06-08 2007-11-22 Imagination Technologies Ltd., Kings Langley Bildkachelung und -kompression für die 3D-Bilddarstellung
US6731434B1 (en) 2001-05-23 2004-05-04 University Of Central Florida Compact lens assembly for the teleportal augmented reality system
US7555157B2 (en) 2001-09-07 2009-06-30 Geoff Davidson System and method for transforming graphical images
US7155698B1 (en) 2001-09-11 2006-12-26 The Regents Of The University Of California Method of locating areas in an image such as a photo mask layout that are sensitive to residual processing effects
US6738069B2 (en) * 2001-12-31 2004-05-18 Intel Corporation Efficient graphics state management for zone rendering
US6906714B2 (en) 2002-06-21 2005-06-14 Intel Corporation Accelerated visualization of surface light fields
US6891548B2 (en) 2002-08-23 2005-05-10 Hewlett-Packard Development Company, L.P. System and method for calculating a texture-mapping gradient
US7619626B2 (en) 2003-03-01 2009-11-17 The Boeing Company Mapping images from one or more sources into an image for display
US6811264B2 (en) * 2003-03-21 2004-11-02 Mitsubishi Electric Research Laboratories, Inc. Geometrically aware projector
US7336277B1 (en) 2003-04-17 2008-02-26 Nvidia Corporation Per-pixel output luminosity compensation
JP3966832B2 (ja) 2003-04-28 2007-08-29 株式会社東芝 描画処理装置、及び、描画処理方法
US7872635B2 (en) * 2003-05-15 2011-01-18 Optimetrics, Inc. Foveated display eye-tracking system and method
US6943797B2 (en) * 2003-06-30 2005-09-13 Sun Microsystems, Inc. Early primitive assembly and screen-space culling for multiple chip graphics system
US6967663B1 (en) 2003-09-08 2005-11-22 Nvidia Corporation Antialiasing using hybrid supersampling-multisampling
US8085273B2 (en) 2003-11-19 2011-12-27 Lucid Information Technology, Ltd Multi-mode parallel graphics rendering system employing real-time automatic scene profiling and mode control
US8144156B1 (en) 2003-12-31 2012-03-27 Zii Labs Inc. Ltd. Sequencer with async SIMD array
US8090383B1 (en) 2004-02-17 2012-01-03 Emigh Aaron T Method and system for charging for a service based on time spent at a facility
US7554538B2 (en) 2004-04-02 2009-06-30 Nvidia Corporation Video processing, such as for hidden surface reduction or removal
US7426724B2 (en) 2004-07-02 2008-09-16 Nvidia Corporation Optimized chaining of vertex and fragment programs
US7339594B1 (en) 2005-03-01 2008-03-04 Nvidia Corporation Optimized anisotropic texture sampling
US7289119B2 (en) 2005-05-10 2007-10-30 Sony Computer Entertainment Inc. Statistical rendering acceleration
US7868847B2 (en) * 2005-05-24 2011-01-11 Mark W Miles Immersive environments with multiple points of view
US7511717B1 (en) 2005-07-15 2009-03-31 Nvidia Corporation Antialiasing using hybrid supersampling-multisampling
US20070018988A1 (en) 2005-07-20 2007-01-25 Michael Guthe Method and applications for rasterization of non-simple polygons and curved boundary representations
US20070083821A1 (en) * 2005-10-07 2007-04-12 International Business Machines Corporation Creating viewports from selected regions of windows
GB0524804D0 (en) 2005-12-05 2006-01-11 Falanx Microsystems As Method of and apparatus for processing graphics
US8300059B2 (en) 2006-02-03 2012-10-30 Ati Technologies Ulc Method and apparatus for selecting a mip map level based on a min-axis value for texture mapping
US7907792B2 (en) 2006-06-16 2011-03-15 Hewlett-Packard Development Company, L.P. Blend maps for rendering an image frame
US8284204B2 (en) * 2006-06-30 2012-10-09 Nokia Corporation Apparatus, method and a computer program product for providing a unified graphics pipeline for stereoscopic rendering
US8406562B2 (en) 2006-08-11 2013-03-26 Geo Semiconductor Inc. System and method for automated calibration and correction of display geometry and color
US20080106489A1 (en) 2006-11-02 2008-05-08 Brown Lawrence G Systems and methods for a head-mounted display
US8233004B1 (en) 2006-11-06 2012-07-31 Nvidia Corporation Color-compression using automatic reduction of multi-sampled pixels
JP5063990B2 (ja) 2006-11-15 2012-10-31 任天堂株式会社 ゲームプログラムおよびゲーム装置
GB2444533B (en) * 2006-12-06 2011-05-04 Sony Uk Ltd A method and an apparatus for generating image content
JP5268271B2 (ja) 2007-03-23 2013-08-21 株式会社東芝 画像表示装置および画像表示方法
US20090033659A1 (en) 2007-07-31 2009-02-05 Lake Adam T Real-time luminosity dependent subdivision
US8441497B1 (en) 2007-08-07 2013-05-14 Nvidia Corporation Interpolation of vertex attributes in a graphics processor
US7916155B1 (en) 2007-11-02 2011-03-29 Nvidia Corporation Complementary anti-aliasing sample patterns
US8922565B2 (en) 2007-11-30 2014-12-30 Qualcomm Incorporated System and method for using a secondary processor in a graphics system
US8643644B2 (en) 2008-03-20 2014-02-04 Qualcomm Incorporated Multi-stage tessellation for graphics rendering
GB0810311D0 (en) 2008-06-05 2008-07-09 Advanced Risc Mach Ltd Graphics processing systems
US8605087B2 (en) 2008-07-03 2013-12-10 Nvidia Corporation Hybrid multisample/supersample antialiasing
US20100020069A1 (en) 2008-07-25 2010-01-28 Qualcomm Incorporated Partitioning-based performance analysis for graphics imaging
JP5242788B2 (ja) 2008-07-25 2013-07-24 クゥアルコム・インコーポレイテッド グラフィックス・イメージングのためのパーティション・ベースのパフォーマンス解析
US7850306B2 (en) * 2008-08-28 2010-12-14 Nokia Corporation Visual cognition aware display and visual data transmission architecture
WO2010048475A1 (en) 2008-10-23 2010-04-29 Immersion Corporation Systems and methods for ultrasound simulation using depth peeling
US8780131B2 (en) 2008-12-19 2014-07-15 Xerox Corporation Systems and methods for text-based personalization of images
US20100214294A1 (en) 2009-02-20 2010-08-26 Microsoft Corporation Method for tessellation on graphics hardware
US9195121B2 (en) * 2009-04-28 2015-11-24 The Regents Of The University Of California Markerless geometric registration of multiple projectors on extruded surfaces using an uncalibrated camera
US8669999B2 (en) 2009-10-15 2014-03-11 Nvidia Corporation Alpha-to-coverage value determination using virtual samples
US8638342B2 (en) 2009-10-20 2014-01-28 Apple Inc. System and method for demosaicing image data using weighted gradients
US8803902B2 (en) 2009-12-03 2014-08-12 Intel Corporation Computing level of detail for anisotropic filtering
US8606009B2 (en) * 2010-02-04 2013-12-10 Microsoft Corporation High dynamic range image generation and rendering
US8619085B2 (en) * 2010-03-08 2013-12-31 Broadcom Corporation Method and system for compressing tile lists used for 3D rendering
PL2596637T3 (pl) 2010-07-21 2021-12-13 Dolby Laboratories Licensing Corporation Systemy i sposoby dostarczania wielowarstwowego wideo zgodnego z ramką
US20130300740A1 (en) 2010-09-13 2013-11-14 Alt Software (Us) Llc System and Method for Displaying Data Having Spatial Coordinates
KR101719485B1 (ko) 2010-09-20 2017-03-27 삼성전자주식회사 그래픽 처리 유닛에서의 사전 픽셀 제거를 위한 장치 및 방법
US8593475B2 (en) 2010-10-13 2013-11-26 Qualcomm Incorporated Systems and methods for dynamic procedural texture generation management
US9122053B2 (en) 2010-10-15 2015-09-01 Microsoft Technology Licensing, Llc Realistic occlusion for a head mounted augmented reality display
US8493390B2 (en) 2010-12-08 2013-07-23 Sony Computer Entertainment America, Inc. Adaptive displays using gaze tracking
US8612874B2 (en) * 2010-12-23 2013-12-17 Microsoft Corporation Presenting an application change through a tile
US8982136B2 (en) 2011-05-16 2015-03-17 Qualcomm Incorporated Rendering mode selection in graphics processing units
JP5885398B2 (ja) 2011-05-20 2016-03-15 キヤノン株式会社 画像処理装置、画像処理方法
KR101799978B1 (ko) * 2011-06-17 2017-11-22 삼성전자주식회사 타일 근접성을 사용하는 타일 기반 렌더링 방법 및 장치
US9019280B2 (en) 2011-07-22 2015-04-28 Qualcomm Incorporated Area-based rasterization techniques for a graphics processing system
US8933952B2 (en) * 2011-09-10 2015-01-13 Microsoft Corporation Pre-rendering new content for an application-selectable user interface
KR101926570B1 (ko) 2011-09-14 2018-12-10 삼성전자주식회사 포스트 프레그먼트 쉐이더를 사용하는 그래픽 처리 방법 및 장치
US10089774B2 (en) * 2011-11-16 2018-10-02 Qualcomm Incorporated Tessellation in tile-based rendering
US10559123B2 (en) 2012-04-04 2020-02-11 Qualcomm Incorporated Patched shading in graphics processing
US8581929B1 (en) 2012-06-05 2013-11-12 Francis J. Maguire, Jr. Display of light field image data using a spatial light modulator at a focal length corresponding to a selected focus depth
US9495781B2 (en) 2012-06-21 2016-11-15 Nvidia Corporation Early sample evaluation during coarse rasterization
KR101980200B1 (ko) 2012-07-12 2019-05-20 삼성전자주식회사 베이지어 커브에 대한 타일 비닝을 수행하는 그래픽 처리 장치 및 방법
US9424685B2 (en) 2012-07-31 2016-08-23 Imagination Technologies Limited Unified rasterization and ray tracing rendering environments
US9142005B2 (en) 2012-08-20 2015-09-22 Nvidia Corporation Efficient placement of texture barrier instructions
US9710881B2 (en) 2014-04-05 2017-07-18 Sony Interactive Entertainment America Llc Varying effective resolution by screen location by altering rasterization parameters
US9710957B2 (en) 2014-04-05 2017-07-18 Sony Interactive Entertainment America Llc Graphics processing enhancement by tracking object and/or primitive identifiers
US9836816B2 (en) 2014-04-05 2017-12-05 Sony Interactive Entertainment America Llc Varying effective resolution by screen location in graphics processing by approximating projection of vertices onto curved viewport
US9495790B2 (en) 2014-04-05 2016-11-15 Sony Interactive Entertainment America Llc Gradient adjustment for texture mapping to non-orthonormal grid
US9865074B2 (en) 2014-04-05 2018-01-09 Sony Interactive Entertainment America Llc Method for efficient construction of high resolution display buffers
WO2015154004A1 (en) 2014-04-05 2015-10-08 Sony Computer Entertainment America Llc Method for efficient re-rendering objects to vary viewports and under varying rendering and rasterization parameters
US10068311B2 (en) 2014-04-05 2018-09-04 Sony Interacive Entertainment LLC Varying effective resolution by screen location by changing active color sample count within multiple render targets
US9652882B2 (en) 2014-04-05 2017-05-16 Sony Interactive Entertainment America Llc Gradient adjustment for texture mapping for multiple render targets with resolution that varies by screen location
US10257494B2 (en) * 2014-09-22 2019-04-09 Samsung Electronics Co., Ltd. Reconstruction of three-dimensional video
US9904162B2 (en) * 2015-03-02 2018-02-27 Reald Inc. Multiple projector imaging system

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070183649A1 (en) * 2004-03-15 2007-08-09 Koninklijke Philips Electronic, N.V. Image visualization

Also Published As

Publication number Publication date
US20210166338A1 (en) 2021-06-03
WO2015154004A1 (en) 2015-10-08
US10915981B2 (en) 2021-02-09
JP2017518557A (ja) 2017-07-06
EP3129958A1 (en) 2017-02-15
EP3872767A1 (en) 2021-09-01
US10438312B2 (en) 2019-10-08
EP3129958B1 (en) 2021-06-02
US20180047129A1 (en) 2018-02-15
US11748840B2 (en) 2023-09-05
KR20160130433A (ko) 2016-11-11
JP6392370B2 (ja) 2018-09-19
EP3129958A4 (en) 2018-01-17
US20150287158A1 (en) 2015-10-08

Similar Documents

Publication Publication Date Title
KR101923562B1 (ko) 가변 렌더링 및 래스터화 파라미터 하에서 가변 뷰포트에 대하여 오브젝트를 효율적으로 리렌더링하는 방법
US11301956B2 (en) Varying effective resolution by screen location by altering rasterization parameters
US10438319B2 (en) Varying effective resolution by screen location in graphics processing by approximating projection of vertices onto curved viewport
KR101922482B1 (ko) 다수의 렌더 타겟들 내에서 활성 컬러 샘플 카운트를 변경함으로써 스크린 위치에 의한 변화하는 유효 분해능
KR20210087043A (ko) 병행 텍스처 샘플링
US11302054B2 (en) Varying effective resolution by screen location by changing active color sample count within multiple render targets
KR20100075351A (ko) 모바일용 컴퓨터 그래픽 랜더링 방법 및 시스템

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right