KR100441079B1 - apparatus and method for antialiasing - Google Patents

apparatus and method for antialiasing Download PDF

Info

Publication number
KR100441079B1
KR100441079B1 KR10-2002-0045233A KR20020045233A KR100441079B1 KR 100441079 B1 KR100441079 B1 KR 100441079B1 KR 20020045233 A KR20020045233 A KR 20020045233A KR 100441079 B1 KR100441079 B1 KR 100441079B1
Authority
KR
South Korea
Prior art keywords
fragment
buffer
ruf
fragments
mask
Prior art date
Application number
KR10-2002-0045233A
Other languages
Korean (ko)
Other versions
KR20040011917A (en
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 KR10-2002-0045233A priority Critical patent/KR100441079B1/en
Publication of KR20040011917A publication Critical patent/KR20040011917A/en
Application granted granted Critical
Publication of KR100441079B1 publication Critical patent/KR100441079B1/en

Links

Classifications

    • 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
    • G06T19/00Manipulating 3D models or images for computer graphics
    • G06T19/20Editing of 3D images, e.g. changing shapes or colours, aligning objects or positioning parts

Landscapes

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

Abstract

본 발명은 경제적인 하드웨어 비용으로 고화질 영상을 생성할 수 있는 방법을 제공하기 위한 것으로서, API, 3차원 그래픽 가속기 그리고 디스플레이부로 구성되는 3차원 컴퓨터 시스템에 있어서, 상기 3차원 그래픽 가속기는 상기 API를 통해 전달된 3차원 모델 데이터를 회전, 좌표 변화 그리고 크기 변환 등을 수행하는 기하학 처리부와, 상기 기하학 처리부에서 출력되는 3차원 데이터에 대해 2차원 화면좌표로 변환을 수행하고, 3차원 모델을 이루는 폴리곤 데이터에 대한 프레그먼트를 생성하는 레스터라이저부와, 상기 생성된 프레그먼트에 대해 은면제거와 실감 영상을 위한 이미지 맵핑 과정을 수행하는 영상 생성부와, 새로 입력된 프레그먼트 중 서바이브드 프레그먼트의 영역마스크, 깊이 값, 그리고 색상 값을 저장하는 프레임 버퍼와, 상기 프레임 버퍼에 저장되었던 프레그먼트 중 서바이브드 프레그먼트의 영역 마스크, 오브젝트 태그 그리고 색상 값을 저장하는 RUF 버퍼를 포함하여 구성되는데 있다.An object of the present invention is to provide a method for generating a high quality image at an economical hardware cost. In a three-dimensional computer system comprising an API, a three-dimensional graphics accelerator, and a display unit, the three-dimensional graphics accelerator is provided through the API. Converts the transmitted 3D model data into a geometry processing unit that performs rotation, coordinate change, and size conversion, and converts the 3D data output from the geometry processing unit into 2D screen coordinates, and forms polygon data that forms a 3D model. A rasterizer for generating a fragment for the image, an image generator for performing an image mapping process for mask removal and a sensory image with respect to the generated fragment, and a surviving fragment among newly inputted fragments A frame buffer for storing the area mask, depth value, and color value of the segment; Vibe de standing fragment of that was stored in the frame buffer area mask of the fragment, and is composed, including RUF buffer for storing the object tag and the color values.

Description

안티알리아싱 장치 및 방법{apparatus and method for antialiasing}Apparatus and method for antialiasing

본 발명은 3차원 컴퓨터 그래픽에 관한 것으로, 특히 간단하고 효율적인 하드웨어 지원 안티알리아싱 알고리즘과 렌더링 구조에 관한 것이다.TECHNICAL FIELD The present invention relates to three-dimensional computer graphics, and in particular, to a simple and efficient hardware assisted antialiasing algorithm and rendering structure.

3차원 컴퓨터 그래픽(3D computer graphics)은 멀티미디어 환경을 구축하기 위한 가장 핵심적인 연구 분야로서, 최근 들어 3차원 그래픽 분야가 질적으로나 양적으로 크게 팽창하고 있다.3D computer graphics is the most important research field to build a multimedia environment. Recently, the 3D graphics field has expanded greatly in quality and quantity.

도 1 은 일반적인 3차원 컴퓨터 그래픽 시스템을 나타낸 도면이다.1 is a diagram illustrating a general three-dimensional computer graphics system.

도 1을 보면, 그래픽 시스템은 크게 3차원 응용 소프트웨어가 API(Application Program Interface)(100)를 통하여 3차원 그래픽 가속기(200)로 전달되면, 상기 3차원 그래픽 가속기(200)에서 실시간 하드웨어 가속을 수행한 후 이를 디스플레이부(300)로 보내어 화면에 표시하는 과정으로 이루어진다.Referring to FIG. 1, when the 3D application software is largely delivered to the 3D graphics accelerator 200 through an API (Application Program Interface) 100, the graphic system performs real-time hardware acceleration in the 3D graphics accelerator 200. Then it is sent to the display unit 300 consists of a process of displaying on the screen.

이때, 상기 3차원 그래픽 가속기(200)는 상기 API(100)를 통해 전달된 3차원 모델 데이터를 기하학 처리부(210)에서 회전, 좌표 변화 그리고 크기 변환 등의 과정을 거치면서 렌더링 처리부(220)로 보내진다.In this case, the 3D graphics accelerator 200 passes the 3D model data transmitted through the API 100 to the rendering processor 220 while undergoing a process such as rotation, coordinate change, and size conversion in the geometry processor 210. Is sent.

그러면 상기 렌더링 처리부의 레스터라이저부(221)는 상기 기하학처리부(210) 과정을 거친 3차원 데이터에 대해 2차원 화면좌표로 변환을 수행하고, 3차원 모델을 이루는 폴리곤 데이터에 대한 프레그먼트를 생성한다.Then, the rasterizer unit 221 of the rendering processor converts the 3D data processed through the geometry processor 210 into 2D screen coordinates, and generates fragments for polygon data forming a 3D model. do.

이어, 상기 렌더링 처리부의 영상 생성부(222)는 상기 생성된 프레그먼트에 대해 은면제거와 실감 영상을 위한 이미지 맵핑 과정을 수행한 후, 그 결과를 프레임 버퍼(223)에 저장한다.Subsequently, the image generation unit 222 of the rendering processor performs an image mapping process for removing the hidden face and the sensory image on the generated fragment, and stores the result in the frame buffer 223.

그리고 상기 레스터라이저부(221)에서 생성된 모든 프레그먼트에 대해 위 과정이 끝나면, 상기 프레임 버퍼(223)에 저장된 색상 값은 디스플레이부(300)로 넘겨져서 화면에 출력된다.When the above process is completed for all the fragments generated by the rasterizer unit 221, the color values stored in the frame buffer 223 are transferred to the display unit 300 and displayed on the screen.

그러나, 상기 기하학 처리부(210)에서 처리된 폴리곤을 렌더링 처리부(220)를 거쳐 디스플레이부(300)에서 화면으로 출력할 때, 흔히 발생되는 문제가 바로 영상에 톱니형 가장자리가 생긴다는 것이다.However, when the polygon processed by the geometry processor 210 is output to the screen from the display 300 through the rendering processor 220, a common problem is that a sawtooth edge is formed in the image.

이러한 효과는 계단현상 또는 톱니현상이라고 언급되며, 이러한 계단 현상은 알리아싱이라 알려진 현상의 한 실례이다. 이 문제는 대부분 프레그먼트를 생성할 때 부족한 샘플링에 의해서 발생한다.This effect is referred to as stepping or sawing, which is an example of what is known as aliasing. This problem is mostly caused by insufficient sampling when creating fragments.

따라서, 일반적으로 상기 알리아싱 문제를 해결하기 위해서 3차원 모델을 보다 높은 해상도에서 렌더링 한 후, 실제 화면 해상도에 맞추어 평균다운 필터링을 수행하는 슈퍼샘플링 방식(Alan Watt. '3D Computer Graphics', Third Edition, Addison-Wesley, 2000.)이 사용된다.Therefore, in order to solve the above aliasing problem, a supersampling method (Alan Watt. '3D Computer Graphics', Third Edition, Addison-Wesley, 2000.).

그러나 상기 슈퍼샘플링 방식은 커다란 메모리 크기와 메모리 대역폭을 필요로 한다.However, the supersampling method requires a large memory size and a memory bandwidth.

예를 들어 하나의 픽셀에 n 개의 포인트를 이용하는 n-슈퍼샘플링은 1-포인트 샘플링 방식보다 n 배의 메모리 크기와 메모리 대역폭을 각각 필요로 하게 된다.For example, n-supersampling using n points per pixel requires n times the memory size and memory bandwidth, respectively, than the 1-point sampling method.

따라서, 이러한 메모리 요구량을 줄이기 위한 방법으로 축적 버퍼 기법이 있는데, 이는 하나의 화면에 대하여 여러 번에 걸쳐 렌더링을 수행한 후, 각각의 결과를 축적 버퍼(accumulation buffer)에 저장한 후, 그 결과에 적당한 가중치를 두어 프레임 버퍼에 저장함으로써 최종 화면을 생성하는 기법이다.Therefore, there is an accumulation buffer technique as a way to reduce the memory requirements. After rendering several times on one screen, each result is stored in an accumulation buffer, and then It is a technique to generate the final screen by storing the weight in the frame buffer with appropriate weight.

그러나, 상기 축적 버퍼 기법은 하나의 화면에 대해 렌더링 수행을 여러 번 반복하는 다중 패스(multi-pass) 알고리즘이므로 렌더링 속도가 반복하는 회수에 비례하여 느려지게 되는 문제점을 안게 된다.However, since the accumulation buffer technique is a multi-pass algorithm that repeats rendering several times on one screen, the accumulation buffer technique has a problem in that the rendering speed is slowed in proportion to the number of repetitions.

한편, 불투명 오브젝트에 대한 안티알리아싱뿐만 아니라 투명 오브젝트의 블렌딩(blending)을 지원하는 A-버퍼 알고리즘이 있는데, 이는 영역마스크(coverage mask)를 이용하여 서브픽셀이 차지하는 영역을 나타내며, 이 영역이 가지는 평균 색상 값으로 프레그먼트를 표현한다(Loren Carpenter, "The A-buffer, an Antialiased Hidden Surface Method", InComputer Graphics Annual Conference Series(Proceedings of SIGGRAPH 84), volume 18, page 103-108, July 1984.).On the other hand, there is an A-buffer algorithm that supports blending of transparent objects as well as antialiasing for opaque objects, which represents the area occupied by subpixels using a coverage mask, and the average of these areas. Express fragments with color values (Loren Carpenter, "The A-buffer, an Antialiased Hidden Surface Method", InComputer Graphics Annual Conference Series (Proceedings of SIGGRAPH 84), volume 18, page 103-108, July 1984.) .

따라서, 상기 A-버퍼 방식은 n-슈퍼샘플링방식이 픽셀 당 n 개의 서브픽셀을 가지며, 각 서브픽셀별로 하나의 색상 값과 깊이 값을 요구하는데 반해, 영역마스크를 통한 프레그먼트 표현은 샘플링 포인트 별로 중복되는 색상 값을 제거할 수 있으므로 메모리 크기와 메모리 대역폭을 줄일 수 있다.Accordingly, the A-buffer method has n subpixels per pixel, and the n-supersampling method requires one color value and a depth value for each subpixel, whereas the fragment representation through the area mask is a sampling point. Redundant color values can be removed to reduce memory size and memory bandwidth.

하지만, 여러 오브젝트의 폴리곤 프레그먼트가 중첩되거나 서로 교차(intersection)되는 관계를 나타내기 위해서는 픽셀 당 깊이 값에 의해 정렬된 프레그먼트 리스트가 필요하게 되는데, 이러한 리스트는 렌더링 파이프라인 설계를 어렵게 만드는 문제로 작용한다.However, to show a relationship where polygon fragments of multiple objects overlap or intersect with each other, a list of fragments sorted by depth-per-pixel values is required, which makes the rendering pipeline design difficult. It works as a problem.

또한 A-버퍼 알고리즘이 비록 투명 오브젝트를 잘 처리할 수는 있지만, 여전히 불투명 오브젝트의 안티알리아싱을 위해서는 프레그먼트 리스트가 필요로 하며, 경우에 따라서 슈퍼샘플링 방식보다 더 많은 하드웨어 비용을 요구할 수도 있다.Also, although A-buffer algorithms can handle transparent objects well, they still require fragment lists for antialiasing of opaque objects, and in some cases even more hardware costs than supersampling.

따라서 본 발명은 상기와 같은 문제점을 해결하기 위해 안출한 것으로서, A-버퍼 알고리즘에 기반을 둔 영역마스크를 이용하여 프레그먼트를 표현하며, 가장 최근에 사용된 프레그먼트 색상 값을 이용하여 불투명 오브젝트에 대해서 효율적으로 안티알리아싱을 수행할 수 있는 방법과 렌더링 구조를 제공하는데 그 목적이 있다.Accordingly, the present invention has been made to solve the above problems, and expresses the fragment using an area mask based on the A-buffer algorithm, and is opaque using the most recently used fragment color value. The purpose is to provide a rendering structure and a method that can effectively perform antialiasing on objects.

본 발명의 다른 목적은 경제적인 하드웨어 비용으로 고화질 영상을 생성할 수 있는 방법을 제공하는데 있다.Another object of the present invention is to provide a method for generating a high quality image at economical hardware cost.

도 1 은 일반적인 3차원 컴퓨터 그래픽 시스템을 나타낸 도면1 illustrates a typical three dimensional computer graphics system.

도 2 는 본 발명에 따른 3차원 컴퓨터 그래픽 시스템을 나타낸 도면2 illustrates a three-dimensional computer graphics system in accordance with the present invention.

도 3 은 8산개 샘플링 포인트를 가지는 경우의 샘플링 포인트와 프레그먼트의 데이터 구조를 나타낸 도면3 is a diagram showing a data structure of a sampling point and a fragment in the case of having eight sampling points;

도 4 는 본 발명에 따른 안티알리아싱을 위한 렌더링 파이프라인의 개략적인 도면4 is a schematic diagram of a rendering pipeline for antialiasing according to the present invention.

도 5 는 일반적으로 렌더링 과정 중에 발생할 수 있는 프레그먼트들의 상호관계를 나타낸 도면5 illustrates the interrelationship of fragments that may generally occur during the rendering process;

도 6 는 프레그먼트의 도착순서와 상호관계에 따른 색상 값 결정의 실시예를 나타낸 도면6 is a view showing an embodiment of determining the color value according to the arrival order and correlation of the fragment

도 7은 3차원 모델 데이터들의 각 샘플링 방식에 따른 평균 색상 오차를 나타낸 도면7 is a diagram illustrating an average color error according to each sampling method of 3D model data.

*도면의 주요부분에 대한 부호의 설명* Explanation of symbols for main parts of the drawings

100 : API 121 : 깊이 버퍼100: API 121: Depth Buffer

122 : 색상 버퍼 200 : 3차원 그래픽 가속기122: color buffer 200: three-dimensional graphics accelerator

210 : 기하학 처리부 220 : 렌더링 처리부210: geometry processor 220: rendering processor

221 : 레스터라이저부 222 : 영상 생성부221: rasterizer 222: image generator

223 : 프레임 버퍼 224 : RUF 버퍼223: frame buffer 224: RUF buffer

300 : 디스플레이부300: display unit

상기와 같은 목적을 달성하기 위한 본 발명에 따른 안티알리아싱 장치의 특징은 API, 3차원 그래픽 가속기 그리고 디스플레이부로 구성되는 3차원 컴퓨터 시스템에 있어서, 상기 3차원 그래픽 가속기는 상기 API를 통해 전달된 3차원 모델 데이터를 회전, 좌표 변화 그리고 크기 변환 등을 수행하는 기하학 처리부와, 상기기하학 처리부에서 출력되는 3차원 데이터에 대해 2차원 화면좌표로 변환을 수행하고, 3차원 모델을 이루는 폴리곤 데이터에 대한 프레그먼트를 생성하는 레스터라이저부와, 상기 생성된 프레그먼트에 대해 은면제거와 실감 영상을 위한 이미지 맵핑 과정을 수행하는 영상 생성부와, 새로 입력된 프레그먼트 중 서바이브드 프레그먼트의 영역마스크, 깊이 값, 그리고 색상 값을 저장하는 프레임 버퍼와, 상기 프레임 버퍼에 저장되었던 프레그먼트 중 서바이브드 프레그먼트의 영역 마스크, 오브젝트 태그 그리고 색상 값을 저장하는 RUF 버퍼를 포함하여 구성되는데 있다.A feature of the antialiasing device according to the present invention for achieving the above object is a three-dimensional computer system consisting of an API, a three-dimensional graphics accelerator and a display, wherein the three-dimensional graphics accelerator is a three-dimensional delivered through the API The geometric processing unit that rotates the model data, changes the coordinates, and transforms the size, and converts the 3D data output from the geometric processing unit into two-dimensional screen coordinates, and a frag for polygon data forming a three-dimensional model. A rasterizer for generating a fragment, an image generator for performing an image mapping process for removing a phantom and a sensory image with respect to the generated fragment, and a region of a survived fragment among newly inputted fragments A frame buffer that stores masks, depth values, and color values; It is composed of an RUF buffer that stores the area mask, object tag, and color value of the survived fragment in the segment.

여기서, 상기 생성된 프레그먼트는 픽셀의 어떠한 부분을 커버하고 있는지를 나타내는 영역마스크와, 프레그먼트의 색상 값과, 프레그먼트가 차지하고 있는 서브픽셀 별 깊이 값과, 그리고 RUF 버퍼에서 프레그먼트를 병합할 때 플래그로 사용하는 오브젝트 태그(ObjTag)를 포함하여 구성됨이 바람직하다.Here, the generated fragment includes an area mask indicating which part of the pixel is covered, the color value of the fragment, the depth value of each subpixel occupied by the fragment, and the fragment in the RUF buffer. It is preferable to include an object tag (ObjTag) used as a flag when merging the merge.

상기와 같은 목적을 달성하기 위한 본 발명에 따른 안티알리아싱 방법의 특징은 새로 입력된 프레그먼트와 프레임 버퍼에 저장된 프레그먼트의 각 서브픽셀별 깊이 값을 비교하여 중복되는 영역 중 깊이 값이 큰 프레그먼트 영역을 은면 제거하고 깊이 값이 작은 프레그먼트 영역인 서바이브드 프레그먼트 영역을 구하여 새로운 영역마스크를 검출하는 단계와, 상기 새로 입력된 프레그먼트 중 서바이브드 프레그먼트의 영역마스크, 깊이 값, 그리고 색상 값을 프레임 버퍼에 갱신하고, 상기 프레임 버퍼에 저장되었던 프레그먼트 중 서바이브드 프레그먼트의 영역 마스크, 오브젝트 태그 그리고 색상 값을 RUF 버퍼에 저장하는 단계와, 상기 RUF 버퍼에 저장된 오브젝트 태그와 상기 RUF 버퍼에 이전 저장되었던 프레그먼트의 오브젝트 태그를 비교하는 단계와, 상기 비교 결과, 그 값이 같으면, 두 프레그먼트의 영역마스크를 서로 OR 비트 연산을 수행하고, 각각이 차지하는 영역의 색상 값 및 영역마스크를 계산한 후 RUF 버퍼에 저장하는 단계와, 상기 비교 결과, 그 값이 다르면, 상기 프레임 버퍼에 저장되었던 프레그먼트 중 서바이브드 프레그먼트의 영역 마스크, 오브젝트 태그 그리고 색상 값으로 RUF 버퍼를 갱신하는 단계와, 상기 프레임 버퍼에 저장된 색상 값 및 깊이 값을 합성하여 디스플레이하는 단계를 포함하여 이루어지는데 있다.A feature of the antialiasing method according to the present invention for achieving the above object is to compare the depth value of each subpixel of the newly stored fragment and the fragment stored in the frame buffer, the depth value of the overlapping area is large Masking the fragment region and obtaining a survived fragment region, which is a fragment region having a small depth value, detecting a new region mask, and detecting a new region mask of the newly input fragment. Updating an area mask, a depth value, and a color value in a frame buffer, and storing an area mask, an object tag, and a color value of a survived fragment among the fragments stored in the frame buffer in an RUF buffer; Comparing an object tag stored in the RUF buffer with an object tag of a fragment previously stored in the RUF buffer And if the value is the same, performing OR bit operations on the area masks of the two fragments, calculating the color values and the area masks of the areas occupied by each other, and storing the area masks in the RUF buffer. As a result of the comparison, if the values are different, updating the RUF buffer with an area mask, an object tag, and a color value of a survived fragment among the fragments stored in the frame buffer, the color value stored in the frame buffer and Synthesizing and displaying the depth values.

여기서, 상기 프레임 버퍼에 갱신되는 영역마스크는 프레임버퍼에 저장되어 있는 영역마스크와 상기 새로 검출된 서바이브드 프레그먼트의 영역마스크를 OR 비트 연산을 통해 계산함이 바람직하다.The area mask updated in the frame buffer may be calculated by calculating an area mask stored in a frame buffer and an area mask of the newly detected surviving fragment through an OR bit operation.

상기 프레임 버퍼에 갱신되는 색상 값The color value to be updated in the frame buffer silver

또는 or

식을 이용하여 계산하는 것이 바람직하다. It is preferable to calculate using an equation.

상기 RUF 버퍼에 저장하는 단계에서 영역마스크() 및 색상 값()의 계산은와,In the step of storing in the RUF buffer area mask ( ) And color values ( ) Calculation Wow,

로 계산되는 것이 바람직하다. It is preferable to calculate.

상기 프레그먼트는 다수개의 샘플링 포인트를 가지는 것이 바람직하다.Preferably, the fragment has a plurality of sampling points.

본 발명의 다른 목적, 특성 및 잇점들은 첨부한 도면을 참조한 실시예들의 상세한 설명을 통해 명백해질 것이다.Other objects, features and advantages of the present invention will become apparent from the following detailed description of embodiments taken in conjunction with the accompanying drawings.

본 발명에 따른 안티알리아싱 방법 및 장치의 바람직한 실시예에 대하여 첨부한 도면을 참조하여 설명하면 다음과 같다.A preferred embodiment of an antialiasing method and apparatus according to the present invention will be described with reference to the accompanying drawings.

기본적으로 프레그먼트 구조가 A-버퍼 알고리즘에 기반을 두고 있으며, 본 발명에 따른 3차원 컴퓨터 그래픽 시스템은 도 2에서 나타내고 있다.Basically, the fragment structure is based on the A-buffer algorithm, and the three-dimensional computer graphics system according to the present invention is shown in FIG.

도 2와 같이 3차원 컴퓨터 그래픽 시스템은 크게, API(100), 3차원 그래픽 가속기(200) 그리고 디스플레이부(300)로 구성된다.As shown in FIG. 2, the 3D computer graphics system is largely composed of an API 100, a 3D graphics accelerator 200, and a display unit 300.

그리고 상기 3차원 그래픽 가속기(200)는 API(100)를 통해 전달된 3차원 모델 데이터를 회전, 좌표 변화 그리고 크기 변환 등을 수행하는 기하학 처리부(210)와, 상기 기하학 처리부(210)에서 산출된 3차원 데이터에서 프레그먼트를 생성하고, 이미지 맵핑을 통해 최종 픽셀의 색상 값과 깊이 값을 저장하는 렌더링 처리부(220)로 구성된다.In addition, the 3D graphics accelerator 200 is a geometric processing unit 210 for performing rotation, coordinate change and size conversion, etc. 3D model data transmitted through the API 100, and calculated by the geometric processing unit 210 The rendering processor 220 generates a fragment from three-dimensional data and stores a color value and a depth value of the final pixel through image mapping.

이때, 상기 렌더링 처리부(220)는 레스터라이저부(221)를 통해 상기 기하학 처리부(210) 과정을 거친 3차원 데이터에 대해 2차원 화면좌표로 변환을 수행하고, 3차원 모델을 이루는 폴리곤 데이터에 대한 프레그먼트를 생성하고, 영상 생성부(222)를 통해 상기 생성된 프레그먼트에 대해 은면제거와 실감 영상을 위한 이미지 맵핑 과정을 수행한 후, 그 결과를 프레임 버퍼(223)에 저장하고 이전 프레그먼트의 정보를 RUF 버퍼(224)에 저장한다.In this case, the rendering processor 220 converts the 3D data that has undergone the process of the geometry processor 210 into the 2D screen coordinates through the rasterizer 221, and converts the polygon data that forms the 3D model into the 2D screen coordinates. After generating a fragment and performing the image mapping process for the mask removal and the sensory image on the generated fragment through the image generator 222, the result is stored in the frame buffer 223 and transferred. The fragment information is stored in the RUF buffer 224.

이때, 상기 프레임 버퍼(223)는 픽셀의 색상 값을 저장하는 색상 버퍼와 픽셀의 깊이 값을 저장하는 깊이 버퍼로 구성된다.In this case, the frame buffer 223 includes a color buffer for storing the color value of the pixel and a depth buffer for storing the depth value of the pixel.

그리고 RUF 버퍼(224)는 렌더링 과정 중 은면제거를 통과한 프레그먼트 부분, 즉 가장 최근에 색상 버퍼의 색상 값 계산에 사용된 프레그먼트 부분에 대한 오브젝트 태그, 색상 값, 그리고 영역 마스크를 저장한다.The RUF buffer 224 stores an object tag, a color value, and an area mask for the fragment portion that passes the mask removal during the rendering process, that is, the fragment portion most recently used to calculate the color value of the color buffer. do.

이어, 상기 디스플레이부(300)는 상기 레스터라이저부(221)에서 생성된 모든 프레그먼트에 대해 위 과정이 끝나면, 상기 프레임 버퍼(223)에 저장된 색상 값을 화면에 출력된다.Subsequently, when the above process is completed for all fragments generated by the rasterizer 221, the display unit 300 outputs the color values stored in the frame buffer 223 to the screen.

도 3 은 8산개 샘플링 포인트를 가지는 경우의 샘플링 포인트와 프레그먼트의 데이터 구조를 보여주고 있다.3 shows a data structure of a sampling point and a fragment in the case of having eight sampling points.

도 3과 같이, 프레그먼트는 픽셀의 어떠한 부분을 커버하고 있는지를 나타내는 영역마스크(m), 프레그먼트의 색상 값(C), 프레그먼트가 차지하고 있는 서브픽셀 별 깊이 값(Z1...Zm), 그리고 RUF 버퍼에서 프레그먼트를 병합할 때 플래그로 사용하는 오브젝트 태그(ObjTag)로 표현된다.As shown in FIG. 3, the fragment includes an area mask (m) indicating which part of the pixel is covered, a color value (C) of the fragment, and a depth value (Z 1.) For each subpixel occupied by the fragment. ..Z m ), and an object tag (ObjTag) that is used as a flag when merging fragments in the RUF buffer.

