KR101925292B1 - 비-정규 직교 그리드로의 텍스처 매핑을 위한 그라디언트 조정 - Google Patents

비-정규 직교 그리드로의 텍스처 매핑을 위한 그라디언트 조정 Download PDF

Info

Publication number
KR101925292B1
KR101925292B1 KR1020167027634A KR20167027634A KR101925292B1 KR 101925292 B1 KR101925292 B1 KR 101925292B1 KR 1020167027634 A KR1020167027634 A KR 1020167027634A KR 20167027634 A KR20167027634 A KR 20167027634A KR 101925292 B1 KR101925292 B1 KR 101925292B1
Authority
KR
South Korea
Prior art keywords
texture
values
pixel
unit
space
Prior art date
Application number
KR1020167027634A
Other languages
English (en)
Other versions
KR20160130821A (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 KR20160130821A publication Critical patent/KR20160130821A/ko
Application granted granted Critical
Publication of KR101925292B1 publication Critical patent/KR101925292B1/ko

Links

Images

Classifications

    • 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
    • G06T1/00General purpose image data processing
    • G06T1/20Processor architectures; Processor configuration, e.g. pipelining
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/005General purpose rendering architectures
    • 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
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/50Lighting effects
    • G06T15/503Blending, e.g. for anti-aliasing
    • 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

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Graphics (AREA)
  • Geometry (AREA)
  • Software Systems (AREA)
  • Image Generation (AREA)
  • Controls And Circuits For Display Device (AREA)

Abstract

텍스처 유닛을 가진 컴퓨터 그래픽스 프로세싱 유닛(GPU)에서, 픽셀 샘플 위치들이 장면 공간에서의 비-정규 직교 그리드에 기초할 때, 텍스처 유닛은 예를 들어, 쉐이더 유닛으로부터, 직접적으로 텍스처 공간 그라디언트 값들을 수신하거나 예를 들어, 쉐이더 유닛에 의해, 공급되는 텍스처 좌표들로부터 그것들을 생성하고, 그 후 그라디언트 값들을 정규 직교 스크린 공간 그리드의 사용에서 발생할 수 있는 것들로 조정하도록 구성되는 변환을 그라디언트 좌표들에 적용한다.

Description

비-정규 직교 그리드로의 텍스처 매핑을 위한 그라디언트 조정{GRADIENT ADJUSTMENT FOR TEXTURE MAPPING TO NON-ORTHONORMAL GRID}
관련 출원들에 대한 상호 참조
본 출원은 2014년 4월 5일에 출원된, "고 분해능 디스플레이 버퍼들의 효율적인 구성을 위한 방법"이라는 제목의, Tobias Berghoff에, 공동으로-양도된, 공동-계류 중인 미국 특허 출원 번호 제14/246,064호, (대리인 문서 번호 SCEA13055US00)에 관련되며, 그 전체 내용들은 여기에서 참조로서 통합된다.
본 출원은, 2014년 4월 5일에 출원된, "오브젝트 및/또는 프리미티브 식별자들을 추적하는 것에 의한 그래픽스 프로세싱 강화"라는 제목의, Tobias Berghoff에, 공동으로-양도된, 공동-계류 중인 미국 특허 출원 번호 제14/246,067호, (대리인 문서 번호 SCEA13056US00)에 관련되며, 그 전체 내용들은 여기에서 참조로서 통합된다.
본 출원은 2014년 4월 5일에 출원된, "다수의 렌더 타겟들 내에서 활성 컬러 샘플 카운트를 변경함으로써 스크린 위치에 의한 변화하는 유효 분해능"이라는 제목의, Tobias Berghoff에, 공동으로-양도된, 공동-계류 중인 미국 특허 출원 번호 제14/246,061호, (대리인 문서 번호 SCEA13058US00)에 관련되며, 그 전체 내용들은 여기에서 참조로서 통합된다.
본 출원은, 2014년 4월 5일에 출원된, "래스터화 파라미터들을 변경함으로써 스크린 위치에 의한 변화하는 유효 분해능"이라는 제목의, Mark Evan Cerny에, 공동으로-양도된, 공동-계류 중인 미국 특허 출원 번호 제14/246,063호, (대리인 문서 번호 SCEA13059US00)에 관련되며, 그 전체 내용들은 여기에서 참조로서 통합된다.
본 출원은 2014년 4월 5일에 출원된, "곡선 뷰포트로의 버텍스들의 사영을 근사함으로써 그래픽스 프로세싱에서의 스크린 위치에 의한 변화하는 유효 분해능"이라는 제목의, Mark Evan Cerny에, 공동으로-양도된, 공동-계류 중인 미국 특허 출원 번호 제14/246,066호, (대리인 문서 번호 SCEA13060US00)에 관련되며, 그 전체 내용들은 여기에서 참조로서 통합된다.
본 출원은, 2014년 4월 5일에 출원된, "스크린 위치에 따라 달라지는 분해능을 갖고 다수의 렌더 타겟들을 위한 텍스처 매핑을 위한 그라디언트 조정"이라는 제목의, Mark Evan Cerny에, 공동으로-양도된, 공동-계류 중인 미국 특허 출원 번호 제14/246,062호, (대리인 문서 번호 SCEA13061US00)에 관련되며, 그 전체 내용들은 여기에서 참조로서 통합된다.
기술분야
본 개시의 양상들은 컴퓨터 그래픽스에 관련된다. 특히, 본 개시는 텍스처 매핑을 위해 사용된 그라디언트들의 조정에 관련된다.
그래픽스 프로세싱은 통상적으로 두 개의 프로세서들, 중앙 프로세싱 유닛(CPU) 및 그래픽스 프로세싱 유닛(GPU)의 조정을 수반한다. GPU는 디스플레이로의 출력을 위해 의도된 프레임 버퍼에서 이미지들의 생성을 가속화하도록 설계된 전문화된 전자 회로이다. GPU들은 내장 시스템들, 이동 전화들, 개인용 컴퓨터들, 태블릿 컴퓨터들, 휴대용 게임 디바이스들, 워크스테이션들, 및 게임 콘솔들에서 사용된다. GPU는 통상적으로 컴퓨터 그래픽들을 조작할 때 효율적이도록 설계된다. GPU는 종종 데이터의 큰 블록들의 프로세싱이 병렬로 행해지는 알고리즘들을 위해 GPU를 범용 CPU보다 더 효과적이게 하는 고도 병렬 프로세싱 아키텍처를 가진다.
CPU는 특정한 그래픽스 프로세싱 태스크를 구현하기 위한, 예를 들어 이미지에서 이전 프레임에 대하여 변경된 특정한 텍스처를 렌더링하기 위한 명령들을 GPU로 전송할 수 있다, 이들 드로우 명령들은 특정한 애플리케이션의 가상 환경의 상태에 대응하는 그래픽스 렌더링 명령들을 발행하기 위해 그래픽스 애플리케이션 인터페이스(API)를 갖고 CPU에 의해 조정될 수 있다.
특정한 프로그램에 대한 텍스처들을 렌더링하기 위해, GPU는 가상 환경에서의 시각 자료들을 디스플레이 상에 렌더링될 수 있는 이미지들로 변환하기 위해 "그래픽스 파이프라인(graphics pipeline)"에서 일련의 프로세싱 태스크들을 수행할 수 있다. 통상적인 그래픽스 파이프라인은 가상 공간에서 가상 오브젝트들에 대한 특정한 렌더링 또는 쉐이딩 동작들, 출력 디스플레이에 적합한 픽셀 데이터를 생성하기 위해 장면에서 가상 오브젝트들의 변환 및 래스터화, 및 렌더링된 이미지를 디스플레이상에 출력하기 전에 픽셀들(또는 단편들)에 대한 부가적인 렌더링 태스크들을 수행하는 것을 포함할 수 있다.
이미지의 가상 오브젝트들은 종종 프리미티브들(primitives)로서 알려진 형태들에 관하여 가상 공간에서 설명되며, 이것들은 가상 장면에서 오브젝트들의 형태들을 함께 만든다. 예를 들면, 렌더링될 3-차원 가상 세계에서의 오브젝트들은 3-차원 공간에서 그것들의 좌표들에 관하여 정의된 버텍스들(vertices)을 가진 일련의 별개의 삼각형 프리미티브들로 감소될 수 있으며, 이에 의해 이들 다각형들은 오브젝트들의 표면들을 이룬다. 각각의 다각형은 주어진 다각형을 다른 다각형들과 구별하기 위해 그래픽스 프로세싱 시스템에 의해 사용될 수 있는 연관된 인덱스를 가질 수 있다. 마찬가지로, 각각의 버텍스는 주어진 버텍스를 다른 버텍스들과 구별하기 위해 사용될 수 있는 연관된 인덱스를 가질 수 있다. 그래픽스 파이프라인은 가상 장면을 위한 시각 자료들을 생성하며 이 데이터를 디스플레이의 픽셀들에 의한 재생에 적합한 2-차원 포맷으로 변환시키기 위해 이들 프리미티브들에 대한 특정한 동작들을 수행할 수 있다. 용어(그래픽스 프리미티브 정보(또는 간단히 "프리미티브 정보"))는, 여기에서 사용된 바와 같이, 그래픽스 프리미티브를 대표하는 데이터를 나타내기 위해 사용된다. 이러한 데이터는, 이에 제한되지 않지만, 버텍스 정보(예를 들어, 버텍스 위치들 또는 버텍스 인덱스들을 표현한 데이터) 및 다각형 정보, 예를 들어 다각형 인덱스들 및 특정한 다각형들과 특정한 버텍스들을 연관시키는 정보를 포함한다.
GPU는 흔히 쉐이더들(shaders)로서 알려진 프로그램들을 구현함으로써 그래픽스 파이프라인의 렌더링 태스크들을 수행할 수 있다. 통상적인 그래픽스 파이프라인은 버텍스 쉐이더들을 포함할 수 있으며, 이것은 버텍스-단위 기반으로 프리미티브들의 특정한 속성들, 뿐만 아니라 픽셀 쉐이더들(또한 "단편 쉐이더들"로서 알려진)을 조작할 수 있으며, 이것은 그래픽스 파이프라인에서 버텍스 쉐이더들로부터 아래로 동작하며 픽셀 데이터를 디스플레이로 송신하기 전에 픽셀-단위 기반으로 특정한 값들을 조작할 수 있다. 단편 쉐이더들은 텍스처들을 프리미티브들에 적용하는 것에 관련된 값들을 조작할 수 있다. 파이프라인은 또한 프리미티브들의 새로운 세트를 생성하기 위해 버텍스 쉐이더들의 출력을 사용하는 지오메트리 쉐이더들(geometry shaders), 뿐만 아니라 특정한 다른 일반 계산 태스크들을 수행하기 위해 GPU에 의해 구현될 수 있는 컴퓨트 쉐이더들(CS; compute shaders)과 같은, 파이프라인에서의 다양한 단계들에서 다른 쉐이더들을 포함할 수 있다.
프리미티브들에 텍스처들을 매핑시키는 프로세스의 부분은 스크린 공간에서 픽셀 위치들로부터 텍스처 공간에서의 그라디언트들을 산출하는 것을 수반한다. 그라디언트 산출은 종종 픽셀 위치들이 정사각형 정규 직교 그리드에 기초한다고 가정한다.
본 개시가 발달하기 시작한 것은 이러한 맥락에 있다.
본 개시의 교시들은 수반되는 도면들과 함께 다음의 상세한 설명을 고려함으로써 쉽게 이해될 수 있으며, 여기서:
도 1a 내지 도 1c는 텍스처들을 적용 시 종래 그라디언트 변환들을 도시한다.
도 2a 내지 도 2c는 본 개시의 양상들에 따라 텍스처들을 적용 시 종래 그라디언트 변환들을 도시한다.
도 3a 및 도 3b는 본 발명의 양상들에 따라 시간적 안티앨리어싱 시 사용되는 다수의 렌더링 타겟(MRT; multiple render target) 셋업들을 도시한다.
도 4 및 도 5는 본 발명의 양상들에 따라 시간적 안티앨리어싱 시 사용되는 다수의 렌더링 타겟(MRT) 셋업들을 도시한다.
도 6a는 본 개시의 양상들에 따른 그래픽스 프로세싱 시스템의 블록도이다.
도 6b는 그래픽스 프로세싱 파이프라인의 블록도이다.
다음의 상세한 설명은 예시의 목적들을 위해 많은 특정 상세들을 포함하지만, 이 기술분야의 숙련자는 다음의 상세들에 대한 많은 변형들 및 변경들이 본 발명의 범위 내에 있다는 것을 이해할 것이다. 따라서, 이하에 설명된 본 발명의 대표적인 실시예들은 청구된 발명에 대한 일반성을 잃지 않고, 및 그것에 한계들을 두지 않고 제시된다.
도입
특정한 그래픽스 애플리케이션들에서, 비트매핑된 텍스처들은 다각형 상에 "페인팅"된다. 이러한 경우에 출력 디바이스에 의해 그려진 각각의 픽셀 값은 텍스처로부터 샘플링되는 하나 이상의 픽셀들로부터 결정된다. 여기에서 사용된 바와 같이, 비트맵은 일반적으로 컴퓨터 모니터, 종이, 또는 다른 디스플레이 디바이스 상에서, 픽셀들의 일반적으로 직사각형 그리드, 또는 컬러의 포인트들을 표현한 구조 또는 데이터 파일을 나타내다. 각각의 픽셀의 컬러는 개별적으로 정의된다. 예를 들면, 컬러링된 픽셀은 3 바이트들 - 적색, 녹색 및 청색에 대해 1 바이트씩 - 에 의해 정의될 수 있다. 비트맵은 통상적으로 디바이스 텍스처 샘플링 유닛들에 의해 지원되는 데이터 포맷들과 비트마다 대응하며, 이것은 통상적으로 아마도 그것이 디스플레이의 비디오 메모리에 저장될 바와 동일한 포맷으로 또는 아마도 디바이스와 무관한 비트맵으로, 채널 또는 블록 압축당 다양한 비트 깊이들을 포함한 옵션들의 범위를 포함할 수 있다. 비트맵은 픽셀들에서 이미지의 폭 및 높이 및 픽셀 당 비트들의 수에 의해 특성화되며, 이것은 그것이 표현할 수 있는 컬러들의 수를 결정한다. 비트맵들에 일반적으로 저장되지 않더라도, 많은 데이터 포맷들은 텍스처링 포맷들과 비트마다 겹친다. 몇몇 디스플레이 포맷들은 텍스처링 하드웨어(이를테면 YUV)에 의해 지원되지 않고 몇몇 텍스처링 포맷들은 디스플레이 하드웨어(이를테면 압축된 블록)에 의해 지원되지 않는다. 겹치는 데이터 포맷들은 다양한 채널당 비트 RGBA 옵션들을 포함한다.
텍스처 비트맵을 표면으로 전사하는 프로세스는 종종 텍스처 MIP 맵들(또한 밉맵들(mipmaps)로서 알려진)의 사용을 수반한다. 명칭에서 글자들("MIP")은 "작은 공간에서 많이"를 의미하는, 라틴어(multum in parvo)의 두문자어이다. 이러한 밉맵들은 렌더링 속도를 증가시키며 앨리어싱 아티팩트들을 감소시키도록 의도된, 메인 텍스처를 수반하는 비트맵 이미지들의 사전-산출된, 최적화된 모음들이다.
밉맵 세트의 각각의 비트맵 이미지는 메인 텍스처의 버전이지만, 특정한 감소된 세부 수준(LOD; level of detail)에 있다. 뷰가 미세하게 그것을 렌더링하기에 충분할 때 메인 텍스처가 여전히 사용될 것이지만, 최종 이미지를 렌더링하는 그래픽스 하드웨어는 텍스처가 멀리서, 또는 작은 크기로 보일 때 적절한 밉맵 레벨로 전환한다(또는 두 개의 가장 가까운 레벨들 사이에서 보간한다). 렌더링 속도는 프로세싱되는 텍스처 픽셀들("텍셀들(texels)")의 수가 단순한 텍스처들을 갖는 것보다 훨씬 더 적으며 메모리에서의 그것들의 분포는 더 일관될 수 있으므로 증가한다. 아티팩트들은 밉맵 이미지들이 이미 효과적으로 안티-앨리어싱되므로 감소될 수 있어서, 실시간 렌더링 하드웨어로부터 부담의 일부를 제거한다.
밉맵 레벨들 사이에서의 블렌딩은 통상적으로 몇몇 형태의 텍스처 필터링을 수반한다. 여기에서 사용된 바와 같이, 텍스처 필터링은 3D 오브젝트 상에서의 포인트들에 텍셀들(텍스처의 픽셀들)을 매핑시키기 위해 사용되는 방법을 나타낸다. 단순한 텍스처 필터링 알고리즘은 오브젝트 상에서의 포인트를 취하고 해당 위치에 가장 가까운 텍셀을 찾을 수 있다. 결과적인 포인트는 그 후 해당 하나의 텍셀로부터 그것의 컬러를 얻는다. 이러한 단순한 기술은 때때로 최근접 이웃 필터링으로서 불리운다 보다 정교한 기술들은 포인트마다 하나 이상의 텍셀을 조합한다. 실제로 가장 자주 사용된 알고리즘들은 밉맵들을 사용하는 이중 선형 필터링 및 삼중 선형 필터]링이다. 이차 또는 입방형 필터링과 같은, 이방성 필터링 및 고차 방법들이 훨씬 더 높은 품질 이미지들을 야기한다.
텍스처들은 통상적으로 정사각형이며 2의 거듭제곱과 같은 측면 길이들을 가진다. 예를 들어, 텍스처가 256X256 픽셀들의 기본 크기를 갖는다면, 연관된 밉맵 세트는 일련의 8개의 이미지들을 포함할 수 있으며, 각각은 이전 것의 크기의 절반이다: 128X128 픽셀들, 64X64, 32X32, 16X16, 8X8, 4X4, 2X2, 및 1X1(단일 픽셀). 예를 들어, 이러한 텍스처가 스크린 공간의 40X40 픽셀 부분 상에 적용된다면, 64X64 및 32X32 밉맵들의 보간이 사용될 것이다. 여기에서 사용된 바와 같이, 용어("스크린 공간(screen space)")는 일반적으로 그래픽스 파이프라인에서 디스플레이 버퍼에 의해 사용되는 좌표들의 세트를 나타낸다.
적절한 밉맵 레벨을 결정하는 프로세스에서의 주요 동작은 스크린 공간(때때로 XY 좌표 공간으로 불리우는)으로부터 픽셀 위치들의 대응하는 영역에 대한 텍스처 좌표 공간(때때로 UV 좌표 공간으로 불리우는)에서 커버된 영역을 결정하는 것을 수반한다. 일반적인 용어로, 보간된 또는 계산된 텍스처 UV 좌표들의 스크린 공간 그라디언트들은 장면의 관련 부분에서의 XY 공간 픽셀 위치들에서 샘플링된 U 및 V 값들로부터 산출된다. 몇몇 구현들에서, 텍스처 좌표 그라디언트는 스크린 X 좌표가 변화하며 스크린 Y가 고정될 때 발생하는 텍스처 좌표들에서의 변화(때때로 dU/dX, dV/dX로서 불리우는) 및 스크린 Y 좌표가 변화하며 스크린 X가 고정될 때 발생하는 텍스처 좌표들에서의 변화(때때로 dU/dY, dV/dY로서 불리우는)를 산출함으로써 각각의 스크린 공간 방향(X 및 Y)에 대해 결정된다. 비-이방성 텍스처 검색들을 위해, 이들 두 개 중에서 보다 큰 크기를 가진 그라디언트가 세부 수준(LOD)을 선택하기 위해 사용된다. 이방성 텍스처링을 위해, 보다 작은 크기 그라디언트가 (LOD)를 선택하기 위해 사용되며, 텍스처는 보다 큰 크기 그라디언트에 대응하는 라인에서 샘플링된다.
상기 산출은 1, 2, 3 이상의 텍스처 좌표 차원들로 일반화될 수 있다는 것을 또한 주의하자. 통상적인 하드웨어는 텍스처 차원성에 의존하여 U-공간에서 1D 그라디언트 또는 UV-공간에서 2D 그라디언트 또는 UVW-공간에서 3D 그라디언트를 산출한다.  따라서, 본 개시의 양상들은 두 개의 텍스처 좌표 차원들을 수반하는 구현들에 제한되지 않는다.
그러나, 적절한 밉맵 레벨을 결정하는 프로세스는, 텍스처가 적용될 스크린 공간의 관련 부분이 샘플들의 "정사각형" 정규 직교 배열이라는, 즉 스크린 픽셀들 내에서의 샘플 포인트들이 스크린 공간에서 수직 및 수평 방향들로 고르게 이격된다는 가정에 기초한다. 그러나, 스크린 공간의 관련 부분이 비-정규 직교인, 즉, 샘플들이 규칙적 정사각형 그리드로 배열되지 않는 상황들이 발생할 수 있다. 이러한 상황들에서, 그라디언트들은 텍스처들이 오브젝트에 적절히 적용되도록 조정되어야 한다.
시스템 및 장치
본 개시의 양상들은 텍스처 매핑에서 그라디언트 조정을 구현하도록 구성되는 그래픽스 프로세싱 시스템들을 포함한다. 제한으로서가 아닌, 예로서, 도 6a는 본 발명의 양상들에 따른 그래픽스 프로세싱을 구현하기 위해 사용될 수 있는 컴퓨터 시스템(600)의 블록도를 예시한다. 본 발명의 양상들에 따르면, 시스템(600)은 내장 시스템, 이동 전화, 개인용 컴퓨터, 태블릿 컴퓨터, 휴대용 게임 디바이스, 워크스테이션, 및 게임 콘솔 등일 수 있다.
시스템(600)은 일반적으로 중앙 프로세서 유닛(CPU)(602), 그래픽스 프로세서 유닛(GPU)(604), 및 CPU 및 GPU 양쪽 모두에 액세스 가능한 메모리(608)를 포함할 수 있다. CPU(602) 및 GPU(604)는 각각 하나 이상의 프로세서 코어들, 예를 들어, 단일 코어, 두 개의 코어들, 4개의 코어들, 8개의 코어들, 또는 그 이상을 포함할 수 있다. 메모리(608)는 어드레싱 가능한 메모리, 예를 들어, RAM, DRAM 등을 제공하는 집적 회로의 형태일 수 있다 메모리(608)는 그래픽스 리소스들을 저장하며 그래픽스 렌더링 파이프라인을 위한 데이터의 그래픽스 버퍼들(605)을 임시로 저장할 수 있는 그래픽스 메모리(628)를 포함할 수 있다. 그래픽스 버퍼들(605)은 예를 들어, 버텍스 파라미터 값들(vertex parameter values)을 저장하기 위한 버텍스 버퍼들, 버텍스 인덱스들을 유지하기 위한 인덱스 버퍼들, 그래픽스 콘텐트의 깊이 값들을 저장하기 위한 깊이 버퍼들(예를 들어, Z-버퍼들), 스텐실 버퍼들(stencil buffers), 디스플레이로 전송될 완성된 프레임들을 저장하기 위한 프레임 버퍼들, 및 다른 버퍼들을 포함할 수 있다. 도 6a에 도시된 예에서, 그래픽스 메모리(628)는 메인 메모리의 부분으로서 도시된다. 대안적인 구현들에서, 그래픽스 메모리는 가능하게는 GPU(604)로 통합되는, 별개의 구성요소일 수 있다.
제한으로서가 아닌, 예로서, CPU(602) 및 GPU(604)는 데이터 버스(609)를 사용하여 메모리(608)에 액세스할 수 있다. 몇몇 경우들에서, 둘 이상의 상이한 버스들을 포함하는 것이 시스템(600)에 유용할 수 있다. 메모리(608)는 CPU(602) 및 GPU(604)에 의해 액세스될 수 있는 데이터를 포함할 수 있다. GPU(604)는 병렬로 그래픽스 프로세싱 태스크들을 수행하도록 구성된 복수의 컴퓨트 유닛들을 포함할 수 있다. 각각의 컴퓨트 유닛은 로컬 데이터 셰어와 같은, 그 자신의 전용 로컬 메모리 저장소를 포함할 수 있다.
CPU는 CPU 코드(603 C )를 실행하도록 구성될 수 있으며, 이것은 그래픽들을 이용하는 애플리케이션, 컴파일러, 및 그래픽스 API를 포함할 수 있다. 그래픽스 API는 GPU에 의해 구현된 프로그램들로 드로우(draw) 명령들을 발행하도록 구성될 수 있다. CPU 코드(603 C )는 또한 물리 시뮬레이션들 및 다른 기능들을 구현할 수 있다. GPU(604)는 상기에서 논의된 바와 같이 동작하도록 구성될 수 있다. 특히, GPU는 상기 논의된 바와 같이, 컴퓨트 쉐이더들(CS), 버텍스 쉐이더들(VS), 및 픽셀 쉐이더들(PS)과 같은, 쉐이더들을 구현할 수 있는, GPU 코드(603 G )를 실행할 수 있다. 컴퓨트 쉐이더들(CS) 및 버텍스 쉐이더들(VS) 사이에서 데이터의 전달을 용이하게 하기 위해, 시스템은, 프레임 버퍼(FB)를 포함할 수 있는, 하나 이상의 버퍼들(605)을 포함할 수 있다. GPU 코드(603 G )는 또한 임의적으로 픽셀 쉐이더들 또는 지오메트리 쉐이더들과 같은, 다른 유형들의 쉐이더들(도시되지 않음)을 구현할 수 있다. 각각의 컴퓨트 유닛은 로컬 데이터 셰어와 같은, 그 자신의 전용 로컬 메모리 저장소를 포함할 수 있다. GPU(604)는 텍스처들을 그래픽스 파이프라인의 부분으로서 프리미티브들에 적용하기 위한 특정한 동작들을 수행하도록 구성된 텍스처 유닛(606)을 포함할 수 있다.
쉐이더들은 스크린 공간에서의 비-정규 직교 그리드에 기초한 하나 이상의 대응하는 픽셀 샘플 위치들에 대해, 텍스처 좌표 값들(UV) 및 잠재적으로 또한 각각의 좌표(gr)에 대한 텍스처 공간 그라디언트 값들의 하나 이상의 세트들을 수신 또는 생성하도록 구성되는 픽셀 쉐이더(PS)를 포함할 수 있다. 이들 픽셀 샘플 위치들은 그래픽스 파이프라인에서 이전 단계에서 정의된 하나 이상의 프리미티브들로부터 도출될 수 있다. 텍스처 유닛(606)은 이들 텍스처 공간 그라디언트 값들(gr)을 수신하도록 또는 그것들을 텍스처 좌표 값들(UV)로부터 산출하도록, 및 그 후 픽셀 샘플 위치들의 비-정규 직교 스크린 공간 그리드의 사용에서 발생하는 앨리어싱 아티팩트들의 염려가 거의 없는 조정된 그라디언트 값들(Gr)을 획득하기 위해 조정 매트릭스(trans)를 적용하도록 구성된다.
제한으로서가 아닌, 예로서, 텍스처 유닛(606)은 애플리케이션-특정 집적 회로(ASIC), 필드 프로그램 가능한 게이트 어레이(FPGA), 또는 시스템 온 칩(SoC 또는 SOC)과 같은, 특수 목적 하드웨어로서 구현될 수 있다.
여기에서 사용된 바와 같이 및 일반적으로 이 기술분야의 숙련자들에 의해 이해되는 바와 같이, 애플리케이션-특정 집적 회로(ASIC)는 일반-목적 사용을 위해 의도되기보다는, 특정한 사용을 위해 맞춤화되는 집적 회로이다.
여기에서 사용된 바와 같이 및 일반적으로 이 기술분야의 숙련자들에 의해 이해되는 바와 같이, 필드 프로그램 가능한 게이트 어레이(FPGA)는 제조 후 고객 또는 설계자에 의해 구성되도록 설계되는 집적 회로이다 - 그러므로 "필드-프로그램 가능한". FPGA 구성은 일반적으로, ASIC을 위해 사용된 것과 유사한, 하드웨어 디스크립션 언어(HDL)를 사용하여 특정된다.
여기에서 사용된 바와 같이 및 일반적으로 이 기술분야의 숙련자들에 의해 이해되는 바와 같이, 칩 상에서의 시스템 또는 시스템 온 칩(SoC 또는 SOC)은 컴퓨터 또는 다른 전자 시스템의 모든 구성요소들을 단일 칩으로 통합하는 집적 회로(IC)이다. 그것은 디지털, 아날로그, 믹싱-신호, 및 종종 라디오-주파수 기능들 - 모두 단일 칩 기판 상에 있는 - 을 포함할 수 있다. 통상적인 애플리케이션은 내장 시스템들의 영역에 있다.
통상적인 SoC는 다음의 하드웨어 구성요소들을 포함한다:
하나 이상의 프로세서 코어들(예를 들어, 마이크로컨트롤러, 마이크로프로세서 또는 디지털 신호 프로세서(DSP) 코어들).
메모리 블록들, 예를 들어 판독 전용 메모리(ROM), 랜덤 액세스 메모리(RAM), 전기적으로 삭제 가능한 프로그램 가능 판독-전용 메모리(EEPROM) 및 플래시 메모리.
발진기들 또는 위상-동기 루프들(phase-locked loops)과 같은, 타이밍 소스들.
카운터-타이머들, 실시간 타이머들, 또는 파워-온 리셋 발생기들과 같은, 주변 장치들.
외부 인터페이스들, 예를 들어, 범용 직렬 버스(USB), 파이어와이어, 이더넷, 범용 비동기식 수신기/송신기(USART), 직렬 주변 인터페이스(SPI) 버스와 같은 산업 표준들.
아날로그 대 디지털 변환기들(ADC들) 및 디지털 대 아날로그 변환기들(DAC들)을 포함하는 아날로그 인터페이스들.
전압 조절기들 및 전력 관리 회로들.
이들 구성요소들은 독점 또는 산업-표준 버스에 의해 연결된다. 직접 메모리 액세스(DMA) 제어기들은 외부 인터페이스들 및 메모리 사이에서 직접 데이터를 라우팅하여, 프로세서 코어를 바이패싱하며 그에 의해 SoC의 데이터 스루풋을 증가시킨다.
통상적인 SoC는 상기에서 설명된 하드웨어 구성요소들, 및 프로세서 코어(들), 주변 장치들 및 인터페이스들을 제어하는 실행 가능한 지시들(예를 들어, 소프트웨어 또는 펌웨어) 양쪽 모두를 포함한다.
본 개시의 양상들에 따르면, 텍스처 유닛들(606)의 기능들 중 일부 또는 모두는 대안적으로 소프트웨어 프로그램 가능한 범용 컴퓨터 프로세서에 의해 실행되는 적절하게 구성된 소프트웨어 지시들에 의해 구현될 수 있다. 이러한 지시들은 컴퓨터-판독 가능한 매체, 예를 들어, 메모리(608) 또는 저장 디바이스(615)에 구체화될 수 있다.
시스템(600)은 또한 잘-알려진 지원 기능들(610)을 포함할 수 있으며, 이것은 예를 들어 버스(609)를 통해, 시스템의 다른 구성요소들과 통신할 수 있다. 이러한 지원 기능들은 이에 제한되지 않지만, 입력/출력(I/O) 요소들(611), 전원 공급 장치들(P/S)(612), 클록(CLK)(613) 및 캐시(614)를 포함할 수 있다. 캐시(614) 외에, GPU(604)는 그 자신의 GPU 캐시(614 G )를 포함할 수 있으며, GPU는 GPU(604) 상에서 실행하는 프로그램들이 GPU 캐시(614 G )를 통해 판독하거나 또는 그것을 통해 기록할 수 있도록 구성될 수 있다.
시스템(600)은 프로그램들 및/또는 데이터를 저장하기 위해 디스크 드라이브, CD-ROM 드라이브, 플래시 메모리, 테이프 드라이브 등과 같은 대용량 저장 디바이스(615)를 임의적으로 포함할 수 있다. 시스템(600)은 또한 시스템(600) 및 사용자 사이에서의 상호 작용을 용이하게 하도록 사용자 및 사용자 인터페이스 유닛(618)에 렌더링된 그래픽들(617)을 제공하기 위해디스플레이 디바이스(616)를 임의적으로 포함할 수 있다. 디스플레이 디바이스(616)는 평판 디스플레이, 헤드 장착 디스플레이(HMD), 음극선관(CRT) 스크린, 프로젝터, 또는 시각적 텍스트, 숫자들, 그래픽 심볼들 또는 이미지들을 디스플레이할 수 있는 다른 디바이스의 형태로 있을 수 있다. 디스플레이(616)는 여기에 설명된 다양한 기술들에 따라 프로세싱된 렌더링된 그래픽 이미지들(617)을 디스플레이할 수 있다. 사용자 인터페이스(618)는 키보드, 마우스, 조이스틱, 광 펜, 게임 제어기, 또는 그래픽 사용자 인터페이스(GUI)와 함께 사용될 수 있는 다른 디바이스를 포함할 수 있다. 시스템(600)은 또한 디바이스가 네트워크(622)를 통해 다른 디바이스들과 통신할 수 있게 하기 위해 네트워크 인터페이스(620)를 포함할 수 있다. 네트워크(622)는, 예를 들어 근거리 네트워크(LAN), 인터넷과 같은 광역 네트워크, 블루투스 네트워크와 같은 개인 영역 네트워크 또는 다른 유형의 네트워크일 수 있다. 이들 구성요소들은 하드웨어, 소프트웨어, 또는 펌웨어, 또는 이들 중 둘 이상의 몇몇 조합으로 구현될 수 있다.
그래픽스 파이프라인(Graphics Pipeline)
본 개시의 양상들에 따르면, 시스템(600)은 그래픽스 렌더링 파이프라인의 부분들을 구현하도록 구성된다. 도 6b는 본 개시의 양상들에 따른 그래픽스 렌더링 파이프라인(630)의 예를 예시한다.
렌더링 파이프라인(630)은 2-차원, 또는 바람직하게는 가상 공간(때때로 여기에서 "세계 공간"으로 불리우는)에서의 3-차원 지오메트리를 가진 장면을 묘사하는 이미지들로서 그래픽들을 렌더링하도록 구성될 수 있다. 파이프라인의 초기 단계들은 장면이 디스플레이 디바이스(616) 상에서의 출력에 적합한 별개의 화상 요소들의 세트로서 래스터화되며 스크린 공간으로 변환되기 전에 가상 공간에서 수행된 동작들을 포함할 수 있다. 파이프라인 전체에 걸쳐, 그래픽스 메모리(628)에 포함된 다양한 리소스들은 파이프라인 단계들에서 이용될 수 있으며 단계들로의 입력들 및 출력들은 이미지들의 최종 값들이 결정되기 전에 그래픽스 메모리에 포함된 버퍼들에서 임시로 저장될 수 있다.
렌더링 파이프라인은 입력 데이터(632)에 대해 동작할 수 있으며, 이것은 가상 공간에서 셋업되며 장면에서의 좌표들에 대해 정의되는 기하학적 구조를 갖는 버텍스들의 세트에 의해 정의된 하나 이상의 가상 오브젝트들을 포함할 수 있다. 파이프라인의 초기 단계들은 도 6b에서 버텍스 프로세싱 단계(634)로서 광범위하게 분류되는 것을 포함할 수 있으며, 이것은 가상 공간에서 오브젝트들의 버텍스들을 프로세싱하기 위해 다양한 계산들을 포함할 수 있다. 이것은 버텍스 쉐이딩 계산들(636)을 포함할 수 있으며, 이것은 위치 값들(예를 들어, X-Y 좌표 및 Z-깊이 값들), 컬러 값들, 조명 값들, 텍스처 좌표들 등과 같은, 장면에서의 버텍스들의 다양한 파라미터 값들을 조작할 수 있다. 바람직하게는, 버텍스 쉐이딩 계산들(636)은 하나 이상의 프로그램 가능한 버텍스 쉐이더들에 의해 수행된다. 버텍스 프로세싱 단계는 가상 공간에서 새로운 버텍스들 및 새로운 기하학적 구조들을 생성하기 위해 임의적으로 사용될 수 있는 테셀레이션(tessellation) 및 지오메트리 쉐이더 계산들(638)과 같은, 부가적인 버텍스 프로세싱 계산들을 임의적으로 포함할 수 있다. 일단 버텍스 프로세싱(634)으로 불리우는 단계가 완료되면, 파이프라인에서의 이러한 단계에서, 장면은 각각이 버텍스 파라미터 값들(639)의 세트를 갖는 버텍스들의 세트에 의해 정의된다.
파이프라인(630)은 그 후 장면 지오메트리를 스크린 공간 및 별개의 화상 요소들, 즉 픽셀들의 세트로 변환하는 것과 연관된 래스터화 프로세싱 단계들(640)로 진행할 수 있다. 가상 공간 기하학적 구조는 근본적으로 가상 공간으로부터 장면의 뷰잉 윈도우(또는 "뷰포트(viewport)")로 오브젝트들 및 버텍스들의 사영를 계산할 수 있는 동작들을 통해 스크린 공간 기하학적 구조로 변환될 수 있다. 버텍스들은 프리미티들의 세트를 정의할 수 있다.
도 6b에 도시된 래스터화 프로세싱 단계(640)는 프리미티브 어셈블리 동작들(642)을 포함할 수 있으며, 이것은 장면에서 버텍스들의 각각의 세트에 의해 정의되는 프리미티브들을 셋업할 수 있다. 각각의 버텍스는 인덱스에 의해 정의될 수 있으며, 각각의 프리미티브는 그래픽스 메모리(628)에서의 인덱스 버퍼들에 저장될 수 있는, 이들 버텍스 인덱스들에 대하여 정의될 수 있다. 프리미티브들은 바람직하게는 3개의 버텍스들 각각에 의해 정의된 적어도 삼각형들을 포함할 수 있지만, 또한 포인트 프리미티브들, 라인 프리미티브들, 및 다른 다각형 형태들을 포함할 수 있다. 프리미티브 어셈블리 단계(642) 동안, 특정한 프리미티브들은 임의적으로 컬링(culling)될 수 있다. 예를 들면, 그것의 인덱스들이 특정한 와인딩 순서를 표시하는 이들 프리미티브들은 배면(back-facing)하는 것으로 고려될 수 있으며 장면으로부터 컬링될 수 있다.
프리미티브들이 어셈블리된 후, 래스터화 프로세싱 단계들은 주사 변환 동작들(644)을 포함할 수 있으며, 이것은 각각의 픽셀에서 프리미티브들을 샘플링하며 샘플들이 프리미티브에 의해 커버될 때 추가 프로세싱을 위해 프리미티브들로부터 단편들(때때로 픽셀들로서 불리우는)을 생성할 수 있다. 임의적으로, 각각의 픽셀에 대한 다수의 샘플들은 주사 변환 동작들(644) 동안 프리미티브들 내에서 취해지며, 이것은 안티-앨리어싱 목적들을 위해 사용될 수 있다. 특정한 구현들에서, 상이한 픽셀들은 상이하게 샘플링될 수 있다. 예를 들면, 몇몇 에지 픽셀들은 헤드 장착 디스플레이들(HMD들)에 대한 렌더링의 특정한 양상들을 최적화하기 위해 중심 픽셀들보다 낮은 샘플링 밀도를 포함할 수 있다. 주사 변환(644) 동안 프리미티브들로부터 생성된 단편들(또는 "픽셀들")은 그것들을 생성한 프리미티브의 버텍스들의 버텍스 파라미터 값들(639)로부터 픽셀들의 위치들로 보간될 수 있는 파라미터 값들을 가질 수 있다. 래스터화 단계(640)는, 파이프라인의 나중 단계들에서 추가 프로세싱을 위한 입력들로서 사용될 수 있는, 이들 보간된 단편 파라미터 값들(649)을 계산하기 위해 파라미터 보간 동작들(646) 단계를 포함할 수 있다.
파이프라인(630)은 보간된 파라미터 값들(649)을 추가로 조작하며 단편들이 어떻게 디스플레이를 위해 최종 픽셀 값들에 기여하는지를 결정하는 추가 동작들을 수행하기 위해, 일반적으로 도 6b에서의 650에서 표시된, 추가 픽셀 프로세싱 동작들을 포함할 수 있다. 이들 픽셀 프로세싱 태스크들의 일부는 단편들의 보간된 파라미터 값들(649)을 추가로 조작하기 위해 사용될 수 있는 픽셀 쉐이딩 계산들(652)을 포함할 수 있다. 픽셀 쉐이딩 계산들은 프로그램 가능한 픽셀 쉐이더에 의해 수행될 수 있으며, 픽셀 쉐이더 호출들(648)은 래스터화 프로세싱 단계들(640) 동안 프리미티브들의 샘플링에 기초하여 개시될 수 있다. 픽셀 쉐이딩 계산들(652)은 때때로 렌더 타겟들로서, 또는 다수이면, 다수의 렌더 타겟들(MRT들)로서 불리우는, 그래픽스 메모리(628)에서의 하나 이상의 버퍼들(605)로 값들을 출력할 수 있다.
MRT들은 픽셀 쉐이더들로 하여금, 각각이 동일한 스크린 치수들을 갖지만 잠재적으로 상이한 픽셀 포맷을 갖는, 하나 이상의 렌더 타겟으로 임의적으로 출력하도록 허용한다.  렌더 타겟 포맷 제한들은 종종 임의의 하나의 렌더 타겟이 단지 4개까지의 독립적인 출력 값들(채널들)을 수용할 수 있으며 이들 4개의 채널들의 포맷들이 서로 단단히 묶여있음을 의미한다. MRT들은 단일 픽셀 쉐이더가 상이한 포맷들의 믹스로 보다 많은 값들을 출력하도록 허용한다.  렌더 타겟들의 포맷들은, 그것들이 스크린 공간 픽셀마다 값들을 저장하지만, 다양한 성능 이유들로, 렌더 타겟 포맷들이 때때로(항상이 아닌) 그것이 텍스처 유닛들에 의해 판독되는 것과 호환 가능하기 전에 데이터를 재포맷하기 위해 "분해(resolve)"로 불리우는 것을 요구하는, 최근의 하드웨어 생성들에서 보다 전문화되고 있다는 점에서, "텍스처-형"이다.
픽셀 프로세싱(650)은 일반적으로, 흔히 래스터 동작(ROP)으로서 알려져 있는 것을 포함할 수 있는, 렌더 출력 동작들(656)에서 끝날 수 있다. 래스터화 동작들(ROP)은 간단히 다수의 렌더 타겟들(MRT들) 중에서 각각의 렌더 타겟에 대해 한 번, 픽셀 당 다수 회 실행된다. 출력 동작들(656) 동안, 최종 픽셀 값들(659)은 프레임 버퍼에서 결정될 수 있고, 이것은 임의적으로 단편들을 병합하는 것을 포함하여, 스텐실들, 깊이 테스트들, 및 특정한 샘플 단위 프로세싱 태스크들을 적용할 수 있다. 최종 픽셀 값들(659)은 모든 활성 렌더 타겟들(MRT들)로의 수집된 출력을 포함한다. GPU(604)는 완성된 프레임(660)을 형성하기 위해 최종 픽셀 값들(659)을 사용하며, 이것은 실시간으로 디스플레이 디바이스(616)의 픽셀들에 대해 임의적으로 디스플레이될 수 있다.
출력 동작들(650)은 또한 텍스처 매핑 동작들(654)을 포함할 수 있으며, 이것은 하나 이상의 픽셀 쉐이더들(PS)에 의해 어느 정도까지 및 텍스처 유닛들(606)에 의해 어느 정도까지 수행될 수 있다. 픽셀 쉐이더 계산들(652)은 스크린 공간 좌표들(XY)로부터 텍스처 좌표들(UV)을 산출하는 것, 및 텍스처 동작들(654)로 텍스처 좌표들을 전송하는 것, 및 텍스처 데이터(TX)를 수신하는 것을 포함한다.  텍스처 좌표들(UV)은 임의의 방식으로 스크린 공간 좌표들(XY)로부터 산출될 수 있지만, 통상적으로 보간된 입력 값들로부터 또는 때때로 이전 텍스처 동작들의 결과들로부터 산출된다.  그라디언트들(gr)은 종종 텍스처 유닛들(606)(텍스처 동작들 하드웨어 유닛들)에 의해 텍스처 좌표들의 쿼드들(quads)로부터 직접 산출될 수 있지만, 임의적으로 픽셀 쉐이더 계산들(652)에 의해 명확하게 산출되며 디폴트 산출을 수행하기 위해 텍스처 유닛들(606)에 의존하기보다는 텍스처 동작들(654)로 나아갈 수 있다.
텍스처 동작들(654)은 일반적으로 픽셀 쉐이더(PS) 및 텍스처 유닛(606)의 몇몇 조합에 의해 수행될 수 있는, 다음의 단계들을 포함한다. 첫 번째로, 픽셀 위치(XY) 당 하나 이상의 텍스처 좌표들(UV)은 각각의 텍스처 매핑 동작을 위한 좌표 세트를 제공하기 위해 생성 및 사용된다. 그 후, 스크린 공간에서의 비-정규 직교 그리드에 기초한 픽셀 샘플 위치들에 대한 텍스처 공간 그라디언트 값들(gr)이 생성된다. 최종적으로, 텍스처 공간 그라디언트 값들(gr)은 보정된 텍스처 공간 값들(Gr)을 생성하기 위해 조정 값들(trans)에 의해 수정된다.
몇몇 구현들에서, 픽셀 쉐이더(PS)는 픽셀 위치(XY)마다 텍스처 좌표들(UV)을 생성하며 각각의 텍스처 매핑 동작을 위한 좌표 세트를, 텍스처 공간 그라디언트 값들(gr)을 생성하며 보정된 텍스처 공간 그라디언트 값들(Gr)을 생성하기 위해 그것들을 수정할 수 있는, 텍스처 유닛(606)에 제공 할 수 있다.
다른 구현들에서, 픽셀 쉐이더(PS)는 텍스처 공간 좌표들(UV) 및 픽셀 위치들(XY)과의 명시적 차이값들(gr)을 산출하며 차이값들 및 텍스처 공간 좌표들을 텍스처 유닛(606)에 전달하고(임의적으로 조정 매트릭스(trans)와 함께) 그것이 여전히 그라디언트 값들(Gr)을 얻기 위해 변환(trans)을 적용함으로써 명시적 차이값들(gr)을 보정해야 함을 텍스처 유닛(606)에 표시할 수 있다.
다른 대안적인 구현들에서, 픽셀 쉐이더(PS)는 텍스처 공간 좌표들(UV) 및 명시적 보정된 그라디언트들(Gr)을 산출하며 그것들을 텍스처 유닛에 전달하여, 매트릭스(trans)를 사용하는 임의의 요구된 변환이 이미 소프트웨어로 적용되었으며 보정된 그라디언트들(Gr)이 LOD를 선택하기 위해 있는 그대로 사용되어야 함을 텍스처 유닛(606)에 표시할 수 있다.
그라디언트 조정
본 개시의 양상들은 그래픽스 파이프라인에서 프리미티브에 적용될 텍스처에 대한 밉맵 레벨(LOD)을 결정하기 위해 텍스처 유닛(606)에 의해 사용되는 그라디언트들(gr)의 조정에 관한 것이다. 기본 개념은 도 2a 내지 도 2c에서 예시된다. 도 2a는 XY 공간에서 "쿼드"로 네 개의 픽셀 샘플들을 도시한다. 도 2b는 상부 좌측, 상부 우측 및 하부 좌측 픽셀들(각각 (x0, y0), (x1, y1), 및 (x2, y2))의 XY 공간에서의 픽셀 샘플 위치들에 관하여 다음과 같이, 수학적으로 표현될 수 있는 XY 공간에서의 차이값들(Δxy)(dx1, dy1, dx2, dy2)을 도시한다:
dx1 = x1-x0
dy1 = y1-y0
dx2 = x2-x0
dy2 = y2-y0
도 2c는 텍스처 좌표들(UV)로부터 산출되는 UV 공간에서의 텍스처 그라디언트들(gr)을 도시한다. 텍스처 그라디언트들(gr)은 상부 좌측, 상부 우측 및 하부 좌측 픽셀들(각각 (u0, v0), (u1, v1) 및 (u2, v2))의 텍스처 좌표들(UV)에 관하여 다음과 같이, 수학적으로 표현될 수 있다:
du_dx = u1-u0
dv_dx = v1-v0
du_dy = u2-u0
dv_dy = v2-v0
du_dx = u1-u0 등의 이들 산출들은 그것들을 픽셀 쉐이더(PS)가 소프트웨어 산출된 값들로 오버라이드하도록 선택하지 않는다면 텍스처 유닛 하드웨어(106)에 의해 수행될 수 있다. 텍스처 그라디언트들(gr)은 그 후 샘플링하기 위한 밉맵 LOD 레벨을 결정하기 위해 텍스처 유닛(606)에 의해 사용된다.
이 예에서, (x3, y3)에서의 픽셀의 위치 및 이의 대응하는 텍스처 좌표(UV)는 그라디언트들을 산출하는 목적을 위해 무시된다. 이 예에서, 하드웨어는 2x2 픽셀들의 쿼드들 상에서 작동하나, 단지 샘플링하기 위한 밉맵 LOD를 결정하기 위해 텍스처 좌표마다 하나의 d_dx 및 d_dy 그라디언트만 필요로 한다고 가정된다.  값들이 선형에 가깝게 달라진다는 가정을 사용하여 그라디언트들을 생성하는데 세 개의 픽셀이면 충분하다.  텍스처 유닛(606)이 이 단순화된 가정을 사용한다면 그것은 하부 우측 픽셀 샘플((x3, y3))로부터의 UV 값들을 폐기할 수 있다.  몇몇 구현들에서, 픽셀 쉐이더들은 UV 값들이 제4 샘플의 값들을 고려하는 것이 그라디언트 산출들을 상당히 개선할 수 있을 만큼 충분히 비-선형적으로 달라진다면, 소프트웨어로 그라디언트들(gr)을 산출하도록 선택할 수 있다.
픽셀 위치들의 정규-직교 세트(즉 dx1=1, dy1=0, dx2=0 및 dy2=1)를 이용하면, gr(du_dx, dv_dx, du_dy 및 dv_dy)을 포함하는 텍스처 그라디언트들은 수정 없이 사용될 수 있다. 정규-직교가 아닌 픽셀 위치들의 세트를 이용하면, 값들(du_dx', dv_dx', du_dy' 및 dv_dy')로 이루어지는, 수정된 텍스처 그라디언트들(Gr)을 생성하는 것이 바람직하다. 이들은 텍스처 좌표들(UV)이 실제 픽셀 위치들((x0,y0), (x1, y1) 및 (x2, y2)) 대신, 정규-직교 픽셀 샘플 위치들((x0,y0), (x1', y1') 및 (x2', y2'))에서 생성되었다면 그라디언트가 취할 수 있는 값의 근사값을 나타낸다. 텍스처 그라디언트들(gr) 및 수정된 텍스처 그라디언트들(Gr) 사이 조정 매트릭스(trans)를 사용하는 일반화된 변환은 다음과 같이 비-정규 직교 픽셀 샘플 위치들의 XY 공간 좌표들의 차이값들(deltaxy)에 관하여 수학적으로 표현될 수 있다:
D = dx1*dy2 - dx2*dy1
trans_xx = dy2/D
trans_xy = -dy1/D
trans_yx = -dx2/D
trans_yy = dx1/D
여기서, trans_xx, trans_xy, trans_yx, 및 trans_yy는 때때로 변환 계수들로서 불리운다.
각각의 가정된 정규-직교 픽셀 위치들에 기초하여 텍스처 유닛 또는 픽셀 쉐이더에 의해 산출되는 텍스처 좌표 그라디언트(gr)는 그 후 다음과 같이 이 변환을 적용함으로써 텍스처 유닛에 의해 보정될 수 있다:
du_dx' = trans_xx * du_dx + trans_xy * du_dy
du_dy' = trans_yx * du_dx + trans_yy * du_dy
기타, 2 또는 3개의 텍스처 좌표들에 대해, 텍스처 유닛에 의해 요구될 때:
dv_dx' = trans_xx * dv_dx + trans_xy * dv_dy
dv_dy' = trans_yx * dv_dx + trans_yy * dv_dy
dw_dx' = trans_xx * dw_dx + trans_xy * dw_dy
dw_dy' = trans_yx * dw_dx + trans_yy * dw_dy
변환 매트릭스(trans)의 산출은 통상적으로 쿼드에 대한 픽셀 샘플 위치들(XY)을 셋업할 때, GPU(604) 이외에, 예를 들어, CPU(602) 상에서 실행하는 CPU 코드(603C )에 의해 수행된다.  예를 들어, 픽셀 샘플 위치들의 특정한 세트 또는 렌더 타겟 셋팅들을 갖고 GPU(604)의 하드웨어를 구성할 때, CPU 코드(603C )는 또한 차이값들(dx1, dy1, dx2, dy2)로부터 변환 매트릭스(trans)의 네 개의 변환 요소들을 산출할 수 있다.  제한으로서가 아닌, 예로서, 시스템(600)은 또한 변환 매트릭스(trans)를 산출하는 특수 목적 하드웨어 또는 소프트웨어를 포함할 수 있다.
dx1, dy1, dx2, dy2는 동일한 반복 샘플 분포를 공유하는 스크린의 넓은 영역들에 걸쳐 일정하고, 따라서 변환 매트릭스(trans)도 또한 그러하다는 것을 주의하자.  이 이유로 그래픽스 파이프라인(630)의 래스터화 단계(640)에서 스크린 위치에 기초하여 팔레트의 값들 사이에서 선택하는 것이 유용하다.
시간적 안티 -앨리어싱
그라디언트 조정은 특히 시간적 안티-앨리어싱에 유용할 수 있다. 이것의 예들은 도 3a, 도 3b, 도 4 및 도 5를 참조함으로써 이해될 수 있다. 도 3a, 도 3b, 도 4 및 도 5에서, 컬러 및 깊이 값들을 갖는 픽셀들이 회색 원들로 표시된다. 단지 깊이 값들을 갖는 픽셀들은 보다 작은 흑색 원들로 표시된다. 몇몇 구현들에서, 그래픽스 프로세싱은 이미지의 프로세싱을 각각의 프레임이 이미지로부터의 픽셀들의 교차하는 컬럼들로 구성된 두 개의 프레임들 사이에서 나누기 위해 연속적인 프레임들 사이에서의 공통성들을 이용함으로써 가속화될 수 있다.
교차하는 컬럼 시간적 안티-앨리어싱 구성에서 GPU는 하나의 프레임에서 이미지에서의 픽셀들의 모든 다른 컬럼을 렌더링하고 그 후 다음 프레임 상에서 보결을 행한다. 예를 들어, 도 3a에 도시된 바와 같이, 프레임(302)은 각 컬럼의 좌측 상에 컬러 및 깊이 샘플들 및 우측 상에 단지 깊이 샘플들을 가진다. 다음 프레임(304)에서 이것은 역전된다. GPU는 단지 각각의 프레임에서 픽셀들의 절반을 쉐이딩한다. 몇몇 구현들에서, 두 개의 프레임들(302, 304)에서의 픽셀들은 다른 구성들을 교차할 수 있다. 해당 기술분야의 숙련자들은 컬러 샘플들이 있고 없는 픽셀들의 로우들이 교차하는 교차 로우 구성이 사용될 수 있다는 것을 인식할 것이다. 덧붙여, 도 3b에 도시된 바와 같이, 두 개의 프레임들에서의 픽셀들은 컬러 샘플들이 있고 없는 픽셀들이 로우들에 걸쳐 그리고 또한 컬럼들을 따라 교차하는 "체커보드(checkerboard)" 방식으로 교차할 수 있다. 다시, GPU는 단지 각각의 프레임에서 픽셀들의 절반을 쉐이딩한다.
프레임(302)에서 컬러 샘플들을 갖는 픽셀들(회색 원들)의 컬럼들은 프레임(304)에서 대응하는 픽셀 컬럼들과 그것들이 단일 이미지(306)를 형성하는 것과 같은 방법으로 인터리빙한다. 통상적으로 픽셀 쉐이더들 또는 컴퓨트 쉐이더들을 사용하는 GPU에 의해 수행되는, 프레임들(302, 304)의 컬러 및 깊이 값들의 분석은, 단일 이미지(306)를 형성하기 위해 프레임(304)에서의 갭들을 보결할 때 프레임들(302)의 컬러 값들의 완전한 또는 부분적 사용을 가능하게 한다. 이것은 특히 그것이 각각의 프레임에 대해 프로세싱될 필요가 있는 픽셀들의 수를 감소시킨다는 점에서 바람직할 수 있다. 렌더링의 이 유형은 여기에서 "감소된 분해능 렌더링"으로 불리울 수 있다. 이들 시간적 안티앨리어싱 경우들에서, 아이디어는 각각의 컬러 샘플이 보다 높은 분해능 디스플레이의 부분이었던 것처럼 프레임들을 렌더링하는 것이다.
이러한 시간적 안티-앨리어싱에서의 그라디언트를 조정할 필요는 도 4 및 도 5를 참조하여 이해될 수 있다. 구체적으로, 도 3a에 도시된 경우에서, 프레임(302)에서의 쿼드(301)에 대한 그라디언트는 XY 공간에서 (x0, y0), (x1, y1), 및 (x2,y2)에서의 픽셀들의 위치들로부터 산출된다. 이 프레임에서의 픽셀들의 구성으로 인해, 그리드는 정규 직교 그리드가 아니다. 대신에, 그리드는 수평 방향으로 "늘어났다"(또는, 동등하게, 수직 방향으로 "눌렸다"). 이는 그라디언트 구성요소들(du_dx 및 dv_dx)을 왜곡할 수 있다. 정규 직교 그리드에 기초한 대응하는 UV 공간 그라디언트 구성요소들(du_dx' 및 dv_dx')을 산출하기 위해, 그것은 (x1, y1)에서의 픽셀이 (x1', y1')에서의 "빈" 컬럼에 위치되었다면 바람직할 수 있다. 이 예에서, 프레임들(302, 304)의 교차하는 픽셀 컬럼 구성으로 인해, UV 공간 그라디언트 구성요소들(du_dy 및 dv_dy)은 조정될 필요가 없고 실제 샘플 위치들((x0, y0) 및 (x2,y2))로부터 계산될 수 있다. 상기 식들을 사용하면, 이는 d_dx 그라디언트들의 이등분을 야기한다.
dx1 = 2.0
dy1 = 0.0
dx2 = 0.0
dy2 = 1.0
D = (2.0)*(1.0) - (0.0)*(0.0) = 2.0
trans_xx = 1.0/2.0 = 0.5
trans_xy = -0.0/2.0 = 0.0
trans_yx = -0.0/2.0 = 0.0
trans_yy = 2.0/2.0 = 1.0
du_dx' = trans_xx * du_dx + trans_xy * du_dy = 0.5 * du_dx
dv_dx' = trans_xx * dv_dx + trans_xy * dv_dy = 0.5 * dv_dx
du_dy' = trans_yx * du_dx + trans_yy * du_dy = du_dy
dv_dy' = trans_yx * dv_dx + trans_yy * dv_dy = dv_dy
도 3b에 도시된 "체커보드" 경우에서 GPU는 UV 공간 그라디언트의 수평 및 수직 구성요소들 양자를 조정할 필요가 있을 수 있다. 예를 들어, 도 5에 도시된 바와 같이, 포인트들((x0, y0), (x1', y1') 및 (x0, y0), (x2', y2'))을 사용하여 UV 공간 그라디언트들을 계산하는 것이 바람직할 수 있다. 상기 식들을 사용하며, 이는 d_dx 그라디언트들의 이등분 및 d_dy 그라디언트들에서의 그것들의 감산을 야기한다.
du_dx' = 0.5 * du_dx
dv_dx' = 0.5 * dv_dx
du_dy' = du_dy - 0.5 * du_dx
dv_dy' = dv_dy - 0.5 * dv_dx
부가적인 양상들
본 개시의 부가적인 양상은 그래픽스 프로세싱 방법을 포함하며, 상기 그래픽스 프로세싱 방법은: 스크린 공간에서의 샘플 포인트들의 비-정규 직교 그리드에 기초하여 하나 이상의 프리미티브들에 대한 텍스처 공간 그라디언트 값들을 수신 또는 생성하고 스크린 공간에서의 샘플 포인트들의 비-정규 직교성에 대해 보정되는 대응하는 정규-직교 텍스처 공간 그라디언트 값들을 생성하도록 구성되는 변환을 적용하는 단계 및 그라디언트 값들을 생성하기 위해 변환을 텍스처 좌표 값들 간 차이값들에 적용하는 단계를 포함한다.
또 다른 부가적인 양상은 앞서 말한 방법을 구현하도록 구성된 그래픽스 프로세싱 시스템이다.
또 다른 부가적인 양상은 실행될 때, 앞서 말한 방법을 구현하는 컴퓨터 실행 가능한 지시들을 구체화한 컴퓨터-판독 가능한 매체이다.
추가 양상은 앞서 말한 방법을 수행하기 위한 컴퓨터-판독 가능한 지시들을 운반한 전자기 또는 다른 신호이다.
그것이 앞서 말한 방법을 구현하기 위한 프로그램 코드 지시들을 포함한다는 점에서 특성화되는, 통신 네트워크로부터 다운 로드 가능하고 및/또는 컴퓨터-판독 가능한 및/또는 마이크로프로세서-실행 가능한 매체상에 저장된 컴퓨터 프로그램 제품.
본 발명의 바람직한 실시예에 대한 완전한 설명이 상기에 있지만, 다양한 변경들, 수정들 및 등가물들을 사용하는 것이 가능하다. 그러므로, 본 발명의 범위는 상기 설명을 참조하지 않고 결정되어야 하며, 대신에 등가물들의 그것들의 전체 범위와 함께, 첨부된 청구항들을 참조하여 결정되어야 한다. 여기에서 설명된 임의의 특징은, 선호되는지 여부에 관계없이, 여기에서 설명된 임의의 다른 특징과, 선호되는지 여부에 관계없이, 조합될 수 있다. 이어지는 청구항들에서, 부정관사(단수 표현)는, 달리 명확하게 서술되는 경우를 제외하고, 관사를 따르는 아이템 중 하나 이상의 수량을 나타낸다. 첨부된 청구항들은 이러한 제한이 구절("~를 위한 수단")을 사용하여 주어진 청구항에서 명확하게 나열되지 않는다면, 수단-더하기-기능 제한들을 포함하는 것으로 해석되지 않을 것이다.

