Re: [vassalengine-devel] [vassalengine] What happened to the image quality in 3.0?
Brought to you by:
rodneykinney,
uckelman
From: Joel U. <uck...@no...> - 2007-09-09 12:46:36
|
Thus spake Joel Uckelman: > Thus spake "b5mith": > > Hey guys. > > > > I fixed this problem years ago because zoom-out was unusable. > > Zooming is now much quicker in 3.0 but it has come at the cost of > > image quality. A lot of the minis players depend on the quality at > > different zoom levels being consistent; I was just wondering if this > > will be fixed shortly? I would rather have slow (before caching) > > zooming with good quality than fast with low quality. > > > > Ben > > Between 2.9 and 3.0 I started targetting parts of VASSAL which are too > slow, zooming among them. All of the tests I did at the time indicated > that Java's built-in scaling, as of Java 1.5, produced scaled images of > quality comparable to your area averaging filter, at many times the > speed, and so we switched to that in 3.0.0. Some people noticed the > speed increase and were happy. I was perplexed when we started to get > complaints about the image quality, since I hadn't seen much difference > between the two. It turns out that bilinear scaling is very close to > area averaging on some images and less so on others. All of the images > I tested were ones where bilinear scaling does well, while some popular > modules (e.g., Combat Commander. Thanks to Tim McCaron for providing > some images so I could see the difference.) contain images where bilinear > scaling does poorly. > > Once I knew what the problem was, I relaized that the only way to get > high-quality scaling at an acceptable speed was to break up images > into tiles (here I'm speaking of map images, not tokens) and scale only > the tiles which are on-screen. So, from the begining of August I set > about implementing a tiling scaler. In the process, I implemented a > Lanczos filter, which is both faster *and* produces better quality > output than area averaging. All of this is in a working demo now. > What's left is to integrate the parts from the demo into VASSAL. > I don't know how long that will take, though it's what I'm working > on presently. > > So, here are the options as I see them: > > 1. Go back to using area averaging for now. This will make people who > like faster zoom unhappy, but appease people who use modules which need > high-quality scaling. > > 2. Wait for me to finish integrating the new tiling scaler. This is less > work for me, but I can't estimate how long it will take. It won't be done > today, done in a week or a month, maybe. > > 3. Switch to the Lanczos scaler, without tiling, for now. This is some > work, but I think it's something I could do today. I tried #3, which was easier than I expected. There's a modified JAR here: http://www.nomic.net/~uckelman/tmp/vassal/Vengine.jar Ben, please try this and let me know your opinion. (Anyone else who wants to is also welcome, of course.) -- J. |