KR100261075B1 - 트라이리니어 텍스쳐 매핑 가속화 장치 - Google Patents

트라이리니어 텍스쳐 매핑 가속화 장치 Download PDF

Info

Publication number
KR100261075B1
KR100261075B1 KR1019950019078A KR19950019078A KR100261075B1 KR 100261075 B1 KR100261075 B1 KR 100261075B1 KR 1019950019078 A KR1019950019078 A KR 1019950019078A KR 19950019078 A KR19950019078 A KR 19950019078A KR 100261075 B1 KR100261075 B1 KR 100261075B1
Authority
KR
South Korea
Prior art keywords
addresses
address
output
texture
address generator
Prior art date
Application number
KR1019950019078A
Other languages
English (en)
Other versions
KR970002754A (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 윤종용
Priority to KR1019950019078A priority Critical patent/KR100261075B1/ko
Publication of KR970002754A publication Critical patent/KR970002754A/ko
Application granted granted Critical
Publication of KR100261075B1 publication Critical patent/KR100261075B1/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/04Texture mapping
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/20Processor architectures; Processor configuration, e.g. pipelining
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/60Memory management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T11/002D [Two Dimensional] image generation
    • G06T11/40Filling a planar surface by adding surface attributes, e.g. colour or texture

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Graphics (AREA)
  • Image Generation (AREA)

Abstract

본 발명은 트라이리니어 텍스쳐 매핑 가속화장치에 관한 것으로서, U. V 어드레스 발생기와, 텍스쳐 이미지를 매핑할 3차원 물체의 크기보다 크거나 작은 밉맵을 저장하기 위한 2개의 SRAM과, 3차원 물체를 매핑할 때 픽셀에 대응되는 U. V 어드레스를 U. V어드레스 발생기로부터 입력받아 인접한 8개의 텍셀에 대한 어드레스를 발생시키는 텍셀어드레스 발생기와, 텍셀어드레스 발생기에서 얻어진 8개 텍셀에 대한 어드레스에 해당하는 8개 텍셀의 최종 칼라값을 계산하여 프레임 버퍼로 출력하는 블렌딩부로 구성되는 라스터 엔진을 포함한다. 따라서, 텍스쳐 매핑을 하드웨어적으루 수행함에 있어서 성능향상을 위하여 테스쳐 메모리의 뱅크수를 증가하지 않고, 필요하거나 필요가 예측되는 텍스쳐 이미지에 대한 2개의 밉맵을 각각 해당하는 SRAM에 저장하고 억세스함으로써 매핑 처리속도를 현저히 향상시킬 수 있다.

Description

트라이리니어 텍스쳐 매핑 가속화 장치
제1도는 종래의 트라이리니어 텍스쳐 매핑장치를 나타낸 블록도.
제2도는 본 발명에 의한 트라이리니어 텍스쳐 매핑 가속화장치를 나타낸 블록도.
제3도는 제2도에 있어서 텍셀 어드레스 발생기의 상세 블록도.
제4도는 텍스처 이미지를 밉맵 구조로 도식화한 도면.
제5도는 바이리니어 텍스쳐 매핑방법을 도식적으로 나타낸 도면.
제6도는 트라이리니어 텍스쳐 매핑방법을 도식적으로 나타낸 도면.
본 발명은 트라이리니어 텍스쳐 매핑장치에 관한 것으로서, 특히 트라이리니어 텍스쳐 매핑을 가속화하기 위한 장치에 관한 것이다.
그래픽스 기술중에서 텍스쳐 매핑(texture mapping) 기술은 3차원 그래픽스 물체의 표면에 2차원 또는 3차원의 텍스쳐나 무늬(pattern)를 입히는 것으로서, 매우 중요한 기술이며 최근에는 그 처리속도를 향상시키기 위해 이를 하드웨어로 수행하는 것이 일반화되고 있다.
이를 수행하기 위해서는 일반적인 프레임 버퍼 이외에 텍스처 이미지를 저장하기 위한 별도의 메모리 즉, 텍스쳐 메모리를 필요로 한다. 이때 텍스쳐 메모리를 구성하는 요소를 텍셀(texel)이라 한다. 텍스쳐 매핑은 현재 3차원 물체에 매핑될 때, 텍스처 메모리에서 참조되는 텍셀의 수에 따라, 포인트(point), 바이리니어(bilinear), 트라이리니어(trilinear) 텍스쳐 매핑으로 구분한다. 즉, 포인트 텍스쳐 매핑은 3차원 물체에 매핑이 될 때 필요한 텍셀의 개수가 1개이고, 바이리니어 텍스쳐 매핑은 4개이고, 트라이리니어 텍스쳐 매핑은 8개를 필요로 한다. 3차원 물체의 크기가 텍스쳐 이미지와 비슷하다면 3차원 물체의 픽셀들과 텍스쳐 이미지의 텍셀과 1대 1매핑이 가능해진다. 위 조건을 만족하기 위하여 3차원 물체의 크기와 비슷한 텍스쳐 이미지를 가지고 있어야 한다. 즉, 텍스쳐 매핑을 수행하기 전에 텍스쳐 이미지의 가로, 세로 축을 각각 1/2 씩 반복적으로 축소하여 텍스쳐 메모리에 저장해 두어야 한다. 텍스쳐 이미지를 크기별로 구성한 것을 제4도에 도시된 밉맵(MIPmap)이라 한다. 여기서, 원래의 텍스쳐 이미지의 LOD(Level Of Detail)를 '0'이라 하고, 텍스쳐 이미지의 크기를 1/4씩 반복적으로 축소하여 1,2,...,N(N;자연수)로 각각의 밉맵에 대한 LOD를 명명한다. 밉맵에 대한 자세한 내용은 "Pyramidal Parametrics"(by Lancs Williams, Computer Graphics Volumn 17, July 1983)에 상세히 설명되어 있다. 일반적으로 3차원 물체와 같은 크기의 밉맵은 없고, 3차원 물체보다 약간 크거나 작은 2개의 밉맵이 존재한다.
제5도에 도시된 바이리니어 텍스쳐 매핑방법은 3차원 물체의 하나의 픽셀에 대응되는 밉맵상의 한점에 인접한 4개 텍셀들을 다음 (1)식에 대입하여 최종적으로 바이리니어 텍스쳐 매핑된 칼라값을 구한다. 좀 더 정확한 매핑이 필요하다면 위에서 언급한 2개의 밉맵에서 (1)식에 대입하여 중간의 칼라값을 바이리니어 방식으로 각각 구하고, 두 개의 중간값을 LOD의 프랙션(fraction)부분의 비율에 따라 다음 (2)식에 의해 최종적으로 트라이리니어 텍스쳐 매핑된 칼라값을 구한다. 트라이리니어 텍스쳐 매핑방법은 제6도에 도시되어 있으며, 총 8개의 텍셀 정보가 사용된다. 트라이리니어 텍스쳐 매핑을 실시간으로 수행하는데 필요한 8개의 텍셀은 동시에 읽혀져야만 (1)식과 (2)식에 대입하여 텍스쳐 매핑된 최종 칼라값을 구할 수 있다.
Color=(color of #1×area of #1 + color of #2 × area of #2 + color of #3 ×area of #3 + color of #4 × area of #4)/ total area ...(1)
Color=fraction(LOD) × biliear color of #"LOD" + ((1-fraction(LOD)) × biliear color of "LOD+1"...(2)
종래에는 제1도에 도시된 바와 같이, 8개의 텍셀을 동시에 리드하기 위해 동일한 텍스쳐 메모리(40 내지 47)를 두었다. 이러한 경우 데이터 패스가 커져서 라스터 엔진(70)의 핀수가 증가하고, PCB가 복잡해 짐으로 인해 하드웨어 비용이 증가하는 문제가 있다. 즉, 종래 방법에 의해 트라이리니어 텍스쳐 매핑을 구현하는 경우 텍스쳐 메모리의 크기는 8배로 커지고 라스터 엔진과 텍스쳐 메모리 사이에 데이터 크기는 8배로 증가하여 비용이 상승한다.
따라서 본 발명의 목적은 상술한 문제점을 해결하기 위해 종래의 라스터 엔진 내부에 트라이리니어 텍스쳐 매핑을 가속화하기 위하여 필요한 2개의 밉맵을 저장하는 SRAM을 둠으로써 고성능의 트라이리니어 텍스쳐 매핑 기능을 실시간으로 수행하기 위한 장치를 제공하는데 있다.
상기 목적을 달성하기 위하여 본 발명은 텍스쳐 이미지를 저장하는 텍스쳐 메모리, 계산된 최종 칼라값을 저장하는 프레임 버퍼와 라스터 엔진을 구비한 트라이리니어 텍스쳐 매핑 가속화장치에 있어서, 상기 라스터 엔진은 U. V어드레스 발생기;
텍스쳐 이미지를 매핑할 3차원 물체의 크기보다 크거나 작은 밉맵을 저장하기 위한 2개의 SRAM;
3차원 물체를 매핑할 때 픽셀에 대응되는 U. V어드레스를 상기 U. V 어드레스 발생기로부터 입력받아 인접한 8개의 텍셀에 대한 어드레스를 발생시키는 텍셀어드레스 발생기; 및
상기 텍셀어드레스 발생기에서 얻어진 8개 텍셀에 대한 어드레스에 해당하는 8개 텍셀의 최종 칼라값을 계산하여 상기 프레임 버퍼로 출력하는 블렌딩부를 포함하는 것을 특징으로 한다.
이하 본 발명의 일실시예에 대하여 첨부된 도면을 참조하여 상세히 설명하기로 한다.
제2도는 본 발명에 의한 트라이리니어 텍스쳐 매핑 가속화장치를 나타낸 블록도이다.
제2도에 도시된 트라이리니어 텍스쳐 매핑 가속화장치는, 라스터 엔진(10) 내부에 텍스쳐 이미지를 매핑할 수 3차원 물체의 크기보다 크거나 작은 밉맵을 저장할 수 있는 2개의 SRAM(100,600)과, 3차원 물체로 매핑할 때 픽셀에 대응되는 U. V어드레스를 U, V어드레스 발생기(500)로부터 U, V어드레스를 입력받아 인접한 8개의 텍셀에 대한 어드레스를 발생시키는 텍셀어드레스 발생기(300)가 제1도에 도시된 라스터 엔진(70)에 비하여 추가로 필요하다.
제3도는 제2도에 있어서 텍셀 어드레스 발생기(300)의 상세 블록도로서, 3개의 증가기(increment;330,331), 2개의 멀티플렉서(340,341), 2비트 카운터(310), 4개의 8비트 레지스터(320,321,322,323), 16비트 레지스터(324)로 구성된다.
그러면 본 발명의 동작에 대하여 제2도와 제3도를 참조하여 설명하면 다음과 같다.
먼저, 라스터 엔진(10)에서 SRAM(100)은 최대 M×N텍셀을 저장할 수 있는 크기를 갖고, 3차원 물체보다 약간 큰 밉맵(LOD)을 저장하고, SRAM(600)은 최대 M/2×N/2텍셀을 저장할 수 있는 크기를 갖고, 3차원 물체보다 약간 작은 밉맵(LOD+1)을 저장한다.
텍셀어드레스 발생기(300)는 U. V 어드레스 발생기(500)로부터 입력된 U. V어드레스를 갖고, 다음 표1과 같은 8개의 텍셀 어드레스를 발생한다.
[표 1]
본 발명의 동작은 U, V 어드레스 발생기(500)가 텍셀 어드레스 발생기(300)로 계산된 U, V 어드레스를 출력하는 것이 시작이다. 동작 시작에 앞서, 3차원 물체에 매핑될 텍스쳐 이미지의 밉맵이 SRAM(100,600)에 저장되어 있는지를 확인하여 있으면 다음 동작을 수행하고, 없으면 3차원 물체에 매핑될 텍스쳐 이미지의 밉맵을 텍스쳐 메모리(20)에서 SRAM(100,600)으로 다운로드한 다음 다음 동작을 수행한다.
텍셀어드레스 발생기(300)가 각각 log2(N)비트로 구성되는 U. V 어드레스를 받아들이면, 두 개의 SRAM(100,600)을 처음에는 표1에서 1,5와, 두 번째는 2,6과, 세 번째는 3,7과 마지막으로 4,8의 텍셀어드레스가 출력된다. 전술한 동작과정을 제3도의 텍셀 어드레스 발생기(300)를 참조하여 좀 더 상세히 설명하면 다음과 같다. 여기서는 N을 예를 들어 256으로 가정한다.
먼저, 입력된 U. V 어드레스를 각각 8비트 레지스터(320,322)에 래치시키고, 증가기(330,331)에 의해 1씩 증가시켜 U+1, V+1의 값을 구한다. 한편, 2비트 카운터(310)를 클리어하여 "0"중 최상위비트(MSB)와 최하위비트(LSB)가 멀티플렉서(340,341)에 각각 출력된다. 따라서, 멀티플렉서(340,341)에서는 8비트 레지스터(322,320,323,322)로부터 각각 출력되는 U, V, U+1, V+1 어드레스 중 U, V를 선택하여 16비트 레지스터(324)로 출력한다. 16비트 레지스터(324)에서는 SRAM(100)으로 U,V 어드레스 16비트(A17~A2)를 출력하고, SRAM(600)으로 U, V 어드레스 중 14비트(A17~A11, A9~A3)를 출력한다.
다음, 2비트 카운터(310)를 클럭에 의해 증가하여 "0,1"중 최상위비트(MSB)와 최하위비트(LSB)가 멀티플렉서(340,341)에 각각 출력된다. 따라서, 멀치플렉서(340,341)에서는 8비트 레지스터(322,320,323,322)로부터 각각 출력되는 U, V, U+1, V+1 어드레스 중 U+1, V를 선택하여 16비트 레지스터(324)로 출력한다. 16비트 레지스터(324)에서는 SRAM(100)으로 U+1, V어드레스 16비트(A17~A2)를 출력하고, SRAM(600)으로 U+1, V 어드레스 중 14비트(A17~A11, A9~A3)를 출력한다.
다음, 2비트 카운터(310)를 클럭에 의해 증가하여 "10"중 최상위비트(MSB)와 최하위비트(LSB)가 멀티플렉서(340,341)에 각각 출력된다. 따라서, 멀티플렉서(340,341)에서는 8비트 레지스터(322,320,323,322)로부터 각각 출력되는 U, V, U+1, V+1 어드레스 중 U, V+1를 선택하여 16비트 레지스터(324)로 출력한다. 16비트 레지스터(324)에서는 SRAM(100)으로 U, V+1 어드레스 16비트(A17~A2)를 출력하고, SRAM(600)으로 U, V+1 어드레스 중 14비트(A17~A11, A9~A3)를 출력한다.
다음, 2비트 카운터(310)를 클럭에 의해 증가하여 "11" 중 최상위비트(MSB)와 최하위비트(LSB)가 멀티플렉서(340,341)에 각각 출력된다. 따라서, 멀티플렉서(340,341)에서는 8비트 레지스터 (322,320,323,322)로부터 각각 출력되는 U, V, U+1, V+1 어드레스 중 U+1, V+1를 선택하여 16비트 레지스터(324)로 출력한다. 16비트 레지스터(324)에서는 SRAM(100)으로 U+1, V+1 어드레스 16비트(A17~A2)를 출력하고, SRAM(600)으로 U+1, V+1 어드레스 중 14비트(A17~A11, A9~A3)를 출력한다.
상기와 같은 과정을 통해 얻어진 8개 텍셀을 상기 (1)식과 (2)식을 하드웨어로 수행하는 블렌딩(blending)부(400)에서 최종 칼라값을 계사한다. 계산된 최종 칼라값을 프레임 버퍼(30)에 저장한다.
상기 전과정을 3차원 물체의 내부를 텍스쳐 이미지로 전부 칠할때까지 반복 수행한다.
상기 과정에서 SRAM(600)으로 U, V 어드레스 중 14비트(A17~A11, A9~A3), U+1, V 어드레스 중 14비트(A17~A11, A9~A3), U, V+1 어드레스 중 14비트(A17~A11, A9~A3), U+1, V+1 어드레스 중 14비트(A17~A11, A9~A3)를 출력하는 과정은 U, V어드레스를 2로 나누는 연산과 동일한 효과를 얻을 수 있다. 즉, 4비트 "1010"(십진수로 10)의 최하위비트를 버리고, 나머지 3비트를 취하면 "101"(십진수 5)라는 결과를 얻을 수 있다.
상술한 바와 같이 본 발명에 의한 트라이리니어 텍스쳐 매핑 가속화장치에서는 고성능 3차원 그래픽스 시스템에서 중요한 기능인 텍스쳐 매핑을 하드웨어적으로 수행함에 있어서 성능향상을 위하여 텍스쳐 메모리의 뱅크수를 증가하지 않고, 필요하거나 필요가 예측되는 텍스쳐 이미지에 대한 2개의 밉맵을 각각 해당하는 SRAM에 저장하고 억세스함으로써 매핑 처리속도를 현저히 향상시킬 수 있다.

Claims (2)

  1. 텍스쳐 이미지를 저장하는 텍스쳐 메모리, 계산된 최종 칼라값을 저장하는 프레임 버퍼와 라스터 엔진을 구비한 트라이리니어 텍스쳐 매핑 가속화장치에 있어서, 상기 라스터 엔진은 U, V 어드레스 발생기; 텍스쳐 이미지를 매핑할 3차원 물체의 크기보다 크거나 작은 밉맵을 저장하기 위한 2개의 SRAM; 3차원 물체를 매핑할 때 픽셀에 대응되는 U. V 어드레스를 상기 U. V 어드레스 발생기로부터 입력받아 인접한 8개의 텍셀에 대한 어드레스를 발생시키는 텍셀어드레스 발생기; 및 상기 텍셀어드레스 발생기에서 얻어진 8개 텍셀에 대한 어드레스에 해당하는 8개 텍셀의 최종 칼라값을 계산하여 상기 프레임 버퍼로 출력하는 블렌딩부를 포함하는 것을 특징으로 하는 트라이리니어 텍스쳐 매핑 가속화장치.
  2. 제1항에 있어서, 상기 텍셀 어드레스 발생기는 2비트 카운터; 상기 U, V 어드레스 발생기에서 출력되는 U, V어드레스를 각각 입력하는 제1레지스터군; 상기 U, V 어드레스를 1씩 증가시켜 U+1, V+1 어드레스를 출력하는 2개의 증가기; 상기 2개의 증가기에서 출력되는 U+1, V+1 어드레스를 입력하는 제2레지스터군; 상기 2비트 카운터의 출력에 따라서, 상기 제1레지스터군과 상기 제2레지스터군에서 각각 출력되는 U, U+1 어드레스와, V, V+1 어드레스에 대하여 각각 선택적으로 출력하는 2개의 멀티플렉서; 및 상기 2개의 멀티플렉서에서 출력되는 U, V 어드레스 혹은, U+1, V 어드레스 혹은, U, V+1 어드레스 혹은, U+1, V+1 어드레스를 입력하여 16비트 어드레스는 상기 3차원 물체보다 약간 큰 밉맵을 저장하는 SRAM으로, 16비트 어드레스 중 14비트는 상기 3차원 물체보다 약간 작은 밉맵을 저장하는 SRAM으로 출력하는 16비트 레지스터로 구성되는 것을 특징으로 하는 트라이리니어 텍스쳐 매핑 가속화장치.
KR1019950019078A 1995-06-30 1995-06-30 트라이리니어 텍스쳐 매핑 가속화 장치 KR100261075B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1019950019078A KR100261075B1 (ko) 1995-06-30 1995-06-30 트라이리니어 텍스쳐 매핑 가속화 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1019950019078A KR100261075B1 (ko) 1995-06-30 1995-06-30 트라이리니어 텍스쳐 매핑 가속화 장치

Publications (2)

Publication Number Publication Date
KR970002754A KR970002754A (ko) 1997-01-28
KR100261075B1 true KR100261075B1 (ko) 2000-07-01

Family

ID=19419468

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019950019078A KR100261075B1 (ko) 1995-06-30 1995-06-30 트라이리니어 텍스쳐 매핑 가속화 장치

Country Status (1)

Country Link
KR (1) KR100261075B1 (ko)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100382107B1 (ko) * 2000-08-26 2003-05-01 학교법인연세대학교 고성능 3 차원 그래픽 가속기를 위한 일관성 버퍼의 방법및 장치
KR100956362B1 (ko) * 2007-11-30 2010-05-06 삼성중공업 주식회사 선박의 동력발생실

Also Published As

Publication number Publication date
KR970002754A (ko) 1997-01-28

Similar Documents

Publication Publication Date Title
US5185856A (en) Arithmetic and logic processing unit for computer graphics system
EP0310176B1 (en) Method of and arrangement for generating a two-dimensional image
US5990912A (en) Virtual address access to tiled surfaces
Deering et al. The triangle processor and normal vector shader: a VLSI system for high performance graphics
Akeley Reality engine graphics
US5801711A (en) Polyline and triangle strip data management techniques for enhancing performance of computer graphics system
JP3860859B2 (ja) 高性能プリミティブ・クリッピング・プリプロセシングを有するコンピュータ・グラフィックス・システム
EP0850462B1 (en) Method and system for rendering graphical objects to image chunks and combining image layers into a display image
US6650327B1 (en) Display system having floating point rasterization and floating point framebuffering
US6108460A (en) Load balanced image generation
US6795080B2 (en) Batch processing of primitives for use with a texture accumulation buffer
EP0223160A2 (en) Memory efficient cell texturing for advanced video object generator
JPH0916144A (ja) 二次元でインターリーブされるフレームバッファを備えた、三角形ラスタ化のためのシステム及び方法
WO1999067748A2 (en) An improved method and apparatus for per pixel mip mapping and trilinear filtering
JP3888478B2 (ja) データ同期装置
CA2110551A1 (en) Video buffer recycling method and apparatus
EP1125252B1 (en) Shading and texturing 3-dimensional computer generated images
US6219062B1 (en) Three-dimensional graphic display device
JP3839871B2 (ja) 三角形を表わす画素データを生成する装置
US5696944A (en) Computer graphics system having double buffered vertex ram with granularity
US5784075A (en) Memory mapping techniques for enhancing performance of computer graphics system
US5732248A (en) Multistep vector generation for multiple frame buffer controllers
KR100261075B1 (ko) 트라이리니어 텍스쳐 매핑 가속화 장치
JPH096988A (ja) 色に奥行き指示を与える装置
JP3839870B2 (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: 20030328

Year of fee payment: 4

LAPS Lapse due to unpaid annual fee