IIRC, those were just box filters.Ailuros said:Here's Simon's old experiment:
http://web.onetel.net.uk/~simonnihal/assorted3d/samppat.html
Last one is 10k samples afaik. No idea though it those contained any filters or not.
IIRC, those were just box filters.Ailuros said:Here's Simon's old experiment:
http://web.onetel.net.uk/~simonnihal/assorted3d/samppat.html
Last one is 10k samples afaik. No idea though it those contained any filters or not.
FrameBuffer said:"I want my SSAA.."
Simon F said:IIRC, those were just box filters.
pcchen said:Basically if you use supersampling, Quincunx style overlapped filters are fine. They won't make textures more blurry. However, with MSAA the textures inside a triangle is already filtered, and use Quincunx style filters will result in over filtering, thus make them blurry.
MSAA with Quincunx applied on edges only could work, but it's probably too complex for current hardwares. And really 4X FSAA doesn't really benefit that much from a overlapped Gaussian filter.
IIRC, the Fragment AA algorithm is just MSAA + lossy compression. As such, blur filters should have pretty much the same effect with Fragment AA as with plain MSAA.Ailuros said:How about a fragment AA based algorithm?
MSAA does not affect texture filtering.RejZoR said:Fragment AA was "invented" by Matrox on Parhellia series which antialiases just edges and nothing else. Don't know what it makes different than MSAA but i guess MSAA does some sort of texture filtering too, otherwise it would be the same thing, just name different.
arjan de lumens said:IIRC, the Fragment AA algorithm is just MSAA + lossy compression. As such, blur filters should have pretty much the same effect with Fragment AA as with plain MSAA.
Not really. Fragment AA does store more explicit polygon edge information than plain MSAA, but it should be quite straightforward to recover the exact same edge information from plain MSAA by just checking whether all samples of a pixel have the same color or not (if they don't, then there is a polygon edge in the pixel; this gives false hits with transparency-AA, though.)Ailuros said:I'm aware of that, but I was thinking rather in the direction that it could be maybe easier to apply any added filters on just polygon edge/intersections there, since pcchen mentioned that it would be too complex for current HW.
And it doesn't give you all edges.arjan de lumens said:Not really. Fragment AA does store more explicit polygon edge information than plain MSAA, but it should be quite straightforward to recover the exact same edge information from plain MSAA by just checking whether all samples of a pixel have the same color or not (if they don't, then there is a polygon edge in the pixel; this gives false hits with transparency-AA, though.)
Many wet dreams have revolved around a "fixed FAA" but FAA just isn't fixable. The whole concept revolves around not doing anything to handle intersections, and if you want to "extend" it to handle intersections you'll have to start by throwing it all away and think of something entirely different basically.Ailuros said:How about a fragment AA based algorithm?
Chalnoth said:I think my favorite possibly better AA algorithm was mentioned on these forums not too long ago. I don't remember the name, but I can describe it here:
The starting point is MSAA. You take an MSAA algorithm, and tack on lossy framebuffer compression that assumes that you don't need the colors from more than about 3 triangles per pixel.
So, the basic idea is that instead of storing color and z-data for each sample per pixel, you store one color for each triangle, as well as a 2-component normal vector, depth, and coverage mask for each triangle. If we are talking about a FP16 framebuffer along with 24-bit precision on the depth/normal information, the number of bits required per pixel is: (# of triangles) * (64 + (24*3) + # of samples). For 16 samples and 3 triangles per pixel, this is 456 bits per pixel. You might want to promote this to 512 bits per pixel for alignment reasons, which means you could potentially store 32 bits per pixel within the same 512 bit footprint. All this for less than the memory footprint of 6 MSAA samples.
In this way, you can have very high sample density with relatively small memory footprint and bandwidth. Your primary performance limitation becomes how quickly you can perform depth tests.
This whole algorithm rests upon the assumption that you need colors from no more than 3 triangles per pixel to represent with reasonable accuracy the final pixel color. Pathological cases may break this assumption, but most of the time it should give excellent edge AA quality, but at a significant cost in required computing power.
I'd appreciate it if you could elaborate on the last parts regarding occluded objects. Thanks.arjan de lumens said:Guaranteed-memory-footprint methods with lossy compression is something that I am still deeply sceptical to, as they tend to result in either invariance problems or a rendering result where occluded objects have a nonzero effect on the final image.