상기 오브젝트 태그는 3차원 모델 오브젝트가 가지는 유일한 값이며, 모델링 소프트웨어와의 연동을 통해 렌더링 하드웨어에서 순차적으로 생성된다. 만약, 서로 다른 두 프레그먼트가 같은 오브젝트 태그를 가진다면, 두 프레그먼트는 같은 오브젝트 폴리곤에서 생성되었음을 의미하며, 이러한 프레그먼트들이 같은 오브젝트 태그를 가지는 경우, 프레그먼트들은 RUF 기록과정에서 병합된다.The object tag is a unique value of the 3D model object, and is sequentially generated in the rendering hardware through linkage with modeling software. If two different fragments have the same object tag, it means that the two fragments were created in the same object polygon. If these fragments have the same object tag, the fragments are generated during RUF writing. Are merged.

그리고 상기 영역마스크는 m 비트로 표현되며, 도 3에서와 같이 8산개(sparse)의 샘플링 포인트를 가지면 영역마스크는 8비트로 표현된다.In addition, the area mask is represented by m bits, and as shown in FIG. 3, the area mask is represented by 8 bits as shown in FIG. 3.

또 상기 색상 값 C와, 깊이 값 Z는 각각 32비트로 표현되고, 상기 오브젝트 태그는 16비트로 표현된다.The color value C and the depth value Z are each represented by 32 bits, and the object tag is represented by 16 bits.

