Texture size?

Blitz3D Forums/Blitz3D Beginners Area/Texture size?

abacadabad(Posted 2003) [#1]
Hi everyone,

What the recommended total size for all of my textures added up, for example if you use 1 1024x1024 texture, do I have much room left for more textures? What size textures are you using?

Thanks :-)


smilertoo(Posted 2003) [#2]
most use 256x256 or 512x512 textures, in general the smaller the texture the more compatible it is.

what you can use depends on your hardware but most cards these days could easily fit a few 1024x1024.


podperson(Posted 2003) [#3]
The latest, greatest cards can handle rectangular textures of large size. To be more compatible use smaller, square textures where the dimensions are powers of 2 (64, 128, 256, etc.)


abacadabad(Posted 2003) [#4]
How many years do you think it will be before the average card handles 1024x1024?


Mustang(Posted 2003) [#5]
How many years do you think it will be before the average card handles 1024x1024?


IMO they do already, at least what is now considered "average" 3D-card. And Blitz DOES downscale textures automatically if the card can't handle big textures - so the users WILL be able to play the game, they just get smaller textures. Which is right for them using ancient hardware like that... ;)

I'm going to use happily 1K textures in my game and maybe even bigger ones... speedwise it good to combine several subsets to a bigger set.

for example if you use 1 1024x1024 texture, do I have much room left for more textures? What size textures are you using?


What's left depends of course how much VRAM you have and what resolutions & color depths you use etc. Here's few handy formulas (from my old post):

===

OK, I asked about the texture usage and calculation from our coders and here's the blurb they gave me... first, you have to reserve VRAM for screen, backbuffer and z-buffer. It goes like this (1024*768 screen as an example):

16-bit:

(1024[w] * 768[h] * 2[color bytes-per-pixel]) * 3[screen,back,z] = 4.72 megs

32-bit:

(1024[w] * 768[h] * 4[color bytes-per-pixel]) * 3[screen,back,z] = 9.44 megs

And you have other stuff there in the VRAM too (depending what 3D-engine you use etc), like vertexes, indexes and geometry which take variable amount of space. You should reserve some VRAM for those, maybe 5-10 megs... which means that using 1024*768*32 screen you have already used basically ALL the memory on the 16 meg 3D-card!

Here's how to calculate texture usage... let's use 512*512 sized texture as an example.

16-bit:

(512[w] * 512[h] * 2[color bytes-per-pixel]) * 1.33[mipmaps] = 0.697 megs.

32-bit:

(512[w] * 512[h] * 4[color bytes-per-pixel]) * 1.33[mipmaps] = 1.395 megs.



And for those ppl who wonder why I have been BEGGING to get DXTC to Blitz3D, here's how much it saves space...



-DXTC1 (color[16-bit], no alpha) 512*512 example would take this much:

(512[w] * 512[h] * 0.5[bytes-per-pixel]) * 1.33[mipmaps] = 0.174 megs.


-DXTC3 (color[16-bit] + alpha[4-bit]), 512*512 example would take this much:

(512[w] * 512[h] * 1[bytes-per-pixel]) * 1.33[mipmaps] = 0.349 megs.


...So if you compare this to the 16/32-bit unpacked textures you'll get either 4 or 8 times more texture using the same amount of VRAM. Pretty good savings, especially if you look at how much space the screen alone takes, not to mention geometry etc. DXTC is NOT well suited for gradients, like skyboxes, and the alpha is coarse, so in the best case you should have an ability to use both packed and unpacked 16/32-bits mixed together (using flags or something).