Texutre compression methods atm are very simple and can’t compress much the data. S3’s DXTn is good but compress like 4:1 ratio… Almost all cards now can help decompressing MPEG2. Could be possible to support something like JPG/JPG2000/WMP textures or to make a new serious-high-compression algorithm by hardware? ( for example wavelets and decompress a pixel using dot-products ). I think that will be good because:
-
Less VRAM will be required by textures, so graphic cards will be cheaper. I don’t know you but I am not able to pay 900$ for 1Gb VRAM and games are using tons and tons of normal maps and textures and will use even more. For example, if you attended the N. Tatarchuk’s presentation in the GDC about the toy ATI demo, she said that demo would be -impossible- to do without 3Dc compression, because the texture could occupy more than 1Gb… and is only a small demo, not a complete game level…
-
These kind of graphic cards could compress/decompress by hardware our JPG/JPEG2000/WMP photos so we will save CPU cycles. After all as I said they are already helping MPEG2 decompression so…
I think will be possible ( and not saying optimal ) to uncompress/cache the JPG lines used by the current triangle using the
jpeg_read_scanlines() function ( fron the IJP JPG free library )
We should try to define a new and much more powerful texture compression algorithm for realtime graphics based on Haar-vq-wavelets so a random pixel will be uncompressed using a few dot products.
And I finish with a thought… If the photographic companies like Kodak, Ricoh, Nikkon, etc meet and define image compression formats(say,JPG)… why the game industry can’t meet and define a good compressed, mip/clipmap, tiled, animated and royalty-free texture format? So far we got is the Microsoft DirectX Texture format … and is propietary and blah blah
So, to resume… I want to define a new texture format standard which supports all the mentioned features(tiling,mipmaps,cubemaps,animation,etc) with a new texture compression algorithm that could reach JPG-JPG2000-WMP ratios and, ofc, an API to read/write/manage this new format. This new format and features must have the corresponding HW-support ( compress/decompress in realtime, cubemaps, etc… )
thx