KR101587439B1 - 필터 탭들을 폐기하는 텍스처 어드레스 모드 - Google Patents

필터 탭들을 폐기하는 텍스처 어드레스 모드 Download PDF

Info

Publication number
KR101587439B1
KR101587439B1 KR1020140030561A KR20140030561A KR101587439B1 KR 101587439 B1 KR101587439 B1 KR 101587439B1 KR 1020140030561 A KR1020140030561 A KR 1020140030561A KR 20140030561 A KR20140030561 A KR 20140030561A KR 101587439 B1 KR101587439 B1 KR 101587439B1
Authority
KR
South Korea
Prior art keywords
texture
color
weight
tap
texture image
Prior art date
Application number
KR1020140030561A
Other languages
English (en)
Other versions
KR20140113559A (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 KR20140113559A publication Critical patent/KR20140113559A/ko
Application granted granted Critical
Publication of KR101587439B1 publication Critical patent/KR101587439B1/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

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Graphics (AREA)
  • Image Generation (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)

Abstract

필터링 프로세스로부터 텍스처 도메인 외부에 속하는 임의의 텍스처 필터 ㅌ탭(즉, 좌표들)을 배제하는 새로운 텍스처 어드레스 모드에 대한 다양한 실시예들이 제공된다. 텍스처 도메인 외부의 탭들은 하나의 실시예에서 고려되지 않는다. 또한 다양한 실시예들은 텍스처 좌표 위치들(ti) 및 가중치들(wi)의 값들에 대해 유연성을 제공한다. 탭 가중치는 탭 위치의 함수 및 특히 탭이 텍스터 내에 있는지의 여부에 따라 수정될 수 있다.

Description

필터 탭들을 폐기하는 텍스처 어드레스 모드{TEXTURE ADDRESS MODE DISCARDING FILTER TAPS}
관련 출원과의 상호 참조
본 출원은 2013년 3월 15일에 제출되고 이에 본원에 명백하게 통합되어 있는 가출원 일련 번호 61/789,870의 우선권을 주장한다.
본 발명은 일반적으로 그래픽 프로세싱(graphics processing)에 관한 것으로 특히 텍스처 어드레스 모드(texture address mode)에 관한 것이다.
텍스처는 형상의 면으로 매핑(mapping)되는 데이터이다. 전형적으로 텍스처 데이터는 컬러 값들로 구성된다. 텍스처 내의 각각의 픽셀은 텍셀(texel)로 칭해진다. 이때 컬러 맵 내의 텍셀은 컬러 값이다.
텍스처 필터링(texture filtering)은 값들이 소스로부터 판독 및 결합되고 나서 그래픽 파이프라인(graphic pipeline) 내의 쉐이더(shader)에게 이용 가능하게 되는 방식이다. 예를 들어, 이방성 필터링(anisotropic filtering)은 사다리꼴의 에어리어(area) 내에서 삼선형(trilinear)으로 샘플링되는 것을 수반한다. 그러나, 많은 다른 텍스처 필터링 기술들이 있다.
텍스처 좌표들은 각 차원 별로 0.0에서 1.0의 범위 내에서 지정된다. 텍스처 어드레스 모드는 필터 탭(filter tap)을 처리하거나 이 범위 밖의 좌표들을 처리하는 방법을 명시한다. 텍스처 필터링 기술과 마찬가지로, 많은 텍스처 어드레스 모드들이 있다.
기존 텍스처 어드레스 모드들은 각각 에지(edge) 하에 어떤 바이어스(bias) 같은 종류를 도입하므로 텍스처 내부에 해당하는 텍스처 필터 커널(kernel)의 일부만을 샘플링하는 데에는 적합하지 않다. 특히 도 1에 도시되는 바와 같이, 필터가 커버하는 에어리어(필터 풋프린트(filter footprint))가 다수의 텍스처들에 걸쳐 속할 때, 텍스처 내에 포함되는 탭들에 D3D11_TEXTURE_ADDRESS_CLAMP가 제공된다. 한 측으로 바이어싱되는 번지는(smudged) 에지가 생길 수 있다. 이 방법은 불량한 이미지 품질을 양산할 수 있다.
다른 방법은 텍스처에 대한 가드 밴드(guard band)를 사용하는 것이다. 이 방법은 도 2에 도시된다. 이 방법은 텍스처 에지들에 가까이에서 필터 폭을 수용하고 인접한 텍스처의 데이터를 경계 영역들 내에 복사하도록 더 큰 텍스처 면(가드 밴드라 칭해짐)을 할당한다. 실제로, 텍스처 필터 커널은 실제로 샘플링되는 텍스처 외에도 인접하는 텍스처들을 고려한다. 이는 통상적으로 허용 가능하여 결과적으로 저 품질 렌더링(rendering) 시나리오들에서 품질을 개선할 수 있다. 그러나, 이 방법은 데이터의 복사로 인해 현저하게 더 많은 금액과 대역폭을 필요로 한다. 또한, 하드웨어 텍스처 샘플러에 의해 통상적으로 계산되는 어떤 양들을 계산하기 위해 쉐이더 프로그램이 사용되어야만 한다. 2개의 프래그먼트(fragment)들이 상이한 컬러들이라면, 그 결과적인 샘플들은 두 프래그먼트들의 컬러 혼합을 일으킨다. 허용 가능한 컬러 결과가 발생할 수는 있으나, 가드 밴드들 및 추가 계산의 성능을 위해 메모리에 액세스들 및 저장의 희생이 따른다.
개별 좌표들(ti로 칭해짐)을 가지는 다수의 텍스처 탭(texture tap)들은 가중치들(wi로 칭해짐)을 사용하여 가중되고 각각의 텍스처 탭 별로 서로 합산된다. 값(i)은 1부터 N까지의 정수이다. 각각의 탭의 좌표들에서의 컬러는 텍스처 어드레스 모드 함수(F로 칭해짐)에 의해 결정되고, 이 컬러는 소정의 좌표에서의 텍스트 컬러이거나 또는 텍스처 어드레스 모드에 의해 수정된 좌표에서의 텍스트 컬러 또는 일정 경계 컬러이다. 최종 컬러(C로 칭해짐)는 다음과 같이 계산된다:
C=Σi(wi·F(ti)).
수행되는 실제 계산들은 위의 수학식과는 상이할 수 있다.
이 방법을 사용하면, 모든 탭들은 탭들이 텍스처 내에 속하는지와는 관계 없이 공헌된다. 모든 탭들은 가중치들 가지고 가중치들의 합 = 1이다. 그러나, D3D11_TEXTURE_ADDRESS_CLAMP의 경우에서와 같이, 텍스처 외부의 탭들에게도 중량이 제공되고 최종 컬러는 왜곡될 수 있다.
본 발명의 목적은 상술한 문제를 해결하는 것이다.
본 발명에 따르면, 필터링 프로세스로부터 텍스처 도메인 외부에 속하는 임의의 텍스처 필터 탭들(즉, 좌표들)을 배제하는 새로운 텍스처 어드레스 모드에 대한 다양한 실시예들이 제공된다. 텍스처 도메인 외부의 탭들은 하나의 실시예에서 고려되지 않는다. 또한 다양한 실시예들은 텍스처 좌표 위치들(ti) 및 가중치들(wi)의 값들에 대해 유연성을 제공한다. 탭 가중치는 탭 위치의 함수 및 특히 탭이 텍스터 내에 있는지의 여부에 따라 수정될 수 있다.
일부 실시예들은 다음의 도면들과 관련하여 기술된다.
도 1은 다수의 텍스처들에 걸쳐 속하는 필터 풋프린트를 도시하는 도면이다.
도 2는 가드 밴드 텍스처 어드레스 모드를 도시하는 도면이다.
도 3은 하나의 실시예에 따라 텍스처 내부에 3개의 탭들이 있고 텍스처 외부에 2개의 탭들이 잇는 예를 도시하는 도면이다.
도 4는 하나의 실시예의 블록도이다.
도 5는 Ptex 텍스처링(texturing)을 사용하는 하나의 실시예를 도시하는 도면이다.
도 6은 하나의 실시예의 블록도이다.
도 7은 하나의 실시예에 대한 흐름도이다.
도 8은 하나의 실시예의 시스템 도면이다.
도 9는 하나의 실시예의 전면 입면도이다.
다양한 실시예들은 필터링 프로세스로부터 텍스처 도메인 외부에 해당하는 임의의 텍스처 필터 탭들(즉, 좌표들)을 배제하는 새로운 텍스처 어드레스 모드를 제공한다. 텍스처 도메인 외부의 탭들이 하나의 실시예에서 고려되지 않는다. 또한 다양한 실시예들은 텍스처 좌표 위치들(ti) 및 가중치(wi)의 값들에 대해 유연성을 제공한다. 탭 가중치는 탭 위치의 함수로서 그리고 특히 텍스처 내에 탭이 있는지의 여부에 따라 수정될 수 있다.
통상적으로 C를 계산하는 것 외에, 텍스처 내에 속하는 총 필터링 가중치(H로 칭해짐)가 결정될 수 있다. 새 함수(G로 칭해짐)는 텍스처 내의 각각의 포인트에 대해 1 및 텍스처 외의 각각의 포인트에 대해 0을 리턴(return)시킨다. H로 나눔으로써 가중치들의 총합은 1로 정규화될 수 있다.
다양한 실시예들에 따르면, 정규화된 컬러(C’)는 다음과 같이 결정될 수 있다.
C’=C/H, 여기서
H == Σi(wi·G(ti)).
i = 1...N
다시, 수행되는 실제 계산들은 위의 수학식과는 상이할 수 있다.
도 3은 텍스처 외부에 2개의 탭들이 있고 텍스처 내에 3개의 탭들이 있는 예를 제공한다. 이 예에서, 텍스처 내에 3개의 탭들에 대한 G 값은 1이고 이들의 가중치(w1)는 0.1이다. 따라서, H=0.6 및 C’=C/0.6이다. 최종 컬러 값은 H로 나눔으로써 수정되는데 가중치들의 총합은 1이 아닐 수 있다.
일부 실시예들에서, N개의 탭들에 대한 가중치들은 합산이 1이 되도록 규정될 수 있다. 예를 들어, 세 개의 탭들이 가중치들 0.25, 0.5 및 0.25로서 사용될 수 있다. 풋프린트가 타원형이고 샘플들이 타원형 내의 라인을 따라 만들어지는 경우, 타원형의 가운데에 있는 샘플들은 엔드 포인트(end point)들 쪽의 샘플들보다 더 큰 가중치를 획득할 수 있다. 탭들이 0.25, 0.5 및 0.25의 가중치들을 가지는 예를 다시 참조하면, 타원형의 가운데에 있는 샘플은 0.5로 가중될 수 있다. 이 가중치들에 1이 더해지면, 탭들이 거부되지 않는 한(탭들이 0으로 변하게 되거나 0으로 승산됨으로써), 총 가중치로 나누어짐으로써 정규화될 필요가 없는데, 왜냐하면 총 가중치는 1일 것이기 때문이다.
정규화가 사용되는지에 여부는 특정한 구현에 좌우된다. 하나의 구현의 경우 필터링된 컬러를 텍스처 샘플러(texture sampler ;TS) 내의 총 가중치로 나누고 단지 필터링된 컬러만을 쉐이더로 리턴하는 것이 가능할 것이다.
일부 경우들에서, 텍스처 필터 탭들이 텍스처 내에 있다면, H = 0이다. 이 경우 C’는 불분명하다. 일부 실시예들에서, H=0이고, 필터 커널 중앙에 가장 근접한 텍스처 내의 포인트에서의 컬러는 C’로 제공된다.
H=0이면, 값(c’)은 일부 실시예들에서 다음의 방식들 중 하나로 결정될 수 있다:
방법 A
C’ - 일정한 경계 컬러(샘플러 객체를 초기화할 때 애플리케이션에 의해 선택되는 컬러)
방법 B
C’ = [0,0,0,0] (이 네 수들은 각각 레드, 그린, 블루 및 알파이다)
방법 C
tc가 텍스처 필터 풋프린트의 중앙에 있도록 한다(이는 실제로 쉐이더에 의해 제공되는 좌표이다).
그리고 나서, tc에 가장 가까이 있는 유효한 텍스처 도메인(이는 [0,1]x[0,1]이다) 내의 포인트(tv)를 계산한다.
tv = [max(0.0, min(1.0 x(tc))), max(0.0, min(1.0, y (tc)))].
최종적으로, 종래 기술의 텍스처 어드레스 메커니즘을 사용하여 컬러를 계산한다;
C’ = F(tv)
여기서 F에 대한 클램프(clamp) 텍스처 어드레스 모드가 사용될 수 있으나, 다른 어드레스 모드들이 사용하는 것이 착상 가능하다. 텍스처 경계가 있으면, 이는 훌륭한 우수의 평가 f(tv)일 수 있다. 따라서 C’는 텍스처 필터 풋프린트 중앙에 가장 근접한 텍스처 내의 컬러일 수 있다.
텍스처가 사용되지 않는 알파 채널인 경우에, 텍스처 내 어느 곳이든지 알파 채널을 1로 세팅하고, 일정한 경계 컬러를 0 컬러 및 알파로 규정하고, 그 후에 텍스처들 외부에 있는 탭들에 대한 경계 컬러들을 리턴하는 텍스처 어드레스 함수를 사용하는 것이 가능할 것이다. 이 경우에, 재정규화를 위해 필터링된 결과의 컬러 구성요소들을 알파 구성요소로 나눔으로써 원하는 컬러 결과가 획득될 수 있다.
다음은 일부 실시예들 및 가드 밴드 방법 사이의 메모리 사용의 예시 비교를 도시한다. 가상의 128x128 텍셀들의 텍스처 및 전체 MIP MAP 계층(MIP MAP들은 동일한 이미지를 점진적으로 더 작게 한 버전들로서, 텍스처들 내의 에일리어싱(aliasing)을 방지하는데 사용된다) 및 16 텍셀들의 필터 폭(상당히 흔하다)에 있어서 가드 밴드 방법의 크기는 다음일 수 있다:
Mip 0: (128 + 16) * (128 +16) = 20736
Mip 1: (64 + 16) * (64 +16) = 6400
Mip 2: (32 + 16) * (32 +16) = 2304
Mip 3: (16 + 16) * (16 +16) = 1024
Mip 4: (8 + 16) * (8 +16) = 576
Mip 5: (4 + 16) * (4 +16) = 400
Mip 6: (2 + 16) * (2 +16) = 324
Mip 7: (1 + 16) * (1 +16) = 289
총: 32053 텍셀들. 픽셀 당 32비트들(공통)에서, 이는 125kB이다.
무엇이든 경계가 없는 다양한 실시예들을 사용한다:
Mip 0: (128 + 0) * (128 + 0) = 16384
Mip 1: (64 + 0) * (64 + 0) = 4096
Mip 2: (32 + 0) * (32 + 0) = 1024
Mip 3: (16 + 0) * (16 + 0) = 256
Mip 4: (8 + 0) * (8 + 0) = 64
Mip 5: (4 + 0) * (4 + 0) = 16
Mip 6: (2 + 0) * (2 + 0) = 4
Mip 7: (1 + 0) * (1 + 0) = 1
총: 21845 텍셀들 = 85kB
하나의 실시예에 따르면, 바로 해당하는 에지들에서의 적절한 보간을 위해 추가되는 단일 텍셀 경계에 있어서, 이는:
Mip 0: (128 + 1) * (128 + 1) = 16641
Mip 1: (64 + 1) * (64 + 1) = 4225
Mip 2: (32 + 1) * (32 + 1) = 1089
Mip 3: (16 + 1) * (16 + 1) = 289
Mip 4: (8 + 1) * (8 + 1) = 81
Mip 5: (4 + 1) * (4 + 1) = 25
Mip 6: (2 + 1) * (2 + 1) = 9
Mip 7: (1 + 1) * (1 + 1) = 4
총: 22363 텍셀들 = 87kB
매우 다양한 실시예들은 128x128 텍스처들에 대해 대략 30%의 메모리 공간을 절약한다. 해상도가 더 낮은 텍스처들의 경우, 이 수는 증가하고(64x64 텍스처들에 대해서는 ~50% 저장들) 더 큰 해상도들의 경우 이 수는 감소한다(256x256에 대해 ~17%). 객체마다 많은 텍스처를 사용하도록 설계되는 시스템들은 이 시간의 대부분 크기가 128x128 이하인 텍셀들의 텍스처들을 사용하는 것이 가장 가능성이 있을 것이다.
텍스처 샘플링
다음은 일부 실시예들을 사용하는 텍스처 샘플링 시스템에 대한 설명이다. 도 4는 시스템의 블록도를 제공한다.
1. 쉐이더 코어(12) 상에서 실행되는 쉐이더 프로그램(10)은 텍스처 샘플링을 요청하라는 명령(14)을 발행하여, 샘플링되는 텍스처 이미지, 사용될 샘플러 상태 및 자신이 텍스처를 샘플링하고자 하는 (u, v) 텍스처 좌표(전형적으로, 0<=u<=1 및 0<=v<=1은 텍스처 이미지를 표현한다)를 명시한다. 이 요청은 텍스트 샘플러(texture sampler; TS) 유닛(16)으로 넘어간다.
2. 텍스처 샘플러(TS)는, 텍스처 좌표를 중심으로 하여, 필터 컬러를 계산하기 위해 이상적으로 통합되어야 하는 텍스처의 영역을 나타내는 풋프린트를 계산한다.
3. TS는 유한한 수효의 탭들로서 풋프린트로 근사화되고, 이들 탭들의 각각은 (u.v) 위치 및 가중치를 나타내어, 탭들에서의 컬러 값들의 가중 합은 전체 풋프린트에 걸친 적분에 근사화된다. 사용되는 정확한 방법은 샘플러 상태가 어떻게 구성되는지(예를 들어 이방성 필터링이 가능한지의 여부)에 좌우된다.
4. 일부 실시예들에서, TS는 탭 가중치들의 위치들에 기초하여 탭 가중치들을 수정할 수 있는 연산을 적용한다(샘플러 상태가 어떻게 구성되는지에 좌우된다). 예를 들어, 텍스처 이미지의 외부([0,1]x[0,1] 도메인의 외부)에서 (u, v) 위치를 가지는 탭들은 자신들의 가중치가 0으로 세팅될 할 수 있다.
5. TS는 메모리(20) 내의 탭 위치들(18)을 수정할 수 있는 연산을 적용한다(샘플러 상태가 어떻게 구성되는지에 좌우된다). 예를 들어, 텍스처 이미지의 외부에서 (u, v) 위치를 가지는 임의의 탭은 텍스처 이미지 내에 있는 가장 가까운 위치로 이동될 수 있다.
a. 일부 경우들에서, 탭 위치들은 수정된 좌표들(U’ 및 V’)을 산출하기 위해 탭의 U 및 V 좌표들의 각각에 독자적으로 함수를 적용함으로써 수정된다.
샘플러 상태를 사용하여 여러 상이한 모드들이 선택되고, 상이한 모드들은 U 및 V 좌표들에 대해 세팅될 수 있다.
b. 일부 경우들에서, “클램프” 모드는 다음과 같이 새로운 좌표(U’)를 결정하는 데 사용될 수 있다:
U’ = 0, U <0인 경우
U’ = 1, U>1인 경우
U’ = U, 0 <=U<=1인 경우
V에 대해서도 동일하다. 만일 U 및 V 좌표들 모두가 이 “클램프 작동”에 대해 구성되면, 새로운 위치(U’, V’)는 텍스처 내에서 가장 가까운 포인트일 것이다((U, V)까지의 선형 거리의 측면에서).
6. TS는 각각의 탭 위치(22)에서의 텍스처 이미지로부터 컬러 값을 로딩한다.
a. 다양한 실시예들에서, 컬러는 탭에 대한 가중치가 0이 아닌 경우에만 로딩되고 탭에 대한 가중치가 0인 경우 로딩되지 않는다. 따라서, 텍스처 외부에 있는 컬러들에 대한 메모리 액세스 동작들이 방지될 수 있다.
7. TS는 각각의 탭의 컬러를 자체의 가중치로 승산하고 가중된 컬러들을 서로 합산하여 필터링된 컬러를 산출한다. 일부 실시예들에 따르면, TS는 모든 탭들의 가중치들의 합을 계산함으로써 총 가중치를 계산한다.
8. TS는 역으로 쉐이더 프로그램에 필터링된 컬러 및 총 가중치(24)를 제공한다.
일부 경우들에서, 가중치들의 합이 0보다 크지만 1보다 작은 경우, TS는 비정규화를 수행할 수 있다. 일부 경우들에서, TS는 정규화를 수행하지 않고 정규화되지 않은 합산된 필터링된 컬러 및 총 가중치를 역으로 쉐이더에 제공한다. 이것은 다중 샘플링된 반-에일리어싱(multi-sampled anti-aliasing; MSAA) 없이 Ptex 텍스처링 매핑 시스템을 구현하는 경우에 유용한데, 왜냐하면 다수의 샘플링 요청들에 걸친 가중치들은 정규화 전에 쉐이더 코드를 사용하여 결합될 수 있기 때문이다.
도 7에 도시되는 텍스처 샘플링 시퀀스(40)는 하나의 실시예에 따르면 소프트웨어, 펌웨어 및/또는 하드웨어로 구현될 수 있다. 소프트웨어 및 펌웨어 실시예들에서 이것은 자기, 광학 또는 반도체 저장소와 같은 하나 이상의 비 일시적 컴퓨터 판독 가능 매체에 저장되는 컴퓨터 실행 명령어에 의해 구현될 수 있다.
하나의 실시예에서, 시퀀스는 블록 42에 표시되는 바와 같이, 텍스처 샘플링을 수행하라는 요청에 액세스함으로써 시작할 수 있다. 그리고 나서 풋프린트 위치 및 샘플링에 대한 크기는 블록 44에 표시되는 바와 같이 결정된다. 이 이후에 블록 46에 도시되는 바와 같이 하나 이상의 필터 캡 위치들 및 풋프린트와 연관되는 각각의 필터 탭에 대한 가중치가 결정될 수 있다. 다음으로, 텍스처 이미지의 외부에 위치되는 임의의 탭의 가중치는 블록 48에 표시되는 바와 같이 선별적으로 수정된다.
텍스처 이미지의 외부에 위치되는 임의의 탭의 위치는 블록 50에 표시되는 바와 같이 또한 선별적으로 수정된다. 텍스처 이미지 내의 각각의 필터 탭 위치에 대해 그리고 0이 아닌 가중치에 있어서, 텍스처 이미지 내의 컬러 값이 요청된다(블록 54). 탭에 대한 각각의 컬러가 자체의 가중치로 승산된다(블록 56). 가중된 컬러들의 합이 결정되어 블록 58에 도시되는 바와 같이 필터링된 컬러가 생성된다. 최종적으로, 최종 필터링된 컬러, 이 필터링된 컬러에 기초하는 최종 컬러가 블록 60에서 표시되는 바와 같이 산출된다.
사용자 모델들
그래픽 프로세싱 유닛(graphic processing unit; GPU)-가속 Ptexstyle 텍스처링 시스템을 구현하기 위하여 다양한 실시예들이 사용될 수 있다. 예를 들어, Walt Disney Animation Studios Ptex, Ptex 텍스처링이 인터넷 상에서 Ptex.us에서 기술된다. 다른 버전들은 NVIDIA에서 입수 가능하다.
PTEX 구현( MSAA 없는 다양한 실시예들을 사용한다)
1. 중앙 처리 장치(CPU) 상에서 가동 중인 애플리케이션은 모델에 대한 기하학적 데이터 및 텍스처들을 로딩하며, 여기서 이 기하구조 내의 각각의 원형(primitive)은 별개의 텍스처와 연관될 수 있다. 이에 따라, 텍스처 샘플링에 의해 산출되는 필터링된 컬러들이 정확하지 않은 경우, 텍스처들 사이의 경계에서 “끊어짐(seam)”들이 나타나는 잠재적인 문제가 있다.
2. 애플리케이션은 다양한 실시예들을 사용하도록 구성되는 샘플러 상태를 만든다.
3. 애플리케이션은 텍스처-샘플링 연산을 포함하는 쉐이더 프로그램을 생성한다.
4. 애플리케이션은 텍스처들, 샘플러 상태 및 쉐이더 프로그램을 GPU의 현재 상태와 결부시키고 GPU에 상기 기하 구조를 렌더링하도록 요청한다.
5. GPU 상기 기하 구조 내의 원형들을 래스터화(rasterize)하여 프래그먼트들을 만든다. MSAA가 사용되고 있지 않은 경우, 원형이 픽셀의 중심을 커버할 때 상기 원형은 단지 하나의 프래그먼트를 생성한다. 특히, 각각 텍스처들(T1 및 T2)과 연관되는 2개의 인접한 원형들(P1 및 P2) 모두가 부분적으로 동일한 픽셀을 커버하면, 픽셀 중심을 커버하는 원형에 대해 단 하나의 프래그먼트만이 생성될 것이다(이것이 F1인 것으로 가정한다). 이 픽셀에 대한 이상적인 값은 T1 및 T2로부터의 컬러들의 결합으로, 상기 픽셀이 어느 만큼 P1 또는 P2에 의해 커버되는지에 좌우될 수 있다.
6. GPU는 각각의 프래그먼트에 대해 쉐이더 프로그램을 한번씩 수행한다.
7. 쉐이더 프로그램은 다양한 실시예들을 사용하여 수행되는 하나 이상의 텍스처-샘플링 연산들을 요청한다.
a. 프래그먼트(F1)를 프로세싱하는 경우, 쉐이더는 먼저 텍스처(T1)로부터 샘플링을 요청하고 T1의 외부에 속하는 모든 탭들이 거부되는 필터링된 컬러를 얻을 것이다.
b. 후속해서, 쉐이더는 쉐이딩되는 프래그먼트의 (x, y) 위치가 원형의 경계에 가까이 있을 때마다 추가 텍스처 샘플링 요청들을 발행할 것이다. 각각의 후속 요청은 가까이 있는 원형에 의해 사용되는 텍스처를 찾고 대응하는 텍스처 좌표에서 텍스처 샘플 연산을 요청함으로써 행해진다. 프래그먼트가 원형의 경계에 가까이 있으나, 가장자리에 가까이 있지 않으면, 이는 단일 추가 샘플 요청(예를 들어 텍스처(T2)로부터의 샘플링을 위한)을 수반할 것이다. 프래그먼트가 가장자리 가까이 있으면, 추가 요청들의 수는 입력된 기하 구조에서의 정점의 베일런스(valence)(즉, 상기 정점을 공통으로 공유하는 원형들의 수)에 좌우될 것이다. 가까이 있는 원형들은 애플리케이션에 의해 구축되고 쉐이더에 의해 액세스 가능한 인접 구조를 사용하여 발견될 수 있다.
8. 쉐이더는 텍스처 샘플링 요청들에 걸친 총 가중치들 및 필터링된 컬러들의 합을 계산하고, 필터링된 컬러들의 합을 총 가중치의 합으로 나눔으로써 최종 컬러를 계산한다. 최종 컬러는 아래 a 및 b로 인해 타원형 풋프린트에 대한 이상적인 적분에 대한 양호한 근사치이다.
a. 각각의 요청에 대한 총 가중치는 각각의 텍스처 내에 속하는 필터 풋프린트의 비에 좌우된다. 이것은 각각의 원형에 의해 커버되는 픽셀의 에어리어의 프랙션(fraction)에 좌우된다(필터 풋프린트가 텍스처 공간 내로의 픽셀의 프로젝션(projection of the pixel)과 관련되기 때문이다).
b. 그러므로, 예를 들어 T1 및 T2로부터의 최종 프래그먼트 컬러에 대한 기여도는 P1 및 P2가 (각각) 픽셀을 커버하는 정도에 비례하고, 이는 상술한 바와 같이 이상적인 결과이다.
도 5에 도시되는 예에서, PTEX 표현에 선행하여 상부에 목표 표현이 도시되고, 본원에서 기술되는 하나의 실시예에 의한 결과가 하부에 도시된다. 이 경우에, 목표 뷰(view)에서, 픽셀은 중심에 있으나 이는 2개의 프래그먼트들에 의해 부분적으로 커버되고, 그러나 픽셀의 중심의 상위 프래그먼트 내에 위치된다. 그러므로 PTEX 표현에서, 픽셀은 프래그먼트들의 경계를 따라 이 프래그먼트들에 걸치는 것으로 도시된다. 개시된 기술들의 결과는, 하나의 실시예에서, 하부 표현에서 도시된 바와 같이 픽셀 중심을 포함하는 프래그먼트 및 픽셀 중심을 포함하지 않는 프래그먼트를 결합한 것이다.
다시, 최종 컬러는 PTEX 표현 및 제안된 방법의 표현에서 도시되는 타원형 풋프린트에 대한 이상적인 적분에 대한 양호한 근사치이다. 각각의 요청에 대한 총 가중치는 각각의 텍스처 내에 속하는 도 5에서의 상부 표현에 도시되는 필터 풋프린트의 비에 좌우된다. 그러므로 2개의 프래그먼트들 각각으로부터의 최종 프래그먼트 컬러의 기여도는 각각의 원형이 픽셀을 커버하는 정도에 비례하고, 이는 이상적인 결과이다.
PTEX (다양한 실시예들 + MSAA 를 사용한다)
1. 중앙 처리 장치(Central Processing Unit)(CPU) 상에서 가동 중인 애플리케이션은 모델에 대한 기하학적 데이터 및 텍스처들을 로딩하며, 여기서 이 기하구조 내의 각각의 원형은 별개의 텍스처와 연관될 수 있다. 이에 따라, 텍스처 샘플링에 의해 산출되는 필터링된 컬러들이 정확하지 않은 경우, 텍스처들 사이의 경계에서 “끊어짐”들이 나타나는 잠재적인 문제가 있다.
2. 애플리케이션은 다양한 실시예들을 사용하도록 구성되는 샘플러 상태를 만든다.
3. 애플리케이션은 텍스처-샘플링 연산을 포함하는 쉐이더 프로그램을 생성한다.
4. 애플리케이션은 텍스처들, 샘플러 상태 및 쉐이더 프로그램을 GPU의 현재 상태와 결부시키고 GPU에 상기 기하 구조를 렌더링하도록 요청한다.
5. GPU 상기 기하 구조 내의 원형들을 래스터화하여 커버리지 마스크(coverage maskt)들을 가지는 프래그먼트들을 만든다. 특히, 텍스처들(T1 및 T2)과 각각 연관되는 2개의 인접한 원형들(P1 및 P2) 모두가 동일한 픽셀을 부분적으로 커버하는 경우, 각각 자체의 마스크에서 가능한 상이한 샘플들의 서브세트를 가지는 프래그먼트들(F1 및 F2)이 생성될 것이다.
a. 이 픽셀에 대한 이상적인 값은 T1 및 T2로부터의 컬러들이 결합으로, 상기 픽셀이 어느 만큼 P1 또는 P2에 의해 커버되는지에 좌우될 수 있다.
6. GPU는 각각의 프래그먼트에 대해 쉐이더 프로그램을 한번씩 수행한다.
7. 쉐이더 프로그램은 다양한 실시예들(텍스처 샘플링 하에서 상술되는)을 사용하여 수행되는 텍스처 샘플링 연산을 요청한다.
a. 프래그먼트(F1)를 프로세싱하면, 텍스처 풋프린트는 텍스처(T1 및 T2) 모두에 걸칠 수 있으나, 다양한 실시예들에 있어서, T1의 외부에 속하는 탭들은 거부된다.
b. 유사하게, F2를 프로세싱할 때 T2의 외부에 속하는 탭들이 거부된다.
8. 쉐이더 프로그램은 각각의 프래그먼트에 대한 컬러를 계산하기 위해 필터링된 컬러를 총 가중치로 나눈다. 이 재정규화 단계에 따라 다양한 실시예들에 의해 일부 필터 탭들이 거부된다. 일부 경우들에서, 텍스처 샘플들은 필터링된 컬러를 총 가중치로 나눌 수 있다.
9. 파이프라인의 프래그먼트 백-엔드(back-end)는 프래그먼트들의 마스크들 및 계산된 컬러 값들과 함께 프래그먼트를 수용하고 이것들을 대응하는 픽셀들의 샘플들 상으로 합성한다. 단지 마스크가 가능한 샘플들만이 소정의 프래그먼트에 의해 업데이트된다.
a. 그러므로, 프래그먼트들(F1 및 F2)에 대해 계산되는 (텍스처들(T1 및 T2)을 사용하여) 컬러를 포함하는 샘플들의 비는 원형들(P1 및 P2)에 의해 커버되었던 픽셀의 비에 좌우된다.
10. 해상(resolve) 연산은 픽셀 내의 모든 샘플들의 컬러 값들을 결합함으로써, 각각의 픽셀에 대한 최종 컬러 값을 계산한다.
a. 그러므로, T1 및 T2로부터의 컬러에 대한 기여도는 P1 및 P2가 (각각) 각각 픽셀을 커버하는 정도에 비례하고, 이는 상술한 바와 같이 이상적인 결과이다.
MSAA
다음은 MSAA와 함께 사용하기 위하여 텍스처 샘플링을 수반하는 프로세스의 설명을 제공한다. 도 6은 다중 샘플 반-에일리어싱(multi-sample anti-aliasing; MSAA)와 관련되는 실시예들을 사용할 수 있는 시스템(30)을 제공한다.
1. 호스트 CPU(도시되지 않음) 상에서 가동 중인 프로그램은 샘플러 상태를 초기화한다.
2. 호스트 상에서 가동 중인 프로그램은 텍스처들을 텍스처 메모리(32)로 업로딩한다.
3. 호스트 상에서 가동 중인 프로그램은 쉐이더 프로그램들을 컴파일링하고 쉐이더 프로그램 바이트코드를 프로그램 메모리(34)로 업로딩한다.
a. 도 6에서, 텍스처들 및 쉐이더 프로그램들에 대해 별개의 메모리들이 도시된다. 일부 이산의 GPU들이 이 것들 모두에 대해 메모리를 공유하였다. 일부 임베딩(embedding)된 GPU들은 호스트 CPU 및 GPU 상이 자원들을 포함하는 모든 것에 대해 메모리를 공유하였다. 메모리는 임의의 방식으로 물리적으로 그리고/또는 논리적으로 분할될 수 있다.
4. 호스트 CPU 상에서 가동 중인 프로그램은 드로우 콜(draw call)을 개시한다.
5. GPU는 드로우 콜을 프로세싱한다.
6. 시간(a)에서 하나의 원형이 래스터화된다.
a. 개념상 어떤 하나의 시간에는 하나의 원형이 있다. 실제로, 성능을 증가시키기 위해 동시에 프로세싱되는 여러 삼각형들이 있을 수 있다.
7. 래스터화기(36)는 픽셀 내의 어떤 샘플들이 커버되는지를 말하는 픽셀 및 마스크의 (x, y) 위치를 포함하는 프래그먼트들을 생성한다. 원형이 픽셀의 적어도 하나의 샘플을 커버하면 각각의 픽셀에 대한 프래그먼트를 생성한다. 마스크는 샘플이 원형에 의해 커버되었는지에 대한 예/아니오를 나타낸다. 다수의 샘플링에서, 픽셀당 하나 이상의 샘플들이 취해진다. 프레임 버퍼 콘텐츠는 샘플마다 저장된 하나의 컬러를 포함한다. 프레임 버퍼는 클리어 컬러(clear color)로 시작한다. 래스터화기는 각각의 샘플에서 중첩을 테스트한다. 이 결과로 샘플이 커버되거나 커버되지 않은 것으로 결정된다. 쉐이더는 픽셀 당 하나의 컬러를 계산한다. 픽셀 위치 및 커버리지 정보는 프래그먼트로서 칭해진다. 프래그먼트는 단일 삼각형과 연관된다. 여러 삼각형들이 한 픽셀을 중첩할 때, 이 삼각형들은 각각 하나의 프래그먼트를 가진다. 쉐이딩된 컬러는 때로는 프래그먼트 컬러로 칭해진다. 픽셀의 쉐이딩된 컬러는 픽셀 내에서 각각의 커버되는 샘플에서의 프레임 버퍼 내에 저장된다. 커버되지 않은 샘플들은 이들의 구 값을 보관한다. 래스터화기는 각각의 샘플에서 중첩을 테스트하고 커버리지를 결정한다. 모든 기하 구조를 렌더링한 후에, 다중 샘플링된 프레임 버퍼는 디스플레이될 수 있는 픽셀 당 하나의 샘플을 가지는 단일 샘플링된 면 내로 해상될 수 있다. 픽셀 내의 각각의 샘플의 컬러는 합하여 평균을 내어 최종 픽셀 컬러를 제공한다. 텐트 필터(tent filter) 또는 Mitchell 필터와 같은 다른 필터링 방법들 또한 사용될 수 있으나 단순 평균이 실시간 그래픽 용으로는 가장 광범위한 방법이다.)
8. 쉐이더 코어(38)는 래스터화기에 의해 생성되는 각가의 프래그먼트에 대해 프로그램 메모리로부터의 프래그램을 한번 실행한다.
a. 프로그램이 사용자에 의해 생성될 수 있다.
9. 쉐이더 코어 프로그램은 텍스처 샘플링을 요청한다. 텍스처 샘플링은 텍스처 필터 풋프린트의 중심에 있는 샘플에 좌표들을 나타낸다.
10. 텍스처 샘플러(TS)(33)는 이웃하는 프래그먼트들로부터 텍스처 필터 풋프린트 중심들 사이의 거리를 결정함으로써 풋프린트 크기(예를 들어 타원)를 결정한다. 이 거리는 가능하다면 쉐이더 코어 프로그램에서 계산될 수 있다.
11. TS는 페치(fetch)하기 위해 탭들을 계산한다.
12. TS는 각각의 탭의 가중치를 계산한다.
13. TS는 탭 위치에 기초하여 탭 가중치들을 수정하는 연산들을 적용한다.
a. 탭 가중치들은 풋프린트 내에 그리고 텍스처 내에 있는 탭들에게만 가중치가 제공되도록 초기에 기술된 방식으로 세팅될 수 있다.
14. TS는 탭 위치들을 수정하는 연산들을 적용한다. 탭들이 텍스처의 외부에 있는 탭 위치들은 수정될 수 있다. (텍스처 내로의 탭 재배치에 대한 초반의 설명을 참조할 것)
15. TS는 텍스처 메모리로부터 각각의 탭에서의 컬러를 로딩한다.
a. 단지 탭 가중치가 0이 아닌 경우 컬러를 로딩.
16. TS는 각각의 탭의 컬러를 자체의 가중치로 승산하고 가중된 컬러들을 서로 합산함으로써 쉐이더 코어 프로그램에 대한 단일 필터링된 컬러 값을 산출한다.
17. 쉐이더 코어 프로그램은 프래그먼트 컬러를 계산하는 일부 방식에서 필터링된 컬러 값을 사용한다.
18. 커버되는 샘플들에 프래그먼트 컬러가 할당된다.
19. 모든 삼각형들이 래스터화되었다면, 픽셀 컬러는 픽셀 내의 모든 샘플들의 평균 컬러로 세팅된다.
a. 모든 기하 구조들을 렌더링한 후에, 다중 샘플링된 프레임 버퍼(35)는 스크린에 디스플레이될 수 있는 단일 샘플링된 면(픽셀 당 하나의 샘플) 내로 해상될 수 있다.
다른 사용들:
가상 메모리 시스템의 상황에서, 매핑되지 않은 메모리 페이지들의 내부의 어드레스들로 해석되는 탭들은 상기 탭들에 대한 가중치를 0으로 세팅함으로써 거절될 수 있다. 일부 경우들에서, 이는 페이지 폴트(page fault)와 연관될 성능 비용을 방지할 수 있다.
도 8은 시스템(700)의 하나의 실시예를 도시한다. 실시예들에서, 시스템(700)은 매체 시스템일 수 있으나 시스템(700)는 이 상황으로 제한되지 않는다. 예를 들어, 시스템(700)은 개인용 컴퓨터(PC), 랩탑 컴퓨터, 울트라-랩탑 컴퓨터, 태블릿, 터치 패드, 휴대용 컴퓨터, 소형 컴퓨터, 팜탑 텀퓨터, 개인용 디지털 보조장치(personal digital assistant; PDA), 셀룰러 전화기, 결합형 셀룰러 전화기/PDA, 텔레비전, 스마트 디바이스(예를 들어 스마트폰, 스마트 태블릿 또는 스마트 텔레비전), 모바일 인터넷 디바이스(mobile internet device; MID), 메시징 디바이스, 데이터 통신 디바이스 등에 통합될 수 있다.
실시예들에서, 시스템(700)은 디스플레이(720)에 결합되는 플랫폼(702)을 포함한다. 플랫폼(702)은 컨텐츠 서비스 디바이스(들)(730) 또는 컨텐츠 전달 디바이스(들)(740)과 같은 컨텐치 디바이스 또는 다른 유사한 컨텐츠 소스들로부터 컨텐츠를 수신할 수 있다. 하나 이상의 내비게이션 피처(feature)들을 포함하는 내비게이션 제어기(750)는 예를 들어 플랫폼(702) 및/또는 디스플레이(720)와 상호 작용하는데 사용될 수 있다. 이 구성요소들 각각은 아래에서 더 상세하게 기술된다.
실시예들에서, 플랫폼(702)은 칩셋(705), 프로세서(710), 메모리(712), 저장소(714), 그래픽 서브시스템(715), 애플리케이션(716) 및/또는 무선장치(718)의 임의의 결합물을 포함할 수 있다. 칩셋(705)은 프로세서(710), 메모리(712), 저장소(714), 그래픽 서브시스템(715), 애플리케이션들(716) 및/또는 무선장치(718) 사이의 상호 접속을 제공할 수 있다. 예를 들어, 칩셋(705)은 저장소(714)와의 상호 접속을 제공할 수 있는 저장 어댑터(도시되지 않음)를 포함할 수 있다.
프로세서(710)는 복잡 명령 세트 컴퓨터(Complex Instruction Set Computer; CISC) 또는 축소 명령 세트 컴퓨터(Reduced Instruction Set Computer; RISC) 프로세서들, x86 명령 세트 호환 프로세서들, 멀티-코어 또는 임의의 다른 마이크로프로세서 또는 중앙 처리 유닛(CPU)로서 구현될 수 있다. 하나의 실시예들에서, 프로세서(710)는 듀얼 코어 프로세서(들), 듀얼 코어 모바일 프로세서(들) 등을 포함할 수 있다. 프로세서는 메모리(712)와 함께 도 7의 시퀀스를 구현할 수 있다.
메모리(712)는 랜덤 액세스 메모리(Random Access Memory; RAM), 동적 랜덤 액세스 메모리(Dynamic RAM; DRAM) 또는 정적 RAM(Static RAM; SRAM)과 같은 비휘발성 메모리 디바이스로 구현될 수 있으나 이로 제한되지 않는다.
저장소(714)는 자기 디스크 드라이브, 광학 디스크 드라이브, 테이프 드라이브, 내부 저장 디바이스, 접속형 저장 디바이스, 플래시 메모리, 배터리 백업 SDRAM(동기 DRAM) 및/또는 네트워크 액세스 가능 저장 디바이스와 같은 비휘발성 저장 디바이스로서 구현될 수 있으나, 이로 제한되지 않는다. 실시예들에서, 저장소(714)는 예를 들어 다수의 하드 드라이브들이 포함될 때 가치가 있는 디지털 매체에 대하여 저장 성능이 강화된 보호를 증가시키는 기술을 포함할 수 있다.
그래픽 서브시스템(715)은 디스플레이를 위해 정지 또는 비디오와 같은 이미지의 프로세싱을 수행할 수 있다. 그래픽 서브시스템(715)은 예를 들어 그래픽 프로세싱 유닛(GPU) 또는 비주어 프로세싱 유닛(visual processing unit; VPU)일 수 있다. 아날로그 또는 디지털 인터페이스는 그래픽 서브시스템(715) 및 디스플레이(720)를 통신 가능하게 결합하는 데 사용될 수 있다. 예를 들어, 인터페이스는 고선명 멀티미디어 인터페이스, 디스플레이 포트(DisplayPort), 무선 HDMI 및/또는 무선 HD 부합 기술들 중 임의의 하나일 수 있다. 그래픽 서브시스템(715)은 프로세서(710) 또는 칩셋(705)에 통합될 수 있다. 그래픽 서브시스템(715)은 칩셋(705)에 통신 가능하게 통합되는 단독형 카드일 수 있다.
본원에서 설명되는 그래픽 및/또는 프로세싱 기술들은 다양한 하드웨어 아키텍처들로 구현될 수 있다. 예를 들어, 그래픽 및/또는 비디오 기능은 칩셋 내에서 통합될 수 있다. 대안으로, 별개의 그래픽 및/또는 비디오 프로세서가 사용될 수 있다. 더 다른 실시예에서, 그래픽 및/또는 비디오 기능들은 멀티코어 프로세스를 포함하는 범용 프로세서에 의해 구현될 수 있다. 부가적인 실시예에서, 이 기능들은 가전 디바이스에서 구현될 수 있다.
무선장치(718)는 다양한 적절한 무선 통신 기술들을 사용하여 신호들을 송신 및 수신할 수 있는 하나 이상의 무선장치를 포함할 수 있다. 그와 같은 기술들은 하나 이상의 무선 네트워크들에 걸친 통신들을 포함할 수 있다. 예시적인 무선 네트워크들은 무선 근거리 네트워크(wireless local area network; WLAN)들, 무선 개인 영역 네트워크(wireless personal area network; WPAN)들, 무선 도시권 네트워크(wireless metropolitan area network; WMAN), 셀룰러 네트워크(cellular network)들 및 위성 네트워크(satellite network)를 포함한다(그러나 이로 제한되지 않는다). 그와 같은 네트워크들에 걸쳐 통신하는 데 있어서, 무선장치(718)는 하나 이상의 애플리케이션 표준들에 따라 임의의 버전으로 동작할 수 있다.
실시예들에서, 디스플레이(720)는 임의의 텔레비전 유형 모니터 또는 디스플레이를 포함할 수 있다. 디스플레이(720)는 예를 들어 컴퓨터 디스플레이 스크린, 터치 스크린 디스플레이, 비디오 모니터, 텔레비젼형 디바이스 및/또는 텔레비전을 포함할 수 있다. 디스플레이(720)는 디지털 및/또는 아날로그일 수 있다. 실시예들에서, 디스플레이(720)는 홀로그램 디스플레이일 수 있다. 또한, 디스플레이(720)는 비주얼 프로젝션을 수신할 수 있는 투명 면일 수 있다. 그와 같은 프로젝션들은 다양한 형태들의 정보, 이미지들 및/또는 대상들을 전달할 수 있다. 예를 들어, 그러한 프로젝션들은 모바일 증강 현실(mobile augmented reality; MAR) 애플리케이션을 위한 비주얼 오버레이(visual overlay)일 수 있다. 하나 이상의 소프트웨어 애플리케이션들(716)의 제어 하에, 플랫폼(702)은 디스플레이(720) 상에 사용자 인터페이스(722)를 디스플레이할 수 있다.
실시예들에서, 컨텐츠 서비스 디바이스(들)(730)는 예를 들어 국가, 국제 및/또는 독립적 서비스에 의해 호스팅되어 인터넷을 통해 플랫폼(702)에 액세스 가능할 수 있다. 컨텐츠 서비스 디바이스(들)(730)는 플랫폼(702)에 그리고/또는 디스플레이(720)에 결합될 수 있다. 플랫폼(702) 및/또는 컨텐츠 서비스 디바이스(들)(730)는 네트워크(760)로 그리고 네트워크(760)로부터 매체 정보를 통신(예를 들어 송신 및/또는 수신)하기 위해 네트워크(760)에 결합될 수 있다. 컨텐츠 전달 디바이스(들)(740)는 또한 플랫폼(702)에 그리고/또는 디스플레이(720)에 결합될 수 있다.
실시예들에서, 컨텐츠 서비스 디바이스(들)(730)는 케이블 텔레비전 박스, 개인용 컴퓨터, 네트워크, 전화기, 디지털 정보 및/또는 컨텐츠를 전달할 수 있는 인터넷 가능 디바이스들 또는 기기, 컨텐츠 제공자들 및 플랫폼(702) 및/또는 디스플레이(720) 사이를 네트워크(760)를 통해 또는 직접적으로 단방향으로 또는 양방향으로 통신할 수 있는 임의의 다른 유사한 디바이스를 포함할 수 있다. 컨텐츠는 네트워크(760)를 통해 단?향으로 그리고/또는 양방향으로 시스템(700) 내의 구성요소들 중 임의의 하나 및 컨텐츠 제공자로 또는 이들로부터 통신될 수 있음이 인정될 것이다. 컨텐츠의 예들은 예를 들어 비디오, 음악, 의료 및 게임 정보 등을 포함하는 임의의 매체 정보를 포함할 수 있다.
컨텐츠 서비스 디바이스(들)(730)는 매체 정보, 디지털 정보 및/또는 다른 컨텐츠를 포함하는 텔레비전 프로그래밍과 같은 컨텐츠를 수신한다. 컨텐츠 제공자들의 예들은 임의의 케이블 또는 위성 텔레비전 또는 무선 또는 인터넷 컨텐츠 제공자들을 포함할 수 있다. 제공되는 예들은 포함되는 실시예들의 범위를 제한하도록 의도되지 않는다.
실시예들에서, 플랫폼(702)은 하나 이상의 내비게이션 피처들을 가지는 내비게이션 제어기(750)로부터 제어 신호들을 수신할 수 있다. 제어기(750)의 내비게이션 피처들은 예를 들어 사용자 인터페이스(722)와 상호 작용하는 데 사용될 수 있다. 실시예들에서, 내비게이션 제어기(750)는 사용자가 공간(예를 들어 연속 및 다차원) 데이터를 컴퓨터에 입력하는 것을 가능하게 하는 컴퓨터 하드웨어 구성요소(구체적으로 인간의 인터페이스 디바이스)일 수 있는 포인팅 디바이스일 수 있다. 그래픽 사용자 인터페이스(GUI)들 및 텔레비전들 및 모니터들과 같은 많은 시스템들에 의해, 사용자는 예를 들어 물리적 제스처들, 얼굴 표현들을 사용하여 데이터를 제어하고 이 데이터를 컴퓨터 또는 텔레비전에 제공할 수 있다.
제어기(750)의 내비게이션 피처들의 이동들은 포인터, 커서, 포커스 링 또는 디스플레이 상에 디스플레이되는 다른 가상 표시자들의 이동으로 디스플레이(예를 들어 디스플레이(720)) 상에 반영될 수 있다. 예를 들어, 소프트웨어 애플리케이션들(716)의 제어 하에, 네비게이터 제어기(750) 상에 위치되는 내비게이션 피처들은 예를 들어 사용자 인터페이스(722) 상에 디스플레이되는 가상 내비게이션 피처들에 매핑(mapping)될 수 있다. 실시예들에서, 제어기(750)는 별개의 구성요소가 아닐 수 있으나, 플랫폼(702) 및/또는 디스플레이(720)에 통합될 수 있다. 그러나, 실시예들은 요소들로 또는 본원에서 설명된 상황으로 제한되지 않는다.
실시예들에서, 드라이버들(도시되지 않음)은 예를 들어 가능할 때, 사용자가 초기 부팅 이후에 버튼을 터치함으로써 텔레비전과 같은 플랫폼(702)를 순식간에 켜고 끌 수 있게 하는 기술을 포함할 수 있다. 프로그램 로직(program logic)은 플랫폼이 “꺼져” 있을 때 상기 플랫폼(702)이 컨텐츠를 매체 어댑터들 또는 다른 컨텐츠 서비스 디바이스(들)(730) 또는 컨텐츠 전달 디바이스(들)(740)로 스트리밍하도록 할 수 있다. 게다가, 칩셋(705)은 예를 들어 5.1 서라운드 사운드 오디오 및/또는 고선명도 7.1 서라운드 사운드 오디오를 위한 하드웨어 및/또는 소프트웨어 지원을 포함할 수 있다. 드라이버들은 통합 그래픽 플랫폼들에 대한 그래픽 드라이버를 포함할 수 있다. 실시예들에서, 그래픽 드라이버는 주변 구성요소 상호접속(peripheral component interconnect; PCI) 익스프레스 그래픽 카드를 포함할 수 있다.
다양한 실시예들에서, 시스템(700) 내에 도시되는 구성요소들 중 하나 이상은 통합될 수 있다. 예를 들어, 플랫폼(702) 및 컨텐츠 서비스 디스플레이(들)(730)는 통합될 수 있거나, 플랫폼(702) 및 컨텐츠 전달 디바이스(들)(740)는 통합될 수 있거나, 예를 들어 플랫폼(702), 컨텐츠 서비스 디바이스(들)(730) 및 컨텐츠 전달 디바이스(들)(740)는 통합될 수 있다. 다양한 실시예들에서, 플랫폼(702) 및 디스플레이(720)는 통합 유닛일 수 있다. 디스플레이(720) 및 컨텐츠 서비스 디바이스(들)(730)는 통합될 수 있거나, 예를 들어 디스플레이(720) 및 컨텐츠 전달 디바이스(들)(740)는 통합될 수 있다. 이 예들은 본 발명을 제한하도록 의도되지 않는다.
다양한 실시예들에서, 시스템(700)은 무선 시스템, 유선 시스템 또는 이 둘의 결합으로 구현될 수 있다. 무선 시스템으로 구현되면, 시스템(700)은 하나 이상의 안테나들, 송신기들, 수신기들, 송수신기들, 증폭기들, 필터들, 제어 로직 등과 같은 무선 공유 매체를 통해 통신하는 데 적합한 인터페이스들 및 구성요소들을 포함할 수 있다. 무선 공유 매체의 예는 RF 스펙트럼 등과 같은 무선 스펙트럼의 일부분을 포함할 수 있다. 유선 시스템으로 구현되면, 시스템(700)은 입력/출력(I/O) 어댑터들, I/O 어댑터를 대응하는 유선 통신 매체와 접속하는 물리적 커넥터들, 네트워크 인터페이스 카드(network interface card; NIC), 디스크 제어기, 비디오 제어기, 오디오 제어기 등과 같은 유선 통신 매체를 통해 통신하는 데 적합한 인터페이스들 및 구성요소들을 포함할 수 있다. 유선 통신 매체의 예들은 유선, 케이블, 금속 리드(lead)들, 인쇄 회로 기판(printed circuit board; PCB)들 백플레인(backplane)들, 스위치 패브릭(switch fabric)들, 반도체 재료, 연선(twisted-pair wire), 동축 케이블, 광섬유들 등을 포함할 수 있다.
플랫폼(702)은 정보를 통신하기 위해 하나 이상의 논리 또는 물리 채널들을 설정할 수 있다. 정보는 매체 정보 및 제어 정보를 포함할 수 있다. 매체 정보는 사용자를 위해 의도된 컨텐츠를 표현하는 임의의 데이터를 칭할 수 있다. 컨텐츠의 예들은 예를 들어 음상 대화에 대한 데이터, 화상 회의, 스트리밍 비디오, 전자 메일(이메일) 메시지, 음성 메일 메시지, 문자 심볼들, 그래픽들, 이미지, 비디오, 텍스트 등을 포함할 수 있다. 음성 대화로부터의 데이터는 예를 들어, 발언 정보, 침묵 기간, 배경 잡음, 컴포트 노이즈(comfort noise), 톤들 등일 수 있다. 제어 정보는 자동화 시스템을 위하여 의도되는 명령들, 지시들 또는 제어 단어들을 나타내는 임의의 데이터를 칭할 수 있다. 예를 들어, 제어 정보는 시스템을 통하여 매체 정보를 라우팅하거나 노드에게 미리 결정된 방식으로 매체 정보를 프로세싱하라고 명령하는 데 사용될 수 있다. 그러나, 상기 실시예들은 요소들로 또는 도 8에 도시되거나 설명된 상황으로 제한되지 않는다.
상술한 바와 같이, 시스템(700)은 변하는 물리적 스타일들 또는 폼 팩터(form factor) 내에 임베딩될 수 있다. 도 9는 시스템(700)이 임베딩될 수 있는 작은 폼 팩터 디바이스(800)의 실시예들을 도시한다. 실시예들에서, 예를 들어, 디바이스(800)는 무선 능력들을 가지는 모바일 컴퓨팅 디바이스로서 구현될 수 있다. 모바일 컴퓨팅 디바이스는 예를 들어, 하나 이상의 배터리들과 같은 모바일 전력원 또는 공급 장치 및 프포세싱 시스템을 가지는 임의의 디바이스를 칭할 수 있다.
상술한 바와 같이, 모바일 컴퓨팅 디바이스의 예들은 개인용 컴퓨터(PC), 랩탑 컴퓨터, 울트라-랩탑 컴퓨터, 태블릿, 터치 패드, 휴대용 컴퓨터, 소형 컴퓨터, 팜탑 텀퓨터, 개인용 디지털 보조장치(PDA), 셀룰러 전화기, 결합형 셀룰러 전화기/PDA, 텔레비전, 스마트 디바이스(예를 들어 스마트폰, 스마트 태블릿 또는 스마트 텔레비전), 모바일 인터넷 디바이스(MID), 메시징 디바이스, 데이터 통신 디바이스 등을 포함할 수 있다.
모바일 컴퓨팅 디바이스의 예들은 또한 손목 컴퓨터, 손가락 컴퓨터, 링 컴퓨터, 안경 컴퓨터, 벨트-칩 컴퓨터, 팔-밴드 컴퓨터, 신발 컴퓨터들, 의류 컴퓨터들 및 다른 착용 가능 컴퓨터들과 같이, 사람이 착용하도록 배열되는 컴퓨터들을 포함할 수 있다. 실시예들에서, 예를 들어, 모바일 컴퓨팅 디바이스는 음성 통신들 및/또는 데이터 통신들뿐만 아니라 컴퓨터 애플리케이션들을 실행할 수 있는 스마트폰으로서 구현될 수 있다. 일부 실시예들이 예로서 스마트폰으로 구현되는 모바일 컴퓨팅 디바이스로 기술될 수 있을지라도, 다른 실시예들 또한 다른 무선 모바일 컴퓨팅 디바이스들을 사용하여 구현될 수 있음이 인정될 수 있다. 실시예들은 이 컨텍스트들로 제한되지 않는다.
프로세서(710)는 일부 실시예들에서 카메라(722) 및 전지구적 위치추적 시스템(global positioning system; GPS) 센서(720)와 통신할 수 있다. 프로세서(710)와 결합되는 메모리(712)는 소프트웨어 및/또는 펌웨어 실시예들에서 도 7에 도시되는 시퀀스들을 구현하기 위하여 컴퓨터 판독 가능 명령어를 저장할 수 있다.
도 9에 도시되는 바와 같이, 디바이스(800)는 하우징(802), 디스플레이(804), 및 입력/출력(I/O) 디바이스(806) 및 안테나(808)를 포함할 수 있다. 디바이스(800)는 또한 내비게이션 피처들(812)을 포함할 수 있다. 디스플레이(804)는 모바일 컴퓨팅 디바이스에 적합한 정보를 디스플레이하기 위한 임의의 적절한 디스플레이 유닛을 포함할 수 있다. I/O 디바이스(806)는 정보를 모바일 컴퓨팅 디바이스에 입력하는 임의의 적절한 I/O 디바이스를 포함할 수 있다. I/O 디바이스(806)에 대한 예들은 문자 키보드, 숫자 키보드, 터치 패드, 입력 키들, 버튼들, 스위치들, 로커 스위치(rocker switch)들, 마이크로폰들, 스피커들, 음성 인식 디바이스 및 소프트웨어 등을 포함할 수 있다. 정보는 또한 마이크로폰에 의해 디바이스(800)에 입력될 수 있다. 그와 같은 정보는 음성 인식 디바이스에 의해 디지털화될 수 있다. 실시예들은 이 컨텍스트들로 제한되지 않는다.
하드웨어 요소들, 소프트웨어 요소들 또는 이 둘의 결합을 사용하여 다양한 실시예들이 구현될 수 있다. 하드웨어 요소들의 예들은 프로세서들, 마이크로프로세서들, 회로들, 회로 요소들(예를 들어, 트랜지스터들, 저항들, 커패시터들, 인덕터들 등), 집적 회로들, 주문형 반도체(application specific integrated circuit; ASIC)들, 프로그래머블 논리 디바이스(programmable logic device; PLD)들, 디지털 신호 프로세서(digital signal processor; DSP)들, 필드 프로그래머블 게이트 어레이(field programmable gate array; FPGA), 논리 게이트들, 레지스터(register)들, 반도체 디바이스, 칩들, 마이크로칩들, 칩셋들 등을 포함할 수 있다. 소프트웨어의 예는 소프트웨어 컴포넌트(software component)들, 프로그램들, 애플리케이션들, 컴퓨터 프로그램들, 애플리케이션 프로그램들, 시스템 프로그램들, 머신 프로그램들, 운영 시스템 소프트웨어, 미들웨어, 펌웨어, 소프트웨어 모듈들, 루틴들, 서브루틴들, 기능들, 방법들, 절차들, 소프트웨어 인터페이스들, 애플리케이션 프로그램 인터페이스(application program interface; API)들, 명령 세트들, 컴퓨팅 코드, 컴퓨터 코드, 코드 세그먼트(segment)들, 컴퓨터 코드 세그먼트들, 워드들, 값들, 심볼들 또는 이들의 임의의 결합을 포함할 수 있다. 하나의 실시예가 하드웨어 요소들 및/또는 소프트웨어 요소들을 사용하여 구현되는지를 결정하는 것은, 원하는 계산율, 전력 레벨들, 내열성들, 프로세싱 사이클 버짓(budget), 입력 데이터율들, 출력 데이터율들, 메모리 자원들, 데이터 버스 속도들 및 다른 설계 또는 성능 제약들과 같은 임의의 수효의 요인들에 따라 변할 수 있다.
다음의 문구들 및/또는 예들은 부가 실시예들에 관한 것이다.
하나의 예시 실시예는 컴퓨터에 의해 실행되는 경우 컴퓨터로 하여금 텍스처 도메인 외부에 속하는 임의의 텍스처 필터 탭을 필터링으로부터 배제하도록 하는 명령어를 내부에 포함하는 적어도 하나의 컴퓨터 판독 가능 매체일 수 있다. 이 컴퓨터 판독 가능 매체는 컴퓨터에 의해 수행되는 경우 상기 컴퓨터로 하여금, 텍스처 샘플링을 수행하라는 요청에 액세스하고, 이 샘플링에 대한 크기 및 풋프린트 위치를 결정하고, 풋프린트와 연관되는 각각의 필터 탭에 대한 가중치 및 하나 이상의 필터 탭 위치들을 결정하고, 텍스처 이미지 외부에 위치되는 임의의 탭의 가중치를 선별적으로 수정하고, 이 텍스처 이미지의 외부에 위치되는 임의의 탭의 위치를 선별적으로 수정하고, 텍스처 이미지 내의 각각의 필터 탭 위치에 대해 그리고 0이 아닌 가중치에 있어서, 텍스처 이미지 내의 컬러 값을 요청하고, 탭에 대한 각각의 컬러를 자체의 가중치로 승산하고, 필터링된 컬러를 생성하기 위해 가중된 컬러들을 합산하고, 필터링된 컬러에 기초하는 최종 필터링된 컬러를 제공하도록 하는 명령어를 더 저장할 수 있다. 상기 컴퓨터 판독 가능 매체는 컴퓨터에 의해 수행되는 경우, 상기 컴퓨터로 하여금 필터링된 컬러를 총 가중치로 나누어 필터링된 컬러가 총 가중치로 나누어진 필터 컬러를 포함하도록 하고 총 가중치를 제공하도록 하는 명령어를 더 저장할 수 있다. 상기 컴퓨터 판독 가능 매체는 컴퓨터에 의해 수행되는 경우, 상기 컴퓨터로 하여금 필터링된 컬러를 총 가중치로 나누도록 하는 명령어를 더 저장할 수 있고, 이 점에 있어서 최종 필터링된 컬러가 총 가중치로 나누어진 필터 컬러를 포함한다. 컴퓨터 판독 가능 매체는 최종 필터링된 컬러가 필터링된 컬러를 포함하도록 하는 명령어를 더 저장할 수 있고 컴퓨터에 의해 실행되는 경우, 내부에 저장되어 상기 컴퓨터로 하여금 총 가중치를 제공하도록 하는 명령어를 더 포함할 수 있다. 상기 컴퓨터 판독 가능 매체는 상기 요청이 샘플링되는 텍스처 이미지, 사용되는 샘플러 상태 및 텍스처를 샘플링하기 위한 (u, v) 텍스처 좌표들을 포함하는 명령어를 더 저장할 수 있다. 상기 컴퓨터 판독 가능 매체는 탭들에서의 컬러 값들의 가중 합이 전체 풋프린트에 걸친 적분에 근사화하도록 각각의 탭이 (u, v) 위치 및 가중을 표현하는 명령어를 더 저장할 수 있다. 컴퓨터 판독 가능 매체는 텍스처 이미지 외부에 위치되는 임의의 탭의 가중치를 선별적으로 수정하기 위해 컴퓨터가 가중치를 0으로 세팅할 수 있는 명령어를 더 저장할 수 있다. 상기 컴퓨터 판독 가능 매체는 텍스처 이미지의 외부에 위치되는 임의의 탭의 위치를 선별적으로 수정하기 위해 선형 거리 측면에서 텍스처 이미지 외부에 위치되는 임의의 탭에 가장 가까운 텍스처 내의 포인트를 선택하는 명령어를 더 저장할 수 있다. 컴퓨터 판독 가능 매체는 상기 매체 내부에 저장되고 컴퓨터에 의해 실행되는 경우, 상기 컴퓨터로 하여금 제 2 텍스처 이미지 외부에 위치되는 임의의 탭의 가중치를 선별적으로 수정하고, 제 2 텍스처 이미지 외부에 위치되는 임의의 탭의 위치를 선별적으로 수정하고, 제 2 텍스처 이미지 내의 각각의 필터 탭 위치에 대해 그리고 0이 아닌 가중치로 제 2 텍스처 이미지 내의 컬러 값을 요청하고, 제 2 텍스처 이미지 내의 각각의 탭 컬러를 자체의 가중치로 승산하고, 제 2 필터링된 컬러를 제공하기 위해 제 2 텍스처 이미지에 대해 사용되는 가중된 컬러들을 합산하고, 제 2 최종 필터링된 컬러를 제공하도록 하는 명령어를 더 포함하는 명령어를 더 저장할 수 있고, 제 2 최종 필터링된 컬러는 제 2 필터링된 컬러에 기초한다. 컴퓨터 판독 가능 매체는 상기 매체 내부에 저장되고 컴퓨터에 의해 실행되는 경우, 상기 컴퓨터로 하여금 최종 필터링된 컬러 및 제 2 최종 필터링된 컬러의 혼합에 적어도 부분적으로 기초하여 프래그먼트 컬러를 생성하도록 하는 명령어를 더 저장할 수 있다. 컴퓨터 판독 가능 매체는 상기 매체 내부에 저장되고 컴퓨터에 의해 실행되는 경우, 상기 컴퓨터로 하여금 프래그먼트 컬러를 버퍼 내에 저장하고, 프레그먼트 컬러에 적어도 부분적으로 기초하여 픽셀 컬러를 생성하고, 픽셀 컬러의 디스플레이를 일으키도록 하는 명령어를 더 포함하는 명령어를 더 저장할 수 있다. 상기 컴퓨터 판독 가능 매체는 컴퓨터에 의해 실행되는 경우, 상기 컴퓨터로 하여금, 0과 동일한 총 가중치에 응답하여 필터링된 컬러를 풋프린트 중심 또는 미리 규정된 값에 가장 가까운 텍스처 내의 컬러로 세팅하도록 하는 명령어를 포함하는 명령어를 더 저장할 수 있다.
다른 예시 실시예에서 그래픽 프로세서에서의 필터링에서 텍스처 도메인 외부에 속하는 임의의 텍스처 필터 탭을 배제하는 단계를 포함한다. 상기 방법은 또한 텍스처 샘플링을 수행하라는 요청에 액세스하고, 이 샘플링에 대한 크기 및 풋프린트 위치를 결정하고, 풋프린트와 연관되는 각각의 필터 탭에 대한 가중치 및 하나 이상의 필터 탭 위치들을 결정하고, 텍스처 이미지 외부에 위치되는 임의의 탭의 가중치를 선별적으로 수정하고, 이 텍스처 이미지의 외부에 위치되는 임의의 탭의 위치를 선별적으로 수정하고, 텍스처 이미지 내의 각각의 필터 탭 위치에 대해 그리고 0이 아닌 가중치로 텍스처 이미지 내의 컬러 값을 요청하고, 탭에 대한 각각의 컬러를 자체의 가중치로 승산하고, 필터링된 컬러를 생성하기 위해 가중된 컬러들을 합산하고, 필터링된 컬러에 기초하는 최종 필터링된 컬러를 제공하는 단계를 포함한다. 상기 방법은 또한 필터링된 컬러를 총 가중치로 나누고, 여기서 최종 필터링된 컬러가 총 가중치로 나누어진 필터링된 컬러를 포함하는 단계를 포함하고 총 가중치를 제공할 수 있다. 상기 방법은 또한 필터링된 컬러를 총 가중치로 나누는 단계를 포함하고, 여기서 여기서 최종 필터링된 컬러는 총 가중치로 나누어진 필터링된 컬러를 포함한다. 상기 방법은 또한 최종 필터링된 컬러가 필터링된 컬러를 포함하도록 총 가중치를 제공하는 단계를 포함할 수 있다.
다른 예시 실시예는 필터링으로부터 텍스처 도메인 외부에 속하는 임의의 텍스처 필터 탭을 것을 배제하는 프로세서 및 상기 프로세서에 결합되는 저장소를 포함하는 장치일 수 있다. 이 장치는 텍스처 샘플링을 수행하라는 요청에 액세스하고, 이 샘플링에 대한 크기 및 풋프린트 위치를 결정하고, 풋프린트와 연관되는 각각의 필터 탭에 대한 가중치 및 하나 이상의 필터 탭 위치들을 결정하고, 텍스처 이미지 외부에 위치되는 임의의 탭의 가중치를 선별적으로 수정하고, 이 텍스처 이미지의 외부에 위치되는 임의의 탭의 위치를 선별적으로 수정하고, 텍스처 이미지 내의 각각의 필터 탭 위치에 대해 그리고 0이 아닌 가중치에 있어서, 텍스처 이미지 내의 컬러 값을 요청하고, 탭에 대한 각각의 컬러를 자체의 가중치로 승산하고, 필터링된 컬러를 생성하기 위해 가중된 컬러들을 합산하고, 필터링된 컬러에 기초하는 최종 필터링된 컬러를 제공하기 위하여 상기 프로세서를 포함할 수 있다. 상기 장치는 필터링된 컬러를 총 가중치로 나누어 이로 인해 최종 필터링된 컬러가 총 가중치로 나누어진 필터링된 컬러를 포함하도록 하는 프로세스를 포함하고 총 가중치를 제공할 수 있다. 상기 장치는 필터링된 컬러를 총 가중치로 나누기 위하여 상기 프로세스를 포함할 수 있고, 여기서 최종 필터링된 컬러는 총 가중치로 나누어진 필터링된 컬러를 포함한다. 상기 장치는 최종 필터링된 컬러가 필터링된 컬러를 포함하도록 총 가중치를 제공하는 상기 프로세서를 포함할 수 있다. 상기 장치는 요청이 샘플링되는 텍스처 이미지, 사용되는 샘플러 상태 및 텍스처를 샘플링하기 위한 (u, v) 텍스처 좌표들로 이루어지는 것을 포함할 수 있다. 상기 장치는 탭들에서의 컬러 값들의 가중 합이 전체 풋프린트에 걸친 적분에 근사화하도록 각각의 탭이 (u, v) 위치 및 가중치를 표현하는 것을 포함할 수 있다. 상기 장치는 텍스처 이미지 외부에 있는 임의의 탭의 가중치를 선별적으로 수정하기 위해 프로세서가 가중치를 0으로 세팅할 수 있는 것을 포함할 수 있다. 상기 장치는 텍스처 이미지의 외부에 위치되는 임의의 탭의 위치를 선별적으로 수정하기 위해 선형 거리 측면에서 텍스처 이미지 외부에 위치되는 임의의 탭에 가장 가까운 텍스처 내의 포인트를 선택하는 프로세서를 포함할 수 있다. 상기 장치는 운영 시스템, 배터리 및 펌웨어를 포함하고 상기 펌웨어를 업데이트하는 모듈을 포함할 수 있다.
본원에서 설명되는 그래픽 프로세싱 기술들은 다양한 하드웨어 아키텍처들로 구현될 수 있다. 예를 들어, 그래픽 기능은 칩셋 내에 통합될 수 있다. 대안으로, 이산의 그래픽 프로세서가 사용될 수 있다. 더 다른 실시예에서, 그래픽 기능들은 멀티코어 프로세스를 포함하는 범용 프로세서에 의해 구현될 수 있다.
본 명세서 전체를 통하여 언급되는 “하나의 실시예” 또는 ‘실시예”는 실시예와 관련되어 기술되는 특정한 특징, 구조 또는 특성이 본 발명 내에 포함되는 적어도 하나의 구현에 포함되는 것을 의미한다. 그러므로, 등장하는 어구 “하나의 실시예” 또는 “하나의 실시예에서”는 반드시 동일한 실시예를 칭하고 있는 것은 아니다. 더욱기, 특정한 특징들, 구조들 또는 특성들은 설명되는 특정한 실시예 외의 다른 적절한 형태들로 도입될 수 있고 그와 같은 형태들은 본 출원의 청구항들 내에 포함될 수 있다.
제한된 수의 실시예들이 기술되었을지라도, 당업자는 이로부터 많은 수정들 및 변형들을 인식한다. 첨부된 청구항들은 본 발명의 진정한 정신 및 범위 내에 해당되는 바와 같은 모든 그와 같은 수정들 및 변형들을 포괄하도록 의도된다.

