Tuesday, December 6, 2011

Houdini and 3DS Max

Before I talk about our project, I would like to discuss our tools. That is rather typical of me; as you might already know from my blog, I love tools, especially UNIX-style command line tools which can be combined into exponentially-many behaviours. With this in mind, if you know Houdini, then you won't be surprised to hear that Houdini is my favorite 3D modeller by far.

And if you don't know Houdini, then you are probably wondering what the hell I am talking about.

3D software packages are usually very large, monolithic applications, the very anti-thesis of the "do one thing and do it well" philosophy of UNIX tools. Houdini is different, and in order to highlight that difference, let me compare my Houdini workflow to my 3DS Max workflow.

Houdini and 3DS Max.
Even though their logos are strikingly similar,
the two 3D packages could not be more different.

Maybe I'm just spoiled by Houdini, but I don't feel like 3DS Max deserves its popularity. I created a sofa using box modelling, and although we are very satisfied with the result, my early attempt resulted in a dead end. It's a very frustrating workflow: you work for a while, discover that you forgot to do something important at the beginning, start over again, discover something else... I have no doubt that more experimented modellers can model entire objects without having to start over even once, but until then, the learning process is painful. It doesn't have to be this way.

There is a reason why they call this "box" modelling.
Just kidding! Box modelling creates curved objects, it's just that the
real-world IKEA Klippan I was trying to reproduce is very blocky.

Fortunately, 3DS Max has other modelling methods which are much more forgiving. Each 3D object starts with a mesh, but this mesh can then be transformed, squashed, spherified, intersected... You can apply an entire stack of modifiers on top of your mesh, and if you make a mistake, it's easy to go back and change earlier modifiers.

By combining a few modifiers, it's possible to create very interesting effects. For example, a couple of smooth transforms and a path deform modifier are all you need to create pillows for the popular IKEA PoƤng chair.

The real-world pillows look a bit more comfortable, though.
Maybe it's because the fabric wrinkles are missing?
Hmm, such comfortable wrinkles.

Once I figured out the right combination of modifiers which produces the effect I was looking for, I could simply apply the same modifiers to my other pillows in order to obtain the same effect.

Did I say "simply apply the same modifiers"? What I meant to say was: "painstakingly apply the same list of modifiers you just applied to the last ten pillows, remembering to set each modifier's many parameters to the correct value, again and again". It doesn't have to be this way.

In Houdini, the sequence of modifiers could be isolated and given a new name, "pillowify". This is analogous to creating a shell script, thereby giving a name to a useful sequence of commands. Isn't this awesome? Now you see what the hell I was talking about!

Rock on!!!

(note: This is not a picture of Houdini. This is bash. Houdini looks much better.)

3DS Max is not as bad as I'm picturing it here. I managed to create this great looking furniture, and even to impress Nadya with my mad 3D skillz! Plus, since she will continue using MAX for the foreseeable future, I'm sure she will show you areas in which 3DS Max shines. As for me, I have discovered Houdini, and I don't want to go back. In my future posts, I plan to demonstrate the UNIX-style tools I'll be creating inside Houdini, and the effects which can be obtained by combining them.

Stay tuned!

No comments:

Post a Comment