KR100504421B1 - 3차원 그래픽에서 속성을 보간하기 위한 방법 및 장치 - Google Patents

3차원 그래픽에서 속성을 보간하기 위한 방법 및 장치 Download PDF

Info

Publication number
KR100504421B1
KR100504421B1 KR10-1999-7002827A KR19997002827A KR100504421B1 KR 100504421 B1 KR100504421 B1 KR 100504421B1 KR 19997002827 A KR19997002827 A KR 19997002827A KR 100504421 B1 KR100504421 B1 KR 100504421B1
Authority
KR
South Korea
Prior art keywords
pixel
triangle
values
image
coordinate system
Prior art date
Application number
KR10-1999-7002827A
Other languages
English (en)
Other versions
KR20000068684A (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 KR20000068684A publication Critical patent/KR20000068684A/ko
Application granted granted Critical
Publication of KR100504421B1 publication Critical patent/KR100504421B1/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/10Geometric effects

Abstract

삼각형 이미지 프리미티브들로 구성된 2차원 화소 이미지를 렌더링하기 위한 이미지 처리 방법 및 장치가 기술된다. 이미지 평면으로 투영하기 전에, 각각의 삼각형은 그 삼각형의 각 에지와 일치하는 좌표 축들(s,t)과 그러한 에지 사이의 정점에서 일치하는 원점(0,0)를 갖는 각각의 2차원 좌표 시스템으로 매개변수화된다. 일반화된 보간 함수로서, 매개변수화(s,t) 좌표 시스템에 의해 인가되는 함수는, 2차원 좌표 시스템에 의해서 삼각형 내의 위치(P)에서 매개변수 값을 결정한다. 이러한 매개변수 값은, 각각의 화소에서 속성 값을 주기 위해서, 각각의 정점에 대해서 저장된, 표면 기준 또는 텍스쳐링과 같은, 하나 또는 그 이상의 속성에 대해서 저장된 값으로부터 기여를 결정한다. 최종단에서, 모든 삼각형에 대한 화소당 속성 값은 각각의 화소에 대한 출력 칼라를 연결하여 결정하도록 사용된다.

Description

3차원 그래픽에서 속성을 보간하기 위한 방법 및 장치{Method and apparatus for attribute interpolation in 3d graphics}
본 발명은, 다수의 삼각형의 이미지 프리미티브(primitive)들로 구성된 그래픽 이미지들의 렌더링에서의 텍스쳐 및 다른 속성(attribute)들을 처리하기 위한 방법 및 장치에 관한 것으로서, 특히, 배타적인 것은 아니고, 이러한 이미지들이 완전한 이미지를 형성하기 위해 조립되는 일련의 정규 화소 블록들(타일들)로서 생성되는, 타일에 기초한 렌더러(renderer)에서 이러한 이미지들을 렌더링하는 것에 관한 것이다.
3차원(3D) 그래픽에서의 공통적인 동작은 삼각형의 정점들에서의 값들에 기초한 삼각형의 이미지 프리미티브 내의 여러 위치들에서 속성 값들을 계산하는 것이다. (타일에 기초하는 것보다) 풀-스크린 랜더링을 위해, 이러한 기술을 이용하는 그래픽 시스템의 예가 3DO사의 국제특허출원 WO 96/36011호에 주어진다. 상술한 시스템에서 응용 프로그램은, 3개의 공간 좌표들, 4개의 칼라 값들(R,G,B 및 혼합 계수 A) 및 2개의 좌표들(u,v)을 갖는 각 삼삭형 정점을 갖는, 삼각형 이미지 프리미티브들로부터 2차원 텍스쳐 맵으로 모델 공간에서 하나의 모델을 생성한다. 응용 프로그램은 요구된 텍스쳐 맵을 텍스쳐 버퍼로 적재하여 원하는 바대로 모델을 변환한다.
이 모델을 이미지 평면에 투영하면, 모든 공간의 정점 좌표들이 가설의 깊이 조절된 텍스쳐 공간으로 균일한 공간 좌표들(u/w,v/w)을 제공하도록 분할되는 것에 의해 균일(homogeneity) 디바이저(w)(깊이 값과 관계된다)를 발생시킨다. 응용 프로그램은 이후 x/w, y/w, u/w, v/w 및 1/w 의 정점당 표시들을 이용하여 삼각 엔진으로 정점 명령 리스트들을 전달한다. 셋-업 순서는 삼각형의 세 개의 정점들에서 1/w 의 값들에 인가될 수 있는 w에 대한 값들의 범위를 최적화하며, 블록은 세 개의 1/w 값들 뿐만 아니라 u/w 및 v/w 값들을 고정시킬 수 있다.
이러한 종래의 렌더링이 각각의 삼각형을 순서대로 처리하는 반면, 타일에 기초한 렌더링은 주어진 스크린 영역(타일)에 영향을 주는 모든 삼각형들을 모으며 이것들을 렌더링하여, 타일들을 순서대로 처리한다. 그러므로 타일에 기초한 렌더링 시스템들은 (하나의 삼각형에 대한 것만이 아니라) 현재 처리되는 모든 삼각형들에 대한 속성들을 유지해야 한다. 이에 더해서, 속성들의 증대적인 보간으로, 이러한 시스템들은 각 삼각형에 대한 중간 결과들을 구해서 저장할 수 있어야 하며 따라서 그들이 다음 타일을 위한 스타트 값들로서 사용될 수 있다. 이러한 속성들의 저장 및 복원은 오프 칩 속성 메모리와 온 칩 속성 처리 사이의 메모리 대역폭의 증가를 초래하고, 온 칩 캐시 헬프(on-chip cache help)들을 이용하고 있지만, 캐시는 현재 처리되는 삼각형들의 합리적인 조각에 대한 속성들을 유지할 수 있어야 한다.
어떤 스크린 화소들이 각 삼각형의 내측에 존재하는지를 판단하기 위해서, 삼각형의 속성들에 따라, 부가적인 제어 값들이 계산되고 증대적으로 보간된다. 제어값이 각 에지에 대해 유지되고, 이는 전형적으로 한 포인트에서 에지에 이르는 최단거리의 배수이다. 안티-에일리어싱(anti-aliasing)을 행하는 시스템들은 그들의 내부의 안티 에일리어싱 알고리즘을 통합하기 위해 명백하게 배수가 세팅될 것이나, 화소가 삼각형 내측에 있는지를 판단하기 위해, 내외측 테스트는 단지 제어값들의 부호(sign)만을 필요로 한다. 이러한 제어값들은 실제로 계산, 저장, 복원 및 보간되는 부가적인 속성들이 된다.
도1은 삼각형 이미지 프리미티브의 매개변수화를 도시하는 도면,
도2는 화소 필터 커넬에 영향을 주는 삼각형 이미지 프리미티브들을 표시하는 도면,
도3은 본 발명을 실시하는 이미지 처리 시스템의 블록 개략도,
도4는 반 화소 스페이싱 그리드 상에서 샘플 포인트 어레이를 표시하는 도면,
도5는 도 3의 시스템으로 공급하기 위한 데이터를 생성시키는 프리미티브 에이터 획득과 전처리 루틴을 표시하는 흐름도,
도6은 도3의 시스템의 메인 속성 조절 단의 동작을 도시하는 개략도,
도7은 도3의 시스템에서 메인 속성 조절 단의 화소 조각 서브시스템의 동작을 도시하는 개략도,
도8은 도3의 시스템의 보조 속성 조절 단의 동작을 도시하는 개략도.
그러므로 본 발명의 목적은 계산되는 속성들의 수를 감소시키는 것이지만, 특히 타일에 기초한 렌더러에만 한정되지 않는다.
본 발명에 따라서 이미지 평면에 투영되는 다수의 삼각형 이미지 프리미티브들로부터 2차원 화소 이미지를 렌더링하는 이미지 처리 방법이 제공되며, 여기서 삼각형 정점들에 고정된 값들로부터 보간에 의해 유도된 화소마다의 속성값들은 투영된 삼각형 프리미티브들 내에서 각각의 화소들로 매핑되며, 각각의 삼각형에 대해서:
투영를 행하기 전에는, 삼각형은 삼각형의 각 에지들과 평행한 좌표축들(s,t)과 상기 에지들 사이의 정점과 일치하는 원점을 갖는 각 2차원 좌표 시스템으로 매개변수화되며; 투영 중에는, 일반화된 보간 함수가 매개변수화 좌표 시스템에 대하여 적용되어, 2차원 좌표 시스템에 의해서 삼각형 내의 위치들에서 매개변수 값들을 결정하며; 투영 후에는, 삼각형 내의 위치들에서 결정된 매개변수 값들이 각 정점에서 하나 또는 그 이상의 속성들에 대해 저장된 값들로부터 기여(contribution)들을 결정하여, 각 화소의 속성 값들을 부여하고; 여기서 모든 삼각형들로부터 대응하는 화소당 속성값들은 각각의 화소에 대한 출력 칼라를 함께 결정한다는 것을 특징으로 한다.
다음 전형적인 실시예들의 판독으로부터 분명하게 되듯이, s 및 t 내의 퍼-프리미티브 매개변수화는 투시 교정에 의해서 확실한 이점들을 제공한다. 삼각형들 내의 위치들의 매개변수 값들을 결정하는 것에 의해, 삼각형 정점들에 대해서 저장된 여러 속성들의 응용이 상당히 간단히 될 수 있다.
적절하게는, 상술한 방법의 일부로서, 화소가 투영하는 적절한 보간자들(s/z, t/z, 및 1/z)을 사용하여 화소의 중심이 삼각형의 내측 또는 외측에 있는지를 판단하기 위해 테스트될 수 있고, 여기서 z는 화소에 대한 깊이 값이다. 다른 깊이 관계들(WO 96/36011의 균일 디바이저(w)와 유사함)이 사용될 수 있지만, 값 z가 시야 공간에 대하여 깊이를 적당히 규정한다. 여기서 특별한 이점은 모든 요구된 변수들이 매개변수화 동작으로부터 나와서, 이미 사용이 가능하다는 것이다.
정확도를 개선하며, 에지들을 안티 에일리어싱하기 위해서, 삼각형 내측 또는 외측의 위치를 결정하기 위한 전술된 테스트가 화소 중심의 미리결정된 거리 내의 다수의 샘플 포인트들의 각각에서 또한 적당히 수행될 수 있다. 또한, (후술하는 바와 같이) 교차하는 프리미티브들에서의 문제들을 회피하기 위해서, 두 개의 삼각형들의 교차에 의해 규정된 라인은 상기 다수의 샘플 포인트들에서 역(inverse) 깊이 1/z를 이용하여 각 화소에서 바람직하게 안티 에일리어싱되며, 이는 요구된 변수들이 이미 사용될 수 있다는 이점을 갖는다.
또한 본 발명에 따라, 이미지 평면으로 투영되는 다수의 삼각형 이미지 프리미티브들을 규정하는 데이터로부터 2차원 화소 이미지를 렌더링 하기 위해 구성된 이미지 처리 장치가 제공되는데, 장치는 삼각형 정점들에 대해서 유지되는 값들로부터 화소당 속성값들을 도출해 내기 위해 배치된 보간 수단과, 투영된 삼각형 프리미티브들 내의 각각의 화소들로 상기 화소당 속성 값들을 매핑하기 위해서 배치된 데이터 조절 수단을 포함하고, 상기 장치는 투영 전에는 상기 삼각형 프리미티브들을 규정하는 데이터를 수신하기 위해서 결합되며, 삼각형의 각각의 에지들과 평행한 좌표 축들(s,t)과 상기 에지들 사이의 정점과 일치하는 원점을 갖는 각각의 2차원 좌표 시스템으로 각 삼각형을 매개변수화하도록 배치되는, 계산 수단과; 각 삼각형에 대한 일반화된 보간 함수를 인가하도록 동작되며 상기 2차원 좌표 시스템에 대하여 삼각형 내의 위치들에서 매개변수 값들을 유도하는 것과 같이, 좌표 시스템의 매기변수화에 대하여 동작되는 투영 수단과; 각 화소의 속성 값들을 제공하며, 모든 삼각형들로부터의 화소당 속성값들을 결합하며 화소당 칼라값을 출력하는 것과 같이, 각 정점에서 하나 또는 그 이상의 속성들에 대한 상기 저장된 값들로부터의 기여들을 삼각형 내의 위치들에서 상기 결정된 매개변수 값들로부터 도출하기 위해 구성된 화소 세이딩(shading) 수단을 포함하는 것을 특징으로 한다.
이러한 장치는 또한 각 화소와 연관되는 각 스택을 갖는, 다수의 데이터 스택들을 보유하며, 화소에 영향을 주는 하나 또는 그 이상의 삼각형들의 매개변수들을 식별하는 엔트리들을 보유하는 저장 수단을 포함하며; 적절하게, 수단은 화소의 형상에서 인지가능한 영향을 갖지 않는 어떤 삼각형 매개변수들을 스택으로부터 배제하기 위해서 제공될 수 있다. 선택적으로, 상기 스택 엔트리들의 미리 결정된 수까지, 그들의 각각의 깊이 값들에 의해서 결정된 순서로 저장될 수 있으며, 엔트리들이 폐기되거나 또는 후보가 거절됨에 따른 오버플로우 문제들을 회피하기 위해서, 수단들은 폐기되거나 또는 거절된 후보 스택 엔트리들부터 현재의 스택 엔트리들로 데이터를 선택적으로 변환하기위해 제공될 수 있다.본 발명은 첨부한 도면들을 참조로, 단지 예의 방법으로 이제 설명될 것이다.
도1은 좌표들 s 및 t를 갖는 삼각형 내측에 포인트를 갖는 삼각형의 가시 공간 평면에 매개변수화를 도시한다. 후술하는 바와 같이, (s,t)는 보여질 것과 같이 본 발명을 실시하는 속성 보간 기술에서 그 용도가 다수의 방법들로 다르다고 할지라도, 중량 계산들의 중심에 대해서 사용되는 형태(1-s-t, s, t)의 무게중심 좌표들와 유사함을 알 수 있다. s 축은 삼각형의 정점들 V.0 및 V.1을 통해서 연장되며, t 축은 정점들 V.0 및 V.2를 통해서 연장되고, 원점은 정점 V.0에 놓이며, 정점 V.1은 (S,t)=(1.0)이며 정점 V.2는 (s,t)=(0,1)이다. 후술하는 바와 같이, 에지 0은 정점 V.1 내지 정점 V.2로 연장되는 것이며, 에지 1은 정점 V.1 내지 정전 V.2로 연장되는 것이며, 에지 2는 정점 V.2 내지 정점 V.0로 연장되는 것이다.
투영-교정 값들(s,t)이 주어지면, 어떤 점 P에서 속성 Q[P]의 투영 수정 값은 다음으로 부터 계산될 수 있다.
Q[(s,t)] = Q[0] + s* (Q[1] - Q[0]) + t*(Q[2] - Q[0])
텍스쳐가 투영 교정이며; 비투영 교정 세이딩이 상당하지만, 더 양호한 조명 모델들의 출현으로 투영 교정이 결핍되는 것이 현저하며, 특히 하이라이트에서 그와같다. 투영 교정은 s와 t 대신에 s/z, t/z 및 1/z을 보간하는 것에 의해 이루어질 수 있다. 1/z 보간은 또한 숨겨진 표면 제거 투영 교정을 생성하며, 이는 간단히 z를 보간하는 경우가 아니다.
(s/z, t/z) 및 1/t의 시작 및 델터 값들은 스크린상의 어떤 포인트에서 삼각형의 가시 공간 정점들로부터 계산될 수 있다. 다음 세 개의 경우들이 시야 공간의 삼각형의 평면의 원점에 맞도록 최적화된다. 즉,
C의 경우;
Kc = OSx*OTy - OTx*OSy
s/z = [+ OTy*(xs/d - Ox/z) - OTx*(ys/d - Oy/z)]/Kc
t/z = [- OSy*(xs/d - Ox/z) + OSx*(ys/d - Oy/z)/Kc
B의 경우;
Kb = OTx*OSz - OSx*OTz
s/z = [- OTz*(xs/d - Ox/z) + OTx*(1 - Oz/z)]/Kb
t/z = [+ OSz*(xs/d - Ox/z) - OSx*(1 - Oz/z)]/Kb
A의 경우
Ka = OTz*OSy - OSz*OTy
s/z = [- OTy*(1 - Oz/z) + OTz*(ys/d - Oy/z)]/Ka
t/z = [+ OSy*(1 - Oz/z) + OSx*(ys/d - Oy/z)/Ka
s 및 t를 얻기 위한 s/z 및 t/z를 1/z로 분할하는 비용은 단일 텍스쳐 어드레스의 투영 교정에 비교되며, 삼각형당 1개 이상의 텍스쳐를 이용하는 것은 1/z에 의한 여분의 분할들을 요구하지 않고 투영 교정에 유지된다.
(s,t)를 사용하면, 내부-외부(I-O) 테스팅이 단순화된다. 주어진 (s,t)는 가시 공간 삼각형 정점들(O,S,T)에 기초해서 좌표들을 형성하며, t 좌표의 부호는 벡터 OS에 공동으로 입사하는 라인을 따라서 삼각형의 평면을 두 개로 분리한다. 이와 유사하게, s 좌표의 부호는 평면을 벡터 OT의 양 측으로 분리한다. 이것은 3개의 에지들의 외부의 2개를 위한 I-O 테스트를 제공한다. 정점들 S와 T사이의 제 3 에지는 식 s+t ==1로 규정되며, 따라서 I-O테스트는 제 3 에지 상에서 수행될 수 있다. s 및 t가 직접적으로 사용가능하지 않을 때, s/z, t/z 및 1/z는 이미 사용이 가능하며, 1/z의 부호가 뷰어 정면의 포인트들에 대해서 일정(네가티브)하므로, s 및 t의 극성들에 기초한 테스트들이 s/z 및 t/z을 사용할 수 있다. 이를 이용하여, 제 3 테스트는 s/z + t/z ==1/z 로서 재기록되며, 이를 위한 변수들은 이미 사용가능하다.
클립핑에 대해서, 본 아키텍처는 스트레이트포워드(straightforward) 방식으로 동작하며, (s/z, t/z, 1/z)이 I-O 테스트들을 위해서 사용될 때 특별한 클립핑 알고리즘들을 요구하지 않는다. 클립된 삼각형들을 생성시키는 것이 필요하지 않으며, 연관된 속성들을 계산하는 것도 필요치 않다. 이것은 스크린 공간 정점들에 기초한 아키텍처들 이상으로 상당한 장점이 있다.
이미지는 스크린의 작은 영역들(타일들)을 순차적으로 및 독립적으로 렌더링하는 것에 의해 렌더되며, 그 한 예가 도 2에 도시된다. 다음 예에서, 타일은 8 x 8 화소들의 규격을 갖는다. 타일을 렌더링하기 위해서, 초기 결정이 삼각형들이 타일에 영향을 가하는 것으로 이루어진다. 도 2를 참조하면, 삼각형은 렌더링된 타일 상에서 얼마의 가시 효과를 가질 때 타일에 영향을 가하는데, 즉 삼각형은 타일(TR.1으로서)과 중첩되거나, 또는 비중첩될 때, 렌더링된 타일(TR.2로서) 상에서 얼마의 가시 효과를 갖기에 충분히 가깝다. 타일 풋프린트(FP)는 삼각형이 가시 효과를 가질 때 중첩되어야 하는 영역이며; 안티-에일리어싱 알고리즘의 선택이 타일 풋프린트를 결정하지만 만족스러운 결과들이 타일 에지들로부터 외부로 1.5 화소가 확장하는 풋프린트로 획득되었으며, 9 x 9 화소들의 타일 풋프린트당 8 x 8 화소 타일이 주어진다.
제어 속성으로서, 소위 "매직(magic)" 포인트가 식별된다. 매직 포인트는 화소 중심과 공동-입사되며, 계속해서 증가하여 보간되는 매개변수들의 절대 계산들을 위해서 사용되고, 삼각형의 경계 박스와 온-스크린의 내부가 되도록 요구된다. 매직 포인트는 타일 조각 절차에 대한 삼각형의 부분으로서 결정된다. 전술된 바와같이, 삼각형들이 클립될 필요가 없으므로, 매직 포인트 계산은 전체적으로 온-스크린인지 또는 부분적으로 온-스크린인지에 관계없이, 모든 삼각형들에 대해서 동일하다. 정점들에서의 값들은 모든 삼각형들에 대해서 변하지 않고 유지되는데; 어떤 시점에서 새로운 정점들 또는 새로운 삼각형들을 생성하는 것은 필요하지 않다.
각각의 온-스크린 삼각형은 페이스 식별자로서 정수 값에 할당된다. 삼각형이 타일에 영향을 가하면, 페이스 식별자는 타일에 영향을 가하는 모든 삼각형들의 페이스 식별자들을 유지하는 타일 조각 스택 상에 푸시된다. 타일 조각 스택이 판독될 때 페이스 식별자는 삼각형의 속성들을 액세스하는데 사용된다. 각 타일 조각 스택은 타일 크기의 스크린 영역에 대응하며, 집합적으로, 타일 조각 스택들은 타일 조각 버퍼를 포함한다. 각 타일 조각 스택은 요구되는 바와 같이 화소 어드레스들을 생성하는데 사용되는 타일 조각 버퍼에서 (x,y) 어드레스를 갖는다. 타일 조각은 페이스 식별자와 스택 (x,y) 어드레스로 구성된다. 타일 조각 스택은 개념적으로 타일 조각들의 스택이지만, 실제로 스택 (x,y) 어드레스와 연관된 페이스 식별자들의 스택이다.
타일들이 독립적으로, 또한 어떤 순서로 렌더링될 수 있다고 하여도, 상부 좌측에서 시작하여 좌측에서 우측으로 짝수열들과, 우측에서 좌측으로 홀수열들, 및 상부에서 하부로의 로우 쌍들을 스캐닝하는 지그재그 라스터 스캐닝 순서로 타일 조각들을 판독하는 것에 의해 타일들 사이의 간섭성을 얻는 것이 바람직하다. 실시간 수행에서, 충분한 타일들의 수가 렌더링되었을 때, 그것들은 아직 렌더되지 않은 화소들을 판독하기 위한 시도들에 대해서 걱정할 필요없이 디스플레이로 판독되고 통과될 수 있다. 이것은 렌더링된 타일들을 유지하도록 FIFO 버퍼를 요구하지만 풀 스크린 프레임 버퍼의 비용을 회피한다.
본 발명을 실시하는 이미지 처리 장치가 도 3에 도시되며, 개별적으로 조절되는 메인 및 보조 속성들을 갖는 이단 장치를 포함한다. 각 단은 각각의 속성 버퍼(14, 16)와 결합되는 처리기(10, 12)(각각 로컬 캐시(10A, 12A)를 갖는)를 포함하며, 메인 속성 처리기(10)는 이미지를 이루는 삼각형 다각형의 인덱스된 면 셋트의 형태로 데이터를 수신하도록 입력을 갖고, 메인 속성들은 삼각형 정점들에 대해서 3차원 (가시 공간) 좌표들을 포함한다. 도 5를 참조하여 후술하는 바와 같이, 도입 루틴은 처리기(10)를 공급하기 전에, 또는 그 내에서 입력 데이터에 인가되는데, 어떤 기본 계산들을 수행하며 메인 속성 저장(14) 또는 (점선으로 표시된 바와같이) 보조 속성 저장(16) 중 적당한 것에 공급하기 위해서 삼각형 속성들을 분리하도록 인가된다.
처리된 메인 속성 데이터는 보조 단의 출력에 대해서 데이터 및 깊이 버퍼(18)에 전달된다. 보조 단은 이러한 일반화된 보간을 취하며 그것을 프레임 버퍼 및 따라서 디스플레이에 공급하는데 적당한, 출력 화소 값을 생성하기 위해서 다른 보조 속성들(예를 들면, 맵 저장(20), 칼라링, 표면 노말들로부터 택스쳐를 맵핑하는 것)의 각각에 대해서 인가한다.
메인 속성 버퍼(14)는 오프-칩이며, 매직 포인트에서 평가됨에 따라 렌더되기 위해서 각 삼각형에 대해서 안티-에일리어싱 및 z-버퍼링에서 사용된 증가적으로 보간된 속성들을 유지한다. 메인 속성 캐시(10A)는 온-칩이며 타일들 사이에서 저장 및 복원될 때 현재 렌더되는 각 삼각형에 대해서 증가적으로 보간된 속성들을 유지한다. 타일 변환 절차로의 삼각형은 얼마나 많은 타일들이 각 삼각형에 의해서 영향을 받는지를 식별하며, 따라서 각 삼각형에 대한 기준 계수를 유지하는 것이 가능하다. 이러한 기준 계수는 삼각형이 타일의 일부로서 처리될 때마다 감소된다. 기준 계수가 제로로 접근할 때 삼각형의 속성들은 더 이상 요구되지 않으며 캐시(10A)로부터 플러쉬될 수 있다. 타일들은 라스터 스캐닝 순서로 판독되며, 따라서 높은 삼각형들은 프레임을 처리하기 위해서 취해진 시간의 크기가 가능한 조각에 대한 캐시에서 유지될 것이다. 어떤 상황들에서는, 기준 계수가 제로가 아니라할지라도, 캐시로부터 삼각형의 속성들을 플러쉬하는 것이 필요하며; 오프-칩 속성 버퍼에 다시 증가적으로 보간된 속성들의 현재값들을 기록하는 것이 바람직하지 않으며, 따라서 속성들이 다음에 캐시에 의해서 요청될 때 메카니즘은 매직 포인트에서 마지막으로 보간된 주어진 값일 때의 값들을 복원하도록 제공된다.
본 아키텍처에서, 매직 포인트에서의 삼각형 매개변수들은 인접 화소에 대해서, 그곳에서 또 다른 인접 화소로 증가적으로 보간될 수 있고, 값들이 타일 내의 각각의 영향을 받은 화소에 대해서 생성되었을 때까지 그와 같다. 보간된 값들은 이후 삼각형에 의해서 영향을 받은 다음 타일에서 사용하도록 준비된 메인 속성 캐시에서 저장된다. 그후, 메인 속성 캐시로부터 검색된 이미 증가적으로 보간된 값들은 현재 타일 내의 화소에서 종결하는 경로를 따라 증가적으로 보간되며, 여기서 증가 보간 공정들은 현재 타일 내의 영향을 받은 화소들에 대해서 진행된다. 지그재그 스캐닝 순서는 삼각형에 의해서 영향을 받은 현재의 타일이 때때로 이전의 그러한 타일, 및 인근에서 항상 수평으로 인접하며, 따라서 이 경로를 따라 이동하는 소모된 시간이 최소화된다. 증가 보간은 x 및 y에서 하나의 화소 단계들을 사용한다. 단순한 시프트들은 두 개의 화소들의 전력들에서 스텝들을 허용하며; 타일 장치들의 규격들에 대응하는 스텝들을 이용하는데, 타일에서 제1 화소를 얻는데 취해지는 시간을 최소화하는 타일 탐색 모드를 이용한다. 이것은 메인 속성 캐시(10A)로부터 영구적으로 플러시된 후에 보간된 속성 값들을 커버하는데 사용된 메카니즘이다.
값이 각 화소에서 증가적으로 보간됨에 따라 그들은 소위 화소 조각을 규정한다. 삼각형에 의해서 영향을 받은 화소 조각들은 그들이 수용되거나(따라서 최종 이미지에 기여하거나) 또는 거절되는(왜냐하면 그것들이 폐색되기 때문에) 화소 조각 버퍼로 통과한다. 삼각형에 영향을 주지 않는 화소 조각들은 거절된다. 화소 조각이 수용되면 증가적으로 보간된 s/z 및 t/z 값들은 s 및 t를 얻기 위해서 1/z으로 분할되며, 이후 화소 조각 버퍼에 저장된다. 1/z로 분할되는 것은 각 화소 조각이 증가 보간에 의해서 생성될 때 이루어져야 한다.
s 및 t를 얻기 위한 분할 처리는 s/z, t/z 및 1/z의 정수 값들을 부동점 값들로 변환하도록 우선 인코더들로 시작된다. 다음에, 1/z 가수의 더 높은 순서 비트는 z 및 z2의 조악한 값들을 얻기 위해서 작은(예를 들면 512 워드) 룩업 테이블로 공급된다. 테이블에 의해서 공급된 z 값은 1/z의 상호적인 테일러 급수 확장의 제 1 급수이다. 테이블에 의해 공급된 z2의 값은 테일러 급수 확장의 제 2 급수를 얻기 위해서 1/z 가수의 낮은 순서 비트에 의해서 증배된다. 제 1 및 제 2 급수들은 이후 z의 가수를 15 조각 비트로 주기 위해서 부가된다. z 가수는 s 및 t 가수를 주기 위해서 s/z 및 t/z 가수들에 의해서 증배된다. s/z t/z 및 1/z의 지수들은 s 및 t의 지수를 얻기 위해서 획득된다. 마지막으로, s 및 t의 정수 값들은 그 각각의 지수들에 비례해서 그 가수를 올리거나 내리도록 시프팅함으로써 얻어진다.
1/z(z 보다)의 지수 및 가수는 화소 조각들의 순서를 전방에서 후방으로 결정하기 위해서 화소 조각 버퍼의 내부에서 사용되는 역 깊이 값을 생성하도록 함께 묶인다. 이러한 표현은 일반적인 정수 표시에서 바람직한데, 그 이유는 투영 효과가 부동점 가수의 사용으로 인해서 발생되는 깊이 해상도에서의 변화에 의해서 미러되기 때문이다.
여전히 도 3을 참조하면, 보조 속성 버퍼(16)는 오프-칩이며, 숨겨진 표면 제거후 까지 요구되지 않는 속성들, 즉, 예를 들면 저장(20)에 대한 텍스쳐 맵 어드레스들와 같은 것을 텍스쳐링하며 세이딩하는데 요구되는 속성들을 유지한다. 보조 속성 캐시(12A)는 온-칩이며 현재 텍스쳐되며 세이드되는 각 삼각형에 대해서 속성들을 유지한다. 타일에 기초한 렌더링은 화소 조각 버퍼로부터 판독된 연속되는 화소 조각들이 다른 삼각형들에 적용되어, 캐시가 필수적임을 의미한다.
출력 이미지에서 원하는 입자화를 성취하기 위해서, 각 화소는 포인트보다 영역으로서 고려된다. 다수의 I-O 테스트들은 삼각형에 의해 커버되는 화소 영역의 조각이 무엇인지를 결정하기 위해서 화소 중심에 가까운 다른 샘플링 포인트들에서 수행된다. 다수의 I-O 테스트들의 결합된 결과는 내부 비트 벡터로서 언급되는데; 이러한 벡터 내의 비트 N은 N 번째 샘플링 포인트에서 I-O 테스트의 결과이다. 본 설계는 화소당 32 샘플링 포인트들을 사용한다. 화소당 8 샘플링 포인트들의 기본 패턴은 화소 풋프린트를 커버하는 32 포인트들을 주기 위해서 각각 네 개의 대각선 방향들으로 변형되며; 도 4는 32 샘플링 포인트들의 패턴의 그래픽 도시이다.
본 아키텍처는 화소 중앙들(매직 포인트들)에서 s/z, t/z 및 1/z의 값들을 유도하기 위해서 증가 보간을 사용한다. 증가 보간 델타들로부터 유도된 옵셋 값들을 화소 중심의 s/z, t/z 및 1/z의 현재 값들에 부가하는 것은 각각의 샘플링 포인트에서의 s/z, t/z 및 1/z 의 값들을 제공한다. 이러한 값들은 각각의 샘플링 포인트에 대해서 I-O 부울 값을 제공하도록 결합된다. 결과 부울값은 내부 비트 벡터를 제공하도록 연결된다. 내부 비트 벡터의 증가 보간은 타일들 사이에서 저장되며 복원되는 부가적인 값들을 요구하지 않음을 알 수 있다. 샘플링 포인트들에서의 값들은 화소 중심의 값들과 32 샘플링 포인트 위치들의 연관된 삼각형당(타일당) 증가 보간 델타들로 주어진 지식으로부터 획득될 수 있다.
숨겨진 표면의 제거용으로, 화소 조각 버퍼가 2회 버퍼된다. 하나의 버퍼는 현재의 타일에 영향을 주며 최종 이미지에 가시적인 기여를 하는 것으로 예상되는 모든 이러한 화소 조각들을 어셈블한다. 다른 버퍼는 이전 타일에 대해서 어셈블되는 화소 조각들을 유지하며 이들을 텍스쳐되며 세이드되도록 공급한다. 일반적으로 판독되는 것보다 화소 조각 버퍼로 제공되는 더 많은 화소 조각들이 있는데, 이는 거절되는 일부 화소 조각들로 인한 것이다.
화소 조각 버퍼는 화소 조각 스택들의 2D 어레이로서, 타일에서 각 화소에 대해서 하나의 스택이 배열되며, 각각의 스택은 다수의 화소 조각들을 보유한다. 화소 조각들은 분류되어 스택 내의 연속되는 조각들이 가시 원점으로부터 단조롭게 증가하는 깊이를 갖는다. 화소 조각이 스택에 허용되도록 제안될 때, 그 역 깊이(1/z)는 스택 내의 각 조각의 역 깊이와 비교되어야 하며, 이것은 병렬로 전체적으로 유지하도록 수행되어야 한다. 다수의 깊이 비교기들은 비교기들의 어레이로 적재되는 스택과, 그들의 새로운 위치들의 조각들로 재기록되는 스택의 콘텐츠를 요구하며, 가능하게는 제안된 조각을 허용하며 스택의 이전 조각들 중 하나를 거절한다. 스택이 임의의 오프-칩 메모리로 액세스하는 것을 요구하지 않고 전체적으로 온-칩으로 수행될 수 있는 순서로 타일에 기초한 렌더링을 수행하는 것이 이러한 동작이다. 또한 화소 조각들은 2개가 완전하게 커버하는 화소 조각들의 연속적인 블록에 의해 이어지는 부분적으로 커버하는 화소 조각들의 연속되는 블록이 되도록 배열된다. 이것은 뷰어에 의해 보여지도록 화소를 모델링하고; 부분적으로 화소 조각들을 커버링하는 것은 그들 뒤의 조각들이 부분적으로 보여지게 하며, 완전히 화소 조각들을 커버링하는 것은 그들 뒤의 모든 것을 폐색시킨다. 2개의 완전하게 커버링하는 화소 조각들에 대한 이유는 이하에서 설명된다.
완전한 화소 조각은 그 내부 플래그들(샘플 포인트당 I-O 테스트 결과들) 모두가 진실인 화소 조각이다. 그것은 완전한 화소 조각 뒤의 임의의 화소 조각이 전체 폐색되는 것, 즉, 완전한 화소 조각에 의해 완전하게 덮여지는 것을 따르고 있다. 부분적인 화소 조각은 그 내부 플래그들이 진실인 일부를 갖는 화소 조각이다. 화소 조각 버퍼가 리셋될 때, 부분적인 화소 조각들은 널(null) 화소 조각들과 대치되며, 즉, 그 내부 플래그들이 진실인 어떤 것도 갖지 않는 화소 조각들이다.
다른 조각 분류는 화소 내부의 삼각형의 일부 또는 더 정확히는, 화소의 풋프린트 내부의 부분을 기술하도록 커넬에 의해서 삼각형으로부터 발생된, 제안된 화소 조각 중의 것이다. 제안된 화소 조각은 전체 화소 조각 또는 부분적인 화소 조각으로서 분류될 수 있지만, 널 화소 조각으로서는 아니다. 제안된 화소 조각이 전체 화소 조각이면, 그것은 화소 조각들의 중심의 역 깊이 값들에 기초해서 스택내의 전체 화소 조각들 모두와 비교된다. 이후 그것은 다음 기준들에 따라서 스택으로 삽입되거나 거절된다:
-삽입 기준 1: 제안된 화소 조각이 스택의 임의의 전체 화소 조각의 정면에 있으면, 그것은 연속되는 스택 엔트리들에 대한 역 깊이에서 단조로운 감소를 유지하는 어떤 위치에서도 스택으로 삽입된다.
-거절 기준 1: 제안된 화소 조각이 스택의 전체 화소 조각들의 모두의 뒤에 있으면 그것은 전체가 폐색되어 버리므로 거절된다.
제안된 화소 조각이 부분적인 화소 조각이면, 화소 조각들의 중심의 역 깊이 값들에 기초해서 스택의 전체 화소 조각에 가장 근접한 것에 대해서 그리고 스택의 부분적인 화소 조각들 모두에 대해서 비교된다. 이후 그것은 다음 기준들에 따라 스택 내로 삽입되거나 거절된다.
-거절 기준 2: 제안된 호소 조각이 스택의 전체 화소 조각에 가장 근접한 것 뒤에 놓이면, 전체가 폐색되어 버리므로 거절된다.
-거절 기준 3: 제안된 화소 조각이 스택의 전체 화소 조각에 가장 근접한 것의 정면이지만 스택의 부분 화소 조각들의 모두의 뒤에 놓이면, 그것은 거절된다.
-삽입 기준 2: 제안된 화소 조각이 전체 화소 조각에 가장 근접한 정면에 놓이며 다른 그라운드들 상에서 거절되지 않았으면, 그것은 연속되는 스택 엔트리들에 대한 역 깊이에서 단조로운 감소를 어떤 위치가 유지하든지 스택 내로 삽입된다.
-거절 기준 4: 제안 화소 조각이 스택 내로 삽입되면, 이후 그 뒤의 이러한 부분 또는 널 화소 조각들은 스택을 따라서 셔플되며 대부분의 거리 부분 또는 널 화소 조각은 거절된다.
부분 화소 조각이 거절될 때, 최종 이미지에 대한 그의 가시 기여가 손실되는 것은 전술된 거절 기준의 적용으로부터 이어진다. 가시적 효과는 배경 칼라가 전경 물체들을 통해 누설되며, 가끔 물체의 표면 상에 마크들로서 나타나며; 배경이 어둡고 물체가 밝으면, 마크들은 갭들이나 홀들로서 나타난다는 것이다. 오버플로우(overflow) 보상은 거절된 부분 조각이 가장 먼 부분 조각을 갖는 공통 에지를 공유하며 논리적으로 거절된 조각의 내부 플래그들을 가장 먼 부분적인 조각 중 그것들로 합친다.
삼각형들이 교차하는 것으로 특정되는 포인트들에서 문제가 발생될 수 있다. 예컨대, 분리된 몸체 부분들로부터 구성된 움직이는(animated) 도면을 고려하면, 각각은 다수의 삼각형으로부터 구성된다. 이러한 부분들은 이후 각각에 대해서 다른 변환을 적용함으로써 명료해진다. 여러 부분들 사이에 갭들을 삽입하는 것을 회피하기 위해서, 모델은 성분 부분들이 접합들에서 중첩되도록 구성된다. 결론은 모델이 두 개의 물체들의 접합을 따른 공통 에지들을 갖도록, 함께 정확히 맞는 성분들로부터 모델링되도록 나타난다. 중첩 삼각형들로부터 전체 화소 조각들이 그들의 화소 중심들에서의 역 깊이에 따라서 분류되면, 단지 하나의 조각만이 각 화소에서 기여할 수 있으며, 결과는 교차점을 따라 제그된 에지의 출현이 될 것이다. 현재의 아키텍처는 여러 샘플링 포인트들에서 I-O 테스트를 평가함으로써 삼각형 에지들에서 안티-에일리어싱을 수행하지만, 그것은 유사한 방식으로 안티-에일리어싱 교차들에 민감하지는 않다.
그러나, I-O 테스트들이 s/z, t/z 및 1/z 을 사용하여 수행되면, 다수의 역 깊이 값들은 사용가능하게 된다. 2개의 가장 근접한 전체 화소 조각들의 다수의 역 깊이들을 비교하며 내부 플래그들의 순서에 대응하는 순서로 비트 벡터로 결과들을 팩킹하는 것에 의해, 깊이 비교들의 비트 벡터와 내부 플래그들의 조합은 효과적으로 교차 조각들을 공통 에지를 공유하는 두 개의 보상형 부분 화소 조각들로 변환하며, 따라서 제그된 교차점들을 제거하고 그들을 부드러운 연결들로 대치한다.
스택에 각 조각에 대한 다수의 역 깊이 값들을 저장하는 것은 비싸며 따라서 뷰어에 가장가까운 두 개의 전체 화소 조각에만 적용된다. 가강가까운 전체 화소 조각에 대한 역 깊이를 저장하는 것이 필요할 뿐이며, 그 역 깊이 값은 I-O 테스트로부터 사용이 가능하며, 따라서 역 깊이 값의 두 셋트가 비교가 가능하다.
모든 제안된 화소 조각들이 처리되고 난 후, 각 스택은 가장 가까운 화소 조각으로부터 시작해서, 앞에서 뒤의 순서로 판독된다. 각 화소 조각의 가시적인 적용범위, 즉, 각 조각의 가시적인(폐색되지 않은) 부분의 적용범위를 결정하기 위해서, 누적기가 미리 판독된 조각들의 내부 플래그들로부터 형성된 비트 벡터들의 비트같은 OR과, 현재의 조각의 누적된 적용범위를 유지한다. 현재의 조각에 대한 가시적인 적용범위는 누적된 적용범위의 성분을 갖는 그의 내부 플래그들로부터 형성된 비트 벡터를 비트와같이 AND함으로써 얻어진다. 가시적인 적용범위가 얻어진 후에, 누적기는 다음 조각을 위해서 쉽게 업데이트된다. 결국, 누적기는 모든 것의 비트 벡터를 포함할 것이다. 누적된 적용범위가 모든 조각들이 판독되기 전의 모든 것들이 되면, 스택 내의 임의의 남은 조각들은 그것들이 완전히 폐색되므로 보이지 않게 폐기된다.
상술한 바로부터, 완전한 조각들의 역할이 이제 명백해 진다; 즉, 그들은 누적된 적용범위가 스택의 모든 조각들이 판독된 후의 모든 것이 되도록 보증한다. 스택내로 삽입된 조각들 중 어느 것도 완전한 조각들이 아닐 때, 스택이 초기화될 때 그곳에서 배치된 완전한 조각들은 누적된 적용범위가 모든 것이 아닐 때 최종 화소 칼라에 기여할 것이다. 이러한 경우들에 완전한 조각들은 감지될 수 있는 디폴트 배경 칼라를 제공하기 위해서 선택된 속성들을 갖는 특별한 삼각형을 참조하도록 배열된다.
화소를 텍스쳐링하는 것은 처리기와 텍스쳐 메모리 사이에 여러 메모리 액세스들과 높은 메모리 대역폭을 요구한다. 단지 그것이 전체적으로 폐색되었는지를 찾기 위해서 화소 조각을 텍스쳐하는 것은 낭비이다. 현재의 아키텍처는 전체적으로 폐색된 조각들과 단지 보이는 텍스쳐들의 화소 조각들 만을 무시하며, 이는 텍스쳐 메모리로부터 통신을 감소시킨다(도 3의 20).
여기서, 언급된 세이딩은 종래의 (고정된) 세이딩 알고리즘들 뿐만 아니라 프로그램 가능한 세이딩 및 절차 텍스쳐링을 포함하며, 이 모든 것은 화소당 수행하는 계산들을 포함한다. 현재의 아키텍처가 전체적으로 폐색된 조각들을 무시하고 단지 보이는 화소 조각들만을 세이드하면, 화소당 더 많은 계산들이 수행될 수 있으며, 이러한 계산들에 의해 요청된 속성들을 공급하기 위해 사용된 버퍼로의 불필요한 액세스들이 회피된다.
상술한 절차들이나 현재의 아키텍처에 의해서 구현된 동작들을 요약하면, 도들 5 내지 8은 초기 수신 및 준비로부터 화소 당 값들의 출력까지 데이터의 조정을 예시하는 보충 흐름도들이다.
일반적인 데이터 준비 루틴이 도 5에 도시되며 적당한 소스로부터 데이터를 획득하는 501에서 시작된다(예를 들면, 인터넷을 통해서 얻어지는 VRML 데이터 파일). 데이터는 보조 데이터 규정, 예를 들면 삼각형 정점들, 표면 기준들 및 그와같은 것에서 텍스쳐 및/또는 칼라 값들과 함께 삼각 정점 좌표들을 리스팅하는 조밀한 데이터 파일을 포함하는 인덱스된 페이스 세트의 형태가 될 것이다. 502에서, 조밀한 데이터 파일은 추출되어 503에 저장되는 보조 속성 데이터로 확장된다. 502의 확장된 데이터로부터, 각 삼각형의 뷰-공간 정점 데이터가 판독되고(504에서), 505에서 삼각형들이 2차원 스크린 공간으로 투영된다.
타일에 기초한 렌더링이 사용될 때, 각각의 삼각형을 일련의 타일들로 변환하는 스캔 변환이 506에서 수행된다. 스크린의 에지에서 단지 화소 커넬의 풋프린트 가장자리에서 나타나는 삼각형들과 같은 것을 위한 여분의 데이터가 507의 위딩(weeding) 동작에 의해 제거된다. 다음, 508에서, 식별자가 각 삼각형으로 할당되며, 삼각형들의 하나 또는 그 이상의 조각난 부분들을 운반하는 타일들은 타일 버퍼로 삽입된다(509에서).
삼각형에 대한 식별자의 할당에 이어서, 매직 포인트가 510에서 선택되며, 512에서 대응하는 증가 값들(델타들)의 계산 전에 포인트 s/z, t/z 및 1/z이 계산된다(511에서). 이러한 계산된 값들은 메인 속성들을 포함하며 유도 절차의 최종 단(513)은 메인 속성 스토어로 그것들을 적재하도록 한다(도 3의 14).
도들 6 및 7에는 메인 속성들의 조절이 도시되어 있다. 도 6의 헤드에 도시된 바와 같이, 단계 513에 의해서 적재된 메인 속성 버퍼(14)에 부가적으로, 캐시 메모리(10A)가 삼각형 조각들을 포함하는 타일들에 대한 버퍼(24)와 함께 제공된다(509에서 적재됨). 캐시(10A)는 외부 버퍼들(14)로부터 적재된 빠른 로컬(온-칩) 메모리를 제공하며, 제 1 동작(601)은 타일 버퍼(24)로부터 캐시(10A)로 조각들을 판독하는 것이다. 다음, 캐시로부터, s/z, t/z 및 1/z의 값들이 602의 각 샘플링 포인트에 대해서 계산된다. 603에서, s/z, t/z 및 1/z의 값들은 보간되어, 결과들이 캐시로 리턴된다.
보간 동안에, 604에서, 그것들이 삼각형 경계의 내부 혹은 외부에 놓이는지를 판단하기 위해서 각 샘플 포인트에 대해서 I-O 테스트들이 수행되며, 이에 이어서 그 포인트의 1/z 값이 화소로의 삼각형들의 기여가 계산되거나 거절되는지를 판단하기 위해서(606) 다른 삼각형들로부터 대응하여 위치된 샘플 포인트 값들과 비교된다(605). 1/z 비교가 성공하면, 화소 조각은 전체 또는 부분적으로 607에서 분류된다.
조각에 대한 1/z값과 스택의 다른 화소 조각들의 값과, 그리고 스택이 이미 완전한 것인지의 여부에 따라서, 화소 조각 기여가 스택에 부가된다. 스택이 이미 완전한 것이면, 608의 스택에서 공간을 만드는 작용이 오버플로우를 가져오므로(일반적으로 최후의 조각을 제거함), 덮히지 않은 샘플 포인트를 남겨놓게 되면, 일치를 유지하도록 새로운 마지막 조각의 타일에 의문의 각 샘플 포인트를 전달하도록 보상(609)을 요구한다. 오버플로우 문제가 해결되면, 최신 조각이 (분류된 깊이인 엔트리들을 갖는) 적당한 위치에서 스택(610)으로 삽입되며 1/z에 대해서 저장된 값들이 611에서 업데이트된다. 607에 이어서, 스택이 아직도 전체가 아니라고 밝혀지면, 간단한 공간 형성 동작(612)이 수행되어 새로운 조각보다 더 큰 깊이를 갖는 엔트리들을 하나 아래로 이동시키며, 이에 이어서 삽입(610) 및 업데이팅(611)이 전과 같이 진행된다.
I-O 테스트로부터 전술된 동작들이 전방으로 진행되는 동안, 603으로부터 보간된 데이터가 또 다른 동작들로 들어가며, 613에서 우선 인코딩에서 시작해서, 1/z에 상당하는 계산(즉, z을 복원하기 위해서)이 614에서 이어진다. z의 값과 함께, s 및 t의 값들은 (s/z)*z 및 (t/z)*z을 계산하는 것에 의해 615에서 복원되며, s 및 t에 대한 정수값들이 616에서 고정된다. 이러한 값들은 도 7의 앞부분에 도시된 바와 같이, 화소 조각 버퍼(26)내의 조각들로 저장된다.
조각 버퍼로부터, 화소 조각들의 각 스택은 701에서 끌어 당겨지며, 조각 데이터는 702에서 보조 조절부 내의 캐시 메모리(12A)로 판독된다. 703에서, 삼각형 조각들에 의한 타일의 가시적 적용범위의 한도가 계산되며, 조각 스택은 704에서 업데이트된다.
각각의 타일(조각)은 조각이 모든 샘플 포인트들을 커버하는지 여부에 따라서 705에서 전체 또는 부분으로 분류된다. 부분일 때, 샘플 포인트들에 대한 1/z 값이 706에서 비교되며 그 삼각형에 의한 가시적인 적용범위의 한도가 707에서 수정된다. 705로부터 모든 조각에 대한 비수정된 커버 또는 707로부터 수정된 커버를 이용하여, 708에서 필터에 인가될 때, 값 α가 얻어진다. 709에서, α는 보조 속성 조절 단에서 화소 세이딩 단으로 출력된다.
도 8의 보조 속성 조절 단은, 도 4 및 5의 메인 속성 단과 같이, 인덱스된 페이스 세트의 확장시에 503에서 추출된 메인 단 및 보조 속성들로부터 준비된 타일 데이터를 수신하도록 제공된 온-칩 캐시(12A)가 단일 칩상에 제공되도록 의도되어 있다. 도시된 바와 같이, 각각의 서로 다른 형태의 속성은, 801에서 각 삼각형 정점에 대해서 텍스쳐 공간 좌표들(u,v)에 의해 식별된 텍스쳐 값들로부터 시작되어, 병렬로 조절된다. 이것은 텍스쳐 버퍼(맵 저장)(20)과 결합된 비트-맵 택스쳐 처리 단(803)에 통과된 출력을 갖는 매개변수화된 좌표 시스템을 이용하여 (s,t)에서 보간된다(802). 처리기(803)으로부터 출력은 화소 세이더 단(804)으로 통과한다. 도시된 바와 같이, 805에서 식별된 정점당 기준들은 806에서 유사하게 보간되며, 그와 같이, 화소 칼라들은 807의 삼각 정점들에서 규정되며 808에서 보간된다. 다른 속성들의 일반적인 경우는 811의 삼각형당 속성들을 갖는 809에서 표시된다( 이것은 또한 (s,t) 810에서 평가된다). 처리기(803)에서와 같이, 806, 808, 810 및 811의 출력들은 이미 계산된 α값을 따라 세이더(804)에 입력들을 제공한다.
세이더 출력은 812에서 세이드된 화소 조각들을 위한 누적기로 가며, 813에서 화소의 감마 교정을 따라서, 세이드된 화소가 814에서 출력된다. 감마 교정은 워크스테이션들에서 일반적으로 수행되는 바와 같이, 디스플레이 드라이버에 남겨지지 않는데, 왜냐하면 안티 에일리어싱을 위한 감마 교정이 낮은 강도들로 가장 첨예하기 때문이다. 보통의 칼라 성분당 8비트를 투룽케이팅하며(truncating) 그후 감마 교정을 인가하는 것이 안티 에일리어싱된 에지들을 따라서 주목할 만한 불규칙성들을 주기 위해서 발견되었으며, 한편 투룽케이팅이 부드러운 에지들을 복원하기 전에 감마 교정을 수행한다.
상술한 (s,t) 기술은 깊이 버퍼 엔트리들의 크기를 줄이며, 따라서 다수의 텍스쳐들, 절차상의 텍스쳐들, 및 프로그램가능한 세이더들을 사용하는 것은 속성들의 결핍으로 인해서 절충되지 않으며, 또는 역으로, 안티 에일리어싱하는 함수가 텍스쳐링 및 세이딩에 의해서 절충되지 않는다. 보간되는 필요한 속성들의 수는 세 개의, s/z, t/z, 1/z으로 감소되었으며, 한편 삼각형의 내부-외부(I-O) 테스트들, 깊이 버퍼링 및 연속되는 디퍼된 텍스쳐링 및 세이딩 단에 대한 깨끗한 인터페이스를 제공한다.
본 실시예를 읽음으로서, 당업자에게 다른 변형들이 가능함을 알 수 있다. 그러한 변형들은 설계에서 이미 공지된 다른 특징들을 포함할 수 있으며 이미지 처리 장치 및 장치들과 그의 부품들을 사용하는 것을 포함하며 여기에 이미 기술된 특징들 대신 또는 그에 부가적으로 사용될 수 있다. 청구범위들이 그 특징들의 특정 조합들에 대해서 이러한 응용을 형식화하였지만, 본원의 개시 범위는 외적으로나 내적으로나 혹은 임의의 일반화된 것에 대한 특징들의 임의의 신규의 특징 또는 신규의 조합을 또한 포함하며, 이들이 어떤 청구 범위에 청구된 것과 동일한 발명에 관한 것인지에 관계없이 그리고 본 발명에서와 같이 동일한 기술적인 문제들의 일부 또는 전부를 경감시키는 것인지에 관계없이 이 모두를 포함함을 알 수 있다. 본 출원인들은 본 출원 또는 그로부터 도출된 임의의 다른 출원의 계속동안에 그러한 특징들 및/또는 특징들의 조합들에 형식화됨을 알 수 있다.

Claims (8)

  1. 이미지 평면에 투영되는 다수의 삼각형의 이미지 프리미티브들로부터 2차원 화소 이미지를 렌더링하기 위한 이미지 처리 방법에 있어서, 상기 삼각형의 정점들에 대하여 유지된 값들로부터 보간에 의해 도출된 화소당 속성값들은 상기 투영된 삼각형의 프리미티브들 내의 각 화소들로 매핑되고, 각 삼각형에 대해서,
    투영을 행하기 전에, 상기 삼각형은 상기 삼각형의 각 에지들을 수반하는 좌표축들(s,t)과, 상기 에지들 사이의 정점과 일치하는 원점(origin)을 갖는 각각의 2차원 좌표 시스템으로 매개 변수화되고;
    투영 동작 중에, 일반화된 보간 함수가 상기 매개변수화한 좌표 시스템에 관하여 적용되어, 상기 2차원 좌표 시스템에 관하여 상기 삼각형 내의 위치들에서의 매개변수 값들을 결정하며,
    투영에 이어서, 상기 삼각형 내의 위치들에서의 결정된 상기 매개변수 값들은, 각 정점에서 하나 또는 그 이상의 속성들에 대해 저장된 값들로부터의 기여들(contributions)을 결정하고 각 화소에 속성 값들을 부여하며,
    모든 삼각형들로부터의 대응하는 화소당 속성값들은 각 화소에 대한 출력 칼라를 공동으로 결정하는 것을 특징으로 하는, 이미지 처리 방법.
  2. 제 1 항에 있어서, 화소는, 원근 보정 보간자들 s/z, t/z, 및 1/z을 사용하여 상기 화소의 중심이 삼각형의 내측 또는 외측에 놓이는지를 판단하기 위해 테스트되고, 여기서 z는 상기 화소에 대한 깊이 값인, 이미지 처리 방법.
  3. 제 2 항에 있어서, 삼각형의 내측 또는 외측의 위치를 판단하기 위한 테스트가 또한 상기 화소 중심의 미리 정해진 거리 내의 다수의 샘플 포인트들의 각각에서 수행되는, 이미지 처리 방법.
  4. 제 3 항에 있어서, 2개의 삼각형들의 교차에 의해 규정된 라인이, 상기 다수의 샘플 포인트들에서의 역 깊이 1/z을 사용하여 각 화소에서 안티 에일리어싱되는, 이미지 처리 방법.
  5. 이미지 평면에 투영되는 다수의 삼각형 이미지 프리미티브들을 규정하는 데이터로부터 2차원 화소 이미지를 렌더링하기 위해 구성된 이미지 처리 장치에 있어서, 상기 장치는 삼각형 정점들에 대해 유지된 값들로부터 화소당 속성들을 도출하도록 배열된 보간 수단과, 상기 화소당 속성값들을 상기 투영된 삼각형의 프리미티브들 내의 각 화소들로 매핑하도록 배열된 데이터 처리 수단을 포함하고, 상기 장치는,
    투영 전에 상기 삼각형의 프리미티브들을 규정하는 상기 데이터를 수신하도록 결합되고, 상기 삼각형의 각 에지들을 수반하는 좌표축들(s,t)과, 상기 에지들 사이의 정점에 일치하는 원점을 갖는 각각의 2차원 좌표 시스템으로 각 삼각형을 매개변수화하도록 배열된 계산 수단과;
    상기 2차원 좌표 시스템에 관하여 삼각형 내의 위치들에서의 매개변수 값들을 도출하기 위한 것과 같은, 각 삼각형에 상기 매개변수화한 좌표 시스템에 관하여 일반화된 보간 함수를 적용도록 동작할 수 있는 투영 수단과;
    각 픽셀들에서의 속성 값들을 공급하고, 모든 삼각형들로부터 화소당 속성 값들을 조합하거나 화소당 칼라 값을 출력하기 위한 것과 같은, 상기 삼각형 내의 위치들에서의 상기 결정된 매개변수 값들로부터, 각 정점에서의 하나 또는 그 이상의 속성들에 대한 상기 저장된 값들로부터의 기여들을 도출하기 위하여 구성된 화소 세이딩 수단을 더 포함하는 것을 특징으로 하는, 이미지 처리 장치.
  6. 제 5 항에 있어서, 각각이 각 화소와 연관되는 다수의 데이터 스택들을 유지하고, 상기 화소에 영향을 주는 하나 또는 그 이상의 삼각형들의 매개변수들을 식별하는 엔트리들을 유지하는 저장 수단을 더 구비하는, 이미지 처리 장치.
  7. 제 6 항에 있어서, 상기 스택 엔트리들의 미리 결정된 수까지 그들의 각 깊이 값들에 의해 결정된 순서로 저장되는, 이미지 처리 장치.
  8. 제 7 항에 있어서, 폐기 또는 거절된 후보 스택 엔트리들로부터의 데이터를 남아 있는 스택 엔트리들로 선택적으로 전송하기 위한 수단을 더 포함하는, 이미지 처리 장치.
KR10-1999-7002827A 1997-08-01 1998-07-16 3차원 그래픽에서 속성을 보간하기 위한 방법 및 장치 KR100504421B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
GBGB9716251.5A GB9716251D0 (en) 1997-08-01 1997-08-01 Attribute interpolation in 3d graphics
GB9716251.5 1997-08-01

Publications (2)

Publication Number Publication Date
KR20000068684A KR20000068684A (ko) 2000-11-25
KR100504421B1 true KR100504421B1 (ko) 2005-07-29

Family

ID=10816803

Family Applications (1)

Application Number Title Priority Date Filing Date
KR10-1999-7002827A KR100504421B1 (ko) 1997-08-01 1998-07-16 3차원 그래픽에서 속성을 보간하기 위한 방법 및 장치

Country Status (7)

Country Link
US (1) US6204856B1 (ko)
EP (1) EP0934574B1 (ko)
JP (1) JP4237271B2 (ko)
KR (1) KR100504421B1 (ko)
DE (1) DE69811849T2 (ko)
GB (1) GB9716251D0 (ko)
WO (1) WO1999006957A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10304211B2 (en) 2016-11-22 2019-05-28 Samsung Electronics Co., Ltd. Method and apparatus for processing image

Families Citing this family (68)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7768512B1 (en) * 1998-08-10 2010-08-03 Via Technologies, Inc. System and method for rasterizing primitives using direct interpolation
US6339428B1 (en) * 1999-07-16 2002-01-15 Ati International Srl Method and apparatus for compressed texture caching in a video graphics system
US6433788B1 (en) * 1999-07-30 2002-08-13 Ati International Srl Dual fragment-cache pixel processing circuit and method therefore
GB9921777D0 (en) 1999-09-16 1999-11-17 Koninkl Philips Electronics Nv Method and apparatus for handling translucency in 3d graphics
IL136430A0 (en) * 2000-05-29 2001-06-14 Zviaguina Natalia Ray tracing method and system for determining visible parts of surfaces of three-dimensional objects and their parameters of shading accounting for light and shadow volumes
US7123277B2 (en) 2001-05-09 2006-10-17 Clairvoyante, Inc. Conversion of a sub-pixel format data to another sub-pixel data format
US20030002729A1 (en) * 2001-06-14 2003-01-02 Wittenbrink Craig M. System for processing overlapping data
WO2003017136A1 (en) * 2001-08-16 2003-02-27 Etagon Israel Ltd. Using associative memory to perform database operations
US7324116B2 (en) 2002-06-20 2008-01-29 Microsoft Corporation Systems and methods for providing controllable texture sampling
US7636095B2 (en) * 2002-09-06 2009-12-22 Ati Technologies, Inc. Pixel delta interpolation method and apparatus
US7301537B2 (en) * 2002-12-20 2007-11-27 Telefonaktiebolaget Lm Ericsson (Publ) Graphics processing apparatus, methods and computer program products using minimum-depth occlusion culling and zig-zag traversal
US7075530B2 (en) * 2003-02-27 2006-07-11 International Business Machines Corporation Fast lighting processors
US7139003B1 (en) * 2003-12-15 2006-11-21 Nvidia Corporation Methods of processing graphics data including reading and writing buffers
US7836276B2 (en) * 2005-12-02 2010-11-16 Nvidia Corporation System and method for processing thread groups in a SIMD architecture
US8860737B2 (en) * 2003-10-29 2014-10-14 Nvidia Corporation Programmable graphics processor for multithreaded execution of programs
US8174531B1 (en) 2003-10-29 2012-05-08 Nvidia Corporation Programmable graphics processor for multithreaded execution of programs
US7053893B1 (en) * 2003-12-15 2006-05-30 Nvidia Corporation Position conflict detection and avoidance in a programmable graphics processor using tile coverage data
US7053904B1 (en) * 2003-12-15 2006-05-30 Nvidia Corporation Position conflict detection and avoidance in a programmable graphics processor
ATE376699T1 (de) * 2004-01-06 2007-11-15 Nxp Bv Verfahren zur wiedergabe graphischer objekte
US8059133B2 (en) 2004-05-03 2011-11-15 Trident Microsystems (Far East) Ltd. Graphics pipeline for rendering graphics
GB0524804D0 (en) * 2005-12-05 2006-01-11 Falanx Microsystems As Method of and apparatus for processing graphics
US7434032B1 (en) 2005-12-13 2008-10-07 Nvidia Corporation Tracking register usage during multithreaded processing using a scoreboard having separate memory regions and storing sequential register size indicators
US9965886B2 (en) * 2006-12-04 2018-05-08 Arm Norway As Method of and apparatus for processing graphics
US7692654B1 (en) * 2006-12-08 2010-04-06 Nvidia Corporation Nondeterministic pixel location and identification in a raster unit of a graphics pipeline
FR2917211A1 (fr) * 2007-06-08 2008-12-12 St Microelectronics Sa Procede et dispositif de generation d'images graphiques
CN102016928B (zh) * 2008-01-23 2014-01-08 英特尔公司 用于提高的图形性能的方法、设备
GB0900700D0 (en) * 2009-01-15 2009-03-04 Advanced Risc Mach Ltd Methods of and apparatus for processing graphics
JP2011128713A (ja) * 2009-12-15 2011-06-30 Toshiba Corp 画像処理装置および画像処理プログラム
KR101359661B1 (ko) * 2012-03-05 2014-02-10 한국과학기술원 삼각형 메쉬로 표현된 3차원 물체를 DoSurface 표현 방법으로 변환하는 시스템 및 그 방법
US9317948B2 (en) 2012-11-16 2016-04-19 Arm Limited Method of and apparatus for processing graphics
GB2506706B (en) 2013-04-02 2014-09-03 Imagination Tech Ltd Tile-based graphics
US10204391B2 (en) 2013-06-04 2019-02-12 Arm Limited Method of and apparatus for processing graphics
US9569811B2 (en) * 2014-06-26 2017-02-14 Qualcomm Incorporated Rendering graphics to overlapping bins
GB2553744B (en) 2016-04-29 2018-09-05 Advanced Risc Mach Ltd Graphics processing systems
US11079725B2 (en) 2019-04-10 2021-08-03 Deere & Company Machine control using real-time model
US11589509B2 (en) 2018-10-26 2023-02-28 Deere & Company Predictive machine characteristic map generation and control system
US11653588B2 (en) 2018-10-26 2023-05-23 Deere & Company Yield map generation and control system
US11641800B2 (en) 2020-02-06 2023-05-09 Deere & Company Agricultural harvesting machine with pre-emergence weed detection and mitigation system
US11467605B2 (en) 2019-04-10 2022-10-11 Deere & Company Zonal machine control
US11178818B2 (en) 2018-10-26 2021-11-23 Deere & Company Harvesting machine control system with fill level processing based on yield data
US11957072B2 (en) 2020-02-06 2024-04-16 Deere & Company Pre-emergence weed detection and mitigation system
US11672203B2 (en) 2018-10-26 2023-06-13 Deere & Company Predictive map generation and control
US11240961B2 (en) 2018-10-26 2022-02-08 Deere & Company Controlling a harvesting machine based on a geo-spatial representation indicating where the harvesting machine is likely to reach capacity
US11778945B2 (en) 2019-04-10 2023-10-10 Deere & Company Machine control using real-time model
US11234366B2 (en) 2019-04-10 2022-02-01 Deere & Company Image selection for machine control
US11477940B2 (en) 2020-03-26 2022-10-25 Deere & Company Mobile work machine control based on zone parameter modification
US11871697B2 (en) 2020-10-09 2024-01-16 Deere & Company Crop moisture map generation and control system
US11711995B2 (en) 2020-10-09 2023-08-01 Deere & Company Machine control using a predictive map
US11864483B2 (en) 2020-10-09 2024-01-09 Deere & Company Predictive map generation and control system
US11895948B2 (en) 2020-10-09 2024-02-13 Deere & Company Predictive map generation and control based on soil properties
US11474523B2 (en) 2020-10-09 2022-10-18 Deere & Company Machine control using a predictive speed map
US11650587B2 (en) 2020-10-09 2023-05-16 Deere & Company Predictive power map generation and control system
US11874669B2 (en) 2020-10-09 2024-01-16 Deere & Company Map generation and control system
US11849672B2 (en) 2020-10-09 2023-12-26 Deere & Company Machine control using a predictive map
US11849671B2 (en) 2020-10-09 2023-12-26 Deere & Company Crop state map generation and control system
US11946747B2 (en) 2020-10-09 2024-04-02 Deere & Company Crop constituent map generation and control system
US11727680B2 (en) 2020-10-09 2023-08-15 Deere & Company Predictive map generation based on seeding characteristics and control
US11675354B2 (en) 2020-10-09 2023-06-13 Deere & Company Machine control using a predictive map
US11825768B2 (en) 2020-10-09 2023-11-28 Deere & Company Machine control using a predictive map
US11845449B2 (en) 2020-10-09 2023-12-19 Deere & Company Map generation and control system
US11889788B2 (en) 2020-10-09 2024-02-06 Deere & Company Predictive biomass map generation and control
US11635765B2 (en) 2020-10-09 2023-04-25 Deere & Company Crop state map generation and control system
US11592822B2 (en) 2020-10-09 2023-02-28 Deere & Company Machine control using a predictive map
US11927459B2 (en) 2020-10-09 2024-03-12 Deere & Company Machine control using a predictive map
US11844311B2 (en) 2020-10-09 2023-12-19 Deere & Company Machine control using a predictive map
US11889787B2 (en) 2020-10-09 2024-02-06 Deere & Company Predictive speed map generation and control system
KR102253241B1 (ko) 2020-10-13 2021-05-20 (주)티에스엠 소결합금 전기 도금방법 및 도금시스템
CN115147579B (zh) * 2022-09-01 2022-12-13 芯动微电子科技(珠海)有限公司 一种扩展图块边界的分块渲染模式图形处理方法及系统

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5361386A (en) 1987-12-04 1994-11-01 Evans & Sutherland Computer Corp. System for polygon interpolation using instantaneous values in a variable
EP0319165B1 (en) 1987-12-04 1995-10-18 EVANS & SUTHERLAND COMPUTER CORPORATION System for using barycentric coordinates as for polygon interpolation
CA1309198C (en) 1987-12-10 1992-10-20 Carlo J. Evangelisti Parallel rendering of smoothly shaded color triangles with anti-aliased edges for a three dimensional color display
US5097427A (en) * 1988-07-06 1992-03-17 Hewlett-Packard Company Texture mapping for computer graphics display controller system
US5224208A (en) * 1990-03-16 1993-06-29 Hewlett-Packard Company Gradient calculation for texture mapping
US5307450A (en) * 1991-02-19 1994-04-26 Silicon Graphics, Inc. Z-subdivision for improved texture mapping
US5377313A (en) 1992-01-29 1994-12-27 International Business Machines Corporation Computer graphics display method and system with shadow generation
US5684939A (en) * 1993-07-09 1997-11-04 Silicon Graphics, Inc. Antialiased imaging with improved pixel supersampling
GB9324638D0 (en) * 1993-12-01 1994-01-19 Philips Electronics Uk Ltd Image processing
US5798762A (en) 1995-05-10 1998-08-25 Cagent Technologies, Inc. Controlling a real-time rendering engine using a list-based control mechanism
US5852443A (en) * 1995-08-04 1998-12-22 Microsoft Corporation Method and system for memory decomposition in a graphics rendering system

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10304211B2 (en) 2016-11-22 2019-05-28 Samsung Electronics Co., Ltd. Method and apparatus for processing image

Also Published As

Publication number Publication date
EP0934574B1 (en) 2003-03-05
DE69811849D1 (de) 2003-04-10
WO1999006957A1 (en) 1999-02-11
EP0934574A1 (en) 1999-08-11
GB9716251D0 (en) 1997-10-08
JP4237271B2 (ja) 2009-03-11
KR20000068684A (ko) 2000-11-25
US6204856B1 (en) 2001-03-20
DE69811849T2 (de) 2003-11-06
JP2001501349A (ja) 2001-01-30

Similar Documents

Publication Publication Date Title
KR100504421B1 (ko) 3차원 그래픽에서 속성을 보간하기 위한 방법 및 장치
JP5185418B2 (ja) 透光性3dグラフィックをレンダリングする方法及び装置
US5377313A (en) Computer graphics display method and system with shadow generation
US6016150A (en) Sprite compositor and method for performing lighting and shading operations using a compositor to combine factored image layers
EP0464907B1 (en) Generating an image
US7280121B2 (en) Image processing apparatus and method of same
TWI448983B (zh) 三維物體之三維模型之顯現方法與系統
US5596685A (en) Ray tracing method and apparatus for projecting rays through an object represented by a set of infinite surfaces
GB2223384A (en) Shadow algorithm
US20090195555A1 (en) Methods of and apparatus for processing computer graphics
US6184893B1 (en) Method and system for filtering texture map data for improved image quality in a graphics computer system
US20050068326A1 (en) Image processing apparatus and method of same
US7027047B2 (en) 3D graphics rendering engine for processing an invisible fragment and a method therefor
US6906715B1 (en) Shading and texturing 3-dimensional computer generated images
US5745667A (en) 3d graphics apparatus using texture images with displacement information
US6501481B1 (en) Attribute interpolation in 3D graphics
US6542154B1 (en) Architectural extensions to 3D texturing units for accelerated volume rendering
US5926183A (en) Efficient rendering utilizing user defined rooms and windows
US7256796B1 (en) Per-fragment control for writing an output buffer
US5649078A (en) Efficient two-pass rasterization scheme utilizing visibility information
US20040012586A1 (en) Image processing apparatus and method of same
GB2350993A (en) Generation of mixed semitransparent and opaque objects on a computer display screen.
JP2004054634A (ja) 画像処理装置およびその方法
Brown The Comparison of three 3D graphics raster processors and the design of another
JP2004054612A (ja) 画像処理装置およびその方法

Legal Events

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

Payment date: 20130628

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20140627

Year of fee payment: 10

FPAY Annual fee payment

Payment date: 20160629

Year of fee payment: 12

EXPY Expiration of term