Claims (25)

  1. 명령어를 저장한 컴퓨터 판독가능 매체로서,
    상기 명령어는 컴퓨터에 의해 실행될 때, 상기 컴퓨터로 하여금,
    텍스처 도메인의 외부에 속하는 임의의 텍스처 필터 탭을 필터링하는 것을 금지하게 하며,
    상기 컴퓨터에 의해 실행될 때 상기 컴퓨터로 하여금,
    텍스처 샘플링을 수행하도록 하는 요청에 액세스하게 하고,
    상기 텍스처 샘플링에 대한 크기 및 풋프린트 위치를 결정하게 하고,
    풋프린트와 연관된 각각의 필터 탭에 대한 가중치 및 하나 이상의 필터 탭 위치를 결정하게 하고,
    상기 가중치를 제로로 설정함으로써, 텍스처 이미지의 외부에 위치된 임의의 탭의 가중치를 선택적으로 수정하게 하고,
    상기 텍스처 이미지 내의 컬러 값을 요청하게 하고,
    탭에 대한 각각의 컬러를 상기 탭의 가중치로 곱하게 하고,
    가중된 컬러를 합산하여 필터링된 컬러를 생성하게 하고,
    최종 필터링된 컬러를 제공 -상기 최종 필터링된 컬러는 총 가중치에 의해 나뉘어진 상기 필터링된 컬러를 포함함- 하게 하는
    명령어를 더 포함하는
    비-일시적 컴퓨터 판독가능 매체.
  2. 삭제
  3. 삭제
  4. 삭제
  5. 제 1 항에 있어서,
    컴퓨터에 의해 실행될 때 상기 컴퓨터로 하여금,
    상기 총 가중치를 제공하게 하는
    명령어를 더 포함하는
    비-일시적 컴퓨터 판독가능 매체.
  6. 제 1 항에 있어서,
    상기 요청은 샘플링될 텍스처 이미지, 사용될 샘플러 상태 및 텍스처를 샘플링할 (u, v) 텍스처 좌표를 포함하는
    비-일시적 컴퓨터 판독가능 매체.
  7. 는 1 항에 있어서,
    각각의 탭은 (u, v) 위치와 가중치를 나타내어, 탭들에서 컬러 값들의 가중된 합이 전체 풋프린트에 걸친 적분에 근사화되는
    비-일시적 컴퓨터 판독가능 매체.
  8. 삭제
  9. 삭제
  10. 제 1 항에 있어서,
    컴퓨터에 의해 실행될 때 상기 컴퓨터로 하여금,
    제 2 텍스처 이미지의 외부에 위치된 임의의 탭의 가중치를 선택적으로 수정하게 하고,
    상기 제 2 텍스처 이미지의 외부에 위치된 임의의 탭의 위치를 선택적으로 수정하게 하고,
    상기 제 2 텍스처 이미지 내에 있고 논-제로 가중치를 갖는 각각의 필터 탭 위치에 대해, 상기 제 2 텍스처 이미지 내의 컬러 값을 요청하게 하고,
    상기 제 2 텍스처 이미지 내의 각각의 탭 컬러를 탭의 가중치로 곱하게 하고,
    상기 제 2 텍스처 이미지를 위해 사용된 가중된 컬러를 합산하여 제 2 필터링된 컬러를 생성하게 하고,
    상기 제 2 필터링된 컬러에 기초한 제 2 최종 필터링된 컬러를 제공하게 하는
    명령어를 더 포함하는
    비-일시적 컴퓨터 판독가능 매체.
  11. 제 10 항에 있어서,
    컴퓨터에 의해 실행될 때 상기 컴퓨터로 하여금,
    상기 최종 필터링된 컬러와 상기 제 2 최종 필터링된 컬러의 혼합에 적어도 부분적으로 기초하여 프래그먼트 컬러(a fragment color)를 생성하게 하는
    명령어를 더 포함하는
    비-일시적 컴퓨터 판독가능 매체.
  12. 제 11 항에 있어서,
    컴퓨터에 의해 실행될 때 상기 컴퓨터로 하여금,
    버퍼 내에 상기 프래그먼트 컬러를 저장하게 하고,
    상기 프래그먼트 컬러에 적어도 부분적으로 기초하여 픽셀 컬러를 생성하게 하고,
    상기 픽셀 컬러를 디스플레이 하게 하는
    명령어를 더 포함하는
    비-일시적 컴퓨터 판독가능 매체.
  13. 제 1 항에 있어서,
    컴퓨터에 의해 실행될 때 상기 컴퓨터로 하여금,
    상기 총 가중치가 제로와 같아지는 것에 응답하여 상기 필터링된 컬러를 풋프린트 중심 또는 미리 정의된 값에 가장 가까운 상기 텍스처 내의 컬러로 설정하게 하는
    명령어를 더 포함하는
    비-일시적 컴퓨터 판독가능 매체.
  14. 텍스처 도메인의 외부에 속하는 임의의 텍스처 필터 탭을 그래픽 프로세서에서 필터링하는 것을 금지하는 단계와,
    텍스처 샘플링을 수행하도록 하는 요청에 액세스하는 단계와,
    상기 텍스처 샘플링에 대한 크기 및 풋프린트 위치를 결정하는 단계와,
    풋프린트와 연관된 각각의 필터 탭에 대한 가중치 및 하나 이상의 필터 탭 위치를 결정하는 단계와,
    상기 가중치를 제로로 설정함으로써, 텍스처 이미지의 외부에 위치된 임의의 탭의 가중치를 선택적으로 수정하는 단계와,
    상기 텍스처 이미지 내의 컬러 값을 요청하는 단계와,
    탭에 대한 각각의 컬러를 상기 탭의 가중치로 곱하는 단계와,
    가중된 컬러를 합산하여 필터링된 컬러를 생성하는 단계와,
    최종 필터링된 컬러를 제공 -상기 최종 필터링된 컬러는 총 가중치에 의해 나뉘어진 상기 필터링된 컬러를 포함- 하는 단계를 포함하는
    방법.
  15. 삭제
  16. 삭제
  17. 삭제
  18. 제 14 항에 있어서,
    상기 방법은,
    상기 총 가중치를 제공하는 단계를 포함하는
    방법.
  19. 텍스처 도메인의 외부에 속하는 임의의 텍스처 필터 탭을 필터링하는 것을 금지하는 프로세서와,
    상기 프로세서에 연결된 저장소를 포함하며,
    상기 프로세서는,
    텍스처 샘플링을 수행하도록 하는 요청에 액세스하고,
    상기 텍스처 샘플링에 대한 크기 및 풋프린트 위치를 결정하고,
    풋프린트와 연관된 각각의 필터 탭에 대한 가중치 및 하나 이상의 필터 탭 위치를 결정하고,
    상기 가중치를 제로로 설정함으로써, 텍스처 이미지의 외부에 위치된 임의의 탭의 가중치를 선택적으로 수정하고,
    상기 텍스처 이미지 내에 있고 논-제로 가중치를 갖는 각각의 필터 탭 위치에 대해, 상기 텍스처 이미지 내의 컬러 값을 요청하고,
    탭에 대한 각각의 컬러를 상기 탭의 가중치로 곱하고,
    가중된 컬러를 합산하여 필터링된 컬러를 생성하고,
    최종 필터링된 컬러를 제공 -상기 최종 필터링된 컬러는 총 가중치에 의해 나뉘어진 상기 필터링된 컬러를 포함함- 하는
    장치.
  20. 삭제
  21. 제 19 항에 있어서,
    운영 시스템, 배터리, 펌웨어 및 상기 펌웨어를 업데이트하는 모듈을 포함하는
    장치.
  22. 삭제
  23. 제 19 항에 있어서,
    상기 프로세서는 상기 총 가중치를 제공하는
    장치.
  24. 제 19 항에 있어서,
    상기 요청은 샘플링될 텍스처 이미지, 사용될 샘플러 상태 및 텍스처를 샘플링할 (u, v) 텍스처 좌표를 포함하는
    장치.
  25. 제 19 항에 있어서,
    각각의 탭은 (u, v) 위치와 가중치를 나타내어, 탭들에서 컬러 값들의 가중된 합이 전체 풋프린트에 걸친 적분에 근사화되는
    장치.
