This Filtering Worthwhile?

not for generally filltering it would be good for cartoon style graphics like in emulators but when you have a gradual colour change its not good.
 
Well, it could still be good...
The magnification filter sounds interesting to me. Maybe programmers could use it to automatically increase texture size, if the card has more video memory free than what the game programmers initially expected in the release timeframe?

What I mean by that is that if the game is released in 2003, and you play in 2005, with maybe 512MB video cards, you'd have an automatic, high quality magnification of the textures on the CPU so you can benefit from those 512MB without running 32X FSAA, eh.

I don't see any use for all these technologies for real time 3D. But preprocessing before sending data to the GPU to increase quality further if the GPU is better than expected would be a good idea IMO.

As always, could be wrong though, hehe.


Uttar
 
Way back, just after the dinosaurs died, I co-wrote a molecular raytracer for the purpose of creating input files to a slide writer. The program was really fast (and really limited, we just wanted nice slides for presentations), so we wanted to use supersampling AA in order to increase quality while still feeding the slide writer moderate size files. We tested 2x2 up to 5x5 supersampling, and got progessively better results. Eventually we settled on 3x3 or 9x supersampling as a reasonable compromise.

Todays state of the art AA for games use is nowhere near as good as we would ideally like. And the higher the pixel to pixel contrast is (LCDs) and the lower the resolution, the more critical AA quality becomes.

I predict that in 2010, standard procedure will be way better than todays state of the art.

Entropy
 
The magnifier is pretty damn neat. Works very well on a variety of different things and is very fast. Strange color bug though. Some brown/red stuff turns blue.
 
I've been using zsnes (great snes emulator...I think the performance is quite a bit higher than SNES9x...but anyway), and those look pretty similar to the Super Eagle mode.
 
I've always preferred 2xSai mode in Zsnes but anyway, this magnifier seems to have more uses because the images don't look as paleticised or watercoloured like the zsnes filters tend to.
 
It actually worsens aliasing...

In bilinear filtering mode it looks blurrier, but it has no aliasing in the texture. In 'smart' filtering mode you get jaggies along the sharp lines. Plus it needs a preprocessing stage and only works on high-contrast images (preferably 8-bit or less).

But the aliasing can be reduced. You can still use bilinear filtering, but give every pixel a weight factor. So the black pixels could have higher weight factors and produce sharper lines. Or the weight factor could even be computed at run-time, for example by using the color difference. Would be worth trying...

But what is definitely needed to increase filtering quality is bicubic filtering. That automatically looks better than bilinear, and doesn't introduce extra aliasing.
 
Nick said:
But what is definitely needed to increase filtering quality is bicubic filtering. That automatically looks better than bilinear, and doesn't introduce extra aliasing.

I'll second that. Would be nice to see in hardware. If it could be forced (which I assume there would be a driver checkbox for if it would be supported) it would improve quality in all old games. Small textures would look better on closeups, and lightmaps would look smoother and less stairstepped.
 
Nick said:
In 'smart' filtering mode you get jaggies along the sharp lines.

You also get jaggies at the edges of the triangles. FSAA to the rescue! :)

Nick said:
Plus it needs a preprocessing stage and only works on high-contrast images (preferably 8-bit or less).

Preprocessing stage could be removed in the future. Did you noticed that hq3x filter is a step in that direction?

And "high-contrast images" isn't a limitation. If you'd use bilinear filter to process low-contrast textures, and smart filtering - for high-contrast ones, then everybody wins.

Nick said:
You can still use bilinear filtering, but give every pixel a weight factor. So the black pixels could have higher weight factors and produce sharper lines. Or the weight factor could even be computed at run-time, for example by using the color difference. Would be worth trying...

The idea behind hq3x filter is similar to what you're describing, but a little bit more tricky. The filter does some quick analysis of the image (similar to raster-to-vector "preprocessing stage" of smart filtering, but simplier), then uses that info to render the image in higher resolution (again similar to smart filtering). It does all that in realtime, and even, contrary to smart filtering, does it with antialiasing - no jaggies!

MaxSt.
 
