Which texture format uses least video memory?
Which texture format uses least video memory?
Which of Irrlichts texture formats uses least video memory?
Yes that's what I want to know, since my game uses thousands of textures.
So I want as little as possible video memory, ram and disk space consumption.
I also once heard that all textures are 'uncompressed' to a kind of bitmap in video memory, thus using as much memory as a normal bitmap file.
The format should also support alpha channels, since I use those to define transparency.
I already did some experimenting and .png and .dds are smallest, however png has no alpha channel support in Photoshop and dds isnt really supported by Irrlicht.
I appreciate any help.
Yes that's what I want to know, since my game uses thousands of textures.
So I want as little as possible video memory, ram and disk space consumption.
I also once heard that all textures are 'uncompressed' to a kind of bitmap in video memory, thus using as much memory as a normal bitmap file.
The format should also support alpha channels, since I use those to define transparency.
I already did some experimenting and .png and .dds are smallest, however png has no alpha channel support in Photoshop and dds isnt really supported by Irrlicht.
I appreciate any help.
Re: Which texture format uses least video memory?
WowACE247 wrote:png has no alpha channel support in Photoshop
And they want to sell that stuff?
Get GIMP!
irrRenderer 1.0
Height2Normal v. 2.1 - convert height maps to normal maps
Step back! I have a void pointer, and I'm not afraid to use it!
Height2Normal v. 2.1 - convert height maps to normal maps
Step back! I have a void pointer, and I'm not afraid to use it!
Huh? The textures i did in gimp and saved as png, work perfectly for me in irrlicht. Are you using a good material in your game? Or maybe you have your own screwed-up shaders?
irrRenderer 1.0
Height2Normal v. 2.1 - convert height maps to normal maps
Step back! I have a void pointer, and I'm not afraid to use it!
Height2Normal v. 2.1 - convert height maps to normal maps
Step back! I have a void pointer, and I'm not afraid to use it!
The adobe photoshop versions I own had always alpha support in png!
Are the material settings correct? Do you use EMT_TRANSPARENT_ALPHA_CHANNEL?
Are the material settings correct? Do you use EMT_TRANSPARENT_ALPHA_CHANNEL?
Compete or join in irrlichts monthly screenshot competition!
Blog/site: http://rex.4vandorp.eu
Company: http://www.islandworks.eu/, InCourse
Twitter: @strong99
Blog/site: http://rex.4vandorp.eu
Company: http://www.islandworks.eu/, InCourse
Twitter: @strong99
To answer your first question:
They all take the same amount of video memory since they are uncompressed in video memory.
DDS can be stored compressed in video memory but so far there is no support for compressed dds textures in irrlicht.
They all take the same amount of video memory since they are uncompressed in video memory.
DDS can be stored compressed in video memory but so far there is no support for compressed dds textures in irrlicht.
Software documentation is like sex. If it's good you want more. If it's bad it's better than nothing.
PNG can be saved with transparency in Photoshop if the image has transparent parts.
For example, a single layer wich has some parts half transparent saves correctly the transparent parts in the PNG. Photoshop "kindly" started to ignore the alpha channel for the PNG's since Photoshop 6 or 7.
On the other hand, TGA's work as always. If you need an alpha channel, use a TGA. It is much simpler to handle it in the program, It doesn't mess the image because of the transparent parts as photoshop does with the PNG, and in my opinion, they are kind of straight when it comes to memory measurements. TGA is uncompressed, so, you get no "odd" surprises. The PNG is meant for graphics interchange through a network so, the useless information of the image is to be discarded, and the full transparent parts of an image are parts wich, in theory, won't contain any relevant information. Unless the alpha channel is only for plain transparency, it is more useful a TGA.
Else, as suggested, get gimp
You must take into account also another facts. A 1024x1024 32bit TGA texture uses 4 megabytes in disk, but in memory it uses 5592404 bytes because also generates the mipmap levels. Keep in mind that, if you don't need extra mipmap levels, i think there is a way to generate less levels, or no levels at all, but the final image quality will resent of this, and the performance may also be hit.
Other option: i don't know if the paleted textures still work, or if they are still stored as paleted textures, but if they are stored as paletted, they may use 4x less memory, give them a shot.
For example, a single layer wich has some parts half transparent saves correctly the transparent parts in the PNG. Photoshop "kindly" started to ignore the alpha channel for the PNG's since Photoshop 6 or 7.
On the other hand, TGA's work as always. If you need an alpha channel, use a TGA. It is much simpler to handle it in the program, It doesn't mess the image because of the transparent parts as photoshop does with the PNG, and in my opinion, they are kind of straight when it comes to memory measurements. TGA is uncompressed, so, you get no "odd" surprises. The PNG is meant for graphics interchange through a network so, the useless information of the image is to be discarded, and the full transparent parts of an image are parts wich, in theory, won't contain any relevant information. Unless the alpha channel is only for plain transparency, it is more useful a TGA.
Else, as suggested, get gimp
You must take into account also another facts. A 1024x1024 32bit TGA texture uses 4 megabytes in disk, but in memory it uses 5592404 bytes because also generates the mipmap levels. Keep in mind that, if you don't need extra mipmap levels, i think there is a way to generate less levels, or no levels at all, but the final image quality will resent of this, and the performance may also be hit.
Other option: i don't know if the paleted textures still work, or if they are still stored as paleted textures, but if they are stored as paletted, they may use 4x less memory, give them a shot.
"There is nothing truly useless, it always serves as a bad example". Arthur A. Schmitt
OK to explain I use the alpha channel of the texture to determine were transparency applies on a mesh and no I am not using my own "screwed up" sharers as entity kindly said. I use this approach in order to have alpha blended transparents such as dirt stained see through windows. And that indexed pallete approach is a real nice idea except the colors don't look half as good.
But sofar its now tga for me.
But sofar its now tga for me.
Also is it maybe better to have large uncompressed textures? Will I 'really' save much load time not spent on uncompressing them? Things load real slowly, and I guess It wont make a big difference.But what do you think?
This is on a Q6600 CPU, 4Gb DDR2 and a GTX260, so its not the PC slowing the loading.
This is on a Q6600 CPU, 4Gb DDR2 and a GTX260, so its not the PC slowing the loading.
Don't load thousands of textures at once.... easier said than done.
I need somekinda streaming system I think. I use .irr levels with huge heightmap.(2048x2048) plus 8 texture 'splatts' then there's the level geometry plus vegetation etc. All use textures. 1024x1024 for vehicles and trees/characters. Buildings mostly use higher. Obviously mip's help. But the ram is still used. Maybe I should kinda splitt my level into zones like they did in the first stalker by splitting the map into tiles and only loading high Res textures and geometry for the current tile the player is in. Also could texture Atlases maybe help?
I need somekinda streaming system I think. I use .irr levels with huge heightmap.(2048x2048) plus 8 texture 'splatts' then there's the level geometry plus vegetation etc. All use textures. 1024x1024 for vehicles and trees/characters. Buildings mostly use higher. Obviously mip's help. But the ram is still used. Maybe I should kinda splitt my level into zones like they did in the first stalker by splitting the map into tiles and only loading high Res textures and geometry for the current tile the player is in. Also could texture Atlases maybe help?