KR1020140030561A 2013-03-15 2014-03-14 필터 탭들을 폐기하는 텍스처 어드레스 모드 KR101587439B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US201361789870P 2013-03-15 2013-03-15
US61/789,870 2013-03-15

Related Child Applications (1)

Application Number Title Priority Date Filing Date
KR1020150073288A Division KR101993949B1 (ko) 2013-03-15 2015-05-26 필터 탭들을 폐기하는 텍스처 어드레스 모드

Publications (2)

Publication Number Publication Date
KR20140113559A KR20140113559A (ko) 2014-09-24
KR101587439B1 true KR101587439B1 (ko) 2016-01-21

Family

ID=50624361

Family Applications (2)

Application Number Title Priority Date Filing Date
KR1020140030561A KR101587439B1 (ko) 2013-03-15 2014-03-14 필터 탭들을 폐기하는 텍스처 어드레스 모드
KR1020150073288A KR101993949B1 (ko) 2013-03-15 2015-05-26 필터 탭들을 폐기하는 텍스처 어드레스 모드

Family Applications After (1)

Application Number Title Priority Date Filing Date
KR1020150073288A KR101993949B1 (ko) 2013-03-15 2015-05-26 필터 탭들을 폐기하는 텍스처 어드레스 모드

Country Status (6)