MaxSt said:
You also get jaggies at the edges of the triangles. FSAA to the rescue! :)
It would force the user to have FSAA... and it's never as smooth as bilinear filtering. And isn't your 16x FSAA actually 4x SSAA? :?
Preprocessing stage could be removed in the future. Did you noticed that hq3x filter is a step in that direction?
Yes I noticed it's a step in that direction, and it works well for the given examples, but I'm curious how would it handle 32-bit low-contrast images in practice?
And "high-contrast images" isn't a limitation. If you'd use bilinear filter to process low-contrast textures, and smart filtering - for high-contrast ones, then everybody wins.
So you would let it switch between bilinear and smart filtering based on an arbitrary value? Sorry, but I can't see the mathematical reasoning behind it. And I don't think the artists will like to manually check how every texture is handled.
The idea behind hq3x filter is similar to what you're describing, but a little bit more tricky. The filter does some quick analysis of the image (similar to raster-to-vector "preprocessing stage" of smart filtering, but simplier), then uses that info to render the image in higher resolution (again similar to smart filtering). It does all that in realtime, and even, contrary to smart filtering, does it with antialiasing - no jaggies!
Does the anti-aliasing use supersampling or is it a linear filter?

You know I've never had much believe in your technology, but don't take it personal. ;) I'd still love to see it in action for something like a Quake III scene. For me the best way to improve magnification filtering quality is to use bicubic filtering and a form of automatic detail mapping.
 
Bicubic filters have a tendency to create "halos" around objects with sharp contrasts when upsampling. Forcing it on would be a very bad idea unless it was forced only for downsampling.
 
cybamerc said:
Bicubic filters have a tendency to create "halos" around objects with sharp contrasts when upsampling. Forcing it on would be a very bad idea unless it was forced only for downsampling.

I have never seen any such effects of bicubic filtering. For downsampling bilinear is better, but for upsampling bicubic is much better than bilinear.
 
Humus:

> I have never seen any such effects of bicubic filtering. For
> downsampling bilinear is better, but for upsampling bicubic is much
> better than bilinear.

I would say the other way around. You can see the effect I'm talking about by making an image in Photoshop with eg. 50% black background and a 100% black object on top. When you scale the image, say 200%, bicubic will result in a faint halo around the black object.
 
cybamerc said:
I would say the other way around. You can see the effect I'm talking about by making an image in Photoshop with eg. 50% black background and a 100% black object on top. When you scale the image, say 200%, bicubic will result in a faint halo around the black object.
Aren't there different bicubic filtering methods? Probably Photoshop uses a filter kernel with negative components.

Here's an interesting page discussing the problem: http://www.engineering.uiowa.edu/~gec/248_s00_students/blake_carlson/hw2/adiphw2.html. So, what we need is filters with 'infinite' length impuse responses (i.e. a sinc filter). But for discrete images there must be some faster way...
 
On the subject of filtering can anyone tell me (in English) what Lanczos3 filtering is. It's an option in the latest version of Serif Photoplus.
 
Nick said:
MaxSt said:
You also get jaggies at the edges of the triangles. FSAA to the rescue! :)
It would force the user to have FSAA... and it's never as smooth as bilinear filtering. And isn't your 16x FSAA actually 4x SSAA? :?

In 2005 everybody will use FSAA, anyway.
And no, my 16x FSAA is a genuine 16x FSAA.

Nick said:
but I'm curious how would it handle 32-bit low-contrast images in practice?

Take a look at the lizards closely. Their 'skin' is textured, but in a very low-contrast way. Now take a look how that 'skin' is handled by the filter. Get it now?

Nick said:
So you would let it switch between bilinear and smart filtering based on an arbitrary value? Sorry, but I can't see the mathematical reasoning behind it. And I don't think the artists will like to manually check how every texture is handled.

You still don't get it. Smart filtering is not a one fixed filter, but a bunch of filters. The bilinear filter is also included in that bunch. The idea is to use different filters in different sitiations (image areas). For example, it uses bilinear filter for low-contrast areas of the image, like lizard's 'skin'.

You know I've never had much believe in your technology, but don't take it personal. ;) I'd still love to see it in action for something like a Quake III scene. For me the best way to improve magnification filtering quality is to use bicubic filtering and a form of automatic detail mapping.

Bicubic filter sucks big time.

MaxSt.
 
test.png

original test image.

test_hq3x.png

scaled 300% - hq3x filter.

test_bicubic.png

scaled 300% - bicubic filter from Photoshop.

If you think that Photoshop is using incorrect bicubic filter, then post the the output image of correct bicubic filter.

MaxSt.
 
Back
Top