KR20160130425A - 래스터화 파라미터를 변경하는 것에 의해 스크린 위치에 따른 유효 해상도의 가변 - Google Patents

래스터화 파라미터를 변경하는 것에 의해 스크린 위치에 따른 유효 해상도의 가변 Download PDF

Info

Publication number
KR20160130425A
KR20160130425A KR1020167027104A KR20167027104A KR20160130425A KR 20160130425 A KR20160130425 A KR 20160130425A KR 1020167027104 A KR1020167027104 A KR 1020167027104A KR 20167027104 A KR20167027104 A KR 20167027104A KR 20160130425 A KR20160130425 A KR 20160130425A
Authority
KR
South Korea
Prior art keywords
sub
metadata
pixel
pixels
section
Prior art date
Application number
KR1020167027104A
Other languages
English (en)
Other versions
KR101862182B1 (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 KR20160130425A publication Critical patent/KR20160130425A/ko
Application granted granted Critical
Publication of KR101862182B1 publication Critical patent/KR101862182B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T3/00Geometric image transformations in the plane of the image
    • G06T3/40Scaling of whole images or parts thereof, e.g. expanding or contracting
    • 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/017Head mounted
    • 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/017Head mounted
    • G02B27/0172Head mounted characterised by optical features
    • 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/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/005General purpose rendering architectures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/04Texture mapping
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/50Lighting effects
    • G06T15/80Shading
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T17/00Three dimensional [3D] modelling, e.g. data description of 3D objects
    • G06T17/10Constructive solid geometry [CSG] using solid primitives, e.g. cylinders, cubes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T17/00Three dimensional [3D] modelling, e.g. data description of 3D objects
    • G06T17/20Finite element generation, e.g. wire-frame surface description, tesselation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T19/00Manipulating 3D models or images for computer graphics
    • G06T19/003Navigation within 3D models or images
    • 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/0101Head-up displays characterised by optical features
    • G02B2027/0123Head-up displays characterised by optical features comprising devices increasing the field of view
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20021Dividing image into blocks, subimages or windows
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2210/00Indexing scheme for image generation or computer graphics
    • G06T2210/36Level of detail

Landscapes

  • Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Graphics (AREA)
  • Software Systems (AREA)
  • Optics & Photonics (AREA)
  • Geometry (AREA)
  • Radar, Positioning & Navigation (AREA)
  • Remote Sensing (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Image Generation (AREA)

Abstract

가상 공간에 있는 장면에 대한 하나 이상의 정점을 나타내는 데이터가 수신된다. 기본요소 조립이 상기 정점에 수행되어, 가상 공간으로부터, 복수의 서브구획으로 서브 분할된 복수의 픽셀을 포함하는 디스플레이 디바이스의 스크린 공간에 있는 상기 장면의 뷰포트 상으로 상기 정점의 투영이 연산된다. 스캔 변환은 상기 복수의 픽셀 중 어느 픽셀이 스크린 공간 좌표로 변환된 각 기본요소의 일부인지를 결정한다. 각 기본요소에 대한 거친 래스터화는 상기 기본요소가 오버랩하는 서브구획 또는 서브구획들이 어느 것인지를 결정한다. 기본요소가 오버랩하는 상기 서브구획과 연관된 메타데이터는 상기 서브구획에 대한 픽셀 해상도를 결정한다. 상기 메타데이터는 2개의 상이한 서브구획에 있는 장면 부분들이 상이한 픽셀 해상도를 구비하는 방식으로 상기 디스플레이 디바이스에 디스플레이되는 장면의 상기 뷰포트를 위한 최종 픽셀 값을 생성하는데 사용된다.

Description

래스터화 파라미터를 변경하는 것에 의해 스크린 위치에 따른 유효 해상도의 가변{VARYING EFFECTIVE RESOLUTION BY SCREEN LOCATION BY ALTERING RASTERIZATION PARAMETERS}
관련 출원에 대한 상호 참조
본 출원은, 전체 내용이 본 명세서에 참조로 병합된, 본 출원과 동일자로 출원된, 공동 양도된, 공동-계류 중인 미국 특허 출원 번호 14/246,064(출원인: Tobias Berghoff, 발명의 명칭:"METHOD FOR EFFICIENT CONSTRUCTION OF HIGH RESOLUTION DISPLAY BUFFERS")(대리인 관리 번호 SCEA13055US00)에 관한 것이다.
본 출원은, 전체 내용이 본 명세서에 참조로 병합된, 2014년 4월 5일에 출원된, 공동 양도된, 공동-계류 중인 미국 특허 출원 번호 14/246,067(출원인: Tobias Berghoff, 발명의 명칭: "GRAPHICS PROCESSING ENHANCEMENT BY TRACKING OBJECT AND/OR PRIMITIVE IDENTIFIERS")(대리인 관리 번호 SCEA13056US00)에 관한 것이다.
본 출원은, 전체 내용이 본 명세서에 참조로 병합된, 2014년 4월 5일에 출원된, 공동 양도된, 공동-계류 중인 미국 특허 출원 번호 14/246,068(출원인: Mark Evan Cerny, 발명의 명칭: "GRADIENT ADJUSTMENT FOR TEXTURE MAPPING TO NON-ORTHONORMAL GRID")(대리인 관리 번호 SCEA13057US00)에 관한 것이다.
본 출원은, 전체 내용이 본 명세서에 참조로 병합된, 2014년 4월 5일에 출원된, 공동 양도된, 공동-계류 중인 미국 특허 출원 번호 14/246,061(출원인: Tobias Berghoff, 발명의 명칭: "VARYING EFFECTIVE RESOLUTION BY SCREEN LOCATION BY CHANGING ACTIVE COLOR SAMPLE COUNT WITHIN MULTIPLE RENDER TARGETS")(대리인 관리 번호 SCEA13058US00)에 관한 것이다.
본 출원은, 전체 내용이 본 명세서에 참조로 병합된, 2014년 4월 5일에 출원된, 공동 양도된, 공동-계류 중인 미국 특허 출원 번호 14/246,066(출원인: Mark Evan Cerny, 발명의 명칭: "VARYING EFFECTIVE RESOLUTION BY SCREEN LOCATION IN GRAPHICS PROCESSING BY APPROXIMATING PROJECTION OF VERTICES ONTO CURVED VIEWPORT"(대리인 관리 번호 SCEA13060US00)에 관한 것이다.
본 출원은, 전체 내용이 본 명세서에 참조로 병합된, 2014년 4월 5일에 출원된, 공동 양도된, 공동-계류 중인 미국 특허 출원 번호 14/246,062(출원인: Mark Evan Cerny, 발명의 명칭: "GRADIENT ADJUSTMENT FOR TEXTURE MAPPING FOR MULTIPLE RENDER TARGETS WITH RESOLUTION THAT VARIES BY SCREEN LOCATION")(대리인 관리 번호 SCEA13061US00)에 관한 것이다.
기술 분야
본 발명의 측면은 컴퓨터 그래픽스에 관한 것이다. 특히, 본 발명은 스크린 위치에 따라 해상도를 가변시키는 것에 관한 것이다.
그래픽스 처리는 일반적으로 2개의 프로세서, 중앙 처리 유닛(central processing unit: CPU)과 그래픽스 처리 유닛(graphics processing unit: GPU)을 조정하는 것을 수반한다. GPU는 디스플레이로 출력되도록 의도된 프레임 버퍼에서 이미지의 생성을 가속시키도록 설계된 전문화된 전자 회로이다. GPU는 매립된 시스템, 모바일 폰, 퍼스널 컴퓨터, 태블릿 컴퓨터, 휴대용 게임 디바이스, 워크스테이션, 및 게임 콘솔에 사용된다. GPU는 일반적으로 컴퓨터 그래픽스를 조작하는 것이 효율적이도록 설계된다. GPU는 대형 데이터 블록을 처리하는 것이 병렬로 수행되는 알고리즘을 위하여 GPU를 일반 목적 CPU보다 더 효율적으로 만드는 고속 병렬 처리 아키텍처를 종종 구비한다.
CPU는, 특정 그래픽스 처리 태스크를 구현하는 것, 예를 들어, 이미지에서 이전의 프레임에 대해 변화된 특정 텍스처를 렌더링할 것을 GPU에 명령하는, 일반적으로 드로우 커맨드(draw command)라고도 언급되는 GPU 명령어를 송신할 수 있다. 이 드로우 커맨드는 특정 애플리케이션의 가상 환경의 상태에 대응하는 그래픽스 렌더링 커맨드를 발행하기 위하여 그래픽스 애플리케이션 프로그래밍 인터페이스(application programming interface: API)를 갖는 CPU에 의해 조정될 수 있다.
특정 프로그램을 위한 텍스처를 렌더링하기 위하여, GPU는 "그래픽스 파이프라인"에서 일련의 처리 태스크를 수행하여 가상 환경 내 시각 자료를 디스플레이 상으로 렌더링될 수 있는 이미지로 변환할 수 있다. 일반적인 그래픽스 파이프라인은 가상 공간 내 가상 객체에 특정 렌더링 또는 셰이딩 동작을 수행하고, 장면 내 가상 객체에 변환(transformation) 및 래스터화(rasterization)를 수행하여 출력 디스플레이에 적절한 픽셀 데이터를 생성하고, 그리고 렌더링된 이미지를 디스플레이에 출력하기 전에 픽셀(또는 프래그먼트(fragment))에 추가적인 렌더링 태스크를 수행하는 것을 포함할 수 있다.
이미지의 가상 객체는 종종 가상 장면 내 객체의 형상(shape)을 함께 만드는 기본요소(primitive)로 알려진 형상으로 가상 공간에서 기술된다. 예를 들어, 렌더링될 3차원 가상 세계 내 객체는 3차원 공간 내 좌표로 한정된 정점(vertex)들을 갖는 일련의 별개의 삼각형 기본요소로 감소될 수 있고, 이에 의해 이 다각형은 객체의 표면을 구성한다. 각 다각형은 주어진 다각형을 다른 다각형들과 구별하기 위해 그래픽스 처리 시스템에 의해 사용될 수 있는 연관된 인덱스를 구비할 수 있다. 또한, 각 정점은 주어진 정점을 다른 정점과 구별하는데 사용될 수 있는 연관된 인덱스를 구비할 수 있다. 그래픽스 파이프라인은 이 기본요소에 특정 동작을 수행하여 가상 장면을 위한 시각 자료를 생성하고, 이 데이터를 디스플레이의 픽셀에 의해 재생되기에 적절한 2차원 포맷으로 변환할 수 있다. 그래픽스 기본요소 정보(또는 간단히 "기본요소 정보")라는 용어는, 본 명세서에 사용된 바와 같이, 그래픽스 기본요소를 나타내는 데이터를 말하는데 사용된다. 이러한 데이터는 정점 정보(예를 들어, 정점 위치 또는 정점 인덱스를 나타내는 데이터) 및 다각형 정보, 예를 들어, 다각형 인덱스, 및 특정 정점을 특정 다각형과 연관시키는 다른 정보를 포함하지만 이들로 제한되지 않다.
그래픽스 파이프라인의 일부로서, GPU는 일반적으로 셰이더로 알려진 프로그램을 구현하는 것에 의해 렌더링 태스크를 수행할 수 있다. 일반적인 그래픽스 파이프라인은 정점마다 기본 요소의 특정 특성을 조작할 수 있는 정점 셰이더(vertex shader), 및 그래픽스 파이프라인에서 정점 셰이더로부터 다운스트림에서 동작하고, 픽셀 데이터를 디스플레이로 전달하기 전에 픽셀마다 특정 값을 조작할 수 있는 픽셀 셰이더(pixel shader)("프래그먼트 셰이더"로도 알려짐)를 포함할 수 있다. 프래그먼트 셰이더는 텍스처를 기본요소에 적용하는 것과 관련된 값을 조작할 수 있다. 파이프라인은 파이프라인 내 여러 스테이지에 다른 셰이더, 예를 들어, 정점 셰이더의 출력을 사용하여 새로운 기본요소 세트를 생성하는 기하 셰이더(geometry shader), 및 특정 다른 일반적인 연산 태스크를 수행하기 위해 GPU에 의해 구현될 수 있는 연산 셰이더(compute shader: CS)를 더 포함할 수 있다.
넓은 시야(field of view: FOV)를 구비하는 그래픽 디스플레이 디바이스가 개발되었다. 이러한 디바이스는 헤드 마운트 디스플레이(head mounted display: HMD) 디바이스를 포함한다. HMD 디바이스에서, 작은 디스플레이 디바이스는 사용자의 헤드에 착용된다. 디스플레이 디바이스는 하나의 눈(monocular HMD) 또는 각 눈(binocular HMD)의 전방에 디스플레이 광학기기를 구비한다. HMD 디바이스는, 일반적으로 디바이스의 배향을 센싱하고, 사용자의 헤드가 이동할 때 디스플레이 광학기기에 의해 제시되는 장면을 변화시킬 수 있는 센서를 포함한다. 종래에, 넓은 FOV 디스플레이를 위한 장면을 렌더링하는 대부분의 스테이지는 스크린의 모든 부분이 유닛 영역마다 동일한 개수의 픽셀을 구비하는 평면 렌더링에 의해 수행된다.
현실감 있는 경험을 제공하기 위해 넓은 FOV 디스플레이 디바이스에 의해 표현되는 그래픽스는 고품질이면서 효율적으로 렌더링되는 것이 요구된다.
이런 상황에서 본 발명이 발생한다.
본 발명의 개시 내용은 첨부된 도면과 함께 다음 상세한 설명을 고려하는 것에 의해 용이하게 이해될 수 있을 것이다.
도 1a 및 도 1b는 넓은 시야(FOV) 디스플레이의 특정 파라미터를 간략히 도시하는 도면.
도 1c는 넓은 FOV 디스플레이의 상이한 부분들에 대한 상이한 입체각(solid angle)을 도시하는 도면.
도 2a 내지 도 2c는 본 발명의 측면에 따라 상이한 넓은 FOV 디스플레이의 상이한 구역들에 있는 픽셀의 상대적 중요성의 예를 도시하는 도면.
도 2d는 본 발명의 측면에 따라 FOV 디스플레이의 스크린의 상이한 구역들에 대한 상이한 픽셀 해상도의 예를 도시하는 도면.
도 3a는 본 발명의 측면에 따른 그래픽스 처리 시스템의 블록도.
도 3b는 본 발명의 측면에 따른 그래픽스 처리 파이프라인의 블록도.
도 4a는 본 발명의 측면에 따라 스크린 위치에 따라 픽셀 해상도가 가변하는 스크린 공간을 도시하는 개략도.
도 4b는 본 발명의 측면에 따라 스크린 위치에 따라 픽셀 해상도가 가변하는 스크린 공간의 일부를 도시하는 개략도.
도 4c는 도 4b에 도시된 스크린 공간의 일부에 대응하는 메모리의 일부의 이용을 도시하는 개략도.
도 4d는 본 발명의 일 측면에 따라 스크린 위치에 따라 픽셀 해상도가 가변하는 스크린 공간의 일부에서 기본요소로 맵핑되는 텍스처에 대한 구배의 스케일링을 도시하는 개략도의 세트.
도 4e는 본 발명의 측면에 따라 스크린 위치에 따라 가변하는 픽셀 해상도를 구현하는 메타데이터 구성의 일례를 도시하는 개략도.
도 4f는 본 발명의 측면에 따라 스크린 위치에 따라 가변하는 픽셀 해상도를 구현하는 메타데이터 구성의 대안적인 예를 도시하는 개략도.
도 5a는 본 발명의 측면에 따라 스크린 위치에 따라 픽셀 해상도가 가변하는 다수의 렌더링 타깃의 일례를 도시하는 블록도.
도 5b는 본 발명의 측면에 따라 스크린 위치에 따라 픽셀 해상도가 가변하는 다수의 렌더링 타깃의 대안적인 예를 도시하는 블록도.
도 6a 내지 도 6e는 본 발명의 대안적인 측면에 따라 텍스처를 적용할 때 픽셀마다 구배 스케일을 정정하는 일례를 도시하는 도면.
다음 상세한 설명은 예시를 위하여 많은 특정 상세를 포함하지만, 이 기술 분야에 통상의 지식을 가진 자라면 다음 상세에 많은 변경과 변형이 본 발명의 범위 내에서 이루어질 수 있다는 것을 이해할 수 있을 것이다. 따라서, 후술되는 본 발명의 예시적인 실시예는 청구된 발명에 일반성을 상실함이 없이 그리고 본 발명을 제한함이 없이 제시된다.
서론
도 1a 내지 도 1c는 대형 FOV 디스플레이에서 이전의 인식되지 못한 문제를 도시한다. 도 1a는 90도의 FOV 디스플레이를 도시하고, 도 1b는 114도의 FOV 디스플레이를 도시한다. 종래의 대형 FOV 디스플레이에서, 3차원 기하는 평면 투영을 사용하여 뷰 평면(view plane)(101)으로 렌더링된다. 그러나, 기하를 높은 FOV 뷰 평면 상으로 렌더링하는 것은 매우 비효율적인 것으로 밝혀졌다. 도 1c에서 볼 수 있는 바와 같이, 뷰 평면(101)의 에지 구역(112)과 중심 구역(114)은 동일한 영역이지만, 뷰어(103)가 볼 때는 매우 상이한 입체각을 나타낸다. 그 결과, 스크린의 에지 부근의 픽셀은 중심 부근의 픽셀보다 훨씬 더 적은 의미 정보를 보유한다. 종래에 장면을 렌더링할 때, 이들 구역은 동일한 개수의 픽셀을 구비하고, 스크린에서 동일한 사이즈의 구역을 렌더링하는데 소비되는 시간도 동일하다.
도 2a 내지 도 2c는 상이한 사이즈의 FOV에 대해 2차원으로 대형 FOV 디스플레이의 상이한 부분들의 상대적인 중요성을 도시한다. 도 2a는, 평면 체커보드(planar checkerboard)가 114도의 각도에 이르는 경우, 시야 방향(direction of view)에 수직인 평면 체커보드의 각 정사각형에 대한 입체각의 분산(variance)을 표시한다. 다시 말해, 도 2a는 114도의 FOV 디스플레이에 종래의 평면 투영 렌더링을 하는 비효율성을 표현한다. 도 2b는 90도의 FOV 디스플레이에 대해 동일한 정보를 표현한다. 이러한 평면 투영 렌더링에서, 투영은 에지에 있는 이미지(201) 내 타일(202)과 코너에 있는 타일(203)을, 중심에 있는 타일(204)에 비해 더 작은 입체각으로 압축한다. 이 압축으로 인해, 그리고 이미지(201) 내 각 타일이 스크린 공간에서 동일한 개수의 픽셀을 구비하는 것으로 인해, 중심 타일(204)에 비해 에지 타일(202)을 렌더링하는데 대략 4X의 비효율 팩터(inefficiency factor)가 있다. 이는 에지 타일(202)의 종래의 렌더링이 중심 타일(204)에 대해서보다 단위 입체각마다 4배 더 많은 처리를 수반한다는 것을 의미한다. 코너 타일(203)에 비해 비효율 팩터는 대략 8X이다. 전체 이미지(201)에 걸쳐 평균내면, 비효율 팩터는 대략 2.5X이다.
비효율은 FOV의 사이즈에 좌우된다. 예를 들어, 도 2b에 도시된 90도의 FOV 디스플레이에 대해, 비효율 팩터는 에지 타일(202)을 렌더링하는 것에 대해서는 대략 2X이고, 코너 타일(203)을 렌더링하는 것에 대해서는 대략 3X이고, 이미지(201)를 전체적으로 렌더링하는 것에 대해서는 대략 1.7X이다.
이런 상황을 보는 다른 방법은 도 2c에 도시되는데, 여기서 스크린(102)은 이루는 유닛 입체각마다 픽셀들이 거의 동일한 "중요성"을 갖는 직사각형으로 분할되었다. 각 직사각형은 디스플레이를 통해 볼 때 최종 이미지에 대략 동일한 기여를 한다. 평면 투영이 에지 직사각형(202)과 코너 직사각형(203)의 중요성을 왜곡하는 방식을 볼 수 있다. 사실, 코너 직사각형(203)은, (입체각당 픽셀로 표현된) 픽셀의 시각 밀도가 디스플레이의 중심 쪽으로 갈수록 더 높게 만들도록 선택할 수 있는 디스플레이 광학기기로 인해 중심 직사각형에 더 적은 기여를 할 수 있다.
상기 관찰에 기초하여, 도 2d에 도시된 바와 같이 넓은 FOV 디스플레이를 위한 이미지(210)는 그 픽셀 밀도가 중심 구역(205)에서보다 에지 구역(202, 204, 206, 208)에서 더 작고, 에지 구역(202, 204, 206, 208)에서보다 코너 구역(201, 203, 207,209)에서 더 작은 것이 유리할 수 있다. 또한 기본 그래픽 이미지 데이터 또는 데이터 포맷 또는 데이터 처리를 상당히 변경함이 없이 스크린에 걸쳐 픽셀 밀도를 가변시키는 것과 동일한 효과를 갖는 방식으로 넓은 FOV 디스플레이의 스크린 상으로 종래의 그래픽 이미지를 렌더링하는 것이 유리할 수 있다.
본 발명의 측면에 따라 이들 장점은 기본요소가 오버랩하는 각 서브구획과 연관된 메타데이터를 사용하는 것에 의해 그래픽스 파이프라인에서 획득될 수 있다. 메타데이터는 서브구획에 대한 픽셀 해상도를 결정한다. 메타데이터는 서브구획에 대한 픽셀을 처리하는데 사용되어, 2개의 상이한 서브구획에 있는 장면 부분들이 상이한 픽셀 해상도를 가지는 방식으로 디스플레이 디바이스에 디스플레이되는 장면의 뷰포트를 위한 최종 픽셀 값이 생성된다.
이를 구현하기 위해, 가상 공간으로부터 스크린 공간으로 변환하고, 뒤를 향하거나(backfaced) 또는 모호한(obscured) 기본요소들을 발췌하는 것은 종래의 방식으로 수행될 수 있다. 나아가, 기본요소들은 단 한번만 렌더링된다. 스크린은 단일 픽셀 포맷을 구비하고, 다수의 서브구획으로 분할되고, 각 서브구획은 다수의 픽셀을 포함한다.
해상도는 서브구획마다 지정될 수 있다. 해상도가 정상보다 더 낮은 경우, 다수의 렌더링 타깃(MRT) 데이터의 일부만을 사용하여 디스플레이되는 최종 픽셀을 생성한다. 메타데이터는 또한 다른 파라미터들을 지정할 수 있다. 텍스처 처리를 용이하게 하기 위해, 픽셀 셰이더들은 텍스처 맵핑을 위해 수평 및 수직 구배 스케일 팩터를 지정하도록 구성된다.
시스템 및 장치
본 발명의 측면은 텍스터 맵핑에서 구배 스케일 정정을 구현하도록 구성된 그래픽스 처리 시스템을 포함한다. 예로서, 및 비 제한적으로, 도 3a는 본 발명의 측면에 따라 그래픽스 처리를 구현하는데 사용될 수 있는 컴퓨터 시스템(300)의 블록도를 도시한다. 본 발명의 측면에 따라, 시스템(300)은 매립된 시스템, 모바일 폰, 퍼스널 컴퓨터, 태블릿 컴퓨터, 휴대용 게임 디바이스, 워크스테이션, 게임 콘솔 등일 수 있다.
시스템(300)은 일반적으로 중심 프로세서 유닛(CPU)(302), 그래픽스 프로세서 유닛(GPU)(304), 및 이 CPU와 GPU 모두에 액세스가능한 메모리(308)를 포함할 수 있다. CPU(302)와 GPU(304)는 하나 이상의 프로세서 코어, 예를 들어, 단일 코어, 2개의 코어, 4개의 코어, 8개의 코어, 또는 이를 초과하는 개수의 코어를 각각 포함할 수 있다. 메모리(308)는 어드레스지정가능한 메모리, 예를 들어, RAM, DRAM, 등을 제공하는 집적 회로 형태일 수 있다. 메모리(308)는, 그래픽스 자원을 저장하고 그래픽스 렌더링 파이프라인을 위한 데이터의 그래픽스 버퍼(305)를 일시적으로 저장할 수 있는 그래픽스 메모리(328)를 포함할 수 있다. 그래픽스 버퍼(305)는, 예를 들어, 정점 파라미터 값을 저장하는 정점 버퍼, 정점 인덱스를 보유하는 인덱스 버퍼, 그래픽스 내용의 깊이 값을 저장하는 깊이 버퍼(예를 들어, Z-버퍼), 스텐실 버퍼(stencil buffer), 디스플레이로 송신될 완성된 프레임을 저장하는 프레임 버퍼, 및 다른 버퍼를 포함할 수 있다. 도 3a에 도시된 예에서, 그래픽스 메모리(328)는 메인 메모리의 일부로 도시된다. 대안적인 구현에서, 그래픽스 메모리(328)는 GPU(304)에 통합될 수 있는 별개의 하드웨어 컴포넌트일 수 있다.
예로서, 및 비 제한적으로, CPU(302)와 GPU(304)는 데이터 버스(309)를 사용하여 메모리(308)에 액세스할 수 있다. 일부 경우에, 시스템(300)은 2개 이상의 상이한 버스를 포함하는 것이 유리할 수 있다. 메모리(308)는 CPU(302)와 GPU(304)에 의해 액세스될 수 있는 데이터를 포함할 수 있다. GPU(304)는 그래픽스 처리 태스크를 병렬로 수행하도록 구성된 복수의 연산 유닛을 포함할 수 있다. 각 연산 유닛은 로컬 데이터 공유와 같은 자체 전용 로컬 메모리 저장매체를 포함할 수 있다.
CPU는, 그래픽스, 컴파일러 및 그래픽스 API를 사용하는 애플리케이션을 포함할 수 있는 CPU 코드(303 C )를 실행하도록 구성될 수 있다. 그래픽스 API는 GPU에 의해 구현된 프로그램에 드로우 커맨드를 발행하도록 구성될 수 있다. CPU 코드(303 C )는 물리적 시뮬레이션 및 다른 기능을 더 구현할 수 있다. GPU(304)는 전술한 바와 같이 동작하도록 구성될 수 있다. 특히, GPU는, 전술한 바와 같이, 연산 셰이더(CS), 정점 셰이더(VS), 및 픽셀 셰이더(PS)와 같은 셰이더를 구현할 수 있는 GPU 코드(303 G )를 실행할 수 있다. 연산 셰이더(CS)와 정점 셰이더(VS) 사이에 데이터를 용이하게 전달하기 위해 시스템은 프레임 버퍼(FB)를 포함할 수 있는 하나 이상의 버퍼(305)를 포함할 수 있다. GPU 코드(303 G )는 또한 다른 유형의 셰이더(미도시), 예를 들어, 픽셀 셰이더 또는 기하 셰이더를 선택적으로 구현할 수 있다. 각 연산 유닛은 로컬 데이터 공유와 같은 자체 전용 로컬 메모리 저장매체를 포함할 수 있다. GPU(304)는 텍스처를 그래픽스 파이프라인의 일부로 기본요소에 적용하는 특정 동작을 수행하도록 구성된 하나 이상의 텍스처 유닛(texture unit)(306)을 포함할 수 있다.
본 발명의 측면에 따라, 시스템(300)의 CPU 코드(303 c )와 GPU 코드(303 g ) 및 다른 요소는 그래픽스 파이프라인을 구현하도록 구성된다. 그래픽스 파이프라인의 특정 스테이지는 디스플레이 디바이스(316)의 스크린의 하나 이상의 서브구획과 연관된 메타데이터(MD)를 수신하고 사용한다. 메타데이터는 관련 서브구획 또는 서브구획들에 대한 픽셀 해상도를 결정한다. 시스템(300)은 서브구획(들)에 대한 픽셀을 처리하는데 메타데이터를 사용하여 2개의 상이한 서브구획에 있는 장면 부분들이 상이한 픽셀 해상도를 구비하는 방식으로 디스플레이 디바이스에 디스플레이되는 장면의 뷰포트를 위한 최종 픽셀 값을 생성한다.
본 발명의 측면에 따라, 특정 구현에서 시스템(300)의 CPU 코드(303 c ) 및 GPU 코드(303 g ) 및 다른 요소는 그래픽스 기본요소가 오버랩하는 디스플레이 디바이스(316)의 스크린의 하나 이상의 서브구획에 대한 활성 픽셀 카운트를 지정하는 메타데이터(MD)를 수신하고 사용한다. 메타데이터(MD)는 상이한 픽셀 해상도(스크린의 단위 영역마다 픽셀의 개수)를 가지도록 서브구획마다 상이한 활성 픽셀 카운트를 지정한다. 이러한 구현에서, 시스템(300)의 CPU 코드(303 c ) 및 GPU 코드(303 g ) 및 다른 관련 컴포넌트는 서브구획에 대한 픽셀을 처리하는데 메타데이터(MD)를 사용하여 관련 서브구획 또는 서브구획들에 대한 지정된 개수의 활성 픽셀에 대해서만 픽셀 처리를 수행하는 것에 의해 최종 픽셀 값을 생성하도록 구성될 수 있다. 이런 방식으로 픽셀 해상도는 디스플레이 디바이스(316)의 스크린의 상이한 서브구획마다 가변될 수 있고, GPU(304)의 그래픽스 처리 부하는 간단히 높은 해상도 구역에 비해 낮은 해상도 구역에 대한 메타데이터(MD)의 활성 픽셀 카운트를 감소시키는 것에 의해 디스플레이의 낮은 해상도 구역에서 감소될 수 있다.
일부 구현에서, 메타데이터(MD)는 동일한 사이즈의 서브구역의 규칙적인 어레이, 예를 들어, 32 x 32 픽셀의 거친 래스터화 타일에 대해 서브구역마다 활성 픽셀 구성으로 지정될 수 있다. 다른 구현에서, 메타데이터(MD)는 도 5a 또는 도 5b에 도시된 바와 같이 미리 한정된 패턴을 구성하는 수평 및 수직 스크린 좌표 범위의 어레이로 지정될 수 있다. 스크린 영역을 커버하는 서브 구역 세트를 한정하고, 각 서브구역에 대한 활성 픽셀 구성을 지정하는 많은 옵션이 존재하고, 여기에 제안된 본 발명은 이들 예시적인 경우로 제한되지 않는 것으로 이해된다.
일부 구현에서, CPU 코드(303 c ), GPU 코드(303 g ), 및 텍스처 유닛(306)은 스크린 위치에 따라 가변하는 픽셀 해상도와 함께 텍스처 맵핑 동작에 변형을 구현하도록 더 구성될 수 있다. 예를 들어, 픽셀 셰이더(PS)와 텍스처 유닛(306)은 픽셀 위치(XY)마다 하나 이상의 텍스처 좌표(UV)를 생성하여 하나 이상의 텍스처 맵핑 동작에 대한 좌표 세트를 제공하고, 텍스처 좌표(UV)로부터 텍스처 필터링에 사용되는 구배값(Gr)을 계산하도록 구성될 수 있다.
일부 구현에서, 스크린 공간 영역은 상이한 픽셀 샘플 밀도 또는 분배를 갖는 구역들 간에 파티션되어서, 구배값(Gr)에 급격한 전이를 초래하여, 결과적으로 구역 경계에서 텍스처를 필터링할 수 있다. 픽셀마다 텍스처 구배 스케일 팩터(Sc)는, 구배값(Gr)에 적용되어, 만약 필요한 경우, 구역 경계에 걸쳐 원활히 가변하는 구배값(Gr')을 획득할 수 있다.
예로서, 및 비 제한적으로, 텍스처 유닛(들)(306), 및 후술되는 그래픽스 파이프라인의 다른 부분들은 응용 특정 집적 회로(ASIC), 전계 프로그래밍가능한 게이트 어레이(FPGA), 또는 시스템 온 칩(SoC 또는 SOC)과 같은 특수 목적 하드웨어로 구현될 수 있다.
본 명세서에 사용된 바와 같이 및 일반적으로 이 기술 분야에 통상의 지식을 가진 자라면 이해하는 바와 같이, 응용 특정 집적 회로(ASIC)는 일반 목적 사용에 의도된 것이 아니라 특정 사용을 위해 주문 제작된 집적 회로이다.
본 명세서에 사용된 바와 같이 및 일반적으로 이 기술 분야에 통상의 지식을 가진 자라면 이해하는 바와 같이, 전계 프로그래밍가능한 게이트 어레이(FPGA)는 제조 후 고객 또는 설계자에 의해 구성되도록 설계된 - 그리하여 "전계-프로그래밍가능한" 집적 회로이다. FPGA 구성은 ASIC에 사용된 것과 유사한 하드웨어 설명 언어(HDL)를 사용하여 일반적으로 지정된다.
본 명세서에 사용된 바와 같이 및 일반적으로 이 기술 분야에 통상의 지식을 가진 자라면 이해하는 바와 같이, 칩 상의 시스템 또는 시스템 온 칩(SoC 또는 SOC)은 컴퓨터 또는 다른 전자 시스템의 모든 컴포넌트를 단일 칩으로 통합한 집적 회로(IC)이다. 이 칩은 디지털, 아날로그, 혼합된-신호, 및 종종 무선-주파수 기능을 - 단일 칩 기판 상에 모두 포함할 수 있다. 일반적인 애플리케이션은 매립된 시스템 영역에 있다.
일반적인 SoC는 다음의 하드웨어 컴포넌트들을 포함한다:
하나 이상의 프로세서 코어(예를 들어, 마이크로제어기, 마이크로프로세서 또는 디지털 신호 프로세서(DSP) 코어.
메모리 블록, 예를 들어, 판독 전용 메모리(ROM), 랜덤 액세스 메모리(RAM), 전기적으로 소거가능한 프로그래밍가능한 판독 전용 메모리(EEPROM) 및 플래쉬 메모리.
발진기 또는 위상-동기 루프와 같은 타이밍 소스.
카운터-타이머, 실시간 타이머, 또는 전력-온 리셋 생성기와 같은 주변장치.
외부 인터페이스, 예를 들어, 산업 표준, 예를 들어, 범용 직렬 버스(universal serial bus: USB), 파이어와이어(FireWire), 이더넷, 범용 비동기 수신기/전송기(universal asynchronous receiver/transmitter: USART), 직렬 주변장치 인터페이스(serial peripheral interface: SPI) 버스.
아날로그-디지털 컨버터(ADC)와 디지털-아날로그 컨버터(DAC)를 포함하는 아날로그 인터페이스.
전압 레귤레이터와 전력 관리 회로.
이들 컴포넌트는 전용 버스 또는 산업-표준 버스에 의해 연결된다. 직접 메모리 액세스(DMA) 제어기는 외부 인터페이스와 메모리 사이에 데이터를 직접 라우팅하고, 프로세서 코어를 바이패스하여, 이에 의해 SoC의 데이터 처리량을 증가시킨다.
일반적인 SoC는 전술한 하드웨어 컴포넌트, 및 프로세서 코어(들), 주변장치, 및 인터페이스를 제어하는 실행가능한 명령어(예를 들어, 소프트웨어 또는 펌웨어)를 모두 포함한다.
일부 구현에서, 텍스처 유닛(306), 또는 그래픽 파이프라인의 다른 부분들의 기능들 중 일부 또는 모든 기능은, 대안적으로 소프트웨어 프로그래밍가능한 일반 목적 컴퓨터 프로세서에 의해 실행되는 적절히 구성된 소프트웨어 명령어에 의해 구현될 수 있다. 이러한 명령어는 컴퓨터-판독가능한 매체, 예를 들어, 메모리(308) 또는 저장매체 디바이스(315)에 구현될 수 있다.
시스템(300)은 예를 들어, 버스(309)를 통해 시스템의 다른 컴포넌트들과 통신할 수 있는 잘 알려진 지원 기능(310)을 더 포함할 수 있다. 이러한 지원 기능은 입력/출력 (I/O) 요소(311), 전력 공급원(P/S)(312), 클록(CLK)(313) 및 캐시(314)를 포함할 수 있으나, 이들로 제한되지 않는다. 캐시(314)에 더하여, GPU(304)는 자체 GPU 캐시(314 G )를 포함할 수 있고, GPU는 GPU(304)에서 실행되는 프로그램이 GPU 캐시(314 G )를 리드스루(read-through) 또는 라이트스루(write-through)할 수 있도록 구성될 수 있다.
시스템(300)은 렌더링된 그래픽스(317)를 사용자에 제시하는 디스플레이 디바이스(316)를 포함할 수 있다. 대안적인 구현에서, 디스플레이 디바이스(316)는 시스템(300)과 함께 동작하는 별개의 컴포넌트이다. 디스플레이 디바이스(316)는 가시적인 텍스트, 숫자, 그래픽 심볼 또는 이미지를 디스플레이할 수 있는 평판 패널 디스플레이, 헤드 마운트 디스플레이(HMD), 음극선관(CRT) 스크린, 프로젝터, 또는 다른 디바이스 형태일 수 있다. 특히 유리한 구현에서, 디스플레이(316)는 곡선 스크린을 구비하는 넓은 시야(field of view)(FOV) 디바이스이다. 디스플레이 디바이스(316)는 본 명세서에 설명된 여러 기술에 따라 처리된 렌더링된 그래픽 이미지(317)를 디스플레이한다.
시스템(300)은 프로그램 및/또는 데이터를 저장하는 디스크 드라이브, CD-ROM 드라이브, 플래쉬 메모리, 테이프 드라이브 또는 등과 같은 대용량 저장매체 디바이스(315)를 선택적으로 포함할 수 있다. 시스템(300)은 또한 시스템(300)과 사용자 사이에 상호 작용을 수행하는 사용자 인터페이스 유닛(318)을 선택적으로 포함할 수 있다. 사용자 인터페이스(318)는 그래픽 사용자 인터페이스(GUI)와 함께 사용될 수 있는 키보드, 마우스, 조이스틱, 조명 펜, 게임 제어기, 또는 다른 디바이스를 포함할 수 있다. 시스템(300)은 디바이스가 네트워크(322)를 통해 다른 디바이스와 통신하게 하는 네트워크 인터페이스(320)를 더 포함할 수 있다. 네트워크(322)는, 예를 들어, 근거리 네트워크(LAN), 인터넷과 같은 광역 네트워크, 블루투스 네트워크 또는 다른 유형의 네트워크와 같은 사설 영역 네트워크일 수 있다. 이들 컴포넌트는 하드웨어, 소프트웨어, 또는 펌웨어, 또는 이들 중 2개 이상의 일부 조합으로 구현될 수 있다.
그래픽스 파이프라인
본 발명의 측면에 따라, 시스템(300)은 그래픽스 렌더링 파이프라인의 일부를 구현하도록 구성된다. 도 3b는 본 발명의 측면에 따른 그래픽스 렌더링 파이프라인(330)의 일례를 도시한다.
렌더링 파이프라인(330)은 (종종 "세계 공간"이라고 언급되는) 가상 공간에 2차원 또는 바람직하게는 3차원 기하를 구비하는 장면을 도시하는 이미지로서 그래픽스를 렌더링하도록 구성될 수 있다. 파이프라인의 초기 스테이지는, 장면이 래스터화되고 디스플레이 디바이스(316)에 출력되기에 적절한 별개의 화상 요소의 세트로 스크린 공간으로 변환되기 전에, 가상 공간에서 수행되는 동작을 포함할 수 있다. 파이프라인에 걸쳐, 그래픽스 메모리(328)에 포함된 여러 자원은 파이프라인 스테이지에서 사용될 수 있고, 스테이지에 입력과 출력은 이미지의 최종 값이 결정되기 전에 그래픽스 메모리에 포함된 버퍼에 일시적으로 저장될 수 있다.
렌더링 파이프라인은, 가상 공간에서 설정되고 장면 내 좌표에 대해 한정된 기하를 구비하는 정점 세트에 의해 한정된 하나 이상의 가상 객체를 포함할 수 있는 입력 데이터(332)에 동작할 수 있다. 파이프라인의 초기 스테이지는, 도 3b에서 정점 처리 스테이지(334)로 넓게 분류될 수 있는 것을 포함할 수 있고, 이것은 가상 공간 내 객체의 정점을 처리하는 여러 연산을 포함할 수 있다. 이것은 장면 내 정점의 여러 파라미터 값, 예를 들어, 위치 값(예를 들어, X-Y 좌표 및 Z-깊이 값), 컬러 값, 조명 값, 텍스처 좌표, 등을 조작할 수 있는 정점 셰이딩 연산(336)을 포함할 수 있다. 바람직하게는, 정점 셰이딩 연산(336)은 하나 이상의 프로그래밍가능한 정점 셰이더에 의해 수행된다. 정점 처리 스테이지는 가상 공간에서 새로운 정점과 새로운 기하를 생성하는데 선택적으로 사용될 수 있는 추가적인 정점 처리 연산, 예를 들어, 테셀레이션(tessellatiom) 및 기하 셰이더 연산(338)을 선택적으로 포함할 수 있다. 정점 처리 스테이지(334)로 언급되는 스테이지가 완료되면, 파이프라인에서 이 스테이지에서 장면은 정점 파라미터 값(339)의 세트를 각각 구비하는 정점 세트에 의해 한정된다.
파이프라인(330)은 장면 기하를 스크린 공간과 별개의 화상 요소, 즉, 픽셀의 세트로 변환하는 것과 연관된 래스터화 처리 스테이지(340)로 진행할 수 있다. (3차원일 수 있는) 가상 공간 기하는 본질적으로 가상 공간으로부터 객체와 정점을 장면의 뷰 윈도우(또는 "뷰포트)로 투영을 연산할 수 있는 동작을 통해 (일반적으로 2차원인) 스크린 공간 기하로 변환될 수 있다. 정점의 서브셋은 기본요소의 세트를 한정하도록 그룹화된다.
도 3b에 도시된 래스터화 처리 스테이지(340)는 장면 내 각 정점 세트에 의해 한정된 기본요소들을 설정할 수 있는 기본요소 조립 동작(342)을 포함한다. 각 정점은 인덱스에 의해 한정될 수 있고, 각 기본요소는 그래픽스 메모리(328) 내 인덱스 버퍼에 저장될 수 있는 정점 인덱스에 대하여 한정될 수 있다. 기본요소는 바람직하게는 3개의 정점에 의해 한정된 삼각형을 적어도 각각 포함할 수 있지만, 또한 점 기본요소, 라인 기본요소, 및 다른 다각형 형상을 포함할 수도 있다. 기본요소 조립 스테이지(342) 동안, 특정 기본요소는 선택적으로 발췌(culled)질 수 있다. 예를 들어, 특정 감는 순서를 나타내는 인덱스를 갖는 이 기본 요소는 뒤를 향하는(back-facing) 것으로 고려되고, 장면으로부터 발췌될 수 있다.
예로서, 및 비 제한적으로, 기본요소들이 3차원 가상 공간에서 정점에 의해 한정된 삼각형 형태인 경우, 기본요소 조립은 디스플레이(316)의 스크린 상에서 각 삼각형이 위치된 곳을 결정한다. 클리핑(clipping) 동작과 스크린 공간 변환 동작은 일반적으로 기본요소 조립 유닛(342)에 의해 수행된다.
기본요소들이 조립되면, 래스터화 처리 스테이지(340)는, 각 픽셀에서 기본요소를 샘플링하고, 샘플이 기본요소에 의해 커버될 때 추가적인 처리를 위해 기본요소로부터 프래그먼트(종종 픽셀이라고 언급됨)를 생성할 수 있는 스캔 변환 동작(344)을 포함할 수 있다. 스캔 변환 동작은, 스크린 공간 좌표로 변환된 기본요소를 취하고 어느 픽셀이 이 기본요소의 일부인지를 결정하는 동작을 포함한다. 일부 구현에서, 각 필셀에 대해 다수의 샘플이 앤티-에일리어싱(anti-aliasing)을 위해 사용될 수 있는 스캔 변환 동작(344) 동안 기본요소 내에 취해진다. 특정 구현에서, 상이한 픽셀들이 상이하게 샘플링될 수 있다. 예를 들어, 일부 에지 픽셀은 특정 유형의 디스플레이 디바이스(316), 예를 들어, 헤드 마운트 디스플레이(HMD)를 위해 특정 측면의 렌더링을 최적화하도록 중심 픽셀보다 더 낮은 샘플링 밀도를 포함할 수 있다. 스캔 변환(344) 동안 기본요소로부터 생성된 프래그먼트(또는 "픽셀")는 파라미터 값을 생성한 기본요소의 정점의 정점 파라미터 값(339)으로부터 픽셀의 위치로 보간될 수 있는 파라미터 값을 구비할 수 있다. 래스터화 스테이지(340)는 이 보간된 프래그먼트 파라미터 값(349)을 연산하는 파라미터 보간 동작(346) 스테이지를 포함할 수 있고, 이 보간된 프래그먼트 파라미터 값은 파이프라인의 나중 스테이지에서 추가적인 처리를 위한 입력으로 사용될 수 있다.
본 발명의 측면에 따라, 기본요소 조립(342)과 스캔 변환(344) 사이에는 스크린의 상이한 서브구획들이 상이한 픽셀 해상도를 구비하는 것을 고려하는 특정 동작들이 일어난다. 특히 구현에서, 기본요소의 정점에 대한 스크린 위치가 일단 알려지면, 거친 래스터화(343)가, 기본요소가 오버랩하는 모든 미리 한정된 스크린 서브구획(종종 본 명세서에서 거친 래스터화 타일이라고 언급됨)을 찾기 위해 수행될 수 있다. 기본요소가 오버랩하는 각 서브구획에 대해, 서브구획에 따른 메타데이터(MD), 예를 들어, 활성 픽셀 카운트 및 스케일링 파라미터가 수신되고, 이들 파라미터에 의해 기본요소에 대한 정점 위치 및 텍스터 구배는 서브구획의 픽셀 해상도를 고려하도록 조절된다. 스캔 변환(344)과 후속 처리 스테이지들은 관련 서브구획 또는 서브구획들에 대한 지정된 개수의 활성 픽셀에 대해서만 픽셀 처리를 수행하는 것에 의해 최종 픽셀 값을 생성한다.
그래픽스 파이프라인(330)은 일반적으로, 보간된 파라미터 값(349)을 더 조작하고 프래그먼트들이 디스플레이(316)를 위한 최종 픽셀 값에 기여하는 방식을 결정하는 추가적인 동작을 수행하는, 도 3b에서 (350)으로 지시된 픽셀 처리 동작을 더 포함할 수 있다. 픽셀 처리 태스크 중 일부는 프래그먼트의 보간된 파라미터 값(349)을 더 조작하는 픽셀 셰이딩 연산(352)을 포함한다. 픽셀 셰이딩 연산(352)은 GPU(304)에서 프로그래밍가능한 픽셀 셰이더 또는 목적 설정 하드웨어에 의해 수행될 수 있다. 픽셀 셰이더 호출(pixel shader invocation)(348)은 래스터화 처리 스테이지(340) 동안 기본요소의 샘플링에 기초하여 개시될 수 있다. 픽셀 셰이딩 연산(352)은, 종종 렌더링 타깃(render target: RT)이라고 언급되고 또는 만약 다수 개인 경우, 다수의 렌더링 타깃(MRT)이라고 언급되는, 그래픽스 메모리(328) 내 하나 이상의 버퍼(305)에 값을 출력할 수 있다. MRT에 의해 픽셀 셰이더는 하나를 초과하는 렌더링 타깃으로 선택적으로 출력할 수 있고, 여기서 각 타깃은 동일한 스크린 크기를 구비하지만 상이한 픽셀 포맷을 가질 수 있다. 렌더링 타깃 포맷의 제한은, 임의의 하나의 렌더링 타깃이 최대 4개의 독립적인 출력 값(채널)만을 수용할 수 있다는 것과, 이들 4개의 채널의 포맷이 서로 타이트하게 묶여있다는 것을 종종 의미한다. MRT에 의해 단일 픽셀 셰이더는 상이한 포맷을 혼합하여 더 많은 값을 출력할 수 있다. 렌더링 타깃의 포맷은 스크린 공간 픽셀마다 값을 저장한다는 점에서 "텍스처-같은"것이지만, 여러 성능 이유 때문에, 렌더링 타깃 포맷은 최근 하드웨어 생성에서 보다 전문화되고 있어서, 종종 (그러나 항상은 아니다) 텍스처 유닛(306)에 의해 판독되고 있는 것과 호환되기 전에 데이터를 재포맷하는 "분석(resolve)"이라고 언급되는 것을 요구한다.
도 4a 내지 도 4c는 디스플레이(316)의 스크린(400)의 상이한 서브구획(401)들에서 상이한 픽셀 해상도의 일례를 개략적으로 도시한다. 이 예에서 픽셀 데이터는 스크린(400)의 모든 서브구획(401)에 있는 모든 픽셀에 대해 동일한 방식으로 포맷된다. 예로서, 및 비 제한적으로, 깊이 샘플과 컬러 샘플의 개수는 스크린(400)의 모든 서브구획 401 에 있는 모든 픽셀에 대해 동일하다. 일반적으로, 컬러 샘플보다 더 많은 깊이 샘플이 있다. 수치적인 예로서, 및 비 제한적으로, 서브구획(401)들은 32 픽셀 x 32 픽셀의 거친 래스터화 타일일 수 있고, 깊이 샘플의 개수는 4일 수 있고, 컬러 샘플의 개수는 1일 수 있다. 대안적인 구현에서, 각 서브구획 및 대응하여 상이한 개수의 서브구획들에 더 큰 개수의 픽셀(예를 들어, 64 픽셀 x 64 픽셀) 또는 더 작은 개수의 픽셀(예를 들어, 16 x 16) 또는 가변 개수의 픽셀(예를 들어, 직사각형 사이즈의 혼합)이 있을 수 있다.
도 4a 내지 도 4c에 도시된 바와 같이 각 서브구획(401)에 있는 활성 픽셀의 개수는 변한다. 도시된 예에서 4개의 중심 서브구획(401c)에만 최대 해상도가 있다. 다른 서브구획은 하나의 축 또는 2개의 축에서 절반의 해상도이다. 예를 들어, 수평 에지 서브구획(401 EH )은 수평 방향으로 최대 해상도를 구비하고, 수직 방향과 수직 에지 서브구획(401 EV )에서 절반 해상도는 수평 방향으로 절반 해상도를 구비하고, 수직 방향으로 최대 해상도를 구비한다. 코너 서브구획(401 R )은 수직 및 수평 방향으로 절반 해상도를 구비한다. 이 예에서, 그래픽스 파이프라인(330)은 중심 서브구획(401 C )을 정상적으로 렌더링할 수 있다. 이러한 구현에서, 그래픽스 파이프라인(330)은 수평 에지 서브구획(401 EH )에 있는 픽셀에 대한 수직 위치와 텍스처 맵핑 구배를 조절하고, 수직 에지 서브구획(401 EV )에 있는 픽셀에 대한 수평 위치와 텍스처 맵핑 구배를 조절하고, 코너 서브구획(401 R )에 있는 픽셀에 대한 수직 및 수평 위치와 텍스처 맵핑 구배를 조절한다.
메타데이터(MD)에 따라 서브구획당 활성 픽셀의 개수가 변해도, 서브구획마다 메모리에 저장된 픽셀 데이터(예를 들어, MRT 데이터)는 변하지 않지만, 이 데이터의 이용이 변한다. 구체적으로, 도 4c에 도시된 바와 같이 그래픽스 파이프라인(330)은 중심 서브구획(401 C )에 대한 픽셀 데이터의 전부, 수평 에지 서브구획(401 EH )과 수직 에지 서브구획(401 EV )에 대한 데이터의 절반, 및 코너 서브구획(401 R )에 대한 데이터의 1/4을 사용할 수 있다. 이들 서브구획에 대한 데이터의 미사용된 부분은 도 4c에서 약하게 셰이딩되어 있다. 메모리에서 픽셀 데이터의 사이즈는 변치 않지만, 그래픽스 프로세서(304)에 대한 연산 부하는 수평 에지 서브구획(401 EH ), 수직 에지 서브구획(401 EV )과 코너 서브구획(401 R )에 대해 감소되는데, 그 이유는 이들 서브구획에 대해서는 픽셀 데이터의 전부를 처리할 필요가 없기 때문이다. 예를 들어, 서브구역의 행(row)들이 동일한 수직 스케일을 항상 공유하고 열(column)은 동일한 수평 스케일을 항상 공유하는 특정 간단한 경우에, 스크린 공간 변환은 픽셀 데이터의 모든 부분들을 하나의 더 작은 직사각형으로 함께 팩킹하여서 또한 메모리 풋프린트(footprint)를 더 감소시키는데 사용될 수 있다. 다른 덜 규칙적인 경우에, 메타데이터(MD)를 변형하는 것에 의해 메모리 오프셋 또는 인덱스를 유사하게 오프셋의 테이블로 인코딩할 수 있어서, 출력을 더 작은 메모리 풋프린트로 보다 효율적으로 팩킹할 수 있다.
일부 구현에서, 각 구역(401)은 디스플레이(316)의 스크린의 고정된 사이즈 부분에 대응할 수 있다. 다른 구현에서, 각 구역은 디스플레이의 가변 사이즈 부분에 대응할 수 있다. 추가적인 구현에서, 메타데이터(MD)는 수직 및 수평 방향으로 픽셀의 범위에 의해 각 구역(401)을 한정할 수 있다. 더 추가적인 구현에서, 메타데이터(MD)는 일부 사이즈의 거친 래스터화 타일, 예를 들어 32 픽셀 x 32 픽셀에 의해 각 구역을 한정할 수 있다. 특정 구역과 연관된 메타데이터는 이 구역에 대한 활성 픽셀 구성을 지정하는 정보를 포함한다. 예로서 및 비 제한적으로, 메타데이터는 메모리(308) 및/또는 그래픽스 메모리(328)에 테이블 형태로 저장될 수 있다.
메타데이터(MD)로부터 활성 픽셀 카운트를 사용하기 위해 기본요소 조립 동작(342)은, 메모리로부터 기본요소에 대한 정점 정보를 인출하고, 디스플레이되는 장면의 시야 절두체(viewing frustum)의 외부에 있는 기본요소들을 클리핑하고, 가상 공간으로부터 스크린 공간으로 정점 위치의 변환을 수행하고, 텍스처 맵핑을 위한 구배를 연산할 수 있다. 기본요소 조립 동작(342)은 기본요소가 위치된 서브구획 또는 서브구획들을 결정할 수 있다. 스캔 컨버터 동작(344)은 관련 서브구획 또는 서브구획들의 해상도(예를 들어, 메모리(308) 또는 그래픽스 메모리(328)에 저장된 테이블로부터 활성 픽셀 카운트)를 결정하는 메타데이터(MD)를 룩업(loop up)하는 것을 포함할 수 있다. 스캔 컨버터 동작(344)은 또한 정점 스크린 공간 위치를 조절하는 연산을 수행할 수 있다.
가변 활성 픽셀 카운트를 수반하는 구현에서, 특정 수학적 처리가 거친 래스터화(343) 후에 서브구획마다 수행된다. 특히, 변환(344) 동안 각 픽셀에 대한 수평 위치 H와 수직 위치 V가 스케일링되고, 서브구획의 수평 위치와 수직 위치(HSUB, VSUB), 수평 스케일 팩터(H스케일)와 수직 스케일 팩터(V스케일)에 의존하는 업데이트된 위치 H' 및 V'로 오프셋될 필요가 있다. 스케일 팩터(H스케일 및 V스케일)는 메타데이터(MD)에 저장될 수 있다. 스케일 동작과 오프셋 동작은 다음 수식과 같이 수학적으로 표현될 수 있다:
H' = (H - HSUB)*H스케일 + HSUB
V' = (V - VSUB)*V스케일 + VSUB
이와 동등하게, 이들 동작은 다음 수식으로 수학적으로 표현될 수 있다:
H' = H*H스케일 + HSUB*(1-H스케일)
V' = V*V스케일 + VSUB*(1-V스케일)
수평 및 수직 스케일링의 예는 도 4d에 도시된다. 구체적으로, 수직 및 수평으로 최대 해상도를 구비하는 서브구획(예를 들어, 중심 서브구획(401C))에 속하는 기본요소(403)는 도 4d의 좌상 부분에 도시된 바와 같이 스케일링될 필요가 없다. 최대 수평 해상도와 1/2 수직 해상도를 구비하는 서브구획(예를 들어, 수평 에지 서브구획(401 EH )에 속하는 기본요소(403)는 수평으로는 스케일링될 필요가 없으나, 도 4d의 우상 부분에 도시된 바와 같이 V스케일 = 0.5의 팩터만큼 수직으로 스케일링될 필요가 있다. 1/2 수평 해상도와 최대 수직 해상도를 구비하는 서브구획(예를 들어, 수직 에지 서브구획(401 EV )에 속하는 기본요소(403)는 수평으로는 H스케일 = 0.5의 팩터만큼 스케일링될 필요가 있으나, 도 4d의 좌하 부분에 도시된 바와 같이 수직으로는 스케일링될 필요가 없다. 1/2 수평 해상도와 1/2 수직 해상도를 구비하는 서브구획(예를 들어, 코너 서브구획(401 C )에 속하는 기본요소(403)는 도 4d의 우하 부분에 도시된 바와 같이 수평으로는 H스케일 = 0.5의 팩터에 의해 스케일링될 필요가 있고, 수직으로는 V스케일 = 0.5의 팩터에 의해 스케일링될 필요가 있다.
도 5a 내지 도 5b는 수평 및 수직 활성 픽셀 카운트가 서브구획에 의해 스케일링되는 구현의 장점을 그래픽으로 도시한다. 도 5a 및 도 5b는, 예를 들어, 그래픽스 파이프라인(330)에 따라 시스템(300)에 의해 처리되는 픽셀에 대한 다수의 렌더링 타깃(MRT)을 표현한다. 각 도 5a 및 도 5b에서 팩터(H스케일/V스케일)가 1440 픽셀 x 1440 픽셀의 스크린에 대한 여러 서브구획에 제시된다. 도 5a에서, 팩터(H스케일/V스케일)은 800 픽셀 x 800 픽셀의 스크린 영역을 고려하여 중심 서브구획에 대해 1/1이다. 2개의 320 픽셀 x 800 픽셀 영역을 고려하는 수직 에지 서브구획들에 대해 스케일 팩터 H스케일/V스케일은 1/0.5이다. 2개의 800 픽셀 x 320 픽셀 영역을 고려하는 수평 에지 서브구획들에 대해 이 스케일 팩터는 0.5/1이다. 4개의 320 픽셀 x 320 픽셀 영역을 고려하는 4개의 코너 서브구획들에 대해 이 스케일 팩터는 0.5/0.5이다. 에지 및 코너 서브구획의 감소된 처리 부하 때문에, 도 5a에서 좌측에 도시된 1440 픽셀 x 1440 픽셀 MRT의 처리 부하는 도 5a에서 우측에 도시된 1120 픽셀 x 1120 픽셀 MRT을 처리하는 것과 등가이다. 이에 따라, GPU(300)의 처리 부하는 수평 및 수직 활성 픽셀 카운트가 도 5a에 도시된 바와 같이 서브구획으로 스케일링되는 경우 정상의 거의 60%로 감소될 수 있다. 수평 및 수직 픽셀 카운트를 스케일링하는 것이 도 5b에서 약간 보다 현실감 있는 방식으로 도시된다. 그러나, 최종 결과는 종래의 처리에 비해 처리 부하에서 동일한, 대략 40% 감소일 수 있다.
메타데이터(MD)에서 각 서브구획에 대한 정보의 많은 상이한 가능한 구성이 있다. 예로서, 및 비 제한적으로, 하나의 구성에 따라 메타데이터는 도 5b에서와 같이 4개 중 수평 및 수직 방향으로 활성 픽셀 카운트를 지정한다. 이 표현은 각 서브구획에 대해 4 비트, 즉: H스케일(모두 4개 중에서 4, 3, 2, 또는 1 활성 픽셀 열에 대해 H스케일 1, 0.75, 0.5, 또는 0.25)에 대해 2 비트, 및 V스케일(모두 4개 중에서 4, 3, 2, 또는 1 활성 픽셀 행에 대해 V스케일 1, 0.75, 0.5, 또는 0.25)에 대해 2 비트를 사용한다.
도 5a에 도시된 스케일링의 유형을 구현하기 위해, 서브구획마다 단 2 비트만(H스케일 = 1 또는 0.5, V스케일 = 1 또는 0.5)이 요구된다.
스크린 서브구획마다 메타데이터를 저장하는 것은 상당히 유연하고, 다량의 데이터를 수반하지 않는다. 수치적인 예로서, 8192 32 픽셀 x 32 픽셀 서브구획을 포함하는 4k2k 디스플레이를 고려한다. 4개의 비트(1/2 바이트)가 각 서브구획에 요구되는 경우, 이 디스플레이에 대한 메타데이터(MD)는 4096 바이트만큼 적은 정보를 포함할 수 있다. 전술한 바와 같이, 본 발명의 측면은 픽셀 x 32 픽셀 서브구획을 수반하는 구현으로 제한되지 않는다. 더 크거나 또는 더 작은 서브구획도 사용될 수 있다. 서브구획의 사이즈에 대한 실제적인 선택은 래스터화 하드웨어에 의해 독립적으로 효율적으로 조절되는 파라미터를 구비할 수 있는 가장 작은 스크린 영역 요소이다.
거친 래스터화 타일의 해상도와 같은 스크린 래스터화의 하드웨어 구현의 특정 측면은 일부 하드웨어 구현에서 픽셀 서브구획에 대한 최소 적절한 해상도를 설정할 수 있다. 최적 메타데이터 포맷은 임의의 스크린 구성을 한정하는 유연성(flexibility)과 메타데이터에 요구되는 저장 사이즈 간에 트레이드오프(tradeoff)에 의존할 수 있고, 이는 요구되는 저장 유형과 구현의 성능을 결정할 수 있다. 예를 들어, 메타데이터는 대안적으로 동일한 스케일을 공유하는 여러 수평 또는 수직 스크린 범위로서 도 5a 및 도 5b에 도시된 바와 같이 간단한 패턴에 대해 저장될 수 있어서, 제한된 유연성을 초래하지만 하드웨어 레지스터에 사소하게 맞출(trivially fit) 수 있는 극히 작은 메타데이터를 초래할 수 있다.
메타데이터(MD)의 구성에 여러 개선이 가능하다. 일 개선에 따라 메타데이터는 메모리에서 픽셀 데이터의 표현의 효율을 증가시키는 방식으로 구성될 수 있다. 구체적으로, 각 서브구획의 데이터는 16 비트, 즉: H스케일에 대해 2 비트, V스케일에 대해 2 비트, 및 인덱스에 대해 4 비트일 수 있다. 이들 4 비트는, 각 상이한 해상도에 대해 하나의 어드레스씩, MRT 어드레스의 최대 16개의 세트를 인덱싱할 수 있다. 동일한 해상도의 모든 영역은 동일한 MRT 세트로 타깃화될 수 있다.
예를 들어, 일부 구현에서 메타데이터(MD)는, 렌더링 타깃(MRT)의 특성을 현재 한정하거나 또는 그래픽스 파이프라인(330)의 래스터화(340) 스테이지와 래스터화 후 스테이지(예를 들어, 픽셀 처리(350) 스테이지)를 제어하는 레지스터의 적어도 일부의 레지스터의 다수의 사본(copy)으로 인덱스를 인코딩할 수 있다. 이러한 구현에서, 인덱스를 사용하여 하드웨어 레지스터 값의 팔레트로부터 선택하고, 이 레지스터 값의 일부는 모든 MRT의 특성을 설정한다.
예를 들어, 메타데이터(MD)가 타일마다 4 비트인 경우, 이것은 16개의 값을 갖는 4 비트 인덱스를 저장할 수 있고, 렌더링 타깃 레지스터들 중 일부가 16개의 값의 팔레트를 보유하도록 확장되는 경우, 메타데이터 인덱스는 이 타일을 렌더링할 때 사용할 MRT 설정의 팔레트 엔트리를 선택할 수 있다. 일반적으로, GPU(304)의 하드웨어가 지원할 수 있는 팔레트가 얼마나 큰지에 따라 더 많거나 더 적은 개수의 비트를 갖는 인덱스를 저장할 수 있다.
예로서, 및 비 제한적으로, 이러한 구현의 최소 버전은, MRT 베이스 어드레스와 크기를 어레이로 저장하는 레지스터를 확장하고, 아마도 또한 동일한 인덱스에 의해 인덱싱될 수 있는 타일 변환의 오프셋과 스케일을 포함하는 일부 새로운 레지스터를 추가하는 것일 수 있다. 버퍼 포맷 등을 제어하는 다른 MRT 레지스터는 임의의 하나의 MRT의 모든 어레이 요소에 대해 일정하게 유지될 수 있다. 픽셀 셰이더(PS)는 렌더링 타깃 포맷을 알 필요가 있으므로, 거친 래스터화 타일마다 이 포맷을 변화시킬 필요가 없다.
이러한 구현은 메타데이터에 저장된 서브구획(거친 래스터화 타일 또는 아마도 더 큰 것)마다 하나 이상의 선택 인덱스를 갖는 렌더링 타깃 구성 레지스터 값의 하나 이상의 "팔레트"로서 메타데이터(MD)를 구현하는 것으로 고려될 수 있다. 예로서, 메타데이터(MD)는 GPU(304)의 하드웨어가 모든 렌더링 타깃에 대한 설정 블록을 룩업하는데 사용하는 팔레트 인덱스를 타일마다 저장할 수 있다. 이러한 구현에서 이 렌더링은 다음과 같이 요약될 수 있다:
1. "가상 32x32 픽셀" 거친 래스터화 타일에 거친 래스터화한다.
2. 각 가상 거친 타일에 대해, 메타데이터 인덱스를 룩업한다.
3. 메타데이터 인덱스를 사용하여 H스케일 및 V스케일을 룩업하고, 거친 래스터화 타일, 픽셀, 또는 샘플에 기본요소를 래스터화하기 전에 이들 H스케일과 V스케일을 기본요소에 적용한다.
4. 이후, 픽셀 셰이딩(352) 후 출력 동작(356) 동안, 메타데이터 인덱스를 다시 사용하여 모든 렌더링 타깃 어드레싱을 수행하는데 사용된 x 및 y 오프셋, 베이스 어드레스, 및 피치를 룩업한다.
H스케일을 선정하면, 예를 들어, GPU(304)의 하드웨어에서 각 거친 래스터화 타일이 타일(각 8x8 픽셀)의 4x4 어레이를 포함하는 경우, 예를 들어, 1.0, 0.75, 0.5, 0.25의 팔레트로부터 V스케일이 특히 유리하다. 이것은, 이들 4개의 스케일 팩터들이 하나의 거친 래스터화 타일을 정수 개의 타일에 모두 정확히 매칭하여, (상부에서 거친 래스터화 효율에서 유효 손실은 별도로 하고) 래스터화 파이프라인의 나머지를 최대 효율에서 동작하게 한다는 것을 의미한다.
나아가, 메타데이터(MD)는 맞춤 스위즐(custom swizzle)을 가능하게 하는 서브구획 오프셋을 한정하는 추가적인 16 비트를 포함할 수 있다. 서브구획 오프셋은 타일 사이즈와 승산되고, 이는 사용할 MRT의 영역을 결정하는데 사용된다. 본 명세서에 사용된 바와 같이, 그리고 일반적으로 이 기술 분야에 통상의 지식을 가진 자라면 이해하는 바와 같이, 컴퓨터 그래픽스에서 스위즐링이란 벡터 요소들을 재배열하는 것을 말한다. 선형 대수에서 스위즐은 벡터를 치환 행렬(permutation matrix)로 승산하는 것과 등가이다. 스위즐은 GPU(304)가 CPU(302)에 의해 정상적으로 수행되는 연산을 수행하는 그래픽스 유닛에서 일반 목적 처리(General Purpose Processing on Graphics Unit)(GPGPU) 애플리케이션에서 공통적이다.
렌더링 타깃으로 렌더링하는 상황에서 "스위즐링" 또는 "타일링(tiling)"이란 메모리에서 픽셀 순서를 재배열하는 것을 말한다. " 타일링" 또는 "표면 타일링"은 메모리에서 픽셀 정렬의 이런 유형의 재배열에 보다 일반적인 용어가 되고 있다. "스위즐링"은 이제는 보다 종종 텍스처에 의해 사용되는 모턴 정렬(Morton Ordering)이라고 알려진 특정 경우를 말하는데 사용된다. 메모리에서 픽셀 순서를 재배열하는 것은 고유하게 2차원 처리(다각형의 래스터화)로부터 1차원 타깃(메모리)으로 출력의 데이터 지역성(data locality)(일명 일관성(coherence))을 증가시키기 위해 수행된다. 예로서, 및 비 제한적으로, 렌더링 타깃이 픽셀의 행의 간단한 어레이로 저장되면, 키가 크고 얇은 삼각형을 래스터링한 출력은 각 행의 일부 픽셀이 많은 행에 걸쳐 확산될 수 있고, 이는 메모리 내 많은 캐시 라인을 히트(hit)할 수 있다. 메모리 내 픽셀을 재정렬하여 또한 수직으로 인근(nearby) 픽셀들을 메모리에서 가까이 놓을 뿐만 아니라 수평으로 인근 픽셀들을 메모리에서 가까이 놓는 것에 의해, 래스터화 스테이지(340)는 다각형 배향에 대해 더 우수한 데이터 지역성 및 보다 균일한 성능을 달성할 수 있다.
본 발명의 측면에 따라, 렌더링 타깃의 타일링 파라미터는 또한 메타데이터(MD), 예를 들어, 렌더링 타깃 베이스 어드레스와 피치 또는 별개의 인덱스와 동일한 인덱스에 의해 인덱싱될 수 있다.
다른 개선에 따라, 메타데이터(MD)는 전술한 인덱스를 통해 또한 상이한 픽셀 포맷들을 허용할 수 있다. 상이한 인덱스와 연관된 각 픽셀 포맷은 상이한 컬러와 Z 샘플 카운트, 상이한 컬러와 Z 샘플 위치, 상이한 개선된 품질 앤티-에일리어싱(enhanced quality anti-aliasing: EQAA) 파라미터, 또는 상이한 언롤링 파라미터, 또는 이들 중 2개 이상의 조합을 지정할 수 있다. 이런 유형의 개선을 수반하는 구현은 여러 상황에서 최대로 팩킹되기 전에 (또는 새로운 파면(wavefront)을 시작하기 전에) 픽셀 셰이더 파면을 킥오프(kick off)할 필요가 있을 수 있다.
이러한 개선은 레지스터를 파레트화하여 거친 래스터화 타일마다 변할 수 있는 컬러와 Z 샘플 카운트 및 다른 유사한 EQAA 설정을 제어하는 것을 수반한다. 이러한 개선을 수반하는 구현에서, 샘플 카운트를 제어하는 메타데이터 인덱스는 MRT 어드레싱을 제어하는 메타데이터 인덱스와 독립적인 옵션을 구비하는 것이 유리할 수 있다. 텍스처 구배 스케일 정정을 수반하는 구현에서, 텍스처 구배 정정 팩터는 또한 샘플 구성을 제어하는 동일한 인덱스에 의해서도 인덱싱될 수 있다.
도 4e는 메타데이터(MD)가 디스플레이 스크린(316)의 상이한 서브구획(401)들에 대해 상이한 활성 픽셀을 지정하도록 구성될 수 있는 방식의 일례를 도시한다. 도 4e에 도시된 예에서, 스크린(316)의 중심 서브구획은 최대 해상도를 가지도록 요구되고, 중심으로 더 먼 서브구획은 점진적으로 더 낮은 해상도를 구비한다. 예로서, 및 비 제한적으로, 활성 픽셀 카운트를 가변시키는 것을 수반하는 구현에서 메타데이터(MD)는 최대 해상도(4), 3/4 해상도(3), 1/2 해상도(2), 및 1/4 해상도(4)에 대응하는 H스케일 값과 V스케일 값을 한정할 수 있다. 예로서 및 비 제한적으로, 메타데이터(MD)는 메모리(308) 및/또는 그래픽스 메모리(328)에 테이블 형태로 저장될 수 있다.
일부 구현에서, 메타데이터는 디스플레이(316)의 광학기기와 FOV에 대해 고정된다. 이러한 메타데이터 구성의 일례는 도 4d에 개략적으로 도시된다. 대안적인 구현에서, 메타데이터는 눈을 추적하여 중심와 렌더링(foveal rendering)을 구현하도록 가변될 수 있다. 이러한 구현에서, 시스템(300)은, 사용자의 시선, 즉, 사용자의 눈이 응시하는 시선을 추적하고, 이 정보를 사용자가 응시하는 대응하는 스크린 위치와 관련시키는 하드웨어를 포함한다. 이러한 하드웨어의 일례는, 디스플레이 디바이스(316)의 스크린에 대해 알려진 위치에 있고 사용자의 일반 방향을 향하는 디지털 카메라를 포함할 수 있다. 디지털 카메라는 사용자 인터페이스(318) 또는 별개의 컴포넌트의 일부일 수 있다. CPU 코드(303 C )는 카메라로부터 이미지를 분석하여, (a) 사용자가 이미지에 있는지; (b) 사용자가 카메라를 향하는지; (c) 사용자가 스크린을 향하는지; (d) 사용자의 눈이 보이는지; (e) 사용자의 헤드에 대해 사용자의 눈의 동공의 배향; 및 (f) 카메라에 대해 사용자의 헤드의 배향을 결정하는 이미지 분석 소프트웨어를 포함할 수 있다. 스크린에 대해 카메라의 알려진 위치와 배향, 사용자의 헤드에 대해 사용자의 눈의 동공의 배향, 및 카메라에 대해 사용자의 헤드의 배향으로부터 이미지 분석 소프트웨어는 사용자가 스크린을 응시하는지 여부를 결정하고, 만약 그렇다면, 사용자가 응시하는 스크린의 부분(401)에 대한 스크린 공간 좌표를 결정할 수 있다. CPU 코드(303 c )는 이 스크린 좌표를 GPU 코드(303 G )에 전달할 수 있고, 이 GPU 코드는 부분(401)을 포함하는 서브구획 또는 서브구획들을 결정할 수 있다. GPU 코드는 도 4f에 도시된 바와 같이 부분(401)을 포함하는 서브구획 또는 서브구획들에서 픽셀 해상도가 가장 높고, 부분(401)으로부터 더 먼 서브구획에서 점진적으로 더 낮아지도록 메타데이터(MD)를 적절히 변경할 수 있다.
다시 도 3b를 참조하면, 서브구획마다 가변 활성 픽셀 카운트를 수반하는 구현에서, 각 서브구획에 대한 픽셀 처리(350)는 각 서브구획에 있는 활성 픽셀에 대해 대부분 정상적으로 처리된다. 픽셀 처리(350)는 일반적으로 래스터 동작(raster operation)(ROP)으로 알려진 것을 포함할 수 있는 일반적으로 렌더링 출력 동작(356)으로 종결된다. 래스터화 동작(ROP)은 간단히 다수의 렌더링 타깃(MRT) 중에서 각 렌더링 타깃에 대해 한번씩 픽셀당 다수회 실행된다. 출력 동작(356) 동안, 최종 픽셀 값(359)은, 프래그먼트를 병합하는 것, 스텐실을 적용하는 것, 깊이 테스트, 및 샘플마다 특정 처리 태스크를 적용하는 것을 선택적으로 포함할 수 있는 프레임 버퍼에서 결정될 수 있다. 최종 픽셀 값(359)은 모든 활성 렌더링 타깃(MRT)에 대해 수집된 출력을 포함한다. GPU(304)는 최종 픽셀 값(359)을 사용하여 완성된 프레임(360)을 구성하고, 이 완성된 프레임은 실시간으로 디스플레이 디바이스(316)의 픽셀에 선택적으로 디스플레이될 수 있다.
래스터화 처리 동작(340)은, 일반적으로 입력 텍스처 좌표, 컬러, 위치, 법선(normal), 및 다른 값을 포함하는, 정점 셰이더에 의해 정점마다 기록된 입력 파라미터를 보간하는 것을 일반적으로 포함한다. 파라미터 보간(346)은 렌더링되는 기본요소 내 각 픽셀 또는 샘플의 위치를 나타내는 무게중심 보간점 값(barycentric interpolant value)을 픽셀마다 생성할 것을 요구한다. 각 파라미터 컴포넌트는 기본요소 정점에 있는 값들 간에 보간되어, 픽셀 샘플 위치에서 값을 생성할 수 있다. 서브구획마다 가변 활성 픽셀 카운트를 수반하는 구현에서, 이들 무게중심 보간점 값은 서브구획마다 가변 픽셀 구성을 고려하도록 정정될 수 있다.
픽셀 처리 동작(350)은 일반적으로 하나 이상의 픽셀 셰이더(PS)에 의해 일부 범위에 및 텍스처 유닛(306)에 의해 일부 범위에 수행될 수 있는 텍스처 맵핑 동작(354)을 포함한다. 픽셀 셰이더 연산(352)은, 스크린 공간 좌표(XY)로부터 텍스처 좌표(UV)를 계산하고, 텍스처 좌표를 텍스처 동작(354)으로 송신하고, 텍스처 데이터(TX)를 수신하는 것을 포함한다. 텍스처 좌표(UV)는 임의의 방식으로 스크린 공간 좌표(XY)로부터 계산될 수 있으나, 일반적으로 보간된 입력 값으로부터 또는 종종 이전의 텍스처 동작의 결과로부터 계산된다. 구배(Gr)는 종종 텍스처 유닛(306)(텍스처 동작 하드웨어 유닛)에 의해 텍스처 좌표의 쿼드(quad)로부터 직접 계산되지만, 선택적으로 텍스처 유닛(306)에 의존하지 않고 픽셀 셰이더 연산(352)에 의해 명시적으로 계산되고 나서 텍스처 동작(354)으로 전달되어 디폴트 계산이 수행될 수 있다.
텍스처 동작(356)은 일반적으로 픽셀 셰이더(PS)와 텍스처 유닛(306)의 일부 조합에 의해 수행될 수 있는 다음 스테이지를 포함한다. 첫째, 픽셀 위치(XY)마다 하나 이상의 텍스처 좌표(UV)가 생성되고 이는 각 텍스처 맵핑 동작을 위한 좌표 세트를 제공하는데 사용된다. 구배값(Gr)은 텍스처 좌표(UV)로부터 계산된다. 픽셀마다 구배 스케일 팩터(Sc)는 대응하는 구배값(Gr)을 대응하는 조절된 구배값(Gr')으로 조절하도록 구성된다. 구배 스케일 팩터(Sc)는 상이한 픽셀 해상도를 구비하는 디스플레이 디바이스(316)의 구역들 간에 이들 구배값을 원활히 전이하도록 구배값(Gr)을 변경할 수 있다. 서브구획마다 가변 활성 픽셀 카운트를 수반하는 구현에서, 구배(Gr)는 스케일 팩터(H스케일 및 V스케일)의 역(inverse)으로 정정될 수 있고, 또는 픽셀 구성 메타데이터(MD)로부터 유도된 변환에 기초하여 정정될 수 있다.
특정 그래픽스 애플리케이션에서 비트맵된 텍스처(bitmapped texture)가 다각형 상에 "페인팅(painted)"된다. 이러한 경우에 출력 디바이스에 의해 드로잉되는 각 픽셀 값은 텍스처로부터 샘플링된 하나 이상의 픽셀로부터 결정된다. 본 명세서에 사용된 바와 같이, 비트맵은 일반적으로 컴퓨터 모니터, 페이퍼, 또는 다른 디스플레이 디바이스 상에 픽셀의 일반적으로 직사각형 그리드(grid) 또는 컬러 점을 나타내는 데이터 파일 또는 구조를 말한다. 각 픽셀의 컬러는 개별적으로 한정된다. 예를 들어, 컬러 픽셀은 3 바이트- 적색, 녹색 및 청색에 대해 각 1 바이트에 의해 한정될 수 있다. 비트맵은 일반적으로 디스플레이의 비디오 메모리에 저장될 수 있기 때문에 아마도 동일한 포맷으로 스크린 상에 디스플레이된 이미지에 비트마다 대응하거나 또는 디바이스에 독립적인 비트맵일 수 있다. 비트맵은 픽셀에서 이미지의 폭과 높이, 및 픽셀마다 비트의 개수를 특징으로 하고, 이 비트의 개수는 픽셀이 나타낼 수 있는 컬러의 개수를 결정한다.
텍스처 비트맵을 표면으로 전달하는 공정은 종종 (또한 밉맵(mipmap)으로도 알려진) 텍스처 MIP 맵의 사용을 수반한다. 문자 "MIP"는 그 이름에서 라틴 어구 "multum in parvo"의 두문자이고, 이는 "작은 공간에 많이"를 의미한다. 이러한 밉맵은 렌더링 속력을 증가시키고 아티팩트를 감소시키도록 의도된 메인 텍스처를 동반하는 비트맵 이미지의 미리-계산된, 최적화된 집합이다.
밉맵 세트의 각 비트맵 이미지는 메인 텍스처의 버전이지만, 특정 감소된 상세 레벨(level of detail: LOD)에 있다. 메인 텍스처는 뷰가 최대로 상세로 렌더링하기에 충분할 때 여전히 사용될 수 있으나, 최종 이미지를 렌더링하는 그래픽스 하드웨어는, 텍스처가 소정 거리에서 보았을 때, 또는 작은 사이즈에서 있을 때, 적절한 밉맵 레벨로 스위칭한다(또는 2개의 최근접 레벨들 사이를 보간한다). 처리되는 텍스처 픽셀("텍셀")의 개수는 간단한 텍스처에서보다 훨씬 더 작아질 수 있으므로 렌더링 속력은 증가한다. 밉맵 이미지는 효과적으로 이미 앤티-에일리어싱되어, 실시간 렌더링 하드웨어의 부담을 일부 덜어주기 때문에 아티팩트가 감소될 수 있다.
밉맵 레벨들 사이를 혼합하는 것은 일반적으로 일정 형태의 텍스처 필터링을 수반한다. 본 명세서에 사용된 바와 같이, 텍스처 필터링은 텍셀(텍스처의 픽셀)을 맵핑하여 3D 객체를 지시하는데 사용되는 방법을 말한다. 간단한 텍스처 필터링 알고리즘은 객체에서 한 점을 취하고, 이 위치에 가장 가까운 텍셀을 룩업할 수 있다. 그 결과 이 점은 이 하나의 텍셀로부터 컬러를 갖는다. 이 간단한 기술은 종종 최근접 이웃 필터링(nearest neighbor filtering)이라고 언급된다. 보다 복잡한 기술은 점마다 1을 초과하는 텍셀을 결합한다. 가장 종종 사용되는 알고리즘은 실제로 밉맵을 사용하는 이중 선형(bilinear) 필터링 및 3중 선형(trilinear) 필터링이다. 2차(quadratic) 또는 3차(cubic) 필터링과 같은 이방성 필터링과 보다 높은 방법은 훨씬 더 높은 품질 이미지를 초래한다.
텍스처는 일반적으로 정사각형이고, 2의 멱수와 동일한 변의 길이를 구비하여야 한다. 예를 들어, 텍스처가 256 x 256 픽셀의 기본 사이즈를 구비하는 경우, 연관된 밉맵 세트는, 각 이미지가 이전의 이미지의 사이즈의 절반인, 8개의 이미지의 시리즈, 즉: 128×128 픽셀, 64×64, 32×32, 16×16, 8×8, 4×4, 2×2, 및 1×1 (단일 픽셀)을 포함할 수 있다. 예를 들어, 이 텍스처가 스크린 공간의 40×40 픽셀 부분 상으로 맵핑되면, 64×64 및 32×32 밉맵의 보간이 사용될 수 있다. 본 명세서에 사용된 바와 같이 "스크린 공간"이라는 용어는 일반적으로 그래픽스 파이프라인에서 디스플레이 버퍼로 전달되는 좌표 세트를 말한다.
적절한 밉맵 레벨을 결정하는 공정의 핵심 동작은 스크린 공간(종종 XY 좌표 공간이라고 언급됨)으로부터 픽셀 위치의 대응하는 영역에 대한 텍스처 좌표 공간(종종 UV 좌표 공간이라고 언급됨)에서 커버되는 영역을 결정하는 것을 수반한다. 일반적인 용어로, 보간된 텍스처 UV 좌표의 스크린 공간 구배(du_dx, dv_dx, du_dy, dv_dy)는 장면의 관련 부분에서 XY 공간 픽셀 위치에서 샘플링된 U 및 V 값으로부터 계산된다. 일부 구현에서, 단일 텍스처 좌표 구배는, (종종 du_dx, dv_dx의 크기라고도 언급되는) 고정된 스크린 Y 좌표를 보유하는 스크린 X의 변화에 대해서 및 (종종 du_dy, dv_dy의 크기라고도 언급되는) 고정된 스크린 X 좌표를 보유하는 스크린 Y의 변화에 대해서는 모든 텍스처 좌표의 구배의 크기를 계산하는 것에 의해 각 스크린 공간 방향 X 및 Y에 대해 계산된다. 비-이방성 텍스처 룩업을 위해, 이들 2개 중에서 더 큰 크기를 갖는 구배가 상세 레벨(level of detail: LOD)을 선택하는데 사용된다. 이방성 텍스처링을 위해, 더 작은 크기의 구배는 (LOD)를 선택하는데 사용되고, 텍스처는 더 큰 크기의 구배에 대응하는 라인으로 샘플링된다.
또한 상기 계산은 1, 2, 3, 또는 이를 초과하는 개수의 텍스처 좌표의 차원(dimension)으로 일반화될 수 있는 것으로 이해된다. 일반적인 하드웨어는 텍스처의 차원에 따라 U-공간에서 1D 차원 또는 UV-공간에서 2D 차원 또는 UVW-공간에서 3D 차원을 계산한다. 따라서, 본 발명의 측면은 2개의 텍스처 좌표의 차원을 수반하는 구현으로 제한되지 않는다.
픽셀마다 구배 스케일 정정
일부 구현에서, 텍스처 구배(du_dx, dv_dx, du_dy, dv_dy)는 디스플레이에 걸쳐 픽셀 해상도의 불연속성을 고려하기 위하여 픽셀마다 스케일링된다. 기본 개념은 도 6a 내지 도 6c에 도시된다.
도 6a 및 도 6b에 도시된 바와 같이 디스플레이 영역은 상이한 픽셀 해상도의 2개 이상의 구역(601, 602, 603, 604, 605, 606, 607, 608, 및 609)으로 분할될 수 있다. 각 구역은, 예를 들어, 헤드 마운트 디스플레이(HMD)의 경우 디스플레이의 구역이 이루는 입체각과 관련된 해상도를 구비할 수 있다. 예로서, 및 비 제한적으로, 중심 구역(605)은 공칭 또는 표준 픽셀 해상도(R0)를 구비할 수 있다. 에지 구역(602, 604, 606, 608)은 표준 해상도의 절반(1/2 R0)을 구비할 수 있고, 예를 들어, 이들 구역에서 픽셀의 절반은 "턴오프"될 수 있고 또는 디스플레이에 렌더링되지 않을 수 있다. 코너 구역(601, 603, 607, 및 609)은 표준 해상도의 1/4(1/4 R0)를 구비할 수 있고, 예를 들어, 이들 구역에서 픽셀의 3개의 1/4이 디스플레이에서 "턴오프"될 수 있고 또는 렌더링되지 않을 수 있다. 도 6b는 각 구역의 해상도에 따라 상이한 사이즈로 드로잉된 상이한 구역을 도시한다.
구배는 또한 인접한 구역들 사이에 경계 부근의 픽셀에 대해 조절될 필요가 있다. 예를 들어, 도 6c에서 구획들 사이에 경계를 표시하는 라인은 제거되었다. 그러나, 이웃 구역(neighboring region)들 사이에 해상도의 불연속성이 경계를 보이게 한다. GPU는 구역들 사이에 경게 부근 픽셀에 대한 구배를 조절하여 불연속성을 평활화하여, 이 불연속성을 덜 보이게 하도록 구성될 수 있다. 예를 들어, 도 6d에 도시된 바와 같이, 도 6c에서 행(D-D')에서 최대 해상도 중심 구역(605)에 있는 선택된 픽셀(611, 612)에 대한 수평 구배는 절반 해상도 에지 구역(604, 606) 쪽으로 점진적으로 흐러지도록 스케일링될 수 있다.
대안적으로, 절반 해상도 에지 구역(604, 606)에서 구배는 최대 해상도 중심 구역(605) 쪽으로 점진적으로 더 샤프하도록 스케일링될 수 있다.
상이한 해상도를 고려하도록 구배의 스케일링을 일반화하는 것은 도 6e를 참조하여 이해될 수 있다. UV 공간에서 구배((du_dx, dv_dx), (du_dy, dv_dy))는 정상적으로 계산된다. 구배는 픽셀마다 구배 스케일 팩터(스케일X, 스케일Y)로 승산되어, 텍스처 유닛이 적절한 밉맵 레벨을 결정하는데 사용되는 최종 조절된 구배((du_dx', dv_dx'), (du_dy',dv_dy'))를 생성할 수 있다.
du_dx' = du_dx * 스케일X
dv_dx' = dv_dx * 스케일X
du_dy' = du_dy * 스케일Y
dv_dy' = dv_dy * 스케일Y
구배 스케일 팩터(스케일X 및 스케일Y)는 텍스처 유닛(306)으로 전달될 수 있고, 이 텍스처 유닛은 이들 팩터를 사용하여 최종 조절된 구배를 계산할 수 있다.
구배 스케일 팩터(스케일X, 스케일Y)에 대한 적절한 값은 상이한 픽셀 해상도의 이웃 구역들의 경계에 근접한 선택된 픽셀에 적용된 구배 스케일 팩터 값을 반복하는 것에 의해 경험적으로 결정될 수 있다. 구배 스케일 팩터에 대한 적절한 값의 범위는 이웃 구역들의 상대적인 픽셀 해상도로부터 결정될 수 있다. 예를 들어, 행(D-D')을 따라 픽셀 해상도는 구역(604)에서 1/2 R 로부터 구역(605)에서 R로 변하고 다시 구역(606)에서 1/2 R 로 변한다. 구배 스케일 값(스케일X)은 구역(604606)과의 경계에 근접한 구역(605)에서 여러 픽셀에 걸쳐 대략 1로부터 대략 2 로 전이할 수 있다. 유사하게, 구배 스케일 값(스케일X)은 구역(607609)과의 경계에 근접한 구역(608)에서 여러 픽셀에 걸쳐 대략 1의 값으로부터 대략 2의 값으로 전이할 수 있다. 구배 스케일 팩터는 여러 픽셀, 예를 들어, 대략 4개 내지 8개의 픽셀에 걸쳐 2개의 값들 사이에 변할 수 있다.
텍스처 유닛(306)은 최종 조절된 구배를 사용하여 최종 조절된 구배로부터 하나 이상의 기본요소에 적용할 적절한 LOD를 선택할 수 있다.
추가적인 측면
본 발명의 추가적인 측면은, 그래픽스 처리 방법으로서,
가상 공간에 있는 장면에 대한 하나 이상의 정점을 나타내는 데이터를 수신하는 단계;
상기 정점에 기본요소 조립을 수행하여 가상 공간으로부터, 복수의 픽셀을 포함하는 상기 디스플레이 디바이스의 스크린 공간에서 상기 장면의 뷰포트 상으로 상기 정점의 투영을 연산하는 단계로서, 상기 복수의 픽셀은 복수의 서브구획으로 서브 분할된, 상기 연산하는 단계;
스크린 공간 좌표로 변환된 각 기본요소에 대해, 상기 복수의 픽셀 중 어느 픽셀이 각 기본요소의 일부인지를 결정하는 단계;
각 기본요소에 거친 래스터화를 수행하여 상기 기본요소가 오버랩하는 서브구획 또는 서브구획들이 어느 것인지를 결정하는 단계;
기본요소가 오버랩하는 상기 서브구획과 연관된 메타데이터를 수신하는 단계로서, 상기 메타데이터는 상기 서브구획에 대한 픽셀 해상도를 결정하는, 상기 메타데이터를 수신하는 단계; 및
상기 서브구획에 대한 픽셀을 처리할 때 상기 메타데이터를 사용하여 2개의 상이한 서브구획에 있는 상기 장면 부분들이 상이한 픽셀 해상도를 가지는 방식으로 상기 디스플레이 디바이스에 디스플레이되는 상기 장면의 상기 뷰포트를 위한 최종 픽셀 값을 생성하는 단계를 포함한다.
본 발명의 추가적인 측면은 디스플레이 디바이스의 스크린의 상이한 구역들이 상이한 픽셀 해상도를 구비하는 그래픽스 처리 방법을 포함한다.
다른 추가적인 측면은, 실행될 때, 상기 방법들 중 하나 또는 둘 모두를 구현하는 컴퓨터 실행가능한 명령어를 포함하는 컴퓨터-판독가능한 매체이다.
추가적인 측면은 상기 방법들 중 하나 또는 둘 모두를 수행하는 컴퓨터-판독가능한 명령어를 운반하는 전자기 신호 또는 다른 신호이다.
다른 추가적인 측면은 통신 네트워크로부터 다운로드가능하고/하거나 컴퓨터-판독가능한 매체 및/또는 마이크로프로세서-실행가능한 매체에 저장된 컴퓨터 프로그램 제품으로서, 상기 방법들 중 하나 또는 둘 모두를 구현하는 프로그램 코드 명령어를 포함하는 것을 특징으로 하는 컴퓨터 프로그램 제품이다.
또 다른 추가적인 다른 측면은 상기 방법들 하나 또는 둘 모두를 구현하도록 구성된 그래픽스 처리 시스템이다.
상기는 본 발명의 바람직한 실시예의 전체 설명이지만, 여러 대안, 변형 및 균등물이 사용될 수 있다. 그러므로, 본 발명의 범위는 상기 설명에 의해 결정되어서는 안되고, 최대 균등범위와 함께 첨부된 청구범위에 의해 결정되어야 한다. 바람직하든 아니든 상관없이, 본 명세서에 설명된 임의의 특징은, 바람직한 것이든 아니든 상관없이 본 명세서에 설명된 다른 특징과 결합될 수 있다. 이후 청구범위에서, 단수 개체는 명시적으로 달리 언급된 것을 제외하고는 이 단수 개체 이후에 나오는 하나 이상의 항목의 양을 말한다. 첨부된 청구범위는, 수단 플러스 기능 한정이 어구 "~하는 수단"을 사용하여 주어진 청구항에서 명시적으로 언급되지 않는 한, 이 수단 플러스 기능 한정을 포함하는 것으로 해석되어서는 안 된다.

Claims (41)

  1. 디스플레이 디바이스에 결합된 그래픽스 처리 유닛을 구비하는 그래픽스 처리 시스템으로 그래픽스를 처리하는 방법으로서,
    가상 공간에 있는 장면에 대한 하나 이상의 정점을 나타내는 데이터를 수신하는 단계;
    상기 정점에 기본요소 조립을 수행하여, 가상 공간으로부터, 복수의 픽셀을 포함하는 상기 디스플레이 디바이스의 스크린 공간에 있는 상기 장면의 뷰포트 상으로 상기 정점의 투영을 연산하는 단계;
    스크린 공간 좌표로 변환된 각 기본요소에 대해, 상기 복수의 픽셀 중 어느 픽셀이 각 기본요소의 일부인지를 결정하는 단계;
    각 기본요소에 대해 거친 래스터화(coarse rasterization)를 수행하여 상기 기본요소가 오버랩하는 서브구획 또는 서브구획들이 어느 것인지를 결정하는 단계;
    기본요소가 오버랩하는 상기 서브구획과 연관된 메타데이터를 수신하는 단계; 및
    상기 서브구획에 대한 픽셀을 처리할 때 상기 메타데이터를 사용하여 2개의 상이한 서브구획에 있는 상기 장면 부분들이 상이한 픽셀 해상도를 구비하는 방식으로 상기 디스플레이 디바이스에 디스플레이되는 장면의 상기 뷰포트를 위한 최종 픽셀 값을 생성하는 단계를 포함하고,
    상기 복수의 픽셀은 복수의 서브구역으로 서브 분할되며,
    상기 메타데이터는 상기 서브구획에 대한 픽셀 해상도를 결정하는, 그래픽스를 처리하는 방법.
  2. 제1항에 있어서, 상기 메타데이터는 상기 서브구획에서 활성 픽셀의 개수를 지정하고, 상기 서브구획에 대한 상기 픽셀을 처리할 때 상기 메타데이터를 사용하여 상기 최종 픽셀 값을 생성하는 동작은 상기 서브구획에 대한 상기 지정된 개수의 활성 픽셀에 대해서만 픽셀 처리를 수행하는 동작을 포함하는, 그래픽스를 처리하는 방법.
  3. 제2항에 있어서, 상기 메타데이터는 스케일링 파라미터를 포함하고, 상기 서브구획에 대한 픽셀을 처리할 때 상기 메타데이터를 사용하는 동작은 상기 서브구획에 대한 상기 픽셀 해상도를 고려하도록 스크린 공간 내 정점 위치 및 상기 기본요소에 대한 텍스처 공간 구배를 조절하는 동작을 포함하는, 그래픽스를 처리하는 방법.
  4. 제2항에 있어서, 상기 메타데이터는 상기 서브구획에 대한 픽셀 해상도가 표준 해상도일 때 상기 서브구획에 대한 모든 픽셀이 활성 픽셀인 것으로 지정하고, 상기 메타데이터는 상기 서브구획에 대한 픽셀 해상도가 표준 해상도 미만인 경우 상기 서브구획에 대한 일부 픽셀이 활성 픽셀인 것으로 지정하는, 그래픽스를 처리하는 방법.
  5. 제2항에 있어서, 상기 메타데이터는 상기 서브구획이 상기 스크린 공간의 중심에 또는 중심 부근에 있을 때 표준 해상도를 지정하고, 상기 메타데이터는 상기 서브구획이 상기 스크린 공간의 에지 또는 코너에 또는 그 부근에 위치될 때 표준 해상도 미만을 지정하는, 그래픽스를 처리하는 방법.
  6. 제2항에 있어서, 상기 메타데이터는 하나 이상의 스케일링 파라미터를 포함하고, 상기 서브구획에 대한 픽셀을 처리할 때 상기 메타데이터를 사용하는 동작은 상기 서브구획에 대한 픽셀 해상도를 고려하도록 스크린 공간 내 정점의 위치, 및 상기 기본요소에 대한 텍스처 공간 구배와 파라미터 무게중심 보간점 값(barycentric interpolant value)을 조절하는 동작을 포함하고, 텍스처 공간 구배를 조절하는 동작은 상기 복수의 서브구획의 이웃 서브구획에 대해 상이한 픽셀 해상도를 고려하도록 텍스처를 적용할 때 픽셀마다 구배 스케일 정정을 수행하는 동작을 포함하는, 그래픽스를 처리하는 방법.
  7. 제1항에 있어서, 상기 디스플레이 디바이스는 90도 이상의 FOV(field of view)를 특징으로 하는 그래픽스를 처리하는 방법.
  8. 제1항에 있어서, 상기 디스플레이 디바이스는 헤드-마운트 디스플레이 디바이스인, 그래픽스를 처리하는 방법.
  9. 제1항에 있어서, 상기 스크린 공간은 곡선 스크린에 대응하는, 그래픽스를 처리하는 방법.
  10. 제1항에 있어서, 사용자가 응시하는 상기 디스플레이 디바이스의 스크린 부분을 결정하는 단계를 더 포함하고, 상기 메타데이터는 상기 사용자가 응시하는 부분을 포함하는 스크린의 하나 이상의 서브구획에 대한 픽셀 해상도가 가장 높도록 상기 픽셀 해상도를 가변시키도록 구성된, 그래픽스를 처리하는 방법.
  11. 제1항에 있어서, 상기 메타데이터는 상기 디스플레이 디바이스의 주어진 광학기기와 주어진 FOV에 대해 정적인, 그래픽스를 처리하는 방법.
  12. 제1항에 있어서, 상기 메타데이터는 상기 서브구획에서 활성 픽셀의 개수를 지정하고, 상기 서브구획에 대해 픽셀을 처리할 때 상기 메타데이터를 사용하여 최종 픽셀 값을 생성하는 동작은 상기 서브구획에 대해 지정된 개수의 활성 픽셀에 대해서만 픽셀 처리를 수행하는 동작을 포함하며, 상기 메타데이터는 상기 복수의 서브구획의 상이한 서브구획들에 대해 상이한 개수의 활성 픽셀을 지정하도록 구성된, 그래픽스를 처리하는 방법.
  13. 제1항에 있어서, 상기 복수의 서브구획의 각 서브구획은 상기 스크린 공간의 고정된 사이즈 부분에 대응하는, 그래픽스를 처리하는 방법.
  14. 제1항에 있어서, 상기 복수의 서브구획의 각 서브구획은 상기 스크린 공간의 가변 사이즈 부분에 대응하는, 그래픽스를 처리하는 방법.
  15. 제1항에 있어서, 상기 메타데이터는 수직 및 수평 방향으로 픽셀의 범위에 의해 상기 복수의 서브구획의 각 서브구획을 한정하는, 그래픽스를 처리하는 방법.
  16. 제1항에 있어서, 상기 메타데이터는 일부 사이즈의 거친 래스터화 타일에 의해 상기 복수의 서브구획의 각 서브구획을 한정하는, 그래픽스를 처리하는 방법.
  17. 제1항에 있어서, 출력 스크린 영역들은 상기 서브구획 내 규칙성과 픽셀 구성 메타데이터를 이용하는 것에 의해 더 작은 메모리 풋프린트로 팩킹되는, 그래픽스를 처리하는 방법.
  18. 제1항에 있어서, 출력 스크린 영역들은 출력 메모리 오프셋을 인코딩하는 추가적인 정보를 상기 메타데이터에 매립하는 것에 의해 더 작은 메모리 풋프린트로 팩킹되는, 그래픽스를 처리하는 방법.
  19. 제1항에 있어서, 상기 복수의 서브구획의 특정 서브구획과 연관된 상기 메타데이터 부분은 상기 특정 서브구획에 대해 활성 픽셀의 개수를 지정하는 정보를 포함하는, 그래픽스를 처리하는 방법.
  20. 제1항에 있어서, 상기 메타데이터는 메모리 및/또는 그래픽스 메모리에 테이블의 형태로 저장되는, 그래픽스를 처리하는 방법.
  21. 그래픽스 처리 유닛을 포함하는 그래픽스를 처리하는 시스템으로서, 상기 그래픽스 처리 유닛은,
    가상 공간에 있는 장면에 대한 하나 이상의 정점을 나타내는 데이터를 수신하는 동작;
    상기 정점에 기본요소 조립을 수행하여, 가상 공간으로부터, 복수의 서비구획으로 서브 분할된 복수의 픽셀을 포함하는 디스플레이 디바이스의 스크린 공간에 있는 상기 장면의 뷰포트 상으로 상기 정점의 투영을 연산하는 동작;
    상기 복수의 픽셀 중 어느 픽셀이 스크린 공간 좌표로 변환된 각 기본요소의 일부인지를 결정하는 동작;
    각 기본요소에 대한 거친 래스터화를 수행하여 상기 기본요소가 오버랩하는 서브구획 또는 서브구획들을 결정하는 동작;
    기본요소가 오버랩하는 상기 서브구획과 연관된 메타데이터를 수신하는 동작; 및
    상기 서브구획에 대한 픽셀을 처리할 때 상기 메타데이터를 사용하여 2개의 상이한 서브구획에 있는 상기 장면 부분들이 상이한 픽셀 해상도를 구비하는 방식으로 상기 디스플레이 디바이스에 디스플레이되는 상기 장면의 상기 뷰포트를 위한 최종 픽셀 값을 생성하는 동작을 수행하도록 구성되고,
    상기 메타데이터는 상기 서브구획에 대한 픽셀 해상도를 결정하는, 그래픽스를 처리하는 시스템.
  22. 제21항에 있어서, 상기 메타데이터는 상기 서브구획에서 활성 픽셀의 개수를 지정하고, 상기 그래픽스 처리 유닛은 상기 서브구획에 대한 픽셀을 처리할 때 상기 메타데이터를 사용하여 상기 서브구획에 대한 지정된 개수의 활성 픽셀에 대해서만 픽셀 처리를 수행하는 것에 의해 상기 최종 픽셀 값을 생성하도록 구성된, 그래픽스를 처리하는 시스템.
  23. 제22항에 있어서, 상기 메타데이터는 상기 서브구획에 대한 픽셀 해상도가 표준 해상도일 때 상기 서브구획에 대한 모든 픽셀이 활성 픽셀인 것으로 지정하고, 상기 메타데이터는 상기 서브구획에 대한 픽셀 해상도가 표준 해상도 미만일 때 상기 서브구획에 대한 일부 픽셀이 활성 픽셀인 것으로 지정하는, 그래픽스를 처리하는 시스템.
  24. 제22항에 있어서, 상기 메타데이터는 스케일링 파라미터를 포함하고, 상기 GPU는 상기 서브구획에 대한 상기 픽셀 해상도를 고려하도록 스크린 공간 내 정점의 위치, 및 상기 기본요소에 대한 텍스처 공간 구배와 파라미터 무게중심 보간점 값(barycentric interpolant value)을 조절하는 것에 의해 상기 서브구획에 대한 픽셀을 처리할 때 상기 메타데이터를 사용하도록 구성되며, 상기 GPU는 상기 복수의 서브구획의 이웃 서브구획에 대한 상이한 픽셀 해상도를 고려하도록 텍스처를 적용할 때 픽셀마다 구배 스케일 정정을 수행하는 것에 의해 상기 텍스처 공간 구배를 조절하도록 구성된, 그래픽스를 처리하는 시스템.
  25. 제21항에 있어서, 상기 메타데이터는 상기 서브구획이 상기 스크린 공간의 중심에 또는 중심 부근에 위치될 때 표준 해상도를 지정하고, 상기 메타데이터는 상기 서브구획이 상기 스크린 공간의 에지 또는 코너에 또는 그 부근에 위치될 때 표준 해상도 미만을 지정하는, 그래픽스를 처리하는 시스템.
  26. 제21항에 있어서, 상기 디스플레이 디바이스는 90도 이상의 FOV를 특징으로 하는 그래픽스를 처리하는 시스템.
  27. 제21항에 있어서, 상기 디스플레이 디바이스는 헤드-마운트 디스플레이 디바이스인, 그래픽스를 처리하는 시스템.
  28. 제21항에 있어서, 상기 스크린 공간은 곡선 스크린에 대응하는, 그래픽스를 처리하는 시스템.
  29. 제21항에 있어서, 상기 디스플레이 디바이스를 더 포함하는 그래픽스를 처리하는 시스템.
  30. 제21항에 있어서, 상기 시스템은 사용자가 응시하는 상기 디스플레이 디바이스의 스크린 부분을 결정하도록 구성되고, 상기 메타데이터는 상기 사용자가 응시하는 부분을 포함하는 스크린의 하나 이상의 서브구획에 대한 픽셀 해상도가 가장 높도록 상기 픽셀 해상도를 가변시키도록 구성된, 그래픽스를 처리하는 시스템.
  31. 제21항에 있어서, 상기 시스템은 상기 디스플레이 디바이스의 주어진 광학기기와 FOV에 대해 정적 메타데이터를 사용하도록 구성된, 그래픽스를 처리하는 시스템.
  32. 제21항에 있어서, 상기 메타데이터는 상기 서브구획에서 활성 픽셀의 개수를 지정하고, 상기 그래픽스 처리 유닛은 상기 서브구획에 대한 픽셀을 처리할 때 상기 메타데이터를 사용하여 상기 서브구획에 대한 지정된 개수의 활성 픽셀에 대해서만 픽셀 처리를 수행하는 것에 의해 최종 픽셀 값을 생성하도록 구성되며, 상기 메타데이터는 상기 복수의 서브구획의 상이한 서브구획들에 대해 상이한 개수의 활성 픽셀을 지정하도록 구성된, 그래픽스를 처리하는 시스템.
  33. 제21항에 있어서, 상기 복수의 서브구획의 각 서브구획은 상기 스크린 공간의 고정된 사이즈 부분에 대응하는, 그래픽스를 처리하는 시스템.
  34. 제21항에 있어서, 상기 복수의 서브구획의 각 서브구획은 상기 스크린 공간의 가변 사이즈 부분에 대응하는, 그래픽스를 처리하는 시스템.
  35. 제21항에 있어서, 상기 메타데이터는 수직 및 수평 방향으로 픽셀의 범위에 의해 상기 복수의 서브구획의 각 서브구획을 한정하는, 그래픽스를 처리하는 시스템.
  36. 제21항에 있어서, 상기 메타데이터는 일부 사이즈의 거친 래스터화 타일에 의해 상기 복수의 서브구획의 각 서브구획을 한정하는, 그래픽스를 처리하는 시스템.
  37. 제21항에 있어서, 출력 스크린 영역들은 상기 서브구획 내 규칙성과 픽셀 구성 메타데이터를 이용하는 것에 의해 더 작은 메모리 풋프린트로 팩킹되는, 그래픽스를 처리하는 시스템.
  38. 제21항에 있어서, 출력 스크린 영역들은 출력 메모리 오프셋을 인코딩하는 추가적인 정보를 상기 메타데이터에 매립하는 것에 의해 더 작은 메모리 풋프린트로 팩킹되는, 그래픽스를 처리하는 시스템.
  39. 제21항에 있어서, 상기 복수의 서브구획의 특정 서브구획과 연관된 상기 메타데이터 부분은 상기 특정 서브구획에 대한 활성 픽셀의 개수를 지정하는 정보를 포함하는, 그래픽스를 처리하는 시스템.
  40. 제21항에 있어서, 상기 메타데이터는 메모리 및/또는 그래픽스 메모리에 테이블 형태로 저장되는, 그래픽스를 처리하는 시스템.
  41. 실행될 때, 제1항의 방법을 구현하는 컴퓨터 실행가능한 명령어들을 포함하는 비-일시적인 컴퓨터-판독가능한 매체.
KR1020167027104A 2014-04-05 2015-03-23 래스터화 파라미터를 변경하는 것에 의해 스크린 위치에 따른 유효 해상도의 가변 KR101862182B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/246,063 US9710881B2 (en) 2014-04-05 2014-04-05 Varying effective resolution by screen location by altering rasterization parameters
US14/246,063 2014-04-05
PCT/US2015/021978 WO2015153167A1 (en) 2014-04-05 2015-03-23 Varying effective resolution by screen location by altering rasterization parameters

Publications (2)

Publication Number Publication Date
KR20160130425A true KR20160130425A (ko) 2016-11-11
KR101862182B1 KR101862182B1 (ko) 2018-06-29

Family

ID=54210195

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020167027104A KR101862182B1 (ko) 2014-04-05 2015-03-23 래스터화 파라미터를 변경하는 것에 의해 스크린 위치에 따른 유효 해상도의 가변

Country Status (5)

Country Link
US (4) US9710881B2 (ko)
EP (1) EP3129976B1 (ko)
JP (2) JP6293921B2 (ko)
KR (1) KR101862182B1 (ko)
WO (1) WO2015153167A1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20180070460A (ko) * 2016-12-16 2018-06-26 삼성전자주식회사 3차원 이미지에 관한 데이터를 전송하기 위한 방법
KR20210143529A (ko) * 2020-05-20 2021-11-29 (주) 아키드로우 가상 컨텐츠 데이터 기반의 현실적 장면 이미지 분산 렌더링 방법 및 그 장치

Families Citing this family (62)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10300281B2 (en) 2012-03-09 2019-05-28 Mayo Foundation For Medical Education And Research Modulating afferent signals to treat medical conditions
DE102013225484B3 (de) * 2013-12-10 2015-03-12 Siemens Aktiengesellschaft Signalauswahl bei der Erfassung von Empfangssignalen für Empfangsantennen einer Anzahl von Lokalspulen eines Magnetresonanztomographiegerätes
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
US9495790B2 (en) 2014-04-05 2016-11-15 Sony Interactive Entertainment America Llc Gradient adjustment for texture mapping to non-orthonormal grid
US10783696B2 (en) 2014-04-05 2020-09-22 Sony Interactive Entertainment 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
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
KR101923562B1 (ko) 2014-04-05 2018-11-29 소니 인터랙티브 엔터테인먼트 아메리카 엘엘씨 가변 렌더링 및 래스터화 파라미터 하에서 가변 뷰포트에 대하여 오브젝트를 효율적으로 리렌더링하는 방법
US9710881B2 (en) 2014-04-05 2017-07-18 Sony Interactive Entertainment America Llc Varying effective resolution by screen location by altering rasterization parameters
GB2525666B (en) * 2014-05-02 2020-12-23 Advanced Risc Mach Ltd Graphics processing systems
US9995933B2 (en) * 2014-06-24 2018-06-12 Microsoft Technology Licensing, Llc Display devices with transmittance compensation mask
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
US10235219B2 (en) 2015-07-27 2019-03-19 Sony Interactive Entertainment America Llc Backward compatibility by algorithm matching, disabling features, or throttling performance
US11403099B2 (en) 2015-07-27 2022-08-02 Sony Interactive Entertainment LLC Backward compatibility by restriction of hardware resources
US10127627B2 (en) * 2015-09-23 2018-11-13 Intel Corporation Mapping graphics resources to linear arrays using a paging system
US9892024B2 (en) 2015-11-02 2018-02-13 Sony Interactive Entertainment America Llc Backward compatibility testing of software in a mode that disrupts timing
US10102094B2 (en) 2016-01-22 2018-10-16 Sony Interactive Entertainment Inc. Simulating legacy bus behavior for backwards compatibility
WO2017127631A1 (en) 2016-01-22 2017-07-27 Sony Interactive Entertainment Inc Spoofing cpuid for backwards compatibility
US10311540B2 (en) * 2016-02-03 2019-06-04 Valve Corporation Radial density masking systems and methods
US10475370B2 (en) * 2016-02-17 2019-11-12 Google Llc Foveally-rendered display
US10915333B2 (en) 2016-03-30 2021-02-09 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
US10275239B2 (en) 2016-03-30 2019-04-30 Sony Interactive Entertainment Inc. Deriving application-specific operating parameters for backwards compatiblity
US10380789B2 (en) * 2016-09-16 2019-08-13 Intel Corporation Method and apparatus for efficient depth prepass
EP3301920A1 (en) * 2016-09-30 2018-04-04 Thomson Licensing Method and apparatus for coding/decoding omnidirectional video
US10650566B2 (en) * 2017-02-15 2020-05-12 Microsoft Technology Licensing, Llc Multiple shader processes in graphics processing
US10546365B2 (en) * 2017-03-27 2020-01-28 Advanced Micro Devices, Inc. Single pass flexible screen/scale rasterization
US10628995B2 (en) 2017-04-17 2020-04-21 Microsoft Technology Licensing, Llc Anti-aliasing of graphical elements defined based on functions
US10706616B2 (en) * 2017-04-21 2020-07-07 Intel Corporation Fragment compression for coarse pixel shading
US10755383B2 (en) * 2017-09-29 2020-08-25 Apple Inc. Multi-space rendering with configurable transformation parameters
US10930709B2 (en) 2017-10-03 2021-02-23 Lockheed Martin Corporation Stacked transparent pixel structures for image sensors
US10460509B2 (en) * 2017-11-07 2019-10-29 Dolby Laboratories Licensing Corporation Parameterizing 3D scenes for volumetric viewing
US10510812B2 (en) 2017-11-09 2019-12-17 Lockheed Martin Corporation Display-integrated infrared emitter and sensor structures
US10395624B2 (en) 2017-11-21 2019-08-27 Nvidia Corporation Adjusting an angular sampling rate during rendering utilizing gaze information
US10594951B2 (en) * 2018-02-07 2020-03-17 Lockheed Martin Corporation Distributed multi-aperture camera array
US10838250B2 (en) 2018-02-07 2020-11-17 Lockheed Martin Corporation Display assemblies with electronically emulated transparency
US10690910B2 (en) 2018-02-07 2020-06-23 Lockheed Martin Corporation Plenoptic cellular vision correction
US11616941B2 (en) 2018-02-07 2023-03-28 Lockheed Martin Corporation Direct camera-to-display system
US10951883B2 (en) 2018-02-07 2021-03-16 Lockheed Martin Corporation Distributed multi-screen array for high density display
US10652529B2 (en) 2018-02-07 2020-05-12 Lockheed Martin Corporation In-layer Signal processing
US10979699B2 (en) 2018-02-07 2021-04-13 Lockheed Martin Corporation Plenoptic cellular imaging system
CN115842907A (zh) * 2018-03-27 2023-03-24 京东方科技集团股份有限公司 渲染方法、计算机产品及显示装置
WO2019217260A1 (en) * 2018-05-07 2019-11-14 Zermatt Technologies Llc Dynamic foveated display
US10672185B2 (en) 2018-07-13 2020-06-02 Nvidia Corporation Multi-rate shading using replayed screen space tiles
US10866413B2 (en) 2018-12-03 2020-12-15 Lockheed Martin Corporation Eccentric incident luminance pupil tracking
US10554940B1 (en) 2019-03-29 2020-02-04 Razmik Ghazaryan Method and apparatus for a variable-resolution screen
US10698201B1 (en) 2019-04-02 2020-06-30 Lockheed Martin Corporation Plenoptic cellular axis redirection
CN110322424B (zh) * 2019-07-10 2022-12-09 安徽爱观视觉科技有限公司 高分辨率图像处理方法及装置、vr图像显示方法及vr设备
JP2021068367A (ja) * 2019-10-28 2021-04-30 ルネサスエレクトロニクス株式会社 画像処理装置及び画像処理方法
CN113129201A (zh) * 2019-12-31 2021-07-16 英特尔公司 用于图形处理命令的压缩的方法和装置
GB2600944B (en) 2020-11-11 2023-03-01 Sony Interactive Entertainment Inc Image rendering method and apparatus
CN112370783B (zh) * 2020-12-02 2024-06-11 网易(杭州)网络有限公司 虚拟对象渲染方法、装置、计算机设备和存储介质
US11875445B2 (en) * 2021-10-12 2024-01-16 Electronic Arts Inc. Seamless image processing of a tiled image region
US11818331B2 (en) * 2021-11-19 2023-11-14 Lenovo (Singapore) Pte. Ltd. Display headset
GB2615362B (en) * 2022-02-08 2024-03-13 Sony Interactive Entertainment Inc Image processing system and method
CN115760543B (zh) * 2022-11-10 2024-02-13 格兰菲智能科技有限公司 光栅器有序视图的线程处理方法、装置、设备和存储介质
GB2624205A (en) * 2022-11-10 2024-05-15 Imagination Tech Ltd Graphics processing system and method of rendering
CN117609401B (zh) * 2024-01-19 2024-04-09 贵州北斗空间信息技术有限公司 三维地形场景中的白模可视化展示方法、装置和系统

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003524836A (ja) * 1999-12-16 2003-08-19 ピクチャーアイキュー コーポレイション 任意の解像度でのラスタ化に適切なデジタル画像と関連付けられるデータを使用するためのオンデマンド技法

Family Cites Families (131)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4513317A (en) * 1982-09-28 1985-04-23 The United States Of America As Represented By The Administrator Of The National Aeronautics And Space Administration Retinally stabilized differential resolution television display
JPH03233781A (ja) * 1990-02-09 1991-10-17 Fujitsu Ltd 3次元画像表示方式
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
US5777913A (en) 1995-12-27 1998-07-07 Ericsson Inc. Resolution enhancement of fixed point digital filters
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
US6496187B1 (en) 1998-02-17 2002-12-17 Sun Microsystems, Inc. Graphics system configured to perform parallel sample to pixel calculation
US6717578B1 (en) 1998-02-17 2004-04-06 Sun Microsystems, Inc. Graphics system with a variable-resolution sample buffer
EP1055201B1 (en) 1998-02-17 2003-07-09 Sun Microsystems, Inc. Graphics system with variable resolution super-sampling
US6577312B2 (en) 1998-02-17 2003-06-10 Sun Microsystems, Inc. Graphics system configured to filter samples using a variable support filter
JP2002503854A (ja) 1998-02-17 2002-02-05 サン・マイクロシステムズ・インコーポレーテッド ポリゴンのためのグラフィックス・システム・パフォーマンスの推定
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
US6229553B1 (en) 1998-08-20 2001-05-08 Apple Computer, Inc. Deferred shading graphics pipeline processor
JP2000155850A (ja) 1998-11-20 2000-06-06 Sony Corp テクスチャ・マッピング装置及びこれを具備したレンダリング装置、並びに情報処理装置
US6417861B1 (en) 1999-02-17 2002-07-09 Sun Microsystems, Inc. Graphics system with programmable sample positions
US6781606B2 (en) 1999-05-20 2004-08-24 Hewlett-Packard Development Company, L.P. System and method for displaying images using foveal video
US6633297B2 (en) 2000-08-18 2003-10-14 Hewlett-Packard Development Company, L.P. System and method for producing an antialiased image using a merge buffer
US6731298B1 (en) 2000-10-02 2004-05-04 Nvidia Corporation System, method and article of manufacture for z-texture mapping
JP2002260003A (ja) 2001-03-02 2002-09-13 Hitachi Ltd 映像表示装置
US6906723B2 (en) 2001-03-29 2005-06-14 International Business Machines Corporation Generating partials for perspective corrected texture coordinates in a four pixel texture pipeline
US6731434B1 (en) * 2001-05-23 2004-05-04 University Of Central Florida Compact lens assembly for the teleportal augmented reality system
JP2003085586A (ja) * 2001-06-27 2003-03-20 Namco Ltd 画像表示装置、画像表示方法、情報記憶媒体および画像表示プログラム
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
US7081893B2 (en) 2001-10-10 2006-07-25 Sony Computer Entertainment America Inc. System and method for point pushing to render polygons in environments with changing levels of detail
WO2003032253A2 (en) 2001-10-10 2003-04-17 Sony Computer Entertainment America Inc. System and method for environment mapping
US6738069B2 (en) 2001-12-31 2004-05-18 Intel Corporation Efficient graphics state management for zone rendering
WO2003073828A2 (en) * 2002-03-01 2003-09-12 Applied Immune Technologies Immunotherapy for prostate cancer using recombinant bacille calmette-guerin expressing prostate specific antigens
US6906714B2 (en) 2002-06-21 2005-06-14 Intel Corporation Accelerated visualization of surface light fields
US6779892B2 (en) * 2002-07-26 2004-08-24 Eastman Kodak Company Monocentric autostereoscopic optical display having an expanded color gamut
US6891548B2 (en) 2002-08-23 2005-05-10 Hewlett-Packard Development Company, L.P. System and method for calculating a texture-mapping gradient
JP4467267B2 (ja) * 2002-09-06 2010-05-26 株式会社ソニー・コンピュータエンタテインメント 画像処理方法、画像処理装置、および画像処理システム
JP4896237B2 (ja) * 2002-09-06 2012-03-14 株式会社ソニー・コンピュータエンタテインメント 画像処理方法、画像処理装置、および画像処理システム
TWI238975B (en) 2003-02-20 2005-09-01 Via Tech Inc Method of performing cubic mapping with texturing
US7619626B2 (en) 2003-03-01 2009-11-17 The Boeing Company Mapping images from one or more sources into an image for display
US7336277B1 (en) 2003-04-17 2008-02-26 Nvidia Corporation Per-pixel output luminosity compensation
JP3966832B2 (ja) 2003-04-28 2007-08-29 株式会社東芝 描画処理装置、及び、描画処理方法
US7495638B2 (en) 2003-05-13 2009-02-24 Research Triangle Institute Visual display with increased field of view
EP1496475B1 (en) 2003-07-07 2013-06-26 STMicroelectronics Srl A geometric processing stage for a pipelined graphic engine, corresponding method and computer program product therefor
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
US7817829B2 (en) 2004-03-15 2010-10-19 Koninklijke Philips Electronics N.V. Image visualization
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
US7425966B2 (en) 2004-10-07 2008-09-16 Nvidia Corporation Pixel center position displacement
US7339594B1 (en) 2005-03-01 2008-03-04 Nvidia Corporation Optimized anisotropic texture sampling
JP4660254B2 (ja) 2005-04-08 2011-03-30 株式会社東芝 描画方法及び描画装置
US7289119B2 (en) 2005-05-10 2007-10-30 Sony Computer Entertainment Inc. Statistical rendering acceleration
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
US7728841B1 (en) 2005-12-19 2010-06-01 Nvidia Corporation Coherent shader output for multiple targets
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
US8207975B1 (en) 2006-05-08 2012-06-26 Nvidia Corporation Graphics rendering pipeline that supports early-Z and late-Z virtual machines
US7907792B2 (en) 2006-06-16 2011-03-15 Hewlett-Packard Development Company, L.P. Blend maps for rendering an image frame
US8406562B2 (en) 2006-08-11 2013-03-26 Geo Semiconductor Inc. System and method for automated calibration and correction of display geometry and color
WO2008055262A2 (en) 2006-11-02 2008-05-08 Sensics, Inc. Systems and methods for a head-mounted display
US8232991B1 (en) 2006-11-03 2012-07-31 Nvidia Corporation Z-test result reconciliation with multiple partitions
US8233004B1 (en) 2006-11-06 2012-07-31 Nvidia Corporation Color-compression using automatic reduction of multi-sampled pixels
US8149242B2 (en) 2006-11-10 2012-04-03 Sony Computer Entertainment Inc. Graphics processing apparatus, graphics library module and graphics processing method
JP5063990B2 (ja) 2006-11-15 2012-10-31 任天堂株式会社 ゲームプログラムおよびゲーム装置
US7876332B1 (en) 2006-12-20 2011-01-25 Nvidia Corporation Shader that conditionally updates a framebuffer in a computer graphics system
US7940261B2 (en) * 2007-01-10 2011-05-10 Qualcomm Incorporated Automatic load balancing of a 3D graphics pipeline
JP5268271B2 (ja) * 2007-03-23 2013-08-21 株式会社東芝 画像表示装置および画像表示方法
JP4455609B2 (ja) * 2007-03-27 2010-04-21 株式会社東芝 画像表示装置および画像表示方法
US9013499B2 (en) 2007-07-19 2015-04-21 Disney Enterprises, Inc. Methods and apparatus for multiple texture map storage and filtering including irregular texture maps
US20090033659A1 (en) 2007-07-31 2009-02-05 Lake Adam T Real-time luminosity dependent subdivision
US8044956B1 (en) 2007-08-03 2011-10-25 Nvidia Corporation Coverage adaptive multisampling
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
JP5050786B2 (ja) 2007-11-05 2012-10-17 富士通セミコンダクター株式会社 描画処理装置、描画処理方法および描画処理プログラム
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
US8428326B2 (en) 2008-10-23 2013-04-23 Immersion Corporation Systems and methods for ultrasound simulation using depth peeling
GB0819570D0 (en) 2008-10-24 2008-12-03 Advanced Risc Mach Ltd Methods of and apparatus for processing computer graphics
US8780131B2 (en) 2008-12-19 2014-07-15 Xerox Corporation Systems and methods for text-based personalization of images
GB0900700D0 (en) * 2009-01-15 2009-03-04 Advanced Risc Mach Ltd Methods of and apparatus for processing graphics
US20100214294A1 (en) 2009-02-20 2010-08-26 Microsoft Corporation Method for tessellation on graphics hardware
US8330767B2 (en) 2009-03-24 2012-12-11 Advanced Micro Devices, Inc. Method and apparatus for angular invariant texture level of detail generation
JP5676092B2 (ja) 2009-09-18 2015-02-25 株式会社ローラン パノラマ画像生成方法及びパノラマ画像生成プログラム
US9697641B2 (en) 2009-10-15 2017-07-04 Nvidia Corporation Alpha-to-coverage 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
US8116547B2 (en) 2009-12-11 2012-02-14 Aperio Technologies, Inc. Signal to noise ratio in digital pathology image analysis
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
JP5365557B2 (ja) * 2010-03-17 2013-12-11 オイレス工業株式会社 スラスト滑り軸受及びこのスラスト滑り軸受とピストンロッドとの組合せ機構
WO2012012584A1 (en) 2010-07-21 2012-01-26 Dolby Laboratories Licensing Corporation Systems and methods for multi-layered frame-compatible video delivery
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
US8339409B2 (en) * 2011-02-16 2012-12-25 Arm Limited Tile-based graphics system and method of operation of such a system
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 キヤノン株式会社 画像処理装置、画像処理方法
JP5951195B2 (ja) * 2011-06-28 2016-07-13 株式会社小糸製作所 車両のランプ制御装置
US9019280B2 (en) 2011-07-22 2015-04-28 Qualcomm Incorporated Area-based rasterization techniques for a graphics processing system
EP2555166B1 (en) 2011-08-01 2019-10-16 Harman Becker Automotive Systems GmbH Space error parameter for 3D buildings and terrain
KR101926570B1 (ko) 2011-09-14 2018-12-10 삼성전자주식회사 포스트 프레그먼트 쉐이더를 사용하는 그래픽 처리 방법 및 장치
US10089774B2 (en) 2011-11-16 2018-10-02 Qualcomm Incorporated Tessellation in tile-based rendering
CN105974587B (zh) * 2011-11-24 2018-09-28 松下知识产权经营株式会社 头戴式显示器装置
GB2497302B (en) 2011-12-05 2017-04-12 Advanced Risc Mach Ltd Methods of and apparatus for processing computer graphics
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
US20140004954A1 (en) * 2012-06-29 2014-01-02 Zynga Inc. Social Network Data Analysis to Provide News for Online Gaming
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
US10096079B2 (en) 2013-06-10 2018-10-09 Sony Interactive Entertainment Inc. Fragment shaders perform vertex shader computations
US10134102B2 (en) 2013-06-10 2018-11-20 Sony Interactive Entertainment Inc. Graphics processing hardware for using compute shaders as front end for vertex shaders
US10176621B2 (en) 2013-06-10 2019-01-08 Sony Interactive Entertainment Inc. Using compute shaders as front end for vertex shaders
US10102603B2 (en) 2013-06-10 2018-10-16 Sony Interactive Entertainment Inc. Scheme for compressing vertex shader output parameters
US10976986B2 (en) 2013-09-24 2021-04-13 Blackberry Limited System and method for forwarding an application user interface
US9865074B2 (en) 2014-04-05 2018-01-09 Sony Interactive Entertainment America Llc Method for efficient construction of high resolution display buffers
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
KR101923562B1 (ko) 2014-04-05 2018-11-29 소니 인터랙티브 엔터테인먼트 아메리카 엘엘씨 가변 렌더링 및 래스터화 파라미터 하에서 가변 뷰포트에 대하여 오브젝트를 효율적으로 리렌더링하는 방법
US9710957B2 (en) 2014-04-05 2017-07-18 Sony Interactive Entertainment America Llc Graphics processing enhancement by tracking object and/or primitive identifiers
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
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
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
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
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
US9892024B2 (en) 2015-11-02 2018-02-13 Sony Interactive Entertainment America Llc Backward compatibility testing of software in a mode that disrupts timing

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003524836A (ja) * 1999-12-16 2003-08-19 ピクチャーアイキュー コーポレイション 任意の解像度でのラスタ化に適切なデジタル画像と関連付けられるデータを使用するためのオンデマンド技法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20180070460A (ko) * 2016-12-16 2018-06-26 삼성전자주식회사 3차원 이미지에 관한 데이터를 전송하기 위한 방법
KR20210143529A (ko) * 2020-05-20 2021-11-29 (주) 아키드로우 가상 컨텐츠 데이터 기반의 현실적 장면 이미지 분산 렌더링 방법 및 그 장치

Also Published As

Publication number Publication date
WO2015153167A1 (en) 2015-10-08
US20170316544A1 (en) 2017-11-02
JP2018129050A (ja) 2018-08-16
JP2017515214A (ja) 2017-06-08
EP3129976A4 (en) 2017-10-25
JP6293921B2 (ja) 2018-03-14
US20200005431A1 (en) 2020-01-02
US10417741B2 (en) 2019-09-17
JP6476327B2 (ja) 2019-02-27
EP3129976B1 (en) 2024-05-08
US20150287166A1 (en) 2015-10-08
KR101862182B1 (ko) 2018-06-29
US11301956B2 (en) 2022-04-12
EP3129976A1 (en) 2017-02-15
US9710881B2 (en) 2017-07-18
US20200302574A1 (en) 2020-09-24
US10685425B2 (en) 2020-06-16

Similar Documents

Publication Publication Date Title
KR101862182B1 (ko) 래스터화 파라미터를 변경하는 것에 의해 스크린 위치에 따른 유효 해상도의 가변
JP6563048B2 (ja) スクリーンの位置によって異なる解像度のターゲットの複数レンダリングのテクスチャ・マッピングの傾き調整
KR101964611B1 (ko) 곡선 뷰포트 상으로 정점의 투영을 근접시키는 것에 의해 그래픽스를 처리할 때 스크린 위치에 따른 유효 해상도의 가변
KR101925292B1 (ko) 비-정규 직교 그리드로의 텍스처 매핑을 위한 그라디언트 조정
KR101922482B1 (ko) 다수의 렌더 타겟들 내에서 활성 컬러 샘플 카운트를 변경함으로써 스크린 위치에 의한 변화하는 유효 분해능
US11238639B2 (en) Gradient adjustment for texture mapping to non-orthonormal grid

Legal Events

Date Code Title Description
A201 Request for examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant