Category Archives: Houdini

Houdini related topics.

VOP COP Raster Depths

This was an odd video to do since it seems to be a simple topic but when talking about it out loud it starts sounding complicated. I’m basically covering several sub-topics which support the overall topic. Despite the confusing ramblings in the video, what you should take away from it is that in VOP COPs, the “Raster Depth” setting can cause results to vary depending on the data generated inside.

The hip file I’m using is actually based on a workshop that used to be online (but doesn’t appear to be anymore). I used it because it had the exact components to demonstrate everything.

Also, I’m sure my friend Jason will say that he is in no way regal when it comes to compositing, but seeing what he’s been up to lately certainly indicates that he knows what he’s doing :).


Sprites On Points Digital Assest

Sprites are pretty cool, but in a clean install of Houdini you can only use them on particles using the Sprite POP. It turns out, you can add some attribute trickery to make sprites work on plain ol’ points. The cooler thing is that this Sprite SOP concept works in Houdini Escape (which doesn’t have particles). I wrote a full blown help for it too, with an icon and all – which basically copies the Sprite POP language and replaces “particles” with “points”. Yes, this has been done before. But let’s face it – that one’s old.

You can find it on my Houdini page or you can get the asset directly from here.

For those interested, here are the attributes you need to get sprites on points:

  1. spriterot: class: point, type: float, size: 1
  2. spritescale: class: point, type: float, size: 2
  3. spriteuv: class: point, type: float, size: 4 (spriteuv[0] = U-offset; spriteuv[1] = V-offset; spriteuv[2] = U-scale; spriteuv[3] = V-scale)
  4. spriteshop: class: point, type: string

Varying Materials Using A Single Shader

Nothing ground breaking here, but for someone who is into neat little tricks to control shaders, I thought this was worth showing. What the video covers is a way to vary the materials on a single object using a single shader (differing from the usual method of using multiple shaders for different pieces of an object).  I’ll leave it at that and let the video do the talking. I’m starting to record at my screen’s native resolution (1680 x 1050) which ups the video size but I like seeing big videos.  I’m also posting these on Vimeo which I think is nice to have since you’re not always on a machine that you can download videos on.

Note: Video re-done on 5/25/2009. I thought it could be cleaner and more focused on production nuances so I re-recorded it.

Houdini Python COM Conclusion

After getting something working, and continuing off and on with trying to get it to work, I have come to develop some concepts about using a Python COM method to poll 3DConnexion data.

  1. The operators at the geometry level (the Python operator and Script SOP) are unable to poll the data. This seems to be due to cooking issues as well as the geometry operators using the hou module only to create/manipulate data.
  2. The operator at the object level (the Python operator) does poll the data, however it seems that this polling becomes the dominant process in Houdini and you can do nothing else or stop the polling.

So the conlcusion that can be drawn is that the Python COM method for polling data is not a viable one. The idea of having Houdini write the values of the device to certain parameters and see the results in real-time just doesn’t seem to work. It is certainly possible I am overlooking something however I’ve spent a lot of time on this and with a working and better alternative out there now there isn’t a pressing need to continue. This project has helped me learn a lot about Python in Houdini as well as the common object model so the effort wasn’t entirely without gain. Now it’s time to move on and continue to learn more about Houdini!

Houdini And 3DConnexion Devices

Yes – I have something working! Read on for the story and where I’m at:

I’ve noticed a problem with a lot of animated shorts and student work: The camera work is atrocious. It seems like all the time is spent on perfecting the modeling, animation, and shading, then in the last 10 minutes of production someone puts in a camera and animates it going to the left. Seeing this as a major issue I thought that there must be a better way to have the camera animated easily and a whole lot better. I then recalled I had a 3DConnexion SpaceNavigator that I never use because no applications I use support it. The whole line of 3DConnexion devices might be just what animators need to have better control of their camera. Continue reading Houdini And 3DConnexion Devices

Houdini Occlusion Asset

I’ve received a few requests for an asset of the occlusion inline VOP I used for the occlusion video so I thought I would put one together. I call it “Occlusion 2” mainly because it’s the second occlusion VEX function. The occlusion VOP that comes with Houdini is actually the first function which gives you occluded irradiance which is a bit different from the occlusion we’re typically used to. I bet Houdini will eventually have this second function added in VOP form, but until then you can add it with this asset.

I put a help section in the asset, though as it’s not working right now, I’ll say that there is an added output called occlusion which is basically 1-coverage. Using this removes the need for the later subtraction step I note in the video. If you would like to see the help you can right click on the VOP, go to Type Properties, then go to the Help tab.

You can find the asset here (also linked to on the tutorial page).

  1. v1: Initial Release

Houdini BRDF Asset

I’m not sure why illuminance loops fascinate me so. It could be because I never had access to such a cool feature or maybe it leads me to re-visit classic bi-directional reflectance functions (I like the math). Whatever the reason, I decided to create a brdf VOP digital asset so you don’t need to type a lot to get the functions I describe in Part 3 of the Image Plane tutorial series. What’s interesting is that Peter Bowmar has created an asset for this already, but I wanted to learn how to make a digital asset. The interesting is that I didn’t look a Peter’s asset at all so I went about writing the code for it in my own way. It turns out we did it quite different.

One issue that arose though is that the help file and built-in Houdini icons don’t work as described in the Custom VOPs tutorial, so though the help file is written in the asset it doesn’t work right and there are no icons (at least the one I wanted to use).  Another issue is that Houdini (at least in 9.5) has the limitation that you can’t get illuminance loop derived image planes from area lights.

You can find the asset here (also linked to on the tutorial page).

  1. v1: Initial Release
  2. v2: Adding a parameter to rough now works.  The fix causes the rough not to be hidden when diffuse is used, but it doesn’t case any harm keeping it unhidden.
  3. v3: Added string input parameter so you could select the BRDF type after promoting the inputs.