VOGONS


First post, by dosmax

User metadata
Rank Newbie
Rank
Newbie

Not sure whether that would be possible, but it would be great to have an option that applies forced texture filtering only to non-point-filtered textures.

Why would it be useful? E.g. in Ultima IX some transparent textures (most prominently trees/scrubs) are point sampled. Forcing anisotropic filtering creates ugly transparency artifacts that could be avoided if anisotropic fitering was only forced on textures that per default are filtered bilinear. Would probably also take care of quite a few more glitches that the forced filtering tooltip warns about.

Reply 1 of 4, by Narzoul

User metadata
Rank Newbie
Rank
Newbie

It's a good idea. I was experimenting with something similar in DDrawCompat recently. When applied to both forced antialiasing and texture filtering, it also solves the horizontal/vertical lines (seams) that appear in Sacred (where most of the background art seems to be made up of point-filtered 2D images), while still maintaining antialiasing on the real 3D parts (characters). It should be useful for a couple games like that at least.

Reply 2 of 4, by Dege

User metadata
Rank l33t
Rank
l33t

Yes, it seems to be a nice idea. I just don't yet know how to add this feature to the wrapper. An option like 'Force filter only if not point sampled' checkbox? Or more general options to provide the possibility of rules?
The problem is, such options are somewhat cherry-picked, while more general options are kinda mini-algorithms, confusing a little bit.

Reply 3 of 4, by dosmax

User metadata
Rank Newbie
Rank
Newbie

Personally I would go the additional checkbox approach. At least without having thought through all potential implications in detail that seems to be the least confusing one. Just knowing what point filtering is would be enough for users to understand what the option does in general, a little tooltip that explains what type of glitches the option may reduce would make things totally clear.

While I could imagine that additional rules may help to catch glitches in individual games even better/more reliably, that might indeed be too confusing for someone who just wants to play their games. Most people probably won’t have the knowledge that is necessary to fully understand what more fine grained rule sets really do.

EDIT:

One particularly useful extra rule I can imagine would be to apply the option only to textures drawn in 2D- or 3D-space, or both. That would make it possible to treat HUD/menu and world textures differently. If by any chance you have some heuristics in place anyway that detects whether something is drawn with perspective or orthogonal projection, that might be worth an additional option.

Reply 4 of 4, by Dege

User metadata
Rank l33t
Rank
l33t

I added the option in WIP82, but didn't test it extensively TBH.

One particularly useful extra rule I can imagine would be to apply the option only to textures drawn in 2D- or 3D-space, or both. That would make it possible to treat HUD/menu and world textures differently. If by any chance you have some heuristics in place anyway that detects whether something is drawn with perspective or orthogonal projection, that might be worth an additional option.

Unfortunately, there is no heuristic for that.
Tranform matrices in games using vertex shaders are black-box for dgVoodoo.
Tranform matrices of the FF vertex pipeline could indeed be examined but a lot of games draws the HUD (or even the whole 3D scene (DX7 and older)) with T&L vertices, bypassing the FF transformation pipeline. For them, dgVoodoo could only look at the vertices and try to figure it out if they form a screen-space quad, which is of course awful, especially in the regard of the performance.