Bubbles in Houdini with Flip solver

Rendered simulation:

I am interested in fluids and in the interaction between different types of fluids so I started looking into a way to create the interaction between air and water. Specifically how to create bubbles.

Read more

Very early release of code

So this will be short, I’m going to put the source code online together with an example of how to use instancePc.This is by no means finished and by all means still a work in progress, but hopefully you can learn something from it. So I apologize if it breaks. At the moment I’ve only been compiling for Ubuntu 9.04 so I have no idea if this even works on windows. I will continue to create more step by step posts and examples when I have a bit of time.

from example file: lots of leaves with instancePc

Here is the source code with an example file:


VRAYprocedural – getting started 2 – compiling

Compiling a VRAYprocedural example

Compiling a SOP

After you have copied the samples folder from $HFS/toolkit/samples it is time to try and compile one of the examples. It is a little bit easier to compile a normal sop rather than a VRAYprocedural, so let’s do that first. The SOP_Star.C is easy to test.

cd $HOME/dev/houdini11.0/samples/SOP
hcustom SOP_Star.C

This will create SOP_Star.so in $HOME/houdini11.0/dso which is the default where hcustom will put plugins for most nodes. VRAYprocedurals are not loaded by houdini, but are loaded by mantra. They should be put in:
If all went well, you should be able to start up a new houdini and inside of a geometry node, lay down a star sop. A change to a plugin requires you to restart houdini. However changing a VRAYprocedural does not require you to restart houdini as it is loaded by mantra and mantra is only called when you launch a render.

How does it all link together?

VRAYprocedural flowchart

A flowchart of the VRAYprocedural connections

Read more

VRAYprocedural – getting started 1 – configuration

Getting started


Often the hardest thing is getting started. So I’m going to try and lay out plain and simple how I started and where to look for things. The goal for this post is to provide you with as much information on how to compile your first VRAYprocedural. You might already know a lot of this info as it can be found in the documentation or scattered on the forums, but let’s start easy and expand from there. Talking about documentation, Sidefx has added some pretty decent documentation online and you will be browsing through them often (bookmark!): General Houdini documentation and HDK specific documentation. There is also a bunch of good info on the odforce wiki.

On a side note, if you are “afraid” of programming/scripting/mathematics/goldfish :) /… there really is no reason for that. You just need to inform yourself better and “get over it” or “just do it”. So to help inform you there are plenty of resources out there, courses, video tutorials and books. Here is a list of some of the books that have helped me along the way of becoming a better TD: Technical Director books on Amazon

Read more

Houdini Development Kit (HDK) – step by step

What do I want? I want to have a delayed load instancer, that uses an external point cloud. So I would save all my points to disk and at rendertime each point would load the delayed load associated with it. What should be stored in the ifd? A single VRAYprocedural that at rendertime will access the pointcloud and load the various pieces of geometry from disk — and being a delayed load… throws the pieces of geometry out of memory again when they are no longer needed.

So after finding the need to render huge amounts of geometry and wanting to have control over it I decided to start learning the Houdini Development Kit (HDK). The next series of posts will cover the process of writing my own instancer and showing some of the results I got out with it. I am planning to release the source code and otls. I have just updated it for Houdini 11.0.

For those of you who had a look at some of the existing VRAYprocedurals, my instancer is a mixture between the VRAYdemofile and the VRAYdemostamp, but then with a lot more control attributes so it matches the behaviour of the copy sop.

As a taster, here are some images semi-related to the subject of instancing and hdk rendering:

A single fish geometry object

A couple of fishes.

A school of fish

Geometry at rendertime – instancing

Everyone loves the copy sop… and at some point everyone hates the copy sop. The main reason: system memory. For small-ish amounts of geometry the copy sop is great and can provide you with everything you ever needed… until you just want more. When you hit that memory limit you have to find a different way. So I went looking for alternatives. I had heard great things about the way PRman can handle huge amounts of geometry through delayed read archives and I wanted to have similar control in Houdini. And hey, Mantra delayed load does pretty much the same :) , but how to control a bunch of delayed loads effectively?

So what about “instancing”? That works, but you loose all the stamping goodness on the SOP level you had with the copy sop. What if I create my geometry piece by piece (could cache each piece to disk) and then try to instance those different pieces on to a bunch of points? That works, you can use the instancepoint() expression in combination with delayed load geometry shaders and modify the shader paths, each shader pointing to a different file on disk… Well, when I say that works, what is actually going on inside the ifd file?

Basic Instancing

Basic point based instancing

Read more

Hello world!


Welcome to my blog. This will be a blog about houdini, visual effects and some of my other effects related interests. I would like to keep the tone of this blog light and fun, but with in-depth information about how to achieve certain effects. I hope you will find some of the information (technical or otherwise) interesting! I have no idea yet how often I will be able to update this blog, time will tell. But I do hope to share some “good stuff” :) .

If you feel like replying to some of the posts, please keep it civilized. If you have made improvements to some of the files I will be sharing and you feel like sharing them back, you can contact me by email and I’ll see if I can add them to the original post – with credit to you of course :) .

Disclaimer: None of the information I share on this blog represents any opinions of my employers, it is completely my own. Also there is no guarantee that any of the information or files shared on this blog will work (for you). They are work in progress files to explore ideas and are by no means a final product.

That’s it for now, time for some content!

Peter Claes

Return top