Country Link
US (1) US10152820B2 (ko)
EP (1) EP2804150A1 (ko)
JP (1) JP2014182831A (ko)
KR (2) KR101587439B1 (ko)
CN (1) CN104050634B (ko)
TW (1) TWI514314B (ko)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9799087B2 (en) 2013-09-09 2017-10-24 Apple Inc. Shader program profiler
US11838851B1 (en) 2014-07-15 2023-12-05 F5, Inc. Methods for managing L7 traffic classification and devices thereof
US10182013B1 (en) * 2014-12-01 2019-01-15 F5 Networks, Inc. Methods for managing progressive image delivery and devices thereof
US11895138B1 (en) 2015-02-02 2024-02-06 F5, Inc. Methods for improving web scanner accuracy and devices thereof
US10235811B2 (en) 2016-12-29 2019-03-19 Intel Corporation Replicating primitives across multiple viewports
US10310830B2 (en) 2017-06-02 2019-06-04 Apple Inc. Shader profiler
US10424074B1 (en) * 2018-07-03 2019-09-24 Nvidia Corporation Method and apparatus for obtaining sampled positions of texturing operations
US10628910B2 (en) 2018-09-24 2020-04-21 Intel Corporation Vertex shader with primitive replication
US11257277B2 (en) * 2019-06-26 2022-02-22 Qualcomm Incorporated Methods and apparatus to facilitate adaptive texture filtering
CN113487542B (zh) * 2021-06-16 2023-08-04 成都唐源电气股份有限公司 一种接触网导线磨耗区域的提取方法