도 4 는 본 발명에 따른 안티알리아싱을 위한 렌더링 파이프라인의 개략적인 도면으로, 도 4에서 나타내는 것과 같이 은면제거 검사, 프레임버퍼 저장과 색상 값 결정, 그리고 RUF 버퍼 기록의 3단계의 파이프라인 과정을 통해 렌더링을 수행한다.FIG. 4 is a schematic diagram of a rendering pipeline for antialiasing according to the present invention. As shown in FIG. 4, a three-stage pipeline process of mask removal inspection, framebuffer storage and color value determination, and RUF buffer recording is performed. Perform rendering through

먼저, 설명을 용이하게 하기 위해 렌더링 파이프라인에 새로 들어온 프레그먼트, 프레임에 저장된 프레그먼트, 그리고 RUF 버퍼에 기록되어 있는 프레그먼트의 속성 정보에 대해 각각 if, ff, 그리고 RUF를 아래첨자로 사용하여 표현한다.First, for ease of explanation, if, ff, and RUF are subscripted for the new fragments in the rendering pipeline, the fragments stored in frames, and the property information of the fragments recorded in the RUF buffer. Express by using

예를 들어, Mif, Cff, CRUF는 각각 렌더링 파이프라인에 새로 들어온 프레그먼트의 영역마스크, 프레임버퍼 안에 기록된 색상 값, 그리고 RUF 버퍼에 기록된 프레그먼트의 색상 값을 의미한다.For example, M if , C ff , and C RUF refer to the region mask of the new fragments in the rendering pipeline, the color values written into the framebuffer, and the color values of the fragments written to the RUF buffer, respectively. .

