RUF * (A Simple and Efficient Antialiasing Method with the RUF buffer) (, Byung-Uck Kim) (Yonsei Univ. Depth of Computer Science) (, Woo-Chan Park) (Yonsei Univ. Depth of Computer Science) (, Sung-Bong Yang) (Yonsei Univ. Depth of Computer Science) (, Tack-Don Han) (Yonsei Univ. Depth of Computer Science) : ( ) : 134 120-749 02-2123-2717( ), 02-365-2579(Fax) e-mail : gstring@yonsei.ac.kr(or kimbu@mythos.yonsei.ac.kr)
RUF,. RUF (Recently Used Fragment) RUF.. 8 (sparse), 1.3%, 31%, 3 11%. :,,,, RUF(Recently Used Fragment) A Simple and Efficient Antialiasing Method with the RUF buffer ABSTRACT In this paper, we propose a simple and efficient hardware-supported antialiasing algorithm and its rendering scheme. The proposed method can efficiently reduce the required memory bandwidth as well as memory size compared to a conventional supersampling when rendering 3D models. In addition, it can provide almost the same high quality scenes as supersampling does. In this paper, we have introduced the RUF (Recently Used Fragment) buffer that stores some or whole parts of a fragment or two more the merged results of fragments that recently used in color calculation. We have also proposed a color calculation algorithm to deteriorate the image quality as referencing the RUF buffer. Because of the efficiency presented in the proposed algorithm, the more number of sampling points increases the more memory saving ratio we can gain relative to the conventional supersampling. In our simulation, the proposed method can reduce the amount of memory size by 31% and the memory bandwidth by 11% with a moderate pixel color difference of 1.3% compared to supersampling for 8 sparse sampling points. Keywords: Antialiasing, supersampling, memory size, memory bandwidth, RUF buffer
1. 3. 3 (object), - (average-down filtering) [1].. n- 1- n. (accumulation buffer), [2]. (multi-pass). (hidden surface removal) Z., (blending) A-buffer [3]. A-buffer (coverage mask) (subpixel),.,., (intersection).. A-buffer,,. A-buffer,. n- n,,.,, A-buffer.
, RUF(Recently Used Fragment), RUF., RUF.,.,,., 3, 8, 1.3%, 31% 11%.., 2, RUF,. 3,., 4. 2. (polygon based), 3D (geometry),. (sca n conversion),.,.,, RUF. 2.1 A-buffer. (m), (C), (Z 1 Z m), RUF (ObjTag).
3, [4].,. 1 8., m-bit, 8 8. C Z 32. [4] 16. 2 RUF.. RUF,,,,, RUF. ( 1) Struct framebuffer[x][y] { Struct RUF buffer[x][y] Struct color buffer { { Color C; ObjectTag Objtag; CoverageMask m; } CoverageMask m; Struct depth buffer { Color R,G,B,A; Depth Z1,,Zm;} } } (a) (b) RUF ( 2) [X][Y] RUF
( 3) 2.2 3,,, RUF 3..,, RUF if, ff, RUF., M if, C ff, C RUF,, RUF. : Z. Z Z buffer. (survived fragment, sur), M sur (1). M sur = M if if and only if Z if(i) < Z ff(i) (1), (i),.
:.,,. (M ff) (M sur) OR,.,,. 4. 4 (a) (b), 4 (c) (d). ( 4) : F a, F b, F c.) RUF,,. 4 (a), (b), (c), RUF F a, F b., (2)., F b, RUF F a.
C new ff = C ff + C if N( M sur ) N( M sur M CRUF T T m m RUF ) (2), N( ) 1., T m.,., 4 (d), F c, F ca, RUF., RUF F b., (3)., F ca. C new ff = C ff + C if N( M sur ) N( M sur M CRUF T T m m RUF ) C ff N( M sur M T m ff ) (3), 5. A, B, C, A B C,., A B, C AB (4). (4) C ø. 2 4 1 CA = C + CA; CAB = CA + CB CA 8 8 8 (4), RUF B,,. C, 3 (a) (b). 3 (a), RUF B (2). 4 1 CABC = CAB + CC CB 8 8 (5), 3 (b), A (3) (5)., ⅛ (C AB -C A ).
( 5) RUF :, (coplanar space), [3,4]. (exclusive),. (2) (3), RUF,., (6) (7) RUF. M new RUF = M RUF M sur (6) new N( M RUF ) N( M C RUF = CRUF + C new sur N( M ) N( M RUF sur new RUF ) ) (7), RUF,., (6) (M) OR, (7)., RUF,, RUF.
3. 1 3,,. 3, OpenGL Mesa [5]. < 1> 3 Al 3618 7124 11975 35 Castle 6620 13114 17444 16 Dolphins 885 1692 4570 3 Pig 3522 7040 7499 3 Rose+vase 4028 3360 5425 5 Teapot 3644 6320 6807 1 Venus 711 1418 5464 1 3 Mesa.. 1- (1p), 8 (8ss), 4 4 (4 4s), 8 8 (8 8s). 8, 8 '.,,. 3.1 [6]. Color error = i, j c= R, G, B ( r ijc t ijc ) 2 (8) r ij t ij (i,j), r ijc, t ijc. (8)
,. 6 8 8.,, 8., 4 4 16 8 2, [4]. ( 6) 2 8., 1.3% 31%.,.
< 2> 8 8ss 1338250 1336154-1.3% 64Bytes 44Bytes +31.3% ( 8 8.) 3.2. 2 (m + C) + m Z + objtag. m (C + Z). 3.,. < 3> (Bytes) 4 32 27 16% 8 64 44 31% 16 128 78 39% 64 512 282 45% < 4> 8ss 8 ( ) Al 518512 456654 11.9% 2.9 Castle 614394 574144 6.5% 2.8 Dolphins 229144 194176 15.3% 3.2 Pig 301489 279204 7.4% 2.7 Rose+vase 173760 163487 5.9% 2.6 Teapot 281472 260347 7.5% 2.7 Venus 338332 268950 23.5% 3.9
3.3 7.,. (9), RMB i i (Required Memory Bandwidth). (RMB i Occurence i) i {access pattern} (9) 4 (9)., 11.0%.,.,.,,. 4.,.,., Z buffer,.,. [1] Alan Watt. 3D Computer Graphics, Third Edition, Addison-Wesley, 2000. [2] Paul E. Haeberli and Kurt Akeley. The Accumulation Buffer. Hardware Support for High-Quality Re ndering, In Computer Graphics Annual Conference Series (Proceedings of SIGGRAPH 90), volume 24, pages 309-318, August 1990. [3] Loren Carpenter, The A-buffer, an Antialiased Hidden Surface Method, In Computer Graphics Ann ual Conference Series (Proceedings of SIGGRAPH 84), volume 18, pages 103-108, July 1984.
[4] Jin-Aeon Lee and Lee-Sup Kim, Single-Pass Full-Screen Hardware Accelerated Antialiasing, Proce edings 2000 SIGGRAPH/EUROGRPHICS Workshop on Graphics Hardware, pages 67-75, August 20 00 [5] The Mesa 3D Graphics Library, http://www.mesa3d.org [6] Norman P. Jouppi and Chung-Fa Chang, Z3: an economical hardware technique for high-quality anti aliasing and transparency, Proceedings 1999 SIGGRAPH/EUROGRPHICS workshop on Graphics h ardware, pages 85-93, 1998 ( 7). RMB RMB C 4 Bytes O 2 Bytes Z 4 Bytes M m bits ( ) *1 *4 *2 *5 RUF *3 *6 RUF