Claims (10)

  1. 컴퓨터 그래픽스 시스템(computer graphics system)에 있어서,
    텍스처 유닛(texture unit)을 가진 그래픽스 프로세싱 유닛(GPU; graphics processing unit)을 포함하되;
    상기 텍스처 유닛은 스크린 공간에서의 샘플 포인트들의 비-정규 직교 그리드에 기초하여 하나 이상의 프리미티브에 대한 텍스처 공간 그라디언트 값들을 수신 또는 생성하고 상기 스크린 공간에서의 샘플 포인트들의 비-정규 직교성에 대해 보정되는 대응하는 정규-직교 텍스처 공간 그라디언트 값들을 생성하도록 구성되는 변환을 적용하도록 구성되며,
    상기 텍스처 유닛은 상기 그라디언트 값들을 생성하기 위해 상기 변환을 텍스처 좌표 값들 간 차이 값들에 적용하도록 구성되는, 컴퓨터 그래픽스 시스템.
  2. 청구항 1에 있어서,
    상기 텍스처 유닛은 애플리케이션 특정 집적 회로(ASIC; application specific integrated circuit), 필드 프로그램 가능한 게이트 어레이(FPGA; field programmable gate array), 또는 시스템 온 칩(SOC; system on chip)인, 컴퓨터 그래픽스 시스템.
  3. 청구항 1에 있어서,
    상기 비-정규 직교 그리드는 교차하는 컬럼 패턴(column pattern)인, 컴퓨터 그래픽스 시스템.
  4. 청구항 1에 있어서,
    상기 비-정규 직교 그리드는 교차하는 로우 패턴(row pattern)인, 컴퓨터 그래픽스 시스템.
  5. 청구항 1에 있어서,
    상기 비-정규 직교 그리드는 "체커보드(checkerboard)" 패턴인, 컴퓨터 그래픽스 시스템.
  6. 삭제
  7. 청구항 1에 있어서,
    상기 텍스처 유닛은 픽셀 샘플 위치 차이 값들로부터 보정 변환을 산출하도록 구성되는, 컴퓨터 그래픽스 시스템.
  8. 청구항 1에 있어서,
    상기 텍스처 유닛은 하나 이상의 프리미티브에 적용될 텍스처에 대한 복수의 세부 수준(level of detail)으로부터 세부 수준을 선택하기 위해 상기 그라디언트 값들을 사용하도록 더 구성되는, 컴퓨터 그래픽스 시스템.
  9. 청구항 8에 있어서,
    상기 텍스처 유닛은 상기 텍스처를 상기 하나 이상의 프리미티브에 적용하도록 더 구성되는, 컴퓨터 그래픽스 시스템.
  10. 청구항 9에 있어서,
    상기 GPU에 결합된 디스플레이 유닛을 더 포함하되, 상기 디스플레이 유닛은 상기 하나 이상의 프리미티브에 적용된 상기 텍스처를 포함하는 이미지들을 디스플레이하도록 구성되는, 컴퓨터 그래픽스 시스템.
