Interesting news for people creating large DXT textures. The new Texture Tools suite from from NVIDIA features a GPU-accelerated compressor that can run an order of magnitude faster than the CPU-based tools:
http://developer.nvidia.com/object/texture_tools.html
And an overview from Beyond3D:
http://www.beyond3d.com/articles/nvtool ... x.php?p=02
I haven't had a chance to try them out myself yet.
--Chris
New Texture Tools from NVIDIA
- t00fri
- Developer
- Posts: 8772
- Joined: 29.03.2002
- Age: 22
- With us: 22 years 7 months
- Location: Hamburg, Germany
Re: New Texture Tools from NVIDIA
chris wrote:Interesting news for people creating large DXT textures. The new Texture Tools suite from from NVIDIA features a GPU-accelerated compressor that can run an order of magnitude faster than the CPU-based tools:
http://developer.nvidia.com/object/texture_tools.html
And an overview from Beyond3D:
http://www.beyond3d.com/articles/nvtool ... x.php?p=02
I haven't had a chance to try them out myself yet.
--Chris
That code is apparently based on Simon Brown's squish-1.9.
http://www.sjbrown.co.uk/?code=squish
I am in contact with Simon since a while and about to implement his code also into my forthcoming 'txtools' for compressing DXT5nm and DXT3. Simon's compressor indeed has a smaller RMS error than the "classical" nvDXT code, but the code I have is really slow. So the catch is clearly the GPU support.
Speed was the reason why I have subscribed to the latest DevIL library for now.
I am also in discussion with Simon, how to speed-optimize DXT5nm compression, given the fact that due to the texel normalization condition of normalmaps the DXT compression is effectively a 2D task rather than a 3D one...
Bye Fridger
DXT5nm stores only the X coordinate of the normal in the color block. I wrote a single channel cluster fit implementation and without SIMD optimizations it performed slightly slower than generic SIMD optimized color compressor. Since the input is now scalar, SIMD optimizations are not as easy to implement and not as efficient, so I wouldn't expect a large speedup.
On the other side, it might be a better idea to brute-force it. You would store the X component on the G channel that as 6 bits of precision, so the total number of possible endpoint combinations is 2^6*2^6=2^12=4096. 4096 error evaluations might be faster than ~992 least squares minimizations.
On the other side, it might be a better idea to brute-force it. You would store the X component on the G channel that as 6 bits of precision, so the total number of possible endpoint combinations is 2^6*2^6=2^12=4096. 4096 error evaluations might be faster than ~992 least squares minimizations.
I downloaded it.Can I use it in the same script of the nmtools or does it require some compiling?
icastano wrote:DXT5nm stores only the X coordinate of the normal in the color block. I wrote a single channel cluster fit implementation and without SIMD optimizations it performed slightly slower than generic SIMD optimized color compressor. Since the input is now scalar, SIMD optimizations are not as easy to implement and not as efficient, so I wouldn't expect a large speedup.
On the other side, it might be a better idea to brute-force it. You would store the X component on the G channel that as 6 bits of precision, so the total number of possible endpoint combinations is 2^6*2^6=2^12=4096. 4096 error evaluations might be faster than ~992 least squares minimizations.
Keep in mind that the library is still in alpha and there may be bugs or errors. In particular, I recently fixed a problem in the normalmap mipmap generation, that is still not fixed in the official binary release from NVIDIA. So, for now consider it an evaluation version and if you find any problems or have any comments feel free to send them to us.
Thanks!
Thanks!
-
- Posts: 1510
- Joined: 07.09.2002
- Age: 59
- With us: 22 years 2 months
- Location: Albany, Oregon
From what I read, the CUDA libraries are also compatible with the 7 series cards as well. I have them installed and have played with them a little. Again we are still limited to doing small textures, albeit at a slightly faster pace.
Don. Edwards
Don. Edwards
I am officially a retired member.
I might answer a PM or a post if its relevant to something.
Ah, never say never!!
Past texture releases, Hmm let me think about it
Thanks for your understanding.
I might answer a PM or a post if its relevant to something.
Ah, never say never!!
Past texture releases, Hmm let me think about it
Thanks for your understanding.
dirkpitt, CUDA is not just a programming language or a new API, but an entirely different hardware architecture. In order to do high quality DXT compression on the GPU you need thread communication and synchronization and it's possible to do that only with G80 hardware and up. It also uses integer arithmetic extensively, which is only available on most recent hardware.
Hope that addresses your concerns.
Hope that addresses your concerns.