첫 번째 단계로, 상기 은면제거 검사 과정(111)은 새로 들어온 프레그먼트와 프레임 버퍼(223)에 저장된 프레그먼트의 각 서브픽셀 별 깊이 값 비교를 수행한다. 그리고 중복되는 영역에서 깊이 값이 큰 프레그먼트의 영역은 제거하고, 깊이 값이 작은 프레그먼트의 영역만을 저장한다. 이는, 기존의 Z-버퍼 기법과 같다.In the first step, the mask removing inspection process 111 compares a depth value for each subpixel of a new fragment and a fragment stored in the frame buffer 223. The region of the fragment having a large depth value is removed from the overlapping region, and only the region of the fragment having a small depth value is stored. This is the same as the existing Z-buffer technique.

상기 깊이 값 비교를 통해 은면제거 검사를 통과한 프레그먼트 부분을 "서바이브드 프레그먼트(아래첨자 sur)"라 명칭하고, 이 부분이 가지는 서브픽셀에 대한 영역마스크 Msur는 다음 수학식 1을 통해 구할 수 있다.The fragment portion that has passed the mask removal inspection through the depth value comparison is referred to as "survived fragment (subscript sur)", and the region mask M sur for the subpixel of the portion is expressed by the following equation. Obtained through 1.

상기 수학식 1에서, 아래첨자 i는 샘플링 포인트의 위치, 즉 각 서브픽셀의 위치를 나타낸다.In Equation 1, the subscript i indicates the position of the sampling point, that is, the position of each subpixel.

