KR100269100B1 - 삼각형탐색방법및이를채용한래스터라이저 - Google Patents
삼각형탐색방법및이를채용한래스터라이저 Download PDFInfo
- Publication number
- KR100269100B1 KR100269100B1 KR1019930022956A KR930022956A KR100269100B1 KR 100269100 B1 KR100269100 B1 KR 100269100B1 KR 1019930022956 A KR1019930022956 A KR 1019930022956A KR 930022956 A KR930022956 A KR 930022956A KR 100269100 B1 KR100269100 B1 KR 100269100B1
- Authority
- KR
- South Korea
- Prior art keywords
- triangle
- search
- pixel
- reference point
- boundary
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
Landscapes
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Image Generation (AREA)
Abstract
본 발명은 컴퓨터 그래픽스에 관한 것으로서, 특히 패스트 퐁 세이딩(Fast Phong Shading)을 효율적으로 구현하기 위한 래스터라이저 및 보다 효과적인 삼각형 탐색방법을 개시한다. 본 발명에 따른 삼각형 탐색방법은 탐색 기준점이 삼각형의 변을 벗어나면 벗어난 변의 기울기를 이용하여 탐색 기준점을 삼각형의 내부로 이동시켜 탐색을 수행하도록 구현함으로써 삼각형 외부에 대한 불필요한 연산을 줄이는 효과를 제공한다. 본 발명에 따른 래스터라이저는 출력처리부와 함수처리부 및 경계판별부를 파이프라인 구조로 운영할 수 있도록 구현하여 데이터 처리효율을 극대화시킬 수 있다.
Description
제1도는 3차원 컴퓨터 그래픽 시스템의 일반적인 구조를 도시한 블럭도.
제2도는 종래의 피네다(Pineda)가 제안한 삼각형 탐색 방법을 나타낸 도면.
제3도는 본 발명에 따른 삼각형 탐색 방법을 나타낸 도면.
제4도는 종래의 실리콘 그래픽스사에 의해 제안된 그래픽 가속기의 구성 예.
제5도는 종래의 피네다(Pineda) 알고리즘에 따라 구현된 그래픽 가속기용 이미지 칩의 구성도.
제6도는 본 발명에 따른 래스터라이저의 구성도.
제7도는 제6도에 도시된 탐색 기준점 이동방향 판별기의 구성도.
제8도는 제6도에 도시된 함수처리부의 다른 실시예의 구성도.
*도면의 주요부분에 대한 부호의 설명
46 : 주소 생성부 48 : 레지스터부
52 : 경계 판별부 62 : 함수 처리부
72 : 출력 처리부 80 : 제어부
본 발명은 컴퓨터 그래픽스에 관한 것으로서, 특히 컴퓨터 그래픽스에서 물체의 표면을 채색하는 방법의 하나인 퐁 세이딩(Phong shading)을 가속화하기 위한 삼각형 탐색 방법 및 이를 채용한 래스터라이저에 관한 것이다.
컴퓨터 그래픽스에서 물체의 표면을 채색하는 방법은 곡면을 직접적으로 처리하는 방법(예: ray tracing, radiosity 등)과 다각형으로 분할하여 칼라의 근사값을 구하는 방법(예: Gouraud shading, Phong shading 등)으로 크게 나눌 수 있다. 그러나 계산량을 줄이기 위하여 물체의 곡면을 작은 평면 다각형의 그물(Mesh of polygon)로 나타내고 다각형의 각꼭지점(Vertex)에 대한 변환, 색상계산 등을 수행한 다음 래스터라이저(Rasterizer)에서 다각형 내부의 각 화소에 해당하는 칼라의 근사치를 구하는 방법이 많이 쓰이고 있는데, 이러한 방법으로는 구로 세이딩(Gouraud shading)과 퐁 세이딩(Phong shading)이 제안되어 있다.
구로 세이딩은 실시간 시스템에서 흔히 사용되는 기법으로, 광보간 세이딩(intensity interpolation shading) 혹은 색보간 세이딩(color interpolation shading)이라고 불리운다. 구로 세이팅은 다각형 내부의 색상을 선형적으로 변화시킴으로써 이웃한 면과의 불연속을 제거한다. 이 방법은 면을 지나는 모든 스캔 라인(scan line)상의 광도 값을 면 경계에서의 광도로부터 선형 보간하여 구한다.
이러한 구로 세이딩이 양 끝점의 색상을 선형 보간하는 반면, 퐁 세이딩은 양 끝점의 면법선 칼라벡터를 선형 보간한 다음, 각 화소당 여러 조명모델(light model)을 적용하여 칼라값을 계산한다. 이러한 퐁 세이딩은 복잡한 연산을 동반하여 하드웨어 구현이(ASIC화가) 용이하지 않으며, 소프트웨어로 처리할 경우 많은 계산시간이 요구된다. 예컨데 물체의 칼라를 렌더링(rendering)하기 위한 여러 가지 조명모델중 확산반사(diffuse reflection) 모델의 경우, 식 (1)을 이용하여 임의의 픽셀에서의 칼라값 F를 얻기 위해서는 7회의 가산, 6회의 승산, 1회의 제산 및 1회의 제곱근 연산을 필요로 한다.
식(1)에서 F는 칼라값을 나타내고, Id는 점광원의 세기를 나타내고, Kd는 산란반사 계수를 나타내고, L은 표면에 대한 단위 법선 벡터를 나타내고, N은 단위 표면 벡터를 나타낸다.
퐁 세이딩 수행시 상술한 바와 같은 연산을 줄이기 위하여, 게리 비숍(Gary Bishop)에 의해 패스트 퐁 세이딩이라고 불리는 새로운 알고리즘이 제안되었다. 이 패스트 퐁 세이딩은 (L×N) / |L||N|을 테일러 급수로 근사 계산한 다음 2차 보간(quadratic interpolation)에 의하여 각 화소의 칼라값 F를 화소당 2회의 덧셈 연산으로 구하고, 검경 반사 조명 모델(specular reflection light model)도 같은 방법으로 계산하여 근사치를 구하는 방법이다(G. Bishop, D.Weimer, "Fast Phong Sahding," Computer Graphics(SIGGRAPH'86 prodeedings), Vo1.20, Aug, 1986, pp.103-106.). 이 패스트 퐁 세이딩 방법의 타당성은 소프트웨어로는 증명되었으나 하드웨어로 구현한 기술은 아직 개시되어 있지 않다.
그런데, 식 (1)의 칼라값 F를 테일러 급수로 표현하면 x, y의 함수로 나타나는데 패스트 퐁 세이딩을 수행하기 위해서는 이 식 (1)의 계수를 미리 계산하여야 한다. 예컨데 식 (1)의 F를 2차 항까지 테일러 전개하면 아래 식 (2)와 같은 x, y의 다항식으로 표현되는데, F를 구하기 위해서는 식 (2)의 계수를 알아야 하므로 이를 계산하기 위한 오버 헤드가 발생되는 문제점이 있다.
F = Idiffuse(x,y)
=T5x2+ T4xy + T3y2+ T2x + T1y + T0........(2)
이러한 오버헤드를 최소화하고 효율을 높이기 위하여 목적물을 나타내는 기본 요소(primitive of object)를 삼각형 단위로 처리하는 방법이 개시되었다. 즉, 래스터라이저에서 처리될 스팬 데이터(시작점의 R, G, B, Z값과 △R, △G, △B, △Z값)는 기하처리기(geometry processor)에서 만들어지는데, 기하처리기에서 스팬 데이터를 만드는데 걸리는 부하가 일반적으로 전체 기하처리기에 걸리는 부하의 절반정도를 차지하므로 기하처리기 엔진에서 스팬 데이터를 생성하는 동안에 래스터라이저 엔진이 70% 이상 운영되지 않아(idle) 효율이 저하된다. 삼각형에서는 각 스팬의 △R, △G, △B, △Z값이 같으므로 목적물을 표현하는 다각형을 다시 삼각형으로 나누어 삼각형 단위로 처리하면 기하처리기의 부하를 줄임과 동시에 래스터라이저 엔진으로 전달되는 데이터 량도 줄일 수 있는 이점이 있기 때문이다.
그러나 삼각형 단위의 처리방법에 있어서, 처리해야할 데이터 량의 많고 적음은 삼각형 내부의 각 화소를 어떤 방법으로 탐색하느냐에 따라 크게 좌우되며, 이는 곧 그래픽 시스템의 전체적인 효율에 영향을 미친다. 따라서 시스템의 성능 즉, 데이터의 처리 속도를 높이기 위해서는 효율적인 삼각형 탐색(traverse) 방법이 요구된다.
삼각형 탐색 방법과 관련하여 종래에 공지된 여러가지 삼각형 탐색 방법중 가장 효율적인 방법의 하나로 인정되고 있는 것으로 피네다(Pineda)가 제안한 삼각형 탐색 방법이 있다(Juan Pineda, "A Parallel Algorithm for Polygon Rasterization", Computer Graphics, Vo1.22, No.4, Aug. 1988. pp.17-20). 이 방법은 구로 세이딩(Gouraud shading)을 수행하기 위한 방법으로서, 제어로직이 복잡하여 하드웨어로 구현하기가 어렵다는 점과 불필요한 연산을 많이 수행하므로 효율적이지 못한 문제점 등이 지적되고 있다. 피네다(Pineda)가 제안한 삼각형 탐색방법의 문제점을 첨부한 제2도를 참조하여 보다 구체적으로 설명하기로 한다.
제2도는 피네다(Pineda)가 제안한 삼각형 탐색방법을 설명하기 위한 도면으로서, 출발점을 기준으로 기준선을 따라 -y방향으로 내려오면서 각 y단계에 대해 기준선을 중심으로 하여 바깥방향 즉, +x 및 -x 방향으로 삼각형의 경계선까지 탐색한다. 이렇게 하여 기준선이 삼각형의 한 변을 벗어나게 되면 그 변을 따라 계단모양으로 탐색한다.
그런데, 이 방법에 의할 경우 삼각형 외부의 점을 탐색하는 동안에 기준선에 대한 보간기 상태가 저장되어야 하고, 삼각형 외부에 대하여 불필요한 탐색과 계산을 수행하게 되어 처리속도가 지연된다. 기준선이 통과한 변의 길이가 길면 길수록 삼각형 외부에서의 불필요한 탐색과 계산량은 커진다. 또한 삼각형의 외부에서 내부로 탐색함에 따라 전환점(returning point)이 경계선을 따라 자주 변하여 제어로직이 복잡해지고 하드웨어 구현이 용이하지 않다.
한편, 컴퓨터 그래픽스에 있어서 현실감이 있는 영상을 만들기 위해서는 고해상도의 디스플레이(1280×1204 이상)가 필요한데, 이는 화소단위의 계산을 기본으로 하기 때문에 많은 계산량이 수반된다. 예컨데, 1백만 개 이상의 화소에 대하여 변환 (Transformation)과 색상계산 등을 직접 수행할 경우 엄청난 량의 계산을 하여야 한다. 이와 같은 이유로 소프트웨어만으로 고해상도의 완벽한 칼라를 가진 3차원 그림을 얻는 것은 한계가 있으며, 최근에는 VLSI기술을 이용하여 여러가지 그래픽스 기능을 가속수행하는 하드웨어를 구현함으로써 성능상의 한계를 극복하려는 연구가 활발히 진행되고 있다.
컴퓨터 그래픽스 가속기와 관련하여 종래 공지된 수단중의 하나는 첨부한 제4도에 도시된 바와 같은 구성을 갖는 실리콘 그래픽스사의 '리얼리티 엔진2(Reality Engine 2)'가 있다.
이 시스템은 현재까지 알려진 실시간 처리 시스템중 질적인 측면에서 최고 수준의 이미지를 제공하는 것으로 알려져 있다. 제4도에서, 렌더링 가속기(rendering accelerator)는 성능을 높이기 위해 화소생성부(20)와 이미지 엔진(image engine;26)으로 구성된다. 화소생성부(20)는 삼각형 데이타를 받아들여 스팬을 생서하기 위한 스팬생성기(span generator;22)와 스팬에서 화소의 칼라값을 구하기 위한 화소 생성기(pixel generator;24)로 구성된다. 이미지 엔진(26)은 프레임버퍼(28)에의 접근(access)을 담당한다. 그런데 이 시스템은 화소의 칼라값을 구하는 방식이 선형 보간을 이용하여 구하므로 패스트 퐁 세이딩을 구현하는 수단으로는 적당하지 않다.
또한, 컴퓨터 그래픽 가속기와 관련한 또 다른 종래의 기술로는 첨부한 제5도와 같은 구성을 갖는 시스템이 있다. 제5도에 도시된 시스템은 피네다(Pineda)가 제안한 알고리즘을 칩으로 구현한 '이미지 칩'으로서, 삼각형 경계를 판별하는 엣지 보간기인 기하처리부(geometry unit;36), 칼라를 보간하는 칼라처리부(color unit;38), 깊이를 보간하는 깊이 처리부(depth unit;40), 제어부(30), 레지스터부(32) 및 프레임버퍼 억세스부(42)로 구성되어 있다. 제5도에 도시된 시스템도 각 화소의 칼라값을 선형 보간을 이용하여 구하므로 2차 보간을 수행하여야 하는 패스트 퐁 세이딩에 적당한 장치가 될 수 없다.
이상에서 알 수 있는 바와 같이 종래에 알려진 컴퓨터 그래픽스 시스템은 패스트 퐁 세이딩을 구현하기에는 적절하지 못한 것들이다.
따라서 본 발명은 패스트 퐁 세이딩의 가속화에 필요한 삼각형 2차 보간용 삼각형 탐색방법을 제공하는데 그 목적이 있다.
본 발명의 다른 목적은 상술한 삼각형 탐색방법을 구현하기 위해 필요한 탐색 기준점의 수평이동방향을 효율적으로 결정하기 위한 삼각형 탐색방법을 제공하는데 있다.
본 발명의 또 다른 목적은 상술한 삼각형 탐색방법의 구현에 적합하며 처리속도를 극대화하기 위해 파이프라인 방식으로 구성한 래스터라이저(rasterizer)를 제공하는데 있다.
이를 위해 본 발명에 따른 삼각형 탐색방법은, 컴퓨터 그래픽스에서 목적물의 기본요소(primitive)를 삼각형 단위로 구분하고, 각 삼각형 내부에 포함되어 있는 각각의 화소에 대한 칼라값을 이용하여 삼각형을 탐색하는 방법에 있어서, 삼각형에 대한 탐색 기준점을 중심으로 2개의 바깥방향으로 탐색할 화소가 없으면, 탐색 기준점을 1차 탐색방향으로 소정간격만큼 이동하여 새로운 탐색 기준점을 정하는 제1과정; 새로운 탐색 기준점이 삼각형 외부로 벗어난 점이면 이전의 탐색 기준점으로부터 삼각형의 내부로 향하는 직선과 교차하는 삼각형의 1변에 가장 가까운 화소를 새로운 탐색 기준점으로 결정하는 제2과정; 새로운 탐색 기준점을 중심으로 2개의 바깥 방향으로 삼각형 내부에 존재하는 화소들을 탐색하고, 탐색된 화소들의 칼라 값을 계산하여 삼각형의 경계점의 칼라값을 저장하는 제3과정; 삼각형내의 모든 점들이 탐색될 때까지 제1과정 내지 제3과정을 순환적으로 수행하는 제4과정을 포함한다.
본 발명의 다른 목적을 달성하기 위하여 본 발명에 따른 래스터라이저는, 삼각형에 대한 탐색 화소의 어드레스를 발생하는 제어부, 탐색 화소가 삼각형 내부에 위치하는 지를 판별하는 경계 판별부; 삼각형 내부에 위치한다고 판정된 탐색 화소의 칼라값들을 산출하는 함수 처리부; 및 칼라값이 산출된 점들에 대하여 은선 제거기능을 수행하고, 화소의 데이터를 갱신하는 출력처리부를 구비한다.
이하에서는 첨부한 도면을 참조하여 본 발명에 대한 상세한 설명을 하기로 한다.
먼저, 제3도를 참조하여 본 발명에 따른 삼각형 탐색방법을 설명한다.
삼각형 탐색의 최초 출발점은 삼각형의 꼭지점의 Y좌표 값이 최대인 꼭지점으로 하고 탐색이 종료되는 종착점은 삼각형의 꼭지점의 Y좌표 값이 최소인 꼭지점으로 하여 위에서 아래로 하향 이동하면서 탐색해나가는 방법을 취한다. 물론 탐색이 종료되는 점까지의 탐색수렴을 위하여 이와는 정 반대로 출발점을 삼각형의 꼭지점의 Y좌표 값이 최소인 꼭지점으로 하고 탐색이 종료되는 종착점을 삼각형의 꼭지점의 Y좌표 값이 최대인 꼭지점으로 하여 아래에서 위로 상향 이동하면서 탐색해나가는 방법을 취해야 할 경우도 있다(최소y값을 갖는 꼭지점의 x값이 다른 꼭지점의 x값 가운데 값을 가질 경우).
본 발명에 따른 삼각형 탐색방법은 처리할 화소에 대한 수평이동과 탐색 기준점의 수직이동 등의 두 가지 기본 동작을 수행한다. 수평방향으로 탐색해야할 화소가 없는 경우에 탐색 기준점을 -Y방향으로 소정의 간격만큼 이동시키는 수직이동을 행한다. 이때 소정의 간격은 수직방향의 화소간격을 취한다. 수평이동은 각 y단계에 대해 탐색 기준점을 중심으로 하여 바깥방향 즉, +X 및 -X 방향으로 삼각형의 경계선까지 탐색한다. 이때 수평 탐색시 각 화소에 대한 칼라 값을 계산하고 삼각형 경계점의 칼라값을 저장해 둔다. 이렇게 하여 탐색 기준점이 삼각형의 1변(E1)을 벗어나게 되면 바로 전 단계의 탐색 기준점(Ci)을 중심으로 하여 수평이 동시 저장된 점으로 탐색 기준점을 수평 이동하여 이 점을 새로운 탐색 기준점(Ci+1)으로 하여 다시 수직이동을 수행한다.
즉, 다음 단계의 탐색 기준점이 삼각형의 외부에 위치하는 것인 경우에는 바로 전 단계의 탐색 기준점을 중심으로 하여 X축의 양방향중 삼각형 내부로 향하는 방향의 직선과 교차하는 삼각형의 어느 1변(E3)에 가까운 화소를 새로운 탐색 기준점(Ci+1)으로 정하고 이 점을 기준으로 하여 다시 탐색 기준점이 삼각형의 1변(E2)을 벗어날 때까지 수직이동을 반복한다. 이러한 탐색 과정은 종착점에 이르기까지 계속 수행된다.
이때, 탐색 기준점의 이동방향의 결정은 다음과 같이 행한다. 탐색 기준점의 이동방향은 벗어난 변의 기울기를 이용한다. 탐색 기준점의 수직이동방향이 하향인 경우 즉, 출발점의 Y값이 최대이고 종착점의 Y값이 최소인 경우 탐색 기준점의 수평이동방향은 벗어난 변의 기울기가 양수이면 -X방향이고 음수이면 +X방향이 되도록 한다. 만약 탐색 기준점의 수직 이동방향이 상향이면 탐색 기준점의 수평이동방향은 상기의 경우와는 반대로 벗어난 변의 기울기가 양수이면 +X방향이고 음수이면 -X방향이 되도록 하면 된다. 제3도에서는 수직이동방향이 하향인 경우에 있어서, 벗어난 변(E2)의 기울기가 음수이기 때문에 X축의 양의 방향이 탐색 기준점의 이동방향이 된다. 아울러 이동에 의해 얻어진 새로운 탐색 기준점은 이동방향과 교차는 변(E3)에 가장 가까운 화소이면 가장 효율적인 탐색을 할 수 있을 것이다. 이상의 삼각형 탐색방법은 탐색 기준점을 항상 삼각형의 내부에 위치케 한다.
다음으로 본 발명에 따른 컴퓨터 그래픽 장치의 래스터라이저에 대하여 설명한다.
제6도는 본 발명에 따른 래스터라이저의 구조를 도시한 것으로, 주소생성 및 레지스터부(50), 경계 판별부(52), 함수처리부(62), 출력처리부(72) 및 제어부(80)로 구성된다.
주소생성 및 레지스터부(50)는 처리될 화소의 탐색주소를 생성하는 주소생성부(46)와 입출력 데이터 및 중간처리 데이터를 저장하는 레지스터부(48)로 구성된다. 레지스터부(48)는 경계판별부(52)에서 제공되는 에지(edge) 정보를 저장하는 에지 레지스터, 함수처리부(62)에서 제공되는 칼라값 F 및 이미지 깊이 값 Z를 저장하는 칼라 레지스터, 깊이 레지스터 및 그 외 일반적인 데이터를 저장하는데 이용되는 일반 레지스터를 구비한다.
경계판별부(52)는 삼각형의 각 변에 대하여 경계 검사(boundary checking)를 수행하는 3개의 경계판별기 즉, 제1경계 판별기(54), 제2 경계 판별기(56) 및 제 3 경계 판별기(58)와 탐색 기준점이 삼각형의 어느 1변을 통과하였을 경우 탐색 기준점을 수평이동시켜야 할 방향을 결정하는 탐색 기준점 이동방향 결정기(60)로 구성된다.
함수처리부(62)는 각 화소의 칼라값 F를 계산하는 칼라값 계산기(68)와, 각 화소의 XY방향으로의 칼라값 변화율을 구하는 X방향 칼라값 변화율 계산기(64) 및 Y방향 칼라값 변화율 계산기(66), 그리고 이미지의 Z방향의 깊이 Z를 구하는 이미지 깊이 계산기(70)로 구성되다.
출력처리부(72)는 처리될 화소의 이전 단계의 이미지 깊이 Zo와 현단계에서 구한 이미지 깊이 Zn을 비교하는 이미지 깊이 검사기(74)와 이미지 깊이의 비교를 위해 함수처리부(62)에서 계산되어 레지스터부(48)에 저장된 칼라값 F를 읽어 들이고 비교결과에 따라 갱신되어야 할 칼라값 기록을 위해 필요한 데이타를 읽고 쓰는 읽기 쓰기부(76)로 구성된다.
제어부(80)는 상술한 모든 수단들의 동작을 제어한다.
각 구성수단의 구체적인 구성관계는 다음과 같다. 주소생성 및 레지스터부(50)는 경계 판별부(52), 함수 처리부(62) 및 출력처리부(72)와 데이터 교환이 가능하도록 연결된다. 제어부(80)는 주소생성 및 레지스터부(50), 경계판별부(52) 및 함수처리부(62)의 동작을 제어할 수 있도록 이들 수단과 제어신호라인을 통해 연결된다.
제7도는 제6도에 도시된 탐색 기준점 이동방향 결정기(60)에 대한 개념적 구성도로서, 삼각형의 각 변마다 다음과 같은 수단을 구비한다. 즉, 삼각형의 어느 1변에 대하여 변의 기울기의 부호를 저장하는 제1수단(88, 90, 92), 해당되는 경계판별기(54, 56, 58)의 출력값의 부호를 저장하는 제2수단(82, 84, 86), 제1수단(88, 90, 92)에 연결되어 제2수단(82, 84, 86)의 값에 따라 제1수단(88, 90, 92)의 출력을 단속하는 스위칭수단(94, 96, 98)을 구비한다. 각 스위칭수단(94, 96, 98)은 출력단자(100)에 공통 접속한다.
여기서, 본 발명의 동작에 관한 상세한 설명에 앞서 본 발명의 이해를 돕기 위하여 첨부한 제1도를 참조하여 3차원 컴퓨터 그래픽 시스템 전체의 개략적인 구성과 동작을 설명하기로 한다.
3차원 컴퓨터 그래픽 시스템의 일반적인 구조는 제1도에 도시된 바와 같이 기하처리수단(10), 래스터라이저(12), 프레임버퍼(14)와 Z-버퍼(16)로 구성되는 저장수단(18)이 파이프라인 방식으로 구성된다.
목적물(object)을 나타내는 기본요소(primitive)들이 기하처리수단(10)과 래스터라이저(12)를 거치면서 화소 데이터로 변환되어 프레임버퍼(14)에 저장된다. 기하처리수단(10)은 목적물의 좌표를 변환하는 기하변환(geometric transformation), 조명모델링(light modeling), 클리핑(clipping), 투사(perspective projection) 등이 파이프라인으로 구현된다. 래스터라이저(12)는 기본 요소의 각 화소에 대해 세이딩(shading) 모델에 의거하여 칼라값을 결정하고 Z-버퍼(16)를 이용하여 은선을 제거한다. 기하처리수단(10)에서는 다각형의 소량의 각 꼭지점에 대한 복잡한 연산이 수행되는 반면 래스터라이저(12)에서는 다각형 내부의 다량의 각 화소에 대한 비교적 간단한 연산이 반복적으로 수행된다.
이상과 같은 컴퓨터 그래픽 장치에 있어서, 본 발명은 래스터 라이저에 관한 것이다,
제6도에서, 경계판별부(52), 함수처리부(62) 및 출력처리부(72)는 파이프라인으로 동작하므로써 출력처리부(72)는 연속적으로 화소 데이터를 갱신할 수 있다. 즉, 출력처리부(72)가 출력처리될 현재 화소의 저장된 이미지 깊이 Z값을 읽어와 함수처리부(62)에서 새롭게 계산된 이미지 깊이 Z값과 비교하고 그 결과에 따라 함수처리부(62)에서 미리 계산된 칼라값 Fd를 프레임버퍼에 기록할 동안에, 함수처리부(62)는 다음 주기에 출력처리될 화소의 칼라값 Fd와 이미지 깊이 값 Z를 계산하며, 경계판별부(52)는 다음 주기에 출력처리될 화소가 삼각형내에 있는 지를 검사한다. 탐색순서는 상술한 탐색방법에 따른다.
이와 같이 출력처리부(72)와 함수처리부(62) 및 경계판별부(52)가 파이프라인으로 동작하다가 탐색기준점이 삼각형 내부를 벗어났음을 경계판별부(52)가 인지하면 수평 이동된 새로운 탐색 기준점에서부터 같은 동작을 되풀이하여 수행한다. 삼각형 각 변에 대한 경계검사(boundary checking)는 보간기(interpolator)로 구현이 가능하며 1 기계주기(machine cycle) 동안에 수행할 수 있다.
삼각형의 각 변에 대한 3개의 경계판별기(54, 56, 58)는 각각 삼각형의 각 변의 기울기를 구하는 연산과 탐색지점의 좌표와 관련한 연산을 수행하며, 연산결과는 제어부(80)의 제어에 따라 레지스터부(48)의 해당 레지스터에 저장된다.
한편, 제7도에 도시한 탐색 기준점 이동방향 결정기(60)의 동작과 관련하여, 스위칭수단(94, 96, 98)은 상기 3개의 경계 판별기(54, 56, 58)의 계산결과가 저장되어 있는 레지스터의 부호 비트에 따라 절환이 제어된다. 출력단자(100)로는 3개 변의 기울기 값의 부호 비트중에서 어느 하나만이 선택적으로 출력된다. 즉, 출력단자(100)로는 탐색 기준점이 통과한 변의 기울기의 부호에 관한 정보가 택일적으로 출력된다.
함수처리부(62)의 X방향 칼라값 변화율 계산기(64) 및 Y방향칼라값 변화율 계산기(66)는 각 화소에 대한 △xFd값 및 △yFd값을 구하는 작용을 한다. 각 화소에 대한 △xFd값 및 △yFd값은 x, y의 함수이고 수직탐색 및 수평탐색시 아래 식(3-1), (3-2), (3-3), (3-4)와 같이 구해진다. 각 화소에 대한 칼라값 Fd는 아래 식 (4-1) 및 (4-2)와 같이 수직탐색시에는 △yFd값, 수평탐색시에는 △xFd값에 의해 구해진다.
△xFd=△xF0d+△y△xFd: 수직탐색..........(3-1)
△xFd=△xF0d+△x 2Fd: 수평탐색.............(3-2)
△yFd=△yF0d+△y 2Fd: 수직탐색..............(3-2)
△yFd=△yF0d+△x △yFd: 수평탐색..........(3-3)
Fd=F0d+△yFd: 수직탐색..........................(4-1)
Fd= F0d+ △xFd: 수평탐색 .......................(4-2)
윗 식에서 △x△yFd, △x 2Fd, △y 2Fd, △y△xFd는 모두 상수이다. 이미지 심도 계산기(70)는 dZ/dx, dZ/dy를 이용하여 보간기(interpolator)로 구성된다. 이상에서 구한 칼라값 Fd와 이미지 심도값 Z는 레지스터부(48)의 해당 레지스터에 저장된다.
이상에서 제시한 래스터 구조(raster architecture)는 확산반사 조명모델(diffuse reflection light model)만을 계산하는 구조이다. 실제로 완전한 패스트 퐁 묘영을 수행하기 위해서는 함수처리부(62)를 제8도에서 개시하는 바와 같이 구성하여야 한다. 즉, 함수처리부(62)내에 검경반사조명모델(specular reflection light model)값 Fs를 계산하기 위한 △xFs, △yFs, Fs를 계산하는 수단과 Fd와 Fs를 합하는 수단이 더 부가되어야 한다.
이상에서 설명한 본 발명은 다음과 같은 효과가 있다.
먼저, 피네다(Pineda) 방법에서의 삼각형 외부에 대한 불필요한 탐색에 따른 연산(△xF, △yF, F)을 제거하고 병렬처리를 극대화하므로써 데이터 처리의 속도를 높일 수 있다.
다음으로, 탐색 기준점의 수평이동방향 판별을 비롯하여 전반적인 제어가 비교적 간단하여 하드웨어로의 구현이 용이하다.
아울러 경계처리부, 함수처리부 및 출력처리부가 파이프라인으로 구성되어 있어 연속적으로 처리하며, 경계 검사시에도 처리를 멈추지 않아 처리효율을 높일 수 있다.
또한, 2차 보간(quadratic interpolation) 뿐만 아니라 선형 보간(linear interpolation), 3보간(cubic interpolation) 등과 같은 다양한 보간에도 유용하다.
따라서 본 발명은 패스트 퐁 세이딩은 물론 풍 세이딩, 구로 세이딩 및 텍스쳐 세이딩(texture shading) 등에도 활용도가 높다.
Claims (19)
- 컴퓨터 그래픽스에서 목적물의 기본요소(primitive)를 삼각형 단위로 구분하고, 각 삼각형 내부에 포함되어 있는 각각의 화소에 대한 칼라값을 이용하여 삼각형을 탐색하는 방법에 있어서,상기 삼각형에 대한 탐색 기준점을 중심으로 2개의 바깥방향으로 탐색할 화소가 없으면, 상기 탐색 기준점을 1차 탐색방향으로 소정 간격만큼 이동하여 새로운 탐색 기준점을 정하는 제1과정;상기 새로운 탐색 기준점이 상기 삼각형 외부로 벗어난 점이면 이전의 탐색 기준점으로부터 상기 삼각형의 내부로 향하는 직선과 교차하는 상기 삼각형의 1변에 가장 가까운 화소를 상기 새로운 탐색 기준점으로 결정하는 제2과정;상기 새로운 탐색 기준점을 중심으로 상기 2개의 바깥 방향으로 상기 삼각형 내부에 존재하는 화소들을 탐색하고, 탐색된 화소들의 칼라 값을 계산하여 상기 삼각형의 경계점의 칼라값을 저장하는 제3과정;상기 삼각형내의 모든 점들이 탐색될 때까지 상기 제1과정 내지 제3 과정을 순환적으로 수행하는 제4과정을 포함하는 삼각형 탐색 방법.
- 제1항에 있어서, 상기 삼각형 탐색방법은 상기 삼각형에 대한 탐색 출발점을 상기 삼각형의 꼭지점중 Y좌표값이 최대인 꼭지점으로 결정하고, 상기 탐색 종착점을 상기 삼각형의 꼭지점중 Y좌표값이 최소인 꼭지점으로 결정하는 과정을 더 포함하는 삼각형 탐색 방법.
- 제1항에 있어서, 상기 삼각형 탐색방법은 상기 삼각형에 대한 탐색 출발점을 상기 삼각형의 꼭지점중 Y좌표값이 최소인 꼭지점으로 결정하고, 상기 탐색 종착점을 상기 삼각형의 꼭지점중 Y좌표값이 최대인 꼭지점으로 결정하는 과정을 더 포함하는 삼각형 탐색 방법.
- 제2항에 있어서, 상기 1차 탐색방향은 -Y방향임을 특징으로 하는 삼각형 탐색 방법.
- 제3항에 있어서, 상기 1차 탐색방향은 +Y방향임을 특징으로 하는 삼각형 탐색 방법.
- 제1항에 있어서, 상기 제1과정에 있어서, 상기 소정 간격은 화소간의 간격과 대응되는 것을 특징으로 하는 삼각형 탐색 방법.
- 제1항에 있어서, 상기 삼각형 탐색방법에서 상기 2개의 바깥 방향은 상기 탐색 기준점을 중심으로 ±X축 방향임을 특징으로 하는 삼각형 탐색 방법.
- 제1항에 있어서, 상기 제3과정은 상기 탐색 기준점을 중심으로 상기 삼각형의 1변에 도달할 때까지 상기 2개의 바깥 방향중 어느 1방향으로 탐색한 후, 탐색해야할 화소가 남아 있으면 상기 탐색 기준점을 중심으로 상기 2개의 바깥 방향중 다른 1방향으로 탐색하는 것을 특징으로 하는 삼각형 탐색 방법.
- 제1항에 있어서, 상기 제2과정의 상기 삼각형 내부로 향하는 직선의 방향은 상기 외부로 벗어난 점에 대응되는 삼각형의 경계선의 직교 좌표계상의 기울기를 이용하여 결정함을 특징으로 하는 삼각형 탐색 방법.
- 제2항에 있어서, 상기 제2과정의 상기 삼각형 내부로 향하는 직선의 방향은 상기 외부로 벗어난 점에 대응되는 삼각형의 경계선의 직교 좌표계상의 기울기가 양수이면 X축의 음의 방향으로 결정하고, 상기 기울기가 음수이면 X축의 양의 방향으로 결정하는 것을 특징으로 하는 삼각형 탐색 방법.
- 제3항에 있어서, 상기 제2과정의 상기 삼각형 내부로 향하는 직선의 방향은 상기 외부로 벗어난 점에 대응되는 삼각형의 경계선의 직교 좌표계상의 기울기가 양수이면 X축의 양의 방향으로 결정하고, 상기 기울기가 음수이면 X축의 음의 방향으로 결정하는 것을 특징으로 하는 삼각형 탐색 방법.
- 제1항에 있어서, 상기 제2과정의 상기 가장 가까운 화소는 상기 삼각형의 1변의 내측에 위치하는 화소임을 특징으로 하는 삼각형 탐색 방법.
- 삼각형의 각 변의 직교좌표상의 기울기를 산출하는 기울기 산출수단 및 직교좌표상의 1점과 삼각형의 각 변과의 상대 위치에 관한 정보를 산출하는 복수개의 경계 판별기를 포함하는 컴퓨터 그래픽스 장치에 있어서,상기 기울기 산출수단에서 제공된 상기 삼각형의 1변의 기울기를 저장하는 제1수단;상기 경계판별기중 상기 삼각형의 1변에 대응되는 경계 판별기의 출력을 저장하는 제2수단; 및상기 제2수단에 저장된 값에 따라 상기 제1수단에 저장된 상기 삼각형의 1변의 기울기에 대한 출력을 단속하는 스위칭수단을 각 변마다 구비하여 탐색 기준점이 상기 삼각형의 임의의 1변을 통과할 경우 통과한 변의 기울기에 따라 상기 삼각형 탐색시 탐색 기준점의 이동방향을 결정하는 탐색 기준점 이동방향 결정수단을 구비하는 래스터라이저.
- 목적물을 나타내는 기본요소들을 삼각형 단위로 기하처리하여 삼각형의 각 꼭지점의 좌표, 각 꼭지점의 칼라값 및 칼라값의 기울기를 제공하는 기하처리수단과, 상기 기하처리수단에서 제공되는 데이터를 이용하여 상기 삼각형내의 각 화소를 탐색해나가면서 각 화소의 칼라값과 이미지 깊이(Image depth)를 생성하는 래스터라이저, 상기 래스터라이저에서 처리된 결과를 저장하는 저장수단으로 구성된 컴퓨터 그래픽스 장치에 있어서,상기 삼각형에 대한 탐색 화소의 어드레스를 발생하는 제어부,상기 탐색 화소가 상기 삼각형 내부에 위치하는 지를 판별하는 경계 판별부;상기 삼각형 내부에 위치한다고 판정된 상기 탐색 화소의 칼라값들을 산출하는 함수 처리부; 및상기 칼라값이 산출된 점들에 대하여 은선 제거기능을 수행하고, 화소의 데이터를 갱신하는 출력처리부를 구비하는 래스터라이저.
- 제14항에 있어서, 상기 경계 판별부는 상기 삼각형의 각 변단위로 상기 탐색 화소가 통과하는 지를 검사하는 경계판별기, 상기 삼각형의 탐색을 위한 탐색 기준점의 이동방향을 결정할 수 있는 정보를 제공하는 탐색 기준점 이동 방향 결정기를 구비하는 래스터라이저.
- 제15항에 있어서, 상기 경계판별기는 상기 삼각형의 각 변마다 하나씩 구비되어 상기 탐색 화소가 해당되는 상기 삼각형의 변을 중심으로 상기 삼각형의 내부와 외부중 어느 쪽에 위치하는지를 판별한 정보를 생성하도록 구성되는 래스터라이저.
- 제14항에 있어서, 상기 출력처리부는 현재 출력될 화소의 이미지 깊이 값과 상기 함수 처리부에서 산출된 칼라값을 이용하여 계산된 새로운 이미지 깊이 값을 비교하는 이미지 깊이 검사기, 상기 이미지 깊이 검사기로 상기 현재 출력될 화소의 이미지 깊이 값을 제공하면서 상기 이미지 깊이 검사기의 검사결과 상기 이미지 깊이 값이 높은 쪽의 칼라값으로 상기 화소의 데이터가 갱신되도록 처리하는 수단으로 구성되는 래스터라이저.
- 제14항에 있어서, 상기 함수처리부는 현재의 상기 탐색 화소의 칼라값의 변화율을 계산하는 제1수단, 이전의 탐색 화소의 칼라값과 상기 탐색 화소의 칼라값의 변화율을 이용하여 상기 현재 탐색 화소의 칼라값을 계산하는 제2수단, 이미지 깊이를 구하는 제3수단으로 구성되는 래스터라이저.
- 제14항에 있어서, 상기 출력처리부가 현재 출력처리될 화소를 취급하는 동안 상기 함수처리부는 다음 주기에 출력처리될 화소를 취급하고 상기 경계판별부는 다음 다음 주기에 출력처리될 화소를 취급하도록 상기 출력처리부와 함수처리부 및 상기 경계판별부는 파이프라인 구조로 운영하는 것을 특징으로 하는 래스터라이저.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1019930022956A KR100269100B1 (ko) | 1993-10-30 | 1993-10-30 | 삼각형탐색방법및이를채용한래스터라이저 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1019930022956A KR100269100B1 (ko) | 1993-10-30 | 1993-10-30 | 삼각형탐색방법및이를채용한래스터라이저 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR950012266A KR950012266A (ko) | 1995-05-16 |
KR100269100B1 true KR100269100B1 (ko) | 2000-10-16 |
Family
ID=19367083
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1019930022956A KR100269100B1 (ko) | 1993-10-30 | 1993-10-30 | 삼각형탐색방법및이를채용한래스터라이저 |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR100269100B1 (ko) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100742155B1 (ko) | 2005-12-30 | 2007-07-24 | 엠텍비젼 주식회사 | 스캔라인 형성 방법 및 장치 |
KR20200004031A (ko) | 2018-07-03 | 2020-01-13 | 주식회사 신한세라믹 | 수전 카트리지용 패킹 |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100487461B1 (ko) * | 2002-07-31 | 2005-05-03 | 학교법인연세대학교 | 타일링 트래버설 방식의 주사변환 유닛 |
-
1993
- 1993-10-30 KR KR1019930022956A patent/KR100269100B1/ko not_active IP Right Cessation
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100742155B1 (ko) | 2005-12-30 | 2007-07-24 | 엠텍비젼 주식회사 | 스캔라인 형성 방법 및 장치 |
KR20200004031A (ko) | 2018-07-03 | 2020-01-13 | 주식회사 신한세라믹 | 수전 카트리지용 패킹 |
Also Published As
Publication number | Publication date |
---|---|
KR950012266A (ko) | 1995-05-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7081895B2 (en) | Systems and methods of multi-pass data processing | |
US6646639B1 (en) | Modified method and apparatus for improved occlusion culling in graphics systems | |
US6441816B1 (en) | Method for modeling and rendering complex surfaces using local height maps | |
US8059119B2 (en) | Method for detecting border tiles or border pixels of a primitive for tile-based rendering | |
US6480205B1 (en) | Method and apparatus for occlusion culling in graphics systems | |
US5963210A (en) | Graphics processor, system and method for generating screen pixels in raster order utilizing a single interpolator | |
US7466314B2 (en) | Resolution-independent surface rendering using programmable graphics hardware | |
US7532213B2 (en) | Bicubic surface real time tesselation unit | |
US6226012B1 (en) | Method and apparatus for accelerating the rendering of graphical images | |
US7414636B2 (en) | Rendering apparatus, rendering processing method and computer program product | |
US20090046098A1 (en) | Primitive binning method for tile-based rendering | |
EP0875860B1 (en) | Precise gradient calculation system and method for a texture mapping system of a computer graphics system | |
US20050068333A1 (en) | Image processing apparatus and method of same | |
US10593096B2 (en) | Graphics processing employing cube map texturing | |
US6906718B1 (en) | Method and system for efficiently evaluating and drawing NURBS surfaces for 3D graphics | |
JP3391864B2 (ja) | 画像データ処理方法及び装置及びグラフィックシステム | |
EP1519317B1 (en) | Depth-based antialiasing | |
JP3352181B2 (ja) | 画像データ処理方法および装置 | |
US4930091A (en) | Triangle classification setup method and apparatus for 3-D graphics display system | |
US20030043148A1 (en) | Method for accelerated triangle occlusion culling | |
KR100269100B1 (ko) | 삼각형탐색방법및이를채용한래스터라이저 | |
US5926183A (en) | Efficient rendering utilizing user defined rooms and windows | |
US7280108B2 (en) | Bicubic surface rendering | |
JP3332511B2 (ja) | 画像データ処理方法及び装置及びグラフィックシステム | |
Uchiki et al. | SCOPE: solid and colored object projection environment |
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 |
Payment date: 20080627 Year of fee payment: 9 |
|
LAPS | Lapse due to unpaid annual fee |