KR1020167027634A 2014-04-05 2015-03-23 비-정규 직교 그리드로의 텍스처 매핑을 위한 그라디언트 조정 KR101925292B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/246,068 US9495790B2 (en) 2014-04-05 2014-04-05 Gradient adjustment for texture mapping to non-orthonormal grid
US14/246,068 2014-04-05
PCT/US2015/021982 WO2015153168A1 (en) 2014-04-05 2015-03-23 Gradient adjustment for texture mapping for multiple render targets with resolution that varies by screen location

Publications (2)

Publication Number Publication Date
KR20160130821A KR20160130821A (ko) 2016-11-14
KR101925292B1 true KR101925292B1 (ko) 2018-12-05

Family

ID=54210222

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020167027634A KR101925292B1 (ko) 2014-04-05 2015-03-23 비-정규 직교 그리드로의 텍스처 매핑을 위한 그라디언트 조정

Country Status (6)

Country Link
US (3) US9495790B2 (ko)
EP (1) EP3129974B1 (ko)
JP (4) JP6389274B2 (ko)
KR (1) KR101925292B1 (ko)
TW (2) TWI602148B (ko)
WO (1) WO2015153168A1 (ko)

Families Citing this family (34)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9495790B2 (en) 2014-04-05 2016-11-15 Sony Interactive Entertainment America Llc Gradient adjustment for texture mapping to non-orthonormal grid
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
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
US9710881B2 (en) 2014-04-05 2017-07-18 Sony Interactive Entertainment America Llc Varying effective resolution by screen location by altering rasterization parameters
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 소니 인터랙티브 엔터테인먼트 아메리카 엘엘씨 가변 렌더링 및 래스터화 파라미터 하에서 가변 뷰포트에 대하여 오브젝트를 효율적으로 리렌더링하는 방법
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
US10783696B2 (en) 2014-04-05 2020-09-22 Sony Interactive Entertainment LLC Gradient adjustment for texture mapping to non-orthonormal grid
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
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
US9892024B2 (en) 2015-11-02 2018-02-13 Sony Interactive Entertainment America Llc Backward compatibility testing of software in a mode that disrupts timing
CN116340022A (zh) 2016-01-22 2023-06-27 索尼互动娱乐股份有限公司 用于向后兼容性的欺骗cpuid
CN116401184A (zh) 2016-01-22 2023-07-07 索尼互动娱乐股份有限公司 模拟向后兼容的传统总线行为
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
US10915333B2 (en) 2016-03-30 2021-02-09 Sony Interactive Entertainment Inc. Deriving application-specific operating parameters for backwards compatiblity
CN106339979B (zh) * 2016-08-30 2019-12-10 四川大学 一种基于哈希函数的计算全息加密方法
CN107863087B (zh) * 2016-09-22 2019-12-31 青岛海信电器股份有限公司 一种显示系统及其显示方法
KR20180038793A (ko) * 2016-10-07 2018-04-17 삼성전자주식회사 영상 데이터 처리 방법 및 장치
US10546365B2 (en) * 2017-03-27 2020-01-28 Advanced Micro Devices, Inc. Single pass flexible screen/scale rasterization
US10719912B2 (en) 2017-04-12 2020-07-21 Microsoft Technology Licensing, Llc Scaling and feature retention in graphical elements defined based on functions
US10628995B2 (en) 2017-04-17 2020-04-21 Microsoft Technology Licensing, Llc Anti-aliasing of graphical elements defined based on functions
US10685473B2 (en) * 2017-05-31 2020-06-16 Vmware, Inc. Emulation of geometry shaders and stream output using compute shaders
US10255655B1 (en) 2017-06-16 2019-04-09 Apple Inc. Serial pixel processing with storage for overlapping texel data
KR102545172B1 (ko) * 2017-12-28 2023-06-19 삼성전자주식회사 샘플링 기반의 렌더링을 수행하는 그래픽 프로세서 및 그 동작방법
JP6408180B1 (ja) 2018-03-20 2018-10-17 ヤフー株式会社 端末制御プログラム、端末装置および端末制御方法
CN109410302B (zh) * 2018-09-30 2022-12-20 先临三维科技股份有限公司 纹理映射方法、装置、计算机设备和存储介质
CN109643462B (zh) * 2018-11-21 2023-07-04 京东方科技集团股份有限公司 基于渲染引擎的实时图像处理方法以及显示设备
CN109947118B (zh) * 2019-04-19 2021-10-26 南京大学 一种使用gpu加速的代价地图快速更新方法
CN112308233A (zh) * 2019-08-02 2021-02-02 伊姆西Ip控股有限责任公司 用于处理数据的方法、设备和计算机程序产品
US11158110B1 (en) 2021-01-06 2021-10-26 Arm Limited Graphics texture mapping
CN116957899A (zh) * 2022-04-19 2023-10-27 象帝先计算技术(重庆)有限公司 图形处理器、系统、装置、设备及方法

