3dfx's own Gary Tarolli decided to start a column as an answer to all the "so-called" technical inaccuracies floating around the net about a future 3dfx product. You can find his column here (-- With the demise of 3dfx, the link is no longer applicable, fortunatly Reverend has a copy at 3DPulpit). He tries to convince us that they, 3dfx, really have a fantastic technique that allows them to store 22bits of information in only 16bits of memory. So is it possible or not? Well let's think about it...

First of all what is 16 and what is 24-bit (32-bit color is 24-bit color with alpha values) color really? Basically you store Red, Green and Blue information for every pixel, and for each pixel you have either 16 or 24 (32) bits. Now we have to divide our available bits over the 3 base colors. For 16bit color this means that 5 bits are reserved for both Red and Blue and 6 bits are reserved for Green (this extra bit is due to the fact that the human eye is more sensitive to Green colors). For 24-bit color it's easier, all 3 colors get 8 bits assigned to them. So why is this important... well problems pop up when you try to create smooth color gradients. Suppose you have a picture of a 3D raytraced red ball (like in the QuakeArena IHV leaked demo) and you want to use that as a texture. Now this ball has a very smooth surface and due to lighting, it goes from very, very dark red (actually black) to very, very bright red (actually white). In between, you have a smooth transition. Now how many colors do we have for this transition? In 16-bit mode, we have 5-bits that can vary to create red tones, or 32 different levels. I think most of you will agree that it is possible to see the difference between 32 different shades of Red. Now in the case of 32-bits, we have 8-bits to use which to create a smooth red surface. This means 256 different levels! That's about 8 times better... 8 times less banding! Ok, now that we understand the problem, lets move to what Tarolli's claims:

" ... The Voodoo3 (and Voodoo2) renders to a 16-bit color depth. However, we have a special
technique that displays approximately 22 bit color depth...

Ok and how do you do that Mister Tarolli?

"... 3dfx does not wish to disclose it's proprietary techniques, so we haven't described exactly how
we display approximately 22 bits of color from 16... "

Very funny Mister Tarolli. This kind of thing reminds me of kindergarten. Some kid comes up to you and says: " I know what Peter said to Marry... ". You then ask: "What?" and the kid replies: " I won't tell you, na na na ...". You get the idea... often the little kid doesn't even know what Peter said to Marry... not that I want to claim that Tarolli is writing a lot of marketing crap, but think of it: why wouldn't he tell it? If it truly is so great, they must have a patent on it (as they do with many other thingsâ€¦ multitexturing), so their precious information should be protected. Why not explain it? Maybe its not all that great if you really find out how it works.

But lets assume for a moment the he can create 22-bits color info. How does that translate to shades of Red? They claim to get 6 extra bits through their technique, so we could spread them over the 3 colors and that would result in 5+2 = 7-bits for the Red component. This means that they should have 128 levels. I am tempted to say that its probably hard to see the difference between 256 levels (in 24-bit mode) and 128 levels (in 22-bit 3dfx mode). However, when you get close enough to a texture the problem is still there.

Now the next logic question is: Is this really possible ?

Well, as I understand it, Tarolli claims that they somehow have 24-bit info and dither it down to 16-bit info. Now instead of showing this 16-bit dithered image, they somehow try to reverse the dithering process. So basically they try to go back to 24-bits but only reach about 22-bits. Hmmâ€¦ Tarolli compares it with compressing and decompressing like JPEG. However, this claim raises a new question: what is the price you pay for this? I mean nothing comes for free with this kind of compression, JPEG for example introduces artifacts (we know those all too well), and they are the tradeoff, they are the price you pay. So what is the tradeoff that is present in the 3dfx system? Is it the two bits he loses (24 to 22)? Even more, JPEG has problems compressing certain types of images. Actually, when you have a lot of sudden color changes JPEG is in trouble. So what about the 3dfx method? Does it really work equally well on all kinds of data? More questions than we have answers.