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.
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.