Okay, I think i've got it figured out. Its definitely a filtering artifact and theres nothing I can do with respect to modifying texture coordinates because I have wrap coordinates with indexed vertices being reused, which I can't have multiple u/v values for to do something like clamping.
However, on the textures where this is a big problem, I can do point
filtering to get by the problem. I think I'll just add some bytes to my
map header to control the min/mag/mip filters for that map.
Linear/anistropic looks good in general, for terrains that are grassy
or rocky and generally uniform, but for cases where texture borders are
important I can do point filtering to make sure I get exact results.
Setting the point filter for the sprites where borders were a problem
also worked; if I did the alpha stencil solution like I said I would try, sprites become thinner and lose detail cause I lose about a half pixel
of detail/dimension to those borders bein filtered out.
Then again, I've implemented loading of external objects to place on the map from file; that's how these sprites are loaded.. I can probably do the rug this way, having it use point filtering while I do the regular checkerboard floor texture by way of linear/anistropic filtering as usual to get an overall good effect.Yeah, I think that' s what I'll do.
By the way, how do D3DTEXF_PYRAMIDALQUAD and
D3DTEXF_GAUSSIANQUAD work? They seem basically the same as point filtering... maybe its just my card not supporting them?