Family Cites Families (114)

* 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
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
GB2278524B (en) * 1993-05-28 1997-12-10 Nihon Unisys Ltd Method and apparatus for rendering visual images employing area calculation and blending of fractional pixel lists for anti-aliasing and transparency
US5602391A (en) 1995-02-23 1997-02-11 Hughes Electronics Quincunx sampling grid for staring array
US5719599A (en) * 1995-06-07 1998-02-17 Seiko Epson Corporation Method and apparatus for efficient digital modeling and texture mapping
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
AU2868199A (en) 1998-02-17 1999-08-30 Sun Microsystems, Inc. Graphics system with variable resolution super-sampling
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
AU5686299A (en) 1998-08-20 2000-03-14 Raycer, Inc. Method and apparatus for generating texture
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
JP2002203254A (ja) * 2000-08-30 2002-07-19 Usc Corp 曲面像変換方法及びこの曲面像変換方法を記録した記録媒体
US6731298B1 (en) * 2000-10-02 2004-05-04 Nvidia Corporation System, method and article of manufacture for z-texture mapping
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
JP3679347B2 (ja) * 2001-05-11 2005-08-03 大日本印刷株式会社 柄替えシミュレーションシステム
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
US7046245B2 (en) 2001-10-10 2006-05-16 Sony Computer Entertainment America Inc. System and method for environment mapping
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
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
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
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
US7327365B2 (en) * 2004-07-23 2008-02-05 Microsoft Corporation Shell texture functions
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
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
US20080106489A1 (en) 2006-11-02 2008-05-08 Brown Lawrence G 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
JP2010526455A (ja) * 2007-01-23 2010-07-29 ユークリッド・ディスカバリーズ・エルエルシー 画像データを処理するコンピュータ方法および装置
JP5268271B2 (ja) 2007-03-23 2013-08-21 株式会社東芝 画像表示装置および画像表示方法
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
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 株式会社ローラン パノラマ画像生成方法及びパノラマ画像生成プログラム
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
EP2510494B1 (en) 2009-12-11 2021-12-22 Leica Biosystems Imaging, Inc. Improved 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
CN103026706B (zh) * 2010-07-21 2016-04-20 杜比实验室特许公司 用于多层帧兼容视频传输的系统及方法
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
JP5751865B2 (ja) * 2011-03-03 2015-07-22 セコム株式会社 顔画像処理装置
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 キヤノン株式会社 画像処理装置、画像処理方法
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
JP5979507B2 (ja) 2011-11-24 2016-08-24 パナソニックIpマネジメント株式会社 頭部装着型ディスプレイ装置
GB2497302B (en) 2011-12-05 2017-04-12 Advanced Risc Mach Ltd Methods of and apparatus for processing computer graphics
US9412197B2 (en) 2012-04-04 2016-08-09 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
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
US10176621B2 (en) 2013-06-10 2019-01-08 Sony Interactive Entertainment Inc. Using compute shaders as front end for vertex shaders
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
US10102603B2 (en) 2013-06-10 2018-10-16 Sony Interactive Entertainment Inc. Scheme for compressing vertex shader output parameters
US10096079B2 (en) 2013-06-10 2018-10-09 Sony Interactive Entertainment Inc. Fragment shaders perform vertex shader computations
US10976986B2 (en) 2013-09-24 2021-04-13 Blackberry Limited System and method for forwarding an application user interface
US9495790B2 (en) 2014-04-05 2016-11-15 Sony Interactive Entertainment America Llc Gradient adjustment for texture mapping to non-orthonormal grid
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 소니 인터랙티브 엔터테인먼트 아메리카 엘엘씨 가변 렌더링 및 래스터화 파라미터 하에서 가변 뷰포트에 대하여 오브젝트를 효율적으로 리렌더링하는 방법
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
US9710881B2 (en) 2014-04-05 2017-07-18 Sony Interactive Entertainment America Llc Varying effective resolution by screen location by altering rasterization parameters
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

