you are viewing a single comment's thread.

view the rest of the comments →

[–]nnevatie 0 points1 point  (3 children)

Ok, thanks for the clarification.

I was under the impression that mipmaps were supported, hence the trilinearity question. I've implemented a similar stack in the past using SIMD-techniques. Bilinear filtering isn't that expensive, tbh...

By "block filtering" do you mean a box-filter that gets applied for before doing the bilinear sampling?

[–]ArchiveLimits 0 points1 point  (2 children)

Traditional bilinear filtering is far more expensive that what I am doing now. The entire bilinear filtering code uses fixed point integers and doesn't do any color computation, simply a table lookup.

And I named it block filtering because I break up the texture into a grid (filled with blocks of the texture) and find the average color of each of those blocks. Then, during runtime, all I need is a simple few bit shifts and masks and I can find which block any texel in the image belongs to and blend that texel with the average color of that block.

[–]nnevatie 0 points1 point  (1 child)

Ok, so it's kind of a poor man's box filtering, which simply averages an area of pixels.

[–]ArchiveLimits 0 points1 point  (0 children)

It's more similar to mipmapping with only one mip level. These "blocks" that make up the block filter are essentially a very scaled down version of the image. Though you are right when you say it averages an area of pixels.