VFT | OSL shaders in Blender

For my graduation project VFX Fractal Toolkit (VFT) I developed a couple of Open Shading Language (OSL) shaders to render volumetric fractals. I produced with them the following animations.

As a renderer I used Arnold and was pretty satisfied with the workflow. However I was wondering how difficult would it be to use the same OSL shaders in another renderer, e.g. Blender’s Cycles. Especially because I was trying to mimick OpenCL’s syntax in OSL (not the best idea, but helped me port OpenCL shaders which I built first), included couple of header files etc..

As it turned out it was a pretty quick process and everything worked out of the box, requiring only minimal changes. The only thing I had to change was to properly set up multiple node outputs. Arnold doesn’t support multiple outputs for an OSL node so I worked around it by outputting a 4×4 matrix type with encoded values in it and extracting them afterwards. This makes Blender’s shaders nicer and more readable, you can check the diff here.

The shading setup in Blender looks pretty similar to the one used in Arnold and also outputs similar results.

Screenshot from 2019-06-19 18-37-47

For the testing I used Blender 2.80 beta running in a Docker container.

Keep in mind that rendering such volumes is pretty slow and neither Arnold nor Cycles support OSL on GPU. I included the changes in blender branch of the repository (not for all OSL shaders yet, but you get the idea :)).

VFT | OSL shaders in Blender

FLIPs – RBDs interaction

In this post I will show a simple technique for FLIPs and RBDs interaction. Like in this example:

I decided to give it a try after talking to great FX TD Adam Guzowski. The task was like this: doing a setup where water would fracture RBD objects, would break RBD constraints and RBD objects would be pre-fractured based on the expected water flow.

Continue reading “FLIPs – RBDs interaction”

FLIPs – RBDs interaction

Houdini tip | Houdini native SDF volume into VDB conversion

Recently I found an interesting problem while trying to convert Houdini dense (native) SDF volume into a VDB SDF volume. My primary motivation was to save space – to discard voxels, which were too far away from surface. This is one of the main reasons why VDBs are usually superior to dense volumes. Note that in this post I will not go too much into details about volumes, but will post some links at the end of the article which explain the basics.

Continue reading “Houdini tip | Houdini native SDF volume into VDB conversion”

Houdini tip | Houdini native SDF volume into VDB conversion

Learning resources about VFX and CG

I would like to share with you a collection of presentations, research papers and theses on various topics of VFX or CG.


I am used to collecting good learning resources and keeping them around in case I will need them later. So it happened that my small list grew and I realized that I have quite interesting things collected from various places.

So I decided to create a repository at GitHub where I will continue to gather useful information which I come across. I am not trying to re-create a database of all recent cutting-edge research. It is more oriented on resources which are easier to understand, like presentations with notes and pictures 🙂 I have been most interested in resources about FX and volumetrics, so it is missing stuff in other areas like cloth simulation etc..

And this is also one of the motivations to host it on a git: similar-minded people can contribute with their areas of interest and hopefully we will end up with a nice pool of information which we can quickly refer to when needed.

I tried to make an easy system for adding new entries – simply add them into a json library file and the page will be automatically updated. More info about that in the repo.

I hope that you will find this resource useful 🙂

Learning resources about VFX and CG

Shaping particle simulations with interaction forces in Houdini

In this post I will try to explain principles behind implementation of the research paper Shaping particle simulations with interaction forces published by DreamWorks in 2014.
This technique allows us to create forces on particles which can result in variety of interesting motions, one of them resembling water behavior. This approach is more efficient than complex liquid simulations since it does not include volumetric operations (as in FLIP solvers for example) and is also easy to control and to combine with any other particle forces. I did this implementation in Houdini and VEX, but principles apply to any other software.


Continue reading “Shaping particle simulations with interaction forces in Houdini”

Shaping particle simulations with interaction forces in Houdini