Also Published As

Publication number Publication date
JP6678209B2 (ja) 2020-04-08
US10134175B2 (en) 2018-11-20
JP2019012535A (ja) 2019-01-24
US20170061671A1 (en) 2017-03-02
TW201705086A (zh) 2017-02-01
KR20160130821A (ko) 2016-11-14
EP3129974B1 (en) 2019-09-04
EP3129974A1 (en) 2017-02-15
US9786091B2 (en) 2017-10-10
JP2020113301A (ja) 2020-07-27
US20150287232A1 (en) 2015-10-08
WO2015153168A1 (en) 2015-10-08
JP2022078281A (ja) 2022-05-24
US9495790B2 (en) 2016-11-15
TWI562095B (en) 2016-12-11
TW201541403A (zh) 2015-11-01
TWI602148B (zh) 2017-10-11
JP6389274B2 (ja) 2018-09-12
EP3129974A4 (en) 2018-01-03
JP2017515219A (ja) 2017-06-08
US20180018809A1 (en) 2018-01-18

Similar Documents

Publication Publication Date Title
KR101925292B1 (ko) 비-정규 직교 그리드로의 텍스처 매핑을 위한 그라디언트 조정
US11301956B2 (en) Varying effective resolution by screen location by altering rasterization parameters
JP6563048B2 (ja) スクリーンの位置によって異なる解像度のターゲットの複数レンダリングのテクスチャ・マッピングの傾き調整
US11238639B2 (en) Gradient adjustment for texture mapping to non-orthonormal grid

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
GRNT Written decision to grant