I have a new demo up demonstrating a post-process antialiasing technique. Antialiasing algorithms generally come with four letter acronyms, like MSAA, SSAA, CSAA, MLAA, SRAA etc., so in that tradition I think GPAA (Geometric Post-process Anti-Aliasing) would be a decent name for this one. It works by using the actual geometric information in the scene to figure out how to blend pixels with the neighbors.

As with all kinds of "social" stuff, I'm late to jump onto the bandwagon. I transformed my personal homepage to a blog long after blogging turned cool.
I joined Facebook long after everyone else did. Seemed like a waste of time to me. Eventually I kind of realized the value of it, it keeps you connected to a lot of people that you otherwise would not keep in touch with. Although it's true it can easily become a time sink. You just need to learn to filter out the noise.
So this Twitter thing came along. For a long while I thought it was pretty pointless. Well, recently I've been reading some people's twitter regularly and kind of realized the value. It's a great way to share thoughts, links and short insights to other people that might be interested. Things you have no time to write a lengthy blog post about, or don't really make sense in blog form. Of course, it's a matter of following the right people. So I finally signed up. And I even tweeted. I have no idea how frequently I will tweet, but I'm sure I will have something of interest once in while.

An unfortunate consequence of being late is that the name "Humus" tends to be taken. So I will be known as "_Humus_" on twitter. Back in 1998 or so when I picked up this nickname it was rather unique. It was never taken if I signed up for something. Guess I didn't compete with as many people back then as with the global mainstream services of today, besides probably being more of an early adopter back then.

Even though I have written demos for over a decade now, I have never been part of the demoscene, never gone to a demo party, and only once in a long while have I ever really run the demos that come out of the demoscene. This tends to surprise people when they get to know me if they happened to have followed my site before. In general, I've been more interested in pushing the boundaries in terms of visual quality and performance in general, rather than squeezing the most out of a particular machine or shoehorning things into tiny executables. I did at some point in my early years give 4K demos a try, maybe around 1999 or so, but I gave up pretty quickly. With even an empty main() I got an executable that was 27KB IIRC. So I figured I had a few things to learn. Well, skip forward to 2011 and I got a renewed interest in the subject, and after a little research on the subject I was up and running with a simple OpenGL app that compiled to like 950 bytes or so. Given the small size I thought it would be cool to aim for 1K instead of 4K since that was within reach.

So I made another Mandelbrot viewer, since it's something relatively compact I thought I would be able to do quickly. A Mandelbrot viewer is perhaps the most original idea, I mean, it's not something that hasn't been done before, in fact I've done several myself before, although this one has the smoothest gradients I've managed to make so far. However, the project took far more time than I had originally anticipated. Once it was visually and functionally complete, I was somewhere over 1400 bytes. In the beginning it was rather quick to trim it down, shaving off dozens of bytes with every change. Until I got down to like 1100 bytes, after which I was happy to cut off another 5-10 bytes after an hour's work. Eventually after I got down to 1045 bytes I got kind of stuck and rewriting it all in assembly might have removed another few bytes, but I wasn't sure if it would be enough to shave off 21 bytes, so instead I changed the functionality a little. Thus there are two versions of the executables, one that's small enough to fit within the 1K limit, and one that contains the originally intended functionality, and thus is like 55 bytes larger.

If anyone knows any good tricks for slimming it down further that I might have missed, please let me know.

When we were in China we went to a professional photo studio to take wedding style photos. It was a massive project with many full days invested in it, but the result was well worth it. I have added another gallery with the resulting pictures.

Speaking of the state of hardware, Just Cause 2 was kind of early to dump WinXP/DX9 and go DX10 exclusive back in March. I argued back then that this was the right thing to do, despite that at the time a relatively large group of people would not be able to play the game on their systems. I estimated it to 40% in this post from February. Today I would estimate it at maybe 15-20% given 25% left on WinXP of which a number of low-end systems (DX8, SM2.0 etc) would not be able to play a DX9 version anyway. Of course, it's also questionable if those SM3.0 cards would be able to render anything at an acceptable framerate given a DX9 version. Such a version would pretty much only exist for those on XP with DX10 cards, which would be about 10-15% of the market.

In the case of JC2 the decision to go DX10 exclusive for PC was actually made already back in early 2008. A radical move indeed, and given the slow adoption of Vista I suppose it was a good thing that the game got delayed, which of course happened for entirely different reasons, but having the game released some time after Windows 7 certainly helped make JC2 on PC available to a wider audience.

Today of course the situation is different. You'd be crazy to spend development effort on supporting DX9. It's great to see our friends over at DICE reaching the same conclusion. The amount of flexibility you have in DX10 over DX9 is huge, in addition to the performance advantages. You can simply make a better game if you focus on DX10 and above. When it was revealed that JC2 would only support DX10 this created quite a lot of criticism. Once the demo was released though almost all such criticism pretty much instantly went away. The result was speaking for itself.