두 번째 단계로 상기 프레임 버퍼 저장 및 색상 값 결정 과정(112)이다.The second step is the frame buffer storage and color value determination process 112.

상기 은면제거 과정에서 구해진 서바이브드 프레그먼트는 렌더링 파이프라인에 새로 들어온 프레그먼트 중 사용자에게 보이는 부분이다. 따라서 이 부분의 영역마스크, 깊이 값, 그리고 색상 값은 프레임 버퍼(223)에 추가되어야 한다.The survived fragment obtained during the mask removal process is a visible portion of the fragment newly entered into the rendering pipeline. Therefore, the area mask, depth value, and color value of this part should be added to the frame buffer 223.

그리고 상기 구해진 새로운 영역마스크는 프레임버퍼(223)에 저장된 영역마스크(Mff)와 서바이브드 프레그먼트의 영역마스크(Msur)를 OR 비트 연산자로 계산되며, 서바이브드 프레그먼트의 서브픽셀이 가지는 깊이 값으로 프레임버퍼(223)를 갱신한다.The obtained new area mask is calculated by OR bit operator of the area mask M ff stored in the frame buffer 223 and the area mask M sur of the survived fragment, and the sub-section of the survived fragment. The frame buffer 223 is updated to a depth value of the pixel.

색상 값 결정 과정은 서바이브드 프레그먼트의 색상 값을 색상 버퍼(122)에 더하며, 서바이브드 프레그먼트에 의해 은면 제거되는 부분, 즉 가려지는 부분의 색상 값을 상기 색상 버퍼(122)에서 제거한다.The color value determination process adds the color value of the survived fragment to the color buffer 122 and the color value of the portion that is removed by the surviving fragment, that is, the part that is masked, by the color buffer 122. Remove from).

도 5 는 일반적으로 렌더링 과정 중에 발생할 수 있는 프레그먼트들의 상호관계를 나타낸 도면이다.5 is a diagram illustrating an interrelationship of fragments that may generally occur during a rendering process.

도 5(a)(b)는 하나의 프레그먼트가 다른 프레그먼트의 전부 혹은 일부를 가리는 경우이며, 도 5(c)(d)는 프레그먼트들이 서로 관통하는 경우이다.5 (a) and (b) shows a case in which one fragment covers all or part of another fragment, and FIG. 5 (c) and (d) shows a case in which the fragments penetrate each other.

앞에서 언급한 것처럼 RUF 버퍼(224)는 가장 최근에 프레임버퍼(223)의 색상 값에 영향을 준 서바이브드 프레그먼트의 정보를 저장하며, 이 프레그먼트는 가려지는 부분의 색상 값을 구하기 위해서 재 사용된다.As mentioned earlier, the RUF buffer 224 stores the information of the surviving fragments that most recently affected the color value of the frame buffer 223, and the fragment obtains the color value of the hidden part. To be used again.

도 5(a)(b)(c)의 경우 렌더링 파이프라인에 들어오는 프레그먼트 순서를 고려하면, RUF 버퍼에 저장된 프레그먼트는 Fa이며, 이 값을 참조하여 프레그먼트 Fb에 의해 은면제거 되는 부분, Fab의 색상 값을 알 수 있다.5 (a) (b) (c), considering the order of fragments entering the rendering pipeline, the fragment stored in the RUF buffer is F a , which is determined by fragment F b with reference to this value. You can see the color value of the mask removed, F ab .

이러한 경우, 색상 값은 수학식 2를 이용하여 계산할 수 있다.In this case, the color value may be calculated using Equation 2.

즉, 현재의 색상 버퍼(122)에 프레그먼트 Fb의 서바이브드 부분의 영역 마스크로 가중치를 계산한 색상 값을 더하고, RUF 버퍼(224)를 참조하여 프레그먼트 Fa의 가려지는 부분, Fab이 색상 값에 기여했던 만큼을 제거한다.In other words, a color value obtained by weighting the area mask of the survived portion of the fragment F b is added to the current color buffer 122, and the portion of the fragment F a is hidden with reference to the RUF buffer 224. , F ab Remove as much as contributed to the color value.

상기 수학식 2에서, 함수 N( )은 영역마스크에서 비트가 1인 개수를 리턴한다. 또한, Tm은 영역마스크의 비트 수이다. 즉, 픽셀 당 샘플링 포인트 수이다.In Equation 2, the function N () returns the number of bits of 1 in the area mask. T m is the number of bits of the area mask. That is, the number of sampling points per pixel.

하지만, 도 5(d)의 경우, 프레그먼트 Fc에 의해 가려지는 부분 중 일부, 예를 들어 Fca는 RUF 버퍼(224)를 참조하여 정확하게 계산할 수 없다.However, in FIG. 5 (d), some of the parts covered by the fragment F c , for example F ca , cannot be accurately calculated with reference to the RUF buffer 224.

왜냐하면, 현재 RUF 버퍼(224)는 Fb의 정보만을 가지고 있고, 프레임 버퍼(223)에는 Fa의 정보만을 가지고 있다.This is because the current RUF buffer 224 only has information of F b , and the frame buffer 223 has only information of F a .

따라서 이런 경우, 이 Fca부분에 대해 수학식 3을 이용하여 계산한다.Therefore, in this case, the F ca portion is calculated using Equation 3.

즉, Fca부분에 대해 현재의 색상 버퍼에서 그것이 차지하는 만큼의 영역 가중치를 준 색상 값을 제거하여 보정한다.In other words, the F ca part is corrected by removing color values given the area weights of the current color buffer.

본 발명에 따른 안티알리아싱 방법을 도면을 참조한 실시예를 통해 상세히 설명하면 다음과 같다.The antialiasing method according to the present invention will be described in detail with reference to the embodiments with reference to the drawings.

도 6 는 프레그먼트의 도착순서와 상호관계에 따른 색상 값 결정의 실시예를 나타낸 도면이다.6 is a view showing an embodiment of determining the color value according to the arrival order and correlation of the fragment.

도 6을 보면, 프레그먼트 A, B, C는 모두 서로 다른 오브젝트의 일부분이며, 상기 프레그먼트들이 렌더링 파이프라인에 도착하는 순서는 프레그먼트 A->B->C이다. 이때, 각 프레그먼트들은 일부분이 서로 중첩되거나 교차된다.6, fragments A, B, and C are all part of different objects, and the order in which the fragments arrive in the rendering pipeline is fragments A-> B-> C. In this case, the fragments overlap or cross each other.

먼저, 프레그먼트 A와 B가 도착했을 때 색상 값, CAB는 다음 수학식 4와 같다. 다음 수학식 4에서 CΦ는 초기상태를 의미한다.First, when fragments A and B arrive, the color value, C AB, is represented by Equation 4 below. In Equation 4, C Φ means an initial state.

이 과정을 수행하고 나서, 프레임 버퍼(223)에는 프레그먼트 A의 색상 값과 깊이 값을 저장하고, RUF 버퍼(224)에는 프레그먼트 B의 영역마스크, 색상 값, 오브젝트 태그가 저장된다.After performing this process, the frame buffer 223 stores the color value and the depth value of the fragment A, and the area mask, the color value, and the object tag of the fragment B are stored in the RUF buffer 224.

이어, 프레그먼트 C가 도착하는 경우, 도 5(a)(b)의 두 가지 경우를 생각할 수 있다.Subsequently, when fragment C arrives, two cases of Fig. 5 (a) (b) can be considered.

도 5(a)의 경우와 같이, 프레그먼트 B의 깊이 값이 프레그먼트 A의 깊이 값보다 모든 영역에서 더 낮으면, RUF 버퍼(224)에는 전체 픽셀에 해당하는 부분의 프레그먼트 B의 색상 값과 깊이 값을 저장하게 된다.As in the case of FIG. 5A, if the depth value of fragment B is lower in all regions than the depth value of fragment A, fragment R of the portion corresponding to all pixels is included in RUF buffer 224. It will store the color value and depth value of.

