You can make it smaller in a few ways, picking every second pixel being one. It’s easy, but totally ignores any aliasing effects. You can choose the average of a 2x2 square, making it a little bit more complex in code, but still not that difficult, and takes care of aliasing a little. Or if you have good knowledge in multidimensional signal processing, you can make a lowpass filter with cutoff at 50% (assuming you want half the imagesize). The more complex you make it, the less aliasing effects you get, and the better quality you get.
Downsampling, or decimation, is not an easy topic.
By the way, you can try change the minification filter aswell. For example, if you use trilinear filtering (GL_LINEAR_MIPMAP_LINEAR), you can try GL_NEAREST_MIPMAP_LINEAR instead. Does not interpolate between mipmap levels, but picks the neares mipmap and performs a bilinear filtering.
Hello.
Bob, thanks for the reply! It is good to know about the idea behind this. If you tell me that it could be hard to do I gladly believe you. I propably should focus on something else first. But are you using any of these methods, where did you learn about them if so?
Yeah, I know about mipmapping and I already provide an option to change it. So the next step is to make the texture smaller.
Hamster, I agree that making the texture smaller is not nice to look at, but I think I remember that it made the difference between smooth and jerky gameplay with the Q3-engine (which I fancy) on some computers.
If you tell me that it could be hard to do I gladly believe you. I propably should focus on something else first.
Some thing can be difficult, but that average of a 2x2 square method is actually not that hard, and the result is OK when scaling the image by 1/2, which is what you want I assume.
But are you using any of these methods, where did you learn about them if so?
I’m currently implementing the last method I mentioned; creating filter kernels. I learned it at school, I’m studying signal processing at the moment. I do it mainly to try it in practice rather than just knowing the theory.
haven’t you people heard of tools like GIMP, PHOTOSHOP, or PAINT SHOP PRO? Are you people actually writing functions to process and downsample your textures?!
Why wouldn’t you just use a paint tool? they already have features like this, I would think.
My point is, if you have slow PC, then you don’t have “bonus” power to do all downsampling tasks & so on & you still have to load huge BMP/JPG/TIF etc and then work on it (I remember “Blade of Darkness” runing on GF2GTS PII350@434, only adding 256MB RAM over my 128MB helped a bit). Even if you are doing this thing at “loading…” screen it’ll take quite some time. When you use Photoshop or smthn, then you’ll get professional, nicelooking images in few secs, only problem HDD, CD or FDD space.
So you can choose:
Honestly, if your computer is so slow you fall asleep because image scaling requires too much power, you either shouldn’t play the game at all, or the programmer should really consider making the scaling algorithm better. And sometimes it’s not just about wasting a little more space. That little extra space may require you to, for example, split the download into two parts if your webserver doesn’t allow too large files, or you may have to distribute the game on two CDs instead of one.
Hello.
But Q3 has one texture on disc and you can load it in virtually any size, so they are making downsampling I guess, don’t you think so?
Actually I think that lots of games let you adjust the texture quality a bit.
Originally posted by M/\dm/
:
[b]My point is,
<snip>
[/b]
Doesn’t make your engine very flexible does it? Q3 doesn’t have 47 different detail levels for it’s textures (can’t say I know of any games that do). Sampling is not that expensive if you take the time to write it properly (it can’t be or UT2003 would take a week to load a level).
=>YOU’VE BEEN KILLED PLEASE RELOAD<=
Reload eh? Have you played MOHAA:Spearhead? How long does it take to “Reload” a level?
Originally posted by rgpc: Q3 doesn’t have 47 different detail levels for it’s textures[…]
How did you come to 47? I never computed the exact number but there is a command which I forgot which lets you adjust the texture-quality in many steps (and far more than provided in ne options-menu).
Hey guys, i have a texture-loader, which loads BMPs, TGAs, JPEGs, bla bla bla, and it downsamples ALL types of images. I used bilinear filtering, but at the moment i use nearest, because it is better for images, that use masking.
And guess how long it took me to program all this? Only a few hours.
Now i tell you the secret: It is called DevIL! (http://openil.sourceforge.net/).
And here is an example of how one can do the downsampling with it:
if (iQuality > 0)
{
//if the quality should be reduced, than we divide the image´s size by 2 for every quality-reduction
int div = POW (2, iQuality);