|
Here are some
pages I keep on the world-wide electric interweb. Some of this stuff used to be
hosted on a game development site I wrote demos for, the rest is just stuff I
write from time to time.
My present employer is Sony
Computer Entertainment Europe, where I do a mixture of low-level GPU and
graphics tools programming for a certain next-generation console. Previously, I
worked for Just Add
Monsters (who are now Ninja Theory) on Xbox and next-generation PC
technology.
Work takes up most of my keyboard-time, but I like to occasionally post my
thoughts up on this site.
So I had a few months off, devoid of thinking unless monetary rewards were involved. Having got over this slightly unproductive phase I am highly motivated to write more stuff, starting with the newest squish release. You may have noticed that squish is now the core compressor in NVIDIA's very own Texture Tools, many thanks are due to Ignacio Castaño for releasing the source code and letting me roll all the improvements back into the main release. Also thanks to Fabian "ryg" Giesen for the single colour table symmetry trick. The main feature of squish 1.10 is that cluster fit is now 4x faster than the previous release, grab it from the squish project page. Many thanks to the contributers for squish 1.9. There a 3 major updates in this release: - There is now a build setting for SSE1 instructions only (vs SSE1 and SSE2)
- The Xcode project now builds a universal framework
- The cluster fit algorithm has been made iterative for further image quality improvements
See the DXT Compression page for details of the iterative cluster fit algorithm. Many thanks to the contributer of the latest squish patch, which has significantly improved the speed of the SSE build of the library. This patch is based on the observation that the library can function just as well with trunc instead of floor, which maps much more efficiently to SSE (and with no difference on Altivec). Winnar! Friend and colleague Dean has written a DDS plug-in for Paint.NET that uses squish for its DXT compression (and decompression). This is most useful for those of us who cannot afford the dark arts of photoshop. He has also been kind enough to make the plug-in open source. Neato! Another maintenance release of the squish library. The changes are listed on the project page, thanks again to the people who sent in bug reports and suggested fixes. Just another bug-fix release of the squish library. The major fixes are for the unexpected transparent pixels when using DXT1 compression, and for compression of images with arbitrary dimensions. Many thanks to those who sent in bug reports and suggested fixes. Hmm perhaps I should be considering dot releases. Anyhow, this release of squish actually has new features! Both are improvements suggested by library users, but I will be shamelessly claiming that they are my own ideas from now on. Firstly, a new function that compresses a DXT block with a mask that only enables certain pixels. This can avoid undesirable colour biasing for images that aren't an exact number of blocks. Secondly, a new flag that weights each colour by its alpha value, which can significantly improve the perceived quality of the image when it is rendered using alpha blending. Released version 1.4 of the squish compression library. This is to fix an area of stack abuse in the 3-colour range fit implementation. My bad! Released version 1.3 of the squish compression library. This is to update the visual studio and makefile build process and work around a problem with the SSE implementation of vec_floor. Released version 1.2 of the squish compression library. This adds a provably optimal single colour compressor for much better results for posterised images. I've added a quick description of the algorithm to the DXT article, but as always you can just grab the source code if you want to take a look. So it turns out that there are a couple of other open source DXT compression libraries out there on the electric interweb. I've updated the squish page with links to the competition, as well as posting up an updated version that fixes a DXT1 bug and adds a few API helper functions. Behold! I have done more stuff. I've always been surprised that no-one has written an open source DXT compression library, since the only passable DXT compression seems to come from the binary-only executable written by NVIDIA. So I've written an article on DXT compression techniques, and packaged up the implementation in a free library I call squish. It's a touch slower than the NVIDIA compressor, but the compression quality is pretty much identical. Did I mention it's free and open source? If you're wondering what happened to meshtools, then I've put up a page here as its final resting place. Work gave us each a PSP, which was nice. If you're going to buy one game for the system, then I recommend Lumines. It plays a bit like a cross between Rez and Tetris, is fantastic in motion (screenshots really don't do it justice), and is terribly addictive... I've removed all the stuff that I have no time to finish, redone the site back-end in php so I can maintain the rest with minimum effort. If you were looking for something that has disappeared, then drop me an email at si@sjbrown.co.uk and I can sort you out.
|