따라서, RUF 버퍼(224)에 저장된 프레그먼트 B의 정보와 입력되는 프레그먼트 C의 정보를 이용하여 상기 수학식 2를 사용하여 다음 수학식 5와 같이 픽셀의 색상 값을 구할 수 있다.Therefore, using the information of the fragment B stored in the RUF buffer 224 and the information of the input fragment C, the color value of the pixel can be obtained using Equation 2 as shown in Equation 5 below.

하지만, 도 5(b)와 같이 프레그먼트 A와 B는 교차하지 않았지만 프레그먼트A의 일부분만이 은면제거되는 경우는, RUF 버퍼(224)에는 기존에 저장하고 있는 Fa부분에 따른 정보는 지워지고, Fb에 따른 정보만을 저장하게 된다.However, when fragments A and B do not intersect but only a portion of fragment A is removed as shown in FIG. 5 (b), the information according to the portion of F a previously stored in the RUF buffer 224 is removed. Is cleared and only stores information based on F b .

따라서, 프레그먼트 A의 Faa부분에 따른 정보를 알 수 없게되므로 수학식 3을 이용하여 색상 값을 계산하게 되면,의 색상 에러가 발생하게 된다.Therefore, since the information according to the F aa portion of the fragment A is not known, when the color value is calculated using Equation 3, Will cause a color error.

상기 색상 에러는 마지막인 세 번째 단계인 RUF 버퍼 기록 과정(113)에서 방지할 수 있다.The color error can be prevented in the final third step, the RUF buffer write process 113.

세 번째 단계인 RUF 버퍼 기록과정을 보면, 일반적으로 한 오브젝트를 이루는 폴리곤은 같은 평면 공간(coplanar space)에 존재하며, 서로 이웃하는 폴리곤은 경계선 부근의 픽셀을 서로 공유하는 프레그먼트들을 생성한다.In the third step of the RUF buffer writing process, polygons forming an object generally exist in the same coplanar space, and neighboring polygons generate fragments that share pixels near a boundary line.

또한, 이 프레그먼트들은 서로 배타적(exclusive)이므로, 병합하여 하나의 프레그먼트로 취급할 수 있다.In addition, since these fragments are exclusive to each other, they can be merged and treated as one fragment.

수학식 2와 수학식 3에서 살펴보듯이, RUF 버퍼(224)에 저장된 프레그먼트 부분이 픽셀에서 넓은 영역을 차지할수록 가려지는 부분에 대한 색상 값 정보를 제공할 수 있는 부분이 넓어지며, 이것은 색상 값 결정 과정에서 에러를 최소화할 수 있는 기회를 제공한다.As shown in Equation 2 and Equation 3, as the fragment portion stored in the RUF buffer 224 occupies a large area in the pixel, the portion that can provide color value information about the hidden portion becomes wider. This provides an opportunity to minimize errors in determining color values.

따라서, 다음 수학식 6을 사용하여 RUF 버퍼(224)에서 두 프레그먼트를 병합한다.Thus, the following equation 6 is used to merge the two fragments in the RUF buffer 224.

이와 같이, 서바이브드 부분과 RUF 버퍼(224)에 저장되어 있는 프레그먼트를 병합하기 위해서, 두 프레그먼트의 오브젝트 태그를 비교한다.In this way, the object tags of the two fragments are compared to merge the fragments stored in the survived portion and the RUF buffer 224.

그리고 상기 비교결과, 그 값이 서로 같으면, 같은 오브젝트의 폴리곤에서 생성된 프레그먼트이므로 두 프레그먼트의 영역마스크를 서로 OR 비트 연산을 수행하고, 각각이 차지하는 영역을 가중치 값을 사용하여 색상 값을 계산한 후 저장한다.As a result of the comparison, if the values are equal to each other, the fragments are generated from polygons of the same object, and thus OR bit operations are performed on the region masks of the two fragments, and the color values of the regions occupied by using the weight value Calculate and save.

상기 비교결과, 오브젝트 태그가 다르면, RUF 버퍼(224)를 서바이브드 부분이 가지는 영역마스크, 오브젝트 태그, 그리고 색상 값으로 RUF 버퍼(224)를 갱신한다.As a result of the comparison, if the object tag is different, the RUF buffer 224 is updated with an area mask, an object tag, and a color value of the surviving portion.

그리고 모든 프레그먼트에 대한 렌더링 과정이 끝나면, 프레임 버퍼(223)에 저장된 색상 값을 디스플레이부(300)로 보내어 영상을 출력한다.When the rendering process for all fragments is finished, the color value stored in the frame buffer 223 is sent to the display unit 300 to output an image.

본 방식과 기존 슈퍼샘플링 방식을 통해 얻어진 최종 영상과의 비교 실험을 통해 본 방식의 효과를 명확히 나타내면 다음과 같다.The effect of this method is clearly shown through the comparison experiment with the final image obtained through this method and the existing supersampling method.

표 1은 실험에 사용된 3차원 모델 데이터들을 나타내고 있으며, 도 7은 표 1에서 나타내고 있는 3차원 모델 데이터들의 각 샘플링 방식에 따른 평균 색상 오차를 나타낸 도면이다.Table 1 shows three-dimensional model data used in the experiment, Figure 7 is a view showing the average color error according to each sampling method of the three-dimensional model data shown in Table 1.

모델명model name 버텍스 수Vertex count 삼각형 수Triangle number 프레그먼트 수Number of fragments 오브젝트 수Number of objects AlAl 36183618 71247124 1197511975 3535 CastleCastle 66206620 1311413114 1744417444 1616 DolphinsDolphins 885885 16921692 45704570 33 PigPig 35223522 70407040 74997499 33 Pose+vasePose + vase 40284028 33603360 54255425 55 TeapotTeapot 36443644 63206320 68076807 1One VenusVenus 711711 14181418 54645464 1One

도 7에서 나타내고 있는 것과 같이, 샘플링 포인트가 많은 경우에 더 좋은 화질을 나타내며, 같은 샘플링 포인트 수를 가지는 제안된 방식이 8산개 슈퍼샘플링과 거의 비슷한 수준의 영상을 나타내는 것을 알 수 있다.As shown in FIG. 7, it can be seen that the proposed method exhibits better image quality when there are a large number of sampling points, and that the proposed method having the same number of sampling points shows an image almost similar to that of eight supersampling.

표 2 는 8산개(sparse) 샘플링 포인트를 가지는 본 방식과 슈퍼샘플링의 픽셀 당 필요한 메모리 크기와 평균 색상 에러를 나타낸다.Table 2 shows the memory size and average color error required per pixel of this method and supersampling with eight-sparse sampling points.

표 2에서 알 수 있듯이, 제안된 방식의 에러 증가율이 1.3%인 데 반해 메모리 크기는 약 31% 감소하는 것을 알 수 있다. 이것은 본 방식이 같은 샘플링 포인트를 가지는 슈퍼샘플링에 비해 색상 에러를 최소화하며, 요구되는 메모리 크기를 줄일 수 있는 좋은 방법임을 나타낸다.As can be seen from Table 2, the error increase rate of the proposed method is 1.3%, while the memory size decreases by about 31%. This represents a good way to minimize color errors and reduce the required memory size compared to supersampling with the same sampling point.

8ss8ss 본 발명The present invention 증감비율Change ratio 평균색상에러Average color error 13382501338250 13361541336154 -1.3%-1.3% 픽셀당 요구되는 메모리 크기Memory size required per pixel 64 바이트64 bytes 44 바이트44 bytes +31.3%+ 31.3%

표 3 은 샘플링 포인트가 증가함에 따른 슈퍼샘플링 방식과 제안된 방식에서 픽셀당 필요한 메모리의 크기를 나타내고 있다.Table 3 shows the size of memory required per pixel in the supersampling method and the proposed method as the sampling point increases.

표 3에서 보는 것과 같이, 샘플링 포인트가 늘어날수록 제안된 방식의 메모리 절감 효과가 커짐을 알 수 있다.As shown in Table 3, it can be seen that as the sampling points increase, the memory saving effect of the proposed method increases.

