Development of Functy has dropped off for quite a while as the code was in a relatively stable state, and various other things have been taking priority. But while code commits have been rare, posts on this site have been even scarcer.
I’m therefore pleased to say that over the last few weeks I’ve actually found the time to do a bit more development, and hopefully I’ll be able to post some info about the expected changes as well.
There are two main developments, one a feature addition, the other a major optimisation:
- As well as defining colour functions, I’ve also been adding in the functionality to wrap surfaces with texture maps.
- All of the function rendering code has now been moved into shader programs.
Both of these capabilities work, but need a little more care and attention to get them to a ‘production’ state. For example, adding textures has thrown up a number of problems (such as how to reference the texture in the function file) which I still need to address.
The move to using shaders has resulted in really quite significant changes to the codebase and it’s something I’m particularly excited about. The whole intention with Functy has always been to move the function calculation into shaders; it seemed like a perfect fit. To be honest though, I didn’t think I’d actually ever manage it. However, with a bit more experience and confidence using shaders from other projects, an injection of time and effort, and the impetus that fixed pipeline rendering is becoming a legacy approach, it seemed like a nice challenge to try to tackle.
Although there’s still some more work to be done here too, I’m quite pleased with the result, since not only does it allow the latent capabilities of the graphics hardware to be better utilised, it also generates better results (faster, more accurate rendering).
There’ll be more posts about both of these features in due course. In the meantime, as we enter 2012 I’m hoping it’ll also be possible to find more time to work on Functy further.