simon brown


home

articles

code


Valid HTML 4.01 Transitional

Get Firefox!

PS3Here 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.

Coping with distraction - Mar 21, 2007

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.

Released squish 1.9 - Oct 2, 2006

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.

Released squish 1.8 - Sep 2, 2006

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!

Paint.net gets squished - Aug 8, 2006

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!

Released squish 1.7 - Jul 25, 2006

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.

More bugs fixed in squish 1.6 - Jun 29, 2006

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.

New squish 1.5 release - May 30, 2006

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.

Another bug fixed for squish 1.4 - Apr 30, 2006

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!

Bug-fix squish 1.3 release - Apr 8, 2006

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.

Optimal single-colour DXT compression - Mar 3, 2006

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.

Other people finish them too - Feb 28, 2006

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.

Smaller projects get finished - Jan 19, 2006

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?

RIP meshtools - Oct 9, 2005

If you're wondering what happened to meshtools, then I've put up a page here as its final resting place.

Lumines FTW! - Sep 17, 2005

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...

All change - Sep 10, 2005

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.