샘플링 포인트 수Number of sampling points 슈퍼샘플링Supersampling 본 발명The present invention 감소비율Reduction ratio 요구되는 메모리 크기(바이트)Memory size required (bytes) 44 3232 2727 16%16% 88 6464 4444 31%31% 1616 128128 7878 39%39% 6464 512512 282282 45%45%

표 4 는 각 실험 데이터 셋에 대해 임의의 특정 영상을 생성하기 위해 요구되는 메모리 대역폭을 계산한 결과를 나타내고 있다.Table 4 shows the results of calculating the memory bandwidth required to generate any particular image for each experimental data set.

표 4에서 알 수 있듯이, 프레그먼트가 가지는 서브픽셀의 수가 많을수록 메모리 대역폭 절약 효과가 커지는 것을 알 수 있다. 그 이유는 슈퍼샘플링과 달리, 제안된 방식에서 프레그먼트를 표현하기 위해 추가되는 오브젝트 태그, 영역마스크 등에 대한 오버헤드는 프레그먼트가 가지는 서브픽셀의 수가 증가할수록 줄어들기 때문이다.As can be seen from Table 4, it can be seen that the larger the number of subpixels of a fragment, the greater the memory bandwidth saving effect. This is because, unlike supersampling, the overhead for object tags, area masks, etc., added to represent fragments in the proposed scheme decreases as the number of subpixels of the fragment increases.

모델명model name 8ss8ss 본 발명The present invention 감소비율Reduction ratio 프레그먼트 당 평균 서브픽셀 수Average number of subpixels per fragment 메모리 대역폭(바이트)Memory Bandwidth (Bytes) AlAl 518512518512 456654456654 11.9%11.9% 2.92.9 CastleCastle 614394614394 574144574144 6.5%6.5% 2.82.8 DolphinsDolphins 229144229144 194176194176 15.3%15.3% 3.23.2 PigPig 301489301489 279204279204 7.4%7.4% 2.72.7 Pose+vasePose + vase 173760173760 163487163487 5.9%5.9% 2.62.6 TeapotTeapot 281472281472 260347260347 7.5%7.5% 2.72.7 VenusVenus 338332338332 268950268950 23.5%23.5% 3.93.9

이상에서 설명한 바와 같은 본 발명에 따른 안티알리아싱 방법 및 장치는 슈퍼샘플링과 비교하여 거의 비슷한 수준의 안티알리아스된 고화질 영상을 제공하면서, 메모리 크기와 메모리 대역폭을 효과적으로 절약할 수 있다. 더욱이, 샘플링 포인트가 늘어날수록 상대적으로 그 효과는 더욱 늘어난다.As described above, the anti-aliasing method and apparatus according to the present invention can effectively save memory size and memory bandwidth while providing a high-quality antialiased image at a level comparable to that of supersampling. Moreover, as the sampling point increases, the effect increases relatively.

그리고 본 발명에 따른 장치는 비교적 간단한 하드웨어의 추가로 구현될 수 있으며, 또한 기존의 렌더링 시스템에서 사용하는 대표적인 은면제거 기법인 z-버퍼 알고리즘을 기본으로 사용하기 때문에 기존의 시스템에 쉽게 융합할 수 있다.In addition, the apparatus according to the present invention can be implemented by the addition of relatively simple hardware, and can also be easily integrated into the existing system because it uses the z-buffer algorithm, which is a representative mask removal technique used in the existing rendering system. .

이상 설명한 내용을 통해 당업자라면 본 발명의 기술 사상을 이탈하지 아니하는 범위에서 다양한 변경 및 수정이 가능함을 알 수 있을 것이다.Those skilled in the art will appreciate that various changes and modifications can be made without departing from the spirit of the present invention.

따라서, 본 발명의 기술적 범위는 실시예에 기재된 내용으로 한정되는 것이 아니라 특허 청구의 범위에 의하여 정해져야 한다.Therefore, the technical scope of the present invention should not be limited to the contents described in the embodiments, but should be defined by the claims.

Claims (8)

