4
« on: 2005-02-22 17:13:52 »
I haven't played FF7 in a long time, so correct me if I'm wrong on this, but I think even the animated backgrounds were not particularly complex -- maybe flashing lights or small waves on water or whatever. A few extra tiles could probably still be preprocessed.
Filtering makes the most sense when you don't have complete/direct control over the original data. This makes it perfect for emulators, where you're going to have many different games from many different sources. The emulator author doesn't know how the graphics will be stored in any of those ROMs or whatever, (and they'd probably be different for every game anyway) and so cannot modify the graphics there. But the emulated code knows how to read them and get them on to the screen, at which point the emulator can filter them. This works on any game the emulator can play without having to modify the games themselves.
For anything written from scratch, however, or anything where you can already change the resolution and graphics files, the only place I could see filtering being useful is if your game was designed for a lower resolution and you wanted a quick and dirty way to jump it up to a higher resolution without redoing everything. I see a lot of talk around here about delving into the guts of FF7, so I'm not sure how much control you have over the actual 2D graphical assets and how they're used. If "none" or "very little," then I'd say yeah, go for filtering. If "lots" or "everything," then preprocessing is definitely the way to go, since it would be less processing to do at runtime.
Incidentally, I'm wondering how those real-time filtering algorithms would look when applied to a movie suffering from compression artifacts...
Edit: Actually, I see that your intent is to continue to use the original CDs and disallow running from any writable source (i.e. someone's hard drive) to prevent piracy and such. So in that case, yes, filtering of the 2D data would be useful (but if you end up writing your own engine, it can still be done just once at load time).