KR20060107834A - 3차원 그래픽 서브시스템들에서의 텍스쳐 맵 데이터의프로그램 가능 필터링을 위한 방법 및 메카니즘 - Google Patents

3차원 그래픽 서브시스템들에서의 텍스쳐 맵 데이터의프로그램 가능 필터링을 위한 방법 및 메카니즘 Download PDF

Info

Publication number
KR20060107834A
KR20060107834A KR1020067013145A KR20067013145A KR20060107834A KR 20060107834 A KR20060107834 A KR 20060107834A KR 1020067013145 A KR1020067013145 A KR 1020067013145A KR 20067013145 A KR20067013145 A KR 20067013145A KR 20060107834 A KR20060107834 A KR 20060107834A
Authority
KR
South Korea
Prior art keywords
texture
register
filtering
registers
data
Prior art date
Application number
KR1020067013145A
Other languages
English (en)
Other versions
KR100823373B1 (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
Priority claimed from US10/747,966 external-priority patent/US20050140688A1/en
Application filed by 인텔 코오퍼레이션 filed Critical 인텔 코오퍼레이션
Publication of KR20060107834A publication Critical patent/KR20060107834A/ko
Application granted granted Critical
Publication of KR100823373B1 publication Critical patent/KR100823373B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T17/00Three dimensional [3D] modelling, e.g. data description of 3D objects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/04Texture mapping
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/005General purpose rendering architectures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/10Geometric effects
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G5/00Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Graphics (AREA)
  • Geometry (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Image Generation (AREA)
  • Image Processing (AREA)

Abstract

유연한 텍스쳐 필터링을 제공하기 위한 시스템, 방법 및 장치들이 제공된다. 프로그램 가능한 텍스쳐 필터링 모듈이 그래픽 코프로세서의 그래픽 처리 파이프라인(pipeline) 및 호스트와 통합된 그래픽 프로세서로 도입된다. 그 후 정의된 명령어 세트로부터의 프로그램이 그 프로그램과 양립하는 텍스쳐 데이터를 처리하기 위해 텍스쳐 처리 코어들로 로딩될 수 있다.
텍스쳐 필터링, 텍스쳐 매핑(texture mapping), 그래픽 프로세서, 렌더링, 단편

Description

3차원 그래픽 서브시스템들에서의 텍스쳐 맵 데이터의 프로그램 가능 필터링을 위한 방법 및 메카니즘{METHOD AND MECHANISM FOR PROGRAMMABLE FILTERING OF TEXTURE MAP DATA IN 3D GRAPHICS SUBSYSTEMS}
본 출원은 2003년 12월 29일자로 출원되고, 현재 계류중인(pending) 미국 출원번호 제10/747,966호의 계속 출원이다.
본 발명의 실시예들은 컴퓨터 그래픽에 관련되고, 더 상세하게는, 텍스쳐 맵 데이터의 처리에 관련된다.
그래픽 어플리케이션들, 특히 삼차원(3D) 그래픽 어플리케이션들은 오랫동안 개인용 컴퓨터들에 의해 수행되는 가장 처리 집약형(processing intensive) 활동들 중 하나였다. 그래픽 처리 능력들을 개선시키기 위해, 최신의 개인용 컴퓨터들 상에서 그래픽 코프로세서들(graphics co-processor)이 급격히 증가했고 광범위하게 사용가능하다. 그래픽 코프로세서들은 그래픽 어플리케이션들에 의해 요구되는 처리 집약형 연산들을 신속하게 수행하기 위해 설계된 특수 집적 회로들이다.
장면 정보(source data)의, 3D 화상(디스플레이 출력)들로의 변환은 다수의 연산들을 요구한다. 이러한 연산들은 집합적으로 3D 그래픽 렌더링 파이프라인(3D graphics rendering pipeline)이라고 불린다. 파이프라인에 의해 수행되는 연산들 은 소정의 기본적인 기능들로 그룹화될 수 있다. 이러한 기능들 중 하나는 텍스쳐 매핑(texture mapping)이다. 텍스쳐 매핑은, 객체의 표면 속성들(외관, 반사도, 또는 다른 그러한 속성들)을 나타내는 1, 2 또는 3차원 화상이 마지막 렌더링에서 객체를 나타내는 3차원 망(mesh)에 적용되는 프로세스이다. 2차원 화상이 가장 흔하게 사용되지만, 다른 차원들도 가능하다.
텍스쳐 화상이 마지막 렌더링에서 객체에 적용될 때 샘플 텍스쳐 요소들(텍셀(texel)들) 및 소스 텍스쳐 화상의 수와 이미지가 매핑되는 화소(픽셀들)의 수 사이에 자주 불일치가 있다. 주어진 영역의 텍셀들의 수가 픽셀들의 수보다 적으면, 텍스쳐는 업샘플링(upsample)되도록 요구된다. 텍스쳐를 업샘플링할 때, 중간값들을 채우기 위해 소정의 기법이 사용되어야 한다. 이러한 기법은 본원에서 "텍스쳐 필터링(texture filtering)"이라고 불리며 고정 함수 상태 머신(fixed function state machine)에 의해 널리 수행되어 왔다.
가장 최근의 그래픽 코프로세서는 네가지 유형의 텍스쳐 필터링; 포인트 샘플링, 겹선형(bilinear) 필터링, 삼선형(trilinear) 필터링 및 애니소트로픽 필터링(anisotropic filtering)을 지원한다. 필터링 방법들이 점차 복잡해지면서, 그것을 수행하기 위해 필요한 상태 머신들도 점차 복잡해지고 그래픽 코프로세서 내에서 증가된 실제 공간을 요구한다. 이것은, 텍스쳐 데이터의 용도가 계속해서 늘어난다는 사실과 연결되어 있다. 예를 들어 텍스쳐 데이터는 색상 이외에 명암(lighting) 및 다른 표면 속성들에 대해 사용되고, 보통 사용되는 선형 보간법을 비효율적으로 만들거나 심지어 불충분한 것으로 만든다.
본 발명의 실시예들은 유사한 참조 부호들이 유사한 요소들을 나타내는 첨부 도면들에서 한정이 아닌 예로서 예시된다. 본 명세서에서 "임의의" 또는 "하나의" 실시예에 대한 상이한 참조 부호들이 반드시 동일한 실시예에 대한 것이 아니며, 그러한 참조 부호들은 적어도 하나를 의미한다는 점에 주의하라.
도 1A는 본 발명의 일 실시예의 시스템의 블록도이다.
도 1B는 본 발명의 일 실시예의 텍스쳐 샘플링의 도면이다.
도 2는 본 발명의 일 실시예의 텍스쳐된 필터링 모듈의 셋업의 흐름도이다.
도 3은 본 발명의 일 실시예의 텍스쳐 필터링의 흐름도이다.
도 1A는 본 발명의 일 실시예의 시스템의 블록도이다. 호스트 프로세서(100)는 버스(102)에 의해 메모리(104)에 연결된다. 그래픽 코프로세서(106)도 버스(102)에 연결된다. 게다가, 그래픽 코프로세서(106)는 AGP(accelerated graphics port)(112)에 의해 메모리(104)에 연결될 수 있다. AGP는 2002년 9월에 발표된 Accelerated Graphics Port AGP V3.0 Interface Specification Rev. 1.0(이하, AGP 규격)을 준수할 수 있다. AGP(112)는 메모리(104)에 존재하는 그래픽 데이터로의 신속한 액세스를 가능하게 한다. 프레임 버퍼(108) 및 디스플레이(110)도 버스에 연결된다. 소정의 실시예들에서, 프레임 버퍼(108)는 메모리(104)에 포함될 수 있다. 그래픽 코프로세서(106)는 픽셀 처리 파이프라인(120)을 포함한다. 픽셀 처리 파이프라인(120) 내에는 정점(vertex) 처리 모듈(122), 프리미티브 조립(primitive assembly) 모듈(124), 단편 처리 모듈(126) 및 프레임 버퍼 처리 모듈(128)이 있다. 정점 처리 모듈(122)은 연산시 예를 들면 3D 위치 정보, 색상 정보 및 그래픽 화상의 정점들과 관련된 다른 유사한 정보를 포함할 수 있는, 정점 데이터를 수신한다. 일 실시예에서, 정점 데이터는 V=X, Y, Z, TU, TV, RGB의 형태이다. 이러한 표현에서, X, Y, Z는 정점의 3차원 직교 좌표들이며, TU, TV는 텍스쳐 맵의 대응하는 텍셀의 2차원 좌표이며 RGB는 그 정점에서의 적색, 녹색 및 청색의 색상값들이다. 정점 데이터의 다른 형태들 및 내용들도 생각될 수 있다.
정점 처리 모듈은 전달된 3D 위치 데이터에 대해 3차원 변환을 하고, 예를 들면, 명암을 적용할 수 있다. 처리된 정점들은 연결성 데이터(connectivity data)를 수신하는 프리미티브 조립 모듈로 전달된다. 연결성 데이터는 수신된 인덱스들 및 정점들에 기초하여 전형적으로 삼각형들인 프리미티브들의 조립을 허용하기 위한 인덱스들을 포함할 수 있다.
프리미티브들을 처리하여 단편들로 식별하고 텍스쳐 데이터를 적용하여 출력을 만드는 단편 처리 모듈(fragment processing module)(126)로 프리미티브들(primitives)이, 전달된다. 본원에서 사용될 때, "단편(fragment)"은 출력을 생성하기 위해 일관되게 처리될 픽셀 또는 연속적인 픽셀들의 그룹을 가리킨다. 단편 처리는 단편들을 텍스쳐 매핑하는 것과 관련한 데이터를 텍스쳐 필터 모듈(130)과 교환한다.
텍스쳐 필터 모듈(130)은 적용을 위한 텍셀들을 픽셀들에 공급하기 위해 단편 처리 모듈(126)과 통신한다. 일 실시예에서, 텍스쳐 필터 모듈(130)은 프로그램 가능하다. 이 문맥에서, '프로그램 가능'은 정의된 명령어 세트로부터의 하나 또는 그 이상의 명령어들로 이루어지는 소프트웨어 프로그램을 실행할 수 있다는 것을 의미하는 것으로 간주된다. 명령어 세트의 일례가 아래 표 1에서 개시된다.
Figure 112006046844747-PCT00001
보다 짧거나 보다 긴 다른 명령어 세트들이 본 발명의 다양한 실시예들에 사용될 수 있다.
일 실시예에서, 텍스쳐 필터 모듈(130)은 복수의 TPC(texture processing core)(132)를 포함한다(16개의 TPC가 도 1A에 도시됨). 다른 실시예들은 보다 많거나 보다 적은 TPC들을 가질 수 있다. 일 실시예에서, 하나의 TPC가 존재한다. 일 실시예에서, 각 TPC(132)는 다른 각 TPC(132)와 병렬로 픽셀을 처리할 수 있다. 각 코어(132)에는 제어 레지스터들, 소스 레지스터들, 임시 레지스터들 및 출력 레지스터와 같은 다양한 유형의 레지스터들을 포함할 수 있는 레지스터 세트(134)가 제공될 수 있다.
일 실시예에서, 제어 레지스터들은 샘플링 레지스터, 상태 레지스터, 어드레스 레지스터, 오프셋 레지스터 및 복수의 프랙션(fraction) 레지스터를 포함한다. 일 실시예에서, 샘플링 레지스터는 소스 레지스터가 샘플링되어야 하는지 그렇지 않은지를 가리키는, 각 소스 레지스터에 대응하는 1 비트를 가진다. 예를 들면, 16개의 소스 레지스터가 있으면, 샘플링 레지스터는 16개의 소스 레지스터 각각에 대응하는 1비트를 갖는 16비트 레지스터일 수 있다. 일 실시예에서, 상태 레지스터는 오버플로우(overflow), 0으로 나누기 등과 같은 소정 조건들 후에 TPC의 상태를 가리키는데 사용될 수 있다. 일 실시예에서, 어드레스 레지스터는 텍스쳐 맵 데이터의 어드레스를 포함하는 32비트 레지스터일 수 있다. 일 실시예에서, 이러한 레지스터는 프로그래머에게 직접적인 액세스를 제공하기보다는, 오히려 API(application programming interface)에 의해서만 액세스가능할 수 있다. 오프셋 레지스터는 가장 가까운 텍셀 좌표에 대응하는 텍스쳐 데이터에 오프셋을 제공하는데 사용될 수 있다. 프랙션 레지스터들은 각 차원의 텍셀 샘플들 사이의 분수 좌표(fractional coordinate)를 유지하기 위해 사용될 수 있다. 일 실시예에서, 이러한 것들은 단편 처리 모듈(126)에 의해 제공될 것이다. 위의 일 실시예에서, V=X, Y, Z, TU, TV, RGB(TU 및 TV는 텍스쳐 매핑될 픽셀에 대응됨)가 텍스쳐 필터링 모듈에 제공될 것이다. 일례로서, 0.175라는 8 픽셀 1차원 텍스쳐 좌표는 제2(0.125) 텍셀 및 제3(0.25) 텍셀 사이에 속할 것이다. 이는 .2라는 프랙션과 같다고 생각된다. 이 실시예의 프랙션은 (.175-.125)/.125 또는 보다 일반적으로, 증분값으로 나누어진 가장 가까운 보다 낮은 증분보다 적은 좌표로서 존재한다.
도 1B는 본 발명의 일 실시예의 텍스쳐 샘플링의 도면이다. 일 실시예에서, 16개의 소스 레지스터들이 제공된다. 일 실시예에서 각 레지스터는 텍스쳐 샘플 포인트의 샘플링 위치 TUTV를 둘러싸고 있는 4x4 격자의 한 텍셀에 대응하고, 그러한 방식으로 어드레스된 픽셀들에 대응할 것이다. TUTV 가 텍셀 5, 6과 텍셀9, 10 사이의 위치에 매핑될 수 있는 경우, TUTV에 할당된 텍스쳐 값에 대한 패치(patch) 내의 16개 텍셀들의 기여는 텍스쳐 필터링 프로그램에 의해 정의될 수 있다. 소정의 실시예들에서, 텍셀들 5, 6, 9 및 10만이 기여한다. 다른 실시예들에서, 모든 16개 텍셀들이 기여할 수 있다. 또 다른 실시예들에서, 그룹의 모든 대각선 픽셀들이 기여할 수 있다. 예시된 바와 같이, 텍스쳐 필터링 모듈의 프로그램 가능한 성질은 강하고 유연한 텍스쳐 필터링 옵션들을 허용한다.
임시 레지스터들은 샘플 데이터에 중간 계산들을 수행하는 프로그래머에 의해 선택적인 사용을 위해 제공될 수 있다. 일단 필터링 연산이 종료되면 출력을 저장하기 위해 출력 레지스터가 제공된다. 일 실시예에서, 32 비트 레지스터가 마지막 결과를 수신하기 위해 제공된다. 그러나 보다 큰 레지스터들이 사용될 수 있고, 소정의 실시예들에서 32 비트 ARGB(alpha red green blue) 값이 충분하다고 간주될 수 있다.
원하는 필터링 프로그램을 텍스쳐된 처리 코어로 로딩하는 것에 의해 실제 필터링이 텍스쳐 필터링 모듈(130)에 의해 수행될 수 있다. 필터링 프로그램은 처리될 단편에 대응한다. 따라서 화상의 한 영역 내에서, 다양한 효과들을 텍스쳐 데이터에 적용시키는 것이 바람직할 수 있다. 그리하여, 특정한 그래픽 화상에 대하여, 수많은 필터링 프로그램들이 사용될 수 있다.
예를 들면, 화상 위의 가죽 재킷의 윤이 나는 부분에 적용된 필터 프로그램은 가죽 재킷의 닳은 부분에 적용된 필터 프로그램과 다를 수 있다. 텍스쳐 필터 모듈에서 상이한 프로그램들을 사용함에 의해, 다른 효과가 제공될 수 있다. 소정의 장면 화상을 렌더링하는 과정 동안 몇몇 필터 프로그램들의 사용은, 오늘날 고정 함수 기법들 하에서, 소정의 장면의 렌더링이 그 장면의 상이한 부분들에 대한 상이한 고정 함수 필터링 상태들 사이를 전환하는 것을 어떻게 포함할 수 있는가와 유사하다.
사용된 프로그램은, 예를 들면 텍스쳐 필터링을 수행하기 위해 16개의 텍셀 중 어느 것이 실제로 샘플링되느냐에 영향을 미칠 것이다. 일 실시예에서, 텍스쳐 데이터는 샘플링될 가능성이 높은 텍셀들에의 액세스를 최적화하도록 메모리에 배열된다. 예를 들면, 샘플링 레지스터가 매 네번째 픽셀 값이 활성이라는 것을 가리키면, 텍스쳐 데이터는 점들 1, 5, 9 및 13이 메모리에서 인접하고, 점들 2, 6, 10 등이 인접하도록 저장될 수 있다. 또 다른 예로서, 매 두번째 텍셀이 활성일 때, 1, 3, 5, 7 등이 인접하고 2, 4, 8 등이 인접한다. 메모리에서의 이러한 배열은 호스트 프로세서(100) 또는 그래픽 코프로세서(106)에 의해 수행될 수 있다.
메모리를 배열하는 것은 소정량의 프로세서 자원들을 요구하기 때문에, 일 실시예에서, 텍스쳐 데이터의 예상되는 사용이 그것을 재배열하는데 요구되는 임계 비용을 초과할 때 판정이 이루어진다. 그리하여, 일 실시예에서, 텍스쳐된 데이터의 사용이 그것을 재배열하기 위한 비용을 정당화할 경우, 텍스쳐된 데이터는 메모리에 재배열되어 액세스를 용이하게 한다. 임계값은 소정의 프로그램으로 처리될 텍셀들의 수와 같은 객관적인 지침들에 기초하여 선택될 수 있다.
일단 텍스쳐 필터링이 종료되고 출력이 생성되면, 그 후 출력값은 출력 단편이 만들어지도록 단편 처리 모듈(126)로 다시 전달될 수 있다. 단편 처리 모듈(126)에 의해 만들어진 출력은 프레임 버퍼 처리 모듈(128)로 전달된다. 프레임 버퍼 처리 모듈(128)은 수신된 픽셀들을 디스플레이(110)로의 출력을 위한 기존의 프레임 버퍼와 결합시킨다.
도 2는 본 발명의 일 실시예의 텍스쳐된 필터링 모듈의 셋업의 흐름도이다. 기능 블록(202)에서, 텍스쳐 필터 프로그램은 텍스쳐 필터링 모듈의 텍스쳐 처리 코어로 로딩된다. 기능 블록(204)에서, 샘플링 레지스터는 필터링 프로세스의 일부로서 샘플링될 샘플 포인트를 둘러싸는 텍셀들을 가리키도록 초기화된다. 판정 블록(206)에서, 요구된 샘플링들의 수와 관련하여 샘플링될 텍셀들이 메모리에서의 텍스쳐 데이터의 재구성을 정당화하는지에 대한 판정이 이루어진다. 만약 그렇다면, 기능 블록(208)에서 텍스쳐 데이터는 효율적인 액세스를 위해 재정리된다. 재정리 후에, 또는 어떤 재정리도 요구되지 않으면, 어드레스 레지스터는 기능 블록(210)에서 초기화된다.
도 3은 본 발명의 일 실시예에서의 텍스쳐 필터링의 흐름도이다. 기능 블록(302)에서, 텍스쳐 필터는 정점 파이프라인으로부터 렌더링될 픽셀들에 대한 좌표 데이터를 인출한다. 일 실시예에서, 이것들은 단편 처리 모듈로부터 인출될 것이다. 기능 블록(304)에서, 샘플링 레지스터로부터 식별된 텍셀 값들이 메모리로부터 인출된다. 기능 블록(306)에서, 프랙션 레지스터들은 좌표 데이터와 함께 로딩된다. 기능 블록(308)에서, 텍스쳐 처리 코어들은 필터 프로그램을 실행하는데 사용된다. 판정 블록(310)에서, 필터 프로그램의 실행이 상태 플래그의 설정을 필요로 하는지를 판정한다. 만약 실행이 0으로 나눔 또는 오버플로우(overflow)와 같은 상태 플래그를 요구한다면, 기능 블록(312)에서 상태 레지스터가 적절한 값으로 로딩된다. 만약 어떤 플래그도 요구되지 않거나, 상태 레지스터가 로딩된 후라면, 기능 블록(314)에서 출력값은 출력 레지스터로 로딩되고 출력이 사용 가능하다고 신호된다. 판정 블록(316)에서, 기존의 필터 프로그램을 사용하여 렌더링될 픽셀들이 더 있는지를 판정한다. 만약 그렇다면, 흐름은 계속된다. 만약 그렇지 않다면, 흐름은 종료된다.
이상의 흐름도들이 특정한 순서대로 배열되었음에도 불구하고, 소정의 연산들이 병렬로 또는 묘사된 것과 다른 순서로 수행될 수 있다는 것이 이해되어야 한다. 따라서, 그러한 병렬화(parallization) 또는 재배열은 본 발명의 실시예들의 범위 및 의도 내에 있다. 단 하나의 실시예에서, 단일 텍스쳐 처리 코어가 텍스쳐 필터 모듈에 존재하고 있으나, 다수의 텍스쳐 처리 코어를 갖는 실시예들에서, 도 3에 묘사된 흐름을 따라서 픽셀들이 각 코어들을 이용하여 병렬로 처리될 수 있다는 점도 주의해야 한다.
전술된 명세서에서, 본 발명은 특정한 실시예들을 참조하여 설명되었다. 그러나 다양한 수정들 및 변경들이 첨부된 청구범위에서 개시된 본 발명의 보다 넓은 사상 및 범위로부터 벗어나지 않고 만들어질 수 있다는 것이 명백하다. 따라서 본 명세서 및 도면들은, 제한적인 의미가 아니라 예시적인 의미로 여겨져야 한다.

Claims (22)

  1. 렌더링될 픽셀에 대한 좌표 데이터를 인출(fetch)하는 단계;
    상기 픽셀에 대응하는 텍셀(texel) 값들을 인출하는 단계;
    프로그램 가능한 필터를 통해 상기 텍셀 값들을 필터링하는 단계; 및
    상기 픽셀에 대한 필터링된 텍스쳐 값을 출력하는 단계
    를 포함하는 방법.
  2. 제1항에 있어서,
    텍셀 값들을 필터링하는 단계는,
    제어 레지스터를 판독하는 단계; 및
    상기 제어 레지스터에서 특정된 적어도 하나의 위치를 소스 위치로서 사용하는 단계를 포함하는 방법.
  3. 제1항에 있어서,
    좌표 데이터를 인출하는 단계는,
    정점 파이프라인에서 X, Y, Z 좌표 데이터를 검색하는 단계를 포함하는 방법.
  4. 제1항에 있어서,
    복수의 레지스터에 좌표 프랙션(fraction) 데이터를 기입하는 단계를 더 포함하는 방법.
  5. 제1항에 있어서,
    출력하는 단계는,
    레지스터에 상기 필터링된 텍스쳐 값을 기입하는 단계; 및
    상기 필터링된 텍스쳐 값이 사용 가능함을 프로세서에 신호하는 단계를 포함하는 방법.
  6. 단편 처리 모듈(fragment processing module);
    적어도 하나의 픽셀에 대응하는 텍스쳐 데이터를 프로그램 가능하게 필터링하기 위해 상기 단편 처리 모듈과 연결된 프로그램 가능 텍스쳐 필터링 모듈; 및
    기존의 프레임 버퍼와 필터링된 텍스쳐 데이터를 결합하기 위한 프레임 버퍼 처리 모듈
    을 포함하는 장치.
  7. 제6항에 있어서,
    상기 프로그램 가능 텍스쳐 필터링 모듈은,
    복수의 제어 레지스터;
    복수의 소스 레지스터;
    복수의 임시 레지스터; 및
    적어도 하나의 출력 레지스터
    를 포함하는 장치.
  8. 제7항에 있어서,
    상기 소스 레지스터들은 판독 전용인 장치.
  9. 제7항에 있어서,
    상기 복수의 제어 레지스터는,
    상태 레지스터;
    어드레스 레지스터;
    오프셋 레지스터; 및
    복수의 프랙션 레지스터(fraction register)
    를 포함하는 장치.
  10. 제7항에 있어서,
    상기 복수의 제어 레지스터는,
    대응하는 소스 레지스터의 샘플링이 요구되는지를 나타내기 위해 각각의 상기 소스 레지스터들에 대응하는 비트를 갖는 적어도 하나의 샘플링 레지스터를 포함하는 장치.
  11. 제6항에 있어서,
    상기 프로그램 가능 텍스쳐 필터링 모듈은,
    명령어 세트를 실행하기 위한 복수의 프로세싱 코어를 포함하는 장치.
  12. 제11항에 있어서,
    상기 복수의 코어의 서브세트는 적어도 하나의 픽셀에 대해 필터링 프로그램을 병렬로 실행하기 위한 것인 장치.
  13. 메모리;
    텍스쳐 데이터를 프로그램 가능하게 필터링하기 위해 상기 메모리에 연결된 복수의 TPC(texture processing core);
    적어도 하나의 단편에 상기 필터링된 텍스쳐 데이터를 적용하기 위한 단편 처리 모듈; 및
    상기 적어도 하나의 단편을 사용하여 만든 화상을 디스플레이하기 위한 디스플레이
    를 포함하는 시스템.
  14. 제13항에 있어서,
    상기 복수의 TPC 및 상기 단편 처리 모듈은 호스트 프로세서와 함께 통합되 는 시스템.
  15. 제13항에 있어서,
    상기 복수의 TPC 및 상기 단편 처리 모듈은 그래픽 코프로세서에 존재하는 시스템.
  16. 제13항에 있어서,
    상기 복수의 TPC 각각과 관련된 레지스터 세트를 포함하는 시스템.
  17. 제15항에 있어서,
    상기 그래픽 코프로세서를 상기 메모리에 연결하는 AGP(accelerated graphics port)를 더 포함하는 시스템.
  18. 실행되었을 때 디지털 처리 시스템이,
    렌더링될 픽셀에 대한 좌표 데이터를 인출하는 단계;
    상기 픽셀에 대응하는 텍셀 값들을 인출하는 단계;
    프로그램 가능한 필터를 통해 상기 텍셀값들을 필터링하는 단계; 및
    상기 픽셀에 대한 필터링된 텍스쳐 값을 출력하는 단계
    를 포함하는 방법을 수행하게 하는 실행가능한 컴퓨터 프로그램 명령어들을 포함하는 컴퓨터 판독가능 저장 매체.
  19. 제18항에 있어서,
    실행될 때 디지털 처리 시스템이,
    제어 레지스터를 판독하는 단계; 및
    상기 제어 레지스터에서 특정된 적어도 하나의 위치를 소스 위치로서 사용하는 단계
    를 더 포함하는 방법을 수행하게 하는 실행가능한 컴퓨터 프로그램 명령어들을 포함하는 컴퓨터 판독가능 저장 매체.
  20. 제18항에 있어서,
    실행될 때 디지털 처리 시스템이,
    정점 파이프라인으로부터 X,Y,Z 좌표 데이터를 검색하는 단계를 더 포함하는 방법을 수행하게 하는 실행가능한 컴퓨터 프로그램 명령어들을 포함하는 컴퓨터 판독가능 저장 매체.
  21. 제18항에 있어서,
    실행될 때 디지털 처리 시스템이,
    복수의 레지스터에 좌표 프랙션 데이터를 기입하는 단계를 더 포함하는 방법을 수행하게 하는 실행가능한 컴퓨터 프로그램 명령어들을 포함하는 컴퓨터 판독가능 저장 매체.
  22. 제18항에 있어서,
    실행될 때 디지털 처리 시스템이,
    상기 필터링된 텍스쳐 값을 레지스터에 기입하는 단계; 및
    상기 필터링된 텍스쳐 값이 사용 가능함을 프로세서에 신호하는 단계
    를 더 포함하는 방법을 수행하게 하는 실행가능한 컴퓨터 프로그램 명령어들을 포함하는 컴퓨터 판독가능 저장 매체.
KR1020067013145A 2003-12-29 2004-12-23 3차원 그래픽 서브시스템들에서의 텍스쳐 맵 데이터의프로그램 가능 필터링을 위한 방법 및 메카니즘 KR100823373B1 (ko)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US10/747,966 US20050140688A1 (en) 2003-12-29 2003-12-29 Method and mechanism for programmable filtering of texture map data in 3D graphics subsystems
US10/747,966 2003-12-29
US10/872,049 US7133047B2 (en) 2003-12-29 2004-06-18 Method and mechanism for programmable filtering of texture map data in 3D graphics subsystems
US10/872,049 2004-06-18

Publications (2)

Publication Number Publication Date
KR20060107834A true KR20060107834A (ko) 2006-10-16
KR100823373B1 KR100823373B1 (ko) 2008-04-17

Family

ID=34753188

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020067013145A KR100823373B1 (ko) 2003-12-29 2004-12-23 3차원 그래픽 서브시스템들에서의 텍스쳐 맵 데이터의프로그램 가능 필터링을 위한 방법 및 메카니즘

Country Status (6)

Country Link
US (1) US7477261B2 (ko)
EP (1) EP1700272A2 (ko)
JP (1) JP4430678B2 (ko)
KR (1) KR100823373B1 (ko)
TW (1) TWI280513B (ko)
WO (1) WO2005066895A2 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20150056039A (ko) * 2013-11-14 2015-05-22 인텔 코포레이션 그래픽 텍스처 데이터의 플렉시블 필터링을 위한 멀티-모드 텍스처 샘플러

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050140688A1 (en) * 2003-12-29 2005-06-30 Kim Pallister Method and mechanism for programmable filtering of texture map data in 3D graphics subsystems
US7551177B2 (en) * 2005-08-31 2009-06-23 Ati Technologies, Inc. Methods and apparatus for retrieving and combining samples of graphics information
CN101819684B (zh) * 2010-04-12 2012-06-20 长春理工大学 一种动画电影虚拟三维场景的空间加速结构及其创建与更新方法
US9460546B1 (en) 2011-03-30 2016-10-04 Nvidia Corporation Hierarchical structure for accelerating ray tracing operations in scene rendering
US9147270B1 (en) 2011-06-24 2015-09-29 Nvidia Corporation Bounding plane-based techniques for improved sample test efficiency in image rendering
US8970584B1 (en) 2011-06-24 2015-03-03 Nvidia Corporation Bounding box-based techniques for improved sample test efficiency in image rendering
US9142043B1 (en) 2011-06-24 2015-09-22 Nvidia Corporation System and method for improved sample test efficiency in image rendering
JP2014527663A (ja) 2011-07-29 2014-10-16 ヘキサゴン メトロロジー,インコーポレイテッド 座標測定系データ整理
US9269183B1 (en) 2011-07-31 2016-02-23 Nvidia Corporation Combined clipless time and lens bounds for improved sample test efficiency in image rendering
US9305394B2 (en) 2012-01-27 2016-04-05 Nvidia Corporation System and process for improved sampling for parallel light transport simulation
US20130257885A1 (en) * 2012-03-28 2013-10-03 Intel Corporation Low Power Centroid Determination and Texture Footprint Optimization For Decoupled Sampling Based Rendering Pipelines
US9159158B2 (en) 2012-07-19 2015-10-13 Nvidia Corporation Surface classification for point-based rendering within graphics display system
US9171394B2 (en) 2012-07-19 2015-10-27 Nvidia Corporation Light transport consistent scene simplification within graphics display system
US9367948B2 (en) 2013-11-14 2016-06-14 Intel Corporation Flexible filter logic for multi-mode filtering of graphical texture data
US9355490B2 (en) 2013-11-14 2016-05-31 Intel Corporation Minimum-maximum filtering of graphical texture data
US9990748B2 (en) 2015-03-18 2018-06-05 Intel Corporation Corner texel addressing mode
JP7178197B2 (ja) 2018-07-20 2022-11-25 花王株式会社 シャボン玉生成装置
US11244492B2 (en) * 2018-11-02 2022-02-08 Facebook Technologies, Llc. Parallel texture sampling

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4897806A (en) * 1985-06-19 1990-01-30 Pixar Pseudo-random point sampling techniques in computer graphics
US5025400A (en) * 1985-06-19 1991-06-18 Pixar Pseudo-random point sampling techniques in computer graphics
US5239624A (en) * 1985-06-19 1993-08-24 Pixar Pseudo-random point sampling techniques in computer graphics
US4835712A (en) * 1986-04-14 1989-05-30 Pixar Methods and apparatus for imaging volume data with shading
US6366290B1 (en) * 1997-03-31 2002-04-02 Cirrus Logic, Inc. Dynamically selectable texture filter for a software graphics engine
US6333743B1 (en) * 1997-10-23 2001-12-25 Silicon Graphics, Inc. Method and apparatus for providing image and graphics processing using a graphics rendering engine
US6452603B1 (en) * 1998-12-23 2002-09-17 Nvidia Us Investment Company Circuit and method for trilinear filtering using texels from only one level of detail
US6731296B2 (en) * 1999-05-07 2004-05-04 Broadcom Corporation Method and system for providing programmable texture processing
US6999100B1 (en) * 2000-08-23 2006-02-14 Nintendo Co., Ltd. Method and apparatus for anti-aliasing in a graphics system
WO2002103633A1 (en) * 2001-06-19 2002-12-27 Nvidia Corporation System, method and computer program product for a programmable pixel processing model with instruction set
US6867778B2 (en) * 2002-02-28 2005-03-15 Sun Microsystems, Inc. End point value correction when traversing an edge using a quantized slope value
US7324116B2 (en) * 2002-06-20 2008-01-29 Microsoft Corporation Systems and methods for providing controllable texture sampling
US7151544B2 (en) * 2003-05-16 2006-12-19 Sun Microsystems, Inc. Method for improving texture cache access by removing redundant requests
US20050140688A1 (en) * 2003-12-29 2005-06-30 Kim Pallister Method and mechanism for programmable filtering of texture map data in 3D graphics subsystems

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20150056039A (ko) * 2013-11-14 2015-05-22 인텔 코포레이션 그래픽 텍스처 데이터의 플렉시블 필터링을 위한 멀티-모드 텍스처 샘플러
US9355489B2 (en) 2013-11-14 2016-05-31 Intel Corporation Land grid array socket for electro-optical modules
US10169907B2 (en) 2013-11-14 2019-01-01 Intel Corporation Multi mode texture sampler for flexible filtering of graphical texture data
US10546413B2 (en) 2013-11-14 2020-01-28 Intel Corporation Multi mode texture sampler for flexible filtering of graphical texture data

Also Published As

Publication number Publication date
TWI280513B (en) 2007-05-01
TW200530951A (en) 2005-09-16
EP1700272A2 (en) 2006-09-13
WO2005066895A2 (en) 2005-07-21
KR100823373B1 (ko) 2008-04-17
JP2007517330A (ja) 2007-06-28
US20060290707A1 (en) 2006-12-28
JP4430678B2 (ja) 2010-03-10
WO2005066895A3 (en) 2005-09-29
US7477261B2 (en) 2009-01-13

Similar Documents

Publication Publication Date Title
US7133047B2 (en) Method and mechanism for programmable filtering of texture map data in 3D graphics subsystems
US7477261B2 (en) Method and mechanism for programmable filtering of texture map data in 3D graphics subsystems
US10229529B2 (en) System, method and computer program product for implementing anti-aliasing operations using a programmable sample pattern table
US7154500B2 (en) Block-based fragment filtration with feasible multi-GPU acceleration for real-time volume rendering on conventional personal computer
US7777750B1 (en) Texture arrays in a graphics library
US10878527B2 (en) Variable resolution graphics processing
US9230363B2 (en) System, method, and computer program product for using compression with programmable sample locations
US9230362B2 (en) System, method, and computer program product for using compression with programmable sample locations
GB2514655A (en) Methods of and apparatus for processing computer graphics
US9659402B2 (en) Filtering multi-sample surfaces
WO2005104042A1 (en) Block-based fragment filtration with feasible multi-gpu acceleration for real-time volume rendering on standard pc
KR20160046614A (ko) 텍스쳐를 처리하는 방법 및 장치
US9530237B2 (en) Interpolation circuitry and techniques for graphics processing
US10192348B2 (en) Method and apparatus for processing texture
US20210358174A1 (en) Method and apparatus of data compression
US20160267702A1 (en) Graphics processing systems
US20230128982A1 (en) Methods and systems for graphics texturing and rendering
US10311627B2 (en) Graphics processing apparatus and method of processing graphics pipeline thereof
EP1306811A1 (en) Triangle identification buffer

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
FPAY Annual fee payment
FPAY Annual fee payment
LAPS Lapse due to unpaid annual fee