# Open Source Voxel Renderer

Unfortunately, as probably anyone reading this has noticed, this site has gone pretty quiet for a while as my spare time for working on this projects has significantly dropped. Rather than leave the code to sit idly til I can find the time to work on it, I’ve decided it’s in the best interests of everyone to open source it. Hopefully people can make better use of it than I can!

The code can be found here on github.

Enjoy!

# Maya Noise Deformer Plugin

Once again a little off the usual track for this blog, but I’ll be back to the Nuke tools soon (I had an unfortunate incident with my laptop where a lot of my dev work got lost, but should be back on track soon). In the meantime, here’s a little proof of concept plugin I’ve thrown together for Maya – A noise deformer! Why Maya doesn’t have one in the first place is anyone’s guess, but this simple little script will apply a basic perlin noise to a mesh with a locator to manipulate it’s effect. The script is fairly basic, as trying to calculate noise on a heavy mesh in python would be too computationally expensive, but with the theory in place it should be relatively easy to recreate it in C++.

# Frustum culling in Maya

A little off the norm, but this is going to take a look at the mechanics of frustum culling and a practical application in Maya. For anyone unfamiliar with the concept, frustum culling is the process of determining what objects are within the render view, usually prior to rendering to reduce the amount of computation required, but it has a lot of practical uses. We’ll take a look at the theory and why it works, and then follow it up with putting it in practice in Maya.

# Flow – Water Simulations in Nuke

At last! I finally managed to carve out the time to get this out – Water simulations in nuke!

The tool treats the image as a 2D height field, with each pixel as a column of water and a given terrain. The water flows into adjacent pixels based on the height difference and a given user controlled slider. Due to the nature of this method, water can’t travel faster than a pixel per frame, so for large scale images re-timing will be necessary for faster effects.

# Texture Tiling with Voronoi

A quick little tool I threw together one evening as I was fascinated by how it worked! The original method for this was written up as a shader by Inigo Quillez, who if you’re not aware of, you should definitely check out! The basic concept is simple, avoid repetition in tiling textures by scattering the image using a voronoi pattern, and blending it together based on the voronoi cells. I made some modifications to allow control of contrast and scale, and it works beautifully. See for yourself:

# Coming soon…

Sadly, I haven’t had time to develop anything new this month (at least, nothing free to publish). I have some plans for new tools, and some partially finished updates for existing ones, so hopefully March will be a much more productive month! Until then, here’s hoping the current state of the water reflections tool is of interest enough.

# Screen Space Reflections

Between Christmas and a new job, this update has been longer coming than I’d have liked. The tool still hasn’t made it to release levels yet and as you can see, the results are a little buggy, but here’s a quick breakdown of a very useful feature that will make the water renderer a little more interactive.

The basic premise is simple: Rather than calculate all our reflections in complicated and computationally expensive 3D space, we can calculate the reflections for only what’s on screen from just the render (provided we also have the point position and normals). This has some pros and cons, the advantage being that it is much faster, with the disadvantage that we do not have any information for what isn’t visible. This will affect any rays going off screen or behind objects, but there is an alternative solution for cheating these results.

# Water Renderer

Unfortunately I’m low on spare time at the moment, but development is still progressing! Here’s a quick sneak peak at what I’m currently working on, a water simulator and renderer for nuke:

# Voxel Volumes

At last, something exciting! This is a tool that admittedly, might not have a huge amount of use, but does have some fun features to play with. I’ve developed a set of nodes for generating, filling, lighting and rendering voxel grids in Nuke. You may also notice a new link above to a documentation page for the new nodes, as it includes quite a lot and could be confusing to use without a bit of an explanation.