Wednesday, November 28, 2012

NeoTextureEdit 0.6.4 Released

I just released a new version (0.6.4) of NeoTextureEdit (my open source graph-based procedural texture editor). The major additions in this version are

Spectral Control Widget

you can now control the individual frequency bands of the perlin noise pattern via a simple widget. This allows you more control than the standard persistance parameter that gives you only an exponential falloff:

Directional Blur

the addition of an anisotropy parameter and an angle to the blur filter allows you to perform directional effects:

Modulus and Math1 Filter

The modulus filter was contributed by a user (Talin) and allows you to create an u-coordinate dependent color shift. The Math1 filter perform simple single-input math operations (like exponentiation for gamma correction, or single channel multiplication/add):

Node Folding

this feature was requested by a user and should help reduce the visual clutter in larger texture graphs:

You can download the latest version of NeoTextureEdit at Sourceforge or visit the Homepage for more information about the features.

Thursday, November 8, 2012

Hammersley Points on the Hemisphere

I wrote a short collection of notes that describe how to use the Hammersley point set in 2d for generating fast sampling points on the hemisphere. The notes can be found at
The Hammersley point set is one of the simplest quasi-Monte Carlo sampling patterns and in 2d it can be efficiently generated with a couple of bit operations (and some floating point multiplications). It is thus a good candidate when some 2d sampling pattern is needed inside a shader program and is a good alternative to using a look-up table in many applications. The article focuses mainly on generating sampling points on the hemisphere but the point set can of course be used for many other applications like shadow map filtering or screen space ambient occlusion.
Here is an image of the pattern for 16 points:
In the article above you can interactively change the number of points to see how the pattern behaves.