Family Cites Families (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5268928A (en) * 1991-10-15 1993-12-07 Racal-Datacom, Inc. Data modem with remote firmware update
US5920495A (en) * 1997-05-14 1999-07-06 Cirrus Logic, Inc. Programmable four-tap texture filter
JP3213584B2 (ja) * 1997-09-19 2001-10-02 シャープ株式会社 画像符号化装置及び画像復号装置
US6466206B1 (en) 1998-02-17 2002-10-15 Sun Microsystems, Inc. Graphics system with programmable real-time alpha key generation
US6094232A (en) * 1998-11-25 2000-07-25 Kabushiki Kaisha Toshiba Method and system for interpolating a missing pixel using a motion vector
KR100283413B1 (ko) * 1998-12-15 2001-04-02 김영환 텍스처 매핑시스템
JP3367509B2 (ja) * 1999-12-16 2003-01-14 株式会社セガ 画像生成方法及びこれを用いた画像生成装置
US6724396B1 (en) * 2000-06-01 2004-04-20 Hewlett-Packard Development Company, L.P. Graphics data storage in a linearly allocated multi-banked memory
US7324116B2 (en) * 2002-06-20 2008-01-29 Microsoft Corporation Systems and methods for providing controllable texture sampling
US20040012610A1 (en) * 2002-07-22 2004-01-22 Taneja Nimita J. Anti-aliasing interlaced video formats for large kernel convolution
EP1489560A1 (en) 2003-06-17 2004-12-22 Koninklijke Philips Electronics N.V. Primitive edge pre-filtering
US6989838B2 (en) * 2003-06-26 2006-01-24 Intel Corporation Methods, systems, and data structures for generating a rasterizer
US7027062B2 (en) 2004-02-27 2006-04-11 Nvidia Corporation Register based queuing for texture requests
US7091983B1 (en) * 2004-05-26 2006-08-15 Nvidia Corporation Coordinate wrapping for anisotropic filtering of non-power of two textures
KR20060116916A (ko) * 2005-05-11 2006-11-16 삼성전자주식회사 텍스쳐 캐쉬 및 이를 구비한 3차원 그래픽 시스템, 그리고그것의 제어 방법
US8253751B2 (en) * 2005-06-30 2012-08-28 Intel Corporation Memory controller interface for micro-tiled memory access
US8675007B2 (en) * 2005-10-06 2014-03-18 Ati Technologies Ulc System and method for higher level filtering by combination of bilinear results
KR100818289B1 (ko) * 2007-02-02 2008-03-31 삼성전자주식회사 비디오 영상 트레킹 방법 및 장치
US8824831B2 (en) * 2007-05-25 2014-09-02 Qualcomm Technologies, Inc. Advanced noise reduction in digital cameras
EP2085128A1 (en) * 2007-10-03 2009-08-05 Sony Computer Entertainment Europe Limited Apparatus and method of on-line abuse avoidance
JP2010097334A (ja) * 2008-10-15 2010-04-30 Panasonic Corp 描画装置
US20120154596A1 (en) * 2009-08-25 2012-06-21 Andrew Augustine Wajs Reducing noise in a color image
JP5464435B2 (ja) 2010-04-09 2014-04-09 ソニー株式会社 画像復号装置および方法
TWI408618B (zh) 2010-05-27 2013-09-11 Univ Nat Taiwan 具有可設定化濾波模組之繪圖處理器及其運算方法
TW201209759A (en) 2010-08-24 2012-03-01 Chunghwa Telecom Co Ltd Image flame detection method
JP5725818B2 (ja) * 2010-12-01 2015-05-27 富士フイルム株式会社 透明導電シートの製造方法、透明導電シート及びプログラム
JP2012221105A (ja) * 2011-04-06 2012-11-12 Sony Corp 画像処理装置、画像処理方法およびプログラム
US20130135364A1 (en) * 2011-11-30 2013-05-30 Qualcomm Mems Technologies, Inc. Methods and apparatus for interpolating colors

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
논문:COMPUTER-AIDED DESIGN

Also Published As

Publication number Publication date
JP2014182831A (ja) 2014-09-29
US10152820B2 (en) 2018-12-11
TW201506844A (zh) 2015-02-16
KR20140113559A (ko) 2014-09-24
CN104050634A (zh) 2014-09-17
KR101993949B1 (ko) 2019-06-27
KR20150065642A (ko) 2015-06-15
US20140267345A1 (en) 2014-09-18
CN104050634B (zh) 2019-10-01
EP2804150A1 (en) 2014-11-19
TWI514314B (zh) 2015-12-21

Similar Documents

Publication Publication Date Title
KR101993949B1 (ko) 필터 탭들을 폐기하는 텍스처 어드레스 모드
US10970917B2 (en) Decoupled shading pipeline
KR102475212B1 (ko) 타일식 아키텍처들에서의 포비티드 렌더링
US10164459B2 (en) Selective rasterization
US9569886B2 (en) Variable shading
US9626795B2 (en) Reducing shading by merging fragments from the adjacent primitives
EP2831837B1 (en) Low power centroid determination and texture footprint optimization for decoupled sampling based rendering pipelines
US20190035049A1 (en) Dithered variable rate shading
CN105550973B (zh) 图形处理单元、图形处理系统及抗锯齿处理方法
US9262841B2 (en) Front to back compositing
US9390463B2 (en) Techniques for reducing memory bandwidth for display composition

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
A107 Divisional application of patent
E701 Decision to grant or registration of patent right
FPAY Annual fee payment

Payment date: 20190103

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20200103

Year of fee payment: 5