Monday, October 20, 2014

Divergent: CG Dog & Houdini Feather System

While I was organizing my latest reel I thought it would be fun to make some gifs of my work in the past few years. The first one and my favorite project so far at Method is Divergent. For the film I lookdev'd a cg dog and some cg ravens. Conveniently someone already made a gif of the dog that I did for the mirror room sequence.

The Dog
The dog was a pretty straight forward fur groom. Of course I used Houdini's fur grooming tools, not quite out of the box but customized for better control. The challenging part of this groom was the length of the fur and the fact that I had to match a live dog exactly. Long fur tends to have S shaped bends where the fur bends back on itself a couple times. To get this effect I combo'd direction, curl, and frizz attributes. It wasn't always a perfect S curve but it got close enough. The on set crew filmed a live dog but due to the complexity of the sequence and the infinite mirror reflection the environment, we had to supplement the further back reflections with a cg dog. This combined with the fact that I also had to do a jaw replacement for the dog in a few shots, half his face real half cg, and a few full cg hero dogs, the dog had to match perfectly. This just meant a lot of time with a line up camera going back and forth between the live dog and the cg one. I learned a couple of things on this groom. First was that its sometimes easier to to get precise coloring with painting color attributes in Houdini rather than relying on a texture artist. Since most texture artists don't have much experience with fur, they tend to just paint color patches where they see them. This is problematic with long fur though. Since the fur gets it's color from the root point attribute in Houdini, you have to paint the patches a little offset from where it's supposed to go. I found the feedback loop was much faster to handle this in Houdini rather than back and forth with a texture painter. When I say that I painted color attributes, I mean I painted masks on the geo and drove all of the color in the shader. I believe I had about 15 different mask attributes to drive patterning in this groom, from root and tip color to fades and solids. In addition to handling the shot lighting, the lighters also had to run the fur sims for the dog. Once I dialed in the sim settings, I created a system for the lighters to paint in areas of fur floppiness and a dial to easily control how much floppiness the fur needed in what area. In the end, I'm proud of how the dog turned out, I even got a full cg dog shot, the one in the gif above.

The Ravens
The ravens were a bit more technically challenging than the dog. I ended up using two fur systems and a feather instancing system for various areas of the bird. The easiest feathers were the ones on the head. Those are the finer feathers that look almost like fur. For that I used a straight ahead Houdini fur procedural. The body feathers were slightly trickier. They needed to look like actual feathers and the VFX Supe wanted them to be ruffled up as well. This meant that a displacement map wouldn't work as well as actual geometry. I ended up modeling about six feathers of varying sizes from curves in Houdini. I then made my own grooming system for instancing these feathers. I could paint direction and size and even had the control to animate the feathers raising and lowering on the back of the bird. From these attributes I used Houdini's fast point instancing to put these feathers on the birds at render time. It was a pretty efficient way of getting a really nice textural feel for the body of the ravens. For the wing feathers I modified the fur system to generate fur to look like flat wing feathers. This was a little tricky to do and I built off the work of some of my coworkers earlier feather jobs. In the past at Method, our earlier birds were modeled with curves and I was the first to use the fur procedural for them. Part of the system required grooming every feather to the right shape. Since then, I've modified my feather system on later jobs to use modeled outlines of feathers to derive the shape. The system worked pretty well and the render times were fairly reasonable, though when we got up to 15-40 birds in the frame at a time, some of them full frame, renders started taking a little longer.