Texture compression howto

Hi there,
my game eats about 2Gb RAM. That’s because I load two 8000x8000 textures. Is it possible to use some texture compression? I haven’t found anything about it on the wiki :frowning:

yes and no

dds for compression on the graficcard but large on disk and memory
jpg/png for the exact opposite

2 Likes

I tried with DXT1 which works ok, but doesn’t have alpha.

So I tried with DXT3 and got this:

I guess that’s gpu/driver dependant then… :frowning:

Why do you have to use 8000×8000 for a 2d game? I have a 3d game and Im fine using 2048x2048 for the walls and the floors

Try using image resizer, you can find them tons on google

The large texture is actually a sprite sheet, where hundreds of individual sprites are stored.

only use dxt1 and dxt5 all others are crap.
Try dxt5

Tried with this:

And got this:

Does this image open in GIMP? If it shows correctly it could have something to do with how jME3 interprets it. Consider posting a bug report on GitHub.

I had the same issue with my mac and it was due to the graphics card since it’s Intel

I think it’s this. Will try on my old geforce just to be sure…

Yes

Also, is the image power of two? or is it rally 8kx8k instead? dxt does not support anything else.

Nope, is 8000x8000! :frowning:
However, dxt1 works ok (but doesn’t support alpha which I need).

Does it happen on Intel only or on other GPU vendors as well?

It happens on Intel integrated graphics cards for me. However, on Windows it seems to work a little better than on Macs or Linux.

It is not a JME issue though. In my case I also tested with Unity on Mac and the texture had the same problem.

From I previous experiment with DDS, imagemagick and gimp never generate good result. Try nvidia tools : nvcompress

Geforce 8600m working OK.

However, given my previous experiments, I think that newer GPU (Haswell etc) work better overall and might support DDS properly.

Will try with nvidia tools.
EDIT:
nvcompress always respond with:

The file ‘pppp.png’ is not a supported image type.

Also tried with a 512x512 solid white .png just in case squareness or alpha were an issue, still got the same error.

:frowning:

I use a own custom dds converter, that is loosely based on nasa worldwind, I could try to throw it trough it and see what happens. So far I never had problems with the textures created by this (not even on a i3 integrated gpu).

Would gladly test. And if it works and you allow me to freely use it, the better :stuck_out_tongue_winking_eye:

EDIT:

I have a i5 sandy bridge GPU. The problem here is the “generation” of the GPU, rather than the i3-i7 diversification. Haswell GPU works pretty well (besides supporting OpenGL 4.3);

Sandy bridge (and earlier) either have hardware or driver bugs.

@david_bernard_31 could you please send me a texture (with alpha!) built with nvidia tools so that I can try it? Thanks!

@Empire_Phoenix the same! :wink:

https://www.visiongamestudios.com/knowledge/download/attachments/950275/eye.dds?api=v2
Note, it’s part of my logo, and not for any other use than testing your problem.