"You cannot strengthen the weak by weakening the strong. You cannot help the wage-earner by pulling down the wage-payer. You cannot help the poor by destroying the rich. You cannot help men permanently by doing for them what they could and should do for themselves."
- Abraham Lincoln
More pages: 1 2 3 4
3Dc texture tool
Monday, May 31, 2004 | Permalink

I've started playing around with the 3Dc normal compression format now that I have an X800pro card. For this I quickly wrote a small commandline tool for my convenience, and of course I'm sharing it with anyone out there that's interested. It's available for download in the cool stuff section.
It's a very simple tool, and you'll need the texconv.exe file from the DirectX9 SDK for it to work, but it's very convenient. Make a shortcut to it, and just drop a heightmap image file on the shortcut. The tool will create the output 3Dc file in DDS format in the same directory as the source file. DDS loading code is available in my framework, which I btw updated to support 3Dc, in Direct3D at least for now.

Anyway, I'll have a 3Dc demo up some time soon. Depends on how much spare time I will have.

Name

Comment

Enter the code below



Nico
Friday, June 18, 2004

Humus, are you sure your converter works? It seems to me that you store the 4x4 pixel blocks in that order in the file: 3bit-indices for the x channel, min and max x, 3bit-indices for y channel, min and max y (at least it looks like that in my hex editor). I thought the right way was: min and max x, 3bit-indices x, min and max y, 3bit-indices y. However, I'm not sure if this *is* the right way or if you store the texture as I think you do. It's just that I'm currently too stupid to decode the textures your program produces, so I thought I complain here

Seriously, could you enlighten me what the correct layout for the 4x4 pixel blocks is? I couldn't find anything about that for the web (only the hint that it's basically like DXTC5).

TIA.

Anonymous
Friday, June 18, 2004

"about that ON the web", that is of course

Humus
Saturday, June 19, 2004

Yes, I'm sure it works. I can load and use the files. The bit order is min/max then indices. First for y, then for x.

All the dirty details can be found in DXT5 alpha decoding here:
http://oss.sgi.com/projects/ogl-sample/registry/EXT/texture_compression_s3tc.txt

MesserFuerFrauSchmid
Monday, June 21, 2004

I would not say it is a useless feature, I can actually see more use in this than in 3dc. As batching draw calls is besides CPU calculations the main bottleneck in today games. And this feature can become very handy especially in stuff like I've got 10000 army units 1000000 trees/grass in a terrain or whatever. Packing many objects into the same vertex buffer does not always work. Besides vertex buffer size is very limited or better say the index buffer. And index buffer splitting is more complicated than you think

Humus
Tuesday, June 22, 2004

Instancing is not useless, but not very useful for the absolute majority of the applications out there. It solves a very atypical problem.

More pages: 1 2 3 4