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