Path: utzoo!utgpu!news-server.csri.toronto.edu!rutgers!usc!sdd.hp.com!think!masscomp!calvin!mark From: mark@calvin..westford.ccur.com (Mark Thompson) Newsgroups: comp.graphics Subject: Re: A-Buffer source (and plotting lots of triangles)? Message-ID: <31677@masscomp.ccur.com> Date: 23 Jul 90 14:37:39 GMT References: <31673@masscomp.ccur.com> <10673@odin.corp.sgi.com> <1990Jul20.231437.22325@cs.UAlberta.CA> Sender: news@masscomp.ccur.com Reply-To: mark@calvin.westford.ccur.com (Mark Thompson) Organization: Concurrent Computer Corp. Westford MA. Lines: 45 In article <1990Jul20.231437.22325@cs.UAlberta.CA> cdshaw@cs.UAlberta.CA (Chris Shaw) writes: >In article <10673@odin.corp.sgi.com> robert@sgi.com writes: >>In article mark@calvin..westford.ccur.com (Mark Thompson) writes: >>|> In article <10588@odin.corp.sgi.com> I write: >>..ignoring the multiple overlapping transparent objects, tell me what >>happens at a pixel when you have this case: You have rendered an opaque >>object, then a transparent object in front of it. The second opaque object >>is between the transparent one and the opaque one > >You can't beat this without extra storage. One alternative is to separate your transparent objects from your opaque ones and render them last. This is generally much less work than sorting. >One of Prusiceiwicz's students at U of Regina came up with an algorithm >that combines A-Buffer and Compositing, so you have a mask AND and an alpha >channel. We also used both an alpha channel and A-Buffer. It allowed for crude transparency when the A-Buffer was turned off and the alpha provided the necessary info to extrernally blend to a separate image/video source. >>|> The main reason we used >>|> an A buffer in the system I last worked on was to remove edge artifacts >>|> on abutting antialiased polygons (using alpha lets the background >>|> color seep through the 'cracks'). >You can fix this by rendering common edges aliased. If you have a >polygonal mesh, you know that the inner edges are each shared by two polygons, >so you can treat these separately, and render the inner edges aliased, with >full coverage. It's an extra check per edge, but the calculation per edge >may be less. In fact we provided edge flags for selective antialiasing. The problem arises however when the shared edge becomes the 'silohette edge' (the edge of the viewable portion of the object). It is then necessary to atialias an edge you normally would not have. I imagine other checks would be feasible to detect this case also but probably at a cost that exceeds that of the A-Buffer. Any ideas? +--------------------------------------------------------------------------+ | Mark Thompson | | mark@westford.ccur.com | | ...!{decvax,uunet}!masscomp!mark Designing high performance graphics | | (508)392-2480 engines today for a better tomorrow. | +------------------------------------------------------------------------- +