crosire / d3d8to9

A D3D8 pseudo-driver which converts API calls and bytecode shaders to equivalent D3D9 ones.
BSD 2-Clause "Simplified" License
911 stars 83 forks source link

Rome Total War - Campaign Map Texture Issue #153

Open kadaj29 opened 1 year ago

kadaj29 commented 1 year ago

This wrapper provides a welcome performance boost, but it introduces a graphical issue where textures on the campaign map are rendered incorrectly. It's most noticeable around coastlines, but can also be seen at the edges of various other textures.

Without the wrapper: screen1 With the wrapper: screen2

elishacloud commented 5 months ago

After one year, I finally had time to look at this. LOL

It looks like the game uses some kind of texture filtering that is not working with the wrapper. I took a look at the Direct3D8 filters and it seems like there are two (D3DTEXF_FLATCUBIC and D3DTEXF_GAUSSIANCUBIC) that are not supported by Direct3D9 filters.

I don't have the game to test with, but I substituted other Direct3D9 filters for these to hopefully fix this. Try this build: d3d8.zip

kadaj29 commented 5 months ago

Thanks for looking into this. Unfortunately, the problem persists with that build. screen

elishacloud commented 5 months ago

Ok, I see. Thank you for testing. I will have to look into this when I have a chance to test with the actual game.

elishacloud commented 5 months ago

Ok, try this one. I switched the texture filter to use linear: d3d8.zip

kadaj29 commented 5 months ago

Doesn't seem to have changed anything. screen The only DX8 wrapper I've tried that doesn't cause some sort of noticeable texture issue on the campaign map like this is dgVoodoo2, but that one comes with its own performance issues at certain points which this project doesn't have.

elishacloud commented 5 months ago

Thanks for checking. It was worth a try. I will need to test this game myself to see what is happening.