top of page

​Featured Artist: Charles Trippe, Los Angeles

Hi, my name is Charles Trippe. I currently work as FX Lead at Zero VFX in Los Angeles. My job mainly consists of researching and developing the hero FX setups for use by myself and my team. In addition, I am also responsible for keeping Houdini integrated seamlessly into our pipeline by developing tools that make my job and the jobs of my team easier. 

I’ve been in the VFX industry for almost five years working on films and high-profile commercials. My favorite part of FX is tackling new, sometimes unexpected challenges because that gives me the opportunity to learn and develop my skills and knowledge. During my time in the industry, I’ve been lucky enough to have been able to work on a wide variety of tasks including FX, lookdev, pipeline tools, plugin development, and more. Some of the effects included building destruction, water, lava, melting steel, growth systems, hair systems, procedural spacescapes, and of course explosions. In addition to being able to work on such a wide variety of systems, I love sharing what I’ve learned with others. 

Today, I am very excited to share a system for efficiently simulating hair, which I have developed repeatedly for several projects at various studios. This system has become a huge mainstay of my effects repertoire, since it has reliably given very good results with little tweaking. Although the system is not perfect, it can be set up from scratch in a few hours and undesirable parts of the sim can be easily removed. 

The results of the system can be seen in commercials and films such as Kia: Evolved, and the upcoming Ghostbusters movie, along with several other jobs I’ve worked on. 

FX, lookdev, pipeline tools, plugin development

The entire system is basically a straightforward wire sim on the guides. The key to what makes this system efficient is faithfully downsampling the guides to a simplified cluster of curves in order to sim on. You can then take the movements of the sim and apply them to the original guides.

The basic idea is that you can construct a mesh that lies on the skin on which the hairs are attached. You can then store the positions of the points on the curve in an array value for each point at the root of the hair. Since the positions of the curves are now stored on a surface, these values can be interpolated, and can naturally be downsampled. 

To  share a system for efficiently simulating hair

So after creating a simplified mesh, you can rebuild the curves based on the points of that mesh. After rebuilding the curves, you then run them through a wire solve and you have your simulated hair.

Now all you have to do is apply the difference between the simulated curves and a wrap-deformed copy of the proxy curves that conform to the animation of the character. Then you take these difference vectors and store them in the simplified surface that 
should lie in the same space as the high-density mesh that stores the input guides. You can then look up the interpolated value of the displacement vectors from the location the curve root on the surface and the parametric UV of the guide curve itself. Once you apply these displacement vectors to the final guides, you have a visually plausible hair simulation on a high density set of guides. 

After creating a simplified mesh, you can rebuild the curves based on the points of that mesh

That’s not to say this system doesn’t have its failings. For instance, you need to take care when interpolating areas of large change in a small space. The most ready example is across parting lines in hair. However, this can be solved by splitting the proxy mesh along the part and then extrapolating the nearest values to the edge of that split so the proxy curves do not try to create intermediate curves in between the hair part.

80 guides with 16 points per curve for the sim in the render, and it took around 10 minutes for 240 frames

And additionally, if you still happen to have unexpected results in some areas after applying the sim to the base guides, I’ve found that you can simply blast away those stray hairs without any ill effects. And of course, the more guides you sim with, the more accurate (and more expensive) your results will be. I used 180 guides with 16 points per curve for the sim in the render, and it took around 10 minutes for 240 frames. And finally, here's a link to an example file of the setup: 

Charles Trippe 2016
 

 

By: Patricia Cornet
GridMarkets marketing

bottom of page