3D Christmas Lights & Garland

Inspired by the Christmas decorations I’ve recently put up, I’ve created a few in Maya. Admittedly, this would have been much easier in Houdini, but I plan on creating an interior in Maya and didn’t want to be switching programs to decorate it.

3D Christmas Garland Close Up

3D Christmas Garland Close Up


3D Christmas Garland

3D Christmas Garland

First, I created a CV curve for the garland. I built the entire process around curves so I could write a script to generate all of this when given a curve, making decorating in the future extremely simple. I extruded a small circle along the the curve to get a mesh because Maya Fur & Hair has to be generated on geometry. I attached Maya Fur to the NURBs wire for the garland. The garland was created with a few simple adjustments:

  • Base and Tip Width were both the same, almost small number
  • Not a lot of variation in Color
  • Noise-mapped Tip Curl to simulate some strands bending
  • Noise-mapped Scraggle to make some strands, well, scraggly
  • Length and Density adjusted for scene scale

Once I had the garland looking good, I created the light bulb. The light bulb was attached to the curve as if it was a motion path and then duplicated every few frames. Because of Maya’s lack of a good built-in duplicate-along-curve function, this was a very manual process. Then, I used a script to separate the lights into a few different groups, each group having a different colored bulb.

There’s a point light inside of each bulb that casts raytraced shadows excluding the bulb itself. I chose to raytrace the shadows because the alternative would be to use depth-map shadows which would require six depth-maps per light, which in turn needed to have a resolution high enough to capture all the nearby strands. This would have also needed a longer prepass to render each depth-map and it would take up more disk-space. Because each light operates in such a small area, I could reduce the raytracing distance and save some time, although the raytracing process still takes a lot of time.

The Christmas lights look a little funny right now because of the lack of environment. Besides the immediate scene, there is nothing for them to reflect or refract. Because they will look completely different in a full environment, I chose not to spend a lot of time adjusting their look. Although, I see a few improvements to be made. For one, the bulbs could be a lot less transparent. Then, I could render each bright light inside of the bulb in a separate pass, so that I could apply a glow to them.