API, 3차원 그래픽 가속기 그리고 디스플레이부로 구성되는 3차원 컴퓨터 시스템에 있어서,In a three-dimensional computer system consisting of an API, a three-dimensional graphics accelerator and a display unit, 상기 3차원 그래픽 가속기는 상기 API를 통해 전달된 3차원 모델 데이터를 회전, 좌표 변화 그리고 크기 변환 등을 수행하는 기하학 처리부와,The 3D graphics accelerator is a geometry processing unit for rotating, coordinate change and size conversion of the 3D model data transmitted through the API; 상기 기하학 처리부에서 출력되는 3차원 데이터에 대해 2차원 화면좌표로 변환을 수행하고, 3차원 모델을 이루는 폴리곤 데이터에 대한 프레그먼트를 생성하는 레스터라이저부와,A rasterizer unit for converting 3D data output from the geometry processor into 2D screen coordinates and generating fragments for polygon data forming a 3D model; 상기 생성된 프레그먼트에 대해 은면제거와 실감 영상을 위한 이미지 맵핑 과정을 수행하는 영상 생성부와,An image generator which performs an image mapping process for removing the mask surface and the sensory image on the generated fragments; 새로 입력된 프레그먼트 중 서바이브드 프레그먼트의 영역마스크, 깊이 값, 그리고 색상 값을 저장하는 프레임 버퍼와,A frame buffer that stores the area mask, depth value, and color value of the survived fragment among the newly entered fragments; 상기 프레임 버퍼에 저장되었던 프레그먼트 중 서바이브드 프레그먼트의 영역 마스크, 오브젝트 태그 그리고 색상 값을 저장하는 RUF 버퍼를 포함하여 구성되는 것을 특징으로 하는 안티알리아싱 장치.And an RUF buffer configured to store an area mask, an object tag, and a color value of a survived fragment among the fragments stored in the frame buffer. 제 1 항에 있어서,The method of claim 1, 상기 프레임 버퍼는 픽셀의 색상 값을 저장하는 색상 버퍼와 픽셀의 깊이 값을 저장하는 깊이 버퍼를 포함하여 구성되는 것을 특징으로 하는 안티알리아싱 장치.The frame buffer is configured to include a color buffer for storing the color value of the pixel and a depth buffer for storing the depth value of the pixel. 제 1 항에 있어서,The method of claim 1, 상기 생성된 프레그먼트는 픽셀의 어떠한 부분을 커버하고 있는지를 나타내는 영역마스크와, 프레그먼트의 색상 값과, 프레그먼트가 차지하고 있는 서브픽셀 별 깊이 값과, 그리고 RUF 버퍼에서 프레그먼트를 병합할 때 플래그로 사용하는 오브젝트 태그(ObjTag)를 포함하여 구성되는 것을 특징으로 하는 안티알리아싱 장치.The generated fragment includes an area mask indicating which part of the pixel is covered, a color value of the fragment, a depth value for each subpixel occupied by the fragment, and a fragment in the RUF buffer. Anti-aliasing device comprising an object tag (ObjTag) used as a flag when merging. 새로 입력된 프레그먼트와 프레임 버퍼에 저장된 프레그먼트의 각 서브픽셀별 깊이 값을 비교하여 중복되는 영역 중 깊이 값이 큰 프레그먼트 영역을 은면 제거하고 깊이 값이 작은 프레그먼트 영역인 서바이브드 프레그먼트 영역을 구하여 새로운 영역마스크를 검출하는 단계와,Compares the newly entered fragment with the depth value of each subpixel of the fragment stored in the frame buffer, and removes the fragment area with the larger depth value from the overlapping area and removes the fragment area with the smaller depth value. Detecting a new region mask by obtaining a vibes fragment region; 상기 새로 입력된 프레그먼트 중 서바이브드 프레그먼트의 영역마스크, 깊이 값, 그리고 색상 값을 프레임 버퍼에 갱신하고, 상기 프레임 버퍼에 저장되었던 프레그먼트 중 서바이브드 프레그먼트의 영역 마스크, 오브젝트 태그 그리고 색상 값을 RUF 버퍼에 저장하는 단계와,The region mask, depth value, and color value of the survived fragment among the newly input fragments are updated in the frame buffer, and the region mask of the survived fragment among the fragments stored in the frame buffer. Storing the object tag and color values in the RUF buffer, 상기 RUF 버퍼에 저장된 오브젝트 태그와 상기 RUF 버퍼에 이전 저장되었던 프레그먼트의 오브젝트 태그를 비교하는 단계와,Comparing an object tag stored in the RUF buffer with an object tag of a fragment previously stored in the RUF buffer; 상기 비교 결과, 그 값이 같으면, 두 프레그먼트의 영역마스크를 서로 OR 비트 연산을 수행하고, 각각이 차지하는 영역의 색상 값 및 영역마스크를 계산한 후RUF 버퍼에 저장하는 단계와,As a result of the comparison, if the values are the same, performing OR bit operations on the area masks of the two fragments, calculating the color values and the area masks of the areas occupied by each other, and storing the area masks in the RUF buffer; 상기 비교 결과, 그 값이 다르면, 상기 프레임 버퍼에 저장되었던 프레그먼트 중 서바이브드 프레그먼트의 영역 마스크, 오브젝트 태그 그리고 색상 값으로 RUF 버퍼를 갱신하는 단계와,If the value is different, updating the RUF buffer with an area mask, an object tag, and a color value of a survived fragment among the fragments stored in the frame buffer; 상기 프레임 버퍼에 저장된 색상 값 및 깊이 값을 합성하여 디스플레이하는 단계를 포함하여 이루어지는 것을 특징으로 하는 안티알리아싱 방법.And synthesizing and displaying the color value and the depth value stored in the frame buffer. 제 4 항에 있어서,The method of claim 4, wherein 상기 프레임 버퍼에 갱신되는 영역마스크는 프레임버퍼에 저장되어 있는 영역마스크와 상기 새로 검출된 서바이브드 프레그먼트의 영역마스크를 OR 비트 연산을 통해 계산하는 것을 특징으로 하는 안티알리아싱 방법.The area mask updated in the frame buffer is calculated by calculating an area mask stored in a frame buffer and an area mask of the newly detected survived fragment through an OR bit operation. 제 4 항에 있어서,The method of claim 4, wherein 상기 프레임 버퍼에 갱신되는 색상 값The color value to be updated in the frame buffer silver 또는 or 식을 이용하여 계산하는 것을 특징으로 하는 안티알리아싱 방법. Antialiasing method, characterized in that the calculation using a formula. 이때, C : 색상 값, M : 영역마스크, Tm : 영역마스크의 비트 수를 나타내고, 아래첨자 if : 새로 들어온 프레그먼트, 아래첨자 ff : 프레임에 저장된 프레그먼트, 그리고 아래첨자 RUF : RUF 버퍼를 나타낸다.Where: C: color value, M: area mask, Tm: number of bits of area mask, subscript if: newly entered fragment, subscript ff: fragment stored in frame, and subscript RUF: RUF buffer Indicates. 제 4 항에 있어서,The method of claim 4, wherein 상기 RUF 버퍼에 저장하는 단계에서 영역마스크() 및 색상 값()의 계산은In the step of storing in the RUF buffer area mask ( ) And color values ( ) Calculation 와, Wow, 로 계산되는 것을 특징으로 하는 안티알리아싱 방법. Antialiasing method characterized in that it is calculated as. 제 4 항에 있어서,The method of claim 4, wherein 상기 프레그먼트는 다수개의 샘플링 포인트를 가지는 것을 특징으로 하는 안티알리아싱 방법.And said fragment has a plurality of sampling points.
KR10-2002-0045233A 2002-07-31 2002-07-31 apparatus and method for antialiasing KR100441079B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR10-2002-0045233A KR100441079B1 (en) 2002-07-31 2002-07-31 apparatus and method for antialiasing

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR10-2002-0045233A KR100441079B1 (en) 2002-07-31 2002-07-31 apparatus and method for antialiasing

Publications (2)

Publication Number Publication Date
KR20040011917A KR20040011917A (en) 2004-02-11
KR100441079B1 true KR100441079B1 (en) 2004-07-21

Family

ID=37319952

Family Applications (1)

Application Number Title Priority Date Filing Date
KR10-2002-0045233A KR100441079B1 (en) 2002-07-31 2002-07-31 apparatus and method for antialiasing

Country Status (1)

Country Link
KR (1) KR100441079B1 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11392377B2 (en) 2020-02-20 2022-07-19 Samsung Electronics Co., Ltd. System-on-chip, data processing method thereof, and neural network device
WO2023177887A1 (en) * 2022-03-17 2023-09-21 Advanced Micro Devices, Inc. Super resolution upscaling

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
SG137754A1 (en) * 2006-05-12 2007-12-28 Nvidia Corp Antialiasing using multiple display heads of a graphics processor

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR19980037122A (en) * 1996-11-20 1998-08-05 양승택 3D graphic accelerator having input / output function of multimedia data and its data processing method
US5990904A (en) * 1995-08-04 1999-11-23 Microsoft Corporation Method and system for merging pixel fragments in a graphics rendering system
US6229553B1 (en) * 1998-08-20 2001-05-08 Apple Computer, Inc. Deferred shading graphics pipeline processor

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5990904A (en) * 1995-08-04 1999-11-23 Microsoft Corporation Method and system for merging pixel fragments in a graphics rendering system
KR19980037122A (en) * 1996-11-20 1998-08-05 양승택 3D graphic accelerator having input / output function of multimedia data and its data processing method
US6229553B1 (en) * 1998-08-20 2001-05-08 Apple Computer, Inc. Deferred shading graphics pipeline processor

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11392377B2 (en) 2020-02-20 2022-07-19 Samsung Electronics Co., Ltd. System-on-chip, data processing method thereof, and neural network device
WO2023177887A1 (en) * 2022-03-17 2023-09-21 Advanced Micro Devices, Inc. Super resolution upscaling

Also Published As

Publication number Publication date
KR20040011917A (en) 2004-02-11

Similar Documents

Publication Publication Date Title
US11182952B2 (en) Hidden culling in tile-based computer generated images
US8760450B2 (en) Real-time mesh simplification using the graphics processing unit
US8773439B2 (en) Approximation of stroked higher-order curved segments by quadratic bèzier curve segments
JP5232358B2 (en) Rendering outline fonts
JP5188628B2 (en) Method and system for rendering a 3D model of a 3D object
JP3344597B2 (en) Method and apparatus for tessellating graphic images
US8217962B2 (en) Single-pass bounding box calculation
US7408553B1 (en) Inside testing for paths
US8379025B1 (en) Methods and apparatus for rendering vector art on graphics hardware
JP5687692B2 (en) Method and apparatus for rendering computer-generated images
US7684641B1 (en) Inside testing for paths using a derivative mask
KR20050030595A (en) Image processing apparatus and method
WO2000011562B1 (en) Apparatus and method for performing setup operations in a 3-d graphics pipeline using unified primitive descriptors
US7400325B1 (en) Culling before setup in viewport and culling unit
EP2300984A2 (en) Gpu bezier path rasterization
KR20050030569A (en) Image processing apparatus and method thereof
CN108122266A (en) A kind of method, apparatus and storage medium for caching skeleton cartoon and rendering texture
US7292239B1 (en) Cull before attribute read
EP2728551B1 (en) Image rendering method and system
KR100441079B1 (en) apparatus and method for antialiasing
Lee et al. SPARP: a single pass antialiased rasterization processor
US6967662B2 (en) Volume clipping in computer 3D graphics
US7256796B1 (en) Per-fragment control for writing an output buffer
CN110570504A (en) closed symbol drawing method and device, electronic equipment and storage medium
US11217005B1 (en) Techniques for rendering 2D vector graphics on mobile devices

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: 20070710

Year of fee payment: 4

LAPS Lapse due to unpaid annual fee