3Dc

mczak said:
Does the s3 patent even apply to the alpha component compression of DXT5? If not, 3Dc should be patent-free.

<OT rant>The patent office will grant you a patent on anything - be it trivial business methods (like amazon one-click patent) or things with lots of prior art (someone got a patent on "the wheel", just to prove the point). DXTC itself doesn't actually look like it should be patentable (too trivial - why do you think 3dfx invented a compression scheme which is 99.9% identical at about the same time?).
</OT rant>

I agree completely. The technology patent as it sits today is nothing more than a lawyer's paradise, and as such the net effect is that innovation and implementation between companies are severely stifled and retarded out of a fear of stepping on each other's patents. Companies sometimes are able to avoid this by way of cross-licensing agreements which basically state they will share technology and indemnify each other from lawsuits resulting from their shared patents, but such deals are far and few between to have any major impact on the general patent scam that companies like RAMBUS (and many other companies) have used in the past to try and inflict their will on the populace of Earth...;)

But even if DXTC is covered by a valid patent (remember - courts define validity, not the patent office)...

Yes, but it's scant comfort to me whether the dummies in the patent office, or dummy lawyers and judges in courtrooms, decide what is a patent and what isn't. (I don't mean to suggest these people are actually "dummies"--just using the word loosely to describe people with little to no technical backgrounds in their education or their experience.)

The solution to all of it is so simple and would break many of the chains keeping companies back from doing a lot more innovation than they do: outlaw the patenting of general concepts. For instance, the common patent today reads like "A device which does x,y, z" or "software that does x,y,z." That's bull, imo, is only language to gladden the heart of a litigating attorney, and is no more effective at getting anything concrete done than the idea of someone trying to *enforce* a patent on "the wheel" by suing GM, Ford, & Chrysler, for royalties...;)

If what was patented were actual circuit schematics relative to a "device which does x, y, z", and the actual source code framework for "software that does x,y, and z," with violations of generally stated concepts made impossible, and the definition of a patent violation narrowly restricted to the specific device schematics and/or specific source-code only, then I think we'd solve the patent problem and industry would take off like a rocket with innovation at an unprecedented rate. Of course, this would leave a lot of lawyers homeless, which is exactly why I doubt we'll ever see this much common sense invade patent law.

I think inventors [should] have only a right to patent their inventions specifically--not the general concepts behind them. Twelve people on the same day may have the same idea, but if only one of them is clever enough to design a device or a piece of software which can implement the idea, then while he should be able to patent his specific device or software, he of course should not receive a patent on the concepts inspiring him, as it is almost certain that others have considered those same general concepts long before he did. His achievement is the specific device, and that is all he should be able to patent, imo.

I know, I'm dreaming...;)
 
WaltC said:
Yes, but it's scant comfort to me whether the dummies in the patent office, or dummy lawyers and judges in courtrooms, decide what is a patent and what isn't. (I don't mean to suggest these people are actually "dummies"--just using the word loosely to describe people with little to no technical backgrounds in their education or their experience.)
And thus you display your lack of "education" or "experience". The examiners are technical people. Try getting a patent granted at the UKPO or EPO.

The rest of this was so wrong I've saved it in /dev/null
 
Simon, there are good patents, but there are more than enough examples of atrocious patents getting through.

I've had the experience of getting a patent, although I had a lawfirm do it for me, taking my initial draft and rewriting it in legalese. Generally, a professional firm will squeeze as many claims into the patent as possible knowing that the USPTO or EPO will reject them. It will then redline a bunch of the claims, revise others, and submit again. In general, depending on how much money you have, it will keep doing this until the patent is accepted.


Yes, the patent offices have technical people (remember, Einstein was a patent clerk), but they are overloaded by the sheer number of patents being published and the fact that patent examiners are paid far less than what their skills would get in the market, hence many of the best and brightest flock to work for the private sector.

The business process patents are perfect examples. Shopping cart!!? One click purchasing!?!? Reverse auctions!?!?

Sun is being sued by Kodak right now because Java uses dynamic linking!

Wang sued Netscape for the "Save As" feature of their File menu.

And on and on.
 
for anyone interested in the quality difference between 3Dc and improved DXT5, I made a simple comparison:
pic1:
original: http://bbs.gzeasy.com/uploads/post-1-1083837744.jpg
DXT5: http://bbs.gzeasy.com/uploads/post-1-1083837792.jpg
improved DXT5: http://bbs.gzeasy.com/uploads/post-1-1083837823.jpg
3Dc: http://bbs.gzeasy.com/uploads/post-1-1084519070.jpg

pic2:
original: http://bbs.gzeasy.com/uploads/post-1-1083837876.jpg
DXT5: http://bbs.gzeasy.com/uploads/post-1-1083837913.jpg
improved DXT5: http://bbs.gzeasy.com/uploads/post-1-1083837939.jpg
3Dc: http://bbs.gzeasy.com/uploads/post-1-1084519117.jpg

pic3:
original: http://bbs.gzeasy.com/uploads/post-1-1084519773.jpg
DXT5: http://bbs.gzeasy.com/uploads/post-1-1084519813.jpg
improved DXT5: http://bbs.gzeasy.com/uploads/post-1-1084519845.jpg
3Dc: http://bbs.gzeasy.com/uploads/post-1-1084519882.jpg

notes: In improved DXT5, G channel was put in A channel, hence the words"GinA".
I simulate the compress-decompress process of 3Dc in matlab, I originally planned to do the decompression in pixel shader, but due to unkown reasons, the result was not correct. And the specular component used is only power of 4, the difference between 3Dc and improved DXT5 may become bigger under higher specular situation.

Edit: change the pic's layout to a less misleading way, sorry H-X :)
 
Is it just me or really "improved DXT5" looks worse than simple DXT5 ?
This is really unexpected...

So you use R & A in improved DXT5? You might want to use G & A because G has higher precision.
Also did you write a scalar compressor for the color part for DXT5, or just converted the image and used a stock compressor?
 
Hyp-X said:
Is it just me or really "improved DXT5" looks worse than simple DXT5 ?
This is really unexpected...

So you use R & A in improved DXT5? You might want to use G & A because G has higher precision.
Also did you write a scalar compressor for the color part for DXT5, or just converted the image and used a stock compressor?

yes i got the same impression
 
The 'correct' way of doing optimized DXT5 is to only use G and A as the X and Y vectors. You then work out length of Z and normalize the vector.

In the Ruby demo this is the HLSL function that ATI uses do to that for 3DC

Code:
   float3 SiComputeNormalATI2N(float2 v, float zscale)
   {  
      v = v*2.0-1.0;
      float3 r = float3(v.x, v.y, sqrt(1.0 - dot(v.xy, v.xy)));
      r.z *= zscale;
      return normalize(r);
   }

Obviously that same function will also work with Optimized DXT5 (with components swizzled obviously). Just to be sane, the unused R and B components of the DXT5 textures should be black, otherwise you could screw up the compression.
 
Hyp-X said:
Is it just me or really "improved DXT5" looks worse than simple DXT5 ?
This is really unexpected...
How come? For me the improved DXT5 is much better than plain DXT5, what's wrong going on here? :?

Hyp-X said:
]
So you use R & A in improved DXT5? You might want to use G & A because G has higher precision.
Also did you write a scalar compressor for the color part for DXT5, or just converted the image and used a stock compressor?
Actually, I didn't do the DXT5 part myself( the program is taken from the shaderX), gotta find out what the original author really did.
 
Hyp-X said:
Is it just me or really "improved DXT5" looks worse than simple DXT5 ?
This is really unexpected...

So you use R & A in improved DXT5? You might want to use G & A because G has higher precision.
Also did you write a scalar compressor for the color part for DXT5, or just converted the image and used a stock compressor?

are you sure? plz check the right down of each pic again. :)
 
Colourless said:
In the Ruby demo this is the HLSL function that ATI uses do to that for 3DC

Code:
   float3 SiComputeNormalATI2N(float2 v, float zscale)
   {  
      v = v*2.0-1.0;
      float3 r = float3(v.x, v.y, sqrt(1.0 - dot(v.xy, v.xy)));
      r.z *= zscale;
      return normalize(r);
   }
I noticed the same thing, and I have a question: what does the "r.z * = zscale" do here?
 
For purely quality comparison I would 'emulate' 3dc but putting the X and Y components into the alpha channels of 2 separate DXT5 textures.
 
More on the Z Scale stuff... it could also be a range and precision thing. You scale the entire vector before compression by a constant amount which you then correct using Z Scale. There is also an alternative function that scales X and Y, which is obviously probably going to be for the same reason
 
If your entire normalmap only has small variations from forward, then you can use ZScale to allow you to greatly increase the precision of the compressed components. You would probably set this value using a constant when the texture was loaded. ATI doesn't seemed to have used it, but it's obvious someone thought about it.
 
If anyone wants to pass the execuatable, with the 3Dc textures in a format the hardware will recognise, I can run it over the hardware.
 
Back
Top